_

Always be tactful

개인학습/자프링

DTO와 관련한 짧은 메모

funczun 2025. 4. 6. 04:06

record란 무엇인가?

 

record는 자바 14부터 도입된 클래스의 일종이다. 따라서 내부적으로도 final class로 컴파일된다.

즉, record는 불변 객체를 간편하게 만들기 위한 클래스의 축약 문법인 것이다!

record 선언을 통해 자동 생성되는 것들은 다음과 같다.
- 모든 필드 private final 선언
- 생성자
- Getter (필드명과 동일한 이름의 메서드)
- equals() / hashCode()
- toString()

요즘엔 DTO를 record로 선언한다.

 

사실 DTO는 필드를 외부에 노출하고, 읽기만 하는 경우가 많다.

그래서 불변성 + 간결함을 모두 가진 record랑 찰떡궁합이라고 볼 수 있다!


DTO 클래스 이름 짓기는 어떻게?

 

이름 짓기라는 게 사실 스타일 차이라서 어떤 게 맞다고 보긴 어렵지만, Best Practice는 언제나 존재한다.

결론부터 말하자면 "동작 + 도메인 + 요청/응답 타입" 순서가 가장 많이 쓰이고, 가독성도 좋고, 확장성도 뛰어나다.

동작(Verb)이 먼저 나오면, 역할이 바로 드러난다. Create 같은 동작 키워드로 한눈에 이해가 가능하다.
도메인(Entity)는 무엇에 대한 건지 명시한다. 예를 들어 Reservation 같은 대상이 해당된다.
Request/Response는 역할을 명확하게 분리해준다.