[java] Liquibase를 사용하여 자바 애플리케이션의 데이터베이스 열 삽입 및 삭제하기

소개

Liquibase는 자바 애플리케이션에서 데이터베이스 스키마를 버전 관리하고 변경을 추적하기 위한 오픈 소스 툴이다. 이를 이용하면 쉽게 데이터베이스의 테이블 생성, 열 추가, 열 삭제 등의 스키마 변경 작업을 수행할 수 있다.

이 글에서는 Liquibase를 사용하여 자바 애플리케이션에서 데이터베이스 열을 삽입하고 삭제하는 방법에 대해 알아보겠다.

Liquibase 설정하기

먼저, Maven 프로젝트의 pom.xml 파일에 Liquibase 종속성을 추가해야 한다. 다음은 Liquibase와 데이터베이스 드라이버 종속성을 추가한 예이다.

<dependencies>
  <!-- Liquibase -->
  <dependency>
    <groupId>org.liquibase</groupId>
    <artifactId>liquibase-core</artifactId>
    <version>4.3.5</version>
  </dependency>

  <!-- Database Driver -->
  <dependency>
    <!-- Replace with your database driver -->
    <groupId>com.mysql.cj</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.26</version>
  </dependency>
</dependencies>

열 삽입하기

데이터베이스에 열을 삽입하려면 Liquibase changelog 파일을 작성해야 한다. Changlog 파일은 스키마 변경 작업을 기록하는 XML 파일이다. 다음은 db.changelog.xml 파일에 열을 삽입하는 예이다.

<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
                   xsi:schemaLocation="
          http://www.liquibase.org/xml/ns/dbchangelog
          http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.3.xsd
          http://www.liquibase.org/xml/ns/dbchangelog-ext
          http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">

  <changeSet id="1" author="yourname">
    <addColumn tableName="yourtable">
      <column name="newcolumn" type="varchar(255)"/>
    </addColumn>
  </changeSet>

</databaseChangeLog>

위의 예에서 <addColumn> 요소를 사용하여 yourtable 테이블에 newcolumn이라는 열을 추가하고 있다.

애플리케이션을 실행하면 Liquibase는 changelog 파일을 읽고 데이터베이스의 스키마에 변경을 적용한다. 변경 내용은 테이블에 새로운 열이 추가되는 것을 확인할 수 있다.

열 삭제하기

데이터베이스에서 열을 삭제하려면 <dropColumn> 요소를 사용하여 changelog 파일에 해당 작업을 기록해야 한다. 다음은 db.changelog.xml 파일에 열을 삭제하는 예이다.

<changeSet id="2" author="yourname">
  <dropColumn tableName="yourtable" columnName="oldcolumn"/>
</changeSet>

위의 예에서 <dropColumn> 요소를 사용하여 yourtable 테이블에서 oldcolumn 열을 삭제하고 있다.

애플리케이션을 실행하면 Liquibase가 changelog 파일을 읽고 데이터베이스의 스키마에 변경을 적용한다. 변경 내용은 테이블에서 해당 열이 제거되는 것을 확인할 수 있다.

결론

Liquibase를 사용하면 자바 애플리케이션에서 간단하게 데이터베이스의 열을 삽입하고 삭제할 수 있다. 이를 통해 스키마 변경 작업을 추적하고 버전 관리할 수 있다.

더 많은 Liquibase 기능과 옵션에 대해서는 Liquibase 공식 문서를 참고하십시오.