Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
apache__uima-uimaj_CVE-2022-32287_3-3-0 — 비정형 텍스트 데이터를 주석, 유형 시스템 및 모듈식 분석 엔진으로 처리하고 강화하는 분석 파이프라인을 구축하기 위한 Java SDK. | Kitploit
도구/GitHubGitHub/shoucheng3/apache__uima-uimaj_cve-2022-32287_3-3-0
General Purpose UtilitiesCode AnalysisScripting & AutomationUtilities & FrameworksMachine LearningLearning & Education
GitHubshoucheng3/apache__uima-uimaj_cve-2022-32287_3-3-0

apache__uima-uimaj_CVE-2022-32287_3-3-0

비정형 텍스트 데이터를 주석, 유형 시스템 및 모듈식 분석 엔진으로 처리하고 강화하는 분석 파이프라인을 구축하기 위한 Java SDK.

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
저장소 보기
201년 전아직 검토되지 않음
공유

Apache UIMA Java SDK에 오신 것을 환영합니다

[Apache UIMA][UIMA]는 유용한 정보가 풍부한 비정형 데이터(예: 텍스트)를 관리하는 데 도움을 줍니다. 예를 들어, 텍스트에서 엔터티 언급을 식별하거나 해당 엔터티를 참조 데이터셋에 연결하려는 경우 Apache UIMA는 다음을 제공합니다:

  • 편리한 데이터 구조 --공통 분석 구조(CAS)--를 제공하여 해당 데이터를 표현합니다
  • CAS에 저장된 강화된 데이터에 대한 스키마 역할을 하는 유형 시스템 개념 서비스
  • 해당 데이터를 처리하기 위한 reader, 분석 엔진(프로세서) 및 consumer(작성자)로 구성된 컴포넌트 모델
  • 여러 분석 엔진을 파이프라인으로 집계하고 실행하는 모델(선택적으로 병렬화 가능)
  • CAS를 다른 형식으로 (역)직렬화하는 다양한 옵션
  • 그 외에도 많은 추가 기능!

Apache UIMA Java SDK는 분석을 구축하기 위한 프레임워크만 제공하며 분석 자체는 제공하지 않습니다. 하지만 Apache UIMA를 기반으로 구축되어 분석 컴포넌트 컬렉션이나 기성 솔루션을 제공하는 다양한 타사가 있습니다.

시스템 요구사항

Apache UIMA v3.6.0 이상은 Java 17 이상이 필요합니다.

UIMA용 Eclipse 플러그인 도구를 실행하려면 Java 17 이상을 사용하여 Eclipse 4.25(2022-09) 이상을 시작해야 합니다.

클래스 파일에서 마이그레이션 도구를 실행하려면 Java JRE가 아닌 Java JDK로 실행해야 합니다.

지원되는 플랫폼: Windows, Linux, macOS. 다른 Java 플랫폼 구현도 작동하지만 충분히 테스트되지 않았습니다.

/bin 디렉토리의 많은 스크립트는 Java를 호출합니다. 환경 변수 JAVA_HOME의 값을 사용하여 사용할 Java를 찾습니다. 설정되지 않은 경우 PATH 변수에서 적절한 Java를 찾을 것으로 기대하며 java를 호출합니다.

Apache UIMA Java SDK 사용하기

대부분의 빌드 도구에서 [Maven Central][MAVEN-CENTRAL]에서 가져와 Apache UIMA Java SDK를 쉽게 프로젝트에 추가할 수 있습니다. 예를 들어 Maven을 사용하는 경우 다음 종속성을 프로젝트에 추가할 수 있습니다:

<dependency>
  <groupId>org.apache.uima</groupId>
  <artifactId>uimaj-core</artifactId>
  <version>3.6.0</version>
</dependency>

다음으로, Apache UIMA Java SDK와 Apache uimaFIT 라이브러리를 사용하는 방법에 대한 몇 가지 간단한 예를 들어보겠습니다. Apache uimaFIT는 추가할 수 있는 별도의 종속성입니다:

