인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

유진이님의 프로필 이미지
유진이

작성한 질문수

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

스프링 MVC - 실용적인 방식

편리함을 주는 대신 성능이 저하되진 않나요?

해결된 질문

작성

·

358

0

안녕하세요. 좋은 강의 잘 듣고 있습니다. 

이번 강의의 @GetMapping, @PostMapping을 보면서 문득 궁금증이 생겨 질문하게 됐습니다. 결론부터 말하자면 편리함은 성능과 트레이드 오프된 결과물이 아닐까? 라는 생각이 들었습니다. 이런 생각을 한 이유는 다음과 같습니다.

@GetMapping을 타고 들어가보면 강의에서 말씀하신 것처럼 @RequestMapping(method=RequestMethod.GET)이 존재합니다. 즉, @GetMapping이라는 어노테이션을 만들기 위해 @RequestMapping + a의 코드가 작성된 것이죠. 

여기서 @RequestMapping 대신 @GetMapping을 사용하므로써 코드가 깔끔해지고, 가독성이 좋아지고, 개발자가 편리하다라는 등의 이점이 생깁니다. 그런데 앞서 말했다시피 실질적인 코드는 +a가 됐으니 코드량과 코드의 동작은 오히려 늘어난 것 아닌가라는 생각이 듭니다. 그렇다면 성능적인 측면에서는 효율이 더 안좋아진 것이 아닐까? 이런 생각이 들었습니다. 

더 확장해 보자면, 앞서 강의에서 들었던 프레임워크를 개선하는 과정이나 배민의 문구를 소개해 주셨던 부분을 돌이켜 보면, 어떤 것을 업그레이드 하고, 누군가에게 편하게 제공하기 위해 다른 곳에 많은 작업이 생긴다면 비슷한 맥락에서 편의와 성능이 트레이드 오프 된 것은 아닌지에 대해 궁금해서 질문 남기게 됐습니다.

감사합니다.

답변 1

0

안녕하세요. 유진이님, 공식 서포터즈 David입니다.

네, 맞습니다.

다만, 그렇게 트레이드 오프를 선택할 수 있는 이유는 처리 속도를 고려하는 것보다 개발 편의가 더 중요하기 때문일 수 있습니다.

@RequestMapping(method=RequestMethod.GET) => @GetMapping 이 과정이 엄청나게 처리 속도를 늦추지 않는다면 굳이 @GetMapping을 쓰지 않을 이유가 없는 것이죠.

감사합니다.

유진이님의 프로필 이미지
유진이

작성한 질문수

질문하기