2020.11.11

칼럼ㅣ‘스타게이트’, 데이터베이스 지형 뒤흔들 수 있을까? 

Matt Asay | InfoWorld
데이터용 오픈소스 API 프레임워크 ‘스타게이트(Stargate)’는 개발자가 원하는 모든 형태의 백엔드 데이터로 작업할 수 있도록 하겠다고 말한다. 

기업에서 후원하는 많은 오픈소스 프로젝트와 마찬가지로, ‘스타게이트’ 역시 그 뿌리(roots)를 넘어설 때 가장 흥미로워진다. 

미국의 데이터 관리 업체 데이터스택스(DataStax)는 ‘우리가 하고자 하는 작업에 따라 서로 다른 데이터베이스와 API를 사용하는 데 지쳐서’ 스타게이트를 오픈소스화했다고 밝혔다. 데이터스택스가 ‘데이터를 위한 오픈소스 API 프레임워크’라고 부르는 이 프로젝트의 목표는 ‘다양한 워크로드에 많은 API를 지원할 수 있는 프레임워크’를 제공하는 것이다. 
 
ⓒGetty Images

그런데, 스타게이트는 데이터스택스가 사용하는 ‘아파치 카산드라(Apache Cassandra)’를 기반으로 한다. 애널리스트 토니 베이어는 스타게이트를 두고 “마침내 아파치 카산드라를 멀티모델 데이터베이스로 전환할 수 있는 오픈소스 API 프레임워크”라고 말했다. 틀린 말은 아니다. 하지만 이 때문에 스타게이트가 흥미로운 건 아니다. 

바로 무엇이냐 하면, ‘스타게이트(편집자 주: 美 유명 SF 시리즈에서 등장하는 초공간 이동 장치)’가 제공하는 것을 달성하고자 커뮤니티가 성장한다면 흥미로워진다. 설명하자면, 멀리 떨어진 곳으로 즉각 이동할 수 있도록 하는 이른바 ‘웜홀 포털 장치(Einstein-Rosen bridge portal device)’로 기능하는 경우다. 

즉 데이터스택스의 최고데이터책임자(CDO) 데니스 고스넬이 밝힌 바와 같다. 그는 "개발자가 API를 통해 원하는 형태의 데이터로 작업할 수 있도록 어떤 데이터베이스이든 플러거블(pluggable) 백엔드가 있는 멀티모델 데이터베이스로 바꿔주는 데이터 게이트웨이다"라고 설명했다. 

동일한 데이터베이스 언어 사용하기
몇 날 며칠을 밤새워 데이터베이스만 생각하지 않는다고 가정해보자. 스타게이트가 어떤 의미일까? 고스넬은 다음과 같이 말했다.
 

“새 앱을 개발한다고 치자. 데이터베이스가 곳곳에 널려 있다. 이를테면 SQL을 필요로 하는 웹 앱에 관한 요구사항이 있다. 이들은 도큐먼트/JSON이 필요하거나, 아니면 그래프QL(GraphQL)이 필요할 수 있다. 이러한 모든 요건을 백엔드 엔지니어링 팀에서 얻고, 프론트엔드 엔지니어링 팀에서도 많은 요건을 받는다. 스타게이트는 이런 대화 사이에 위치하는 API 계층이며, 하나의 기존 기술에서 두 가지 모두를 제공할 수 있다.”


데이터스택스는 카산드라 코디네이터 코드를 오픈소스화해 이를 달성하고 있다. 데이터스택스가 카산드라로 시작한 데는 분명한 이유가 있었다. 이 업체는 데이터베이스를 잘 알고 있으며, 카산드라는 분산형 데이터 요청을 처리하는 데 최적화된 옵션이기 때문이다. 

고스넬에 따르면 스타게이트의 핵심은 코디네이터 코드다. 고객의 API와 백엔드 간 로직에서 가장 어려운 부분은 분산형 요청 코디네이션이다. 예를 들면 적절한 로드 밸런싱을 확보하고, 데이터베이스 요청을 적절한 위치로 전달하는 등이다. 카산드라의 코디네이터 코드가 잘하는 게 바로 이것이다. 

