그알것 — 그럼에도 알아야 할 것들
홈질문커뮤니티
로그인
그알것 — 그럼에도 알아야 할 것들

Service

  • 홈
  • 소개
  • 질문
  • 커뮤니티

My

  • 내 워크스페이스
  • 저장한 질문
  • 작성한 답변

Policy

  • 이용약관
  • 개인정보처리방침
  • 문의

© 2026 그알것 · What Still Matters

질문 목록Architecture
Architecture

Spring MVC의 실행 흐름에 대해 설명해주세요

실무4/5
설계2/5
인간3/5
기초3/5

면접관의 질문 의도

흐름 단계를 외워서 나열하는지, 아니면 각 컴포넌트가 왜 그 자리에 있는지를 책임 단위로 풀어내는지를 가른다.

큐레이션 답변

학습 자료

요청은 DispatcherServlet으로 진입해 HandlerMapping이 대상 핸들러를 찾고, HandlerAdapter가 컨트롤러 메서드를 실행한다. 파라미터 바인딩은 ArgumentResolver가, 반환값 처리는 ReturnValueHandler가 맡는다. 뷰 이름을 반환하면 ViewResolver가 뷰를 렌더링하고, @ResponseBody나 HttpEntity처럼 본문을 직접 반환하면 HttpMessageConverter가 직렬화한다. 같은 진입점에서 반환 타입에 따라 뷰 렌더링 경로와 메시지 변환 경로로 갈린다.

좋은 답변 구조

  1. 01DispatcherServlet이 진입점이라는 사실과 핵심 컴포넌트의 책임을 먼저 정리한다
  2. 02요청부터 응답까지 단계 순서를 ArgumentResolver·HandlerAdapter·ReturnValueHandler 흐름으로 풀어낸다
  3. 03뷰 렌더링 경로와 메시지 변환 경로가 갈리는 분기 지점을 짚는다
  4. 04인터셉터·필터·예외 처리가 이 흐름의 어느 단계에 끼는지로 확장 포인트를 연결한다

자주 실수하는 포인트

DispatcherServlet 다음을 '컨트롤러가 실행된다'로 뭉뚱그리고 ArgumentResolver·HandlerAdapter의 역할을 빼먹는다
뷰 렌더링 경로와 메시지 변환 경로가 갈리는 분기 지점을 설명하지 못한다
ArgumentResolver와 ReturnValueHandler를 같은 단계로 헷갈리거나 책임을 뒤집어 말한다
인터셉터·필터가 어느 위치에 끼는지 모르고 흐름 바깥의 한 덩어리로 묶어 답한다

실무 맥락

  • JSON API와 템플릿 렌더링이 함께 존재하는 웹 서비스
  • 요청 바인딩 실패나 응답 직렬화 오류를 디버깅하는 상황
  • 커스텀 컨버터/리졸버를 추가해야 하는 프레임워크 확장 작업

본인 경험에 녹이는 힌트

장애 로그를 보고 어느 단계에서 깨졌는지 짚어 본 경험이 있다면 DispatcherServlet 이후 파이프라인 이해와 연결할 수 있다

@ResponseBody와 뷰 반환을 섞어 쓰다가 응답 형식이 어긋난 사례가 있다면 두 처리 경로 분기 설명으로 풀어낼 수 있다

커스텀 ArgumentResolver나 HttpMessageConverter를 직접 끼워 넣어 본 경험을 핸들러 단계의 책임 분리 이해와 엮을 수 있다

커뮤니티 인기 답변

전체 0개

아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.

관련 꼬리 질문

Q1HandlerAdapter는 왜 굳이 필요한가요, DispatcherServlet이 컨트롤러를 직접 호출하면 안 되는 이유가 있나요
Q2HttpMessageConverter는 어떤 기준으로 선택되나요
Q3인터셉터와 필터는 이 흐름의 어느 단계에 들어가고 둘은 어떻게 다른가요
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문