기술면접

[기술면접] 스프링 MVC 1편 전체 예상 질문

dev-nadan 2025. 8. 18. 21:03

 

1. 기본 개념 질문

  • MVC 패턴이란 무엇이고, 왜 필요한가요?
  • ServletWAS(Web Application Server) 의 차이를 설명해주세요.
  • JSP와 타임리프의 차이점은 무엇인가요?
  • 정적 리소스, 뷰 템플릿, HTTP API 응답은 각각 언제 사용하나요?
  • @RequestParam, @ModelAttribute, @RequestBody 의 차이를 설명해주세요.

2. 내부 동작 원리 질문

  • 스프링에서 Front Controller 패턴은 어떻게 구현되나요? (DispatcherServlet)
  • 스프링 MVC에서 컨트롤러의 파라미터(HttpServletRequest, @RequestParam, @ModelAttribute 등)는 누가 어떻게 바인딩해주나요?
  • → 정답: HandlerMethodArgumentResolver
  • 컨트롤러의 반환값(String, ModelAndView, @ResponseBody, ResponseEntity)은 누가 처리하나요?
  • → 정답: HandlerMethodReturnValueHandler
  • HttpMessageConverter가 하는 역할은 무엇인가요?
    • JSON 변환 시 어떤 Converter가 사용되나요?
  • @RestController@Controller + @ResponseBody 차이는 무엇인가요?

3. 실무 적용 / 트러블슈팅 질문

  • 상품 등록 후 새로고침 시 중복 등록 문제가 발생한다면, 어떻게 해결할 수 있나요?
  • → PRG(Post-Redirect-Get) 패턴 설명 필요
  • RedirectAttributes는 언제 사용하나요? 장점은 무엇인가요?
  • 타임리프를 사용할 때 장점은 무엇이고, JSP와 비교했을 때 어떤 협업상의 차이가 있나요?
  • 스프링 MVC를 사용할 때, 직접 서블릿을 다루는 것과 비교했을 때 장점은 무엇인가요?
  • 실무에서 REST API를 설계할 때 @ResponseBodyResponseEntity를 언제 선택하나요?
  • @RequestParam 대신 @ModelAttribute를 쓰는 이유는 무엇인가요?

4. 확장성 / 심화 질문

  • 스프링에서 커스텀 ArgumentResolver를 직접 만들어본 경험이 있나요? 언제 필요했나요?
  • HttpMessageConverter를 직접 확장하거나 교체해야 한다면 어떤 경우일까요?
  • HandlerInterceptorFilter의 차이를 설명하고, 어떤 상황에서 각각을 사용하나요?
  • MVC에서 발생하는 공통 관심사(예: 로깅, 인증, 예외 처리) 는 어떻게 처리하는 것이 좋은가요?
  • 스프링 MVC에서 DispatcherServlet 이후 뷰 렌더링까지의 전체 흐름을 설명해보세요.

5. 자바 기반 질문 (MVC와 연관된 CS/자바 질문)

  • 서블릿은 멀티스레드 환경에서 동작합니다. 이때 동시성 문제는 어떻게 발생하고, 어떻게 해결하나요?
  • synchronized, volatile, ReentrantLock 같은 동시성 제어 방식의 차이를 설명해주세요.
  • HTTP는 무상태(Stateless) 프로토콜인데, 로그인 세션은 어떻게 관리하나요?
  • REST API와 MVC 기반 화면 렌더링 방식은 어떻게 다르고, 각각 언제 쓰는 게 좋나요?

'기술면접' 카테고리의 다른 글

[Java 백엔드 기술면접] 객체지향 + 스프링  (2) 2025.07.23