Layered Architecture는 N-tier Architecture라고도 불리며, 소프트웨어의 설계에서 쓰이는 패턴 중 하나이다.각 기능을 여러 계층(Layer)으로 나누어 구성하는 방법이다.
각 계층별로 역할 및 책임을 분리함으로 가장 중요한 기능은 관심사 분리 이다.
각 특정 계층이 맡은 로직만을 처리함으로써 다음과 같은 이점을 얻을 수 있다.

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

위 사진을 볼 경우 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