본문 바로가기
개발지식

Layered architecture

by titlejjk 2023. 6. 5.

Layered architecture(이하 계층화 아키텍쳐)

계층화 아키텍쳐는 소프트웨어를 설계하는 방법 중 하나이다. 이 아키텍쳐는 시스템을 여러 개의 계층으로 분리하여 각 계층이 특정한 역할을 수행하도록 구성하는 것을 의미한다. 각 계층은 서로 상호작용하면서 전체 시스템을 구성한다.

 

계층화 아키텍처의 가장 일반적인 구성 요소는 다음과 같다.

  1. Presentation Layer(프레젠테이션 계층)
    사용자 인터페이스(UI)를 담당한다. 사용자와의 상호작용을 처리하고, 입력을 받아 처리 결과를 출력한다.
  2. Application Layer(응용 계층 또는 비지니스 계층)
    비지니스 로직을 포함하고 있다. 사용자의 요청을 처리하고, 데이터의 유효성 검사, 비지니스 규칙 적용 등을 수행한다.
  3. Domain Layer(도메인 계층 또는 모델 계층)
    시스템의 핵심 도메인 모델을 포함한다. 도메인 개체(Entity),도메인 로직, 도메인 데이터 등이 이 계층에서 정의 된다.
  4. 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

댓글