Spring Boot를 사용하여 간단한 REST API를 만드는 방법을 단계별로 알아봅니다.
Spring Boot는 Spring 프레임워크를 기반으로 한 강력한 Java 웹 애플리케이션 프레임워크입니다. 이번 포스트에서는 Spring Boot를 사용하여 첫 번째 REST API를 만드는 과정을 알아보겠습니다.
Spring Boot는 Spring 기반 애플리케이션을 쉽고 빠르게 만들 수 있도록 도와주는 프레임워크입니다. 복잡한 설정 없이도 production-ready 애플리케이션을 만들 수 있다는 것이 가장 큰 장점입니다.
Spring Initializr에서 프로젝트를 생성하거나, IDE에서 직접 생성할 수 있습니다.
필요한 의존성:
my-first-api/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/example/demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── controller/
│ │ │ ├── service/
│ │ │ └── model/
│ │ └── resources/
│ │ └── application.properties
└── pom.xml
package com.example.demo.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private Long id;
private String name;
private String email;
private Integer age;
}
package com.example.demo.controller;
import com.example.demo.model.User;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicLong;
@RestController
@RequestMapping("/api/users")
public class UserController {
private final List<User> users = new ArrayList<>();
private final AtomicLong counter = new AtomicLong();
// 모든 사용자 조회
@GetMapping
public List<User> getAllUsers() {
return users;
}
// 특정 사용자 조회
@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) {
return users.stream()
.filter(user -> user.getId().equals(id))
.findFirst()
.orElse(null);
}
// 사용자 생성
@PostMapping
public User createUser(@RequestBody User user) {
user.setId(counter.incrementAndGet());
users.add(user);
return user;
}
// 사용자 수정
@PutMapping("/{id}")
public User updateUser(@PathVariable Long id, @RequestBody User updatedUser) {
User user = getUserById(id);
if (user != null) {
user.setName(updatedUser.getName());
user.setEmail(updatedUser.getEmail());
user.setAge(updatedUser.getAge());
}
return user;
}
// 사용자 삭제
@DeleteMapping("/{id}")
public void deleteUser(@PathVariable Long id) {
users.removeIf(user -> user.getId().equals(id));
}
}
# application.properties
server.port=8080
spring.application.name=my-first-api
# 개발 환경 설정
spring.devtools.livereload.enabled=true
spring.devtools.restart.enabled=true
# 사용자 생성
curl -X POST http://localhost:8080/api/users \
-H "Content-Type: application/json" \
-d '{"name":"홍길동","email":"hong@example.com","age":25}'
# 모든 사용자 조회
curl http://localhost:8080/api/users
# 특정 사용자 조회
curl http://localhost:8080/api/users/1
# 사용자 수정
curl -X PUT http://localhost:8080/api/users/1 \
-H "Content-Type: application/json" \
-d '{"name":"홍길동","email":"hong.new@example.com","age":26}'
# 사용자 삭제
curl -X DELETE http://localhost:8080/api/users/1
이제 기본적인 REST API를 만들었습니다. 다음 단계로는:
Spring Boot를 사용하면 복잡한 설정 없이도 빠르게 REST API를 만들 수 있습니다. 이번 포스트에서는 기본적인 CRUD 기능을 구현했지만, 실제 프로덕션에서는 더 많은 고려사항이 필요합니다.
다음 포스트에서는 JPA를 사용하여 데이터베이스와 연동하는 방법을 알아보겠습니다!
Spring의 @Controller와 @RestController 어노테이션의 차이점과 사용 시나리오를 실제 예제와 함께 알아봅니다
Apache Kafka의 핵심 개념을 이해하고 Spring Boot와 함께 사용하는 방법을 알아봅니다.
overflow-x: hidden으로 덮어둔 문제가 터지기까지. 테이블 오버플로부터 Radix Sheet 스크롤 잠금까지, 모바일 가로 스크롤 문제를 근본적으로 해결한 과정을 정리합니다.
백준 2526번 싸이클 문제를 풀며 나머지 연산의 순환 특성을 이해하고 최적화하는 과정