그는 “더 많은 개발자가 우리 커뮤니티에 참여해 스타게이트에서 필요한 기능들의 우선순위를 결정할 수 있도록 돕길 바란다”라고 언급했다. 

이를 두고 데이터스택스에만 도움되는 이야기라고 생각할 수도 있겠지만, 동시에 다른 업체와 데이터베이스에도 유용할 수 있는 가능성이 있다. 그리고 이는 스타게이트가 한 업체의 그저 흥미로운 프로젝트에서 훨씬 더 주목할 만한 프로젝트로 발전할 수 있는 지점이기도 하다. 

실제 커뮤니티에 개방하기
‘쿠버네티스(Kubernetes)’를 예로 들어보자. 쿠버네티스의 전신 보그(Borg)는 구글 내부에서 개발해 사용하던 당시에는 미적지근한 기술이었다. 그리고 거의 구글 직원들만 기여했던 오픈소스 프로젝트일 때까지도 여전히 미적지근했다. 

현재, 쿠버네티스는 업계를 지배하는 오픈소스 프로젝트가 됐다. 구글이 이를 개방하기 위해 외부 기여자들을 모집하고 관심 있는 기여자들의 참여를 장려하는 등 각고의 노력을 기울였기 때문이다. 

리프트(Lyft)의 엔지니어 맷 클라인이 개발한 오픈소스 엣지 및 서비스 프록시인 엔보이(Envoy)도 그러하다. 클라인은 최근 한 인터뷰에서 “엔보이를 성공적으로 오픈소스화하는 데 필요한 노력과 비교하면 코딩은 상대적으로 쉬운 일이었다”라고 말했다. 

도대체 어떤 종류의 노력이었을까? 이어서 그는 “리더십, 홍보, 마케팅, 문서화 작업 등에 힘을 쏟아야 했고, 혼자서 이 일들을 하느라 힘들어 죽을 뻔했다”라고 덧붙였다. 

이런 관점에서 본다면, 스타게이트는 아직 미적지근하다. 카산드라를 ‘열 지향 데이터베이스(columnar database)’이라는 뿌리에서 벗어나게끔 하는 것은 좋다. 하지만 이것이 스타게이트의 전부라면? 흥미롭고 유용하겠지만 엄청나게 중요하진 않다. 특히, 업계 차원에서는 중요하지 않을 것이다. 

이는 몽고DB(MongoDB)를 지원하도록 카산드라의 기능을 확장하므로 데이터스택스에 중요한 역할을 할 것이다. 예를 들어 카산드라를 문서 데이터베이스로 전환하는 것 또한 그렇다. 

현재 데이터스택스가 이러한 작업에 열중하고 있다고 고스넬은 전했다. 그는 “스타게이트가 모든 백엔드 데이터 저장소에 플러거블하도록 하는 것은 물론이고, 모든 형태의 데이터를 처리하기 위해 프론트엔드 API를 플러거블하게 하고자 노력하고 있다”라고 설명했다. 고스넬의 말처럼, 이는 상단과 하단에 여러 종류의 블록이 꼽힌 레고(LEGO) 보드와 같다. 

그는 “데이터스택스가 이전의 구글 혹은 클라인처럼 정말 초기일지도 모르지만 우리는 공개적으로 개발을 진행하고 있으며, 사람들이 동참하도록 권유하고 있다”라며, “이를테면 코드를 일반화해 데이터스택스 밖에서도 유용하게 사용할 수 있도록 하고 문서를 개선해 관심 있는 기여자들이 접근할 수 있도록 하고 있다”라고 말했다. 

현재 스타게이트 프로젝트에 기여할 가능성이 있는 사람은 기술적인 전문 백엔드 엔지니어다. 또한 고스넬은 “새로운 REST 기반 API 또는 프론트엔드에서 사용하고 싶은 새로운 액세스 방법을 구축하는 데 관심 있는 소프트웨어 엔지니어도 필요하다”라고 덧붙였다. 

* Matt Asay는 아마존 웹 서비스(AWS)의 Principal이다. 어도비의 개발자 에코시스템 총괄, 몽고DB의 비즈니스 개발, 마케팅, 커뮤니티 부문 부사장을 역임한 바 있다. ciokr@idg.co.kr



