DTO란?
DTO는 다른 에이어 간의 데이터 교환에 활용된다. 즉, 각 클래스 및 인터페이스를 호출하면서 전달하는 매개변수로 사용되는 데이터 객체이다.
ETO는 데이터 교환 용도로만 사용하는 객체이기 때문에 별도의 로직이 포함되지는 않는다.
DTO와 VO
DTO와 VO의 역할을 명확히 구분하지 않고 사용할 때가 많다.
VO는 데이터 그 자체로 의미가 있는 객체를 말한다. VO의 가장 큰 특징은 '읽기전용'으로 설계한다는 것이다. 즉, VO는 값을 변경할 수 없게 만들어 데이터의 신뢰성을 유지한다.
DTO는 데이터 전송을 위해 사용되는 데이터 컨테이너로 생각하면 된다. 즉, 같은 애플리케이션 내부에서 사용되는 것이 아니라 다른 서버나 시스템으로 전달되는 경우에 사용된다.
DTO 클래스
DTO 클래스는 전달하고자 하는 필드 객체를 선언하고 getter/setter 메서드를 구현한다. 그리고 DTO 클라스에 선언된 필드는 컨트롤러의 메서드에서 쿼리 파라미터의 키와 매핑된다. 즉, 쿼리스트링의 키가 정해져 있지만 받아야 할 파라미터가 많을 경우 DTO 객체를 활용해 코드의 가독성을 높일 수 있다.
Ex)
@GetMapping(value = "/request")
public String getRequestParam(PracDto pracDto){
//return pracDto.getName() + " " + pracDto.getEamil()+" "+ pracDto.getage();
return pracDto.toString();
}