본문 바로가기

전체 글96

CI/CD가 필요한 이유 CI/CD (Continuous Integration, Continuous Delivery or Deployment) - Build, Test, Merge, Deploy의 자동화 CI (Continuous Integration) - 애플리케이션의 새로운 코드 변경사항이 정기적으로 빌드 및 테스트되어 공유 Repository에 통합 - 여러 명의 개발자가 각자 작업한 Source Code를 commit할 경우 서로 충돌할 수 있는 문제 해결 - 변경 사항이 merge되면 각기 다른 레벨의 자동화 테스트(단위 테스트, 통합 테스트) 수행 CD (Continuous Delivery or Deployment) - 통합된 공유 Repository의 변경사항이 Production 환경까지 Release되는 것 - .. 2022. 2. 14.
Socket, TCP/IP, UDP Socket - 두 호스트를 서로 연결하기 위한 각 프로그램의 엔드 포인트로 인터페이스의 역할 - 프로토콜 + IP 주소 + Port 번호로 구성됨 연결 과정 TCP/IP (Transmission Control Protocol / Internet Protocol) - 3 way handshake 과정을 통해 신뢰성 확보 Client 1. socket() : socket 생성 2. connect() : ip와 port 번호를 통해 통신할 서버로 연결 시도 3. write(), read() : 데이터 송수신 4. close() : 연결 종료 Server 1. socket() : socket 생성 2. bind() : socket에 ip와 port 번호 설정 3. listen() : 클라이언트의 접근 요청에 .. 2022. 2. 13.
Terraform vs Helm Kubernetes 배포에 있어 Helm을 쓰는 게 나을까, Terraform을 쓰는 게 나을까? Terraform - 인프라 자원들을 IaC로 관리하는 것이 주목적 Helm - K8S Application과 앱의 상태를 관리하는 것이 주목적 Terraform Helm 무설치형 설치형 Kubernetes cluster 배포 가능 Kubernetes cluster 배포 불가능 modules 사용 가능 sub-charts 사용 가능 JSON/HCL format standard manifests, Go-templates 인프라 자원과 함께 배포 애플리케이션과 함께 배포 Unstable Stable 환경 변수 지원 환경 변수 지원 제한 복잡한 Rollback 쉬운 Rollback 적은 자원 사용 많은 자원 사용.. 2022. 2. 12.