<dependency>
  <groupId>org.apache.uima</groupId>
  <artifactId>uimafit-core</artifactId>
  <version>3.6.0</version>
</dependency>
유형 시스템 생성하기

유형 시스템은 비정형 정보(여기서는 텍스트 문서)에 첨부하려는 정보의 유형을 정의합니다. 이 예에서는 엔터티 언급을 식별하려고 하므로, 엔터티가 속한 카테고리를 저장하는 데 사용할 수 있는 기능 카테고리가 있는 유형 my.Entity를 정의합니다.

UIMA가 내부적으로 유지 관리하는 주석 스키마에 대한 정보를 설명하기 위해 생성된 스키마를 XML로 화면에 출력합니다.

String TYPE_NAME_ENTITY = "my.Entity";
String TYPE_NAME_TOKEN = "my.Token";
String FEAT_NAME_CATEGORY = "category";

var tsd = UIMAFramework.getResourceSpecifierFactory().createTypeSystemDescription();
tsd.addType(TYPE_NAME_TOKEN, "", CAS.TYPE_NAME_ANNOTATION);
var entityTypeDesc = tsd.addType(TYPE_NAME_ENTITY, "", CAS.TYPE_NAME_ANNOTATION);
entityTypeDesc.addFeature(FEAT_NAME_CATEGORY, "", CAS.TYPE_NAME_STRING);

tsd.toXML(System.out);
공통 분석 구조 객체 생성하기

이제 분석하려는 텍스트를 저장할 공통 분석 구조(CAS) 객체를 생성합니다.

다시 한 번, UIMA가 CAS 객체에 내부적으로 저장하는 정보를 설명하기 위해 객체의 XML 표현을 화면에 출력합니다.

var cas = CasFactory.createCas(tsd);
cas.setDocumentText("Welcome to Apache UIMA.");
cas.setDocumentLanguage("en");

CasIOUtils.save(cas, System.out, SerialFormat.XMI_PRETTY);
주석 추가 및 검색하기

이제 예제 텍스트에서 Apache UIMA 언급을 식별하기 위해 my.Entity 유형의 주석을 생성합니다.

마지막으로, CAS의 모든 주석을 반복하여 화면에 출력합니다. 여기에는 UIMA가 항상 생성하는 기본 DocumentAnnotation과 우리가 직접 생성한 my.Entity 주석이 포함됩니다.

var entityType = cas.getTypeSystem().getType(TYPE_NAME_ENTITY);
var entity = cas.createAnnotation(entityType, 11, 22);
cas.addFsToIndexes(entity);

for (var anno : cas.<Annotation>select(entityType)) {
   System.out.printf("%s: [%s]%n", anno.getType().getName(), anno.getCoveredText());
}
분석 컴포넌트 작업하기

다양한 유형의 분석을 단계로 구성하기 위해 일반적으로 개별 분석 엔진으로 패키징합니다. 이제 이러한 컴포넌트를 구축하는 방법과 분석 파이프라인으로 실행하는 방법을 설명하겠습니다.

class TokenAnnotator extends CasAnnotator_ImplBase {
  public void process(CAS cas) throws AnalysisEngineProcessException {
    var tokenType = cas.getTypeSystem().getType(TYPE_NAME_TOKEN);
    var bi = BreakIterator.getWordInstance();
    bi.setText(cas.getDocumentText());
    int begin = bi.first();
    int end;
    for (end = bi.next(); end != BreakIterator.DONE; end = bi.next()) {
      var token = cas.createAnnotation(tokenType, begin, end);
      cas.addFsToIndexes(token);
      begin = end;
    }
  }
}

