Learning
토픽 44 / 192·소프트웨어 설계와 아키텍처

계층형 아키텍처 (Layered Architecture)

계층형 아키텍처 (Layered Architecture)

소프트웨어를 수평적 계층(Layer)으로 분리하여 각 층이 특정 역할을 담당하고 하위 층에만 의존하도록 구성하는 아키텍처 스타일

전형적 4계층 (N-Tier)

  • Presentation Layer: UI, 사용자 상호작용
  • Business Layer: 비즈니스 로직, 규칙
  • Persistence Layer: 데이터 접근, ORM
  • Database Layer: 데이터 저장소

특징: 관심사 분리, 상위→하위 단방향 의존, 계층 건너뛰기 금지(Closed Layer), 테스트 용이

장점: 구조 단순, 역할 명확, 독립적 변경/테스트, 개발자 친숙도↑

단점: 성능 오버헤드(계층 통과), 불필요한 계층 경유, 모놀리식 경향

비교: 계층형(수평분리/단순) vs 마이크로서비스(수직분리/분산) vs 헥사고날(포트-어댑터/유연)

연관: 소프트웨어 아키텍처, Clean Architecture, MVC