데이터 전송을 처리하는 프로그램 작성 시, 중요한 개념 중 하나는 DTO(Data Transfer Object)이다. Java에서의 DTO 개념과 사용 이유에 대해 설명한다.
DTO는 보통 데이터베이스의 각 테이블에서 가져온 데이터를 담아서 사용한다. 이를 통해 데이터를 전송하는 과정에서 데이터를 캡슐화하고, 비즈니스 로직과 데이터베이스 간의 데이터 교환을 단순화한다.
DTO를 사용하는 이유는 데이터베이스와 비즈니스 로직 간의 결합도를 낮추기 위함이다. 즉, 데이터베이스의 변경에 영향을 받지 않고 비즈니스 로직을 수정할 수 있도록 해주는 것이다. 또한 DTO를 사용하면 데이터 전송 시 데이터의 무결성을 보장할 수 있다.
간단히 말해, DTO는 데이터 전송에 필요한 객체로, 데이터베이스나 외부 시스템에서 가져온 데이터를 비즈니스 로직에서 사용할 수 있는 형태로 변환해주는 역할을 한다. 이를 통해 데이터의 무결성을 보장하고, 데이터베이스와 비즈니스 로직 간의 결합도를 낮출 수 있다.
예를 들어, 고객 정보를 데이터베이스에서 가져와서 비즈니스 로직에서 사용해야 하는 경우를 생각해보겠다.
데이터베이스에서는 고객 정보를 다음과 같은 형태로 저장할 수 있다.
Customer table
-----------------------------
| ID | Name | Age | Address |
-----------------------------
| 01 | Tom | 30 | Seoul |
| 02 | Jane | 25 | Busan |
-----------------------------
이때, 고객 정보를 비즈니스 로직에서 사용하기 위해서는 데이터베이스의 테이블과는 다른 형태로 변환해야 한다. 이때 DTO를 사용하면 다음과 같이 변환할 수 있다.
public class CustomerDTO {
private String id;
private String name;
private int age;
private String address;
public CustomerDTO(String id, String name, int age, String address) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getAddress() {
return address;
}
}
위와 같이 DTO 클래스를 작성하면, 데이터베이스에서 가져온 고객 정보를 DTO 객체에 담아서 비즈니스 로직에서 사용할 수 있다. 이를 통해 데이터베이스와 비즈니스 로직 간의 결합도를 낮출 수 있다.
'스프링부트' 카테고리의 다른 글
th 문법(with) (0) | 2023.05.14 |
---|---|
Dependency Injection/DI (0) | 2023.05.14 |
데이터베이스 조작을 위한 DAO(Data Access Object) 이해하기 (0) | 2023.04.13 |
DTO와 DAO의 차이점 DTO: Data Transfer Object/DAO: Data Access Object (0) | 2023.04.13 |
What is Spring Boot? (0) | 2023.04.13 |