1. 개요
REST API는 클라이언트와 서버 간 데이터 교환을 위한 대표적인 방식입니다. Spring Boot를 활용하여 RESTful API를 설계하고 구현하는 방법을 설명합니다.
2. REST API 기본 개념
REST(Representational State Transfer)는 HTTP 프로토콜을 기반으로 리소스를 관리하는 아키텍처 스타일입니다. 주요 특징은 다음과 같습니다.
- 클라이언트-서버 구조: 클라이언트와 서버의 역할을 분리하여 독립적인 확장이 가능함.
- 무상태(Stateless): 각 요청은 독립적으로 처리되며, 서버는 클라이언트 상태를 저장하지 않음.
- 캐시 가능(Cacheable): 응답 데이터를 캐싱하여 성능을 개선할 수 있음.
- 계층화 구조(Layered System): API 요청이 여러 계층을 통해 처리될 수 있음.
3. 프로젝트 설정
3.1. 의존성 추가
build.gradle에 필요한 라이브러리를 추가합니다.
implementation 'org.springframework.boot:spring-boot-starter-web'
4. REST API 구현
4.1. 엔티티 클래스 생성
public class User {
private Long id;
private String name;
private String email;
// 기본 생성자 및 getter, setter
public User() {}
public User(Long id, String name, String email) {
this.id = id;
this.name = name;
this.email = email;
}
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getEmail() { return email; }
public void setEmail(String email) { this.email = email; }
}
4.2. REST 컨트롤러 생성
import org.springframework.web.bind.annotation.*;
import java.util.*;
@RestController
@RequestMapping("/users")
public class UserController {
private List<User> users = new ArrayList<>();
@GetMapping
public List<User> getUsers() {
return users;
}
@PostMapping
public User createUser(@RequestBody User user) {
users.add(user);
return user;
}
@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) {
return users.stream().filter(user -> user.getId().equals(id)).findFirst().orElse(null);
}
@PutMapping("/{id}")
public User updateUser(@PathVariable Long id, @RequestBody User updatedUser) {
for (User user : users) {
if (user.getId().equals(id)) {
user.setName(updatedUser.getName());
user.setEmail(updatedUser.getEmail());
return user;
}
}
return null;
}
@DeleteMapping("/{id}")
public String deleteUser(@PathVariable Long id) {
users.removeIf(user -> user.getId().equals(id));
return "User deleted successfully";
}
}
5. REST API 테스트 방법
- GET /users - 모든 사용자 목록 조회
- POST /users - 새로운 사용자 추가 (JSON 요청 본문 필요)
- GET /users/{id} - 특정 사용자 조회
- PUT /users/{id} - 사용자 정보 수정
- DELETE /users/{id} - 사용자 삭제
6. 결론
Spring Boot를 활용하여 RESTful API를 설계하고 구현하는 방법을 설명하였습니다. REST API는 확장성이 뛰어나고 다양한 클라이언트와 호환되기 때문에 널리 사용됩니다. 추가적으로 보안, 데이터 검증, 예외 처리 등을 고려하여 더욱 견고한 API를 개발할 수 있습니다.
'기술 학습' 카테고리의 다른 글
JAVA 컬렉션 프레임워크 (Collection Framework) (1) | 2025.02.10 |
---|---|
JAVA 기초 개념과 실습 예제 (0) | 2025.02.09 |
AI 코딩 비서, 어디까지 써봤니? 개발자의 AI 활용 일기 (1) | 2025.02.08 |
Spring Boot에서 JWT를 활용한 인증 구현 (1) | 2025.02.05 |
Spring Boot + Redis로 세션 공유하기 (0) | 2025.02.04 |