TIL

Spring의 계층 구조

skgur07 2024. 8. 14. 10:10

레이어드 아키텍처


Spring Boot는 Layered Architecture 방식입니다.

 

springboot

 

Layered Architecture 이란? :

layer 들이 다른 layer들과 통신하는 것을 의미합니다.

 

즉 각 계층이 서로 독립적으로 구성되어 있어서 한 계층의 변경이 다른 계층에 영향을 주지 않게 설계하는 방법

이는 효율적인 개발과 유지보수를 위해 애플리케이션을 계층화하여 개발하는 것을 의미합니다.

이와 같은 예시로 OSI 7 계층이 있습니다.

 

주의 :

레이어드 아키텍처의 구성은 하나로 정해져 있지 않고 애플리케이션의 크기와 복잡도 등 다양한 요소에 따라 변할 수 있다. 따라서 그냥 이런 식으로 계층 구조를 만들 수 있고 만드는구나 정도로 생각하면 편하다.

 

오늘은 3 계층으로 나누어 설명해 보겠습니다.

  • 프레젠테이션 계층 ( Presentation Layer )
  • 비즈니스 계층 ( Business Layer ) 또는 서비스 계층 ( Service Layer )
  • 데이터베이스 계층 ( Database Layer )

프레젠테이션 계층


  • 클라이언트와 가장 가가운 계층이면서, 클라리언트와 시스템 간의 상호작용을 합니다.
  • UI를 담당하며, 사용자의 입력값을 검증하고 비즈니스 로직에 따라 결과를 표시합니다.
  • 로직을 처리하지 않아야 해 단순 UI 표현 역할만을 수행합니다.

 

비즈니스 계층


  • 실제 모든 비즈니스 로직을 수행합니다.
  • Service로 구성되어 있으며, 확인과 권한부여를 담당합니다.
  • 프레젠테이션 계층으로부터, 사용자의 요청을 전달받고 해당 요청을 실질적으로 처리하는 부분입니다.

 

데이터베이스 계층


  • 실제 데이터베이스를 가리킵니다.

마침


사실 이보다 엄청 많고 다양한 계층들이 존재합니다. 지금 제 수준으론 이 정도 계층으로 나누어서

생각하는 게 개발을 할 때 도움이 될 것 같아 이 정도만 정리했습니다. 개발이 더 익숙해지고 게시판 같은 것뿐만 아니라 실제 비즈니스 로직들을 구현해 보는 정도가 되면 더 많은 계층으로 정리해 보겠습니다.