본문 바로가기

개발/스프링 프레임워크

[Spring Boot] JPA + PostgreSQL 연결

개인프로젝트를 진행하면서 기존에 Oracle 또는 MySQL/MariaDB 반 사용하다가 이번에 PostgreSQL 를 사용해보고자 SpringBoot Data JPA + PostgreSQL 를 포스팅하겠습니다.

 

PostgreSQL 은 AWS 에서 프리티어로 생성

1. build.gradle 

SpringData JPA , PostgreSQL Dependency 추가 

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter'
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.postgresql:postgresql:42.7.3'
    compileOnly 'org.projectlombok:lombok'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testImplementation 'org.springframework.kafka:spring-kafka-test'
}

 

2. application.properties

JPA 설정과, Database 설정을 추가한다.

ddl-auto 옵션

    - update: entity model 에 맞춰 schema 를 update 한다. 수정이 자주 발생하는 개발환경에서 테스트할때 유용하다. 

    - create: 기존의 schema 를  drop 하고 새로운 schema를 생성한다. (여러 개발자가 작업할때는 미사용 추천)

    - validate: 데이터베이스를 변경하지 않고 entity 모델과 기존 schema 가 일치하는지 체크한다. (프로덕션 추천) 

    - create-drop: application 시작시 schema 를 생성하고 application 종료시 schema를 삭제한다. 

위의 옵션 중 상황에 맞춰서 추가한다.

 

 

spring.application.name=data_producer

# JPA
spring.jpa.database=postgresql
spring.jpa.hibernate.ddl-auto=create

# Database
spring.datasource.hikari.maximum-pool-size=4
spring.datasource.url= jdbc:postgresql://<<db url>>:<<port>>/<<database>>
spring.datasource.username= <<db username>>
spring.datasource.password= <<db password>>
spring.datasource.driver-class-name=org.postgresql.Driver

3. entity 추가 

import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import lombok.Getter;
import lombok.Setter;

@Entity
@Getter
@Setter
public class SampleEntity {

    @Id
    private Long id;
    private String name;

}

 

 

위의 설정을 완료 후 application run 하면 아래처럼 테이블이 자동으로 생성된것을 확인할 수 있다.