Categories: Camel프레임워크

[Camel in Action] 1-2. Camel 개발 환경 설정과 첫 번째 라우트 작성

Camel 개발을 시작하기 전에

Apache Camel 개발에 필요한 사전 준비 사항은 다음과 같습니다.

  • Java 11 이상 (Java 17 권장)
  • Maven 또는 Gradle 빌드 도구
  • IDE (IntelliJ IDEA 또는 Eclipse 권장)

Maven 프로젝트 설정

Spring Boot와 함께 Camel을 사용하는 것이 가장 일반적인 방법입니다. pom.xml에 다음 의존성을 추가합니다.

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.2.0</version>
</parent>

<dependencies>
    <dependency>
        <groupId>org.apache.camel.springboot</groupId>
        <artifactId>camel-spring-boot-starter</artifactId>
        <version>4.4.0</version>
    </dependency>
</dependencies>

첫 번째 라우트 작성

Camel에서 라우트는 RouteBuilder를 상속받아 configure() 메서드 안에 정의합니다.

import org.apache.camel.builder.RouteBuilder;
import org.springframework.stereotype.Component;

@Component
public class MyFirstRoute extends RouteBuilder {

    @Override
    public void configure() throws Exception {
        from("timer:hello?period=3000")
            .log("Camel이 실행 중입니다! 현재 시각: ${date:now:HH:mm:ss}")
            .setBody(simple("Hello from Camel!"))
            .to("log:output");
    }
}

이 라우트는 3초마다 타이머가 작동하면서 로그를 출력합니다. from()이 시작점(소비자), to()가 끝점(생산자)입니다.

실행 결과 이해하기

애플리케이션을 실행하면 콘솔에 다음과 같은 출력이 반복됩니다.

INFO  hello - Camel이 실행 중입니다! 현재 시각: 09:15:32
INFO  output - Exchange[ExchangePattern: InOnly, BodyType: String, Body: Hello from Camel!]

라우트의 기본 구조 이해

Camel 라우트는 항상 from → 처리 단계들 → to 구조를 따릅니다.

  • from: 메시지를 어디서 받을지 (소비자 엔드포인트)
  • 처리 단계: log, transform, filter, route 등의 프로세서
  • to: 처리된 메시지를 어디로 보낼지 (생산자 엔드포인트)

CamelContext – Camel의 심장

모든 Camel 라우트는 CamelContext 안에서 실행됩니다. Spring Boot 환경에서는 자동으로 생성되고 관리됩니다. CamelContext는 라우트의 생명주기를 관리하며, 시작/중지/일시정지를 제어합니다.

다음 글에서는 Camel의 핵심 메시지 모델인 Message와 Exchange에 대해 자세히 알아봅니다.

zerg96

Share
Published by
zerg96

Recent Posts

[Apache Camel] 2025년 최신 트렌드 – AI 통합과 서버리스 Camel의 미래

2025년 Apache Camel의 최신 트렌드를 분석합니다. AI/LLM 통합 컴포넌트, 서버리스 배포, Camel K 진화, WebAssembly…

11시간 ago

[Camel in Action] 완결편 – Apache Camel 전체 여정 회고와 다음 단계

Camel in Action을 완독한 후 Apache Camel의 전체 그림을 다시 정리합니다. 핵심 철학, 학습 경로,…

11시간 ago

[Camel in Action] 실전편 – Camel 마이그레이션 가이드 2.x에서 4.x까지

Apache Camel 2.x에서 3.x, 4.x로 마이그레이션하는 단계별 가이드입니다. 주요 API 변경사항, 제거된 컴포넌트, 자동화 도구…

11시간 ago

[Camel in Action] 실전편 – Camel 라우트 디버깅 기법과 문제 해결 가이드

Apache Camel 라우트에서 발생하는 문제를 디버깅하고 해결하는 실전 기법을 설명합니다. 로그 분석, breakpoint 디버깅, Tracer,…

11시간 ago

[Camel in Action] 실전편 – Camel 도입 전 반드시 알아야 할 것들

Apache Camel을 프로젝트에 도입하기 전 알아야 할 핵심 사항을 정리합니다. 학습 곡선, 도입 비용, 적합한…

11시간 ago

[Camel in Action] 실전편 – Enterprise Integration Patterns 20가지 핵심 정리

엔터프라이즈 통합 패턴(EIP) 20가지를 Apache Camel 코드와 함께 한 번에 정리합니다. 메시징 채널, 메시지 라우팅,…

11시간 ago