백/Spring, Spring Boot

[Spring] 웹 애플리케이션 계층 구조

연지양갱 2023. 6. 27. 09:36
728x90
반응형
SMALL

교재

https://thebook.io/080266/0126/

 

스프링 코딩 공작소: 4.2.3 실습 도서 정보를 관리하는 퍼시스턴스 계층 - 2

더북(TheBook): (주)도서출판 길벗에서 제공하는 IT 도서 열람 서비스입니다.

thebook.io

 

 

웹 애플리케이션 계층 구조

도메인 객체 -> 퍼시스턴스 계층 -> 서비스계층 -> 프레젠테이션 계층(컨트롤러-> 뷰)

 

위 사진을 말로 풀어보면

 

- 사용자가 웹 브라우저를 클릭하고 해당 URL을 통해 웹 페이지에 들어옴

- 웹 브라우저에서 요청을 보냄

- view가 페이지, 모델은 보여줄 데이터를 담은 객체, controller는 모든 데이터에서 특정 데이터만 보여주는 기능이 있는 데이터 전처리해주는 것

- 서비스 계층에서 해당 데이터에서 필요한 것만 보여주는 인덱스 테이블? 데이터와 접근가능하도록 하는 가상 데이터들

- 퍼시스턴스 계층에서는 데이터를 담아줄 바구니

- 데이터베이스와  퍼시스턴스 계층이 연결됨

- 도메인 객체( 생성해둔 객체들? )

 

 

사용자가 해당 웹 애플리케이션에서 페이지에 들어옴

해당 페이지에 필요한 데이터를 보여주기 위해서

데이터베이스에 저장되어 있는 내용을 보여주기 위해, 필요한 데이터만 보여줄 수 있게 정제함 -> 퍼시스턴스 계층(Repository : 저장소)

서비스 계층에서는 퍼시스턴스 계층에서 값을 가져온 것을 접근 할 수 있도록 연결, 인터페이스 느낌으로 중간 역할을 해줌

프레젠테이션 계층

서비스 계층에서 컨트롤러로 데이터를 보냄

컨트롤러에서 데이터를 담을 객체, 모델을 생성하여 웹 페이지에 필요한 데이터를 송출함

 

 

이런식으로 데이터를 보여줄 흐름,,,

나만 이해할수 있을만한 내용이긴 했다ㅋㅎㅋ,,

 

 

 

아무튼!!

 

 

각 계층별 내용으로는 

퍼시스턴스 계층 ( 데이터 액세스 계층 )

: 데이터 베이스에 접근(DAO)

생성가능한 데이터, 객체의 저장소 역할

데이터베이스나 파일에 접근하여 데이터를 처리하는 곳

 

 

서비스 계층 ( 비지니스 계층 )

: 애플리케이션이 제공하는 포괄적인 서비스를 표현

클라이언트에서 요청한 데이터를 가져오거나 변경 -> 퍼시스턴스 계층에서 데이터를 부름

프레젠테이션 계층과 퍼시스턴스 계층의 연결 역할

 

 

프레젠테이션 계층

: 애플리케이션과 사용자의 앤드포인트

사용자에게서 데이터를 입력받거나 데이터 결과를 웹 서버에 전달하여 사용자에게 보여주는 계층

애플리케이션 요청을 받아 들여 처리, 사용자에게 보여줌

 

 

 

도메인

: 데이터 교환을 위한 객체(DTO)

각 계층에서 만들었던 것들을 저장한..? 접근 가능한 객체들,,

-> 데이터 베이스든 respository든 해당 객체를 읽을 수 있도록 만들어둔 객체

getter, setter를 가지고 있음!

 

 

 

 

 

 

 

 

참고

https://velog.io/@sloools/Spring-%EC%9B%B9%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%EA%B3%84%EC%B8%B5%EA%B5%AC%EC%A1%B0

 

 

 

반응형