🌐 Spring Boot에서의 웹 통신 이해하기

✅ 한 줄 정의

웹 통신은 클라이언트가 서버에 요청(Request)을 보내고, 서버가 응답(Response)을 반환하는 구조입니다.

Spring Boot에서는 이 통신 흐름을 Spring MVC라는 모듈이 효율적으로 처리합니다.


🖥️ 클라이언트-서버 구조란?

용어 설명
클라이언트 웹 브라우저, 모바일 앱 등 요청을 보내는 주체
서버 요청을 받아 처리하고, 결과를 반환하는 컴퓨터 또는 프로그램
HTTP 요청과 응답을 주고받기 위한 통신 규칙(프로토콜)

🔁 흐름 구조도

클라이언트 → [요청] → 서버 → [응답] → 클라이언트

📌 예시: 사용자가 http://example.com/hello에 접속하면

→ 브라우저(클라이언트)가 서버에 "hello 페이지 보여줘!" 요청

→ 서버가 "안녕하세요!"라는 응답을 반환합니다.


🧰 Spring MVC란?

Spring MVC는 Spring Boot에서 웹 요청과 응답을 처리하는 핵심 모듈입니다.

MVC는 Model-View-Controller의 약자로, 역할 분리를 통해 웹 애플리케이션을 깔끔하고 효율적으로 구성합니다.


⚙️ Spring MVC의 주요 기능

기능 설명
📌 요청 매핑 URL 요청을 어떤 메서드가 처리할지 결정 (@GetMapping, @PostMapping 등)
🔄 데이터 바인딩 요청 데이터(쿼리, 폼)를 자바 객체로 자동 변환
📤 응답 처리 자바 객체를 HTML 또는 JSON으로 자동 변환
🔍 뷰 리졸버 HTML 템플릿 위치를 찾아서 응답 생성
📄 폼 처리 및 검증 사용자 입력값 유효성 검증 지원 (@Valid, @NotNull 등)
❗ 예외 처리 에러 발생 시 사용자 친화적인 응답 제공
📎 인터셉터 요청 전후에 공통 로직 처리 (예: 로그인 확인)
📁 파일 업로드/다운로드 파일 업로드 및 다운로드 기능 제공
🔗 REST API 지원 JSON 기반 API 응답 지원, 외부 시스템과 통신 용이