교재
https://thebook.io/080266/0126/
웹 애플리케이션 계층 구조
도메인 객체 -> 퍼시스턴스 계층 -> 서비스계층 -> 프레젠테이션 계층(컨트롤러-> 뷰)
위 사진을 말로 풀어보면
- 사용자가 웹 브라우저를 클릭하고 해당 URL을 통해 웹 페이지에 들어옴
- 웹 브라우저에서 요청을 보냄
- view가 페이지, 모델은 보여줄 데이터를 담은 객체, controller는 모든 데이터에서 특정 데이터만 보여주는 기능이 있는 데이터 전처리해주는 것
- 서비스 계층에서 해당 데이터에서 필요한 것만 보여주는 인덱스 테이블? 데이터와 접근가능하도록 하는 가상 데이터들
- 퍼시스턴스 계층에서는 데이터를 담아줄 바구니
- 데이터베이스와 퍼시스턴스 계층이 연결됨
- 도메인 객체( 생성해둔 객체들? )
사용자가 해당 웹 애플리케이션에서 페이지에 들어옴
해당 페이지에 필요한 데이터를 보여주기 위해서
데이터베이스에 저장되어 있는 내용을 보여주기 위해, 필요한 데이터만 보여줄 수 있게 정제함 -> 퍼시스턴스 계층(Repository : 저장소)
서비스 계층에서는 퍼시스턴스 계층에서 값을 가져온 것을 접근 할 수 있도록 연결, 인터페이스 느낌으로 중간 역할을 해줌
프레젠테이션 계층
서비스 계층에서 컨트롤러로 데이터를 보냄
컨트롤러에서 데이터를 담을 객체, 모델을 생성하여 웹 페이지에 필요한 데이터를 송출함
이런식으로 데이터를 보여줄 흐름,,,
나만 이해할수 있을만한 내용이긴 했다ㅋㅎㅋ,,
아무튼!!
각 계층별 내용으로는
퍼시스턴스 계층 ( 데이터 액세스 계층 )
: 데이터 베이스에 접근(DAO)
생성가능한 데이터, 객체의 저장소 역할
데이터베이스나 파일에 접근하여 데이터를 처리하는 곳
서비스 계층 ( 비지니스 계층 )
: 애플리케이션이 제공하는 포괄적인 서비스를 표현
클라이언트에서 요청한 데이터를 가져오거나 변경 -> 퍼시스턴스 계층에서 데이터를 부름
프레젠테이션 계층과 퍼시스턴스 계층의 연결 역할
프레젠테이션 계층
: 애플리케이션과 사용자의 앤드포인트
사용자에게서 데이터를 입력받거나 데이터 결과를 웹 서버에 전달하여 사용자에게 보여주는 계층
애플리케이션 요청을 받아 들여 처리, 사용자에게 보여줌
도메인
: 데이터 교환을 위한 객체(DTO)
각 계층에서 만들었던 것들을 저장한..? 접근 가능한 객체들,,
-> 데이터 베이스든 respository든 해당 객체를 읽을 수 있도록 만들어둔 객체
getter, setter를 가지고 있음!
참고
'백 > Spring, Spring Boot' 카테고리의 다른 글
[Spring] 경로 변수(path variables) @PathVariable, @RequestParam (0) | 2023.07.04 |
---|---|
[Spring] 한글 깨짐 방지 (0) | 2023.07.04 |
[Spring] JAVA 애노테이션 Annotation(@) 알아보기 (0) | 2023.06.27 |
[Spring] @ReqeustMapping controller에서 URL 매핑하는 방법 (0) | 2023.06.27 |
[Spring] 스프링(Spring)이란? (0) | 2023.06.21 |