728x90
JPA를 사용하면서 DTO랑 Entity를 따로 둘 필요가 있나? 라는 의문점이 생겨 간단하게 정리한다.
1. Entity : 실제 DB테이블과 1:1로 매핑 되는 클래스
- DB테이블에 존재하는 컬럼만을 속성(필드)로 가져야 한다.
- 최대한 해당 클래스 안에서 필요한 로직을 구현 (외부에서 getter 사용을 최소화)
- setter 금지 (데이터 값이 무분별하게 바뀌면 위험)
2. DTO : 데이터 전송 객체(Data Transfer Object)이라는 의미라는 가졌으며, 주로 비동기 처리에 사용한다.
- DB데이터를 서비스나 컨트롤러에 데이터를 전송할 때 사용된다.
- getter/setter 메소드만 가진다. (로직X)
3. VO : DTO와 같은 개념이지만 read only 속성을 가진다.
- 특정한 비즈니스 값을 담는 객체
'Web > SpringBoot' 카테고리의 다른 글
[Spring Boot] 3. Spring Security 권한 설정 (0) | 2021.12.17 |
---|---|
[Spring Boot] 2. Spring Security 로그인 (0) | 2021.12.17 |
[Spring Boot] JPA defalut 값 설정하기 (@DynamicInsert, @DynamicUpdate) (0) | 2021.12.17 |
[Spring Boot] 1. Spring Security 사용 설정, 비밀번호 인코딩 (0) | 2021.12.16 |
[Spring Boot] Auto Increment (@GeneratedValue) (0) | 2021.12.16 |