피플 #백서리뷰#기술분석
"개발자경험 끌어올린 BaaS로 디앱 개발 전과정 돕겠다"
오재훈 람다256 CTO "개발 컴포넌트 여럿 제공해 디앱 개발 문턱 낮추겠다"
강력한 보안에 집중 투자, 비용 효율성 높은 BaaS 플랫폼으로 차별화
이더리움과 하이퍼레저 제품군 모두 품을 것
강민승 기자
등록일: 2019-05-03  수정일: 2019-05-31

“비즈니스 아이디어가 있는 사람들이 블록체인에 정통한 개발자를 찾아 개발하기는 어렵다. 블록체인 개발자가 많지도 않고 있다 하더라도 기술적 깊이가 깊지 않다. 루니버스는 기존 웹이나 앱을 개발했던 개발자들이 블록체인을 개발할 도구를 쉽게 제공해서 블록체인 지식이 깊지 않아도 디앱을 개발할 수 있는 환경을 만들었다.”


오재훈 람다256 최고기술책임자(CTO, 사진)는 최근 디스트리트 기자와 만나 서비스형블록체인(BaaS) 플랫폼인 루니버스를 개발한 성과를 강조하며 이같이 말했다. 루니버스는 AWS 위에서 구현됐으며 제품 개발에는 1년밖에 걸리지 않았다. 루니버스의 개발팀은 협력사를 포함해 30명 규모로 이뤄졌다. 오재훈 CTO는 루니버스의 시스템 아키텍쳐, 플랫폼 설계, 블록체인 소프트웨어 개발 과정 등에서 프로세스를 개선하는 역할을 담당하고 있다.


오재훈 CTO는 AWS 상에서 블록체인 서비스를 개발한 경험을 공유하기 위해 지난 AWS 서밋 2019에 연사로 참여했다. 람다256은 두나무에서 블록체인 생태계 활성화를 위해 지난해 설립된 회사로 사업을 본격적으로 하기 위해 올해 분사했다.


BaaS 오디세이, 기존 웹 개발자도 디앱 '뚝딱'

얼마 전까지만 해도 블록체인으로 비즈니스를 하기 위해서는 회사나 사용자의 컴퓨터에 직접 블록체인 소프트웨어를 설치하고 관리하는 방식을 많이 따랐다. 하지만 디앱을 퍼블릭 블록체인에 배포하고 운영하려면 민감 정보가 노출되는 문제와 비싼 수수료와 처리 속도가 느린 문제가 있었다. 프라이버시 수준을 높이는 프라이빗 블록체인도 결코 쉽지 않았다. 프라이빗 블록체인은 한정된 참가자가 개설하기에 데이터 처리 속도가 빠르고 서비스의 자유도가 높은 장점이 있지만 환경을 설정하는 과정에서 변수가 많아 구축을 위한 시간이 많이 소요되고 유지보수 비용도 만만치 않기 때문이다.


최근에는 이같은 문제를 극복하고자 클라우드 환경에 블록체인 서비스를 구축하는 서비스형 블록체인(BaaS)가 속속 등장하고 있다. 일반적으로 블록체인 서비스를 안정적으로 구동하기 위해서는 블록체인 아키텍처, 블록체인 운영자, 블록체인 개발자 등 3개의 직군이 모두 필수적으로 요구된다. 하지만 실질적으로 블록체인 전문 인력을 보유하기란 쉽지 않았는데 이를 극복하기 위한 시도도 BaaS에서 이뤄졌다. BaaS의 등장으로 블록체인을 쉽게 만들고 배포하고 유지보수 할 수 있게 됐지만 디앱을 직관적으로 관리할 상위 레이어는 없어 명실상부한 BaaS 서비스라고 하기엔 아직 부족했다.


때문에 오재훈 CTO는 기존의 서비스형 블록체인을 BaaS 1.0으로 정의하고 루니버스를 손쉬운 관리 기능을 추가해 진보한 BaaS 2.0으로 정의한다. 루니버스가 표방하는 BaaS 2.0은 실무에서도 손쉽게 쓸 수 있도록 개발자경험(DX)을 높이는 솔루션을 여럿 추가한 형태다. 초창기에 등장한 BaaS는 블록체인 서비스의 아키텍처와 운영개발(DevOps) 영역의 짐은 덜었지만 실질적인 개발을 돕는데는 충분하지 않았고 루니버스는 이를 해결하는데 집중했다. 지금까지의 기존 BaaS에서는 설치형 블록체인 솔루션때와 마찬가지로 블록체인을 개발하기 위해서 기존 개발자도 블록체인 엔지니어급 지식이 어느정도 요구된게 사실이다. 예를 들어 개발자는 블록체인의 기술적인 원리, 스마트 컨트랙트 개발과 배포 과정, API 구조 등을 직접 설계하고 개발해야 해 높은 장벽으로 작용했다.


