[TIL_2023.12.04] 계층형 아키텍처 패턴 (Layered Architecture Pattern)

김효진·2023년 12월 4일
0
post-custom-banner

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

  • 시스템을 여러 계층으로 분리하여 관리하는 아키텍처 패턴으로 현재 가장 널리 채택되고 있는 아키텍처 패턴 중 하나 -> 단순하고 대중적이면서 비용도 적게 들어 사실상 모든 어플리케이션의 표준 아키텍처라 어떤 아키텍처 패턴을 도입할지 확신이 없을 때에는 계층형 아키텍처 패턴은 좋은 선택지가 될 수 있음

  • 계층형 아키텍처 패턴은 각 계층을 명확하게 분리해서 유지하고, 각 계층이 자신의 바로 아래 계층에만 의존하게 만드는 것이 목표

  • 계층화의 핵심은 각 계층이 높은 응집도(Cohesion)를 가지면서, 다른 계층과는 결합도(Coupling)를 최소화 하는 것. 여기서 상위 계층은 하위 계층을 사용할 수 있지만, 하위 계층은 자신이 어떤 상위 계층에 속하는지 알 필요없이, 독립적으로 동작할 수 있어야 함.

  • 계층형 아키텍처 패턴의 장점

    • 관심사를 분리하여 현재 구현하려하는 코드를 명확하게 인지할 수 있음
    • 각 계층은 서로 독립적이며, 의존성이 낮아 모듈을 교체하더라도 코드 수정이 용이함
    • 각 계층별로 단위 테스트를 작성할 수 있어 테스트 코드를 조금 더 용이하게 구성할 수 있음.
  • 3계층 아키텍처에서 구성되는 각각의 계층(Layer)는 아래와 같다.

    • 프레젠테이션 계층 (Presentation Layer)
    • 비즈니스 로직 계층 (Business Logic Layer)
    • 데이터 엑세스 계층 (Data Access Layer) | 영속 계층(Persistence Layer)
  • 3계층 아키텍처 (3-Layered Architecture)

    • 컨트롤러(Controller) : 어플리케이션의 가장 바깥 부분, 요청/응답을 처리
      • 클라이언트의 요청(Request)을 수신 한 후 서버에서 처리된 결과반환(Response)해주는 역할을 담당
    • 서비스(Service) : 어플리케이션의 중간 부분, API의 핵심적인 동작이 많이 일어나는 부분 -> 현업에서는 서비스 코드가 계속 확장되는 문제가 발생할 수 있음
      • 아키텍처의 가장 핵심적인 비즈니스 로직이 수행되는 부분
    • 저장소(Repository) : 어플리케이션의 가장 안쪽 부분, 데이터베이스와 맞닿아 있음.
      • 실제 데이터베이스와 통신하는 계층
profile
더 많은 사람들이 더 좋은 정보와 서비스를 누릴 수 있게!!
post-custom-banner

0개의 댓글