DTO를 왜 사용해야할까?

딩딩당당·2022년 11월 30일
0

나는 3주차 과제에서 초기에 요청과 응답을 엔티티로 직접 사용했었다. 오늘 그렇게 하면 안된다는 것을 알게되었는데 이유도 같이 알아보았다.

1. 엔티티를 캡슐화 해야한다.

엔티티가 getter/setter를 가지고 있으면 충분히 데이터 전달 역할을 할 수 있다. 하지만 이렇게되면 속성이 변경될 위험도 있고 엔티티를 UI에 노출하는 것은 데이터 테이블 설계를 공개하는 것과 다름없기 때문에 보안도 취약해진다. 따라서 엔티티의 내부 구현을 캡슐화하고 UI계층에 노출시키지 않는 방법으로 DTO사용을 채택하는 것이다.

2. 화면에 필요한 데이터만 보낼 수 있다.

프로젝트가 커질수록 엔티티도 점차 커지게 된다. 화면도 많아질테고 API도 더욱 많아질 것이다. 이 때 응답을 엔티티로 사용한다면 필요하지 않는 속성도 함께 보내게 된다. 이렇게 되면 효율면에서도 떨이지게 될테고 당연히 속도도 느려진다.

다른 이유도 많지만 지금의 나로서는 이 두가지가 가장 크게 와닿는 것 같았다. 후에 다른 이유들도 알게되면 추가해야겠다.

profile
자바공부해요흑흑

0개의 댓글

관련 채용 정보