축소에 대비하는 아키텍처: 팀 규모 감소 시대의 개발 전략

Architecture for Contraction

작성자
발행일
2025년 10월 13일

핵심 요약

  • 1 성장 중심의 전통적인 아키텍처 설계 방식은 팀 규모가 축소될 때 유지보수 복잡성과 인지 부하를 가중시켜 지속 불가능합니다.
  • 2 엔지니어 대 리포지토리 비율을 관리하고, 모놀리스를 선호하며, 움직이는 부품을 최소화하여 인수인계가 용이하고 단순한 아키텍처를 구축해야 합니다.
  • 3 미래의 팀 규모 축소를 가정하여 설계함으로써, 복잡성을 줄이고 내구성과 회복탄력성을 높이는 새로운 개발 플레이북이 필요합니다.

도입

지난 10년간 우리는 더 많은 트래픽, 사용자, 엔지니어를 수용하기 위한 '확장'에 최적화된 아키텍처 설계에 집중해왔습니다. 이는 서비스를 분할하고 팀에 매핑하며, 조직 구조에 맞춰 시스템을 구축하는 방식으로 이어졌습니다. 그러나 2023년, 2024년, 그리고 현재 2025년의 현실은 미래가 항상 더 커지는 것만은 아니라는 점을 보여줍니다. 이제 우리는 '팀 규모가 작아진다면?'이라는 질문을 던져야 할 때입니다. 현재보다 적은 엔지니어, 적은 시간, 적은 유지보수 자원을 가정하고 아키텍처를 설계한다면 무엇이 달라질까요?

성장 중심의 아키텍처 플레이북은 더 이상 모든 상황에 적합하지 않습니다. Amazon, Google, Netflix, Facebook과 같은 FAANG 기업에서 유래한 마이크로서비스, 팀 자율성, 서비스 경계와 같은 개념들은 인력 증강을 전제로 합니다. 하지만 대부분의 기업은 FAANG처럼 지속적으로 성장하지 않으며, 인력 증감 주기를 겪습니다. 이러한 환경에서 단순히 팀이 많다는 이유로 시스템을 분할하는 것은 팀이 사라졌을 때 막대한 유지보수 부담을 남깁니다. 본문은 이러한 문제의식을 바탕으로 다음과 같은 핵심 내용을 제시합니다.

엔지니어 대 리포지토리 비율의 중요성

  • 엔지니어 15명이 50개의 리포지토리를 책임지는 상황은 비정상적입니다. 이는 대부분 한 명의 ‘하이퍼 동기 부여된’ 엔지니어에게 의존하게 되며, 그가 떠나면 해당 리포지토리들은 소유자 없이 방치됩니다.

  • 모든 리포지토리는 유지보수, 의존성 패치, CI/CD 파이프라인 관리 등 추가적인 비용과 복잡성을 발생시킵니다.

  • 플랫폼 팀이 이러한 문제를 해결할 수 있지만, 소규모 팀은 제품 개발과 인프라 관리를 모두 담당해야 하는 이중고를 겪습니다.

불필요한 복잡성(Excess)과 회복탄력성(Redundancy)

  • 회복탄력성(Redundancy)은 시스템이 아닌 사람에 대한 중복성을 의미합니다. 두 명이 배포 가능하고, 세 명이 결제 흐름을 이해하는 등 특정 인력에 대한 의존도를 낮춰 ‘버스 팩터’에 대비하는 것입니다.

  • 불필요한 복잡성(Excess)은 10개 서비스로 충분한 것을 3개로 만들거나, 1개 리포지토리로 충분한 것을 4개로 만드는 등 과도한 분할과 조율 오버헤드를 의미합니다. 우리는 회복탄력성은 필요하지만, 불필요한 복잡성은 감당할 수 없습니다.

축소를 위한 아키텍처 설계 원칙

  • 모놀리스 선호: 명확한 이유가 없다면 모놀리스를 선호하여 조정 비용을 최소화합니다. ‘미래에 엔지니어를 더 고용할 수도 있다’는 충분한 이유가 아닙니다.

  • 리포지토리 수 관리: 현재 리포지토리 수를 파악하고, 엔지니어 대 리포지토리 비율이 팀 규모가 축소되어도 지속 가능한지 평가합니다.

  • 움직이는 부품 최소화: 모든 서비스는 배포, 모니터링, 유지보수 비용을 발생시키므로, 가능한 한 적은 수의 구성 요소로 시스템을 구축합니다.

  • 인수인계 고려 설계: 개발자가 퇴사하거나 휴가를 갈 것을 가정하여, 특정 인력 없이도 시스템이 유지될 수 있도록 설계합니다.

  • 인지 부하 감소: 온보딩에 3주가 걸린다면 아키텍처가 너무 복잡한 것입니다. 3일 이내로 단축할 수 있도록 단순화해야 합니다.

  • 과도한 선행 설계 지양: 현재 20명의 엔지니어 팀에 100명 규모의 아키텍처를 미리 설계할 필요는 없습니다.

결론

이제 우리는 '어떻게 확장할 것인가?' 대신 '어떻게 단순하게 유지할 것인가?'를 질문해야 합니다. '10배 규모에서는 어떨까?'가 아닌 '0.5배 규모에서는 어떨까?'를 고민해야 할 때입니다. 지난 10년간 지배적이었던 성장 중심의 플레이북은 이제 한계에 다다랐습니다. 우리는 더 적은 것을 가정하고, 복잡성을 정교함으로 오인하지 않으며, 성장이 아닌 내구성(durability)에 최적화된 새로운 플레이북이 필요합니다. 적은 자원으로 더 많은 것을 할 수 있는 팀은 단순히 효율적일 뿐만 아니라, 현재 우리에게 가장 필요한 '회복탄력성'을 갖춘 팀이기 때문입니다. Planet Argon과 같은 전문 팀들은 Rails 팀이 이러한 복잡성을 줄이고 유지보수성을 높여, 영웅적인 노력 없이도 시스템이 안정적으로 운영되도록 돕는 역할을 수행합니다.

댓글 0

로그인이 필요합니다

댓글을 작성하거나 대화에 참여하려면 로그인이 필요합니다.

로그인 하러 가기

아직 댓글이 없습니다

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