[java] Liquibase와 Maven을 사용하여 자바 애플리케이션의 데이터베이스 빌드 자동화하기

Liquibase는 데이터베이스 스키마 관리를 위한 오픈소스 도구입니다. Maven은 자바 프로젝트 관리를 위한 도구로, 빌드, 테스트, 종속성 관리 등을 자동화합니다. 이번 블로그 포스트에서는 Liquibase와 Maven을 결합하여 자바 애플리케이션의 데이터베이스 빌드를 자동화하는 방법을 알아보겠습니다.

1. Maven 프로젝트 생성

먼저 Maven 프로젝트를 생성해야 합니다. 이를 위해서는 Maven이 설치되어 있어야 합니다. 설치된 후에 다음 명령을 실행하여 Maven 프로젝트를 생성합니다:

mvn archetype:generate -DgroupId=com.example -DartifactId=myproject -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

위 명령을 실행하면 myproject라는 이름의 Maven 프로젝트가 생성됩니다.

2. Liquibase 추가

Liquibase를 사용하기 위해 Maven 프로젝트에 Liquibase의 Maven 플러그인을 추가해야 합니다. pom.xml 파일을 열고 다음 의존성을 추가합니다:

<dependency>
    <groupId>org.liquibase</groupId>
    <artifactId>liquibase-core</artifactId>
    <version>3.10.3</version>
</dependency>

3. Liquibase 설정

Liquibase는 liquibase.properties 또는 liquibase.yaml 파일을 사용하여 설정됩니다. 프로젝트 루트 디렉토리에 liquibase.properties 파일을 생성하고 다음 내용을 추가합니다:

changeLogFile=db/changelog.xml
driver=org.postgresql.Driver
url=jdbc:postgresql://localhost:5432/mydatabase
username=myusername
password=mypassword

위 설정에서 driver는 사용하는 데이터베이스 드라이버의 클래스 이름을, url은 데이터베이스의 URL을, usernamepassword는 데이터베이스에 접속하기 위한 계정 정보를 각각 설정합니다. changeLogFile은 Liquibase가 변경 사항을 추적하는 데 사용할 변경 로그 파일의 경로를 설정합니다.

4. 변경 로그 작성

Liquibase는 변경 로그 파일을 사용하여 데이터베이스 스키마 변경 사항을 관리합니다. db/changelog.xml 파일을 생성하고 변경 로그를 작성합니다. 다음은 예시입니다:

<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
                   http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.10.xsd">

    <changeSet id="1" author="yourname">
        <createTable tableName="users">
            <column name="id" type="int" autoIncrement="true">
                <constraints primaryKey="true" nullable="false"/>
            </column>
            <column name="username" type="varchar(255)">
                <constraints nullable="false"/>
            </column>
            <column name="email" type="varchar(255)">
                <constraints nullable="false"/>
            </column>
        </createTable>
    </changeSet>

</databaseChangeLog>

위 예시는 users 테이블을 생성하는 변경 로그입니다. 필요에 따라 변경 로그를 작성하여 데이터베이스 스키마를 변경할 수 있습니다.

5. 데이터베이스 빌드 실행

이제 Maven을 사용하여 데이터베이스 빌드를 실행할 수 있습니다. 명령창에서 프로젝트 루트 디렉토리로 이동한 후 다음 명령을 실행합니다:

mvn liquibase:update

위 명령은 Liquibase에게 변경 로그를 적용하여 데이터베이스 스키마를 빌드하도록 합니다. 실행 후에는 데이터베이스에 users 테이블이 생성되어 있어야 합니다.

마무리

이제 Liquibase와 Maven을 사용하여 자바 애플리케이션의 데이터베이스 빌드를 자동화하는 방법을 알게 되었습니다. 이를 통해 개발자는 코드 변경과 동시에 데이터베이스 스키마를 쉽게 업데이트할 수 있으며, 개발 및 배포의 효율성을 향상시킬 수 있습니다.

참고 자료