
DTO (Data Transfer Object)는 데이터 전송을 위한 객체를 뜻합니다.
DTO를 만들어서 데이터를 주고받는 이유로는
Entity와 분리된 형태로 클라이언트와 데이터를 주고받을 수 있으며,
Entity 객체를 그대로 반환하는 것 보다 보안에 민감한 데이터가 외부에 노출되는 위험이 적어집니다.
보안에 신경써야하는 데이터를 골라내는 것과 같이
클라이언트에게 필요한 데이터만 선택적으로 반환할 수 있습니다.
또 Entity객체를 직접 Controller나 외부로 반환하면, 비즈니스 로직에 영향을 미칠 수 있다고 합니다.

Dto를 사용하여 데이터를 Controller에 전송하고 있는 Service 클래스입니다.
findAll을 통해 DB에서 데이터들을 가져와 DTO들의 리스트(배열)에 넣어
전달하는 비즈니스 로직으로 되어있습니다.

게시글목록보기() 메서드에서 사용되고 있는 boardDto의 구성입니다.
id와 글 제목만 필드로 가지고 있는 Dto로 그 외 다른 데이터들은 제외하여
목록에만 보여줄 필요한 데이터를 가지고 전달할 수 있도록 되어있습니다.

Controller에서는 Service의 메서드를 통해 게시글 정보들을 가져오고
클라이언트에게 전달되게 만들어져 있습니다.

웹 페이지에서는 Dto의 필드로 구성되어있는 글 ID 와 글 제목이 보여집니다.
이처럼 각 페이지에 필요한 데이터만 전달할 수 있도록 하는 것이 Dto의 역할 입니다.
Share article