[해온 것]
https://github.com/NC7-BleuAuction/bleuauction_be/pull/116
작업내역
Notice Controller 및 Service Refactoring
Notice기능의 TestCase제작
열심히 Notice 도메인 작업을 했다. 컨트롤러에서 서비스로 로직 옮기기!
주문, 주문메뉴, 메뉴 3개의 도메인 작업을 거쳤기에 약간은 익숙하면서도 또 새로웠다.
새벽에 몰래 작업해서 pr을 날렸는데 감동스럽게도 종1님이 코드를 싹 훑고 코멘트를 다 달아줬다.
일단 봐주신 것도 감동인데 그 새벽에 몰래 쓱 올렸는데 확인해주신게 더,, 충격 땡큐였다.
스트림이,, 뭐지!?
https://timi-d.tistory.com/321
[앞으로 할 것]
지금 한 서비스에 너무 많은 역할을 부여하고 있어서 기능별로 서비스도 나눠보자고 했다.
모듈서비스는 레파지토리만 받게하고 / 비지니스 로직 처리 x, 단순 crud만 (db 접근하는 것만)
컴포넌트서비스는 모듈을 받아서 로직 만들기 , 비지니스 로직을 처리
그리고 각 서비스 별 annotation 만들어놓음 - 컴포넌트, 모듈 // 좀더 확실하게 구분하고 분간하고 싶으면 사용해보라고 했다.
서비스랑 같음 = 서비스 컴포넌트=모듈 서비스
package bleuauction.bleuauction_be.server.config.annotation;
import org.springframework.stereotype.Service;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* ComponentService는 비즈니스를 처리해야 하며, 또는 타 서비스 Layer를 참조해야 할때 선언한다.
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Service
public @interface ComponentService {
}
package bleuauction.bleuauction_be.server.config.annotation;
import org.springframework.stereotype.Service;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* ModuleService는 단순히 CRUD만 처리하는 Service Layer로 Repository만 주입이 가능하다.
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Service
public @interface ModuleService {
}
⇒ 기존의 것은 의존성 문제가 있고, 컨트롤러에서 서비스로 내리면서 순환참조 문제, 컨트롤러는 인증, 인가 정도만 해야하는데 너무 많은 의존을 하고 있고, 서비스에서 트랜젝션 원자성을 지켜야하는데 그걸 못 함. 서비스에서 한개의 트랜젝션의 원자성을 가져보고자 이렇게 수정함. 다른 서비스에서 무엇을 가져와도 일관성있게 작업 가능.
https://timi-d.tistory.com/322
Optional 쓰면서 .get() 온 사방군데 다 뿌리고 다녔는데.....
https://timi-d.tistory.com/323
종원님이 member :findById 메서드 만들어놨다고 했다.
앞으로 고치면서 그거 갖다 써야할 것 같고 ,, 일단 서비스 분할보다 코드리뷰 달아주신거 수정부터 시작해야겠다.
쪼금씩 앞으로 나아가는 느낌이 들어서 아주 좋다.
그리고 리퀘스트 바디를 엔티티로 받는데 DTO로 수정 들어가야한다. 찬찬히,,, 해보겠어.
다음 목요일 회의까지는 노티스 수정 해야겠다. 추가로 나가는 건 힘들겠어 ..!!
'프로젝트 > BleuAuction' 카테고리의 다른 글
[BleuAuction 리팩토링] 12/13 (수) 종원's Service 코드 리뷰 (0) | 2023.12.13 |
---|---|
[BleuAuction 리팩토링] 12/11(월) 특이사항 없음 (0) | 2023.12.11 |
[BleuAuction 리팩토링] 11/30(목) 아직 시작도 안 했다,,! (1) | 2023.11.30 |
[BleuAuction 리팩토링] 11/23(목) 백 기능 분배 (0) | 2023.11.30 |
[BleuAuction 리팩토링] 11/20(월) BleuAuction EndPoint Refactoring (1) | 2023.11.30 |