개발자
안녕하세요 스프링 공부중에 문득 궁금증이 생겨 질문드려요 @RequestMapping 어노테이션을 붙이고 타입을 Get, Post 지정을 안한상태로 실제 Get, Post 방식 두 가지를 혼용이 가능하나요? 예를 들어 실제 뷰도 리턴해주고 Ajax로 url지정을 같은걸로 했을 때
답변 1
인기 답변
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html @RequestMapping에 대한 API문서에 보면, method에 대한 기본값은 {}입니다. 그러니 문서로 보면 지정을 안했을 경우에는 어떤 메소드도 안 될 것 같은데, 공식 참조문서를 찾아보니, 말씀하신대로 모든 메소드에 대응된다고 합니다. https://docs.spring.io/spring-framework/reference/web/webmvc/mvc-controller/ann-requestmapping.html --- The shortcuts are Custom Annotations that are provided because, arguably, most controller methods should be mapped to a specific HTTP method versus using @RequestMapping, which, by default, matches to all HTTP methods. --- @RequestMapping의 기본은 모든 메소드에 매칭이 되기 때문에, @GetMapping, @PostMapping등을 쓰는 것을 권하는 것 같군요. 직접 실행해서 확인해보시면 정확하죠. GET과 POST만 한 매핑에서 처리하고 싶다면 @RequestMapping(method={GET, POST}) 로 지정하면 될 것 같습니다. 역시 직접 확인해보시는 편이 좋습니다. 예리한 궁금증에 이은 질문이 흥미로웠습니다. 뭔가 알아보면서, 조금 더 궁금한 것을 조금씩만이라도 더 찾아보고 이해하면, 장기적으로 훨씬 큰 실력을 갖추게되는 것 같습니다. 개발자로서 훌륭한 자질 중 하나인 것 같습니다. 이 사소한 차이가 1년이 지나고 2년이 지나고 쌓여가면, 격차가 정말 크게 드러나더라구요. 경력은 쌓여가는데 늘 제자리인 사람들도 있는데, 아마 이 사소한 차이에서 시작되는 게 아닐까 합니다. 조금 더 좋은 자질로 이어내려면, 이런 궁금증들은, 직접 API문서나 레퍼런스를 뒤져보시는 습관을 기르시면 좋습니다. 더구나 스프링같은 대단히 성공적인 프레임워크는 문서가 아주 잘 되어있죠. 사전을 놔두고 영어 잘하는 사람에게 단어뜻을 묻는 것과 비슷한 거예요. 더 편한 것 같지만, 사전이 가장 정확합니다. 아직 사전 찾는 법이 익숙치 않을 수도 있는데, 계속 반복하시다보면 그것도 훈련이 됩니다. 문서가 잘 되어있지 않은 경우에는? 그때는 소스코드를 뒤지는 습관을 추천드립니다. 스프링의 경우에는 그럴 필요까지는 없습니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2023년 10월 17일
네, 가능합니다. `@RequestMapping` 어노테이션만 사용하고 HTTP 메소드를 명시하지 않으면 모든 HTTP 메소드를 처리할 수 있습니다. 즉, GET, POST, PUT 등 어떤 방식으로 요청하더라도 해당 컨트롤러 메소드로 라우트됩니다. 그러나 위와 같이 모든 메소드를 포괄하여 하나의 핸들러에 맵핑하는 것은 일반적으로 권장되지 않습니다. 이는 일반적으로 RESTful 서비스 디자인 원칙을 위반하며 서버 로직에 혼란을 주거나 예기치 않은 결과를 초래할 수 있습니다. 따라서 대부분의 경우, 컨트롤러 메소드가 처리할 특정 HTTP 메소드를 명시하기 위해 `@GetMapping`, `@PostMapping` 등의 어노테이션을 사용합니다. 이렇게 함으로써 코드의 명확성과 가독성이 향상됩니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!