1. DTO란?
DTO(Data Transfer Object)란 계층간 데이터 교환을 위해 사용하는 객체(Java Beans)입니다.
DTO를 사용하는 이유는, 자바 domain 객체를 바로 접근하지 않기 위해서 입니다.
고로! 가볍게 생각헤서, 테이블을 조작하기 위해 한단계더 거쳐가는 완충제라고 생각하면 됩니다.
✅ 테이블을 직접적으로 접근하지 않음으로써, 데이터를 보호하기 위함
생성하기
- src > main > java > com.sparta.item01 > dto 패키지 생성
- src > main > java > com.sparta.item01 > dto 에 LectureRequestDto 파일 생성
- LectureRequestDto.java
@NoArgsConstructor
@Getter
public class LectureRequestDto {
private String title;
private String tutor;
public LectureRequestDto(String title, String tutor) {
this.title = title;
this.tutor = tutor;
}
}
LectureService
@Getter
@NoArgsConstructor
@Entity
public class Course extends Timestamped {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(nullable = false)
private String title;
@Column(nullable = false)
private String tutor;
public Course(String title, String tutor) {
this.title = title;
this.tutor = tutor;
}
public void update(LectureRequestDto requestDto) {
this.title = requestDto.getTitle();
this.tutor = requestDto.getTutor();
}
}
Lecture update 변경
@Getter
@NoArgsConstructor
@Entity
public class Course extends Timestamped {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(nullable = false)
private String title;
@Column(nullable = false)
private String tutor;
public Course(String title, String tutor) {
this.title = title;
this.tutor = tutor;
}
public void update(LectureRequestDto requestDto) {
this.title = requestDto.getTitle();
this.tutor = requestDto.getTutor();
}
}
이런식으로 Lecture 테이블을 직접 생성해서 접근하기 보다, DTO라는 완충제를 이용해 사용한다.
'Spring > Spring Boot' 카테고리의 다른 글
[Spring] 09. DI(의존성 주입) 과 IOC 컨테이너 (0) | 2021.11.12 |
---|---|
[Spring] 08. Controller 만들기 - 스피링 API (Get, POST, PUT, DELETE) (0) | 2021.11.11 |
[Spring] 06. Lombok - getter, Setter, 기본타입 생성자 코드 중복 없애기 (0) | 2021.11.11 |
[Spring] 05. JPA - CRUD (Spring Service layer) (0) | 2021.11.11 |
[Spring] 04. 데이터베이스 생성, 수정시간 자동 생성 클래스 만들기 (Timestamped 상속 테이블) (0) | 2021.11.10 |