Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

참고: 액터모델은 자바(+코틀린)가 지원하는 다양한 동시성프로그래밍을 이해하며 이를 이용하기때문에, 동시성 처리 기본기는 중요합니다.


생성된 프로젝트

Claude Code에 의해 코딩없이 생성된 프로젝트는 Projects 디렉토리에서 확인할 수 있습니다.

프로젝트 목록 by AI생성 (학습 순서별)


00. SSE Push System ⭐⭐


핵심 기술: Spring WebFlux + Apache Pekko Actor + SSE
학습 목표: 실시간 푸시 시스템과 액터 모델의 기본 통합 패턴

  • Server-Sent Events를 통한 실시간 이벤트 스트리밍
  • TopicManagerActor와 UserEventActor를 활용한 토픽 기반 pub/sub
  • 이벤트 히스토리 관리 (토픽당 100개 이벤트 저장)
  • Ask/Tell 패턴을 활용한 비동기 메시지 처리
  • 성과: 실시간 통신 + 액터 모델의 기초 이해


01. Actor Concurrency 

핵심 기술: Apache Pekko + 동시성 처리 패턴
학습 목표: Tell/Ask 패턴과 3가지 동시성 모델 비교 학습

  • HelloActor를 통한 기본 액터 패턴 학습
  • Tell 패턴(fire-and-forget) vs Ask 패턴(request-response)
  • CompletableFuture, WebFlux Mono, Kotlin Coroutines 동시성 비교
  • TestProbe를 활용한 액터 테스트 방법론
  • 성과: 액터 모델과 JVM 동시성 프로그래밍의 융합


02. LLM Throttle ⭐⭐⭐

핵심 기술: Pekko Streams + 백프레셔 + 토큰 기반 스로틀링
학습 목표: 고급 백프레셔 메커니즘과 자동 속도 조절

  • 기본 버전: 수동 백프레셔와 단계별 지연 처리
  • 향상된 버전: Pekko Streams 기반 자동 속도 조절
  • 슬라이딩 윈도우를 통한 토큰 사용량 추적
  • 실패 요청 관리와 재시도 메커니즘
  • 성과: 백프레셔와 리액티브 스트림의 실전 활용


03. Actor Router ⭐⭐

핵심 기술: 액터 라우팅 전략 + 동적 스케일링
학습 목표: 6가지 라우팅 전략과 로컬→클러스터 확장 설계

  • Round Robin, Random, Least Loaded, Consistent Hash 등
  • Priority Based, Broadcast 라우팅 구현
  • 동적 워커 스케일링(Scale In/Out)
  • 로컬 시스템에서 클러스터로의 무중단 전환 가능 구조
  • 성과: 분산 시스템 설계와 확장성 패턴 이해


04. Actor Stream ⭐⭐⭐

핵심 기술: 스트림 처리 기술 비교 + StreamProcessorActor
학습 목표: 4가지 스트림 처리 기술의 특성과 성능 비교

  • Pekko Streams: 액터 기반 스트림 처리
  • Java Streams API: 함수형 스트림 처리
  • WebFlux: 리액티브 스트림 처리
  • Kotlin Coroutines: 코루틴 기반 비동기 처리
  • 성과: 스트림 처리 기술들의 장단점과 적용 시나리오 파악


05. Actor Throttle ⭐⭐⭐

핵심 기술: 고급 스로틀링 + ThrottleManagerActor
학습 목표: 복합적인 백프레셔 전략과 메시지 큐 관리

  • ThrottleActor와 ThrottleManagerActor의 계층적 구조
  • 다단계 백프레셔 적용과 메시지 스태싱
  • 용량 기반 동적 지연 조절
  • 실시간 메트릭 수집과 모니터링
  • 성과: 복잡한 시스템에서의 부하 제어와 안정성 확보


06. Kafka Connector ⭐⭐⭐⭐

핵심 기술: Kafka + Pekko Streams + Actor 통합
학습 목표: 외부 시스템과의 안정적인 이벤트 처리 통합

  • EventProducer: Kafka로의 고성능 이벤트 전송
  • EventConsumerActor: 액터 기반 이벤트 상태 관리
  • KafkaConsumerConnector: Kafka-Actor 연결 계층
  • Kill Switch를 통한 우아한 종료 처리
  • 성과: 대규모 이벤트 스트리밍과 액터 모델의 실전 결합


07. Persist Durable ⭐⭐⭐⭐

핵심 기술: Pekko Durable State + PostgreSQL + 자원 관리
학습 목표: 영속성과 상태 복원, 효율적인 자원 관리

  • UserStateActor: 사용자별 상태 영속화
  • 30분 비활성화 시 자동 셧다운과 상태 복원
  • PostgreSQL R2DBC를 통한 비동기 영속성
  • mallId-userId 조합의 고유 식별자 설계
  • 비교 분석: Pekko Persist vs Kafka KTable vs Apache Flink
  • 성과: 상태 관리의 영속성과 효율성 양립


08. Pekko HTTP ⭐⭐⭐⭐