오 CTO는 이같은 개발 장벽을 해소하고 개발자 경험을 높이기 위해 개발 과정에서 편리하게 쓸 수 있도록 컴포넌트를 여럿 도입했다고 밝혔다. 특히 블록체인 서비스의 개발에 필요한 전체적인 과정을 사용자인터페이스(UI)를 통해 쉽게 접근할 수 있게 했다고 강조했다. 여기에는 AWS의 클라우드 프론트, 클라우드 포메이션, 키관리 솔루션 등이 효율적으로 적용됐다. 이로써 기존 웹 개발자도 블록체인 분야에 전문적인 지식이 상당 부분 없어도 디앱을 배포해 서비스를 할 수 있게 됐다. 다만 루니버스 플랫폼은 소프트웨어 개발을 완전히 모르면 사용하기 어렵고 디앱을 개발하기 위한 솔리디티 언어 문법 등 기초적인 부분은 개발자도 인지하고 있어야 한다.


플러그인 클릭해 코드 배포, 보안 감사도 한 눈에

루니버스에는 아톰 통합개발환경(IDE) 플러그인과 웹브라우저에서 개발환경을 지원하는 리믹스 IDE에 쓸 수 있는 플러그인을 제공한다. 이밖에도 루니버스 플랫폼에서는 REST-API 모듈, 트랜잭션 설정, 보안 취약점을 분석하는 기능도 포함돼 있다. 루니버스 플랫폼은 하위 레이어인 인프라의 구축부터 상위 레이어인 디앱의 배포까지 블록체인 개발의 사실상 전과정을 모두 손쉽게 관리할 수 있다. 특히 시장에서 원하는 기능을 포착해 탑재한 아톰 IDE 플러그인, 리믹스 플러그인이 반응이 좋았다고 오 CTO는 덧붙였다.



사진에서 보듯 루니버스의 플러그인을 사용하면 에디터에서 즉각적으로 컨트랙트 코드를 배포하고 배포된 코드의 보안 취약점도 한눈에 분석할 수 있다. 루니버스의 보안 감사 기능은 보안업체인 수호와 협업해 제공하고 있다. 수호는 축적된 데이터베이스를 토대로 취약점을 분석하는 솔루션을 루니버스에 탑재했다. 사용자는 자신의 컨트랙트 코드를 제출하면 실시간으로 보안 취약점을 지속적으로 알아낼 수 있다. 한편 루니버스에 자신의 코드를 공개하고 싶지 않다면 컨트랙트 코드를 암호화해서 제출할 수도 있게 해 코드의 프라이버시도 높였다.


오 CTO는 “기존의 BaaS는 컨트랙트 개발 과정이나 취약점을 분석하는 도구가 제공되지 않고 오로지 넓은 틀에서 체인의 관리 기능만 탑재하고 있다”며 “루니버스는 개발자가 실사용하기 좋도록 트랜잭션 관리 도구, 보안 감사 도구 등 여러 도구를 종합적으로 제공할 것”이라고 말했다. 루니버스는 노드 모니터링 도구, 사이드 체인의 익스플로러 등 추가적인 개발 도구를 앞으로 공개할 예정이다.


사이드체인으로 디앱 구현해 쾌적, 안정적

루니버스에서 사용자의 디앱은 사용자 전용 사이드체인에 개별적으로 구현된다. 사용자로부터 사이드체인 개설 요청이 들어오면 AWS 가상프라이빗클라우드(VPC) 속에서 부분망(서브넷)이 만들어진다. VPC는 아마존 일래스틱 컴퓨트 클라우드(EC2)와 유사한 사용자 전용의 가상 네트워크다. 서브넷은 두 개의 존으로 구성되며 IP 주소는 지리적으로 서로 먼 곳에 생성된다. 때문에 한쪽이 자연재해나 네트워크 장애가 발생해도 다른 존에서 블록체인 서비스가 지속되게 된다.


