들어가기 앞서 . . .
CI/CD 실습에 들어가기에 앞서, 단순히 기술을 적용하는 데 그치지 않고 그 이면의 원리와 목적을 이해하는 것이 중요하다고 생각했다.
왜 개발자들이 CI/CD를 도입하는지, 어떤 문제를 해결할 수 있는지, 어떤 흐름으로 작동하는지를 먼저 이론적으로 정리하고자 한다.
이를 통해 실습 과정에서도 단순한 명령어 실행을 넘어서, 각 단계가 갖는 의미를 체감할 수 있을 것이라 판단했다.
또한 블로그 포스팅을 통해 학습한 내용을 정리함으로써, 나중에 실무에 적용할 때 참고 자료로도 활용할 수 있도록 정리해보았다.
CI/CD란?
CI/CD란 Continuous Integration(지속적인 통합), Continuous Deployment(지속적인 배포)라는 의미를 가지고 있다.
CI/CD는 테스트(Test) → 통합(Merge) → 배포(Deployment)의 과정을 자동화하는 걸 의미한다.
CI/CD는 왜 필요할까?
서비스를 운영하다보면 새로운 기능 추가나 예상치 못한 에러등에 의한 에러 수정, 기능 업데이트등 코드를 수정해야 할 일이 잦아지게된다.
CI/CD 적용 전에는 코드를 변경한 뒤 Commit을 한다. 그런 뒤에 브랜치에 Merge 후 배포를 한다.
배포를 할 때 직접 컴퓨터 서버(ex AWS EC2)에 접속해서 새로운 코드를 다운로드 받아서 빌드한 뒤 실행시켜주어야 한다.
이 과정을 코드의 수정이 일어날 때 마다 반복하기는 너무 귀찮고 번거로운 일이다.
이런 반복적인 과정을 자동화하기 위해 CI/CD를 사용하는 것 이다.
CI/CD 과정은 일반적으로 다음과 같이 이루어진다.
개발자가 특정 코드 개발을 한 뒤 Commit을 하면 빌드 되도록 셋팅한다.
빌드가 완료되면 테스트 코드를 실행하게 된다. (테스트 코드가 없는 경우에는 이 과정은 생략하기도 한다.)
테스트가 통과하면 실제 서버 컴퓨터에 최신 코드가 배포된다.
CI/CD 툴
CI/CD는 여러개의 툴이 존재한다.
- github Actions(깃허브 액션)
- Jenkins(젠킨스)
- Circle CI, Travls CI 등..
어떤 툴을 써야 좋을까? 각 툴마다 장단점이 존재하기때문에 장단점을 파악한 뒤 사용하는 것이 좋다.
현업에서 자주 쓰이는건 github Action과 Jenkins인 것 같다.
필자는 github Action을 통해서 CI/CD를 구축 할 예정이다.
Github Actions
jenkins는 별도의 빌드서버를 구축해야 한다는 단점이 있다. 이 때문에 서버를 빌리는 비용이 발생하게 된다.
하지만 Github Actions는 별도의 서버를 구축하지 않아도 되며, 무료로 이용 가능하기때문에 github Actions를 사용하기로 했다.
Github Actions를 활용한 전체적인 CI/CD 흐름
CI/CD 흐름을 이해하기 위한 Github Actions 개념 정리
Github Actions은 로직을 실행시킬 수 있는 일종의 컴퓨터라고 생각하면 된다.
CI/CD과정에서 Github Actions는 “빌드, 테스트, 배포”에 대한 로직을 실행시키는 역할을 한다.
CI/CD 전체 흐름
CI/CD의 구성 방식은 회사마다 다르고 개발자마다 다르다.
일반적으로 흘러가는 흐름을 한번 살펴보자.
- 개발자가 코드를 작성한 뒤 commit한다.
- 개발자가 Github에 commit들을 push 한다.
- Github Actions가 Push를 감지하여 Github Actions에 작성한 로직들을 실행시킨다.
- 빌드(Build)
- 테스트(Test)
- 배포(Deploy)
- 서버에서 배포된 최신 코드로 서버를 재실행한다.
마무리하며
CI/CD는 단순한 자동화가 아니라, 협업과 운영 효율성을 극대화하는 핵심 도구라는 점을 배웠다.
기존에는 수동으로 반복하던 빌드·테스트·배포 과정을 자동화함으로써 실수를 줄이고, 더 빠르게 사용자에게 서비스를 제공할 수 있게 된다.
Github Actions와 같은 도구를 활용하면 별도의 서버 없이도 효율적인 파이프라인을 구축할 수 있다는 점도 인상 깊었다.
이번 정리를 통해 CI/CD의 개념뿐만 아니라, 전체 흐름을 명확히 이해하게 되었고 앞으로 실습 및 프로젝트에 적용할 자신감도 생겼다.
무엇보다도, 변화하는 개발 환경에 적응하기 위한 필수 역량임을 체감했다.
'Github Actions' 카테고리의 다른 글
[Github Actions] Springboot 팀 프로젝트 CI/CD 구축하기 (0) | 2025.06.19 |
---|---|
[Github Actions] SpringBoot 개인 프로젝트 CI/CD 구축하기 (1) | 2025.06.18 |
[Github Actions] CI/CD를 구축해 자동 배포를 해보자. (0) | 2025.06.18 |