-
[리팩토링 보고서] 레이어간 의존성 개선Back End/리팩토링 보고서 2022. 3. 4. 16:56
리팩토링 진행시 계속 업데이트 되는 포스팅입니다.
PocketMark v0.1 레이어 아키텍처
문제점
1(R). API 스펙변경시 엔티티 스펙도 변경해야한다.
엔티티 스펙변경시 API 스펙도 변경해야한다. (API-Entity 의존관계가 있다.)
2(P). API 스펙 확장성을 저해시킨다.
리팩토링 방향
1(R). 데이터 전송만을 담당하는 객체를 만들어 API-DTO, DTO-Entity 로 의존관계를 분리한다.
2.(P). Response 객체를 만들어 멤버변수로 컬렉션을 사용할 수 있게 끔 한다.
PocketMark v0.2 레이어 아키텍처
문제점
컨트롤러 단에서 DTO 변경로직이 있다면 서비스 단까지 전파된다.
리팩토링 방향
컨트롤러와 서비스레이어 간 DTO를 새로 정의하여 의존성을 분리한다.
PocketMark v1.0 레이어 아키텍처 (현재)
문제점
DTO 내부에 toEntity()가 선언되어있다. (DTO-Entity가 의존관계가 있다.)
리팩토링 방향
정적유틸 클래스 Mapper를 만들어 DTO-Entity 간 변환을 담당하게 하여 의존관계를 분리시킨다.
(DTO-Mapper, Mapper-Entity)
PocketMark v2.0 레이어 아키텍처 (예정)
728x90'Back End > 리팩토링 보고서' 카테고리의 다른 글
[리팩토링 보고서] JPA 쿼리 성능 최적화 (0) 2022.03.05 [리팩토링 보고서] 서버과부하 방지를 위한 Batch 처리 (0) 2022.03.05 [리팩토링 보고서] 일급 컬렉션의 적용 (0) 2022.03.04 [리팩토링 보고서] API와 Repository 의존성 제거하기 (DTO-Repository 의존성 제거) (0) 2022.03.04 [개발노트] PocketMark 개발노트 (0) 2022.03.03