Back End/리팩토링 보고서
[리팩토링 보고서] 레이어간 의존성 개선
DevPing9_
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