MSA 프로젝트 도전기 02

개요

지난 주엔 프로젝트 설계와 설정 그리고 서버-게이트웨이-서비스 연결 테스트를 진행하였다. 그렇다면 이제 각자 맡은 역할에 대해서 우선 가장 기본적인 CRUD와 써치 기능을 구현하고 테스트를 해봐야 한다.

Continue reading

MSA 프로젝트 도전기 01

개요

어쩌다 프로젝트 팀장을 맡게 되었고, 어찌저찌 해서 테이블/API/ERD 등등을 다 같이 설계를 해왔다. 고래서 설계까지는 완성이 되었다. 이제 개발을 시작할 때이다. 그런데 말입니다… 뭐부터 해야되죠?

Continue reading

CI/CD

개요

개발이 아무리 좋아도 마지막 과정을 안거치면 개발 실력, 솜씨 등을 증명을 하지 못한다. 그것을 증명하려면 개발의 마지막 단계까지 온전히 마쳐야 한다. 바로 배포이다. 토의 - 설계 - 개발 - 테스트를 걸쳐 마무리 일격을 하는 단계가 바로 배포로서, 개발한 것을 공개로 또는 특정인에게 보여주는 단계이다. 그리고 뭔가 또 이상하다 싶으면 다시 고쳐서 다시 배포를 하게 된다. 이러한 반복적인, 지속적인 개발 루프를 일컬어 CI/CD라 한다. 작성자 본인도 이전 직장에서 젠킨스로 매일매일 솔루션 빌드하고 내뱉는 과정을 뜯어본 적이 있고, 최근엔 백앤드 팀 프로젝트에서도 github action, docker, aws ec2를 이용해 배포를 거쳐간 적이 있다. 이제 정확한 CI/CD의 의미를 파해쳐본다.

Continue reading

Docker 주요 키워드 & 명령어

Docker 주요 키워드

  • 이미지
    • 애플리케이션과 모든 실행에 필요한 파일을 포함한 읽기 전용 템플릿
    • 코드, 런타임, 라이브러리, 환경 변수, 구성 파일 등이 포함
    • 컨테이너를 생성하기 위한 청사진 역할
  • 컨테이너
    • 이미지를 실행하여 동작하는 애플리케이션 인스턴스
    • 실제로 애플리케이션이 실행되는 동적인 환경
    • 격리된 공간에서 애플리케이션을 실행, 필요한 모든 의존성을 포함
    • 하나의 시스템에서 여러 개의 컨테이너를 독립적으로 실행 가능
  • Dockerfile
    • 이미지를 생성하기 위한 명령어가 담긴 스크립트 파일
    • 빌드시 필요 명령어 포함
  • Docker Hub
    • 이미지를 저장하고 공유하는 중앙 저장소
    • 사용자 계정으로 자기 이미지 다운/업로드 및 공개 이미지 다운 가능
  • 볼륨
    • 컨테이너 데이터를 지속적으로 저장하는 메커니즘
    • 테이너가 삭제되더라도 볼륨에 저장된 데이터는 유지
    • 데이터를 컨테이너와 독립적으로 관리
  • 네트워크
    • 컨테이너 간의 통신을 관리하는 방식
    • 네트워크 종류
      • Bridge Network (브리지 네트워크)
        • 기본적으로 Docker가 컨테이너를 실행할 때 사용하는 네트워크
        • 동일한 브리지 네트워크에 연결된 컨테이너들은 서로 통신 가능
        • 외부 네트워크와는 NAT (내부 네트워크의 여러 장치가 하나의 공용 IP 주소를 통해 외부 네트워크와 통신할 수 있도록 IP 주소를 변환하는 기술) 를 통해 통신
        • 일반적으로 단일 호스트에서 여러 컨테이너를 연결할 때 사용
        • 명시하지 않으면 모두 브리지 네트워크에서 실행

          docker network create my-bridge-network
          docker run -d --name container1 --network my-bridge-network nginx
          docker run -d --name container2 --network my-bridge-network nginx
          
      • Host Network (호스트 네트워크)
        • 컨테이너가 호스트의 네트워크 스택을 직접 사용
        • 네트워크 격리가 없기 때문에 성능상 이점이 있지만, 보안 및 네트워크 충돌 위험 가능성
        • 일반적으로 성능이 중요한 애플리케이션에 사용

          docker run -d --network host nginx
          
      • Overlay Network (오버레이 네트워크)
        • 여러 Docker 호스트에 걸쳐 있는 컨테이너를 연결할 때 사용
        • Swarm 모드(Docker 컨테이너의 오케스트레이션과 클러스터링을 지원하여 여러 호스트에서 컨테이너를 관리하고 배포할 수 있는 기능)나 Kubernetes 같은 오케스트레이션 도구와 함께 사용
        • 데이터 센터 또는 클라우드 환경에서 분산 시스템을 구축할 때 유용.

Continue reading

Docker는 무엇인가

Docker

Dock은 사전적인 언어로 부두란 뜻이다. 부두라는 이미지를 떠올려 보자. 부둣가 항구엔 바다가 있고, 그 바다에서 넘어온 배들이 있고, 그 배들이 컨테이너를 통해 물건을 선적하는 이미지가 떠오른다. 그런 이미지를 컴퓨터내에서 하는 사람들, 즉 Dock + er 를 합친게 바로 Docker인 것이다.

Continue reading

28Delivery - 10일

개요

지난 프로젝트로 부터 약 2달 후, 다시 백앤드 교육을 수강하기로했다. 지난 반기동안 했던 백앤드 능력으론 부족하다고 판단했기 때문이다. 그리하여 내일배움캠프의 백앤드 심화 과정 교육을 수강 중이며, 이 프로젝트는 최근 진행한 10일간의 팀 프로젝트이다.

Continue reading

Pagination