스프링 부트 개발자를 위한 오픈소스 ‘Dapr’
요즘IT와 번역가 Jane Heo가 토마스 비타레(Thomas Vitale)와 마우리시오 살라티노(Mauricio Salatino)의 글 <Open-Source Dapr for Spring Boot Developers>을 번역했습니다. 비타레는 시스터매틱(Systematic)에서 소프트웨어 아키텍트로 활동 중이며, 살라티노는 다이아그리드(Diagrid)에서 OSS 소프트웨어 엔지니어로 근무하고 있습니다.
번역자는 필자의 허락을 받았으며, 각주(*표시)는 ‘번역자주’입니다.
스프링 부트와 대퍼(Dapr)를 사용하면 복잡한 쿠버네티스(Kubernetes) 클러스터 없이도 대퍼 기반의 애플리케이션을 로컬에서 간편하게 실행, 테스트, 디버깅할 수 있습니다.
*스프링 부트: 웹사이트나 모바일 앱 등 소프트웨어를 효율적으로 개발하는 프레임워크
*대퍼: 대규모 소프트웨어를 여러 작은 서비스로 나누어 쉽게 개발하고 운영할 수 있도록 돕는 오픈 소스 도구
*쿠버네티스: 애플리케이션을 실행하고 관리하는 자동화 도구
개발자들은 다양한 도구와 클라우드 서비스 평가 및 사용에 직면합니다. 이 글에서는 대퍼가 스프링 부트 개발자들이 강력하고 환경에 독립적인 애플리케이션을 구축하는 데 어떻게 기여할 수 있는지 설명합니다.
개발자들이 있는 곳에서 출발하기
스페인 바르셀로나의 스프링 I/O 컨퍼런스에서 스프링 커뮤니티와 만났습니다. 이 컨퍼런스는 스프링 프레임워크의 최신 기능 및 향후 계획을 논의하는 자리입니다.
쿠버네티스, 컨테이너 및 스프링 부트 애플리케이션 배포에 관한 발표가 많았는데, 이러한 도구들은 종종 복잡한 구성이나 원격 환경을 요구합니다.
대퍼는 다양한 프로그래밍 언어에 일관된 API를 제공합니다. 기본적인 빌딩 블록은 상태 관리, 발행/구독, 서비스 호출 등을 포함합니다.
*API: 시스템 간 통신 및 기능 호출을 위한 규칙, 프로토콜 및 도구 모음

이번 글은 대퍼와 스프링 부트의 통합이 어떻게 개발 과정을 단순화하는지를 중점적으로 다룹니다.
오늘날 쿠버네티스와 클라우드 네이티브 런타임
쿠버네티스 클러스터에 대퍼를 설치하는 것이 최선의 방법입니다. 자바 애플리케이션에서 쿠버네티스와 컨테이너 런타임이 가장 흔히 사용되는 실행 환경입니다.
스프링 부트 개발자는 로컬에서 애플리케이션을 코딩하고 실행하고 디버깅하고 싶어할 것입니다. 대퍼는 테스트컨테이너팀과 협력하여 쿠버네티스 없이 로컬에서 대퍼를 사용할 수 있는 환경을 제공합니다.

스프링 부트 개발자는 대퍼 API를 사용하여 쿠버네티스 클러스터를 사용하지 않고도 작업을 수행할 수 있습니다.

이 테스트는 대퍼 런타임을 설정하는 방식을 보여줍니다. 이를 통해 애플리케이션 코드는 대퍼 API를 사용하여 상태를 저장하고 조회하며 비동기 메시지를 처리할 수 있습니다.

스프링 부트 애플리케이션은 Redis, PostgreSQL, RabbitMQ 등의 종속성을 추가해야 합니다.
대퍼 API를 사용하면 의존성이 줄어들고 애플리케이션의 크기가 작아집니다. 또한 클라우드 환경에서도 실행할 수 있습니다.
내일: 통합된 크로스 런타임 경험
스프링 데이터와 메시징 접근 방식을 수용하여 스프링 부트와 완벽히 통합된 대퍼 경험을 제공할 수 있습니다. 이를 통해 개발자는 로컬, 쿠버네티스, 클라우드 제공업체 등 다양한 환경에서 애플리케이션을 설계할 수 있습니다.
대퍼 API는 개발자가 인프라와 상호작용할 시간을 절약할 수 있도록 도와줍니다. 또한 클라우드 네이티브 환경에서 포터빌리티를 가능하게 합니다.
장점과 트레이드오프
대퍼는 분산 애플리케이션에서 공통된 작업을 수행하는 간결한 API를 제공합니다. 이를 통해 복원력, 가시성, 보안 문제를 해결할 수 있습니다.
장점
- 공통된 동작에 접근하여 애플리케이션 문제를 처리
- 기존 스프링 부트 프로그래밍 모델 사용
- 대퍼로 로컬에서 구축, 테스트 가능
- 클라우드 네이티브 환경에서 포터빌리티 지원
트레이드오프
- 대퍼가 항상 적합하지 않을 수 있음
- 운영/플랫폼 팀의 인프라에 의존
- 추상화로 인해 문제 해결이 어려울 수 있음
장점과 트레이드오프는 특정 상황 및 배경에 따라 달라질 수 있습니다.
요약 및 다음 단계
Dapr Statestore와 PubSub을 살펴본 것은 시작에 불과하며, 더 고급 대퍼 기능을 추가하여 강력한 분산 애플리케이션을 구축할 수 있습니다.
우리는 스프링 부트와 대퍼 통합 코드를 Dapr Java SDK에 병합할 예정입니다. 도움이 필요하다면 언제든지 연락주세요.
<원문>
Open-Source Dapr for Spring Boot Developers
해당 기사는 GPT를 이용하여 요약한 내용입니다.