사용자의 디앱을 사이드 체인에서 구현하면 데이터 처리 속도 등에서 효율을 높일 수 있다. 수수료도 들지 않으며 하나의 메인체인에 모든 디앱을 저장하는 방식보다 네트워크가 쾌적하다. 루니버스는 사이드체인에서 하나의 디앱을 구동할때 1000-1500TPS 수준의 성능을 낼 수 있다. 만약 사업자가 더 높은 성능이 필요할 시 사이드체인을 연합해 성능을 끌어올리는 네트워크 샤딩도 루니버스는 지원한다.


예를 들어 두개의 사이드 체인을 병합하면 1초당 2000-3000 트랜잭션을 처리할 수 있게 된다. 뿐만 아니라 아마존 계정 하나당 사이드체인을 1000개까지 만들 수 있어 사용자는 서비스 규모를 어렵지 않게 확장할 수 있다. 뿐만 아니라 루니버스에는 서비스거부공격(DDoS) 공격을 막기 위해 AWS의 레이트 리미팅 기능도 포함돼 있다. 야놀자, 달콤소프트, 모스랜드, 이포넷 등의 블록체인 서비스가 루니버스의 사이드 체인으로 현재 구현돼 있다.


사이드체인의 디앱을 구동하기 위해서 사업자는 노드(Node.js) 등으로 백엔드 서버를 구축해야 한다. 개발자가 서비스의 내부 작동 로직을 작성하는 건 기존 웹서비스를 개발하는 과정과 똑같다. 서비스와 블록체인의 연결도 어렵지 않다. 루니버스의 API와 연동하면 블록체인과 웹서비스를 손쉽게 연결할 수 있다. 디앱 개발자는 사실상 REST 응용프로그래밍인터페이스(API)만 사용할 줄 알면 된다. 한편 트랜잭션 등록, 토큰 전송 등 간단한 작업은 루니버스 UI에서 바로 처리할 수도 있다.


PoA + BFT 하이브리드, 람다 컨센서스 알고리즘

루니버스에서 생성된 여러 사이드체인이 사업자의 디앱이 사는 집이라고 한다면 루니버스의 메인체인은 여러 집을 둘러싼 성과 같다. 사이드체인에는 별도의 머클트리가 존재해 데이터를 기록하며 앵커링을 통해 주기적으로 메인체인과 블록 데이터를 주고받게 된다. 사이드체인의 검증자는 앵커링을 통해 위변조의 상황에서 중재하는 역할도 수행하게 된다. 메인체인과 사이드 체인의 앵커링 간격은 1시간이다. 


이를 효율적으로 관리하기 위해 루니버스는 포크가 발생하지 않는 람다 컨센서스 알고리즘(LCA)으로 구동된다. 오 CTO는 루니버스의 심장이라고 할 수 있는 합의 알고리즘의 개발 과정이 난이도가 높아 리소스도 가장 많이 투입됐다고 밝혔다. 람다 컨센서스 알고리즘은 이더리움의 공개형 테스트넷인 링크비 테스트넷에 적용된 PoA 방식의 클리크 알고리즘에 토대를 두고 있다.


람다256은 클리크 알고리즘에 처벌 메커니즘을 추가했고 블록의 즉각적인 완결성을 보장하기 위해 비잔틴장애허용(BFT) 알고리즘을 접목했다. BFT 알고리즘은 악의적인 노드가 전체 네트워크의 1/3이하를 차지하는 경우까지 합의의 안정성을 수학적으로 보장한다. 클리크 알고리즘의 경우 블록이 완결되는 시간은 약 15초인데 비해 루니버스의 블록은 1초 안에 완결돼 빠르다. 


루니버스의 운영에는 총 25개의 파트너사가 PoA 알고리즘의 블록검증자로 투입되며 이중 5개의 업체가 사이드체인의 검증자의 역할을 수행하게 된다. 루니버스는 이를 위한 파트너사와 협력을 현재 진행중에 있다. 한편 루니버스는 이더리움 메인넷과 인터체인 관계를 만들기 위해 앵커링 작업을 진행할 예정이다. 루니버스에 공개형 블록체인인 이더리움을 연결해 데이터의 투명성을 끌어올리는 장치로 사용할 계획이다.


루니버스의 차별화 포인트 ‘비용 효율성 높은 BaaS 플랫폼’

