[DTO] Data Transfer Object란?

Halo·2025년 6월 10일
0

JAVA/Spring

목록 보기
11/15
post-thumbnail

👀 의미

데이터를 다음과 같이 class를 사용하여 원하는 형태로 만드는 것을 말한다.

@RequiredArgsConstructor
class MemberDTO{
    @NonNull
    public Long id;

    @NonNull
    public String usrName;

    @NonNull
    public String displayName;
  }

참고로 NonNull 어노테이션이나 final을 사용해야 @RequiredArgsConstructor 사용이 가능하다.
(빈 값이 들어있으면 안되기 때문에)



💁🏻 사용하는 이유

가. Type Check가 용이해진다.
추후, 클래스의 타입을 확인할 때 편해진다.

나. 재사용이 쉬워진다.
나중에 DTO의 멤버변수를 수정하여 원하는 값들을 가진 객체로 만들기 편해진다. 즉, 필요할 때마다 객체에 원하는 데이터를 추가하거나 삭제할 수 있다.


😏 기타

가. DBeave에서 열 삭제

Properties들어가서 원하는 컬럼명 선택 후, 아래 빨간색 휴지통 버튼 눌러서 삭제해주면 된다.


❗️ 트러블 슈팅

가. The given id must not be null

null 값을 주면안되는데 줘버려서 생긴 상황이다.

DB의 중복된 컬럼이 존재해서 생긴 상황이였다.


😏 느낀점

스프링은 HTTP 응답시, 객체를 json 형태로 body에 담아 클라이언트에게 제공한다.


🛠️ 환경

항목Env Info
🖥️ 서버Tomcat
🍭 프레임워크Spring Boot
📀 데이터베이스MySQL with Azure
📝 JPAHibernate
🙈 외부 라이브러리lombok, thymeleaf, AJAX
📏 디자인 패턴MVC
profile
새끼 고양이 키우고 싶다

0개의 댓글