[java] Maven을 사용하여 자바 데이터베이스 마이그레이션 구현하기

소개

자바 애플리케이션을 개발하다보면 데이터베이스 스키마의 변경이 필요할 때가 있습니다. 이러한 스키마 변경을 관리하는 과정을 마이그레이션이라고 합니다. 마이그레이션을 수동으로 처리하면 실수할 가능성이 높아지므로 자동화하는 것이 좋습니다. 이를 위해 Maven을 사용하여 자바 데이터베이스 마이그레이션을 구현하는 방법에 대해 알아보겠습니다.

기본 설정

먼저 Maven 프로젝트를 생성하고 필요한 의존성을 추가해야 합니다. 이를 위해 pom.xml 파일에 다음 의존성을 추가합니다.

<dependencies>
    <dependency>
        <groupId>org.flywaydb</groupId>
        <artifactId>flyway-core</artifactId>
        <version>7.14.0</version>
    </dependency>
</dependencies>

마이그레이션 파일 작성

마이그레이션 파일은 데이터베이스 스키마 변경에 대한 스크립트입니다. 이 파일을 작성하고 src/main/resources/db/migration 디렉토리에 저장해야 합니다. 파일 이름 규칙은 V<버전>__<설명>.sql 형식을 따라야 합니다.

예를 들어, V1__create_table.sql 이라는 파일을 생성하여 다음과 같은 내용을 작성할 수 있습니다.

CREATE TABLE products (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    price DECIMAL(10, 2)
);

Maven 플러그인 설정

Maven 프로젝트에 Flyway 플러그인을 설정해야 합니다. 이를 위해 pom.xml 파일에 다음 코드를 추가합니다.

<build>
    <plugins>
        <plugin>
            <groupId>org.flywaydb</groupId>
            <artifactId>flyway-maven-plugin</artifactId>
            <version>7.14.0</version>
            <configuration>
                <url>jdbc:mysql://localhost:3306/mydatabase</url>
                <user>username</user>
                <password>password</password>
            </configuration>
        </plugin>
    </plugins>
</build>

위의 설정에서는 MySQL 데이터베이스에 연결하기 위한 URL, 사용자 이름 및 비밀번호를 제공해야 합니다. 적절히 변경하여 사용하세요.

마이그레이션 실행

이제 Maven 명령어를 사용하여 마이그레이션을 실행할 수 있습니다. 프로젝트 루트 디렉토리에서 다음 명령을 실행합니다.

mvn flyway:migrate

Flyway는 db/migration 디렉토리에 있는 마이그레이션 파일을 읽어서 데이터베이스에 적용합니다. 이미 적용된 마이그레이션은 스킵됩니다.

추가 옵션

Flyway는 다양한 옵션을 제공하여 마이그레이션을 더욱 유연하게 관리할 수 있습니다. 드롭된 오브젝트 자동 복구, SQL 스크립트 디렉토리 구조 변경 등의 기능을 사용할 수 있습니다. 자세한 내용은 Flyway 공식 문서를 참조하세요.

결론

Maven과 Flyway를 사용하여 자바 데이터베이스 마이그레이션을 구현하는 방법을 알아보았습니다. 이를 통해 스키마 변경을 자동화하여 개발 프로세스를 더욱 효율적으로 관리할 수 있습니다.