Spring Boot에서의 CRUD: GET, POST, PUT, DELETE API

이도훈·2025년 4월 6일

CRUD란?

CRUD는 Create(생성), Read(읽기), Update(갱신), Delete(삭제)의 약자로, 저장된 데이터를 처리하는 기본적인 작업이다.

  • Create : 데이터를 생성
  • Read : 데이터를 읽는 작업
  • Update : 데이터를 갱신하는 작업
  • Delete : 데이터를 삭제하는 작업

✅ Spring Boot에서의 HTTP 메서드와 DTO 매핑 정리


📌 HTTP 메서드별 사용 목적

메서드목적Request Body 사용주요 애너테이션
GET리소스 조회❌ (쿼리 or 경로)@RequestParam, @PathVariable
POST리소스 생성⭕ (JSON)@RequestBody
PUT리소스 전체 수정⭕ (JSON)@RequestBody
DELETE리소스 삭제❌ (보통 경로)@PathVariable

📌 데이터 전달 방식 & 사용 애너테이션

전달 방식예시사용 애너테이션DTO 사용 시
쿼리 파라미터GET /user?name=dohoon@RequestParam 또는 생략DTO 필드와 이름이 일치하면 자동 매핑
경로 변수GET /user/1@PathVariable@PathVariable Long id 등 명시 필요
요청 바디(JSON)POST /user + JSON Body@RequestBodyJSON → DTO로 역직렬화됨 (@RequestBody DTO)

📌 DTO 사용 시 @RequestBody 필요 여부

요청 방식DTO 사용@RequestBody 필요 여부설명
GET가능쿼리 파라미터로 자동 매핑됨
POST/PUT가능JSON Body → DTO로 역직렬화 필요
DELETE가능❌ (보통 안 씀)대부분 경로 변수로 리소스 식별자만 받음

📌 추가 정리

  • @RestController = @Controller + @ResponseBody
    → 메서드 리턴값이 View가 아닌 HTTP Response Body로 반환됨

  • @RequestBody: 요청 Body(JSON 등)를 DTO로 변환해줌

  • @PathVariable: URI 경로에 있는 값을 파라미터로 받음

  • @RequestParam: 쿼리 파라미터를 개별 파라미터로 받음

  • GET/DELETE는 Body를 안 쓰는 것이 REST 관례


✅ 실무 팁

  • RESTful API에서는 리소스 식별자(id)는 보통 경로 변수(/user/{id})로 전달
  • 생성/수정 데이터는 JSON Body에 담아 보내고 DTO + @RequestBody로 처리
  • 상태 코드와 응답 바디를 제어하려면 ResponseEntity 사용 권장

0개의 댓글