일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 김영한
- BreadcrumbsComputer-Networking_A-Top-Down-Approach
- recoverability
- 시스템프로그래밍
- 쉬운코드
- 코딩애플
- CPU 스케줄링
- vite
- 백엔드
- 반효경
- 커널 동기화
- 데이터베이스
- Git
- 시그널 핸들러
- 온디바이스AI
- 코딩테스트 [ ALL IN ONE ]
- 운영체제
- SQL
- 운영체제와 정보기술의 원리
- 트랜잭션
- 쉬운 코드
- 개발남노씨
- B tree 데이터삽입
- SDK
- Extendable hashing
- 네트워크
- concurrency control
- 프로세스 주소 공간
- 갤럭시 S24
- 인터럽트
- Today
- Total
티끌모아 태산
CI/CD를 왜 배우는 걸까? 본문
✅CI/CD란?
CI/CD란 Continuous Integration, Continuous Deployment라는 의미를 갖고 있다. 쉽게 말해 CI/CD는 테스트(Test), 통합(Merge), 배포 (Deploy)의 과정을 자동화하는 걸 의미한다.
CI/CD를 왜 배울까?
예를들어, 서버를 AWS EC2에 배포하고 운영하다보면 코드 수정 혹은 새로운 기능을 추가하는 일이 많아진다. 그러면 새로운 기능에 대한 코드를 작성한 후 Commit을 한다. 그런 뒤 브런치에 Merge를 하고 배포를 한다. 배포를 할 때, 직접 수동으로 컴퓨터 서버 (ex. AWS EC2)에 접속해서 새로운 코드를 다운받아 실행시켜야한다.
이 과정을 새로운 기능 추가 또는 코드의 수정이 일어날 때마다 반복하기란 너무 귀찮은 일이다. 그래서 이런 반복적인 과정을 자동화 시키기 위해서 CI/CD를 배우는 것이다.
CI/CD 과정은 일반적으로 다음과 같은 과정으로 일어난다.
특정 기능을 개발하고 완료해서 Commit을 찍으면 빌드가 되게 셋팅된다. 빌드가 완료되면 작성한 테스트 코드를 실행시킨다. ( 테스트 코드를 작성하지 않은 서비스에서는 이 과정을 생략하기도 한다. ) 그런 뒤 테스트가 통과되면 서버 컴퓨터에 최신 코드가 배포된다.
✅CI/CD를 구축할 때 사용할 Github Actions
CI/CD를 구축할 때 사용하는 툴은 여러가지가 있다.
- Github Actions - 별도의 서버 구축 필요 없음
- Jenkins - 별도의 서버 구축 필요
- Circle CI
- Travis CI
- 등등
이 중에서 현업에서 많이 사용하면서, 무료로 사용할 수 있고, 빌드용 서버가 따로 필요없는 Github Actions를 활용해서 CI/CD를 구축할 수 있다. 실제 현업에서는 Github Actions 뿐만 아니라 Jenkins도 많이 활용한다. 둘 중 무엇을 사용해도 CI/CD 구성을 전부 할 수 있다. 그러므로 Github Actions를 사용할 지, Jenkins를 사용할 지는 장단점을 비교해서 상황에 맞게 선택하면 된다. 개인적으로 추천하는 툴은 Github Actions이다.
- Jenkins의 단점은 별도의 서버를 구축해야 한다는 점이다. 하지만 Github Actions는 빌드용 서버 구축 없이 Github에 내장되어 있는 Github Actions 기능을 사용할 수 있다.
- Github Actions는 비용적인 측면도 유리하고 셋팅하는 데 시간도 적게 걸린다.
Github Actions를 활용한 전체적인 CI/CD 흐름
Github Actions를 로직을 실행시킬 수 있는 일종의 컴퓨터라고 생각하면 된다. 그렇기 때문에 CI/CD과정에서 Github Actions는 "빌드, 테스트, 배포"에 대한 로직을 실행시키는 역할을 하게 된다. CI/CD의 구성은 다양하지만 일반적으로 아래의 흐름을 같는다.
- 코드 작성 후 Commit
- Github에 push
- Push를 감지해서 Github Actions에 작성한 로직이 실행된다.
- 빌드(Buid)
- 테스트(Test)
- 서버로 배포(Deploy)
- 서버에서 배포된 최신 코드로 서버를 재실행
'백엔드 > DevOps' 카테고리의 다른 글
백엔드 CI/CD에 필요한 AWS 지식 (1) | 2024.06.02 |
---|