본문으로 건너뛰기

© 2026 Molayo

GitHub릴리즈2026. 05. 15. 20:48

dapr/dapr

요약

Dapr는 분산 애플리케이션 구축에 필요한 베스트 프랙티스 패턴과 통합 API 세트를 제공하는 CNCF 졸업 프로젝트입니다. 워크플로, Pub/Sub, 상태 관리 등 다양한 기능을 통해 개발자가 상용구 코드 없이도 보안, 신뢰성, 관찰 가능성이 확보된 프로덕션 레디 애플리케이션을 쉽게 만들 수 있도록 돕습니다. Dapr는 사이드카 패턴을 사용하여 어떤 언어나 프레임워크에도 구애받지 않고 분산 시스템 구축을 지원하며, 플러그형 컴포넌트와 표준화된 인터페이스를 통해 높은 확장성과 이식성을 제공합니다.

핵심 포인트

  • 분산 애플리케이션 개발에 필요한 베스트 프랙티스 패턴과 통합 API 세트를 제공하여 생산성 향상 (20-40%)
  • 사이드카(side-car) 아키텍처를 채택하여 특정 언어나 프레임워크 종속 없이 모든 프로그래밍 환경 지원
  • Pub/Sub, 상태 관리, 비밀 저장소 등 다양한 기능을 플러그형 컴포넌트로 제공하여 높은 이식성 및 확장성 확보
  • 이벤트 기반(event-driven) 및 액터(actor) 의미론을 단순하고 일관된 모델로 통합하여 개발 복잡성을 낮춤
  • Kubernetes는 물론 에지, 온프레미스 등 다양한 환경에 배포 가능한 플랫폼 독립적인 아키텍처 제공

Dapr는 분산 애플리케이션 (distributed applications)을 구축하기 위해 내장된 베스트 프랙티스 (best practices)와 패턴 (patterns)을 갖춘 통합 API (APIs) 세트입니다. Dapr는 워크플로 (workflow), 발행/구독 (pub/sub), 상태 관리 (state management), 비밀 저장소 (secret stores), 외부 설정 (external configuration), 바인딩 (bindings), 액터 (actors), 분산 잠금 (distributed lock), 그리고 암호화 (cryptography)와 같은 즉시 사용 가능한 기능들을 통해 개발자의 생산성을 20-40% 향상시킵니다. 여러분은 내장된 보안 (security), 신뢰성 (reliability), 그리고 관찰 가능성 (observability) 기능을 통해 이점을 얻을 수 있으므로, 프로덕션 레디 (production-ready) 애플리케이션을 구현하기 위해 상용구 코드 (boilerplate code)를 작성할 필요가 없습니다.

CNCF 졸업 프로젝트인 Dapr를 통해, 플랫폼 팀은 복잡한 설정을 구성하는 동시에 애플리케이션 개발 팀에는 단순한 인터페이스를 노출함으로써, 개발 팀이 확장성이 뛰어난 분산 애플리케이션을 더 쉽게 구축할 수 있도록 할 수 있습니다. 많은 플랫폼 팀이 API 기반의 인프라 상호작용을 위한 거버넌스 (governance)와 골든 패스 (golden paths)를 제공하기 위해 Dapr를 채택해 왔습니다.

우리는 Cloud Native Computing Foundation (CNCF) 졸업 프로젝트입니다.

  • 어떠한 언어나 프레임워크를 사용하는 개발자라도 분산 애플리케이션을 작성할 수 있도록 지원 - 베스트 프랙티스 빌딩 블록 (building blocks)을 제공함으로써 개발자가 마이크로서비스 애플리케이션 (microservice applications)을 구축할 때 직면하는 어려운 문제들을 해결
  • 커뮤니티 주도적이며, 개방적이고, 특정 벤더에 종속되지 않음 (vendor neutral)
  • 새로운 기여자 (contributors) 확보
  • 공개 API (open APIs)를 통한 일관성 및 이식성 제공
  • 클라우드와 에지 (edge) 전반에 걸쳐 플랫폼에 구애받지 않음 (platform agnostic)
  • 확장성을 수용하고 벤더 종속 (vendor lock-in) 없는 플러그형 컴포넌트 (pluggable components) 제공
  • 높은 성능과 경량화를 통해 IoT 및 에지 시나리오 지원
  • 런타임 의존성 (runtime dependency) 없이 기존 코드로부터 점진적으로 채택 가능

