목록으로

Programming Notes

E-Market #8 - Infra 1편 : Jenkins를 이용한 CI/CD 파이프라인 구축하기

E-Market 프로젝트가 개발 단계를 넘어 배포 단계에 접어들었습니다. 개발이 어느 정도 완료되었고, 이제는 개발팀 뿐 아니라 다른 팀들과도 코드를 공유하고 효율적인 배포 시스템을 구축해야 할 시점이죠. 그래서 이번 시리즈에서는 E-Market 프로젝트의 인프라 구축 과정을...

E-Market 프로젝트가 개발 단계를 넘어 배포 단계에 접어들었습니다. 개발이 어느 정도 완료되었고, 이제는 개발팀 뿐 아니라 다른 팀들과도 코드를 공유하고 효율적인 배포 시스템을 구축해야 할 시점이죠. 그래서 이번 시리즈에서는 E-Market 프로젝트의 인프라 구축 과정을 여러분과 공유하고자 합니다. 첫 번째 이야기는 바로 Jenkins를 활용한 CI/CD 파이프라인 구축입니다. 본 시리즈를 통해 복잡한 배포 과정을 자동화하고, 빠르고 안정적인 배포 환경을 구축하는 방법을 자세히 살펴보겠습니다. 이 글에서는 Jenkins를 이용한 초기 CI/CD 파이프라인 설정과 Jar 파일 배포 및 실행 과정을 중점적으로 다룹니다. 다음 편에서는 더욱 발전된 모니터링 환경 구축 및 무중단 배포를 위한 Docker 활용에 대해 다룰 예정입니다.

Jenkins를 이용한 CI/CD 파이프라인은 개발 과정의 자동화를 가능하게 해줍니다. 우선, 개발자가 코드를 Git 저장소에 push 하면 Jenkins가 자동으로 코드 변경 사항을 감지합니다. 그 후, Jenkins는 사전에 설정된 job을 실행하여 코드 컴파일, 단위 테스트, 그리고 Jar 파일 생성까지 자동으로 진행합니다. 이 과정에서 발생하는 모든 에러는 Jenkins 콘솔을 통해 실시간으로 확인할 수 있습니다. Jar 파일 생성이 완료되면, Jenkins는 생성된 Jar 파일을 Prod 서버로 안전하게 전송합니다. 마지막으로, Prod 서버에서는 전송받은 Jar 파일을 실행하여 서비스를 배포합니다. 이 모든 과정은 Jenkins의 파이프라인 기능을 사용하여 시각적으로 관리하고, 각 단계의 성공/실패 여부를 쉽게 확인할 수 있도록 구성했습니다. Jenkinsfile을 사용하여 파이프라인을 정의함으로써 코드로써 파이프라인을 관리하고 버전 관리를 할 수 있도록 하였습니다. 여기에는 빌드, 테스트, 배포 등 각 단계별 명령어들이 스크립트 형태로 작성되어 있으며, 필요에 따라 추가적인 스크립트를 추가하여 기능을 확장할 수 있습니다. 예를 들어, 특정 단계에서 특정 명령어 실행 전후에 로그를 남기거나 이메일 알림을 보내는 등의 기능을 추가할 수 있습니다.

본 글에서는 Jenkins를 이용한 기본적인 CI/CD 파이프라인 구축을 다루었습니다. 이는 E-Market 프로젝트의 배포 프로세스를 자동화하고 효율성을 높이는 첫걸음입니다. 하지만, 더욱 안정적이고 확장 가능한 시스템을 구축하기 위해서는 모니터링 시스템과 무중단 배포 전략이 필요합니다. 다음 편에서는 Spring Boot Actuator, Prometheus, Grafana를 활용한 모니터링 시스템 구축과 Docker를 이용한 무중단 배포 설정에 대해 자세히 설명하겠습니다. 이를 통해 더욱 강력하고 효율적인 CI/CD 파이프라인을 완성하고, E-Market 프로젝트의 안정적인 서비스 운영을 위한 기반을 마련할 수 있을 것입니다. 향후, 더욱 발전된 CI/CD 구축 방법과 다양한 기술들을 활용하여 프로젝트를 더욱 고도화하는 과정 또한 공유할 예정입니다. 계속해서 E-Market 프로젝트 인프라 시리즈에 많은 관심 부탁드립니다.