2020.11.11

칼럼ㅣ‘스타게이트’, 데이터베이스 지형 뒤흔들 수 있을까? 

Matt Asay | InfoWorld
데이터용 오픈소스 API 프레임워크 ‘스타게이트(Stargate)’는 개발자가 원하는 모든 형태의 백엔드 데이터로 작업할 수 있도록 하겠다고 말한다. 

기업에서 후원하는 많은 오픈소스 프로젝트와 마찬가지로, ‘스타게이트’ 역시 그 뿌리(roots)를 넘어설 때 가장 흥미로워진다. 

미국의 데이터 관리 업체 데이터스택스(DataStax)는 ‘우리가 하고자 하는 작업에 따라 서로 다른 데이터베이스와 API를 사용하는 데 지쳐서’ 스타게이트를 오픈소스화했다고 밝혔다. 데이터스택스가 ‘데이터를 위한 오픈소스 API 프레임워크’라고 부르는 이 프로젝트의 목표는 ‘다양한 워크로드에 많은 API를 지원할 수 있는 프레임워크’를 제공하는 것이다. 
 
ⓒGetty Images

그런데, 스타게이트는 데이터스택스가 사용하는 ‘아파치 카산드라(Apache Cassandra)’를 기반으로 한다. 애널리스트 토니 베이어는 스타게이트를 두고 “마침내 아파치 카산드라를 멀티모델 데이터베이스로 전환할 수 있는 오픈소스 API 프레임워크”라고 말했다. 틀린 말은 아니다. 하지만 이 때문에 스타게이트가 흥미로운 건 아니다. 

바로 무엇이냐 하면, ‘스타게이트(편집자 주: 美 유명 SF 시리즈에서 등장하는 초공간 이동 장치)’가 제공하는 것을 달성하고자 커뮤니티가 성장한다면 흥미로워진다. 설명하자면, 멀리 떨어진 곳으로 즉각 이동할 수 있도록 하는 이른바 ‘웜홀 포털 장치(Einstein-Rosen bridge portal device)’로 기능하는 경우다. 

즉 데이터스택스의 최고데이터책임자(CDO) 데니스 고스넬이 밝힌 바와 같다. 그는 "개발자가 API를 통해 원하는 형태의 데이터로 작업할 수 있도록 어떤 데이터베이스이든 플러거블(pluggable) 백엔드가 있는 멀티모델 데이터베이스로 바꿔주는 데이터 게이트웨이다"라고 설명했다. 

동일한 데이터베이스 언어 사용하기
몇 날 며칠을 밤새워 데이터베이스만 생각하지 않는다고 가정해보자. 스타게이트가 어떤 의미일까? 고스넬은 다음과 같이 말했다.
 

“새 앱을 개발한다고 치자. 데이터베이스가 곳곳에 널려 있다. 이를테면 SQL을 필요로 하는 웹 앱에 관한 요구사항이 있다. 이들은 도큐먼트/JSON이 필요하거나, 아니면 그래프QL(GraphQL)이 필요할 수 있다. 이러한 모든 요건을 백엔드 엔지니어링 팀에서 얻고, 프론트엔드 엔지니어링 팀에서도 많은 요건을 받는다. 스타게이트는 이런 대화 사이에 위치하는 API 계층이며, 하나의 기존 기술에서 두 가지 모두를 제공할 수 있다.”


데이터스택스는 카산드라 코디네이터 코드를 오픈소스화해 이를 달성하고 있다. 데이터스택스가 카산드라로 시작한 데는 분명한 이유가 있었다. 이 업체는 데이터베이스를 잘 알고 있으며, 카산드라는 분산형 데이터 요청을 처리하는 데 최적화된 옵션이기 때문이다. 

고스넬에 따르면 스타게이트의 핵심은 코디네이터 코드다. 고객의 API와 백엔드 간 로직에서 가장 어려운 부분은 분산형 요청 코디네이션이다. 예를 들면 적절한 로드 밸런싱을 확보하고, 데이터베이스 요청을 적절한 위치로 전달하는 등이다. 카산드라의 코디네이터 코드가 잘하는 게 바로 이것이다. 

