웹 통신은 클라이언트가 서버에 요청(Request)을 보내고, 서버가 응답(Response)을 반환하는 구조입니다.
Spring Boot에서는 이 통신 흐름을 Spring MVC라는 모듈이 효율적으로 처리합니다.
| 용어 | 설명 |
|---|---|
| 클라이언트 | 웹 브라우저, 모바일 앱 등 요청을 보내는 주체 |
| 서버 | 요청을 받아 처리하고, 결과를 반환하는 컴퓨터 또는 프로그램 |
| HTTP | 요청과 응답을 주고받기 위한 통신 규칙(프로토콜) |
클라이언트 → [요청] → 서버 → [응답] → 클라이언트
📌 예시: 사용자가 http://example.com/hello에 접속하면
→ 브라우저(클라이언트)가 서버에 "hello 페이지 보여줘!" 요청
→ 서버가 "안녕하세요!"라는 응답을 반환합니다.
Spring MVC는 Spring Boot에서 웹 요청과 응답을 처리하는 핵심 모듈입니다.
MVC는 Model-View-Controller의 약자로, 역할 분리를 통해 웹 애플리케이션을 깔끔하고 효율적으로 구성합니다.
| 기능 | 설명 |
|---|---|
| 📌 요청 매핑 | URL 요청을 어떤 메서드가 처리할지 결정 (@GetMapping, @PostMapping 등) |
| 🔄 데이터 바인딩 | 요청 데이터(쿼리, 폼)를 자바 객체로 자동 변환 |
| 📤 응답 처리 | 자바 객체를 HTML 또는 JSON으로 자동 변환 |
| 🔍 뷰 리졸버 | HTML 템플릿 위치를 찾아서 응답 생성 |
| 📄 폼 처리 및 검증 | 사용자 입력값 유효성 검증 지원 (@Valid, @NotNull 등) |
| ❗ 예외 처리 | 에러 발생 시 사용자 친화적인 응답 제공 |
| 📎 인터셉터 | 요청 전후에 공통 로직 처리 (예: 로그인 확인) |
| 📁 파일 업로드/다운로드 | 파일 업로드 및 다운로드 기능 제공 |
| 🔗 REST API 지원 | JSON 기반 API 응답 지원, 외부 시스템과 통신 용이 |