공부를 하던 도중 @WebServlet이랑 @Controller의 차이가 궁금해서 찾아보았다.
둘 다 HTTP요청을 처리한다는 점에서는 같다고 한다.
그럼 차이점이 무엇일까?
우선 @WebServlet은 JSP와 Servlet을 기술 스택 기반으로 가지고 있고,
@Controller는 Spring MVC의 컴포넌트이다.
WebServlet은 Servlet API이고... Controller는 Spring MVC이고... .
여러 차이점을 찾았지만 눈에 띈 차이점은 추상화 수준이라는건데,
@Controller는 추상화의 수준이 높다(다시 말해, Spring이 대부분 관리한다고 한다.)
그에 반해 @WebServlet은 추상화 수준이 낮아서, 일일히 관리를 해 주어야 한다고 한다.
어찌 보면 WebServlet은 반복적인 코드가 많이 생길 수도 있다는 말인데,
처음엔 단점인가? 싶기도 했지만, 성능 측면에서 보면 또 다른 느낌으로 다가왔다.
역으로 낮은 추상화 수준이기에 경량으로 개발할 수도 있다는 게 장점 아닐까?
물론 편한 건 Controller가 많이 편해보이긴 하지만.. 상황에 따라 WebServlet을 사용하는 것도 나쁘진 않아보인다.
피드백과 부연 설명, 틀린 부분 지적은 언제나 환영입니다!