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