Dapr는 각 컴퓨팅 유닛 (compute unit)에 사이드카 (side-car, 컨테이너 또는 프로세스)를 주입합니다. 사이드카는 이벤트 트리거 (event triggers)와 상호작용하며 표준 HTTP 또는 gRPC 프로토콜을 통해 컴퓨팅 유닛과 통신합니다. 이를 통해 Dapr는 프레임워크나 라이브러리를 임포트 (import)할 필요 없이 모든 기존 및 미래의 프로그래밍 언어를 지원할 수 있습니다.

Dapr는 내장된 상태 관리 (state management), 신뢰할 수 있는 메시징 (at least once delivery), 그리고 표준 HTTP 동사 (HTTP verbs) 또는 gRPC 인터페이스를 통한 트리거 (triggers) 및 바인딩 (bindings)을 제공합니다. 이를 통해 동일한 프로그래밍 패러다임을 따르면서 무상태 (stateless), 상태 유지 (stateful) 및 액터 (actor) 스타일의 서비스를 작성할 수 있습니다. 일관성 모델 (consistency model), 스레딩 모델 (threading model) 및 메시지 전달 패턴 (message delivery patterns)을 자유롭게 선택할 수 있습니다.

Dapr는 Kubernetes에서 네이티브로 실행되거나, 로컬 머신의 셀프 호스팅 (self-hosted) 바이너리, IoT 장치, 또는 클라우드나 온프레미스 (on-premises)의 모든 시스템에 주입할 수 있는 컨테이너 형태로 실행됩니다.

Dapr는 Redis와 같은 플러그형 컴포넌트 상태 저장소 (state stores) 및 메시지 버스 (message buses)를 사용하며, gRPC를 활용하여 gRPC를 이용한 직접적인 dapr-to-dapr 통신과 전달 보장 및 최소 한 번 전달 (at-least-once) 의미론을 가진 비동기 발행-구독 (async Pub-Sub)을 포함한 광범위한 통신 방법을 제공합니다.

고성능, 확장성 및 신뢰성을 갖춘 분산 애플리케이션 (distributed application)을 작성하는 것은 어렵습니다. Dapr는 검증된 패턴과 관행을 제공합니다. Dapr는 이벤트 드리븐 (event-driven) 및 액터 (actors) 의미론을 단순하고 일관된 프로그래밍 모델로 통합합니다. 프레임워크 종속 (framework lock-in) 없이 모든 프로그래밍 언어를 지원합니다. 사용자는 스레딩 (threading), 동시성 제어 (concurrency control), 파티셔닝 (partitioning) 및 스케일링 (scaling)과 같은 저수준 프리미티브 (low-level primitives)에 노출되지 않습니다. 대신, 선택한 익숙한 웹 프레임워크를 사용하여 단순한 웹 서버를 구현함으로써 코드를 작성할 수 있습니다.