class EntityAnnotator extends CasAnnotator_ImplBase {
  public void process(CAS cas) throws AnalysisEngineProcessException {
    var tokenType = cas.getTypeSystem().getType(TYPE_NAME_TOKEN);
    var entityType = cas.getTypeSystem().getType(TYPE_NAME_ENTITY);
    for (var token : cas.<Annotation>select(tokenType)) {
      if (Character.isUpperCase(token.getCoveredText().charAt(0))) {
        var entity = cas.createAnnotation(entityType, token.getBegin(), token.getEnd());
        cas.addFsToIndexes(entity);
      }
    }
  }
}

cas = CasFactory.createCas(tsd);
cas.setDocumentText("John likes Apache UIMA.");
cas.setDocumentLanguage("en");

var pipeline = AnalysisEngineFactory.createEngineDescription(
  AnalysisEngineFactory.createEngineDescription(TokenAnnotator.class),
  AnalysisEngineFactory.createEngineDescription(EntityAnnotator.class));

SimplePipeline.runPipeline(cas, pipeline);

for (var anno : cas.<Annotation>select(entityType)) {
   System.out.printf("%s: [%s]%n", anno.getType().getName(), anno.getCoveredText());
}

uimaFIT 사용하기

UIMA 컴포넌트 구성은 일반적으로 XML 설명자 파일을 생성하여 런타임에 컴포넌트를 인스턴스화하고 배포하는 방법을 프레임워크에 알리는 방식으로 이루어집니다. 이러한 XML 설명자 파일은 설명하는 컴포넌트의 Java 구현과 매우 밀접하게 연결되어 있습니다. 특히 코드 리팩토링이 매우 빈번할 때 두 가지를 일관되게 유지하는 것이 매우 어렵다는 것을 알게 되었습니다. uimaFIT는 UIMA 컴포넌트를 설명하는 Java 어노테이션을 제공하여 코드에서 직접 UIMA 컴포넌트를 설명하는 데 사용할 수 있습니다. 이를 통해 컴포넌트 정의 리팩토링(예: 구성 매개변수 이름 변경)이 크게 간소화됩니다. 또한 코드 생성과 병행하여 수동으로 수행하는 대신 빌드 주기의 일부로 XML 설명자 파일을 생성할 수 있습니다. uimaFIT는 또한 UIMA 컴포넌트의 프로그래밍/동적 인스턴스화를 허용하는 여러 편의 팩토리 메서드를 제공하여 XML 설명자 파일을 전혀 사용하지 않고도 UIMA 컴포넌트를 쉽게 인스턴스화할 수 있게 해줍니다. 이로 인해 uimaFIT는 UIMA 컴포넌트 테스트에 이상적인 라이브러리입니다. 먼저 설명자 파일을 생성할 필요 없이 컴포넌트를 쉽게 인스턴스화하고 호출할 수 있기 때문입니다. uimaFIT는 파이프라인의 프로그래밍/동적 인스턴스화가 실험을 단순화할 수 있는 연구 환경에서도 유용합니다. 예를 들어, 여러 실험 조건에 걸쳐 10-겹 교차 검증을 수행할 때 각 실행마다 다른 설명자 파일 세트를 생성하거나 이러한 설명자 파일을 생성하는 스크립트를 만드는 것은 상당히 힘들 수 있습니다. uimaFIT는 유형 시스템에 구애받지 않으며 특정 유형 시스템에 의존하지 않거나 제공하지 않습니다.

