ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CI / CD
    카테고리 없음 2024. 2. 22. 02:01

    Jenkins, Docker, AWS 등을 적용하면서 CI/CD를 위해 사용하는 것을 알았지만 정확하게 왜 사용하는지 사용하면 편리한 점, 정확히 어떤 기능을 하는 지에 대해 잘 모르고 무작정 따라하기만 했다.

    CI/CD

    Continuous Integration/Continuous Delivery 는 지속적 통합 / 지속적 배포를 의미합니다.

    • continuous integration : 코드를 빌드, 테스트하고 합친다.
    • continuous delivery : 해당 repository에 릴리즈한다.
    • continuous deployment : 이를 실제 서비스에 배포한다.

    • CI/CD의 예시

    CI, Continuous Integration

    개발이 끝난 후 코드 품질을 관리하는 방식의 단점을 해결하기 위해 나타난 개념입니다.
    -> 개발을 하면서 코드에 대한 통합을 지속적으로 진행함으로써 품질을 유지하는 것

    새로운 코드의 변경 사항이 정기적으로 빌드, 테스트 되어 공유 repository에 병합되는 것입니다.
    ex) github
    Build, Test를 실시하는 프로세스를 의미하고 이러한 통합 프로세스를 상시로 실시하는 것입니다.
    하지만 CI를 하기 위해 직접 테스트하고, 통합하고 매일 반복하기에는 너무 귀찮기 때문에 CI의 자동화를 통해 좀 더 쉽게 테스트하고 병합할 수 있게 되었습니다.
    구현 단위 기준 혹은 UI 메뉴등으로 기준을 구분하여 개발하여 개발자는 github 등에 커밋합니다.
    이후 빌드 자동화 환경에서 컴파일 및 빌드 스크립트에 맞춰 결과물을 만들고, 이를 다시 기능 확인이 가능한 테스트 스크립트에 맞춰 테스트까지 진행합니다.
    만약 결과에 오류가 있을 경우 롤백하여 수정 후 다시 진행하게 되며 이러한 과정을 통해 자동화를 할 수 있습니다.

    CD, Continuous Delivery / Deploy

    소프트웨어가 항상 신뢰 가능한 수준에서 배포될 수 있도록 지속적으로 관리하는 개념입니다.
    -> 개발자의 변경사항을 repository에서 고객이 사용가능한 프로덕션 환경까지 자동으로 릴리스 하는 것입니다.

    CD를 하기 위해서는 당연히 CI가 선행되어야합니다.
    CI 프로세스를 통해 개발 중에 지속적으로 빌드와 테스트를 진행하여 이를 통과한 코드에 대해 테스트서버와 운영서버에 반영하는 것입니다.

Designed by Tistory.