90DaysOfDevOps (Day 91)

고태규·2026년 2월 8일

DevOps

목록 보기
86/87
post-thumbnail

해당 스터디는 90DaysOfDevOps
https://github.com/MichaelCade/90DaysOfDevOps
를 기반으로 진행한 내용입니다.

Day91 - Team Topologies and Platform Engineering


1. 빠른 흐름의 본질과 역 컨웨이 전략의 필요성


데브옵스는 소규모 자율 팀이 피드백을 기반으로 빠르게 소프트웨어를 배포하는 것의 가치를 증명했다.

하지만 진정한 의미의 빠른 흐름을 달성하기 위한 조직적, 문화적 변화는 여전히 미진한 상태다.

우리는 기술보다 팀 구조와 상호작용에 주목해야 한다.

1-1. 흐름과 사회-기술적 복잡성

여기서 말하는 흐름이란 단순히 코드를 빨리 짜는 것이 아니라, 코드가 프로덕션 환경에 도달하기까지의 경로에 있는 모든 장애물을 제거하는 것을 의미한다.

이는 서로 다른 팀과 도메인 간의 의존성을 해결하고, 팀 외부로 뻗어 있는 복잡한 기술의 덤불을 정리하는 과정이다.

즉, 빠른 흐름은 주변의 사회-기술적 환경 전체를 단순화하여 가치를 더 빠르고 일관되게 전달하는 것이다.

이러한 환경의 복잡성은 벤더의 제약, 예산 문제, 기술의 역사적 상태, 기존 팀 구조의 한계, 기술 부채 등 타당하고 역사적인 이유들로 인해 발생한다.

따라서 모든 조직은 고유하며, 남들이 하는 방식을 그대로 따르는 것이 아니라 각 조직의 맥락에 맞는 독자적인 접근 방식이 필요하다.

1-2. 컨웨이의 법칙과 역 컨웨이 전략

