본문 바로가기
백엔드/SpringBoot

DTO 따로 만들기(Param, VO)

by 1005ptr 2020. 8. 2.
반응형

요점: 데이터 요청 정보와 데이터를 담는 통은 따로 만들어야한다.

 

서버에는 데이터베이스에 접속하기 위한 클래스들이 존재한다.

 

Service, DAO, DTO, Param

컨트롤러에서 DB에 요청할 작업이 있으면 서비스의 특정 메서드를 호출한다.

서비스는 제약조건을 검사하거나 여러가지 DB 작업을 수행할 수 있는 트랜잭션 단위로 생각한다.

DAO의 메서드들은 SQL문과 1대1 대응되는 단순한 CRUD로 생각한다. 로직이 없다.

DTO는 DB 내의 테이블과 매핑되는 데이터를 담고 전송

Param은 DB 내의 데이터를 조회할 때 쿼리문의 조건 값을 전달

 

CUD 작업과 R 작업의 매개변수를 따로 만들어야 한다.

CUD 작업의 매개변수는 DTO

R 작업의 매개변수는 Param

복잡하지 않은 경우 Param 클래스를 만들지 않고 DTO가 Param 역할도 같이 수행할 수 있다.

 

데이터 조회량이 많거나 Param이 복잡해지는 경우 문제 발생

- 문제점- 

1. 이 변수가 Param으로만 사용되는지, 겸용되는것인지, DTO로만 사용되는지 불확실해진다.

2. 하나의 변수가 여러 의미를 가질 수 있게 된다.

3. 불필요한 데이터 전송이 발생한다.

반응형

댓글