본문 바로가기

언어/JAVA

DTO (Data Transfer Object)

DTO : 여러 개의 데이터를 묶어서 하나의 객체로 전달 (한개이상의 데이터를 전달할 때가 많기 때문)

 - Java Beans 형태로 구성

 ㆍ 생성자가 없거나 반드시 파라미터 없는 생성자 함수를 가지는 형태

 ㆍ 속성(멤버 변수)은 private 으로 작성

 ㆍ getter / setter 를 제공할 것

 

📌 코드 분석

import org.zerock.w1.todo.dto.TodoDTO;

public enum TodoService {
    //객체 개수 결정, 여기서는 하나의 객체 생성 -> 싱글톤패턴 (객체 하나만 생성해서 하나만 사용)
    INSTANCE;

    public void register(TodoDTO todoDTO){
        System.out.println("DEBUG ..... " + todoDTO);
    }
}
 
System.out.println("DEBUG ..... " + todoDTO);

 

이 코드에서 todoDTO는 객체 타입이지만, + 연산 때문에 문자열과 연결되려고 해.
👉 이때, 자바는 자동으로 todoDTO.toString()을 호출해서 문자열로 변환한 후 + 연산을 수행함.

 

🔥 왜 toString()이 자동으로 호출될까?

자바에서 System.out.println(객체)을 호출하면,
👉 내부적으로 객체.toString()을 호출해서 문자열로 변환한 후 출력하기 때문