조직 구조를 논할 때 컨웨이의 법칙(Conway's Law)은 매우 중요하다.

이 법칙은 조직은 그 조직의 의사소통 구조를 반영한 시스템을 설계하게 된다는 것을 의미한다. 쉽게 말해 여러분은 조직도를 소프트웨어로 배포한다는 것이다.

문제는 실제 업무 현장에서는 사람들이 깔끔한 조직도에 구애받지 않고, 일을 처리하기 위해 필요한 사람과 무분별하게 소통한다는 점이다.

이는 조직도가 실제 소프트웨어 전달 흐름을 돕기는커녕, 서로 필요한 사람들을 멀리 떨어뜨려 놓음으로써 상황을 악화시킬 수 있음을 시사한다.

팀 토폴로지는 이를 뒤집는 역 컨웨이 전략(Reverse Conway Maneuver)을 제안한다.

이는 만들고자 하는 소프트웨어 아키텍처와 시장에 전달하려는 가치에 맞춰 조직도를 역으로 설계하는 것이다.

소프트웨어의 설계는 더 이상 팀의 설계와 분리될 수 없다.

기술보다 팀을 우선순위에 두고, 팀 간의 불필요한 의존성을 줄여야 더 좋은 소프트웨어가 나온다는 것이 이 전략의 핵심이다.


2. 인지 부하의 한계와 플랫폼 팀의 역할


팀 토폴로지에서 가장 중요한 개념 중 하나는 팀이 감당할 수 있는 인지 부하(Cognitive Load)를 관리하는 것이다.

이는 플랫폼 엔지니어링이 등장하게 된 직접적인 배경이 된다.

2-1. 스트림 정렬 팀(Stream-aligned Teams)의 딜레마

스트림 정렬 팀은 비즈니스 가치 흐름에 맞춰 구성된 팀으로, 회사의 수익 창출에 가장 가까이 위치한다.

이들은 상류 의존성은 적고 하류 의존성은 많은 특징을 가진다.

하지만 이 팀들이 모든 것을 다 할 수는 없다.

던바의 수(Dunbar's number)에 따르면 인간이 맺을 수 있는 사회적 관계에는 한계가 있으며, 이는 팀이 감당할 수 있는 인지 부하의 총량에도 한계가 있음을 의미한다.

스트림 정렬 팀이 비즈니스 로직 개발뿐만 아니라 클라우드 인프라, 네트워킹, 보안, CI/CD 등 모든 기술적 세부 사항까지 신경 써야 한다면, 그들의 인지 부하는 한계치를 초과하게 되고 결국 비즈니스 가치 전달 속도는 느려질 수밖에 없다.

2-2.플랫폼 팀(Platform Teams): 인지 부하를 줄이는 해결사

여기서 플랫폼 팀이 등장한다.

플랫폼 팀의 존재 목적은 하부 인프라(클라우드, K8s, IAM, DB 등)를 담당하여 스트림 정렬 팀이 비즈니스 문제 해결에만 집중할 수 있도록 돕는 것이다.

  • 자동차와 타이어의 비유: 자동차 제조사(스트림 정렬 팀)는 타이어를 직접 만들지 않고 전문 타이어 제조사(플랫폼 팀)의 제품을 받아 조립한다. 제조사는 여전히 타이어를 차에 장착할 책임이 있지만, 고무의 배합 비율이나 트레드 패턴 제조법까지 알 필요는 없다.

  • DevOps의 유지: 이는 Dev과 Ops을 다시 분리하는 것이 아니다. "직접 만든 사람이 직접 운영한다(You build it, you run it)"는 원칙은 여전히 유효하다. 다만, 운영하기 쉬운 컴포넌트를 제공받아 운영의 난이도를 낮추는 것이다.

2-3. 플랫폼 팀이 제공하는 가치와 상호작용 모드

플랫폼 팀은 복잡한 기술을 추상화하여 서비스로서(As-a-Service) 제공한다.

  1. 속도와 품질: 이미 검증된 상용 컴포넌트를 사용하므로 직접 구축할 필요가 없어 전달 속도가 빨라지고 품질이 보장된다.

  2. 자율성: API와 문서 기반의 셀프 서비스로 제공되므로, 플랫폼 팀에 티켓을 보내거나 회의를 요청할 필요 없이 즉시 사용할 수 있다. (AWS를 쓸 때 아마존 직원에게 허락받지 않는 것과 같다.)

  3. 조력(Facilitating): 서비스 제공 외에도, 플랫폼 팀의 전문가는 스트림 정렬 팀이 해당 서비스를 잘 활용할 수 있도록 코칭하고 베스트 프랙티스를 공유하는 '조력자' 역할을 수행한다. 이는 일시적인 상호작용이다.


3. 슬로이피케이션(Slow-ification)과 지속적 진화


플랫폼 엔지니어링을 조직에 성공적으로 도입하기 위해서는 단순한 기술적 구현을 넘어선 전략적 접근과 리더십의 지원이 필수적이다.

3-1.시작점 찾기: 공통된 과제

시작은 여러 팀이 공통적으로 겪고 있는 고통스러운 지점(Pain Point)을 찾는 것이다.

보통 기술 스택의 하단부인 컨테이너, 가상 머신(VM), 데이터베이스, IAM 등이 좋은 후보가 된다.

적은 수의 팀이 의존하는 작은 컴포넌트부터 시작하여 성공 사례를 만들고, 이를 조직 전체로 확산시키는전략이 유효하다.

3-2.핵심 전략: 슬로이피케이션(Slow-ification)

발표자는 책 『Wiring the Winning Organization』에서 소개된 '슬로이피케이션(Slow-ification)' 개념을 강조한다.

이는 "속도를 높이기 위해 일시적으로 속도를 늦추는 것"을 의미한다.

  • 시스템 2 사고(System 2 Thinking): 일상적인 업무 처리(시스템 1 사고)를 멈추고, 문제의 근본적인 해결책을 만들기 위해 깊고 창의적이며 노력이 필요한 사고(시스템 2 사고)를 해야 한다. 이는 톱질을 멈추고 톱날을 가는 시간과 같다.

  • 리더십의 지원: 이 과정은 외부에서 볼 때 "당장 필요한 일을 안 하고 있는 것"처럼 보일 수 있다. 따라서 매니저의 강력한 하향식(Top-down) 지원과 보호가 없으면, 팀은 압박을 이기지 못하고 다시 예전의 비효율적인 방식으로 돌아가게 된다.

3-3.진화하는 조직과 도메인 주도 설계(DDD)

팀 구조와 책임은 한 번 정하면 끝나는 정적인 것이 아니다.

조직이 성숙하고 시장 상황이 변함에 따라 팀 토폴로지는 계속 진화해야 한다.

완벽한 팀 구조는 존재하지 않으며, 현실은 언제나 복잡하고 중복과 비효율이 존재한다. 중요한 것은 완벽함이 아니라 시간이 지남에 따라 흐름이 개선되는 방향성이다.

조직이 커질수록 올바른 팀 경계를 찾기 위해 도메인 주도 설계(DDD)를 활용해야 한다.

특히 '독립 서비스 휴리스틱(Independent Service Heuristic)'을 활용해 볼 수 있다.

이는 "이 컴포넌트나 기능을 독립적인 SaaS 서비스로 판매할 수 있는가?"라고 자문해 봄으로써 팀과 도메인의 경계를 명확히 설정하는 데 도움을 준다.

결론적으로, 팀 토폴로지와 플랫폼 엔지니어링은 인지 부하를 관리하고 빠른 흐름을 만들어내기 위해 조직 구조와 기술 아키텍처를 일치시키는 끊임없는 여정이다.


4. 결론


팀 토폴로지와 플랫폼 엔지니어링은 단순한 조직 개편이 아니라, 인지 부하를 관리하여 지속 가능한 빠른 흐름을 만드는 전략이다.

완벽한 구조는 없기에, 조직은 끊임없이 진화하며 상황에 맞는 유연한 팀 구조를 찾아야 한다.


0개의 댓글