본문 바로가기
개발일기

Spring Boot 3 REST API 만들기

by 김엉배 2026. 3. 22.
728x90
반응형

1. 소개

Spring Boot 3는 자바 기반의 웹 애플리케이션을 빠르고 쉽게 개발할 수 있는 프레임워크입니다. REST API는 웹 애플리케이션을 개발할 때 중요한 역할을 합니다. 본 블로그 글에서는 Spring Boot 3에서 REST API를 처음부터 배포까지 만드는 방법을합니다.

REST API의 중요성은 데이터를 쉽게 교환하고 처리할 수 있게 해줍니다. 또한, REST API는 다양한 클라이언트에서 접근할 수 있습니다. 본 블로그 글의 목적은 Spring Boot 3에서 REST API를 생성하고 배포하는 방법을하는 것입니다.

2. 프로젝트 설정

Spring Initializr는 프로젝트를 설정하는 도구입니다. 프로젝트 구조는 다음과 같습니다.

  • src/main/java: 자바 소스 파일이 저장되는 디렉토리입니다.
  • src/main/resources: 리소스 파일이 저장되는 디렉토리입니다.
  • src/test/java: 테스트 소스 파일이 저장되는 디렉토리입니다.

의존성 관리 방법은 다음과 같습니다.


<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
</dependencies>

3. 엔티티 및 리포지토리 생성

엔티티 클래스는 데이터베이스의 테이블을 나타냅니다. 예제는 다음과 같습니다.


@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String email;
    // getters and setters
}

JPA 리포지토리는 엔티티 클래스를 관리하는 인터페이스입니다. 예제는 다음과 같습니다.


public interface UserRepository extends JpaRepository<User, Long> {
}

데이터베이스 설정 방법은 다음과 같습니다.


spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=myuser
spring.datasource.password=mypassword
spring.jpa.hibernate.ddl-auto=update

4. REST API 컨트롤러 생성

REST API 컨트롤러는 클라이언트의 요청을 처리하는 클래스입니다. 예제는 다음과 같습니다.


@RestController
@RequestMapping("/api/users")
public class UserController {
    @Autowired
    private UserRepository userRepository;
    
    @GetMapping
    public List<User> getAllUsers() {
        return userRepository.findAll();
    }
    
    @GetMapping("/{id}")
    public User getUser(@PathVariable Long id) {
        return userRepository.findById(id).orElseThrow();
    }
    
    @PostMapping
    public User createUser(@RequestBody User user) {
        return userRepository.save(user);
    }
    
    @PutMapping("/{id}")
    public User updateUser(@PathVariable Long id, @RequestBody User user) {
        User existingUser = userRepository.findById(id).orElseThrow();
        existingUser.setName(user.getName());
        existingUser.setEmail(user.getEmail());
        return userRepository.save(existingUser);
    }
    
    @DeleteMapping("/{id}")
    public void deleteUser(@PathVariable Long id) {
        userRepository.deleteById(id);
    }
}

HTTP 메소드의 사용법은 다음과 같습니다.

  • GET: 데이터를 조회합니다.
  • POST: 데이터를 생성합니다.
  • PUT: 데이터를 수정합니다.
  • DELETE: 데이터를 삭제합니다.

5. 배포

Jar 파일 생성 방법은 다음과 같습니다.


mvn clean package

Docker를 이용한 배포 방법은 다음과 같습니다.


FROM openjdk:8-jdk-alpine
ARG JAR_FILE=target/myapp.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

클라우드 플랫폼 배포 방법은 다음과 같습니다.

클라우드 플랫폼을 이용하면 쉽게 배포할 수 있습니다. 예를 들어, AWS Elastic Beanstalk를 이용하면 다음과 같이 배포할 수 있습니다.


eb init
eb create
eb deploy
728x90
반응형

'개발일기' 카테고리의 다른 글

Rust로 웹 서버 만들기  (0) 2026.03.23
Bun 1.2 vs Node.js vs Deno: JS 런타임 비교  (0) 2026.03.23
Stable Diffusion 이미지 생성 가이드  (0) 2026.03.22
12. npm과 npx의 차이  (0) 2025.05.08
11. 자바 HttpServeletRequest  (26) 2024.03.19