logo

Dto 클래스에서 MultiValueMap로 쉽게 타입 변환하기

language-logoJava

• RestTemplate의 `exchange` 메소드를 이용해 `HTTP.GET` 호출을 할 때, Query string 처리가 불편하다. `HTTP.POST`의 경우 Dto 인스턴스를 그대로 데이터를 전달할 수 있지만, Query string를 사용하는 Get의 경우 Dto 클래스를 그대로 사용할 수 없어 직접 URL 파라미터를 만들거나 MultiValueMap을 사용해야 한다.
• Dto 인스턴스의 필드들을 하나씩 꺼내와 MultiValueMap에 키와 값을 직접 다 입력하게 되면 누락된 필드가 발생할 확률이 높다. 이를 해결하기 위해 ObjectMapper를 사용하여 Dto를 Map으로 형변환하려 하였으나, 에러가 발생하며 실패하였다.
• MultiValueMap은 같은 키를 가진 파라미터 값이 여러개일 경우를 대비하여 사용되며, 이는 웹에서 동일한 키를 가진 여러 파라미터를 정상적으로 인식하고, 수신하는 곳에서는 해당 키를 리스트로 가진 곳에 정상적으로 매핑하기 위함이다.
• 일반적인 상황에서는 HTTP.GET 요청에 리스트로 값을 넘길 경우가 거의 없으므로, 단일 필드로 이루어진 Query string으로 사용되며, 이를 위해 Dto를 MultiValueMap으로 변환하는 유틸 클래스를 사용할 수 있다.

thumbnail
북마크
공유하기
신고하기
11분 분량
조회수 333
profile-image향로
2년 전
Copyright © 2025. Codenary All Rights Reserved.