본문 바로가기

강의 내용 정리/스프링부트와 JPA 활용 1

5. 상품 도메인 개발

1. 상품 엔티티에 비지니스 로직 추가

2. 상품 레포지토리

3. 상품 서비스

 

 

 

1. 상품 엔티티에 비지니스 로직 추가

 

도메인 주도 설계를 할 때 엔티티 자체에서 해결가능할 때 엔티티 내부에 비즈니스 로직을 넣는 것이 굉장히 좋음(OOP)

도메인 주도 설계를 할 때 엔티티 자체에서 해결가능할 때 엔티티 내부에 비즈니스 로직을 넣는 것이 굉장히 좋음(OOP)

도메인 주도 설계를 할 때 엔티티 자체에서 해결가능할 때 엔티티 내부에 비즈니스 로직을 넣는 것이 굉장히 좋음(OOP)

도메인 주도 설계를 할 때 엔티티 자체에서 해결가능할 때 엔티티 내부에 비즈니스 로직을 넣는 것이 굉장히 좋음(OOP)

 

 

그전 엔 보통 service에서 stockquantity를 가져와서 값을 넣고 setStockQuantity로 결과를 넣는 식으로 했을 것이다.

 

-> 그러나 OOP적으로는 data를 가지고 있는 쪽에서 비즈니스 로직을 가지고 있는게 가장 좋다.

-> 그래야 응집력이 있다.

-> stockQuantity를 가지고 있는 Item Entity 에서 관련 비즈니스 로직을 가지고 있는게 Best.!!!!!!

 

( 무슨 말이냐 = stockQuantity를 변경하고 싶으면 Setter를 쓰는게 아니라 엔티티에서 핵심 비즈니스로직으로 변경해야한다. -> 실무에서는 Setter 막아둠. 여기선 예제라 그냥 넣어둠. )

 

 

 

 

# 사용자지정 예외 만들기

위에 4개만 오버라이드 하자.

 

 

 

 

 

 

--------------------------------------------------------------------------------------------------------- 2. 상품 레포지토리

 

 

 

merge하면 강제로 업데이트

 

 

 

 

--------------------------------------------------------------------------------------------------------- 3. 상품 서비스

 

서비스는 레포지토리에 단순하게 위임만 하는 클래스이다 . (개발이 단순하다. )

 

위임만 하는데 필요있을 까? -> 고민해보기 ( 어떨 때는 컨트롤러 -> 리포지토리로 가기도한다. )

 

 

 

ItemService 테스트 해보기. MemberService와 완전히 똑같음.

Recent Posts
Popular Posts
Recent Comments