기술 기술 선택 근거
Docker **도입 배경
”**로컬 테스트는 됐는데 클라우드에 올리니 안된다.” 와 같은 환경에 따른 차이를 피하기 위해 사용했다.

경량화 Docker는 컨테이너화된 애플리케이션을 실행하는데, 이는 운영 체제의 커널을 공유하는 방식으로 실행됩니다. 각 컨테이너는 별도의 운영 체제를 포함하지 않기 때문에 매우 가볍고, 여러 컨테이너를 실행할 수 있는 효율성이 뛰어나다.

개발 및 배포 속도 Docker는 개발과 배포 환경에서 일관성을 유지할 수 있기 때문에, 개발자들이 동일한 환경에서 작업할 수 있고, 배포도 빠르고 효율적으로 이루어진다.

유연성 및 이식성 Docker는 컨테이너 내에서 애플리케이션을 실행하므로, 애플리케이션을 쉽게 이동하고, 여러 플랫폼에서 일관되게 실행할 수 있다. | | Docker Compose | 도입 배경 분산 서버를 도입하니 여러 컨테이너를 한번에 운용해야 할 필요성이 생겼다.

멀티 컨테이너 환경 관리 여러 개의 Docker 컨테이너를 한 번에 정의하고 실행하여 각 컨테이너의 종속성을 명확히 정의하고, 필요한 네트워크와 볼륨을 자동으로 설정할 수 있다.

컨테이너 간 의존성 관리 여러 서비스가 서로 의존할 때, Docker Compose는 서비스 간의 네트워크 연결을 자동으로 처리하기 때문에, 서비스 간의 의존성을 명확하게 처리하고 애플리케이션이 예상대로 동작하게 할 수 있다.

간단한 설정 .yml 형식의 간단한 설정 파일로 구성이 가능하므로, 복잡한 설정을 비교적 쉽게 작성하고 이해할 수 있다. | | Github Actions | 도입 배경 개발 중 코드가 수정될 때 마다 Docker 이미지를 새로 빌드하고 클라우드에 올리는 과정이 번거롭고 반복되기만 한다고 느껴졌다.

Github와의 통합 Github에서 운영하는 CI/CD 도구이기 때문에 별도의 설치 없이 Github 리포지토리 및 워크플로와 원활하게 통합이 가능하다. 간단하게 Github의 이벤트(예: pushpull requestissue)를 트리거로 바로 워크플로를 실행할 수 있다.

간단한 설정 사용하기 쉽고 직관적인 .yml 파일 형식으로 작성된다. 간단하고 직관적인 사용자 인터페이스가 있어서 설정 및 사용이 쉽다.

비율 효울성 public repositry를 사용하는 경우 기본적으로 비용이 발생하지 않는다. 별도의 서버 운용 비용이 발생하지 않는다. | | GCP | 도입 배경 기존 EC2의 경우 프리티어 하나로 분산서버의 인스턴스를 감당하기 힘들어 첫 가입 시 300$ 크레딧을 제공하는 구글 클라우드를 사용해보기로 결정 **여러 클라우드를 경험해봄으로서 어떠한 환경에서도 구축할 수 있는 능력 또한 향상 기대

글로벌 인프라 전 세계 데이터 센터**를 통해 낮은 지연 시간높은 가용성 보장

비용 효율성 초기 무료 크레딧 및 프리티어 제공으로 인한 비용적인 이점과 상대적으로 저렴한 과금요소 | | Nginx | 도입 배경

기존 단일 서버를 분산 서버로 전환하면서 Nginx 리버스 프록시를 도입하여 클라이언트 접근 IP 수를 줄이고 포트 단위로 트래픽을 관리하기 용이하도록 개선함. 또한, Nginx를 통해 접근하는 트래픽만 허용하고 나머지 분산 서버의 외부 IP를 차단하여 보안성을 강화

유연성 다중 포트를 관리하면서 설정 변경이 용이

확장성 추후 서버 확장 시에도 추가적인 리버스 프록시 설정만으로 손쉽게 대응 가능

보안 강화 외부 IP 차단 및 접근 제어 기능으로 내부 서버를 보호 |