"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Quarkus 확장: 자신만의 확장 기능을 작성하는 시기와 방법

Quarkus 확장: 자신만의 확장 기능을 작성하는 시기와 방법

2024년 11월 16일에 게시됨
검색:755

Extending Quarkus: When and How to Write Your Own Extensions

Quarkus는 혁신적인 확장 프레임워크를 통해 개발자에게 다양한 기술을 애플리케이션에 원활하게 통합할 수 있는 강력한 방법을 제공합니다. 이러한 확장은 구성을 단순화하고 종속성 주입을 활성화하며 성능을 최적화하므로 Java 개발자에게 매력적인 옵션입니다. 그러나 자신만의 Quarkus 확장 프로그램을 만들기 전에 필요한 시기와 이를 효과적으로 수행하는 방법을 이해하는 것이 중요합니다.

Quarkus 확장을 생성해야 하는 경우

  1. 복잡한 통합: ORM 매퍼, 반응형 클라이언트 또는 데이터 액세스 라이브러리와 같은 복잡한 프레임워크로 작업하는 경우 확장 기능을 생성하면 복잡한 구성 및 종속성 관리를 관리하는 데 도움이 될 수 있습니다. 확장 기능은 Quarkus 애플리케이션에서 이러한 프레임워크의 사용을 단순화합니다.

  2. 성능 최적화: Quarkus 확장은 Quarkus의 기본 컴파일과 일치하도록 설계되어 애플리케이션이 신속하게 시작되고 메모리 공간이 최소화됩니다. 확장 프로그램을 생성하면 Quarkus의 빌드 시간 최적화 기능을 활용하여 종속성을 검색하고 구성을 조기에 생성하여 시작 지연을 방지할 수 있습니다.

  3. 개발자 경험 향상: 확장 프로그램은 개발자 경험을 크게 향상시킬 수 있습니다. 실시간 재로드, CLI 확장, 템플릿 작성 등을 지원하여 개발 프로세스를 간소화합니다. 팀에 원활하고 효율적인 개발 환경을 제공하려는 경우 확장 프로그램이 이 목표를 달성하는 데 도움이 될 수 있습니다.

  4. API 강화: 다른 Quarkus 개발자가 사용할 목적으로 API 또는 라이브러리를 구축하는 경우 확장 프로그램은 API를 강화하고 Quarkus 생태계 내에서 원활하게 작동하도록 보장하는 탁월한 방법을 제공합니다. .

그러나 확장이 항상 최선의 접근 방식은 아닐 수도 있습니다. 구성 요소 간 유틸리티 코드 및 연결 논리 공유와 같은 간단한 요구 사항의 경우 확장을 생성하는 오버헤드 없이 기본 JAR 파일로 충분할 수 있습니다. 통합이 앱별로 이루어지고 다른 곳에서 재사용할 가능성이 없다면 기본 JAR이 더 간단한 솔루션이 될 수 있습니다. 또한 종속성 버전에 대한 완전한 제어가 필요하고 종속성 관리를 위해 Quarkus의 BOM(Bill of Materials)을 준수하고 싶지 않은 경우 JAR이 더 나은 선택일 수 있습니다. 마지막으로, 코드가 SpringMicronaut와 같은 여러 JVM 프레임워크에서 작동해야 하는 경우 Quarkus와의 긴밀한 결합을 피하는 것이 바람직할 수 있습니다.

Quarkus 확장 프로그램을 만드는 것은 복잡할 수 있으며 종종 Quarkus 내부 작업에 대한 심층적인 지식이 필요합니다. 그러나 많은 시나리오에서는 표준 JAR을 만드는 것만으로도 충분할 수 있습니다. Jandex에서 색인화한 이 JAR은 빌드 시간 동안 Quarkus에서 원활하게 검색할 수 있습니다. Quarkus 확장 프로그램은 탁월한 성능과 개발자 생산성을 비롯한 다양한 이점을 제공하지만 항상 필요한 것은 아닙니다.

런타임이 아닌 빌드 시간으로 작업을 이동하는 Quarkus 고유의 접근 방식은 빠른 시작 시간과 낮은 메모리 공간의 핵심입니다. 이 철학은 이러한 빌드 시간 최적화를 활용할 수 있는 Quarkus 확장으로 확장됩니다. 빠른 부팅 시간이 주요 관심사가 아니더라도 확장 프로그램 생성의 이점은 구성 단순화, Quarkus CLI 확장, Quarkus 개발 모드와의 통합까지 확장됩니다.

Quarkus 확장 프로그램을 만드는 것이 지나치게 복잡할 필요는 없습니다. 올바른 접근 방식과 프로젝트 요구 사항에 대한 명확한 이해를 통해 복잡한 문제를 효율적으로 해결할 수 있습니다. 확장 프로그램은 Quarkus 애플리케이션을 향상하고 더 효율적이고 개발자 친화적으로 만드는 유연하고 강력한 방법을 제공합니다.

Quarkus 확장 프로그램 만들기