핵심 기술: Pekko HTTP + WebSocket + Swagger UI + 순수 액터 시스템
학습 목표: Spring Boot 없이 경량 HTTP 서버 구축과 액터 시스템 전면 활용

  • Spring Boot 의존성 없는 순수 Pekko HTTP 서버 구현
  • WebSocket과 SSE를 통한 실시간 양방향 통신
  • Swagger UI 통합으로 대화형 API 문서화
  • HelloActor, EventStreamActor, WebSocketActor 등 다양한 액터 패턴
  • 메모리 사용량 ~50MB, 시작 시간 ~1초의 경량 서버
  • 비교 분석: Pekko HTTP vs Spring Boot WebFlux 장단점
  • 성과: 경량 마이크로서비스와 고성능 스트리밍 서버 구축 능력


09. Persist Durable Cluster ⭐⭐⭐⭐⭐

핵심 기술: Pekko Cluster Sharding + Durable State + PostgreSQL
학습 목표: 분산 환경에서의 상태 관리와 클러스터 샤딩 마스터

  • Cluster Sharding을 통한 엔티티 자동 분산 관리
  • mallId-userId 기반 해시 샤딩 전략
  • R2DBC PostgreSQL을 통한 비동기 영속성
  • 노드 장애 시 자동 엔티티 마이그레이션
  • 30분 비활성화 시 자동 Passivation
  • 100개 샤드로 균등 분산 및 자동 리밸런싱
  • 비교 분석: Pekko Cluster vs Kafka KTable vs Apache Flink
  • 성과: 엔터프라이즈급 분산 상태 관리 시스템 구축 능력


10. Persist EventSource ⭐⭐⭐⭐⭐

핵심 기술: Pekko Event Sourcing + PostgreSQL + 스냅샷 + 감사 추적
학습 목표: 이벤트 소싱 패턴, 완전한 감사 기능, CQRS 구현

  • 입금(DepositAdded)과 출금(WithdrawalMade) 이벤트를 갖춘 가상 지갑
  • 모든 거래에 대한 완전한 감사 추적과 추적성
  • 특정 시점의 상태 재구성을 위한 이벤트 재생 기능
  • 성능 향상을 위한 스냅샷 최적화
  • 보안 기능: 계정 동결/해제, 일일 출금 한도
  • 거래 검증 및 거부 추적
  • 전통적인 CRUD 대비 장점을 보여주는 성능 벤치마크
  • 비교 분석: 이벤트 소싱 vs CRUD vs Durable State vs State Store Plugin
  • 성과: 완전한 감사 기능을 갖춘 엔터프라이즈급 이벤트 소싱 시스템 구축


액터 모델의 CQRS 처리 장점

전통적인 CRUD 패턴을 넘어서 CQRS(Command Query Responsibility Segregation) 패턴을 구현할 때 액터 모델이 제공하는 핵심 가치:

🎯 명령(Command) 처리의 우수성


  • 상태 캡슐화: 각 액터가 독립적인 상태를 관리하여 동시성 이슈 원천 차단
  • 메시지 기반 처리: 비동기 명령 처리로 높은 처리량과 응답성 확보
  • 백프레셔 적용: 시스템 부하에 따른 자동 속도 조절로 안정성 보장


📊 조회(Query) 처리의 효율성

  • 읽기 모델 최적화: 액터별 상태 관리로 빠른 조회 성능
  • 이벤트 히스토리: 시간별 상태 변화 추적 가능
  • 분산 캐싱: 액터 레벨에서의 인메모리 상태 관리


🔄 전체적인 시스템 이점

  • 수평 확장: 액터 단위로 독립적인 확장 가능
  • 장애 격리: 하나의 액터 실패가 전체 시스템에 미치는 영향 최소화
  • 복잡한 워크플로우: 상태 기반 처리로 복잡한 비즈니스 로직 단순화


액터모델(리액티브 스트림) 학습을 위한 다양한 프롬프트

다음과 같은 질문을 LLM에게 의뢰해~ 액터모델이 할수 있는것들을 조사한후 엑터모델을 활용한 다양한 고급기능 구현을 시도할수 있습니다.

  • 자바진영의 리액티브 스트림을 영향을 준 기업과 활동들을 연도별로 정리
    • webflux 부터 시작한 자바개발자에게 인사이트를 넓혀줄수 있습니다.
  • 액터모델로 시도할수 있는 유용한 샘플소개
  • AKKA및 언어 상관없이 액터모델을 도입해 성공한 다양한 테크기업의 사례소개, 국내/해외를 나눠서
    • 기업테크 조사는 할루네이션이 있을수 있음으로 실 활용사례는 검색을 한번더 하는것을 권장
  • CRUD만 개발할줄 아는 개발자가 액터모델을 수련하게되면 할수 있는것들? 주로 DB/REDIS에만 의존해 상태없는 프로그래밍만 하는 케이스와 비교해 설명해죠
  • 다양한 AI를 활용해야하는시대 액터모델을 도입했을때~ 효과와 실제 활용한 기업의 사례는?
  • Backpresure 가 적용된것과 아닌것의 프로그래밍 난이도차이? 안정성/성능 관점에서도 비교해죠
  • JAVA9에서 STREAM API가 적용되기까지 영향을 준 활동및, 영향력 있는 개발자는?

Docs