BaaS가 널리 쓰이려면 무엇보다도 가격이 중요한데 루니버스는 BaaS 비용의 효율성을 차별화 포인트로 내세운다. 이를 위해 루니버스는 사업자의 디앱에 최적화된 인스턴스를 분석해 제공한다. 루니버스는 이를 토대로 사용 시간당 과금체계를 적용해 사업자의 서비스 요금 폭탄을 막고 트랜잭션이 몰리는 상황에도 안정적으로 서비스를 진행할 수 있도록 했다. 실제로 루니버스에는 네트워크 리소스를 유동적으로 관리하는 기능이 탑재돼 있다. 사용자의 사이드체인에서 트랜잭션 유동량이 갑자기 증가하면 AWS 오토스케일링 솔루션이 이를 포착해 하드웨어를 몇 분내 추가적으로 프로비저닝해 대응하게 된다.


오 CTO는 “서버 호텔이라 불리는 인터넷데이터센터(IDC)에 기반한 BaaS 서비스의 경우 사용자가 요구하는 장비를 준비하려면 주문형 하드웨어를 실제로 조립하는 절차도 필요해 상황에 맞게 리소스를 증설하기란 쉽지 않았다”며 “루니버스를 사용하면 AWS 솔루션에 기반해 비용 효율성을 최대로 높일수 있다”고 강조했다. 그는 블록체인을 위해 IDC를 사용하는 경우와 비교해 루니버스의 BaaS는 비용을 30% 절감하는 효과가 있다고 말했다. 한편 루니버스는 결제 시스템과 서비스를 연동하는 작업을 현재 진행중에 있다.


루니버스 키관리 솔루션, 블록체인 UX 심플하게 개선

오 CTO는 디앱을 사용하기 위해 지갑 앱을 설치하고 계정을 생성하는 등 소프트웨어 설치와 블록체인 자체를 이해해야 하는 장벽이 존재한다고 지적한다. 실제로 이오스의 블록체인 게임 등을 볼 때 사용자가 게임에 접속하기 위한 회원 가입과 컴퓨팅 자원을 예치하는 과정만 해도 1박 2일까지 걸리는 경우가 많다는 것이다. 또 길고 생소한 개인키를 잃어버리지 않도록 보관해야 한다는 점과 트랜잭션을 제출해 주문하는 과정이 기존의 웹서비스와 달라 사용자들이 어려움을 느낀다고 진단했다. 특히 전자 서명을 해 전송하는 과정에서 많은 사용자가 이탈하게 되는 통점이 된다고 그는 분석한다. 즉 블록체인 시스템에서 주문하는 과정이 낯설고 어렵게 느껴져 중간에 포기하는 경우도 많다는 것이다.


루니버스는 기존의 웹 서비스를 쓰듯 간단한 클릭만으로도 사용자가 주문 등의 요청을 할 수 있도록 블록체인 서비스 자체의 UX를 개선했다. 이를 위해 루니버스는 키관리 솔루션인 개인키 관리서비스(PKMS)를 탑재했다. 때문에 루니버스로 구축한 블록체인 서비스에서는 회원이 개인키를 직접 관리할 필요가 없다. 때문에 개발사를 제외하고 디앱을 사용하는 회원들이 루니버스에 별도로 가입할 필요는 없다.


예를 들어 디앱으로 구축한 쇼핑몰의 회원은 프라이빗키를 발급받지만 루니버스 내부에만 보관돼 노출되지 않는다. 서명에 필요한 개인키는 매번 입력될 필요 없이 일회용패스워드(OTP)나 핸드폰 인증 등으로 대체할 수 있다. 즉 루니버스 블록체인에서는 사용자경험(UX)은 기존의 중앙화된 시스템과 동일한 셈이다. 내부에서는 지갑 주소를 생성하고 트랜잭션을 주고받는 정교한 로직이 작동하고 있지만 서비스 회원은 해당 블록체인 서비스를 복잡함 없이 단순하게 이용할 수 있다.


한편 루니버스는 블록체인에 기반하지 않은 기존 서비스도 어카운트 브릿지를 통해 마이그레이션 작업을 손쉽게 할 수 있도록 지원한다. 루니버스의 어카운트 브릿지는 계정 아이디에 해당하는 월렛주소를 찾아서 트랜잭션을 만들고 서명할 수 있는 기능이다.


