토픽 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