250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 즉시로딩
- 스프링 폼
- BOJ
- 다대일
- dfs
- querydsl
- fetch
- PS
- 백트래킹
- 일대다
- SQL프로그래밍
- FetchType
- 낙관적락
- 비관적락
- 연결리스트
- 동적sql
- 유니크제약조건
- 데코레이터
- JPQL
- 연관관계
- 힙
- shared lock
- execute
- 지연로딩
- 스토어드 프로시저
- 이진탐색
- CHECK OPTION
- exclusive lock
- 다대다
- eager
Archives
- Today
- Total
흰 스타렉스에서 내가 내리지
DTO 본문
728x90
Data Transfer Object
프로세스 사이에서 데이터를 전송하는 객체이다.
DTO를 사용하며 중요한 정보를 노출시키지 않고 서버 간 통신을 원활하게 촉진할 수 있다.
DTO는 필요한 데이터만 전송할 수 있다.
계층 간 데이터 전송을 위해 도메인 모델 대신 사용되는 객체이다.
DTO는 어떠한 비즈니스 로직을 가져서는 안되며, 저장, 검색, 직렬화, 역직렬화 로직만을 가져야 한다.
도메인 대신 DTO을 사용하면 좋은 이유
DTO 대신 도메인 모델을 계층간 전달에 사용하면, UI 계층에서 도메인 모델의 메소드를 호출하거나 상태를 변경시킬 수 있다.
또한 UI화면마다 사용하는 도메인 모댈의 정보는 상이하다.
하지만 도메인 모델은 UI에 필요하지 않은 정보까지 가지고 있다.
이런 모든 도메인 모델 속성이 외부에 노출되면 보안 문제가 발생할 수 있다.
즉, 도메인 모델을 캡슐화 하여 보호할 수 있다.
또한 도메인 모델을 계층간 전송에 사용하면, 모델과 뷰가 강하게 결합될 수 있다.
뷰의 요구사항 변화로 도메인의 코드를 변경해야 할 일이 생기는 것은 좋지 않다.
DTO를 사용하면 이 결합을 느슨하게 만들 수 있다.
'Spring' 카테고리의 다른 글
멀티 모듈 프로젝트 (0) | 2023.09.09 |
---|---|
Builder Pattern :: 빌더 패턴 (0) | 2023.08.03 |
Transaction 롤백? (0) | 2023.07.13 |
Transaction과 Async (0) | 2023.07.13 |
Swagger 에서 Pageable 인터페이스의 쿼리 파라미터를 제대로 표현하지 못하는 에러 해결 (0) | 2023.05.31 |