반응형
서문
왜 DTO라는게 필요한지, modelmapper는 뭐하는 역할인지 모르겠어서 정리해보았다.
DTO의 역할
- DTO 는 Data Transfer Object 의 줄임말로 데이터 전송을 위해서만 사용하는 객체다. 그냥 데이터와 getter setter만 담는다.
public class MemberDTO {
private Long id;
private String name;
private String email;
// Getter와 Setter 메서드
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
- DTO는 아래와 같이 컨트롤러나 클라이언트에 적용해야될때 사용된다.
public MemberDTO getMemberInfo(Long id) {
Member member = memberRepository.findById(id);
MemberDTO memberDTO = new MemberDTO();
memberDTO.setId(member.getId());
memberDTO.setName(member.getName());
memberDTO.setEmail(member.getEmail());
return memberDTO;
}
- DTO는 Entity와 다르게 로직을 포함하지 않으면 DB와 직접관계도 연관되어 있지 않다. 필요한 정보만 추출하여 전달하는 역할을 한다. 즉 Entity를 전송용으로 변형한 객체이다.
- 불필요한 데이터를 제외하고 데이터 전송을 최적화, 보안을 더 잘 관리할 수 있다
ModelMapper의 역할
- ModelMapper는 DTO와 entity를 매핑해준다. 각 객체가 가지는 필드 하나하나를 매핑하는 번거로움을 줄이고 자동으로 일관성 있게 변환할 수 있게 한다.
- ModelMapper 적용전
MemberDTO memberDTO = new MemberDTO();
memberDTO.setId(member.getId());
memberDTO.setName(member.getName());
memberDTO.setEmail(member.getEmail());
return memberDTO;
- ModelMapper 적용후
return modelMapper.map(member, MemberDTO.class);
단, ModelMapper를 사용하기 위해서는 의존성 처리를 해야한다.
반응형
'CS 내용 요약, 지식 > Java Spring' 카테고리의 다른 글
Java Annotation이란 (0) | 2024.11.23 |
---|---|
[JAVA] 롤로 설명하는 객체지향 프로그래밍 (OOP) (0) | 2024.11.22 |