작성
·
292
1
안녕하세요. 좋은 강의 잘 수강중입니다. 강의 중 질문이 2가지 있어서 글을 남깁니다!
--------[첫번째 질문]----------
@Controller : 핸들러 등록
@RequestMapping : '핸들러 매핑', '적절한 어댑터 가져오기'와 같은 2가지 기능을 하기 위한 애노테이션
위 내용이 올바르게 이해한것일까요?
-----------------------------------
-----------[두번째 질문]------------
@RequestMapping 이 붙은 메서드(개발자가 직접 작성한 메서드)는 어떤 역할인가요? 저는 처음에 핸들러(컨트롤러)라고 생각했으나, 반환값이 ModelAndView 인 것을 보고 어댑터와 혼동이 됩니다. 어댑터, 핸들러 중 어느 것인가요? 아니면, 그저 비즈니스 로직인가요..?
---------------------------------
감사합니다!
답변 1
5
안녕하세요. 우태균 님, 공식 서포터즈 codesweaver 입니다.
1. @Controller 매핑은 생각하고 계시는것이 맞습니다. 그리고 @RequestMapping은 핸들러를 매핑하기 위한 기준이라고 생각하시면 될 것 같습니다. 웹 애플리케이션을 만들려면 '클라이언트의 요청'과 이를 처리할 '메서드'를 매핑해야 합니다. 그런데 무엇을 기준으로 매핑해야 할까요? URL과 HTTP 메서드 이 두가지를 가지고 매핑하는것이 최적이겠죠?(URL과 HTTP메서드는 반드시 클라이언트가 보내야 하기 때문입니다) @RequestMapping은 이런 매핑의 기준을 설정하는 애노테이션 입니다.
2. 말씀하신 것 처럼 컨트롤러에서 직접 ModelAndView를 반환할 수 있습니다. 그러나 ModelAndView를 반환하다고 모두 어댑터의 역할을 하는것은 아닙니다. 어댑터란 110V인 콘센트를 220V에 꽂기 위해 필요한 콘센트 변환기 같은 것이라고 생각하시면 됩니다. 서로 맞지 않는 규격을 '일정한 방법'으로 사용하기 위한 중간 객체가 어댑터 입니다.
.
클라이언트가 웹으로 요청하는 형태는 다양합니다. 이러한 요청을 개발자가 직접 상황에 맞게 제어해야 한다면 매우 끔찍한(?) 일입니다. 이를 중간에서 어댑터 객체가 일정한 양식으로 정제하여 준다면 어떨까요? 사용자의 요청을 항상 일정한 방법으로 처리할 수 있습니다, 또 서버에서의 응답도 이 어댑터가 다시 일정한 양식으로 정제하여 클라이언트에게 전달하여 준다면 매우 편리하겠죠? 그런 역할을 하는 객체를 어댑터라 할 수 있습니다.
.
감사합니다.