앞선 게시글에서 우리는 브라우저(클라이언트)로부터 서버가 어떤 방식으로 데이터를 담아 요청을 받는지 알아보았다.
URL에 데이터를 붙여 전송하는 방식은 데이터의 보안에 취약하다는 것을 알아보았다. 이러한 문제때문에 브라우저(클라이언트)와 서버간의 데이터를 전달하는 과정에서 DTO를 사용해야 한다고 한다.
DTO는 Data Transfer Object 의 약자로 프로세스 간에 데이터를 전달하는 개체입니다.
Web 서비스, 즉 Spring 환경에서의 DTO는 HTTP 요청의 데이터를 전달 받거나 계층(Controller, Service) 간의 이동 시에 사용 되는 객체라 이해하시면 좋을 것 같습니다.
여기서 중요하게 볼점은 '객체' 라는것이다. 이해하기 쉽게 생각하자면 여기서 객체는 데이터들을 포장한 포장박스같은 역할을 한다고 생각하면 쉬울것 같다.
이점으로 서술됬듯이 객체지향프로그래밍에서의 장점이 이곳에서도 나타난다. 우리는 객체지향 프로그램의 4가지 특성중 하나인 캡슐화를 생각하고 위글을 읽으면 DB와 직접적으로 연관되는 Entity의 정보를 클라이언트에게 숨길수 있는 캡슐화의 특성또한 장점으로 발휘됨을 알수있고 객체지향프로그램의 장점인 코드의 유지보수가 유리하다는 점 이있다. 또한 객체지향의 5가지원칙중 하나인 단일책임원칙을 통해 DTO와 Entity를 분리하여 각 기능에만 집중할수 있다는점이 있으며 클라이언트에게 반환하면안되는 데이터 등의 가공처리가 쉬워지는 장점이있다.