Spring의 3 계층 구조

개ant미·2024년 2월 12일
0

Spring

목록 보기
2/7

저번 포스트에서 Spring MVC의 내부적 흐름과 MVC에대한 간단한 개념과 설명을 했었다. 이번 포스트에서는 Spring의 3계층의 구조에 대한 내용을 다루려고 한다.

  1. 3계층 구조
  2. 3계층 구조 vs MVC 패턴
  3. Spring MVC 웹에서 3계층 구조를 사용하는 법

1. 3계층 구조

3단계 구조는 많은 영역에서 코드베이스를 조직하기 위해 널리 받아들여지는 방법이며 고유한 책임을 가진다.

  • Presentation 단계
    - 애플리케이션의 user interface 이며 애플리케이션의 특징과 데이터를 유저에게 제공.
  • Business logic 단계
    - 애플리케이션의 핵심 기능이며, 의사결정, 계산, 평가 및 다른 두 계층에 전달되는 데이터를 처리.
  • Data access 단계
    - DB(데이터 베이스) 와 상호 작용 하여 애플리케이션의 데이터를 저장하고 수정한다.

2. 3계층 구조 vs MVC 패턴

그렇다면 저번에 포스팅한 MVC패턴과 3계층 구조는 어떤 관련이 있을까?

MVC 패턴은 사용자 인터페이스에서 로직(Presentation 단계)을 구성하는 것에만 관심이 있다.
MVC 패턴은 3단계가 있다.

Model : 애플리케이션의 business layer

  • 시스템의 business logic을 포함하는 데이터 계층이며, 애플리케이션의 상태를 나타낸다. 이 단계는 Presentation 단계와 무관하다(독립적).
  • Controller가 Model에서 데이터를 받아서 View에게 전달해준다.

Controller: 애플리케이션의 흐름을 관리

  • Controller는 Model과 View 사이에서 작동한다.
  • View에서 요청을 받고 필요한 유효성 검사를 포함하여 처리한다.

View : 애플리케이션의 Presentation 단계를 정의

  • View는 UI의 일부 형태인 애플리케이션의 결과를 나타낸다.
  • Presentation 단계는 Controller에서 가져온 Model 데이터를 나타낸다. ex) HTML
3계층 구조MVC
내용애플리케이션의 모든 코드를 구조화두 단계를 연결 ( Presentation & Business logic )
범위전반적Presentation 단계(사용자 인터페이스의 로직을 구성)

3. Spring MVC 웹에서 3계층 구조를 사용하는 법

classlayer기능
Controller classesPresentation layer입력, 수신, 검증, Model 객체, MAV 반환 기능 수행
Service classesBusiness logic layer계산, 데이터 변환, 데이터 프로세스, 레코드간 검증
Repository classesData access layerCRUD (관계형 또는 비관계형)

 

Service classes는 Controller classes에 의하여 호출되며, Repository또는 다른 Service들을 호출 가능하다.

모든 class는 일반적으로 각자의 패키지 안에 저장한다. Spring boot와 thymleaf를 사용한, MVC 웹 애플리케이션의 구조도를 예시로 보면, controller 패키지 안에 contrller class가 있으며 model, repositroy, service도 동일하다.


4. 마무리

  • 3계층 구조란 무엇인가요?
  • 3계층 구조 와 MVC 패턴의 관련성을 설명해보세요 ?
  • Spring MVC 웹에서 3계층 구조를 어떻게 사용하나요?

5. 참고링크

https://www.javaguides.net/2020/07/three-tier-three-layer-architecture-in-spring-mvc-web-application.html

profile
지식을 채워가는 습관 만들기

0개의 댓글