[Java] JPA에서 DTO는 Interface로 구현할까? Class로 구현할까?
·
개발 (Development)/Java
JPA를 사용할 때 DTO(Data Transfer Object)를 어떻게 정의할지 고민이 되는 경우가 많습니다. 특히 interface 기반 DTO와 class 기반 DTO 중 어떤 방식을 선택해야 할지 혼란스러울 수 있는데요, 이번 글에서는 두 방식의 차이점과 사용 목적에 따라 어떤 방식을 선택하면 좋을지 정리해보았습니다.Interface 기반 DTO예시public interface UserDto { String getName(); int getAge();}@Query("SELECT u.name as name, u.age as age FROM User u")List findUsers();장점코드가 간단하며, getter만 정의하면 JPA가 구현체를 자동으로 생성합니다.읽기 전용 DTO에 적..