inblog logo
|
stupefyee
    기술정리

    DTO 매핑

    Stupefyee's avatar
    Stupefyee
    Dec 06, 2024
    DTO 매핑
    Contents
    1. DTO란?2. DTO 매핑의 필요성3. 매핑 방식4. DTO 매핑 시 고려 사항5. 활용 사례

    1. DTO란?

    • 정의: Data Transfer Object의 약자로, 계층 간 데이터 전송을 위한 객체.
    • 역할: 엔터티(Entity)와 분리된 객체로, 전송에 필요한 데이터만 담음.
    • 사용 이유:
      • 데이터 전송 최적화.
      • 엔터티 보호.
      • 응답 형식 제어.

    2. DTO 매핑의 필요성

    • 엔터티와의 차별화
      • 엔터티는 데이터베이스와 직접 연결되므로, 외부 노출 시 보안 및 유지보수 문제가 발생할 수 있음.
      • DTO는 전송에 필요한 최소한의 정보만 포함.
    • 비즈니스 로직 분리
      • DTO는 데이터 표현에만 집중, 비즈니스 로직과 무관.

    3. 매핑 방식

    1. 수동 매핑
        • 코드로 직접 매핑 수행.
        • 장점: 세밀한 제어 가능.
        • 단점: 반복 코드 증가.
        예제 (Java):
        public class UserMapper { public static UserDTO toDTO(User user) { UserDTO dto = new UserDTO(); dto.setId(user.getId()); dto.setName(user.getName()); dto.setEmail(user.getEmail()); return dto; } }
    1. 자동 매핑
        • 매핑 라이브러리 활용(예: MapStruct, ModelMapper).
        • 장점: 코드 간결화, 생산성 향상.
        • 단점: 라이브러리 의존성, 복잡한 매핑 제어 한계.
        예제 (MapStruct 사용):
        @Mapper public interface UserMapper { UserMapper INSTANCE = Mappers.getMapper(UserMapper.class); UserDTO toDTO(User user); }

    4. DTO 매핑 시 고려 사항

    1. 성능
        • 대규모 매핑 시 자동 매핑보다 수동 매핑이 더 효율적일 수 있음.
    1. 보안
        • 민감한 데이터가 DTO에 포함되지 않도록 주의.
    1. 유지보수성
        • DTO와 엔터티 변경 사항이 동기화되도록 관리.

    5. 활용 사례

    • API 응답 데이터
      • 필요한 필드만 포함해 클라이언트에 응답.
    • 계층 간 데이터 전달
      • 서비스 계층에서 컨트롤러로 데이터 전달 시 사용.
    • 비즈니스 요구사항 반영
      • 특정 뷰나 화면에 맞춘 데이터 구조 제공.
    Share article
    Contents
    1. DTO란?2. DTO 매핑의 필요성3. 매핑 방식4. DTO 매핑 시 고려 사항5. 활용 사례

    stupefyee

    RSS·Powered by Inblog