Layered Architecture

·2024년 11월 26일

Layered Architecture의 정의

Layered Architecture는 N-tier Architecture라고도 불리며, 소프트웨어의 설계에서 쓰이는 패턴 중 하나이다.각 기능을 여러 계층(Layer)으로 나누어 구성하는 방법이다.

각 계층별로 역할 및 책임을 분리함으로 가장 중요한 기능은 관심사 분리 이다.
각 특정 계층이 맡은 로직만을 처리함으로써 다음과 같은 이점을 얻을 수 있다.

  • 유지보수성
  • 확장성

Layered Architecture의 보편적인 구조는?

보편적인 Layered Architecture의 계층은 4가지로 나뉜다.

  1. Presentation Layer (표현 계층): 사용자 인터페이스와 관련된 처리 담당
  2. Business Layer (비즈니스 계층): 비즈니스 로직과 애플리케이션 규칙 처리.
  3. Persistence Layer (접근 계층): 데이터의 저장 및 관리를 담당
  4. Database Layer(데이터베이스): 실제 데이터 저장소

CLOSED과 OPEN

위 사진을 볼 경우 CLOSED과 OPEN 상태가 존재한다.

CLOSED 경우 특정 계층의 요청이 다음 계층의 요청으로 넘어가게 한다.
관심사 분리를 함으로써 결합된 애플리케이션보다는 개별로 독립적으로 작동하게 한다.
이를 통해 관심사가 철저히 분리되므로 변경에 유리하고, 계층 간 의존도가 낮다.
예시 : Presentation → Business → Persistence → Database

OPEN 의 경우 우회하여 다른 계층으로 이동한다.
예로 DB에서 '사과' 데이터를 하나 출력할 때 다음 계층에 요청하는 대신, 데이터 관련 계층에 직접 요청을 하는 식이다.
주의할점은 계층간 결합도가 높아질 수 있다.
예시 : Presentation → Persistence (우회)


참고 사이트

https://www.youtube.com/watch?v=mS1L96GqwSU&ab_channel=JavaGuides
https://www.oreilly.com/library/view/software-architecture-patterns/9781491971437/ch01.html

profile
장기적 성장하기

0개의 댓글