루니버스+AWS “암호화 기법, 강력한 보안에 집중투자

오 CTO는 루니버스의 암호화 기술과 보안성 향상에 현재 집중하고 있다고 밝혔다. 먼저 루니버스에서 생성한 계정의 키스토어 파일이나 중요 데이터는 모바일 기기나 컴퓨터로 이동하는 과정에서 종단간 암호화가 적용된다. 데이터를 전송하는 채널 자체의 보안을 높이기 위함이다. 종단간 암호화는 카카오톡, 텔레그램 등에서 사용되는 암호화 기법으로 해독을 위한 키는 당사자의 기기에만 보관하기에 중간에 공격자가 데이터를 가로채도 해독할 수 없는 장점이 있다.


또 루니버스는 키스토어 파일을 안전하게 백업하는 볼트 서비스를 현재 개발중이다. 사용자는 개인키를 암호화해 키스토어 파일로 보관하지만 파일을 분실하는 경우가 많아 암호화된 백업을 통해 이를 방지하겠다는 목표다. 사용자가 발급받은 키나 키스토어 파일은 암호화되고 이중인증(2FA) 등 추가적인 보안 장치를 거쳐 AWS 클라우드 하드웨어시큐리티모듈(HSM)에 최종 저장된다. 루니버스는 사용자의 개인키를 AWS 클라우드 HSM에 넣는 부분의 구현을 현재 진행중이다.


AWS의 HSM은 하드웨어에서 발생하는 노이즈를 토대로 난수를 생성하는 암호화 기술이 탑재돼 있다. 블록체인 프로토콜의 많은 경우 소프트웨어를 통해 만든 유사 난수에 기반한 키를 사용하지만 해커가 유추할 수 있다는 문제가 뒤따른다. 반면 HSM으로 생성한 난수는 엔트로피가 높아 예측하기 매우 어려워 보안 수준이 높다. 이밖에도 HSM의 자체 운영체제는 네트워크를 통해 침투가 어려워 암호화키가 유출되지 않는 장점이 있다. 실제로 삼성 갤럭시 S10의 보안 솔루션인 녹스도 하드웨어에 기반해 보안성을 높이고 있다.


다만 AWS의 HSM은 클러스터 한 개당 키를 최대 3500개까지만 저장할 수 있고 HSM 클러스터 개수 역시 제한적이다. 사용자의 모든 프라이빗키를 전부 HSM에 넣을 수는 없기에 일반적으로 HSM에는 마스터키를 보관하고 중간 데이터 암호화를 위해 각 사용자 별로 테넌트 키를 별도로 만들게 된다. 보안 수준을 더욱 끌어올리기 위해 루니버스는 사용자의 개인키를 암호화하는 과정에서 개인키 암호화를 여러 겹으로 수행한다. 즉 루니버스의 개인키는 여러 겹의 보안 봉투로 감싼 형태로 보관돼 공격으로부터 보호된다. 


이렇게 볼트 서비스로 보관된 키스토어 파일은 사용자가 개인키를 기기에서 분실했을 때 언제든 다시 복구할 수 있는 백업에 해당한다. 루니버스의 키 복구 메커니즘은 양방향 SSL 인증 방식으로 이뤄진다. 이는 서버와 클라이언트 쌍방의 공개키 인증을 통해 데이터 프로토콜을 개방하는 통신 기법을 말한다. 양방향 SSL은 클라이언트가 서버 측의 신원을 확인하는 일반적인 단방향 SSL 인증 뿐만 아니라 서버 입장에서 클라이언트의 신원을 확인하는 과정도 포함한다.


볼트 서비스에서 주요 API를 호출할 때 채널 수준에서는 양방향 SSL을 수행하며 플랫폼 수준에서는 종단간 암호화를 기본으로 적용한다. 때문에 루니버스에서는 사용자가 키스토어 파일을 기기에서 분실해도 백업에서 데이터를 안전하게 요청해 받아올 수 있고 2FA 인증을 이용해 분실된 키를 복구할 수 있다. 루니버스는 사용자가 볼트 서비스 손쉽게 이용할 수 있도록 오픈 API 뿐만 아니라 다양한 형태의 클라이언트 소프트웨어개발키트(SDK)도 제공할 예정이다.



