728x90
1. MultiValueMap 이란?
하나의 키에 여러 값을 매핑할 수 있는 자료구조다.
HTTP 요청 파라미터나 헤더를 처리할 때 유용하게 쓰인다.
2. 코드로 이해하기
✅HTTP 요청 파라미터를 처리하는 컨트롤러
import org.springframework.util.MultiValueMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MultiValueMapController {
@GetMapping("/params")
public String handleParams(@RequestParam MultiValueMap<String, String> params) {
StringBuilder result = new StringBuilder();
params.forEach((key, values) -> {
result.append(key).append(" = ").append(values).append("\n");
});
return result.toString();
}
}
✅실행 테스트
Postman에 'http://localhost:8080/params?key1=value1&key1=value2&key2=value3' URL 요청을 보내면
아래와 같이 출력된다.
💡StringBuilder를 사용한 이유
▶️ StringBuilder는 내부적으로 버퍼를 사용해서 문자열을 변경할 수 있다.
String과 달리 새로운 문자열을 만들 때마다 새로운 객체를 생성하지 않고도 문자열을 추가하거나 변경할 수 있다.
따라서, StringBuilder를 사용하면 메모리 사용량을 감소시킬 수 있고 새로운 객체를 만들지 않아도 되니 String보다 속도가 더 빠르다.
문자열 결합 작업을 할 때는 StringBuilder를 사용하는 것이 좋다.
728x90
'인프런 김영한 강의 정리 > 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술' 카테고리의 다른 글
스프링 MVC - 로깅 알아보기 | System.out.println()을 사용하면 안되는 이유 (0) | 2024.06.01 |
---|---|
스프링 MVC - 구조 이해하기 (0) | 2024.05.30 |