이 글에서는 [일단 박죠] O2O Store Management 서버 구현 내용 요약 및 회고에서 언급했던대로 배포 과정에 대한 내용을 기록하겠다. 마찬가지로, 배포에 대한 전반적인 흐름만 간략하게 소개하고 프로젝트를 진행하며 얻은 인사이트를 공유할 예정이다.
AWS 서비스를 활용하여 서버와 데이터베이스 환경을 구축하고, IAM 계정 생성부터 EC2, RDS 인스턴스 설정, 한글 인코딩 문제 해결 등 다양한 문제를 직면하고 해결했다. 도커를 이용한 EC2 배포 과정에서 CRLF와 LF 이슈 해결, HTTPS 적용, AWS S3로 파일 저장, Cloud Front를 이용한 캐싱 등 AWS의 다양한 서비스를 통해 효율적인 배포 방식을 고려하였고, 적용하였다.
Jacoco를 이용한 테스트 코드 커버리지 분석, 깃허브 액션을 이용한 CI 구축, 국제화 오류 해결, SonarCloud로 정적 코드 분석 등 다양한 도구와 기술을 적용하여 개발 과정의 효율성과 코드의 품질을 높였다.
Git Submodule을 이용하여 중요 정보 관리, Docker와 Jenkins를 활용한 CI/CD 파이프라인 구축, Nginx를 이용한 무중단 배포 등을 통해 안정적이고 지속적으로 서비스를 제공하였다.
배포 과정을 거치며, 다양한 배포 방식을 탐구하고, 현재 상황에서 가장 적합하다고 생각하는 방법을 적용해보았다. 이 과정을 통해 배포에 관한 지식을 쌓을 수 있었다. 백엔드 개발자로서 배포 과정은 직접적인 역할이 아닐 수 있다. 하지만 프라이빗 정보 관리, 저장소 인터페이스 분리, 스프링 프로파일 구분 등은 배포에 대한 이해 없이는 개발 과정에서 불리한 상황에 처하기 쉽다고 생각한다. 따라서 배포의 경험은 필수적이라고 생각하고있다. 그래서 AWS를 사용하며 들어간 비용에 대해, 전혀 아깝지 않았다.
개발과 배포를 모두 경험하며, 프로젝트 설계 시 다양한 상황을 고려할 수 있는 능력을 키웠고, 이 경험은 앞으로의 사이드 프로젝트는 물론 O2O 프로젝트 완성에도 큰 도움이 될 것이다.