inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

스프링 MVC - 시작하기

@RequestMapping 의 핸들러매핑과 어댑터 찾기

326

우태균

작성한 질문수 1

1

안녕하세요. 좋은 강의 잘 수강중입니다. 강의 중 질문이 2가지 있어서 글을 남깁니다!

--------[첫번째 질문]----------

@Controller : 핸들러 등록

@RequestMapping : '핸들러 매핑', '적절한 어댑터 가져오기'와 같은 2가지 기능을 하기 위한 애노테이션

위 내용이 올바르게 이해한것일까요?

-----------------------------------

-----------[두번째 질문]------------

@RequestMapping 이 붙은 메서드(개발자가 직접 작성한 메서드)는 어떤 역할인가요? 저는 처음에 핸들러(컨트롤러)라고 생각했으나, 반환값이 ModelAndView 인 것을 보고 어댑터와 혼동이 됩니다. 어댑터, 핸들러 중 어느 것인가요? 아니면, 그저 비즈니스 로직인가요..?

---------------------------------

감사합니다!

MVC spring

답변 1

5

나무늘보

안녕하세요. 우태균 님, 공식 서포터즈 codesweaver 입니다.

1. @Controller 매핑은 생각하고 계시는것이 맞습니다. 그리고 @RequestMapping은 핸들러를 매핑하기 위한 기준이라고 생각하시면 될 것 같습니다. 웹 애플리케이션을 만들려면 '클라이언트의 요청'과 이를 처리할 '메서드'를 매핑해야 합니다. 그런데 무엇을 기준으로 매핑해야 할까요? URL과 HTTP 메서드 이 두가지를 가지고 매핑하는것이 최적이겠죠?(URL과 HTTP메서드는 반드시 클라이언트가 보내야 하기 때문입니다) @RequestMapping은 이런 매핑의 기준을 설정하는 애노테이션 입니다.

2. 말씀하신 것 처럼 컨트롤러에서 직접 ModelAndView를 반환할 수 있습니다. 그러나 ModelAndView를 반환하다고 모두 어댑터의 역할을 하는것은 아닙니다. 어댑터란 110V인 콘센트를 220V에 꽂기 위해 필요한 콘센트 변환기 같은 것이라고 생각하시면 됩니다. 서로 맞지 않는 규격을 '일정한 방법'으로 사용하기 위한 중간 객체가 어댑터 입니다.

.

클라이언트가 웹으로 요청하는 형태는 다양합니다. 이러한 요청을 개발자가 직접 상황에 맞게 제어해야 한다면 매우 끔찍한(?) 일입니다. 이를 중간에서 어댑터 객체가 일정한 양식으로 정제하여 준다면 어떨까요? 사용자의 요청을 항상 일정한 방법으로 처리할 수 있습니다, 또 서버에서의 응답도 이 어댑터가 다시 일정한 양식으로 정제하여 클라이언트에게 전달하여 준다면 매우 편리하겠죠? 그런 역할을 하는 객체를 어댑터라 할 수 있습니다.

.

감사합니다.

mvc 패턴 - 적용 강의에서 회원가입할 때 redirect가 아닌 forward인 이유가 궁금합니다.

0

29

1

servlet과 container에 대한 질문입니다

0

54

1

api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?

0

84

1

jsp 의존성 수정 요청

0

123

2

요즘 웹 서버가 주로 사용되는 이유는 SPA 구조 때문일까요 ?

0

158

1

save() 메서드 문의

0

78

1

절대 경로로 templates/basic 하위 파일 열면 css 적용 안되는 현상

0

114

1

request-body-json

0

94

2

MVC 패턴의 적용 단위

0

103

1

RequestMapping을 이용한 핸들러, 어댑터

0

124

2

save 후 결과화면

0

101

2

jsp를 이용한 view

0

102

1

application.properties에 debug 추가해도 결과가 똑같습니다.

0

190

1

수업 코드 제공 관련 문의

0

107

2

RequestMappingHandlerAdapter의 Controller 호출 과정

0

109

3

파일 오픈 시

0

75

1

스프링 배치 관련

0

81

1

@RequestParam의 defaultValue가 blank 값도 처리하는 지 여부

0

115

1

postman으로 /request-body-json-v1 호출시 500 error

0

106

1

프론트엔드와 백엔드의 mvc, rest api에 대한 질문

0

90

1

모델의 역할과 계층 분리에 대한 이해 차이 + 추가질문

0

119

1

console log 출력 관련 질문입니다.

0

79

1

애플리케이션이 실행 되지 않습니다 ㅠㅠㅠ

0

146

1

html 변경하는 부분 적용 문제

0

108

1