Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
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
Tags
more
Archives
Today
Total
관리 메뉴

Skipalong's tistory

231220 TIL - CI/CD 본문

TIL

231220 TIL - CI/CD

Skipalong 2023. 12. 21. 00:07

오늘은 스탠다드반 수업때 배운 CI/CD에 대한 내용을 정리해보겠다.

 

CI(Continuous Integration) - 지속적인 통합

 

CI는 버그수정이나 새로운 기능들을 Git과같은 Repository에 주기적으로 build, test, merge되는 것을 의미한다.

협업을 할 때 여러가지 문제가 생길 수 있다. 서로 올린 코드가 conflict날수도 있고 테스트코드를 없이 검증되지않은 코드를 배포하게 될 수 도 있다.

conflict가 나는 문제는 코드 변경사항을 주기적으로 빈번하게 병합을 하는 것이다.

또 테스트코드없이 검증되지않은 코드를 배포하게될 수 있는 문제점은 PR 단계에서 코드리뷰를 거쳐서 merge될 수 있게 하고, 코드리뷰를 통과하면 CI Script가 실행되게 하여 build, test를 성공하면 그 뒤에 merge되게 자동화를 하는 것이다.

 

이렇게 CI를 통해 주기적인 merge로 conflict를 피해 생산성을 높이고 test를 통과해야 merge를 할 수 있기 때문에 UnitTest가 세분화되고 안정성있는 퀄리티가 향상된 코드를 만들 수 있게 된다.

 

CD(Continuous Delivery or Deployment) - 지속적인 제공 or 배포

 

CD는 회사에 따라 CI를 통해 전달된 코드를 개발자 또는 검증팀이 수동으로 검증을 한 뒤 배포를 할 수도있고, 배포과정까지 자동화하여 Release 준비가 되자마자 배포될 수 있게 하는 작업이다.

 

이러한 개발부터 검증, 배포까지의 과정을 CI/CD 라고 하고 

이를 사용하는 대표적인 툴들의 장단점을 정리해보겠다.

  1. Github Actions
    • 장점
      • Github와의 통합이 잘 되어있다.
      • 무료플랜에서 사용할 수 있다.
      • 비교적 최신기술이다.
    • 단점
      • 제한된 build time이 존재할 수 있다.
  2. Jenkins
    • 장점
      • 유연하고 확장성이 뛰어나다.
      • 다양한 플러그인이 지원된다.
      • 사용자가 많아서 커뮤니티가 활발하다.
    • 단점
      • 다양한 플러그인이 지원되는 만큼 설정이 복잡하다.

 

 

나는 아직 개발하고 github repository에 올리는 정도의 개발만 하고 있지만 최근에 aws특강도 들었고, aws에 관한 강의도 더 듣게되면 배포까지 하게 되는데 기초단계부터 CI/CD의 개념을 잘 활용해 문제를 최소화하고 퀄리티있는 코드를 짜고 배포과정까지 탄탄하게 익혀두고 싶다. 

 

 

'TIL' 카테고리의 다른 글

231222 TIL - JPQL 과 QueryDSL  (0) 2023.12.23
231221 TIL - @DynamicInsert, @DynamicUpdate  (1) 2023.12.21
231219 TIL - JpaRepository  (1) 2023.12.19
231218 TIL -Scheduler, Cron  (0) 2023.12.18
231215 TIL - Paging, Sorting  (0) 2023.12.16