Spring/아키텍처 (Architecture) 2

Repository에서 Request/Response DTO 를 사용해도 될까?

과제를 진행하다가 한 가지 의문이 생겼다.API 요청/응답용 DTO를 Repository에서 사용해도 될까? 결론부터 말하자면: ❌ 사용해서는 안 된다. Repository는 데이터 접근(Persistence)을 책임지는 계층이고, Request/Response DTO는 프레젠테이션 계층(Presentation)의 데이터 포맷을 담당한다. 이 둘은 서로의 책임이 다르며, 의존해서도 안 된다. 왜 사용하면 안 되는가? 1. 계층 간 의존성 붕괴Repository는 하위 계층(Persistence)이고, Request/Response DTO는 상위 계층(Presentation)이다.하위 계층이 상위 계층을 참조하면 의존성 방향이 잘못됨유지보수성과 테스트 가능성이 떨어2. 변경 전파 문제화면 요구사항이 바뀌..

Entity와 DTO(Data Transfer Object)의 차이

개발을 하다 보면 한 가지 의문이 생긴다."Entity랑 DTO, 왜 굳이 나눠서 써야 하지?" 처음엔 둘 다 그냥 데이터를 담는 그릇처럼 보인다. 하지만, 이 두 객체는 그 목적과 사용되는 맥락이 다르기 때문에, 실제로는 각각 다른 역할을 수행한다.이 글에서는 Entity와 DTO의 차이점을 명확히 구분하고, 왜 둘을 분리해서 사용하는 것이 중요한지에 대해 살펴보겠다.1. Entity"Entity는 데이터베이스 테이블과 1:1로 매핑되는 객체이다." 특징@Entity로 선언되고, 주로 JPA 같은 ORM과 함께 사용된다.DB에 직접 저장하거나 조회하는 객체다.비즈니스 도메인을 표현하기도 한다.@Entitypublic class User { @Id @GeneratedValue private L..