안녕하세요
고민이 있습니다.

JPA로 데이터 받아와서 Service에서 Entity로 받은 후에 이를 변환하는 로직을 어디에 작성할지 고민입니다.

Service 에서 Entity를 Dto로 변환하면 해당 Service와 Controller가 서로 강하게 결합 되어있는 것 같은 느낌이 듭니다.
반대로 Service에서 Entity를 그대로 반환하고 Controller 에서 Dto로 변환하게 되면 Controller에 도메인 데이터가 노출 되기도하고 


현재 builder 패턴을 사용하고 있는데 필드가 많아지면 Controller가 생각보다 지저분해지는 느낌이 드네요.
하지만 서로 강하게 결합되어있다는 느낌이 없어서 여러 컨트롤러에서 재사용 할 수가 있을 것 같습니다.


님들은 주로 어디서 변환하시나요?

둘다 뭔가 찝찝해서 고민하다가 새로운 변환 레이어를 둬야하는건가 하는 생각도 했습니다.
예를들어 Controller -> Service로 가던 흐름을 Controller -> ConvertLayer -> Service 이런식으로 해보려하는데 어떤방법이 좋을까요?

1. Controller 에서 Dto로 변환
2. Service에서 Dto로 변환
3. 변환레이어를 추가로 두기