
해당 포스팅은 Microservice와 Spring Cloud의 소개 파트의 강의를 듣고난 뒤 진행한 스터디에서 팀원들과 의문이 들었던 꼬리고민 들에 대해서 정리한 포스팅입니다.
지극히 개인적인 관점에서 여러 고민들과 함께 작성됐다는 점을 감안해주세요!
참고 포스팅
CI는 지속적 통합, CD는 지속적 제공/배포(Continous Delivery / Deployment)를 의미합니다.
" 소프트웨어 개발 라이플 사이클 " 을 간소화하고 가속화하는 것을 목표로 합니다.
💡 소프트웨어 개발 라이플사이클이란?
시스템 엔지니어링, 정보 시스템, 또는 소프트웨어 공학에서 정보 시스템을 계획, 개발, 시험, 채용하는 과정( 출처 : 위키백과 - 소프트웨어 개발 생명 주기 )
' 지속적 통합 '은 코드 변경 사항을 빌드, 테스트를 거쳐 공유 소스 코드 리포지토리(ex, github) 에 자동으로 자주 통합하는 사례를 의미합니다.
지속적 제공 또는 배포는 코드 변경 사항의 통합, 테스트 제공을 나타내는 사례를 나타냅니다.

위 그림처럼 연결된 두 사례를 " CI / CD 파이프라인 " 이라 부릅니다.
💡 CI와 Continuos Delivery의 차이는 뭐지?
CI가 코드의 지속적인 통합과 품질 관리에 집중하는 반면, CD는 그러한 코드를 안정적으로 프로덕션 환경에 배포할 준비를 하는 단계입니다.
CI는 개발의 초기 단계에 초점을 맞추고, CD는 개발의 마지막 단계, 즉 배포 준비 과정에 초점을 맞춥니다.
DevOps 는 말 그대로 '개발'(Development) 과 '운영(Operations)'이 합쳐진 단어이지만, 단순히 각 용어의 의미를 결합한 것은 아닙니다. 조금 더 포괄적인 의미를 나타냅니다.
DevOps는 새로운 소프트웨어 기능 개선 요청 또는 버그 수정 등 개발에서 배포에 이르는 프로세스의 속도를 높임으로써 더 빨리 프로덕션 환경에 전달되어 사용자에게 가치를 전달하도록 합니다.
CI/CD는 DevOps 방법론의 핵심적인 개념입니다.
현대에 들어 애플리케이션 개발 과정에서 접근 방식은 과거와 다른 프로세스가 필요합니다.
애자일 접근 방식이 그 중 하나입니다. 애자일 방법론의 12가지 원칙 중 첫 번째 원칙을 적용하기 위해서는 신속하고 지속적인 소프트웨어 제공을 통한 고객 만족을 달성해야 합니다.
이로 인해, CI/CD를 통해 가속화하여 수정하는 것이 DevOps의 핵심 기능이 되었습니다.
🌐 Reverse Proxy / Forward Proxy 정의 & 차이 정리