코디잉

@Service 본문

Spring

@Service

yong_ღ'ᴗ'ღ 2022. 11. 17. 03:46

Controller: client의 요청과 응답을 처리한다. 실제 처리는 Service에게 위임한다.

     - client의 요청을 받고, 그 요청에 대한 처리를 Service에게 위임한다.

       그 후, 처리된 결과를 받아서 client에게 응답한다.

 

Repository, Mapper: DB Access를 처리한다. (Data Access Layer)

 

Service: Controller와 Repository 중간에 위치하여, 핵심 비즈니스 로직을 구현 및 처리한다.

     - DB Access가 필요한 부분은 Repository에게 위임한다.

 

    🔸 Service는 독립적인 계층으로 View와 DB 종류에 영향을 받지 않도록 설계해야 한다. 

        - View의 종류가 바뀌면 Controller는 영향을 받을 수 있다.

        - DB의 종류가 바뀌면 Repository는 영향을 받을 수 있다.

        - 하지만, 그 중간에 위치하고 있는 Service 계층은 다른 외부 기술에 영향을 받지 않도록 설계해야 한다.

          그렇게 함으로써 재사용 가능하게 만들어야 한다.

 

    🔸 Service 계층의 메서드가 데이터 트랜잭션에서 하나의 단위가 된다.

 

    🔸 Service 클래스 만들 때에는 애플리케이션의 세부 영역 별로 생성하여 구현한다.

         - 하나의 클래스에 모든 로직들을 집어넣지 않는다!

           ex) 사용자에 관련된 서비스 클래스, 게시물 관련 서비스 클래스 등등,,

 

    🔸 @Controller, @Service, @Repository 모두 세부 영역 별로 만든다.

'Spring' 카테고리의 다른 글

[Maven] Spring Boot에서 MyBatis, H2 Database 사용 설정  (0) 2022.11.21
Spring Bean 생성  (0) 2022.11.20
주요 HTTP Method  (0) 2022.11.16
JSON  (0) 2022.11.16
특정 클래스 내에 공통적인 Path 만들기  (0) 2022.11.09
Comments