Spring Boot 프로젝트의 CI/CD 파이프라인
[Git Push] → [Jenkins Trigger] → [Build & Test] → [Docker Build & Push] → [Deploy to Server]
- 1. 소스 코드 관리 (GitHub): 코드를 저장소(Repository)에 커밋 및 푸시합니다.
- 2. CI 서버 설정 (Jenkins/GitHub Actions):
- GitHub Actions: .github/workflows 디렉토리에 YAML 파일로 파이프라인(빌드, 테스트, 푸시)을 정의합니다.
- Jenkins: Jenkinsfile을 프로젝트 루트에 작성하여 파이프라인을 자동화합니다.
- 3. 빌드 및 테스트: JDK를 설치하고, Gradle(gradlew build) 또는 Maven을 사용하여 프로젝트를 빌드하고 테스트를 수행합니다.
- 4. 컨테이너화 (Docker): 애플리케이션을 Docker 이미지로 빌드하고 도커 허브(DockerHub) 등 레지스트리에 푸시합니다.
- 5. 배포 (CD): 빌드된 이미지를 운영 환경(AWS EC2, 쿠버네티스 등)에 배포합니다.
- Jib를 사용하면 Docker Daemon 없이도 효율적으로 컨테이너 이미지를 빌드할 수 있습니다.

- 소스(Source): 개발자가 원격 리포지토리(GitHub, GitLab 등)에 코드를 푸시하여 파이프라인을 트리거.
- 빌드(Build): 소스 코드를 컴파일하고 의존성을 해결하여 실행 가능한 아티팩트(바이너리, 컨테이너 이미지) 생성.
- 테스트(Test): 유닛 테스트, 통합 테스트, 보안 검사 등을 자동화하여 코드 품질 검증.
- 배포(Deploy): 검증된 애플리케이션을 스테이징 또는 운영 서버(Kubernetes, 클라우드 환경 등)에 자동 배포.
https://youtu.be/F3gEkZirFMU?si=bCl4CKoP8bb5O0ZJ
- CI (Continuous Integration, 지속적 통합): 여러 개발자가 작성한 코드를 정기적으로 통합하고, 자동화된 빌드와 테스트를 통해 코드의 결함을 조기에 발견하는 프로세스입니다.
- CD (Continuous Delivery/Deployment, 지속적 제공/배포):
- Continuous Delivery: 통합된 코드를 검증 후 배포 가능한 상태로 유지하며, 실제 배포는 수동으로 승인합니다.
- Continuous Deployment: 검증된 코드를 고객이 사용하는 운영 환경에 자동으로 배포합니다.
- 소스 (Source): 코드 변경(Commit)이 발생하면 파이프라인이 이를 감지하고 최신 코드를 가져옵니다.
- 빌드 (Build): 코드를 컴파일하고 실행 가능한 형태(Artifact)로 변환하며, 필요한 종속성을 해결합니다.
- 테스트 (Test): 유닛 테스트, 통합 테스트 등을 자동 실행하여 코드의 품질과 비즈니스 로직을 검증합니다.
- 배포 (Deploy): 검증이 완료된 결과물을 스테이징 또는 운영 서버에 반영합니다.
- 빠른 출시: 수동 작업을 줄여 새로운 기능이나 버그 수정을 신속하게 배포할 수 있습니다.
- 품질 향상: 자동화된 테스트를 통해 휴먼 에러를 방지하고 소프트웨어의 안정성을 높입니다.
- 협업 효율화: 코드 통합 과정의 충돌을 줄여 개발팀 간의 협업이 원활해집니다.
'프로그래밍 > JAVA' 카테고리의 다른 글
| [spring boot] 웹애플리케이션, was, 서버의 구조를 설명해줘. spring boot 구조일 때의 차이점 (2) | 2025.06.10 |
|---|---|
| "어떤 언어를 배울까" 자바스크립트, 파이썬, 자바 3종 비교 (0) | 2024.05.29 |
| [JAVA] 스프링 부트 하루만에 배우기 (0) | 2024.04.05 |
| [JAVA] 점프 투 스프링부트 - https://wikidocs.net/book/7601 (1) | 2024.04.04 |
| Java Default Heap/Perm Size 알아내는 방법 (0) | 2020.12.11 |





