본문 바로가기
내일배움캠프(Sparta)/Spring

[Spring] 3 Layer Architecture

by mmm- 2023. 11. 3.

3 Layer Architecture

Controller

Controller의 역할을 나타내는 그림

  1. 클라이언트의 요청을 받음
  2. 클라이언트에서 받아온 request data가 있다면 controller가 service에 전달함.
    (service는 요청에 대한 로직 처리 전담)
  3. controller는 service에서 처리가 완료된 결과를 받아 client에게 응답.
    (controller >> 출입문이기도 하지만 출구이기도 한 그런 역할.!)

 

Service

: 사용자의 요구사항(business logic)을 처리하는 계층. 실세 중의 실세

Service를 나타내는 그림

  • 현업에서는 Service 코드가 계속해서 비대해지고 있음
  • DB 저장 혹은 조회가 필요할 때 Repository 계층에게 데이터 요청

 

Repository

: DB를 관리하는 역할 (연결, 해제, 자원 관리, CRUD 작업 처리 등..)

 

정리

  1. 브라우저에서 게시글 작성하는 요청
  2. HTTP 프로토콜 request 규칙에 맞춰서 controller에 들어옴.
  3. 요청을 받아 service에게 전달
  4. service는 요청을 구현
  5. 작업이 완료되고 DB에 저장하는 작업은 Repository에게 건네줌
  6. repository는 가공이 된 데이터를 받아 DB와 연결해 데이터 저장
  7. 저장완료 후 repository가 저장된 게시글의 PK를 service에게 전달하고 service는 controller에게 전달
  8. controller는 브라우저에게 전달

 

3 layer architecture에 집중해서 개발을 하면 되고, 그 중에서도 service에 가장 많은 집중을 하게 될 것.

 

'내일배움캠프(Sparta) > Spring' 카테고리의 다른 글

[Spring] ORM / JPA / Hibernate  (0) 2023.11.07
[Spring] IoC / DI / Bean  (0) 2023.11.07
[Spring] JDBC  (1) 2023.11.03
[Spring] Database / SQL  (0) 2023.11.03
[Spring] DTO  (0) 2023.11.02