uimaFIT는 UIMA를 위한 팩토리, 주입 및 테스트 유틸리티를 제공하는 라이브러리입니다. 다음 목록은 uimaFIT가 제공하는 일부 기능을 강조합니다:

  • 팩토리: 설명자 파일 없이 프로그래밍 방식으로 UIMA 컴포넌트를 쉽게 인스턴스화합니다. 예를 들어, AnalysisEngine을 인스턴스화하기 위해 다음과 같이 호출할 수 있습니다:

    AnalysisEngineFactory.createEngine(MyAEImpl.class, myTypeSystem,
      paramName1, paramValue2, 
      paramName2, paramValue2, 
      ...)
    
  • 주입: 구성 매개변수 값을 분석 엔진의 해당 멤버 변수에 바인딩하고 외부 리소스의 바인딩을 처리합니다. 예를 들어, 구성 매개변수를 바인딩하려면 멤버 변수에 @ConfigurationParameter 어노테이션을 붙이기만 하면 됩니다. 외부 리소스도 마찬가지로 @ExternalResource 어노테이션을 통해 주입할 수 있습니다. 그런 다음 초기화 메서드에 한 줄의 코드를 추가하십시오:

    ConfigurationParameterInitializer.initialize(this, uimaContext).
    

    uimaFIT JCasAnnotator_ImplBase 클래스를 확장하면 자동으로 처리됩니다.

  • 테스트: uimaFIT는 문서에 설명된 여러 가지 방법으로 테스트를 단순화합니다. 설명자 파일 없이 컴포넌트를 쉽게 인스턴스화함으로써 유지 관리가 어렵고 불필요한 XML을 테스트 코드에서 대량 제거할 수 있습니다. 이는 테스트를 더 쉽게 작성하고 유지 관리할 수 있게 해줍니다. 또한, 컴포넌트를 파이프라인으로 실행하는 것은 다음과 같은 메서드 호출로 수행할 수 있습니다:

    SimplePipeline.runPipeline(reader, ae1, ..., aeN, consumer1, ... consumerN)
    

uimaFIT는 Apache UIMA(TM) 프로젝트의 일부입니다. uimaFIT는 호환되는 버전의 Apache UIMA SDK Java 버전과 함께만 사용할 수 있습니다. 편의를 위해 uimaFIT의 바이너리 배포 패키지에는 uimaFIT를 사용하는 데 필요한 모든 라이브러리가 포함되어 있습니다. 특히 초보 사용자의 경우 별도로 전체 UIMA SDK 사본을 확보하는 것이 좋습니다.

uimaFIT는 Maven Central을 통해 사용할 수 있습니다. 빌드 환경에 Maven을 사용하는 경우 다음과 같이 pom.xml 파일에 uimaFIT를 종속성으로 추가할 수 있습니다:

<dependencies>
  <dependency>
    <groupId>org.apache.uima</groupId>
    <artifactId>uimafit-core</artifactId>
    <version>3.6.0</version>
  </dependency>
</dependencies>

모듈

  • uimafit-core - 주요 uimaFIT 모듈
  • uimafit-cpe - 컬렉션 처리 엔진(멀티스레드 파이프라인) 지원
  • uimafit-maven - UIMA 컴포넌트에 uimaFIT 메타데이터를 자동으로 추가하고 uimaFIT 지원 컴포넌트용 XML 설명자를 생성하는 Maven 플러그인.
  • uimafit-junit - JUnit 테스트에서 UIMA/uimaFIT 테스트 구현을 용이하게 하는 편의 코드
  • uimafit-assertj - AssertJ 프레임워크를 통해 UIMA/uimaFIT 유형에 대한 어설션 추가
  • uimafit-spring - UIMA와 Spring Framework의 통합을 위한 개념 증명 역할을 하는 실험 모듈입니다. 현재 완성된 것으로 간주되지 않으며, UIMA가 생성한 모든 컴포넌트를 Spring을 통해 전달하여 Spring 컨텍스트 종속성 연결을 제공하도록 UIMA 프레임워크를 패치하기 위해 침습적 리플렉션을 사용합니다. 이 모듈은 모험가를 위해 제공되지만 현재 안정적이거나 완성된 것으로 간주되지 않으며 패키지의 적절한 부분도 아닙니다. 예를 들어 바이너리 배포 패키지에 포함되지 않습니다.

빌드

Apache UIMA를 빌드하려면 최소한 Java 17 JDK와 최신 Maven 3 버전이 필요합니다.

소스 배포 ZIP을 추출하거나 저장소를 클론한 후, 생성된 디렉토리로 변경하여 다음 명령을 실행하십시오:

도구 다운로드