반응형
해당 글에서는 Java의 아키텍처 구성 중 계층화된 아키텍처인 N Tier 아키텍처에 대해서 이해를 돕기 위해 작성한 글입니다.
1) 계층화된 아키텍처(Layered Architecture)
💡 계층화된 아키텍처란?
- 계층화된 아키텍처 패턴은 계층(Layer) 단위로 분리하여 계층마다 특정 역할을 수행하도록 구성된 아키텍처를 의미합니다.
[참고] N-계층에 따라서 각각의 아키텍처를 아래의 그림과 같은 형태로 분리하여 관리합니다.
2) 계층화된 아키텍처(Layered Architecture) 종류
2계층 아키텍처(2-Tier Architecture)
💡 2계층 아키텍처는 프리젠테이션 레이어(Presentation Layer), 데이터 레이어(Data Layer)로 구성된 아키텍처를 의미합니다.
3계층 아키텍처 (3-Tier Architecture)
💡 3계층 아키텍처는 프리젠테이션 레이어(Presentation Layer), 애플리케이션 레이어(Application Layer), 데이터 레이어(Data Laver)로 구성이 된 아키텍처를 의미합니다.
4계층 아키텍처(4-Tier Architecture)
💡 4계층 아키텍처는 프리젠테이션 레이어(Presentation Layer), 비즈니스 레이어(Business Layer), 퍼시턴스 레이어(Persistence Layer), 데이터베이스 레이어(Database Layer)로 구성이 된 아키텍처를 의미합니다.
n계층 아키텍처(n-Tier Architecture)
💡 다중 계층 아키텍처라고도 하며 N계층 아키텍처는 둘 이상의 계층을 갖는 애플리케이션 아키텍처를 의미합니다.
💡 일반적으로 생각하는 4계층에서 더 나아가서 5계층으로도 구성을 할 수 있고 각각의 상황에 따라 구분을 하여 Tier를 나눕니다. ex) domain Layer, Application Layer
3) 4-Tier로 바라본 계층 별 레이어 흐름
💡 해당 데이터의 흐름은 4-Tier Architecture로 구성하여서 각각의 레이어에서 기능에 맞게 처리를 하여서 데이터 통신하는 과정을 그려는 흐름입니다.
💡 계층의 데이터 요청 흐름
- Client → Presentation Layer → Business Layer → Persistence Layer → Database Layer
💡 계층의 데이터 응답/반환 흐름
- Database Layer→ Persistence Layer → Business Layer → Presentation Layer → Client
4) 계층의 상세 설명
1. 표현 계층(Presentation Layer) : Controller
💡 해당 계층은 애플리케이션으로 들어오는 ‘요청’과 ‘응답’을 반환해 주는 계층입니다.
💡 클라이언트로 받은 JSON / XML 형태의 데이터 구조 요청에 대해서 해당 처리 이후 반환을 해주는 역할을 수행합니다.
💡 인증을 확인하는 계층이기도 하여서 애플리케이션의 방어를 수행합니다.
2. 비즈니스 계층(Business Layer) : Service
💡 해당 계층은 비즈니스 로직을 처리하는 계층입니다.
💡 클라이언트로 전달받은 데이터에 대한 비즈니스 로직을 처리하여 영속성 계층으로 전달하는 역할을 수행합니다.
💡 확장성을 위하여 인터페이스(interface)와 구현체(implements) 구분하여 사용이 됩니다.
[ 더 알아보기 ]
💡 인터페이스(interface)
- 함께 개발하는 개발자들 간의 ‘코딩의 규격화’를 하기 위한 목적으로 큰 틀만 구성해둔 클래스를 의미합니다.
💡 구현체(implements)
- 인터페이스로 규격화한 큰 틀에 실제적인 구현을 위한 비즈니스 로직 부분이 들어가는 클래스를 의미합니다.
3. 영속성 계층(Persistence Layer): Repository, DAO
💡 해당 계층은 데이터베이스에 접근하여 데이터를 가져오며 데이터에 대한 영속성을 유지하는 계층입니다.
💡 영속성은 애플리케이션이 종료되더라도 데이터는 유지되어야 하는 특성이며, 이 영속성을 보장해주는 역할을 수행합니다.
4. 데이터 베이스 계층(Database Layer) : DB
💡 해당 계층은 데이터베이스 자체를 의미하는 계층입니다.
[참고] 이전에 4-Tier Architecture 기반으로 구성한 개발환경입니다.
오늘도 감사합니다. 😀
반응형
'Java > 아키텍처 & 디자인 패턴' 카테고리의 다른 글
[Java] RESTful API 설계 방법 -2 : 구성하기 (0) | 2023.03.26 |
---|---|
[Java] RESTful API 설계 방법 -1 : 이해하기 (0) | 2023.03.22 |
[Java] 프로그래밍 패러다임 이해하기 (0) | 2023.01.07 |
[Java] 생성자 패턴 - Builder() 심화 속성 이해하기 -1 : Lombok Annotation (0) | 2023.01.06 |
[Java] 생성자 패턴 이해하기 : 점층적 생성자, 자바 빈즈, Builder 패턴) (0) | 2022.11.12 |