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 |