백엔드 개발자 - 젤리곰 2024. 6. 1. 18:17
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