Quarkus는 Kubernetes-native Java 프레임워크입니다. GraalVM 네이티브 이미지 컴파일을 통해 JVM 없이 실행 가능한 바이너리를 만들 수 있습니다. Camel Quarkus는 Apache Camel을 Quarkus 위에서 실행하도록 최적화한 프로젝트입니다.
서버리스 환경이나 대규모 마이크로서비스에서 콜드 스타트 시간과 메모리 비용이 크게 줄어듭니다.
# Maven으로 Camel Quarkus 프로젝트 생성
mvn io.quarkus.platform:quarkus-maven-plugin:create -DprojectGroupId=com.example -DprojectArtifactId=camel-quarkus-demo -Dextensions="camel-quarkus-core,camel-quarkus-http,camel-quarkus-jackson"
# pom.xml 의존성
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-core</artifactId>
</dependency> @ApplicationScoped
public class MyRoutes extends RouteBuilder {
@Override
public void configure() throws Exception {
from("timer:hello?period=5000")
.setBody(simple("현재 시간: ${date:now:HH:mm:ss}"))
.to("log:output");
rest("/api")
.get("/status")
.produces("application/json")
.to("direct:getStatus");
from("direct:getStatus")
.setBody(constant("{"status": "running"}"));
}
} # JVM 모드로 실행 (개발 중)
./mvnw quarkus:dev
# 네이티브 이미지 빌드 (GraalVM 필요)
./mvnw package -Pnative
# 또는 Docker 컨테이너 빌드 (로컬에 GraalVM 없어도 됨)
./mvnw package -Pnative -Dquarkus.native.container-build=true
# 결과: target/camel-quarkus-demo-runner (실행 가능 바이너리)
./target/camel-quarkus-demo-runner GraalVM 네이티브 이미지는 Java 리플렉션을 제한적으로 지원합니다. Camel Quarkus 익스텐션이 각 컴포넌트에 필요한 리플렉션 설정을 자동으로 처리해 줍니다. 하지만 커스텀 코드에서 리플렉션을 사용한다면 별도 설정이 필요합니다.
// resources/reflect-config.json
[
{
"name": "com.example.MyCustomClass",
"allDeclaredMethods": true,
"allDeclaredFields": true
}
] AI 감시 소프트웨어가 재택근무 시대를 끝내고 있다. 직원의 키스트로크·화면·표정까지 추적하는 기술의 실체와, 한국 직장인이 알아야…
정보보안기사 실기는 개념을 아는 것보다 로그를 읽고, 규칙을 쓰고, 계산하는 힘에서 점수가 갈립니다. 이번 글은…
호르무즈 해협 뉴스는 이제 '또 공격이 있었다'보다 '얼마나 늘었나'를 봐야 합니다. 이투데이가 FT와 영국해사무역기구(UKMTO) 등을…
이번 추석 연휴, 은행들은 쉬지 못했습니다. 연휴 기간 금융권에서 대규모 개인정보 유출 사고가 터졌기 때문입니다.…
"집 못 팔게 막으면 값이 내려가겠지." 서울 전역이 토지거래허가구역으로 묶이던 1년 전, 이런 기대가 있었습니다.…
다섯 거래일 연속 밀린 코스피가 오늘 아침 크게 반등했습니다. 오전 9시 12분 기준 6,165.02로 전…