Quarkus 확장 프로그램을 만드는 것이 올바른 접근 방식이라고 결정했다면 확장 프로그램의 구조적 구성 요소를 이해하는 것이 중요합니다.

  • 런타임 섹션: 이 섹션에는 Quarkus와 통합되는 Bean, 서비스 또는 기타 구성 요소로 구현된 핵심 비즈니스 로직이 포함되어 있습니다.
  • 배포 섹션: 배포 섹션에서는 빌드 시간 보강 및 구성을 처리합니다. 확장 프로그램이 Quarkus의 최적화 프로세스와 원활하게 통합되도록 보장합니다.
  • 설명자: 설명자는 이름, 매개변수, 호환성 정보 등을 포함하여 확장에 대한 메타데이터를 선언합니다.
  • 문서: 포괄적인 문서가 확장 프로그램과 함께 제공되어야 합니다. 확장 프로그램을 효과적으로 사용하고 구성하는 방법을 사용자에게 안내합니다.

Quarkus 확장의 해부학

Quarkus용 사용자 지정 캐싱 확장 프로그램을 생성하려는 시나리오를 생각해 보세요. 이 확장을 통해 개발자는 캐싱 기능을 Quarkus 애플리케이션에 쉽게 통합할 수 있습니다.

  1. 런타임 섹션:

    • 이 섹션에서는 Java 코드를 사용하여 핵심 캐싱 기능을 구현합니다. 여기에는 데이터 캐싱, 캐시된 데이터 검색 및 캐시 만료 관리 방법이 포함될 수 있습니다.
    • 예를 들어 캐싱 작업을 처리하기 위해 put(key, value), get(key) 및 evict(key)와 같은 메서드가 포함된 CustomCacheService 클래스가 있을 수 있습니다.
  2. 배포 섹션:

    • 배포 섹션은 빌드 시간 최적화를 담당합니다. 여기에서 빌드 프로세스 중에 캐싱 구성을 생성하는 방법을 지정할 수 있습니다.
    • 캐싱 확장 프로그램의 경우 이 섹션에는 애플리케이션 코드에서 캐시된 개체를 검색하고 캐시 구성을 생성하는 방법에 대한 지침이 포함될 수 있습니다.
  3. 설명자:

    • 설명자 파일(custom-cache-extension.yaml)은 확장 프로그램에 대한 메타데이터를 제공합니다. 여기에는 확장 프로그램 이름, 버전, Quarkus와의 호환성, 구성 매개변수와 같은 정보가 포함됩니다.
    • 예를 들어 설명자는 확장 이름이 "custom-cache-extension"이고 Quarkus 2.0과 호환되며 캐시 시간 제한 구성 매개변수가 필요하다고 지정할 수 있습니다.
  4. 선적 서류 비치:

    • 확장 프로그램에는 포괄적인 문서가 함께 제공되어야 합니다. Quarkus 애플리케이션 내에서 사용자 정의 캐싱 확장을 효과적으로 사용하는 방법을 사용자에게 안내합니다.
    • 문서에는 캐시를 구성하고 이를 Quarkus 서비스에 통합하며 캐시된 데이터를 관리하는 방법에 대한 예가 포함되어야 합니다. 또한 캐시 활용에 대한 모범 사례를 제공해야 합니다.

이 구조를 따르면 사용자 정의 캐싱 확장은 Quarkus 개발자에게 귀중한 도구가 됩니다. 캐싱을 애플리케이션에 쉽게 통합하여 성능을 향상하고 리소스 사용을 최적화할 수 있습니다.

런타임 모듈:

class CustomCacheService {

    // Core caching functionality using Java code
    public void put(String key, Object value) {
      // Cache data implementation
    }

    public Object get(String key) {
      // Retrieve cached data implementation
    }

    public void evict(String key) {
      // Evict cached data implementation
    }
}

배포 모듈:

class CustomCacheProcessor {
    @BuildStep
    FeatureBuildItem feature() {
        // This declares the custom cache extension as a feature
        return new FeatureBuildItem("custom-cache");
    }
}

설명 파일: custom-cache-extension.yaml

extension:
name: custom-cache-extension
metadata:
    short-name: "resteasy-reactive"
    keywords:
    - "jaxrs"
    - "web"
    - "rest"
    categories:
    - "web"
    - "reactive"
    status: "stable"
    guide: "https://quarkus.io/guides/resteasy-reactive"

결론

결론적으로 Quarkus 확장 프로그램 생성 여부는 프로젝트의 특정 요구 사항과 목표에 따라 달라집니다. Quarkus 확장은 심층 통합, 성능 최적화 및 개발자 경험 향상을 위한 강력한 도구입니다. 그러나 장단점을 평가하고 표준 JAR 라이브러리와 같은 더 간단한 솔루션이 사용 사례에 더 적합한지 고려하는 것이 중요합니다. Quarkus 확장 프로그램을 효과적으로 생성하는 시기와 방법을 이해하면 정보에 입각한 결정을 내리고 이 혁신적인 프레임워크의 잠재력을 최대한 활용할 수 있습니다.

릴리스 선언문 이 기사는 https://dev.to/yanev/extending-quarkus-when-and-how-to-write-your-own-extensions-1a0k?1에서 복제됩니다. 침해가 있는 경우에는 Study_golang@163으로 문의하세요. .com에서 삭제하세요
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3