오 CTO는 “루니버스를 개발하며 HSM 서비스에 secp256k1 타원 곡선 알고리즘을 탑재하도록 AWS에 건의했는데 AWS는 제안을 받아들여 두달만에 기능을 지원해줘 유용하게 쓰고 있다”고 말했다. secp256k1는 비트코인, 이더리움 트랜잭션의 암호화 서명에 현재 사용되는 타원곡선 알고리즘이다. 오 CTO는 “이로써 루니버스에서도 하드웨어에 기반한 엔트로피가 높은 고품질의 개인키값을 생성할 수 있을 뿐만 아니라 높은 암호화 수준이 보장되는 환경에서 트랜잭션 서명, 사이드 체인 간 검증 작업을 할 수 있게 됐다”고 강조했다.


“라이덴, 샤딩, 오라클라이즈, 프라이버시, 보안 파일 시스템 집중 육성할 것”

오 CTO는 블록체인의 보안 수준을 높이고 성능 한계를 극복하기 위해 라이덴, 샤딩, 오라클, 프라이버시, 보안 파일 시스템 등 5개 분야를 선정해 외부팀과 공동연구개발을 추진할 것이라고 밝혔다. 먼저 라이덴 네트워크는 이더리움의 스테이트 채널을 응용한 기술이다. 라이덴에는 각 채널을 연결하는 허브가 여럿 있어 이더리움의 광범위한 사용자를 연결할 수 있다. 스테이트 채널은 이더리움의 오프체인 확장성 솔루션으로 거래 데이터를 디앱에 특화된 별도의 채널에서 처리하는 기술이다. 


샤딩은 네트워크나 데이터베이스를 나눠 트랜잭션을 처리하는 효율을 끌어올리는 기술을 말한다. 오라클은 블록체인의 외부에서 블록체인으로 정보를 가져오는 솔루션을 말한다. 또 보안 파일시스템이란 파일을 암호화해서 저장하는 기술을 말한다. 루니버스가 지원하는 보안 파일시스템에는 인터플래내터리 파일 시스템(IPFS) 등 분산화 파일 시스템도 포함된다.


그는 오라클라이즈 솔루션의 중요성을 특히 강조했다. 블록체인이 실생활에 쓰이기 위해서는 실생활에서 발생하는 데이터를 확정시켜 블록체인에 명시적으로 전달하는 과정이 필수적이다. 만약 정보가 확정되지 않으면 동작하지 않는다. 예를 들어 날씨에 따른 항공사가 결항되면 보험금을 지급하는 디앱을 만든다고 할 때 항공사 결항 여부와 날씨 데이터를 블록체인 상으로 가져오는 서비스를 오라클라이즈 솔루션이라고 한다. 그는 “루니버스에서도 오라클 솔루션의 리서치가 이뤄지고 있지만 시너지를 위해 리서치 팀과 협업을 원한다”고 말했다.


오 CTO는 “루니버스에 프라이버시 보호 수준을 향상하기 위해 하이퍼레저를 서비스 제품으로 탑재할 것”이라고 말했다. 루니버스는 향후 이더리움을 인터체인으로 연결해 데이터의 투명성을 보장하고 동시에 하이퍼레저를 탑재해 프라이버시 수준도 끌어올릴 계획이다. 공개형 블록체인에서는 모든 정보가 공개돼 사용자의 프라이버시가 침해되는 문제가 있었지만 프라이빗 체인의 장점을 끌어와 극복하겠다는 것이다. 실제로 하이퍼레저에는 별도의 작업 공간인 채널이라는 개념이 있어 업무를 비공개적으로 처리할 수 있는 등 사용자의 프라이버시를 보호하는 장치가 여럿 존재한다.


한편 람다256은 아마존 웹서비스 파트너 네트워크(APN) 멤버로서 글로벌 진출에 향후 지원을 받을 수 있을 것으로 기대하고 있다. APN의 멤버로서 협력 프로그램 등을 확장할 예정이다. 특히 아마존 매니지드 블록체인(AMB) 팀과의 협력을 통해 블록체인 서비스를 더욱 강화할 계획이다. 또 기업용 블록체인 서비스를 제공하기 위해 아마존 웹서비스 컨설팅 파트너인 메가존과도 협업중에 있다. 


[강민승 기자]


디스트리트 커뮤니티 광고
북마크
좋아요 : 0
공유
https://dstreet.io/news/view-detail?id=N20190430144009646072
URL복사
댓글 0
댓글쓰기
댓글 쓰기
에어드랍 가즈아