[TIL] Controller 를 사용하는 이유

김시원·2022년 11월 21일
0

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개의 댓글

관련 채용 정보