1회 EOS.IO 서울 개발자 밋업 참가 후기
이 글은 제 개인 웹사이트의 블로그 에서도 읽으실 수 있습니다.
최근 블록체인에 관심을 많이 가지고 있는데요, 특히 dApp 개발. 그 중에서도 EOS dApp 개발에 가장 관심을 가지고 있습니다. 정작 EOS dApp 개발 관련 문서를 이제 막 찾아 읽어보기 시작한지라, 많이 알지는 못하지만요. 그러던 중 국내 첫 EOS 개발자 밋업이 2월 6일 밤에 WeWork 삼성역점에서 열린다고 해서 참석하고 왔습니다. 앞에 다른 일정이 있어 시작시간 보다 20분 늦게 지각을 해서 모든 세션을 듣지는 못했지만. 그래도 많은 것을 배워갈 수 있어 좋았습니다.
Development Experience of EOS DApp
Everipedia 의 Sam Kazemian님께서 Everipedia 를 EOS dApp 으로 전환하기위해 개발하는 것에 대한 경험을 발표 했습니다. 제가 20분 지각을 해서(...) 이 세션은 Q&A 부분밖에 듣질 못했네요. 그래도 Q&A 에서 많은 정보를 얻을 수 있었습니다. 제가 들으면서 기록한 질문과 답변을 정리하면 대략 아래와 같습니다.
- EOS dApp 을 블록체인에 전개해서 작동하게 하고 사용자들이 쓰려면, 일정량의 EOS 토큰을 보유해야 하는데, 어떤 방식으로 충당했거나 또는 충당할 예정인가요?
- 이미 일정양의 토큰을 확보하여 보유하고 있습니다. 서비스 사용자가 늘어나면 그만큼 토큰이 더 필요하게 될텐데, 추가적인 토큰 마련 방안을 곧 발표할 예정입니다. Everipedia 는 EOS dApp 운영에 EOS 토큰이 얼마나 필요한지 알게 해 주는 첫 서비스가 될 것입니다.
- 프로젝트를 하면서 무엇이 가장 어려웠나요?
- 탈 중앙화 철학에 따라 개발해야 한다는 점 이였습니다. 서비스 시작 이후 우리가 제어할 수 없기 때문에 그러한 부분을 고려하는 것이 힘들었고. 출시 이후 커뮤니티에 의해 서비스가 자생하도록 해야 하는 점이 힘들었습니다.
The era of DAC(Decentralized Autonomous Collective)
Block.one의 VP of Product인 Thomas Cox님께서 기존의 중앙화된 형태의 회사와 그러한 회사들이 제공하는 서버-클라이언트 모델의 중앙화된 서비스에 비교하여, DAC(탈중앙화된 자치집단) 이 어떻게 다른지 간단히 소개해 주셨고, 이후 Q&A 시간을 가졌습니다. 처음에 EOS 는 무료 플랫폼이고, 미국인들은 EOS ERC-20 토큰을 구입할 수 없으며, 발표에서 소개된 내용은 보장되지 않는 내용의 슬라이드는 조금 뜬금 없더군요.
먼저 우리가 이미 많이 접하고 있는 전통적인 형태의 중앙화된 회사와 서비스를 예로 들었습니다. 중앙화된 서비스는 중앙 서버에 의해 모든것에 제어 되는 방식이죠. 우리가 이미 많이 사용하는 Google, Facebook, AirBnB, Uber 등이 그렇습니다. 이 경우 서비스를 사용하는 사용자들을 포함한 모두가 서비스로 인한 이익에 관심을 가지나, 사용자들이 그 이익을 나눠가질 수 없다는 점이 있습니다.
2014년에 Dan Larimer 가 소개한 DAC(Decentralized Autonomous Collective, 탈중앙화된 자치집단)는 오픈된 소스코드를 통해 비즈니스를 정의하고, 가치를 만들어 내는 사람과 가치를 추출해내 가져가는 사람들이 이익을 공유한다고 합니다. 또한 DAC 에서는 개발자와 사용자 모두가 이익을 가질 수 있다고 합니다.
이러한 DAC 과 dApp 을 위한 블록체인 플랫폼인 EOS 에서 토큰이 어떤 역할을 대략 아래와 같이 설명해 주셨습니다.
- 네트워크에 접근하여 리소스나 서비스를 사용할 수 있게 함
- 블록 프로듀서 투표에 참여할 수 있는 권한을 줌
- 네트워크가 성장할 수 있게 함
- 필요한 경우 토큰 가치 보존을 위해 일부 토큰을 소각할 수 있음.
- 일부 토큰은 블록 프로듀서에게 제공
- 일부 토큰은 시스템 개선에 사용
또한 EOS 에서 제공하는 다섯가지 레이어에 대해서도 각 레이어마다 간단한 예시를 들며 소개해 주셨습니다.
- 사용자 경험
- 사람이 읽을 수 있는 계정명(
1bkkj98bkj2hgk
같은 계정명이 아닌hello
같은) - 해킹된 계정 복구 기능
- 사람이 읽을 수 있는 계정명(
- 개발자 경험
- 생산성에 집중할 수 있도록 함
- 선언적 보안(예: 퍼미션)
- 유틸리티 함수
- 수정이 필요한 계약 - 프리징/대체
- 중재기관과 관리용이성 - 이쪽은 잘 못들었네요(...)
- 보안과 합의방식 - DPOS : 가장 안정적이고 보안성도 좋음
그 외에 사전에 많은 사람들이 문의한, dApp 런칭에 필요한 EOS 토큰을 투자받는 방법에 대해 정리해서 알려주셨습니다. 발표는 이렇게 끝났고, 이어서 질의응답이 있었는데요. 질의응답 내용은 정리하면 아래와 같습니다. 일부 질문은 단호하게 답변을 안해주셔서(...) 좀 아쉬웠네요. 6월 이후에 더 많은 정보가 공유되는 것을 기대해 봐야 할 것 같습니다.
- EOS.IO DAWN 3.0 의 특징에 대해서 소개해 주실 수 있나요?
- (단호하게) No.
- EOS 스마트 계약 작성시 다른 프로그래밍 언어 지원 계획이 있나요?
- 네. 지금은 주로 C++ 에 집중하고 있고. 추후 커뮤니티에서 자발적으로 다른 언어로 포팅해서 어떤 언어로도 개발 가능하게 할 예정입니다. 다양한 언어 지원은 EOS 의 목표이기도 합니다.
- dApp 서비스 런칭에 필요한 EOS 토큰 양을 측정하는 방법을 알려 주실 수 있나요?
- (단호하게) No. 6월에 자세한 사항을 공유할 예정입니다.
- 로컬 프라이빗 넷으로 테스트 하면 모든 체인을 본인이 제어 가능하고, 퍼블릭 테스트넷의 경우 필요시 테스트넷용 토큰을 요청할 수 있습니다.
- 트랜잭션 내용 암호화 기능같은 것을 추가할 계획이 있나요?
- 6월 전에는 알려드릴 수 없습니다. 내용을 직접 암호화 하는 것은 어렵지 않을 것입니다.
EOS.IO 시작하기 / EOS.IO SMART CONTRACT DEV.
국내의 EOS dApp 프로젝트이자 해당 프로젝트 팀인 Mithril 의 Rass Kang 님과 Eric Song 님께서 EOS 툴을 컴파일해서 사용하는 법, 이를 이용해 로컬 테스트넷을 돌리는 방법과. EOS 스마트 계약을 개발하는 방법을 소개해 주셨습니다. EOS 의 경우 문서가 아직 부족해서 얻을 수 있는 정보가 많치 않은데, 미스릴 프로젝트를 하면서 얻은 문서에는 없으면서도 유용한 정보들을 공유해 주셨습니다.
먼저 Rass Kang 님께서 EOS 도구를 컴파일 해서 설치하고, 이를 이용해 테스트넷을 돌리는 법이나 지갑 생성하는 법 등을 알려주셨습니다. 우분투 17.10 을 기준으로 설명해 주셨는데요, EOS GitHub 저장소에 있는 의존성 설치 스크립트가 문제가 많은 가 봅니다. 기본 우분투 저장소에 없는 패키지도 설치하도록 되어있고, 일부 필요한 의존성을 설치되지 않는 등 많은 문제가 있다고 하네요. 전 개인적으로는 MacOS 에서만 해 봤었는데, 조만간 우분투에서도 시도를 한번 해봐야 겠네요.
이어서 Eric Song 님께서 EOS 스마트 계약 개발에 대해 자세히 설명해 주셨습니다.
먼저 EOS 에서 사용하는 기능과 용어 등에 대해서 정리를 해주셨습니다. EOS 의 경우 다른 블록체인 스마트 계약 개발과 차이가 많아서 개발하다 보면 햇갈릴 수 있는 부분이 많은데, 그런 부분을 명확히 짚어주셨습니다.
EOS Commander 앱에 대해 간단히 소개해 주셨습니다. 휴대전화에서 EOS 노드에 스마트 계약 메시지를 쉽게 보낼 수 있게 해 주는 앱입니다. 나중에 본격적으로 스마트계약을 개발하게 되면 유용하게 사용할 수 있을 것 같습니다.
본격적으로 EOS 스마트계약을 개발하는 법을 알려주셨습니다. EOS 스마트 계약의 경우는 아직 예제 코드 등을 찾아보기가 쉽지 않은데요, 예제 코드도 많이 준비해 와 보여주셔서 정말 좋았습니다. 재미난 것은, 역시 스마트 게약이란 것이 다른 사람의 컴퓨터에서 샌드박싱 된 상태에서 실행되는 것이라 그런지 코드를 짤 때 할 수 있는 것이 정말 적다는 것이였습니다. 예를 들면 트랜잭션이 1ms 안에 끝나야 하고, 사용 가능한 스택 크기도 작아서, 재귀함수 호출이나 반복문과 행렬 순회 등도 불가능 한 것이라던가.(그래도 지금 트랜잭션 제한시간을 25ms 로 늘리는걸 고려중이라, 늘리는게 확정되면 가능해 질수도 있다고 하네요.) EOS 에서 제공하는 라이브러리 이외의 외부 라이브러리 사용이 불가능 한 점(심지어 stdlib
도 사용하면 안된다고 합니다. EOS 용으로 포팅을 하고 있다고는 하는데, 그때가 되어봐야 알겠죠?) 등 이였습니다. EOS 가 아직 개발 중간 단계여서 그런지는 모르겠지만 디버깅 환경도 좋지 않습니다. 모든 디버깅을 EOS 에서 제공하는 콘솔 출력 함수로 해결해야 한다고 합니다.
EOS는 아직 개발 단계이고 성숙화 되지 않은 단계이다 보니, 먼저 EOS 스마트 계약 개발을 시작하는 많큼, No Pain, No Gain 이라는 말씀을 남기시면서 세션을 마치셨습니다. 먼저 하는만큼 자료도 많치 않아 힘들지만, 그만큼 먼저 많은 것을 얻을 수 있으니까요.
글을 마치며
국내에서의 첫 EOS 개발자 밋업 행사였는데요, 첫 행사였음에도 정말 알찬 내용의 세션이 많이 준비되어 좋았던 것 같습니다. 에브리피디아의 개발자 분 세션과 DAC 에 관한 세션저 좋았지만. 특히 마지막에 미스릴 팀 분들의 EOS 스마트 컨트렉트 세션이 가장 좋았습니다. 먼저 개발하면서 겪으면서 쌓은 노하우나 문서에는 나오지 않는 유용한 정보를 알려주셔서 정말 좋았습니다. 나중에 2회 밋업이 있으면 또 참석해 보고 싶네요. 이번 밋업 세션 중 미스릴 팀의 EOS 스마트 계약 관련 발표 슬라이드 자료가 공개 되었더군요. 참석 못하셨던 분들은 참고하시면 좋을 것 같습니다.
2018.02.29 업데이트 : @kimchun1 님께서 행사 녹화 영상 재생목록을 공유해 주셨습니다. 여기 를 눌러서 영상을 보실 수 있습니다. 참석 못하셨던 분들은 한번 보시면 좋을 것 같습니다.
정성 가득한 후기네요. 업보트했어요. 동영상이 좀 잘 안보이긴 하지만 공유합니다. https://www.youtube.com/playlist?list=PLysThb_HoI_FrcgPoLeabMwQvILeRxU_k
안녕하세요. 미스릴팀의 eric 입니다. 제 기억에도 앞자리 앉으셔서 초롱초롱한 눈빛을 발사하시던 모습이 기억나네요. ^^ 부족하지만 유용하셨다니, 다행이네요. 다음에 더 좋은 내용으로 준비할 수 있도록 하겠습니다. 감사합니다. ^^
이런 행사가 있었군요. 정리 잘 해주셔서 감사합니다^^
정성이 가득한 후기 감사드립니다.
첫 밋업이라 부족한 점이 많았을텐데 너무 좋게 포장(?)해 주셨네요^^
다음 밋업때도 꼭 와주세요!
밋업 준비해주셔서 정말 감사드려요 :) 다음 밋업도 꼭 참석할께요! 밋업 일정 후에 네트워킹 시간이나 뒷풀이(?) 같은것도 있다면 참석해 보고 싶네요.
수고하셨읍니다 전 개발자는 아니지만 이오스댑개발자들이 국내에 많이생겨났으면 좋겠고 성공했으면 좋겠읍니다~
정말 좋은 글 감사합니다. 정말 너무 궁금한 내용이었는데, 마치 제가 그 장소에 직접 참가한 것처럼 느낄 수 있도록 글을 잘 써주셔서 너무 잘 읽었습니다.^^
귀한 정보 공유 감사드립니다.
EOS의 개발자 밋업이 부흥하길 바래봅니다.
뭔가 든든하네요. 감사요~
저도 참석하고 싶었는데 일정때문에 못갔거든요. 이렇게나마 글로 접하니 참고가되네요. 2회 밋업이 있으면 꼭 참석하도록 해야겠습니다.
좋은 후기 감사합니다 :) 리스팀합니다!
경험 공유해주셔서 감사합니다.