본문 바로가기

Development/Node.js

아키텍처 패턴(Architecture Pattern)

아키텍처 패턴(Architecture Pattern)

  • 소프트웨어의 구조를 구성하기 위한 기본적인 토대가 된다.
  • 각각의 시스템과 그 역할이 정해져있고, 시스템 사이의 관계과 규칙이 있다.
  • 검증된 구조로 개발하기 때문에 안정적인 개발이 가능해진다.
  • 도메인이 복잡할수록 모델이나 코드를 더 쉽게 변경할 수 있다.

 

계층형 아키텍처 패턴 (Layered Architecture Pattern)

계층을 분리해서 관리하는 패턴이며 현재 가장 흔하게 사용되고 있는 패턴 중 하나이다.

단순하고 대중적이면서 비용도 적게 들어 모든 어플리케이션의 사실상 표준 아키텍처이다.
어떤 경우든 계층을 분리해서 유지하고, 각 계층이 자신의 바로 아래 계층에만 의존하게 만드는 것이 목표이다.

계층화의 핵심은 각 계층은 응집도가 높으면서 다른 계층과 낮은 결합도를 가지고 있어야한다.

상위 계층은 하위 계층을 사용할 수 있지만, 하위 계층은 자신의 상위 계층의 구조를 알 수 없고 사용 또한 못하도록 구성해야 한다.

 

 

3계층 아키텍처 (3-Layered Architecture)

3가지의 처리과정을 이용해서 구현한다.

  1. 컨트롤러(Controller)
    계층의 가장 바깥 부분으로 클라이언트의 요청을 받고 응답을 보내준다.
  2. 서비스(Service)
    계층의 중간 부분으로 중요한 작동이 많이 일어나는 가장 핵심적인 곳이다.
  3. 저장소(Repository)
    계층의 가장 하위 부분으로 DB와 연결되어 있다.

 

3계층 아키텍처 (3-Layered Architecture) 로직 수행 플로우

  1. 클라이언트가 요청을 보낸다.
  2. 요청을 URL에 맞는 컨트롤러가 수신받는다.
  3. 컨트롤러는 수신한 요청을 처리하기 위해 서비스를 호출한다.
  4. 서비스는 필요한 데이터를 가져오기 위해 저장소에게 데이터를 요청한다.
  5. 서비스는 저장소에서 가져온 데이터를 가공하여 컨트롤러에게 데이터를 넘긴다.
  6. 컨트롤러는 서비스의 결과물을 클라이언트에게 전달해준다.

'Development > Node.js' 카테고리의 다른 글

도메인(Domain)과 엔티티(Entity)  (0) 2023.05.04