코드 품질을 높이는 Spring Boot CI 파이프라인 구축하기
·
DevOps
CI/CD 파이프라인은 코드베이스 전반의 품질 관리, 안정성 확보 및 오류 최소화를 위해 빌드, 테스트, 배포 과정을 자동화하는 중요한 과정입니다. 프로젝트나 조직의 규모가 커질수록 이러한 자동화된 과정은 안정적인 운영을 위해 필수적입니다. 소프트웨어 개발 주기를 효율적으로 관리함으로써 비용을 크게 절감할 수 있습니다. 특히, 지속적인 통합(Continuous Integration)과 지속적인 배포(Continuous Deployment)를 통해 개발 속도를 유지하면서도 높은 품질의 소프트웨어를 제공할 수 있습니다. 이번 글에서는 CI/CD의 기본 개념부터 시작하여, Spring Boot 프로젝트에서 SonarCloud, JaCoCo, Checkstyle, Codecov와 같은 도구들을 활용해 안정적이고..
Docker Multi-stage Builds, Layered JAR로 빌드 성능과 이미지 최적화하기
·
DevOps
현재 동아리에서 Docker 컨테이너를 활용하여 여러 서비스를 운영하고 있으며, 모든 서비스는 Dockerfile을 통해 빌드 및 배포되고 있습니다. 그러나 Gradle 빌드와 Docker 이미지 빌드를 포함한 전체 소요 시간이 평균 5분에 달해, 라즈베리 파이 4 환경을 고려할 때에도 비효율적이라는 판단에 이르게 되었습니다. 이를 해결하기 위해 Docker Multi-stage Builds와 Layered JAR를 도입했습니다. Dockerfile 내에서 빌드 단계와 런타임 단계를 분리하고, JAR 파일을 계층화함으로써 빌드 속도를 최적화하는 동시에 최종 이미지 크기도 효율적으로 줄일 수 있었습니다. 본 글에서는 이러한 멀티 스테이지 빌드와 레이어드 JAR의 적용 과정을 공유하며, 동일한 문제를 겪고 ..