0.2 스프링 부트 3 프로젝트 만들기
1. 스프링 부트란?
스프링 부트(Spring Boot)는 자바 기반의 웹 애플리케이션 및 RESTful 웹 서비스를 쉽게 구축하기 위한 프레임워크입니다. 기존의 스프링 프레임워크를 더욱 발전시킨 형태로, 복잡한 설정 과정 없이 간단한 설정으로 빠르게 개발할 수 있도록 돕습니다.
스프링 부트는 사전 설정이 되어 있는 여러 라이브러리 및 스타터 패키지를 제공하여, 빠른 프로토타이핑과 간단한 배포를 가능하게 합니다. 또한, ‘Convention over Configuration’ 원칙을 따르기 때문에, 개발자는 비즈니스 로직에 더 집중할 수 있습니다.
2. 개발 환경 설정
스프링 부트 3를 사용하기 위해서는 Java Development Kit (JDK)와 Maven 또는 Gradle이 필요합니다. JDK는 최소 17 버전 이상이 필요하며, IDE로는 IntelliJ IDEA나 Eclipse를 추천합니다.
2.1 JDK 설치하기
- JDK 다운로드: Oracle JDK 다운로드 페이지에 접속합니다.
- 운영체제에 맞는 JDK를 선택하고 다운로드합니다.
- 설치 후 환경 변수 설정을 추가합니다. Windows의 경우, 시스템 속성 -> 고급 시스템 설정 -> 환경 변수에서 JAVA_HOME을 JDK 설치 경로로 설정합니다.
2.2 IDE 설치하기
IntelliJ IDEA는 무료 및 유료 버전이 있으며, 무료 버전인 Community Edition을 사용해도 충분합니다. 다운로드 후 설치하고, 플러그인으로 Maven이나 Gradle을 추가하면 됩니다.
3. 스프링 부트 3 프로젝트 만들기
이제 본격적으로 스프링 부트 3 프로젝트를 생성해보겠습니다. 두 가지 방법으로 프로젝트를 생성할 수 있습니다: Spring Initializr와 IDE를 통한 생성입니다.
3.1 Spring Initializr를 이용한 프로젝트 생성
-
Spring Initializr에 접속합니다.
-
Projeect: Maven Project 또는 Gradle Project 중 하나를 선택합니다.
-
Language: Java를 선택합니다.
-
Spring Boot: 3.0.0 이상을 선택합니다.
-
Project Metadata를 입력합니다. Group, Artifact, Name, Description, Package Name 등을 설정합니다.
-
Dependencies에서 필요한 라이브러리를 선택합니다. Web, JPA, H2 등의 라이브러리를 추가합니다.
-
Generate 버튼을 클릭하여 ZIP 파일을 다운로드한 후, 원하는 위치에 압축을 풉니다.
3.2 IDE를 통한 프로젝트 생성
- IntelliJ IDEA를 열고, File > New > Project를 선택합니다.
- Spring Initializr 선택 후, 다음 단계를 진행합니다. Group, Artifact, Dependencies를 설정합니다.
- Finish를 클릭하여 프로젝트를 생성합니다.
3.3 프로젝트 구조
생성된 프로젝트의 기본 구조는 다음과 같습니다:
- src
- main
- java
- com
- example
- demo
- DemoApplication.java
- controller
- service
- repository
- demo
- example
- com
- resources
- application.properties
- static
- templates
- java
- test
- java
- main
4. Hello World API 만들기
이제 간단한 REST API를 만들어 보겠습니다. Hello World를 반환하는 API를 만들어봅니다.
4.1 Controller 생성
src/main/java/com/example/demo/controller 디렉토리에 HelloController.java 파일을 생성하고 다음 내용을 입력합니다:
package com.example.demo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello, World!";
}
}
4.2 애플리케이션 실행하기
- 프로젝트의 루트 디렉토리에서
./mvnw spring-boot:run
또는 IDE에서 실행 버튼을 클릭하여 애플리케이션을 실행합니다. - 웹 브라우저에서 http://localhost:8080/hello에 접속하여 Hello World 메시지를 확인합니다.
5. 데이터베이스 연결하기
이제 간단한 데이터베이스 연결을 추가해 보겠습니다. H2 데이터베이스를 사용하여 간단한 CRUD 애플리케이션을 만들어 보겠습니다.
5.1 H2 데이터베이스 의존성 추가
pom.xml 파일을 열어 다음 의존성을 추가합니다:
com.h2database
h2
runtime
5.2 application.properties 설정
src/main/resources/application.properties 파일에 다음 내용을 추가합니다:
spring.h2.console.enabled=true
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.hibernate.ddl-auto=update
5.3 Entity 클래스 생성
src/main/java/com/example/demo/entity 디렉토리를 만들고, User.java 파일을 생성합니다:
package com.example.demo.entity;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String email;
// Getters and Setters
}
5.4 Repository 인터페이스 만들기
src/main/java/com/example/demo/repository 디렉토리에 UserRepository.java 파일을 생성합니다:
package com.example.demo.repository;
import com.example.demo.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository {
}
5.5 서비스 클래스 생성
src/main/java/com/example/demo/service 디렉토리에 UserService.java 파일을 생성합니다:
package com.example.demo.service;
import com.example.demo.entity.User;
import com.example.demo.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public List getAllUsers() {
return userRepository.findAll();
}
public User saveUser(User user) {
return userRepository.save(user);
}
}
5.6 UserController 생성
src/main/java/com/example/demo/controller 디렉토리에 UserController.java 파일을 생성합니다:
package com.example.demo.controller;
import com.example.demo.entity.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@GetMapping
public List getAllUsers() {
return userService.getAllUsers();
}
@PostMapping
public User createUser(@RequestBody User user) {
return userService.saveUser(user);
}
}
6. 애플리케이션 실행 및 테스트
이제 애플리케이션을 실행하고, Postman 또는 cURL을 통해 API를 테스트할 차례입니다.
6.1 애플리케이션 실행
애플리케이션을 실행합니다.
6.2 API 테스트
GET 요청을 통해 모든 사용자 정보를 가져옵니다:
GET http://localhost:8080/users
POST 요청을 통해 새 사용자를 생성합니다:
POST http://localhost:8080/users
Content-Type: application/json
{
"name": "John Doe",
"email": "john@example.com"
}