1. CI/CD

CI/CD는 지속적 통합(Continuous Integration)과 지속적 배포(Continuous Deployment 또는 Continuous Delivery)를 의미한다.
이 프로세스를 통해 개발팀은 코드 변경사항을 빠르게 통합하고 테스트하며, 문제 발생 시 신속하게 수정할 수 있다.

  • 지속적 통합(CI): 각 개발자의 코드 변경사항을 정기적으로 메인 코드베이스에 통합하여, 변경사항이 빈번하게 발생하더라도 일관된 소프트웨어 상태를 유지한다.
  • 지속적 배포/전달(CD): CI를 통해 검증된 코드를 자동으로 배포하여, 사용자에게 빠르게 기능을 제공하는 과정을 의미한다.

요즘 소프트웨어 개발에서는 Agile 방법론을 많이 사용하고 있으며, CI/CD는 이러한 Agile 방식과 매우 잘 맞는다.

2. 소프트웨어 개발 방식과 CI/CD

개발자들은 자신이 맡은 기능을 구현한 후, 구현 과정에서 변경한 코드를 하나의 main 브랜치에 커밋한다. 하지만 여러 명의 개발자가 동시에 코드를 수정할 경우, 코드 병합 과정에서 회귀 결함이나 코드 충돌이 발생할 수 있다.

CI/CD는 이러한 문제를 해결하는 데 도움을 준다. 코드 변경사항을 자동으로 테스트하고 통합하여 병합 시 발생할 수 있는 문제를 사전에 방지하며, 애플리케이션이 안정적으로 배포되도록 보장한다.

Agile 개발 방식

Agile 개발은 팀원들이 동시에 같은 요구사항을 바탕으로 협업하여 작업하는 방식을 말한다.
애플리케이션 개발은 반복적인 스프린트(Sprint)를 통해 점진적으로 완성되며,
각 스프린트는 일정 기간 내에 특정 요구사항을 처리하는 단위로 구성된다.

Sprint

Agile 개발에서는 애플리케이션의 요구사항을 우선순위에 따라 분류하고, 각 요구사항을 중심으로 개발을 진행한다.
특정 요구사항을 분석하고 구현하는 데 할당된 기간을 Sprint라고 한다.
일반적으로 2주 또는 4주 단위로 설정되며, 각 스프린트마다 개발 진행 상황을 점검하고 결과물을 배포한다.

RAD(Rapid Application Development) 개발

RAD는 신속한 소프트웨어 개발을 목표로 하는 방법론이다.
이 방식은 Agile 개발과 비슷하게 짧은 기간 내에 개발 결과를 도출하며, 개발 프로세스의 각 단계에서 팀원들이 각자의 역할을 수행한다.

RAD는 주로 사용자의 요구사항이 빠르게 변화하는 프로젝트에서 효과적이다.
빠른 프로토타이핑과 빈번한 사용자 피드백을 기반으로 하는 RAD는 짧은 주기로 제품을 출시하고, 그 결과를 통해 계속해서 개선하는 개발 방식이다.

댓글남기기