소유권 맵 - Archyl Docs

인터랙티브 버블, 종속성 라인, 커버리지 추적으로 아키텍처 전반의 팀 및 사용자 소유권을 시각화

소유권 맵

소유권 맵은 전체 아키텍처에서 누가 무엇을 소유하는지 한눈에 파악할 수 있는 뷰를 제공합니다. 팀과 사용자는 소유한 요소 수에 비례하는 크기의 인터랙티브 버블로 표시됩니다. 버블 위에 마우스를 올리면 소유자 간 종속성 라인이 나타나고, 클릭하면 해당 팀이나 사용자가 담당하는 요소를 상세히 확인할 수 있습니다.

핵심 개념

소유자

모든 C4 요소(시스템, 컨테이너, 컴포넌트)에 하나 이상의 소유자를 지정할 수 있습니다:

소유자 유형 설명
조직 내 팀입니다. 스쿼드, 길드 또는 도메인 팀을 나타내는 데 적합합니다.
사용자 개별 사용자입니다. 단독 관리자 또는 개인 책임 추적에 유용합니다.

하나의 요소에 팀 소유자와 사용자 소유자를 동시에 지정할 수 있습니다. 소유자가 없는 요소는 미소유 상태로 추적되며 커버리지 격차에 포함됩니다.

커버리지

커버리지는 아키텍처 요소 중 최소 하나의 소유자가 지정된 비율을 측정합니다. 소유권 맵 헤더에는 다음이 표시됩니다:

  • 전체 커버리지 비율 - 녹색(80% 이상), 주황색(50-79%), 빨간색(50% 미만)으로 색상 구분
  • 레벨별 분석 - 시스템, 컨테이너, 컴포넌트 각각의 별도 통계
  • 소유/전체 수 - 빠른 참고를 위한 실제 수치

종속성

서로 다른 팀이 소유한 요소 간에 C4 관계가 존재하면, 소유권 맵에서 해당 소유자 간에 종속성 라인이 표시됩니다. 이를 통해 팀 간 결합도를 파악할 수 있습니다. 예를 들어, "프론트엔드 팀의 서비스가 플랫폼 팀의 API Gateway에 의존하고 있다"는 것을 확인할 수 있습니다.

종속성 특징:

  • 개별 C4 관계를 소유자 간 엣지로 집계
  • 기반 관계 수에 따라 가중치 부여(두꺼울수록 종속성이 많음)
  • 개요 화면을 깔끔하게 유지하기 위해 마우스 호버 시에만 표시

소유권 맵 사용하기

개요

Global Architecture -> Ownership 탭으로 이동합니다. 개요 화면에서 모든 팀과 사용자가 색상이 지정된 버블로 표시됩니다:

  • 버블 크기는 해당 소유자가 담당하는 요소 수를 반영
  • 버블 색상은 팀/사용자별로 자동 지정
  • 팀/사용자 아이콘 또는 아바타가 각 버블 내부에 표시(사용 가능한 경우)

버블은 연결된 소유자가 자연스럽게 가까이 배치되는 힘 기반 레이아웃으로 배치됩니다.

마우스 호버

버블 위에 마우스를 올리면:

  1. 소유자의 전체 이름과 요소 수가 포함된 툴팁 표시
  2. 연결된 소유자로 흐르는 종속성 라인 표시(애니메이션 점선 및 수량 배지 포함)
  3. 관련 없는 버블이 흐리게 처리되어 소유권 관계가 두드러짐

상세 보기

버블을 클릭하면 해당 소유자의 요소를 상세히 볼 수 있습니다:

  1. 원형 전환 애니메이션으로 버블에서 전체 화면 상세 패널로 전환
  2. 히어로 헤더에 소유자의 아이콘, 이름, 유형(팀/사용자) 및 통계 카드 표시
  3. 통계 카드가 필터 역할 - "Systems", "Containers", "Components"를 클릭하여 해당 유형만 표시
  4. 요소는 C4 레벨별로 그룹화된 카드 그리드로 표시되며 다음 정보 포함:
    • 요소 이름 및 설명
    • 프로젝트 이름
    • 공동 소유권 표시(해당 요소를 함께 소유하는 다른 팀/사용자)
  5. Escape 키를 누르거나 Back 버튼을 클릭하여 개요로 복귀

검색

검색 바는 버블 수준에서 필터링합니다. 다음을 조합하여 입력할 수 있습니다:

  • 소유자 이름 - 예: "Platform" 또는 "Alice"
  • 요소 이름 - 예: "API Gateway"
  • 프로젝트 이름 - 예: "Payment Service"

검색은 전문 검색(fulltext matching)을 사용하며, 모든 검색어가 버블의 소유자 이름, 요소 이름 또는 프로젝트 이름에 포함되어야 합니다.

미소유 요소

헤더의 unowned 토글을 클릭하면 소유자가 없는 모든 요소가 포함된 회색 버블이 나타납니다. 이를 통해 주의가 필요한 커버리지 격차를 식별할 수 있습니다.

소유권 지정

다이어그램을 통한 지정

  1. C4 다이어그램에서 시스템, 컨테이너 또는 컴포넌트를 우클릭
  2. 상세 패널에서 Owners 섹션 열기
  3. Add Owner를 클릭하고 팀 또는 사용자 선택
  4. 소유권 맵이 자동으로 업데이트

소유권 맵 상세 뷰를 통한 지정

팀이나 사용자로 확대하면 현재 소유권이 적용된 요소 목록이 표시됩니다. 소유자를 변경하려면 해당 프로젝트 다이어그램에서 요소로 이동하세요.

API를 통한 지정

요소 소유자 엔드포인트를 사용하여 프로그래밍 방식으로 소유권을 지정할 수 있습니다:

팀 소유자 설정:

PUT /api/v1/c4/systems/:id/owners
Content-Type: application/json
Authorization: Bearer <token>

{
  "teamOwnerIds": ["<team-uuid-1>", "<team-uuid-2>"],
  "userOwnerIds": ["<user-uuid-1>"]
}

컨테이너(/c4/containers/:id/owners) 및 컴포넌트(/c4/components/:id/owners)에도 동일한 엔드포인트 패턴이 적용됩니다.

모범 사례

소유권을 조기에 지정

  • 새로운 시스템을 생성하거나 발견할 때 팀 소유권 설정
  • AI 디스커버리 검토 과정에 소유권 지정 포함
  • 모든 C4 레벨에서 80% 이상의 커버리지 목표

개별 사용자보다 팀 사용

  • 팀은 구성원 변동에도 유지됨 - 개인 소유권은 지식 사일로를 유발
  • 팀을 주 소유자로 지정하고 필요 시 책임 추적을 위해 개별 사용자 추가
  • 조직의 실제 스쿼드 또는 도메인 구조에 맞게 팀 매핑

팀 간 종속성 검토

  • 각 팀의 종속성 라인을 주기적으로 호버하여 확인
  • 두 팀 간 종속성 수가 높으면 강한 결합도를 나타낼 수 있음
  • 이 인사이트를 서비스 경계 결정 및 API 계약 작업에 활용

커버리지를 지속적으로 추적

  • 헤더의 커버리지 비율 모니터링
  • 미소유 요소가 누적되기 전에 처리
  • 100% 소유권 커버리지를 일회성 과제가 아닌 지속적인 위생 목표로 관리

다음 단계