[TIL] Controller 를 사용하는 이유

김시원·2022년 11월 21일

TIL

목록 보기
27/30

Controller 의 장점

1️⃣ HTTP request, response 처리를 위해 매번 작성해줘야하는 중복코드들 생략 가능.

⬇️ Servlet 코드

@WebServlet(urlPatterns = "/api/search")
public class ItemSearchServlet extends HttpServlet {
	@Override
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
      String query = request.getParameter("query");
			
			// ...

      response.setContentType("application/json");
      response.setCharacterEncoding("UTF-8");
      PrintWriter out = response.getWriter();
      String itemDtoListJson = objectMapper.writeValueAsString(itemDtoList);
      out.print(itemDtoListJson);
      out.flush();
	}
}

⬇️ Controller 코드

@Controller
public class ItemSearchController {
	@GetMapping("/api/search")
  @ResponseBody
  public List<ItemDto> getItems(@RequestParam String query) throws IOException {
			
			// ...

			return itemDtoList;
  }
}

controller에서는 servlet 중복 코드들을 스프링이 대신해준다.

@RequestParam : String query를 정의만 해주면 이 string query안에 내부적으로는 request.getParameter를 한 결과를 담아서 보내주겠다.
✅ itemDtoList 반환만 하면, 서블릿에서의 json으로 변환해주는 과정이랑 contentType 설정하는 과정, out.print, flush 이런 과정들을 컨트롤러 스프링에서 해줌.

2️⃣ API 이름마다 파일을 만들 필요 없음

profile
IT 개발자 시원

0개의 댓글