[java] Flyway를 사용하여 Java 애플리케이션의 데이터베이스 리즈 생성하기

Flyway는 개발자들이 데이터베이스 스키마 변경을 관리하고 버전을 관리하기 위한 오픈 소스 라이브러리입니다.

이 튜토리얼에서는 Flyway를 사용하여 Java 애플리케이션의 데이터베이스 리즈를 생성하는 방법에 대해 알아보겠습니다.

필수 사항

이 튜토리얼을 완료하기 위해 다음의 도구와 라이브러리가 필요합니다:

프로젝트 설정

먼저 Maven을 사용하여 Java 프로젝트를 설정합니다. 다음의 단계를 따라 진행해주세요.

  1. Maven 프로젝트를 생성합니다.

    mvn archetype:generate -DgroupId=com.example -DartifactId=flyway-example -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
    
  2. 생성된 프로젝트 디렉토리로 이동합니다.

    cd flyway-example
    
  3. pom.xml 파일을 열고 다음의 의존성을 추가합니다.

    <dependencies>
        <!-- Flyway -->
        <dependency>
            <groupId>org.flywaydb</groupId>
            <artifactId>flyway-core</artifactId>
            <version>7.15.0</version>
        </dependency>
        <!-- MySQL JDBC -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.26</version>
        </dependency>
    </dependencies>
    
  4. Flyway 구성 파일인 flyway.conf 를 프로젝트의 src/main/resources 디렉토리에 추가합니다. 다음의 내용을 추가합니다.

    flyway.url=jdbc:mysql://localhost:3306/mydb
    flyway.user=root
    flyway.password=your_password
    

    위의 설정에서 jdbc:mysql://localhost:3306/mydb는 사용할 데이터베이스의 URL을 나타냅니다. your_password 부분은 데이터베이스의 비밀번호로 대체되어야 합니다.

마이그레이션 스크립트 작성

이제 Flyway로 사용할 마이그레이션 스크립트를 작성해봅시다. 스크립트는 src/main/resources/db/migration 디렉토리에 위치해야 합니다.

  1. src/main/resources/db/migration 디렉토리를 생성합니다.

    mkdir -p src/main/resources/db/migration
    
  2. 마이그레이션 스크립트 파일을 생성합니다. 파일 이름은 V1__create_users_table.sql로 지정합니다.

    touch src/main/resources/db/migration/V1__create_users_table.sql
    
  3. V1__create_users_table.sql 파일을 편집하고 다음의 SQL 문을 추가합니다.

    CREATE TABLE users (
        id INT PRIMARY KEY AUTO_INCREMENT,
        username VARCHAR(50) NOT NULL,
        email VARCHAR(50) NOT NULL,
        created_at TIMESTAMP DEFAULT NOW()
    );
    

    이 스크립트는 users 테이블을 생성하는 SQL 문입니다.

마이그레이션 수행

Flyway를 사용하여 마이그레이션을 수행해봅시다.

  1. 프로젝트 디렉토리에서 다음의 Maven 명령어를 실행하여 마이그레이션을 수행합니다.

    mvn flyway:migrate
    

    위의 명령을 실행하면 Flyway가 마이그레이션 스크립트를 찾고 순서대로 실행합니다. 데이터베이스의 스키마가 업데이트되고 users 테이블이 생성될 것입니다.

  2. 데이터베이스를 확인하여 users 테이블이 성공적으로 생성되었는지 확인합니다.

결론

Flyway를 사용하여 Java 애플리케이션의 데이터베이스 리즈를 생성하는 방법에 대해 알아보았습니다. Flyway를 사용하면 데이터베이스 스키마 변경을 쉽게 관리할 수 있으며, 버전 관리 기능을 통해 스키마 변경의 이력을 추적할 수 있습니다. Flyway는 개발자들이 애플리케이션과 함께 데이터베이스를 손쉽게 개발, 테스트 및 배포할 수 있는 강력한 도구입니다.

참고 자료