[java] Apache Tika 와 테스트 자동화

Apache Tika는 다양한 형식의 문서에서 텍스트를 추출하는 Java 라이브러리입니다. 이 라이브러리는 PDF, 워드 문서, 이미지 등 다양한 형식의 파일을 처리할 수 있어 많은 사람들이 활용하고 있습니다. 이번 포스트에서는 Apache Tika를 사용하여 텍스트 추출을 자동화해보는 방법에 대해 알아보겠습니다.

Tika 설치

먼저, Apache Tika를 프로젝트에 추가해야 합니다. 다음은 Maven을 사용하는 경우, pom.xml 파일에 Tika 의존성을 추가하는 예시입니다.

<dependencies>
    <dependency>
        <groupId>org.apache.tika</groupId>
        <artifactId>tika-core</artifactId>
        <version>1.26</version>
    </dependency>
</dependencies>

Maven을 사용하지 않는 경우, Apache Tika의 다운로드 페이지 에서 직접 라이브러리를 다운로드하고 프로젝트에 추가할 수도 있습니다.

문서에서 텍스트 추출하기

Apache Tika를 사용하여 문서에서 텍스트를 추출하는 방법은 매우 간단합니다. 다음은 예시 코드입니다.

import org.apache.tika.Tika;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class TextExtractor {
    public static void main(String[] args) {
        File file = new File("path/to/document.pdf");
        Tika tika = new Tika();

        try (FileInputStream stream = new FileInputStream(file)) {
            String text = tika.parseToString(stream);
            System.out.println(text);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 예시 코드에서는 path/to/document.pdf 경로에 있는 PDF 문서에서 텍스트를 추출하고 출력합니다. 다른 종류의 문서에서도 동일한 방법으로 텍스트를 추출할 수 있습니다.

테스트 자동화

Apache Tika의 텍스트 추출 기능을 자동화하여 테스트에 활용할 수 있습니다. 특정 문서를 읽어와서 예상되는 결과와 비교하여 검증할 수 있습니다. 다음은 JUnit을 활용한 테스트 코드 예시입니다.

import org.apache.tika.Tika;
import org.junit.Assert;
import org.junit.Test;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class TextExtractorTest {
    @Test
    public void testTextExtraction() throws IOException {
        File file = new File("path/to/test_document.pdf");
        Tika tika = new Tika();

        try (FileInputStream stream = new FileInputStream(file)) {
            String expectedText = "This is the expected text from the document.";
            String extractedText = tika.parseToString(stream);

            Assert.assertEquals(expectedText, extractedText.trim());
        }
    }
}

위의 예시 코드에서는 path/to/test_document.pdf 경로에 있는 테스트용 PDF 문서에서 추출된 텍스트가 예상되는 결과와 일치하는지 검증합니다.

마무리

Apache Tika는 다양한 형식의 문서에서 텍스트를 추출하는 간편하고 강력한 도구입니다. 이를 활용하면 텍스트 추출 작업을 자동화하여 더욱 효율적으로 수행할 수 있습니다. 특히 테스트 자동화에 활용하면 특정 문서로부터 예상되는 결과를 자동으로 검증할 수 있어 개발 작업을 더욱 안정적이고 신뢰할 수 있게 합니다.

프로젝트에 Apache Tika를 도입하여 문서 처리 작업을 간편하고 확장성있게 해보세요!