Spring/JPA 1

5. 상품 도메인 개발

wch_t 2023. 11. 6. 15:25

객체지향적 프로그래밍

[도메인 주도 설계]

 

(ex. OrderService : 비즈니스 로직 )

- Service에서 엔티티를 가져와서 비즈니스 로직을 작성하기보다는,

   Entity의 핵심 비즈니스 로직을 해당 엔티티 내에 존재하게 코드를 작성한다. 

   즉, Service는 비즈니스 로직을 호출하는 역할만 한다.

 

 

(ex. ItemService, MemberService : DB 로직)

- Service는 Repository에 위임만 하는 형식이다.

   간단한 경우에는, Controller에서 바로 Repo에 접근해서 Service(DB 로직)을 실행해도 되는지에 대해서, 잠깐 고민해보자!

   

   → Controller는 요청을 처리하고 적절한 Service를 호출하고, DB 로직을 실행하는 것이 객체지향적

        Service 내부에서는 Repo를 이용하여 데이터베이스와 상호작용하는 것이, 유지보수에 용이하다.

 

 

 

Q. 비즈니스 로직 구현, Entity vs Service

https://www.inflearn.com/questions/117315/%EB%B9%84%EC%A7%80%EB%8B%88%EC%8A%A4-%EB%A1%9C%EC%A7%81%EA%B5%AC%ED%98%84-entity-vs-service