본문 바로가기

IT Insight

알리바바의 인기 오픈소스 총정리

지난 시간에는 중국 오픈소스의 강자로 떠오르고 있는 알리바바와 어떤 오픈소스 기술을 개발하고 있는지, 그리고 그 개발한 기술을 공개하는 이유는 무엇인지 등에 대해 알아봤습니다. 이번 시간에는 알리바바의 인기 오픈소스에 대해 알아보겠습니다.


알리바바의 주요 오픈소스 기술은 크게 4가지로 나눌 수 있습니다. 먼저 분산 시스템 분야에 있는 오픈소스 기술은 다음과 같습니다.



 분산 시스템


● 더보우(Dubbo)

더보우는 고성능 RPC(Remote Procedure Call) 프레임워크입니다. RPC는 원격제어를 위한 별도의 코드 없이도 다른 주소 공간에서 함수나 프로시저를 실행합니다. 더보우를 이용하면 단일구조 애플리케이션을 확장성 있는 분산 아키텍쳐로 쉽게 바꿀 수 있게 지원한다고 합니다.


알리바바 외에도 중국의 대표 종합 쇼핑몰인 징동(Jingdong)닷컴, 중국 최대의 인터넷 서점 당당(DangDang)닷컴, 항공권, 호텔 비교 사이트인 취날(Qunar)닷컴, 해외직구 전문 사이트 카올라(Kaola)닷컴 등이 더보우 프레임워크를 도입했다고 합니다. 개발은 알리바바가 주도적으로 하고 있지만, 아파치 소프트웨어 재단의 인큐베이팅을 받고 있기도 합니다.



● 로켓MQ(RocketMQ)

l 로켓MQ 구조

