DTO와 MAP의 차이 !

박성현·2025년 5월 28일

개발중 학습

목록 보기
2/43

⭐기본개념 !

항목DTO (Data Transfer Object)Map (Map<String, Object>)
정의데이터 전달을 위한 클래스키-값 쌍으로 데이터를 저장하는 자료구조
사용 목적데이터 구조를 명확히 정의유동적인 데이터 처리, 임시 저장
형식정적 타입 (클래스 정의 필요)동적 타입 (key/value 구조)

✨주요 차이점

항목DTOMap
타입 안정성높음 (컴파일 시점에 오류 확인)낮음 (런타임 오류 가능)
IDE 자동완성지원불가
가독성/명확성좋음 (필드 정의 명확)떨어짐 (key를 문자열로 직접 관리)
유지보수편리 (필드 변경 시 영향 추적 쉬움)어려움 (key 이름 추적 어려움)
복잡한 구조 대응적합불편
유연성낮음 (정해진 구조만 가능)높음 (필드가 자유로움)
적용 예시API 요청/응답 처리, DB 연동임시 데이터 처리, 비정형 데이터

✅예제 비교 !

dto 방식

public class UserDTO {
    private String name;
    private int age;
    // getter/setter 생략
}
UserDTO user = new UserDTO();
user.setName("홍길동");
user.setAge(30);
System.out.println(user.getName());
  • 안전하고 명확함
  • 자동완성/리팩토링 쉬움

Map 방식

Map<String, Object> user = new HashMap<>();
user.put("name", "홍길동");
user.put("age", 30);

String name = (String) user.get("name");
  • 빠르게 쓸 수 있음
  • 키 오타나 타입 오류는 런타임까지 감지 불가

✅언제 DTO를 쓰고, 언제 Map을 쓸까?

상황추천 방식이유
API 요청/응답 객체DTO명확한 구조와 타입 안정성
DB 입력/조회 값 매핑DTOMyBatis, JPA 등에서 자주 사용
동적 JSON 처리Map키가 유동적일 때 유리
간단한 임시 저장MapDTO 만들기 귀찮을 때
복잡한 비즈니스 로직DTO명확한 구조로 처리 가능

✅결론

📌 정형 데이터 → DTO
📌 비정형 또는 유동적 데이터 → Map

profile
개발기록장

0개의 댓글