IT Developer/Spring

Spring 기초 <7. Spring Boot에서 REST API 개발 (GET, POST, PUT, DELETE)>

TEMA_ 2025. 3. 24. 13:34
반응형

스프링 Spring

7. Spring Boot에서 REST API 개발 (GET, POST, PUT, DELETE)

 

안녕하세요! 태마입니다.

Spring 기초 강좌입니다.

 

강좌의 경우 

1. 주제 간단 정리

2. 상세 주제 정리

으로 이루어져 있습니다.

 

스프링 Spring

포스팅 시작하겠습니다 :)

 


 

1. 주제 간단 정리

 

1. REST API란?

REST (Representational State Transfer)는 웹에서 데이터를 주고받기 위한 아키텍처 스타일
클라이언트와 서버 간의 통신을 HTTP 프로토콜을 기반으로 수행
리소스 중심의 설계를 따르며, 특정한 URI를 통해 데이터를 주고받음

📌 RESTful API의 특징
클라이언트-서버 구조 → 클라이언트와 서버가 분리되어 독립적으로 개발 가능
무상태성(Stateless) → 서버는 클라이언트의 상태를 저장하지 않음
캐싱 가능(Cacheable) → HTTP 캐싱을 활용하여 성능 향상 가능
일관된 인터페이스(Uniform Interface) → 리소스 URI, HTTP 메서드 활용
계층적 구조(Layered System) → 보안, 로드 밸런싱 등을 계층적으로 관리 가능

📌 REST API는 "웹 애플리케이션의 데이터를 효율적으로 주고받을 수 있도록 설계된 방식"


2. REST API에서 사용되는 HTTP 메서드

REST API에서는 리소스를 조작하기 위해 다양한 HTTP 메서드를 사용함

📌 REST API에서 HTTP 메서드의 역할

HTTP 메서드역할설명

GET 조회(Read) 특정 리소스를 조회
POST 생성(Create) 새로운 리소스를 생성
PUT 수정(Update) 기존 리소스를 수정
DELETE 삭제(Delete) 특정 리소스를 삭제

📌 HTTP 메서드를 적절히 사용하면 "RESTful API를 직관적이고 유지보수하기 쉽게 만들 수 있음."


3. Spring Boot에서 REST API 개발 – 기본 설정

Spring Boot에서는 @RestController와 @RequestMapping을 활용하여 RESTful API를 쉽게 개발 가능

📌 Spring Boot REST API 기본 예제

@RestController
@RequestMapping("/api")
public class ExampleController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello, Spring Boot REST API!";
    }
}

"/api/hello" 요청을 보내면 "Hello, Spring Boot REST API!" 응답을 반환

📌 Spring Boot는 "간결한 코드로 REST API를 쉽게 구현할 수 있도록 지원함."


✅ 여기까지 REST API의 개념과 Spring Boot에서 REST API를 개발하는 기본 설정을 배웠습니다!
👉 "그렇다면, HTTP 메서드(GET, POST, PUT, DELETE)를 어떻게 구현할까?"
✅ 2부에서 REST API의 HTTP 메서드별 구현 방법을 배워봅시다!

반응형

 


 

2. 상세 주제 정리

 

1. GET 요청 – 데이터 조회하기

GET 메서드는 서버에서 데이터를 조회할 때 사용됨

📌 GET 요청을 처리하는 REST API 예제

@RestController
@RequestMapping("/api/users")
public class UserController {

    @GetMapping("/{id}")
    public ResponseEntity<User> getUserById(@PathVariable Long id) {
        User user = new User(id, "John Doe", "john@example.com");
        return ResponseEntity.ok(user);
    }
}

"/api/users/1" 요청을 보내면 ID가 1인 사용자 정보를 반환

📌 GET 요청은 "서버에서 데이터를 가져올 때 사용하며, 요청 본문이 필요하지 않음."


2. POST 요청 – 데이터 생성하기

POST 메서드는 새로운 리소스를 생성할 때 사용됨

📌 POST 요청을 처리하는 REST API 예제

@PostMapping
public ResponseEntity<User> createUser(@RequestBody User user) {
    user.setId(1L); // ID 할당
    return ResponseEntity.status(HttpStatus.CREATED).body(user);
}

클라이언트가 POST /api/users 요청을 보내면 새로운 사용자가 생성됨

📌 POST 요청은 "서버에 데이터를 전송하여 새로운 리소스를 만들 때 사용됨."


3. PUT 요청 – 데이터 수정하기

PUT 메서드는 기존 리소스를 업데이트할 때 사용됨

📌 PUT 요청을 처리하는 REST API 예제

@PutMapping("/{id}")
public ResponseEntity<User> updateUser(@PathVariable Long id, @RequestBody User updatedUser) {
    updatedUser.setId(id); // 기존 ID 유지
    return ResponseEntity.ok(updatedUser);
}

클라이언트가 PUT /api/users/1 요청을 보내면 해당 ID의 사용자가 수정됨

📌 PUT 요청은 "기존 리소스를 완전히 새로운 데이터로 교체할 때 사용됨."


4. DELETE 요청 – 데이터 삭제하기

DELETE 메서드는 특정 리소스를 삭제할 때 사용됨

📌 DELETE 요청을 처리하는 REST API 예제

@DeleteMapping("/{id}")
public ResponseEntity<Void> deleteUser(@PathVariable Long id) {
    return ResponseEntity.noContent().build();
}

클라이언트가 DELETE /api/users/1 요청을 보내면 해당 ID의 사용자가 삭제됨

📌 DELETE 요청은 "특정 리소스를 삭제할 때 사용됨."


5. REST API 응답 형식 및 예제

REST API는 주로 JSON 형식으로 응답을 반환함

📌 JSON 응답 예제 (GET /api/users/1 응답)

{
    "id": 1,
    "name": "John Doe",
    "email": "john@example.com"
}

Spring Boot에서는 ResponseEntity를 활용하여 HTTP 응답을 세밀하게 제어 가능

📌 REST API를 설계할 때 "일관된 응답 형식을 유지하는 것이 중요함."


✅ 여기까지 Spring Boot에서 REST API를 개발하는 방법을 배웠습니다!
👉 "그렇다면, REST API에서 @RequestParam과 @PathVariable의 차이는?"
✅ 다음 회차에서 Spring에서 RequestParam vs PathVariable 차이점을 배워봅시다!



 

반응형