지난달부터 현장실습을 나왔는데, 약 한달간 쿠버네티스 공부를 하고이번주부터 CI/CD 시스템을 구축하는 미션을 받았습니다. 일단 CI(지속적 통합)/CD(지속적 배포)가 무엇이냐 예전엔 어떤 팀이 프로그램을 개발하고 이를 실제로 배포하여 서비스를 하는 과정에서개발자에게 많은 일이 과중되었습니다. 개발자가 개발을 하고 여러 개발자들이 만든 코드를 통합하고,통합된 코드를 테스트 하고, 이를 배포하기까지 정말 많은 과정을 개발자가 관여해야 했습니다. 그래서 이 과정을 줄일 수 있는 다양한 도구들이 나왔습니다.대표적으로 git, jenkins, argocd... 그 모든 통합과 배포 도구를 이어서 자동화하는 것이 CI/CD의 실현이라고 할 수 있습니다. 그래서 이 CI/CD를 구축하는 것은 좋지만 어떤 도구를..
분류 전체보기
코딩테스트에 자주 사용하는 문법 위주로 정리해보았습니다. 데이터타입정수형흔히 수학에서 부르는 0, 양의 정수, 음의 정수를 담는 타입입니다.사칙연산 부터 지수연산, 정수나눗셈, 나머지 연산 등이 있습니다. a = 10b = 3print(a+b) # 13print(a-b) # 7print(a*b) # 30print(a/b) # 3.3333333333333335print(a//b) # 3 몫연산print(a**b) # 1000 지수연산print(a%b) # 1 나머지연산print(-a) # -10 부호바꾸기print(abs(-a)) # 10 절대값print(a == b) # False 같은가print(a != b) # True 다른가print(a > b) # True a가 큰가print(a = b) # Tr..
알고리즘을 사용하는 이유는 최적화, 그 중에서도 속도와 메모리라고 볼 수 있습니다. 시간 복잡도는 이 중 속도에 붙은 개념인데, 단순하게 보면 입력크기에 대한 연산 횟수의 최대값입니다.단순하진 않은데 가장 단순한 예시인 1차원 배열의 탐색법을 생각해보면 1을 찾는다면 1번 비교, 8을 찾는다면 8번 비교를 하게 됩니다. 그럼 이 1차원 탐색의 시간 복잡도는 1~8이라고 보면 될까요? 만약에 길이가 100, 1000, 1억이 된다면 복잡도는 1억인걸까요? 말도 안되죠. 그렇기 때문에 빅 오 표기법이라는 방법을 도입했습니다.(위는 사실 절대시간이라는 표기법입니다..) 알고리즘의 탐색횟수를 방정식으로 정리한 후에 최고차항만 표기하는 것이죠. 위 알고리즘의 경우 O(x)라고 볼 수 있습니다. 그럼 왜 이런 표..
코딩 테스트 연습은 아주 길고 지루할 수 있습니다. 이 긴 과정을 아무렇게나 할 수는 없는 법이죠. 전 이 긴 과정도 어떻게든 줄이기 위해 5가지 방법을 사용합니다. 1. 기록하기바라보기만 해서는 문제를 해결할 수 없습니다. 그렇기 때문에 문제를 정리해보고 사고 과정을 기록하는 것이 중요합니다. 2. 시험처럼 연습하기주기적으로 시간을 정해서 시험처럼 연습하는 것도 도움이 됩니다. 시간을 제한하고 목표를 정하면 집중력이 올라가고 효율도 좋아집니다. 3. 길게 보기00에서 적었듯이 결국 연습 없이 빠르게 실력이 늘기 어렵습니다. 절대 조급해지지 말고 길게 가는 것이 중요합니다. 하지만 막막하다면 목표를 세분화해서 짧은 목표를 여러개로 만들어 보는게 좋습니다. 4. 내가 이해되게 요약하기아주 중요합니다. 요약..
근래의 대부분의 기업은 채용과정에서 거의 반드시 코딩테스트라는 과정이 들어갑니다. 그만큼 그 사람의 능력을 객관적으로 판단하기 좋다는 것이죠. 그래서 IT기업에 들어가기 위해서 '코딩테스트를 하는 법'은 반드시 알아야합니다. 0. 코딩테스트 연습을 위한 문제 사이트 - 백준 온라인 저지 (외부 사이트를 통한 난이도 세분화, UI 불편)https://www.acmicpc.net/- 프로그래머스(UI 좋음, 친절하지 않은 난이도 분류)https://programmers.co.kr/- leetcode(해외 대규모 코딩테스트 사이트)https://leetcode.com/ 1. 알고리즘 공부하기 제가 이 글을 쓰는 이유는 바로 이 '알고리즘' 때문이라고 봐도 무방합니다. 모든 프로그램의 코드 기반엔 알고리즘이 들..
emptyDir, hostPath는 컨트롤러의 템플릿이나 파드에 직접 스토리지 볼륨을 정의해야 했습니다. 이는 개발자에게 스토리지에 대한 지식을 요구하고, 볼륨의 생명주기를 파드의 생명주기와 분리할 수 없었습니다. PV, PVC란?PV(PersistentVolume) 및 PVC(PersistentVolumeClaim)는 컨트롤러 및 파드와 별개의 리소스이고, 생명주기 또한 다릅니다. PV 리소스는 클러스터 외부 스토리지와 연결을 담당하고, PVC 리소스는 PV와 파드를 연결하기 위한 리소스입니다. 즉, 클러스터 관리자가 PV 리소스를 생성해 스토리지와 연결해두고, 파드 개발자는 PVC를 생성해 자신의 파드 및 관리자가 제공해 준 PV와 연결해 파드에서 볼륨을 사용할 수 있게 해줍니다. 결국 개발자의 관점..
보호되어 있는 글입니다.
emptyDir 볼륨은 아무 데이터도 없는 빈 디렉토리를 제공해주는 볼륨입니다.파드가 생성하는 데이터를 저장할 수 있고, 동일한 파드 내의 컨테이너 간에 데이터 공유에 유용하게 사용할 수 있습니다. 최초 볼륨이 생성될 때는 volume의 내용이 비어있기 때문에 emptyDir이라고 부릅니다. emptyDirapiVersion: apps/v1kind: ReplicaSetmetadata: name: myapp-rs-fortunespec: replicas: 1 selector: matchLabels: app: myapp-rs-fortune template: metadata: labels: app: myapp-rs-fortune spec: conta..
파드의 컨테이너는 이미지로부터 파일 시스템을 제공받습니다. 즉, 파드가 종료되면 파드 내에 변경된 데이터 또한 사용할 수 없게 됩니다.새 파드가 생성되면 새 파일 시스템을 제공받게 됩니다.데이터를 유지할수 없기 때문에 상태가 없는 stateless 하다. 라고 합니다. 쿠버네티스의 파드는 새 데이터를 보존하기 위해 외부 저장소 볼륨을 생성하고, 볼륨을 컨테이너에 마운트해서 사용합니다.이 볼륨은 여러 파드에서 동시에도 접근이 가능합니다. 볼륨의 라이프 사이클은 파드의 라이프 사이클과 같아 파드가 생성되면 볼륨이 생성되고 파드가 삭제되면 볼륨도 삭제됩니다.파드가 재시작하는 경우에는 데이터가 유지됩니다. 그러나 새로 도입된 PersisentVolume 및 PVClaim을 사용해 파드와 별개의 라이프 사이클을 ..