(출처: https://www.alibabacloud.com/blog/12-open-source-projects-by-alibaba--part-1_582638)


로켓MQ(RocketMQ)는 분산 메시징 및 스트리밍 플랫폼입니다. 지연속도가 낮고, 성능, 안전성 등을 특히 고려한 기술인데요. 비슷한 경쟁기술로는 액티브MQ(ActiveMQ), 카프카(Kafka)가 있습니다. 로켓MQ는 특히, 이커머스 분야에 최적화돼있다고 하는데요. 개발 초기에 알리페이, 타오바오에 이 기술이 적용됐고, 현재는 알리바바 클라우드 시스템 내 모든 메시지 전송 분야에 활용하고 있습니다.


알리바바는 2016년에 로켓MQ를 아파치 소프트웨어 재단에 기부하고 재단과 함께 기술을 관리를 받고 있습니다. 알리바바 외에도 화웨이, 차이나 텔레콤, 디디글로벌 같은 중국 내 주요 IT 기업이 로켓MQ를 도입하고 있습니다.



● 드루이드(Druid)

드루이드는 오픈소스 데이터베이스 커넥션 풀입니다. 알리바바는 데이터베이스와 커넥션이 맺고 있는 객체를 관리하기 위해 드루이드를 이용하고 있습니다. 알리바바는 ‘드루이드는 광군제 같은 특별한 상황에서 여러 도움을 준다’라고 설명하기도 했는데요. 실시간 사용자 인터렉션을 분석할 때도 드루이드를 주로 이용하고 있다고 합니다.


드루이드 자체는 알리바바가 직접 만든 건 아닙니다. 원래는 메타마켓라는 데이터 분석 업체가 개발한 기술이지만 이후 페이팔, 넷플릭스, 시스코 같은 대형 기업이 활용했으며 알리바바도 이를 적극적으로 사용하고 있습니다. 알리바바는 드루이드를 사용하면서 핵심 기여자로 활동하고 있습니다.



● 패스트제이슨(Fastjson)

l 패스트제이슨 로고 (출처: https://github.com/alibaba/fastjson)


패스트제이슨(Fastjson)은 자바 라이브러리입니다. 주로 자바 객체를 제이슨 파일 형태 혹은 그 반대로 바꿔주는 역할을 합니다. 알리바바는 거의 모든 자바 애플리케이션에서 패스트제이슨을 쓰고 있다고 하는데요. 서버단과 안드로이드 클라이언트단에서 성능을 높일 수 있게 구현됐다고 합니다. 기술명에서 표현했다시피 알리바바는 ‘가장 빠른 JSON 라이브러리’라고 소개하고 있습니다.



● 압사라캐쉬(ApsaraCache)

압사라캐쉬는 레디스(Redis)라는 DBMS)를 포크(깃허브 내에서 프로젝트를 통째로 복사하는 기능) 해서 개발했습니다. 레디스는 ‘키-값’ 구조의 비정형 데이터를 저장하고 관리하는 오픈소스 데이터베이스 관리시스템(DBMS)입니다. 압사라캐쉬는 이 레디스를 클라우드 환경에 맞게 개선하고 성능을 높인 것이 특징입니다. 자회사인 안트 파이낸스뿐만 아니라 CCTV, 롱투게임, 지도 어플인 에이맵닷컴(Amap.com) 등이 여러 타 기업도 압사라캐쉬를 도입했다고 하는데요.


레디스를 발명한 살바토레 산 필리포 개발자는 ‘압사라캐쉬가 오픈소스화되면서 전 세계 레디스 전문가의 관심을 끌 수 있었다’라며 ‘더불어 레디스 제품 안정성과 가용성도 높아졌다’라며 알리바바의 역할을 높이 평가하기도 했는데요. 향후 레디스 기업용 기술 방향을 함께 개발하고 싶다는 희망을 내비치기도 했습니다.



● 파우치(Pouch)

l 파우치 구조 (출처 : https://www.alibabacloud.com/ko)


클라우드 업계에서 컨테이너는 큰 대세가 되어가고 있습니다. 알리바바도 자체 컨테이너 기술을 개발했는데, 그것이 바로 ‘파우치’입니다. 기존 컨테이너 기술보다 커널의 보안성을 높이면서 격리 수준도 강화했다고 합니다. 조만간 ‘알리바바 커널’이라는 내부 기술도 오픈소스화면서 리눅스 커널 커뮤니티에 더 기여할 계획을 가지고 있다고 합니다.



● 드래곤플라이(Dragonfly)

드래곤플라이는 P2P 기반 파일 분산 시스템입니다. 파우치 내에서 도커 이미지 파일을 관리하기 위해 주로 사용된다고 하는데요. 파일 다운로드가 실패한 지점에서 계속 다운로드가 가능하게 해주고 도커 미러 다운로드 속도를 더 높인 것이 특징입니다.


 프론트 웹


두 번째 프론트 웹 기술을 살펴보겠습니다. 프론트 웹 기술은 자바스크립트에 집중되어있는데요. 리액트JS, 노드JS, 뷰JS, 앵귤러JS 와 연관된 기술들이 특히 눈에 띕니다.


● 안트 디자인

l 안트 디자인 모바일 페이지 (출처: https://mobile.ant.design/)


웹 개발을 하시는 분라면 ‘머티리얼 디자인(Material Design)’이라는 것을 들어보셨을 겁니다. 구글의 디자인 메뉴얼인데요. 구글은 오래전부터 머티리얼 디자인 원칙과 구축 과정을 마치 오픈소스처럼 공개하고 있습니다. 따라서 누구나 구글과 비슷한 모양의 웹사이트, 모바일 앱을 만들 수 있는데요.


이와 유사한 것이 안트 디자인이라는 것입니다. 안트 파이넨셜(Ant Financial)이 추구하는 UX 규칙입니다. 안트 파이넨셜은 알리바바 그룹의 자회사로 핀테크 기술을 개발하며, 특히 알리페이(Alipay) 사업을 주도하고 있습니다.


안트 디자인은 크게 네 가지로 디자인 가이드라인 정보, 무료 디자인 리소스, 무료 컴포넌트, 프로토타입 툴로 나눌 수 있습니다. 가이드라인에서 어떤 색깔을 조합해야 할지, 여백이나 글자 크기는 어느 정도가 좋은지를 알려줍니다. 무료 디자인 리소스에선 스케치 템플릿 파일이나 소스코드를 다운받을 수 있게 지원합니다. 데이터 시각화나 애니메이션 관련 데모나 코드도 모두 공개했습니다.


가장 인상적인 것은 모던 자바스크립트에 최적화된 컴포넌트입니다. 여기에는 리액트JS나 뷰JS, 엥귤러JS가 포함합니다. 안트 UX라는 프로토타입 도구도 따로 지원해서 디자인 흐름을 쉽게 포함할 수도 있습니다.


알리바바 외에도 텐센트, 바이두, 디디추싱 같은 기업이 안트 디자인 리액트 UI 컴포넌트를 도입한 상태입니다. 특히 리액트 커뮤니티에서 가장 반응이 좋다고 합니다. 안트 디자인을 쉽게 적용할 수 있는 별도의 솔루션도 출시할 예정이라고 합니다.



● 에그JS

l 에그JS 구조 (출처: https://www.alibabacloud.com/blog/12-open-source-projects-by-alibaba--part-2_583624)


에그JS는 대규모 엔터프라이즈 애플리케이션을 위한 웹 프레임워크입니다. 알리바바는 2011년부터 노드JS를 검토했다고 하는데요. 그때만 해도 노드JS를 바로 내부 서비스에 바로 도입하기 힘들었다고 합니다. 그래서 입맛에 맞게 보충한 기술이 에그JS입니다. 에그JS는 코아(Koa)와 노드JS 위에서 돌아가는 형태입니다. 비슷한 경쟁기술에는 세일스JS나 익스프레스JS가 있습니다.


알리바바는 ‘다른 상위 레벨 프레임워크와 달리, 에그는 미들 레이어로 마이크로커널, 플러그인, 프레임워크 맞춤화 서비스를 통합된 세트로 제공한다’라고 소개하고 있습니다. 알리바바는 에그 기술을 활용한 클라우스 상품도 적극적으로 홍보할 계획이라고 합니다.



 모바일


세 번째 모바일 기술입니다. 주로 편하게 모바일 개발을 하기 위한 인프라 기술이 포함됩니다.


● 아틀라스(Atlas)

아틀라스는 타오바오 모바일 팀이 개발한 기술입니다. 타오바오는 알리바바 그룹이 운영하는 인터넷 오픈마켓 쇼핑몰로 한국의 지마켓, 옥션과 비슷한 서비스입니다. 중국의 많은 사용자를 관리하는 타오바오 팀은 전체 개발 속도를 빠르게 하면서 서비스 운영 중에 오류 수정이 가능한 방법을 찾았다고 하는데요. 이를 위해 컨테이너 개념을 빌려 안드로이드에 적용하고, 클라이언트단을 격리할 수 있는 ‘아틀라스’를 개발했다고 합니다. 이를 통해 개발자들이 코딩이나 디버깅을 보다 독립적인 공간에서 할 수 있게 되었고, 운영 및 유지보수 속도를 보다 올릴 수 있었다고 합니다.


아틀라스는 오픈소스로 공개한지 아직 1년여밖에 되지 않았기 때문에 다른 기술보다는 문서화나 데모가 부족한 상태입니다. 대신 커뮤니티 채널을 통해 적극적으로 외부 피드백을 받고 개선하고 있다고 하네요. 여기에 아예 ‘이마스 포 아틀라스(Emas for Atlas)’라는 기업용 버전도 따로 공개할 예정이라고 하는데요. 이 제품으로 서버단에서 기술을 관리하는데 도움을 줄 예정이라고 합니다.



● 알리바바 자바 개발 가이드

l 알리바바 자바 개발 가이드 사용한 예시. ‘상수명을 대문자로 사용하라’고 제안하는 창이 뜬다. 

(출처: https://github.com/alibaba/p3c/tree/master/idea-plugin)


프로그래밍을 팀 단위로 하다 보면 개발자마다 조금씩 다른 방식으로 코드를 작성하게 됩니다. 어떤 개발자는 띄어쓰기 대신 탭을 선호하기도 하고요. 변수 선언을 길게 쓰는 것보다는 짧은 약자로 쓰는 식입니다. 이런 경우 처음에는 문제는 없을지라도 시간이 지나면 코드를 알아보기 힘들어집니다. 자연스레 유지보수도 어려워지죠. 그래서 기업들은 코드 작성 규칙을 미리 만들고 문서화하기도 합니다.


알리바바 그룹도 비슷하게 내부 자바 개발자가 써야 하는 규칙을 문서화하고 이를 외부에 공개하고 있습니다. 가이드라인에는 문법적인 요소 외에도 예외처리, 로그, 마이SQL 문법, 보안 체크 요소, 프로젝트 단위 체크 요소 총 5가지로 나누어 설명하고 있습니다.


알리바바는 공식 홈페이지를 통해 ‘DB 테이블 구조나 인덱스를 잘못 작성하면 소프트웨어 전체 구조 또는 성능에 나쁜 영향을 줄 수 있다’라며 ‘또한 코드 구조가 안 좋으면 유지보수 하기 어렵고, 보안을 고려하지 않은 코드는 외부 공격을 받을 수 있다’라며 이번 프로젝트를 시작하게 된 계기를 밝혔습니다.


또한, 가이드라인을 쉽게 확인할 수 있게 플러그인을 만들고, 오픈소스화하기도 했습니다. 이 플러그인은 이클립스와 인텔리J 두가지 버전이 있고, 중국어와 영어를 둘 다 지원합니다. 플러그인은 실시간으로 잘못된 코드를 감지하고 고쳐준다고 합니다.



● 오픈메시징(OpenMessaging)

l 오픈메시징 구조 

(출처: https://www.alibabacloud.com/blog/12-open-source-projects-by-alibaba--part-2_583624)


오픈메시징은 알리바바, 야후, 디디추싱, 스트림리오가 공동으로 운영하는 프로젝트입니다. 리눅스재단도 함께 이를 관리하고 있습니다. 이 네 기업은 특정 기업 기술을 써야 하는 환경을 피하고자 직접 자체 메시징 기술을 만들고 있다고 합니다. 따라서 오픈메시징은 다양한 미들웨어, 언어, 플랫폼을 지원하고 클라우드 환경에 최적화하는데 초점이 맞춰져 있습니다.


알리바바는 ‘클라우드 시대에서 메시지 전달 기술은 데이터 기반 아키텍처에서 아주 중요한 역할을 한다’라며 ‘기존 스키마는 클라우드 환경에 맞지 않아 이와 연관된 빅데이터, 스트림 컴퓨팅, 사물인터넷 분야에 효과적으로 기술 지원하기 힘들다’고 설명하기도 했습니다.



 사물인터넷


알리OS는 이전에 윤OS, 알리윤OS라고 불렸던 기술입니다. 알리바바에서 약 1600여 명의 엔지니어가 이 알리OS를 직간접적으로 개발하고 있다고 하는데요. 그만큼 알리바바는 과거부터 운영체제에 많이 투자했습니다. 알리OS 자체는 안드로이드를 기반으로 개발했습니다. 다만 안드로이드와 호환되지 않기 때문에 여러 가지 문제가 발생하기도 했습니다.


알리바바는 2012년 알리OS를 설치한 스마트폰 판매를 시도했지만, 구글이 이를 반대해 안드로이드 시장에 쉽게 진출하지 못했죠. 대신 최근엔 알리OS를 개선해 사물인터넷 시장에 더 많이 홍보하고 있습니다. 아래 두 가지 버전이 알리바바의 사물인터넷 OS 기술입니다.


● 알리OS 띵스(AliOS Things)

l 알리띵스 (출처: http://aliosthings.io)


알리OS 띵스는 2017년 10월에 공개됐습니다. 알리바바에 따르면 기존 OS는 개발 비용이 높고, 하드웨어 지원, 개발도구, 컴포넌트가 제한적인 상태라는데요. 알리OS 띵스는 그러한 문제점을 극복하고 보안, 확장성, 안정성도 함께 높이는데 집중했다고 설명합니다.


알리OS 띵스 개발 환경은 비주얼스튜디오코드에서 확장프로그램을 설치해 쉽게 구축할 수 있습니다. 개발자들은 위한 가이드 문서는 깃허브에서 찾아볼 수 있습니다. 향후에는 클라우드 환경도 적극 통합할 예정입니다. 또한 하드웨어 기반을 만들기 위해 ST마이크로일렉트로닉스, 에스프레시프를 포함한 17개의 칩 제조 업체와 협약을 맺는 노력도 하고 있습니다.



● 알리OS 라이트(AliOS Lite)

알리OS 라이트는 알리OS 띵스보단 좀더 경량화된 사물인터넷 OS입니다. 스마트 스피커, 스마트 시계, 스마트 카메라 같은 작은 기기에서 활용하기 좋게 만든 것이 특징입니다. 또한 CPU나 메모리 사양이 낮아도 이용 가능하고, 멀티태스킹 프로세싱, 음성인식, 비주얼 컴퓨팅 기술도 쉽게 구현할 수 있다고 합니다.



지금까지 알리바바의 오픈소스 기술을 살펴보았습니다. 생각해보면 중국과 오픈소스 문화와 꽤 궁합이 잘 맞습니다. 과거 중국이 기술을 모방해 성장하면 핀잔을 듣기 일쑤였지만 오픈소스 업계는 조금 다릅니다. 정해진 라이선스를 지키면서 기술을 사용하고, 개선하는 것을 권장하기 때문입니다.


물론 여러 가지 목적도 가지고 있지만, 오픈소스 소스 기술을 가져다 쓰는 것 외에 내부 기술을 커뮤니티에 꾸준히 공개하려는 노력은 여전히 박수 받아야 할 것입니다. 어쩌면 미래엔 중국 IT 기업이 오픈소스 생태계에서 중요한 역할을 할 수 있을지도 모르겠습니다.


글 l 이지현 l 테크 저널리스트


* 해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 LG CNS 블로그에 저작권이 있습니다.

* 해당 콘텐츠는 사전 동의없이 2차 가공 및 영리적인 이용을 금하고 있습니다.