if(kakao)2020 코멘터리 02 : Klaytn, Caver, KAS 가 만들어가는 쉽고 빠른 BApp 개발 환경

안녕하세요, Ground X의 Platform Development Team입니다.
Ground X의 블록체인 플랫폼 Klaytn, 그리고 Klaytn을 쉽게 쓰기 위한 API Service (KAS)와 SDK (caver)를 개발하고 있습니다.

이번 if(Kakao)2020에서는 Klaytn의 성능 및 비용 개선을 위해 노력한 경험, caver의 사용성 개선을 위해 노력한 경험, KAS의 reference BApp을 개발한 경험, 그리고 Ground X에서의 devops에 대해 들려드릴 예정인데요, 이번 글을 통해 먼저 소개하고자 합니다.


 

블록체인의 storage를 줄여보자: Klaytn의 혹독한 다이어트 일기

 

블록체인의 storage를 줄여보자: Klaytn의 혹독한 다이어트 일기 세션에서는 블록체인의 저장 비용을 줄이기 위해서 노력한 경험에 대해 소개합니다. Klaytn의 메인 네트워크인 Cypress는 출시 1년 차인 2020년 6월, 전체 저장 용량이 800GB 를 넘어섰습니다. 앞으로 더욱더 널리 사용될 블록체인 네트워크임을 감안하면 증가 속도가 너무 빠르다고 생각했습니다. 그중 가장 많은 용량인 651GB 를 차지하는 것은 Storage trie로 각 계정의 잔고와 컨트랙트의 데이터가 저장되어 있는 저장소입니다. 이 저장소는 최신 상태뿐만 아니라, Genesis block부터의 상태를 저장하고 있습니다. 아주 오래된 데이터들을 접근하는 경우는 희박하기 때문에, 최신 상태 데이터만 저장한다고 하면 75%가 절감된 129GB 만으로 충분합니다. 이 세션에서는 어떤 기술을 사용해 이렇게 공간 절감을 할 수 있었는지, 그리고 어떤 어려움이 있었는지를 소개합니다.

 

Klaytn에 알맞는 cache 찾기: State trie cache 최적화

 

Klaytn에 알맞는 cache 찾기: State trie cache 최적화 세션에서는 기존에 사용하고 있던 state trie 캐시가 지정한 메모리보다 더 많은 공간을 차지한다는 것을 분석하고, 이보다 나은 캐시를 찾기 위해 노력한 경험들을 소개합니다. Klaytn과 같이 아주 오랜 시간 종료되지 않고 실행되는 프로그램에서는 시스템 메모리를 초과하지 않으면서 효율적으로 메모리를 사용하여야 하기 때문에, 메모리 최적화가 매우 중요합니다. 기존에 사용하고 있던 캐시는 실제 캐시로 사용되는 공간보다 더 많은 공간을 점유하고 있다는 것을 분석을 통해 파악했고, 이보다 나은 다양한 캐시들을 검토하였습니다. 또한 주어진 상황에서의 캐시 미스 값을 수학적으로 도출하고 그 결과를 실험을 통해 확인하였습니다. 마지막으로 실험을 통해 변경된 캐시가 메모리 사용, 캐시 미스율, 그리고 속도 면에서도 모두 기존의 캐시보다 우월한 것을 확인하였습니다.

 

Caver, 참 쉽죠?

 

Caver, 참 쉽죠? 세션에서는 Klaytn의 SDK인 caver-js와 caver-java에 대해 소개합니다. 기존의 caver-js와 caver-java는 서로 다른 사용법과 용어를 가지고 있어, 한 언어의 SDK에 익숙해져 있다고 하더라도 다른 언어의 SDK를 사용하는 것은 매우 어려웠습니다. Klaytn SDK라면 언어에 관계없이 사용법이나 용어는 같아야 한다고 생각했기 때문에, 공통된 구조인 SDK common architecture를 설계하고 구현하였습니다. 이 세션에서는 SDK common architecture를 어떻게 설계하였는지, 어떻게 사용하는지를 자세히 소개합니다. 이 SDK common architecture를 통해 서로 다른 언어의 SDK로의 개발이 수월해지고, 나아가 새로운 언어의 SDK도 쉽게 확장될 수 있기를 기대합니다.

 

Blockchain Application 개발을 시작하는 사람들을 위하여
(feat. Klaytn API Service)

 

Blockchain Application 개발을 시작하는 사람들을 위하여 (feat. Klaytn API Service) 세션에서는 KAS (Klaytn API Service)를 사용하여 BApp을 개발한 경험을 소개합니다. 먼저, 블록체인에 대한 경험이 전혀 없는 개발자들을 위해 BApp을 어떻게 설계하는 것이 바람직한지 실제 개발한 카페 원격 주문 시스템을 토대로 설명합니다. 이 시스템의 여러 가지 데이터의 특성을 살펴보고, 그 특성이 블록체인과 어떻게 연결될 수 있는지 소개합니다. 이어 BApp을 개발하기 위해 어떠한 어려움들이 있는지, KAS를 통해 그 어려움을 어떻게 덜어낼 수 있는지 소개합니다. Klaytn 그리고 KAS와 함께 BApp을 어떻게 개발하면 되는지 궁금한 개발자라면, 이 세션이 많은 도움이 될 수 있기를 기대합니다.

 

DevOps at Ground X: 인프라도 코드처럼

 

또한 Ground X에서는 DevOps 팀이 잘 갖추어져 있어, 높은 개발 생산성을 유지할 수 있습니다. DevOps at Ground X: 인프라도 코드처럼 세션에서는 Ground X의 다양한 제품들을 어떻게 DevOps 환경으로 구성하고 운영하고 있는지 소개합니다. Ground X의 DevOps 팀은 Kubernetes, Terraform, Helm 등을 이용하여 Cloud infrastructure를 코드 기반으로 효율적으로 관리, 운영하고 있습니다. 이 세션에서는 이러한 Infrastructure as Code를 Ground X에서는 어떻게 관리하고 운영하는지 소개합니다.

 

자유로운 영혼의 자유로운 운영

 

자유로운 영혼의 자유로운 운영 세션에서는 Ground X에서 Klaytn의 메인 네트워크인 Cypress를 운영하면서 겪은 어려움에 대해 소개하고 그 어려움을 해소할 수 있는 자유로운 운영 방법에 대해 소개합니다. AWS connect를 이용한 전화 기반 운영 시스템을 적용하여, 컴퓨터가 없는 상황에서도 운영 및 장애에 대응할 수 있는 방법 및 시스템에 대해 소개합니다.

 


 

위에 소개해드린 세션들의 보다 자세한 내용은 11월18일~20일, if(kakao)2020을 통해 확인하실 수 있습니다. 감사합니다!

카카오톡 공유 보내기 버튼

Latest Posts

제5회 Kakao Tech Meet에 초대합니다!

Kakao Tech Meet #5 트렌드와 경험 및 노하우를 자주, 지속적으로 공유하며 개발자 여러분과 함께 성장을 도모하고 긴밀한 네트워크를 형성하고자 합니다.  다섯 번째

테크밋 다시 달릴 준비!

(TMI: 이 글의 썸네일 이미지는 ChatGPT와 DALL・E로 제작했습니다. 🙂) 안녕하세요, Kakao Tech Meet(이하 테크밋)을 함께 만들어가는 슈크림입니다. 작년 5월에 테크밋을 처음 시작하고,