ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring 핵심 알기 - 4] ViewResolver란? - 수정
    카테고리 없음 2024. 5. 23. 17:36
    728x90
    반응형

     

     


    ViewResolver

    주로 뷰의 논리적 이름을 실제 뷰 객체로 매핑하는 역할을 합니다. 일반적으로는 서버 측 템플릿 엔진을 사용하여 HTML 페이지를 생성하는 데 주로 사용됩니다. 그러나 JSON과 같은 데이터 형식을 클라이언트에게 전달해야 할 때도 ViewResolver를 사용하여 JSON 형식의 데이터를 생성하고 클라이언트에게 전송할 수 있습니다. 이 과정은 다음과 같습니다.

     

    ViewResolver에서 json 데이터 처리방법

    1. 클라이언트의 요청이 들어오면 DispatcherServlet이 해당 요청을 처리합니다.
    2. DispatcherServlet은 HandlerMapping을 통해 요청을 처리할 컨트롤러를 찾습니다.
    3. 해당 컨트롤러의 메서드가 실행되어 데이터를 반환하면, Spring은 이 데이터를 ViewResolver를 통해 뷰로 변환합니다.
    4. 일반적으로는 JSON 형식의 데이터를 반환해야 하므로, Spring은 MappingJackson2HttpMessageConverter와 같은 메시지 컨버터를 사용하여 데이터를 JSON 형식으로 변환합니다.
    5. 변환된 JSON 데이터는 HTTP 응답 본문에 포함되어 클라이언트에게 전송됩니다.

     

    JSON 형식의 데이터를 클라이언트에게 전달하는 코드

     

    @RestController
    public class MyController {
    
        @GetMapping("/data")
        public ResponseEntity<Map<String, Object>> getData() {
            // 데이터를 가공하거나 서비스에서 가져온다고 가정
            Map<String, Object> data = new HashMap<>();
            data.put("name", "John");
            data.put("age", 30);
            
            return ResponseEntity.ok(data);
        }
    }

     

     

     

    위의 코드에서 /data 엔드포인트로 GET 요청이 오면 getData() 메서드가 실행됩니다. 이 메서드는 Map<String, Object> 형태의 데이터를 반환하고 있습니다. Spring은 이 데이터를 MappingJackson2HttpMessageConverter를 사용하여 JSON 형식으로 변환하여 클라이언트에게 전송합니다.

     

    이렇게 함으로써 ViewResolver는 JSON 형식의 데이터를 클라이언트에게 전달하는 과정에서 메시지 컨버터를 활용하여 JSON 형식으로 변환된 데이터를 HTTP 응답으로 반환합니다. ViewResolver는 뷰의 논리적 이름을 실제 뷰 객체로 매핑하는데 사용되지만, JSON과 같은 데이터 형식을 클라이언트에게 전달할 때도 사용될 수 있습니다.

    728x90
    반응형
Designed by Tistory.