기술 부채가 쌓인 제품을 성공적으로 리빌드하는 여정

Prakriti Mateti, "One does not simply... rebuild a product"

작성자
EuRuKo
발행일
2025년 02월 24일

핵심 요약

  • 1 오래된 모놀리식 제품의 심각한 기술 부채와 진화하는 고객 요구사항으로 인해 혁신이 어려워지자, 전면적인 제품 리빌드가 결정되었습니다.
  • 2 기술 부채 식별, 부분적 재설계 시도, 그리고 이해관계자들의 적극적인 동의를 얻는 과정을 거쳐 'Like for Like' 원칙하에 첫 번째 'Self-Reflections' 기능을 성공적으로 재구축했습니다.
  • 3 이 리빌드는 배포 시간 단축, 사용자 경험 개선, 개발자 생산성 향상 등 측정 가능한 성과를 달성했으며, 제품 성장을 위한 기반을 마련했습니다.

도입

본 강연은 Culture Amp의 엔지니어링 디렉터인 Pri가 수년간 누적된 기술 부채와 노후화된 아키텍처로 인해 혁신 동력을 잃어가던 자사 제품을 전면적으로 리빌드한 과정을 공유합니다. 기존 제품은 프런트엔드와 백엔드 두 개의 모놀리스로 구성되어 있었으며, 도메인/데이터 모델, 백엔드 아키텍처 모두 시대에 뒤떨어져 있었고, 고객 요구사항 변화에 대응하기 어려운 상태였습니다. 또한, 다수의 팀이 동일 코드베이스에서 작업하며 높은 결합도와 낮은 오너십으로 인해 개발 속도가 현저히 느려지고 엔지니어링 문화에도 부정적인 영향을 미쳤습니다. 이러한 문제점들로 인해 장기적인 제품 성장과 시장 선도에 한계가 명확해지자, 과감한 리빌드를 통해 새로운 도약을 모색하게 되었습니다.

제품 리빌드는 여러 단계를 거쳐 진행되었습니다. 첫 번째 단계는 ‘재구축의 필요성 인식’이었습니다. 팀은 모놀리스 내의 모든 기술 부채를 식별하고 분류하여 경영진 및 유관 부서에 명확히 전달함으로써 문제의 심각성을 공유했습니다. 기술 부채를 부분적으로 해결하거나 아키텍처를 재설계하려는 시도가 있었지만, 시장 선도라는 목표를 달성하기에는 너무 느리다는 결론에 도달했습니다. 이 과정에서 투명한 소통과 다양한 시도를 통해 리빌드 제안에 대한 조직의 수용도를 높일 수 있었습니다.

두 번째 단계는 ‘전사적인 동의 확보’였습니다. 팀은 제품이 나아가야 할 방향을 명확히 제시하고, 새로운 아키텍처가 가져올 기회(Radar of Opportunities)를 시각화하여 공유했습니다. 제약 없는 이상적인 아키텍처 브레인스토밍을 통해 리빌드의 필요성을 검증하고, 외부 전문가의 자문을 받아 계획의 신뢰성을 높였습니다. 특히, 고객 가치를 최우선으로 하는 스토리텔링과 이해관계자들을 모든 논의 과정에 포함시켜 최종 의사결정 시 놀라움이 아닌 공감대를 형성하는 데 주력했습니다. 이 단계에서 Hanami에서 Rails로의 기술 스택 변경과 같은 중대한 결정이 있었으며, 이는 상당한 노력을 수반했습니다.

세 번째 단계는 ‘첫 번째 조각(First Slice)의 성공적인 출시’였습니다. 전체 리빌드 중 ‘Self-reflections’ 기능을 첫 번째 목표로 설정했습니다. 이는 고객 사용 빈도가 높고, 기술 부채가 가장 심각하며, 상대적으로 독립적인 도메인이었기 때문입니다. 핵심 원칙으로는 ‘Like for Like’(기존 기능 유지, 새 기능 추가 없음), ‘Phase the Monoliths’(구 버전과의 분리 및 폐기), ‘Be Deliberate’(높은 엔지니어링/디자인 표준 유지)를 세웠습니다. 또한, 제품 리빌드와 동시에 팀 문화를 재구축하고, 고성능 팀을 만드는 것을 목표로 삼았습니다. Goldilocks Time Frame 설정, 핵심 인력으로 구성된 전담 팀 구성, 내부 표준 준수, 그리고 내부 PR 캠페인을 통해 팀의 성공을 지원했습니다.

리빌드의 결과는 매우 긍정적이었습니다. 가장 중요한 성과는 측정 가능한 지표를 통해 입증되었습니다. 사용자 경험 측면에서는 Largest Contentful Paint(LCP) 평균 시간이 3.3초에서 1.5초로 단축되었고, 개발자 경험 측면에서는 프런트엔드 배포 시간이 20~40분에서 10분 미만으로, 백엔드 배포 시간은 40~60분에서 5분 미만으로 대폭 개선되었습니다. 또한, 디자인 시스템 도입률과 접근성도 크게 향상되었습니다. 비록 초기 목표 날짜를 맞추지는 못했지만, 팀이 제시한 첫 번째 추정치에 매우 근접하게 출시되었으며, 적은 수의 인시던트로 대규모 고객에게 성공적으로 배포되었습니다. 이러한 성공은 나머지 리빌드 작업에 대한 확신을 주었고, 현재는 총 6개의 조각 중 4개가 거의 완료 단계에 있습니다.

결론

이 리빌드 여정은 단순한 기술 프로젝트를 넘어, 조직의 문화와 팀 역량을 함께 성장시키는 과정이었습니다. 초기에는 목표 설정의 어려움, 팀원 간의 비협조, 의존성 관리 미숙 등 여러 난관에 부딪혔지만, 명확한 의사결정 프레임워크와 과감한 범위 보호를 통해 이를 극복했습니다. 특히, 리빌드의 성공을 측정하기 위해 사용자 경험 및 개발자 경험 지표를 활용한 것이 주효했습니다. 본 강연은 도메인 모델이 제품의 발전을 저해하고, 팀이 비효율적으로 운영되며, 제품이 시장 잠재력을 발휘하지 못할 때, 그리고 다른 모든 방법을 시도한 후에도 해결되지 않을 때, 전면적인 리빌드가 최선의 선택이 될 수 있음을 강조합니다. 이는 단순히 기술적인 재작성을 넘어, 조직 전체의 변화와 성장을 이끌어내는 전략적 투자가 될 수 있음을 보여줍니다.

댓글 0

댓글 작성

0/1000
정중하고 건설적인 댓글을 작성해 주세요.

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!