정적팩토리 메서드

2025. 8. 15. 16:40·개발 공부/Java-Spring

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()
        );
    }
}

사용 이유와 장점

  1. 의미 있는 이름으로 객체 생성
    • new 키워드를 쓰지 않고 of()와 같은 이름만으로 생성자의 목적과 의미를 바로 알 수 있습니다.
    • 긴 생성자를 쓰는 것보다 훨씬 직관적입니다.
  2. 객체 재사용 가능
    • 동일한 인자를 가진 객체를 캐싱해 재사용할 수 있어 불필요한 객체 생성을 줄일 수 있습니다.
  3. 서브타입 반환 가능
    • 반환 타입은 인터페이스나 상위 클래스지만, 실제 구현은 다르게 반환할 수 있어 유연합니다.
  4. 가독성 향상
    • 한눈에 객체 초기화 과정을 이해할 수 있고, 코드가 간결해집니다.

결론

실제로 사용해보니 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
'개발 공부/Java-Spring' 카테고리의 다른 글
  • 자바 예약어 final vs static
  • interface vs abstract class
  • JVM 의 메모리 구조
  • 자바 용어 와 자바 실행 방법
cookiboii
cookiboii
초보 개발자입니다.
  • cookiboii
    Just Do it
    cookiboii
  • 전체
    오늘
    어제
    • 분류 전체보기 (79)
      • 잡소리 (2)
      • vscode꾸미기 (1)
      • 회사공부 (0)
      • 면접복기 (5)
      • 개발취직관련 좋은 글귀 (12)
      • 개발 공부 (58)
        • 백준 (0)
        • web (3)
        • js&ts&react (4)
        • Java-Spring (18)
        • 개발책 리뷰 (0)
        • c++ (0)
        • git (0)
        • code up 문제 (5)
        • 네트워크 (5)
        • 자료구조&알고리즘 (2)
        • ci,cd (1)
        • 프로젝트 (9)
        • sql (4)
        • 컴퓨터구조 (1)
        • 운영체제 (5)
        • python (0)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

    • 네이버블로그
    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    자바
    사이드프로젝트 #토이프로젝트 #개발 #개발자
    js #예약어 #자바스크랩트
    프로그래밍
    포켓몬 #vscode #vscode꾸미기 #개발
    라이엇 #api #롤api
    springai #spring #java
    개발
    코딩
    js #web
    롤 #리그오브레전드
    코드업 #코딩문제
    js #제이쿼리 #비동기통신 #코딩 #프로그래밍
    JVM
    ci #개발 #git
    Java
    자바 #Java #JPA #개발자 #개발 #초보
    깃허브 #깃 #커밋
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
cookiboii
정적팩토리 메서드
상단으로

티스토리툴바