CS Repo/소프트웨어 공학 - Clean Code & Architecture

빅뱅 방식 vs 이터레이션 방식

조금씩 차근차근 2025. 3. 3. 20:06

1. 빅뱅 방식

빅뱅 방식은 전체 시스템을 한 번에 전면적으로 변경하는 접근 방법이다. 초기 계획에서는 단기간 내에 모든 구성요소를 개편함으로써 빠른 변화를 기대하지만, 실제 적용 단계에서는 여러 가지 문제가 동시에 발생할 가능성이 높다.

  • 예시
    • 한 팀이 1년간 전면 개편을 목표로 개발에 착수하였다. 초기에는 “1년 동안 열심히 개발하면 모든 것을 한 번에 바꿀 수 있다”는 기대감이 팽배하였다.
    • 그러나 실제 적용 단계에 들어서자 “이 방식으로 진행하면 시스템 안정성이 우려된다”는 불안감이 확산되었고, 검증 과정에서 추가 6개월이 소요되었다.
    • 배포 단계에서는 마이그레이션 문제로 다시 6개월이 추가되었으며, 최종적으로는 롤백 절차에 1년이 더 소요되는 상황에 이르렀다.
    • 결과적으로 원래 계획된 1년이 3년으로 늘어났으나, 기대한 개편 효과는 도출되지 못하였다.
  • 특징 및 한계
    • 전체 시스템이 한 번에 변경되기 때문에, 진행 도중 개편을 중단할 경우 모든 리소스가 소모되고 낭비될 위험이 있다.
    • “모 아니면 도”라는 특성상, 롤백이나 수정의 여지가 거의 없어 한 번의 잘못된 선택이 치명적인 결과로 이어질 수 있다.

2. 이터레이션 방식

이터레이션 방식은 시스템을 여러 부분으로 나누어 단계별로 검증하고 배포하는 접근 방법이다. 각 단계마다 적용 결과를 확인할 수 있으므로, 전체 시스템에 미치는 영향을 최소화하고 지속적으로 개선해 나갈 수 있다.

  • 예시
    • 한 팀은 2주 간격의 짧은 개발 주기를 설정하여 개편 작업을 진행하였다.
    • 매 주기마다 변경된 부분을 검증한 후 배포하여, 실제 동작하는 소프트웨어를 통해 개편의 효과를 즉시 확인할 수 있었다.
    • 만약 예상치 못한 문제가 발생하더라도, 해당 주기의 범위 내에서 수정이 이루어져 전체 시스템에 미치는 위험이 제한되었다.
    • 이와 같이 단계별 적용을 통해 개편의 이득을 점진적으로 확인할 수 있었으며, 전체 일정과 리소스 관리가 효율적으로 이루어졌다.
  • 특징 및 장점
    • 부분 검증과 배포를 통해 불필요한 불안 요소를 제거하고, 각 단계의 결과를 바탕으로 지속적인 피드백이 가능하다.
    • 개발자들은 실제 적용된 결과물을 통해 성취감을 느끼며, 진행 상황에 대한 명확한 인식을 갖게 된다.
    • 일정 관리 및 리소스 배분 측면에서도 유연하게 대응할 수 있어, 조직 전체의 안정성과 효율성이 증대된다.

결론

대부분의 경우에선, 빅뱅보단 이터레이션 방식이 좋다.

회사 내에 리소스 관리 측면에서도 효율적이고, 즉각적인 효과를 볼 수 있기에 안정적인 운영이 가능해진다.

출처: https://www.youtube.com/watch?v=Eg0A07etSlg