![[스프링부트 #3-1] Spring MVC에서의 요청-응답 구조 정리](https://image.inblog.dev?url=https%3A%2F%2Finblog.ai%2Fapi%2Fog-custom%3Ftitle%3D%255B%25EC%258A%25A4%25ED%2594%2584%25EB%25A7%2581%25EB%25B6%2580%25ED%258A%25B8%2B%25233-1%255D%2BSpring%2BMVC%25EC%2597%2590%25EC%2584%259C%25EC%259D%2598%2B%25EC%259A%2594%25EC%25B2%25AD-%25EC%259D%2591%25EB%258B%25B5%2B%25EA%25B5%25AC%25EC%25A1%25B0%2B%25EC%25A0%2595%25EB%25A6%25AC%26tag%3DTemplate%2B1%26description%3D%26template%3D3%26backgroundImage%3Dhttps%253A%252F%252Fsource.inblog.dev%252Fog_image%252Fdefault.png%26bgStartColor%3D%252323ec86%26bgEndColor%3D%252323ec86%26textColor%3D%2523000000%26tagColor%3D%2523000000%26descriptionColor%3D%2523000000%26logoUrl%3D%26blogTitle%3DGyeongwon%2527s%2Bblog&w=2048&q=75)
1. 전체 흐름 요약
[클라이언트] ⇄ [HTTP 요청/응답] ⇄ [Spring Controller] ⇄ [Service] ⇄ [Repository] ⇄ [DB]
2. 클라이언트가 서버에 데이터를 전달하는 방식 (HTTP 기준)
전달 위치 | 예시 | 사용 어노테이션 (Spring) | 용도 |
URL 경로 (Path) | /users/5 | @PathVariable | 특정 자원 식별 (id 등) |
쿼리스트링(Query) | /users?gender=male | @RequestParam | 조건 검색, 필터링 |
요청 본문(Body) | { "name": "홍길동", "age": 20 } | @RequestBody | 새 데이터 생성/수정 (DTO 사용) |
폼 데이터(Form) | HTML form 전송 | @ModelAttribute | 주로 웹 폼에서 사용 |
3. REST API 설계 원칙 관점에서 파악
HTTP 메서드 | 용도 | URL 예시 | Body 유무 | 설명 |
GET | 조회 | /users/1 | ❌ | @PathVariable , @RequestParam |
POST | 생성 | /users | ✅ | @RequestBody |
PUT | 수정(전체) | /users/1 | ✅ | @PathVariable + @RequestBody |
DELETE | 삭제 | /users/1 | ❌ | @PathVariable |
Share article