Post

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.