C# 아키텍처 마스터리 — 클린 아키텍처 vs 버티컬 슬라이스 아키텍처 (파트 6)

발행: (2025년 12월 24일 오전 05:53 GMT+9)
7 분 소요
원문: Dev.to

Source: Dev.to

C# 아키텍처 마스터리 — 클린 아키텍처 vs 버티컬 슬라이스 아키텍처 (파트 6)

개요

대부분의 아키텍처 토론은 잘못된 질문을 하기 때문에 실패합니다.

어떤 아키텍처가 더 나은가?
어떤 아키텍처가 내 문제와 팀에 최적화되는가?

이번 Part 6에서는 Clean Architecture와 **Vertical Slice Architecture (VSA)**를 현대 ASP.NET Core 시스템에서 실제로 사용되는 방식대로 비교합니다 — 교리로서가 아니라 엔지니어링 트레이드‑오프로서.

1. 클린 아키텍처가 최적화하는 것

Clean Architecture는 다음을 최적화합니다:

  • 장기적인 유지보수성
  • 비즈니스 규칙 격리
  • 프레임워크 독립성
  • 크고 진화하는 도메인

핵심 아이디어

정책이 세부 사항을 우선한다 – 비즈니스 로직은 중앙에 위치합니다. 프레임워크, 데이터베이스, UI는 그 주위를 도는 형태입니다.

일반적인 구조

// Typical Clean Architecture project layout
Domain
Application
Infrastructure
Web

장점

  • 명확한 경계
  • 우수한 테스트 가능성
  • 강력한 도메인 모델링
  • 장기 변화에도 안정적

단점

  • 파일 및 추상화가 많음
  • 초기 복잡도 상승
  • 초기 전달 속도 저하

클린 아키텍처는 변화가 불가피할 때 빛을 발합니다.

2. 수직 슬라이스 아키텍처가 최적화하는 것

Vertical Slice Architecture는 다음을 최적화합니다:

  • 빠른 제공
  • 지역화된 변경
  • 기능 중심 사고
  • 기능 간 결합 감소

핵심 아이디어

레이어가 아니라 사용 사례별로 조직 – 각 기능은 필요한 모든 것을 자체적으로 소유합니다.

일반적인 구조

// Example vertical slice folder layout
Features/
 └─ CreateOrder/
     ├─ Endpoint.cs
     ├─ Handler.cs
     ├─ Validator.cs
     └─ Model.cs

강점

  • 높은 응집도
  • 기능 간 최소 영향
  • 쉬운 온보딩
  • CQRS 스타일 시스템에 탁월

약점

  • 중복 로직 위험
  • 전역 일관성 유지 어려움
  • 도메인 규칙이 분산될 수 있음

VSA는 기능이 독립적으로 진화할 때 빛을 발합니다.

3. 잘못된 이분법

많은 팀이 생각합니다:

Clean Architecture OR Vertical Slice Architecture

이는 잘못된 선택입니다. 실제로:

  • Clean Architecture은 경계를 정의합니다
  • Vertical Slices는 조직을 정의합니다

그들은 공존할 수 있습니다.

4. Clean Architecture가 무너지는 지점

Clean Architecture가 어려움을 겪는 경우:

  • 과도한 추상화로 팀의 속도가 느려질 때
  • 모든 변경이 여러 레이어를 건드려야 할 때
  • 간단한 기능조차 무겁게 느껴질 때

결과

  • 규칙을 우회함
  • DbContext 누수
  • “이번만은” 위반

결과: 아키텍처에 마찰이 발생한다.

5. 수직 슬라이스 아키텍처가 무너지기 쉬운 경우

Vertical Slice Architecture는 다음과 같은 상황에서 어려움을 겪는다:

  • 핵심 도메인 규칙을 공유해야 할 때
  • 횡단 정책이 중복될 때
  • 불변 조건이 중앙집중화되지 않을 때

결과

  • 일관성 없는 비즈니스 동작
  • 슬라이스 간 드리프트
  • 숨겨진 결합

Result: architecture becomes fragmented.

6. 실용적인 비교

구분클린 아키텍처버티컬 슬라이스
조직레이어별기능별
주요 목표안정성속도
변경 영향넓지만 통제됨국소적
적합 대상복잡한 도메인제품 중심 팀
학습 곡선가파름완만함
위험과도한 설계규칙 중복

7. 하이브리드 접근법 (시니어 팀이 하는 일)

고성능 팀은 종종 사용한다:

클린 아키텍처 경계 + 수직 슬라이스 조직

예시

// Hybrid folder layout
Application/
 └─ Orders/
     ├─ Create/
     ├─ Cancel/
     └─ GetById/

규칙은 중앙에 유지한다.
기능은 격리한다.

이점

  • 강력한 불변 조건
  • 빠른 기능 제공
  • 확장 가능한 팀

8. 의사결정 가이드 (이것을 사용하고, 의견은 제외)

Clean Architecture 선택 시:

  • 도메인 복잡성이 높을 때
  • 비즈니스 규칙이 핵심일 때
  • 장기적인 유지가 중요할 때

Vertical Slice Architecture 선택 시:

  • 기능이 독립적으로 진화할 때
  • 시장 출시 시간이 중요할 때
  • 팀이 제품 중심일 때

Hybrid 선택 시 안정성과 속도를 모두 원할 때.

9. 아키텍처는 전략이지 템플릿이 아니다

아키텍처가 고통스럽게 느껴진다면:

  • 이는 “잘못 구현된” 것이 아니라 귀하의 제약 조건과 맞지 않기 때문입니다.
  • 훌륭한 아키텍트는 패턴을 적용합니다.
  • 형편없는 아키텍트는 패턴을 강제합니다.

최종 생각

Clean Architecture와 Vertical Slice Architecture는 도구이며, 종교가 아닙니다.
최고의 시스템은 두 가지 모두에서 아이디어를 차용합니다.

Architecture는 다음을 달성할 때 성공합니다:

  • 인지 부하를 감소시킵니다
  • 변화를 가능하게 합니다
  • 중요한 것을 보호합니다

그 외 모든 것은 형식일 뿐입니다.

✍️ Cristian Sifuentes가 작성 — 팀이 아키텍처를 신념 체계가 아닌 엔지니어링 전략으로 선택하도록 돕습니다.

Back to Blog

관련 글

더 보기 »