Skip to the content.

Response DTO Guide — 클라이언트 응답 데이터

Response DTO는 클라이언트에게 반환하는 데이터를 담는 순수한 불변 객체입니다.

Java Record 패턴을 사용하며, 데이터 전달만 담당합니다.


1) 핵심 역할


2) 핵심 원칙

원칙 1: 순수 Java Record

원칙 2: 데이터 전달 전용

원칙 3: Domain 노출 금지

원칙 4: 네이밍 규칙


3) 패키지 구조

application/{bc}/dto/response/
├── {Bc}Response.java
├── {Bc}DetailResponse.java
└── {Bc}SummaryResponse.java

4) 템플릿 코드

기본 패턴

package com.ryuqq.application.{bc}.dto.response;

import java.time.Instant;
import java.util.List;

/**
 * {Bc} Response
 *
 * @author development-team
 * @since 1.0.0
 */
public record {Bc}Response(
    Long id,
    String name,
    String status,
    Instant createdAt,
    List<NestedInfo> nestedInfos
) {
    public record NestedInfo(
        Long id,
        String value
    ) {}
}

5) 실전 예시

Detail Response

package com.ryuqq.application.order.dto.response;

import java.time.Instant;
import java.util.List;

public record OrderDetailResponse(
    Long id,
    CustomerInfo customer,
    List<LineItem> items,
    Long amount,
    String status,
    Instant orderedAt
) {
    public record CustomerInfo(
        Long id,
        String name,
        String email
    ) {}

    public record LineItem(
        Long id,
        String productName,
        Integer quantity,
        Long unitPrice
    ) {}
}

Summary Response

package com.ryuqq.application.order.dto.response;

import java.time.Instant;

public record OrderSummaryResponse(
    Long orderId,
    String customerName,
    Long totalAmount,
    String status,
    Instant orderedAt
) {}

6) 체크리스트


작성자: Development Team 최종 수정일: 2025-11-13 버전: 1.0.0 (단순화)