전체 글
-
[2644]촌수 계산Programmers 2024. 4. 10. 18:12
https://www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어 www.acmicpc.net 처음엔 DFS로 접근을 하려고 했으나..문제가 있었다. n = int(input()) a, b = map(int, input().split()) m = int(input()) graph = [[] for _ in range(n+1)] for _ in range(m): x, y = map(int, input().split()) graph[x].append(y) graph[y]...
-
[Kubernetes] Replica SetKubernetes 2024. 4. 3. 23:18
Pod는 여러 개의 컨테이너를 추상화해 하나의 애플리케이션으로 동작하도록 만드는 훌륭한 컨테이너 묶음이다. 그러나 YAML에 파드만 정의해 생성하게 되면 이 파드의 LifeCycle은? kubectl delete 명령어로 파드를 삭제하게 되면 그 파드의 컨테이너 또한 삭제된 뒤 쿠버네티스에서 영원히 사라지게 도니다. 이렇게 YAML 파일에 파드만 정의해 생성할 경우 해당 파드는 오직 쿠버네티스 사용자에 의해 관리된다. 이렇게 되면 단순히 파드의 기능을 테스트하는 것이 아닌 실제 외부 사용자의 요청을 처리해야 하는 MSA 구조의 파드라면 이러한 방식을 사용하기 어렵다. MSA에서는 여러 개의 동일 컨테이너를 생성한 뒤 외부 요청이 각 컨테이너에 적절히 분배될 수 있어야 한다. 쿠버네티스에서는 파드가 기본 ..
-
[Kubernetes] PodKubernetes 2024. 4. 3. 20:39
쿠버네티스에는 컨테이너 애플리케이션을 구동하기 위해 반드시 알아야할 몇 가지 오브젝트가 존재한다. Pod / Replica Set / Service / Deployment 그 중 하나인 Pod에 대해서 알아보자. Pod 컨테이너 애플리케이션의 기본 단위이며, 1개 이상의 컨테이너로 구성된 컨테이너의 집합이다. 파드는 쿠버네티스에서 가장 기초적이고 중요한 개념이기 때문에, 반드시 이해해야 하는 개념이다. 쿠버네티스에서는 컨테이너 애플리케이션을 배포하기 위한 기본 단위로 파드라는 개념을 사용한다. 1개의 파드에는 1개의 컨테이너가 존재할 수도 있고, 여러 개의 컨테이너가 존재할 수도 있다. # nginx-pod.yaml apiVersion: v1 kind: Pod metadata: name: my-nginx..
-
[Kubernetes] Minikube와 쿠버네티스 개요Kubernetes 2024. 4. 3. 19:42
쿠버네티스는 컴퓨터들을 연결하여 단일 형상으로 동작하도록 컴퓨팅 클러스터를 구성하고 높은 가용성을 제공하도록 조율한다. 오늘은 minikube에 대해서 알아볼 건데, Minikube는 1개의 노드에서 쿠버네티스 설치 및 사용이 가능하고, 간편하게 로컬에서 쿠버네티스의 기본 기능 테스트 기능이 있으며, 쿠버네티스의 일부 기능이 제한될 수 있다. 그 이유는 쿠버네티스가 클라우드 플랫폼에서만 사용할 수 있는 기능들이 존재하기 때문이다. 쿠버네티스의 특징부터 알아보자. 우선, 쿠버네티스는 대부분의 리소스를 오브젝트라고 불리는 형태로 관리한다. 쿠버네티스에서는 컨테이너의 집합인 Pods, 컨테이너의 집합을 관리하는 컨트롤러 Replica Set, 사용자 Service Account, 노드 Node 까지도 하나의 ..
-
내가 듣고싶은 comment 모음.카테고리 없음 2024. 4. 1. 07:31
오늘 아침에 기사와 유튜브를 잠시 봤는데, 내가 듣고 싶은 말들이 있어 써보았다. 높이 올라갈수록 주변에서 흔들려고 할 겁니다. 흔드는 바람이 작든, 크든 묵묵히 버티는 자가 곧 일류가 됩니다. 정상에 있는 자라면 필연적으로 겪게 되는 시간이죠. (유튜브 comment) 김민재 선수에 대한 카드뉴스였고, 스쳐지나갈 수 있었던 댓글이었는데, 나도 저런 시련을 겪을 때 저런 코멘트를 들었으면 했다. 성공한 자에게 반드시 따라오는 시련..나도 느껴보고 싶다 "저렇게 빨리 성장하고 올라가는게 참 어렵다. 그런 걸 보면 정말 대단하다. '나는 저렇게 안되던데' 라는 생각이 들면서 어떻게 빠른 시간에 성장할 수 있는지 의문이 들긴 하다." (기사) 이정후 선수에 대한 기사다. 나도 저런 가파른 성장폭을 통해 내 분..
-
NginxData Engineer 2024. 3. 28. 19:19
nginx : 기동 nginx -s stop : 정지 nginx -s reload : 재기동 nginx -t : 설정파일 체크 /etd/nginx : main 설정파일 위치 /etc/nginx/conf.d/ : 각 서버용 설정파일 위치 -?, -h nginx 명령어의 도움말 표시 -v nginx 버전 확인 -V nginx를 make 했을 시 컴파일러 또는 configure 옵션 표시 -t, -q nginx 설정파일 오류 체크 -s stop 강제종료 -s quit 실행중인 request 처리 종료하고 nginx 정리 -s reload 설정파일 다시 읽음 -s reopen nginx 재기동중 로그파일을 다시 오픈 -c 설정파일 지정한 설정파일로 nginx 기동(보통 부하시험 등에 사용되며, 보통 사용하지 않..
-
SOLID 원칙Software Architecture 2024. 3. 19. 06:37
좋은 설계란, 시스템에 새로운 요구사항이나 변경사항이 있을 때 영향을 받는 범위가 적은 구조 —> 시스템에 예상하지 못한 변경사항이 발생하더라도, 유연하게 대처하고 추후 확장성이 있는 시스템 구조를 만들 수 있다. 객체지향 개발 5대 원리 SRP, Single Responsibility Principle : 작성된 클래스는 하나의 기능만 가지며 클래스가 제공하는 모든 서비스는 그 하나의 책임을 수행하는 데 집중되어 있어야 한다는 원칙 어떤 변화에 의해 클래스를 변경해야 하는 이유는 오직 하나여야 한다 책임 영역이 확실해지기 때문에 한 책임의 변경에서 다른 책임의 변경으로의 연쇄작용에서 자유로울 수 있음 책임을 적절히 분배함으로써 코드의 가독성 향상, 유지보수 용이 적용방법 여러 원인에 의한 변경 Extr..
-
[Error] MySQL : Update 문 실수 시 조치 사항Data Engineer 2024. 3. 12. 12:07
혹시 update 문을 실수한 적이 있으신가요? 전 조건을 잘못 걸어서 DB 내에서 반영되어야 하지 않아야할 행에도 데이터 변경을 가해 문제가 생긴 적이 있었습니다.. 앞으로, 그런 일이 있지 않기 위해서, 오늘은 그 대응법을 공유해보려고 합니다. 저의 환경은 이러했습니다. - Cloud : Azure - DB 접근 순서 : VM 접속 -> 클라우드 내 Mysql 접속 - DB Client : DBeaver 먼저, 가장 주의해야할 점은 쿼리를 머릿속으로만 그리지 않고 확인 절차를 거치는 것이 좋습니다. 이때, 여러 방법이 있는데요. 1. SELECT 문을 통한 update 쿼리에 영향이 미칠 행 확인 2. TRANSACTION 실행 후 UPDATE, commit/rollback 지정 2번 방법에 대해 설..