그는 “더 많은 개발자가 우리 커뮤니티에 참여해 스타게이트에서 필요한 기능들의 우선순위를 결정할 수 있도록 돕길 바란다”라고 언급했다. 

이를 두고 데이터스택스에만 도움되는 이야기라고 생각할 수도 있겠지만, 동시에 다른 업체와 데이터베이스에도 유용할 수 있는 가능성이 있다. 그리고 이는 스타게이트가 한 업체의 그저 흥미로운 프로젝트에서 훨씬 더 주목할 만한 프로젝트로 발전할 수 있는 지점이기도 하다. 

실제 커뮤니티에 개방하기
‘쿠버네티스(Kubernetes)’를 예로 들어보자. 쿠버네티스의 전신 보그(Borg)는 구글 내부에서 개발해 사용하던 당시에는 미적지근한 기술이었다. 그리고 거의 구글 직원들만 기여했던 오픈소스 프로젝트일 때까지도 여전히 미적지근했다. 

현재, 쿠버네티스는 업계를 지배하는 오픈소스 프로젝트가 됐다. 구글이 이를 개방하기 위해 외부 기여자들을 모집하고 관심 있는 기여자들의 참여를 장려하는 등 각고의 노력을 기울였기 때문이다. 

리프트(Lyft)의 엔지니어 맷 클라인이 개발한 오픈소스 엣지 및 서비스 프록시인 엔보이(Envoy)도 그러하다. 클라인은 최근 한 인터뷰에서 “엔보이를 성공적으로 오픈소스화하는 데 필요한 노력과 비교하면 코딩은 상대적으로 쉬운 일이었다”라고 말했다. 

도대체 어떤 종류의 노력이었을까? 이어서 그는 “리더십, 홍보, 마케팅, 문서화 작업 등에 힘을 쏟아야 했고, 혼자서 이 일들을 하느라 힘들어 죽을 뻔했다”라고 덧붙였다. 

이런 관점에서 본다면, 스타게이트는 아직 미적지근하다. 카산드라를 ‘열 지향 데이터베이스(columnar database)’이라는 뿌리에서 벗어나게끔 하는 것은 좋다. 하지만 이것이 스타게이트의 전부라면? 흥미롭고 유용하겠지만 엄청나게 중요하진 않다. 특히, 업계 차원에서는 중요하지 않을 것이다. 

이는 몽고DB(MongoDB)를 지원하도록 카산드라의 기능을 확장하므로 데이터스택스에 중요한 역할을 할 것이다. 예를 들어 카산드라를 문서 데이터베이스로 전환하는 것 또한 그렇다. 

현재 데이터스택스가 이러한 작업에 열중하고 있다고 고스넬은 전했다. 그는 “스타게이트가 모든 백엔드 데이터 저장소에 플러거블하도록 하는 것은 물론이고, 모든 형태의 데이터를 처리하기 위해 프론트엔드 API를 플러거블하게 하고자 노력하고 있다”라고 설명했다. 고스넬의 말처럼, 이는 상단과 하단에 여러 종류의 블록이 꼽힌 레고(LEGO) 보드와 같다. 

그는 “데이터스택스가 이전의 구글 혹은 클라인처럼 정말 초기일지도 모르지만 우리는 공개적으로 개발을 진행하고 있으며, 사람들이 동참하도록 권유하고 있다”라며, “이를테면 코드를 일반화해 데이터스택스 밖에서도 유용하게 사용할 수 있도록 하고 문서를 개선해 관심 있는 기여자들이 접근할 수 있도록 하고 있다”라고 말했다. 

현재 스타게이트 프로젝트에 기여할 가능성이 있는 사람은 기술적인 전문 백엔드 엔지니어다. 또한 고스넬은 “새로운 REST 기반 API 또는 프론트엔드에서 사용하고 싶은 새로운 액세스 방법을 구축하는 데 관심 있는 소프트웨어 엔지니어도 필요하다”라고 덧붙였다. 

* Matt Asay는 아마존 웹 서비스(AWS)의 Principal이다. 어도비의 개발자 에코시스템 총괄, 몽고DB의 비즈니스 개발, 마케팅, 커뮤니티 부문 부사장을 역임한 바 있다. ciokr@idg.co.kr

X