1. 기본 개념 질문
- MVC 패턴이란 무엇이고, 왜 필요한가요?
- Servlet과 WAS(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를 설계할 때 @ResponseBody와 ResponseEntity를 언제 선택하나요?
- @RequestParam 대신 @ModelAttribute를 쓰는 이유는 무엇인가요?
4. 확장성 / 심화 질문
- 스프링에서 커스텀 ArgumentResolver를 직접 만들어본 경험이 있나요? 언제 필요했나요?
- HttpMessageConverter를 직접 확장하거나 교체해야 한다면 어떤 경우일까요?
- HandlerInterceptor와 Filter의 차이를 설명하고, 어떤 상황에서 각각을 사용하나요?
- MVC에서 발생하는 공통 관심사(예: 로깅, 인증, 예외 처리) 는 어떻게 처리하는 것이 좋은가요?
- 스프링 MVC에서 DispatcherServlet 이후 뷰 렌더링까지의 전체 흐름을 설명해보세요.
5. 자바 기반 질문 (MVC와 연관된 CS/자바 질문)
- 서블릿은 멀티스레드 환경에서 동작합니다. 이때 동시성 문제는 어떻게 발생하고, 어떻게 해결하나요?
- synchronized, volatile, ReentrantLock 같은 동시성 제어 방식의 차이를 설명해주세요.
- HTTP는 무상태(Stateless) 프로토콜인데, 로그인 세션은 어떻게 관리하나요?
- REST API와 MVC 기반 화면 렌더링 방식은 어떻게 다르고, 각각 언제 쓰는 게 좋나요?
'기술면접' 카테고리의 다른 글
[Java 백엔드 기술면접] 객체지향 + 스프링 (2) | 2025.07.23 |
---|