Dapr는 스레딩 및 상태 일관성 모델 측면에서 유연합니다. 원한다면 멀티스레딩 (multi-threading)을 활용할 수 있으며, 다양한 일관성 모델 중에서 선택할 수 있습니다. 이러한 유연성 덕분에 인위적인 제약 없이 고급 시나리오를 구현할 수 있습니다. Dapr는 코드를 다시 작성할 필요 없이 플랫폼과 하부 구현 사이를 원활하게 전환할 수 있다는 점에서 독보적입니다.

  • 플러그형 제공자(pluggable providers)와 최소 한 번 전달(at-least-once) 의미론을 갖춘 이벤트 기반 Pub-Sub (발행-구독) 시스템
  • 플러그형 제공자를 갖춘 입력 및 출력 바인딩 (bindings)
  • 플러그형 데이터 저장소를 갖춘 상태 관리 (state management)
  • 일관된 서비스 간 발견 (service-to-service discovery) 및 호출 (invocation)
  • 선택적 상태 저장 모델 (Opt-in stateful models): 강한/최종 일관성 (Strong/Eventual consistency), 선행 쓰기/후행 쓰기 승리 (First-write/Last-write wins)
  • 크로스 플랫폼 가상 액터 (Cross platform virtual actors)
  • 보안 키 볼트 (key vaults)에서 비밀을 가져오기 위한 비밀 관리 (secret management)
  • 속도 제한 (Rate limiting)
  • 내장된 관측성 (Observability) 지원
  • 전용 오퍼레이터 (Operator) 및 CRD를 사용하여 Kubernetes에서 네이티브하게 실행
  • HTTP 및 gRPC를 통해 모든 프로그래밍 언어 지원
  • Azure, AWS, GCP의 멀티 클라우드 오픈 컴포넌트 (bindings, pub-sub, state) 지원
  • 프로세스 또는 컨테이너화된 형태로 어디에서나 실행 가능
  • 경량화 (58MB 바이너리, 4MB 물리 메모리)
  • 사이드카 (sidecar)로 실행 - 특수한 SDK나 라이브러리의 필요성을 제거
  • 전용 CLI - 쉬운 디버깅을 통한 개발자 친화적 경험 제공
  • Java, .NET Core, Go, Javascript, Python, Rust 및 C++용 클라이언트

문서에 있는 시작하기 (Getting Started) 가이드를 확인하세요.

  • Dapr 시작을 도울 수 있는 코드 예제는 quickstarts 리포지토리를 참조하세요.
  • Dapr samples 리포지토리에서 추가 샘플을 탐색하세요.

여러분의 기여와 제안을 환영합니다! 기여하는 가장 쉬운 방법 중 하나는 메일링 리스트에서의 토론, IM 채팅 또는 격주로 열리는 커뮤니티 콜 (community calls)에 참여하는 것입니다. 커뮤니티 참여, 개발자 및 기여 가이드라인 등에 대한 자세한 내용은 Dapr 커뮤니티 리포지토리로 이동하여 확인하세요.

궁금한 점이 있다면 언제든지 문의해 주세요. 최대한 빨리 답변해 드리겠습니다!

플랫폼링크
💬 Discord (권장)
...

저희는 새로운 기능을 소개하고, 다가오는 마일스톤을 검토하며, Q&A를 진행하기 위해 2주마다 커뮤니티 콜을 개최합니다. 모두를 환영합니다!

📞 향후 일정과 회의 링크는 Upcoming Dapr Community Calls를 방문하여 확인하세요.

📺 이전 커뮤니티 콜 라이브 스트리밍은 https://www.youtube.com/@DaprDev/streams 를 방문하여 확인하세요.

참고하고 배울 수 있는 다양한 키노트 (keynotes), 팟캐스트 (podcasts), 그리고 발표 자료 (presentations)가 준비되어 있습니다.

📺 이전 발표 및 슬라이드 덱 (slide decks)은 https://docs.dapr.io/contributing/presentations/ 에서 확인하거나, 저희 YouTube 채널 https://www.youtube.com/@DaprDev/videos 를 방문해 주세요.

빌드 및 개발을 시작하려면 개발 가이드 (Development Guide)를 확인하세요.

RepoDescription
Dapr현재 계신 메인 저장소 (main repository)입니다. Dapr 런타임 (runtime) 코드와 개요 문서 (overview documentation)를 포함하고 있습니다.
...

저희의 Dapr 커뮤니티 행동 강령 (Community Code of Conduct)을 참조해 주세요.

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub Trending Go (weekly)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0