Layered architecture(이하 계층화 아키텍쳐)
계층화 아키텍쳐는 소프트웨어를 설계하는 방법 중 하나이다. 이 아키텍쳐는 시스템을 여러 개의 계층으로 분리하여 각 계층이 특정한 역할을 수행하도록 구성하는 것을 의미한다. 각 계층은 서로 상호작용하면서 전체 시스템을 구성한다.
계층화 아키텍처의 가장 일반적인 구성 요소는 다음과 같다.
- Presentation Layer(프레젠테이션 계층)
사용자 인터페이스(UI)를 담당한다. 사용자와의 상호작용을 처리하고, 입력을 받아 처리 결과를 출력한다. - Application Layer(응용 계층 또는 비지니스 계층)
비지니스 로직을 포함하고 있다. 사용자의 요청을 처리하고, 데이터의 유효성 검사, 비지니스 규칙 적용 등을 수행한다. - Domain Layer(도메인 계층 또는 모델 계층)
시스템의 핵심 도메인 모델을 포함한다. 도메인 개체(Entity),도메인 로직, 도메인 데이터 등이 이 계층에서 정의 된다. - Infrastructure Layer(인프라 계층 또는 데이터 액세스 계층)
데이터베이스 액세스, 외부 시스템과의 통합, 로깅, 보안 등과 같은 인프라 관련 작업을 처리한다.
이러한 계층은 상위 계층에서 하위 계층으로의 의존성을 가지며, 각 계층은 그 계층에만 집중하는 역할을 수행한다. 이를 통해 시스템의 모듈화와 재사용성을 높일 수 있다. 또한 계층간의 인터페이스를 명확하게 정의함으로써 계층 간의 결합도를 낮추고 유연성을 확보할 수 있다.
계층화 아키텍쳐 외에도, 다른 아키텍쳐 패턴들도 존재한다.
예를 들어, MVC아키텍쳐는 계층화 아키텍쳐를 기반으로 하면서도 좀 더 세부적인 역할 분담을 제공한다. 또한, 마이크로서비스 아키텍쳐, 클린 아키텍쳐 등 다양한 아키텍쳐 패턴들이 있으며, 각각의 패턴은 특정한 상황이나 요구사항에 적합하게 설계된 것이다.
'개발지식' 카테고리의 다른 글
POJO JAVA (0) | 2023.06.22 |
---|---|
Framework (0) | 2023.06.16 |
객체지향 설계 원칙 SOLID (0) | 2023.06.14 |
Spirng Framework 와 Spring Boot의 차이 (0) | 2023.06.14 |
Clean Code (0) | 2023.06.05 |
댓글