1일차 Spring Boot + JPA + MySQL 환경세팅
1일차 Spring Boot + JPA + MySQL 환경세팅
항상 MyBatis만 사용하고 ORM 쪽을 깊게 다뤄보지 않아서, 이번 기회에 JPA를 학습해보려고 한다. 학습겸 토이프로젝트를 통해서 실무감각도 키워보자.
✅ 개발 환경
- Java 17
- Spring Boot 3.4.5
- Spring Data JPA
- MySQL 8.0
- Lombok
- STS(Spring Tool Suite)
🛠️ 1. Spring Boot 프로젝트 생성
STS에서 Spring Starter Project로 시작.
- Type: Maven
- Language: Java
- Group:
com.example - Artifact:
spring-jpa-example - Java Version: 17
- Dependencies:
- Spring Web
- Spring Data JPA
- MySQL Driver
- Lombok
⚙️ 2. MySQL 설정 (application.properties)
1
2
3
4
5
6
7
8
spring.datasource.url=jdbc:mysql://localhost:3306/testdb?serverTimezone=Asia/Seoul&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=****
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
spring.jpa.properties.hibernate.format_sql=true
👤 3. 엔티티 클래스 작성 (User.java)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.example.demo.entity;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Entity
@Getter
@Setter
@NoArgsConstructor
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String email;
}
🧩 4. 레포지토리 인터페이스 작성 (UserRepository.java)
1
2
3
4
5
6
7
package com.example.demo.repository;
import com.example.demo.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
}
🚀 5. 애플리케이션 실행 시 테스트 (SpringJpaExampleApplication.java)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package com.example.demo;
import com.example.demo.entity.User;
import com.example.demo.repository.UserRepository;
import org.springframework.boot.CommandLineRunner;
import org.springframework.context.annotation.Bean;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.SpringApplication;
@SpringBootApplication
public class SpringJpaExampleApplication {
public static void main(String[] args) {
SpringApplication.run(SpringJpaExampleApplication.class, args);
}
@Bean
public CommandLineRunner demo(UserRepository userRepository) {
return (args) -> {
User user = new User();
user.setName("홍길동");
user.setEmail("hong@example.com");
userRepository.save(user);
};
}
}
🔚 마무리
ORM을 처음 접하면서 낯선 부분도 있었지만, 코드를 기준으로 테이블이 자동 생성되고, SQL 없이도 데이터가 저장되는 구조는 꽤 매력적이다.
다음 글에서는 간단한 REST API를 작성해보며, JPA의 조회/저장 흐름을 더 구체적으로 다뤄볼 계획이다.
Repository : GitHub
This post is licensed under CC BY 4.0 by the author.