Entity3 [Java] Mapstruct - Entity와 DTO의 편리한 매핑 Java/Spring으로 웹 개발을 진행하다 보면, Entity와 DTO간의 변환을 수행하는 로직을 마주하게 된다.일단 코드로 예시를 한번 보자 Entity - DTO 매핑 (수동) UserEntity@Getter@AllArgsConstructorpublic class UserEntity { private Long id; private String name; private String email;} UserDTO@Getter@Setter@AllArgsConstructorpublic class UserDTO { private Long userId; private String userName; private String userEmail; // Getters and S.. 2024. 11. 8. [Spring] DTO와 Entity의 분리. 왜? 어떻게? JPA를 사용한 프로젝트를 진행할 때, Entity를 직접 반환하지 말고 DTO로 변환하여 반환하라는 피드백을 받은 적이 있다. 당시 나는 그냥 단순히 그렇게 적용을 했고, 왜? 라는 의문을 가지지 않았었다. 오늘 포스팅의 내용은 그 왜? 어떻게? 이다. 일단 DTO가 역할이 뭔지, Entity가 역할이 뭔지 알고 들어갈 필요가 있다. DTO vs EntityDTO : 클라이언트와 서버 간 데이터 전송을 위해 설계된 객체Entity : DB에 저장되는 데이터 객체. DB와 직접적인 연결차이점은 얼추 알게 되었다.그렇다면, Entity를 직접 반환하면 어떤 문제점이 생길까? 1. 유지보수, 성능 이슈프로젝트 API 스펙이 변경되거나, 엔티티 필드명 변경 등 요구사항이 변경된다면 추가 작업이 요구된다.효.. 2024. 11. 7. [Spring] DTO vs Entity vs VO 오늘은 DTO와 Entity, 그리고 유사 개념이지만 다른 VO의 개념들과 차이에 대해서 정리해보았다.잘 구분해서 사용하려고는 하지만, 사실 정확한 개념을 설명하라고 하면 자신있게 대답하지 못했다.이 포스팅을 바탕으로 확실하게 머릿속에 정리해야겠다.DTODTO는 Data Transfer Object 의 약자이며, 데이터 전송 객체라는 의미를 가지고 있다.데이터 교환만을 위해 사용하는 객체이며, 비즈니스 로직을 갖지 않고, getter/setter 메소드만 갖는다.Controller와 같은 클라이언트와 직접 마주하는 계층에서 DTO를 사용하여 데이터를 요청 / 응답한다.setter 를 가지는 경우 가변 객체로, 가지지 않는다면 불변 객체로 사용할 수 있다.불변 객체는 setter대신 생성자를 이용하여 초기.. 2024. 11. 7. 이전 1 다음