DTO 작성 시 record와 정적 팩토리 메서드 활용기
프로젝트를 진행하면서 DTO(Data Transfer Object)를 작성할 때, record 타입을 활용하면 코드가 훨씬 깔끔해진다는 걸 느꼈습니다. 특히 객체 초기화 시 **정적 팩토리 메서드(static factory method)**를 사용하면 장점이 많아 정리해보았습니다.
public record BanPickResponseDto(
Long teamId,
String teamName,
String championName,
BanPickActionType actionType,
int turnOrder
) {
public static BanPickResponseDto of(PickBan pickBan) {
return new BanPickResponseDto(
pickBan.getTeam().getId(),
pickBan.getTeam().getTeamName(),
pickBan.getChampionName(),
pickBan.getType(),
pickBan.getTurnOrder()
);
}
}
사용 이유와 장점
- 의미 있는 이름으로 객체 생성
- new 키워드를 쓰지 않고 of()와 같은 이름만으로 생성자의 목적과 의미를 바로 알 수 있습니다.
- 긴 생성자를 쓰는 것보다 훨씬 직관적입니다.
- 객체 재사용 가능
- 동일한 인자를 가진 객체를 캐싱해 재사용할 수 있어 불필요한 객체 생성을 줄일 수 있습니다.
- 서브타입 반환 가능
- 반환 타입은 인터페이스나 상위 클래스지만, 실제 구현은 다르게 반환할 수 있어 유연합니다.
- 가독성 향상
- 한눈에 객체 초기화 과정을 이해할 수 있고, 코드가 간결해집니다.
결론
실제로 사용해보니 record + 정적 팩토리 메서드 조합은 DTO 작성에서 상당히 유용했습니다.
앞으로도 DTO 초기화 시 적극적으로 활용할 계획입니
'개발 공부 > Java-Spring' 카테고리의 다른 글
| 자바 예약어 final vs static (0) | 2025.10.23 |
|---|---|
| interface vs abstract class (0) | 2025.09.26 |
| JVM 의 메모리 구조 (0) | 2025.08.15 |
| 자바 용어 와 자바 실행 방법 (0) | 2025.07.28 |
| SOLID객체지향 5가지 원칙 (0) | 2025.06.27 |