[TIL] Day18_Spring Web Structure

오진선·2024년 2월 23일
0

TIL

목록 보기
11/29
post-thumbnail

Today I Learned

Spring Web Project Structure

1. DTO(Data Transfer Object)

(1) 정의

데이터 전송 및 이동을 위해 생성되는 객체
객체 지향 프로그래밍(OOP) 언어 환경에서 주로 사용
숨기고 싶은 중요한 데이터의 노출을 막음

(2) DTO의 장점

  • 엔티티 내부 구현을 캡슐화
  • 화면에서 요구하는 데이터들만 선별하여 요청/응답 가능
  • 순환참조의 무한루프 예방

2. 3 Layer Architecture

1) Controller

  • 클라이언트의 요청을 받음
  • 로직 처리는 Service에게 전담
  • Service에서 처리 완료된 결과를 클라이언트에게 응답

2) Service

  • 사용자의 요구사항을 처리 (비즈니스 로직)
  • DB 저장 및 조회가 필요할 때는 Repository에게 요청

3) Repository

  • DB 관리
  • CRUD 작업을 처리

3. Spring 흐름도

RequestDTO & ResponseDTO

Request 데이터를 처리할 때 👉 RequestDTO (주로 Create, Update)
Response 데이터를 처리할 때 👉 ResponseDTO (데이터를 뿌려줄 때)

1️⃣ User가 요청한 데이터가 URI를 통해 RequestDto에 담겨서 Controller로 들어옴
2️⃣ Controller가 Service로 로직처리를 넘김
3️⃣ Service에서 로직을 처리하는 과정에서 데이터가 필요하면 Repository를 통해 필요한 데이터를 전달받음
4️⃣ 데이터를 전달 받는 과정에서 Exception이 없으면 ReponseDto에 데이터를 담아서 Controller로 Response
5️⃣ Exception이 있으면 Exception 메시지가 Controller로 Response
6️⃣ Controller가 매핑된 URI를 통해 View로 데이터를 넘겨준다.

profile
₍ ᐢ. ̫ .ᐢ ₎

0개의 댓글