Home [PeachTri] CI/CD 설정하기
Post
Cancel

[PeachTri] CI/CD 설정하기

image

📌 CI/CD?

📎 코드는 만들고 끝일까?

우리가 코딩을 하다 보면 완성하고 끝!인 경우가 참 많다. 특히 어디에 배포를 하거나 서비스를 계속해서 유지하고자 하는 경우가 아니라면 더욱 그렇다. 하지만, PeachTri가 이루고자 하는 목표는 지속 가능한 서비스이다. 지속적으로 유지보수되고, 문제없이 서비스가 지속되기 위해서는 CI/CD가 꼭 필요하다.

📎 CI/CD란?

CI/CD는 Continuous Intergration (지속적 통합) / Continuous Deployment (지속적 배포)의 약자로써 다수의 개발자가 하나의 코드를 수정해도 계속적으로 통합관리되먀, 이 통합 관리된 코드가 계속해서 신뢰성 있게 배포되도록 하자는 개념이다.

🤝 Continuous Intergration 지속적 통합 코드의 품질이 관리될 수 있는 것을 뜻한다. 이러한 CI프로그램들은 코드가 깃의 브랜치에 병합되면 자동으로 빌드와 테스트를 통해서 검증한다. 해당 코드에 잠재적인 문제는 없는지, 구문문제와 같이 쉽게 발생 가능한 문제들에 대해서도 바로바로 찾아서 알려준다. 이러한 프로그램을 통해서 개발자는 코드를 작성하고 일일이 빌드 테스트를 하지 않아도, 혹은 임의의 테스트나 빌드에서 미처 걸러지지 못하는 문제들도 배포하기 전에 알 수 있게 된다.

🪂 Continuous Deployment 지속적 배포는 소프트웨어가 지속적 통합을 거치고 난 이후에도 신뢰할 수 있고, 바로 배포할 수 있는 것을 말한다. 이미 코드가 CI를 통하여 저장소에 업로드 되어 있다면, CD는 이를 배포환경으로 릴리즈 한다. 배포환경에서 발생할 수 있는 문제를 확인하고 문제가 없다면 정식 버전으로 배포를 진행하게 된다.

🧰 어떤 툴을 사용할 것인가?

우리는 소나큐브 + 젠킨스를 통해서 CI/CD환경을 구축하기로 했다.
현업에 있는 팀원이 추천한 조합이며, 강력한 CI/CD툴인 젠킨스와 구문분석 툴인 소나큐브를 합치면 분명히 우리 팀에게 있어서도 효과적일 것이라고 생각된다.
특히나 비용 하나만으로도 충분히 부담이 될 수 있는 소규모 프로젝트에서, 무료이면서 정보도 상당히 많은 젠킨스의 장점이 크며, 소나큐브 또한 오픈소스 프로젝트임의 장점이 존재한다. UI를 통한 대시보드도 지원한다는 장점이 존재한다.

image 깃허브와 젠킨스, 소나큐브

깃허브, 젠킨스, 소나큐브를 통한 다음과 같은 파이프라인으로 CI/CD를 이용할 계획이다.

🤖 자동화는 최고야

image
CI/CD파이프 라인까지 마무리 했고, GCP상에 존재하는 리눅스에 환경을 설정해야한다. 이런저런 글에 올라온 내용은 참 쉽지만, DB테이블 생성에서도 그랬듯이, 험난한 과정이 예상된다. 인턴과정과 함께 병행하는게 부담되지만(사실 그렇게 막 미친듯이 푸쉬하는게 아니긴 한데, 인턴과정과 스터디를 병행하면서 정말 짧은시간동안 지식이 미친듯이 들이칠 예정이다!) 잘 해내리라고 생각된다.

참고자료

CI/CD가 뭔가요? - 이론편

This post is licensed under CC BY 4.0 by the author.

[PeachTri] DB 생성

[Kotlin]Kotlin + Spring을 사용기