한국어
Profile
팔오사이

2018.03.28

Dapp 개발 난이도..?

조회 수 2047 추천 수 1

 

안녕하세요.

 

스마트 컨트랙트를 통해 Dapp을 개발하는 예시를 간단히 글로 적어보고자 합니다.

이를 통해, Dapp 개발의 난이도(?)를 각자 유추해보시는데 도움되길 바래요.

 

일단,

종종 이런 질문들을 보았습니다.

  a. Dapp을 개발하는 것은 어려운가요?

  b. 웹어셈블리를 알아야 하나요?

  c. 댑은 어떻게 개발하나요?

이 3가지 질문중에 바로 대답할 수 있는 것은 b. 일것 같은데요,

답변은 웹어셈블리 몰라도 스마트 컨트랙트를 사용할 수 있습니다.

EOS 블록체인이 웹어셈블리를 부분적으로 사용하여 개발된 것이지, 스마트 컨트랙트를 코딩하는데 웹어셈블리가 사용되는 것이 아닙니다.

EOS 스마트 컨트랙트는 C/C++을 통하여 만들어 질 수 있습니다.

 

예시1)

간단한 화살 쏘기 게임을 Dapp으로 개발한다고 가정 합시다.

과녁에 맞출때마다 토큰을 1개씩 부여할 것이고, 부여할 수 있는 토큰의 갯수는 무한대로 할 것입니다.

이 게임은 안드로이드 어플리케이션으로 만들고자 합니다.

일단, 화살을 쏘는 안드로이드기반 게임을 개발하고, 토큰을 처리하는 스마트컨트랙트를 만듭니다.

이때, A 사용자가 화살을 과녁에 맞추면, EOS 블록체인의 스마트컨트랙트를 호출해서 A사용자의 지갑에 토큰 한개 전송 되도록 해주면 됩니다.

스마트 컨트랙트는 code로 구현되며, 처리시간, 파일크기, 변수타입 등의 제약사항이 있을 수 있기 때문에 최대한 심플하고 꼭 필요한 로직만을 담아 개발되는 것이 좋습니다.

코드의 양으로만 비교하면, 

스마트 컨트랙트는 대부분 수십~수백 Line 정도일 것입니다. 따라서, 화살게임 자체를 구현하는 부분의 비중은 훨씬 크겠지요..

 

예시2)

아이디어가 뭔진 모르겠지만, 에브리피디아 등 처럼 제한된 토큰의 수량을 에어드랍을 통해 발행하고자 합니다.

아이디어 부분을 개발해야 하고, 토큰에 대한 스마트 컨트랙트를 만들어야 겠지요.

(스마트 컨트랙트에는 제한된 발행량과 토큰 전송에 대한 부분이 코딩 되어 있습니다.)

스냅샷 날짜/시간이 도래하여 에어드랍을 신청한 각 계정/지갑의 이오스 코인수를 쫘악 기록 해둡니다.

에어드랍 날짜가 도래하여 이미 스냅샷을 찍어둔 정보를 기반으로, 스마트 컨트랙트를 호출하여 각 계정/지갑으로 토큰을 전송시켜 줍니다.

이 예시 또한, 코드의 양으로만 본다면, 아이디어부 대비 스마트컨트랙트부의 코드 Line 수는 그리 많지 않을 것입니다.

 

Dapp 이란 것이 일반 S/W 프로그램들보다 매우 거창한 것이 아니라,

일반 S/W프로그램과 마찬가지로 아이디어를 구현하고, 추가적으로 스마트컨트랙트를 구현해주고,

EOS 블록체인에 구현한 스마트 컨트랙트를 Deploy(Upload?) 해준다음, EOS의 블록체인으로부터 해당 스마트컨트랙트를 호출해서 사용하면 되는 것입니다.

 

즉, 블록체인이라는 메인넷 시스템은 Node들을 통하여 운용되고 있는 것이고, Dapp 들은 그 블록체인으로부터 필요한 기능들을 호출해서 사용 할 뿐입니다.

 

 

Profile
2
Lv

1개의 댓글

Profile
변견
2018.03.29

처음 Dapp을 개발하려는 분들에게 도움이 많이 되겠네요...

 

감사합니다.

Profile
추천 수 제목 글쓴이 날짜
0 EOS.IO 질문 재식 2018.09.04
0 EOSIO DEEP DIVE 페이스북 그룹 소개 smarteasy 2018.08.21
0 EOSJS 시작하기 ogaeng 2018.08.01
0 테스트넷(정글넷) 에서 account 생성할때 램이 부족하다고 오류가 뜹니다. 1 카이쿵 2018.07.17
0 EOS 1.0.5 테스트 노드 계정 생성 에러 3 kai 2018.06.20
4 메인넷 연결을 위한 EOS seed list, config.ini, genesis.json 정보 공유 드립니다. 1 팔오사이 2018.06.11
0 메인넷의 HTTP API 접근 방법 공유 드립니다. 1 팔오사이 2018.06.11
0 Dapp 개발 입문을 해보고 싶습니다. 2 프라다 2018.06.09
0 Dapp 과 Block 과의 관계에 대한 질문요. 2 어카우 2018.05.23
2 제2회 EOS 개발자 밋업을 개최합니다. 10 profile eric 2018.05.21
0 eos 소스 분석 모임을 만들고 싶습니다 이더킬러 2018.05.18
5 EOS Commander 가 dawn4.0 지원하도록 업데이트되었습니다. 3 profile eric 2018.05.17
1 EOS Dapp을 개발해 보고 싶어요. 2 카이쿵 2018.05.12
7 BigInteger library for EOSIO profile eric 2018.05.02
8 JAVA/안드로이드 환경에서 EOS dApp/지갑 개발 4 profile eric 2018.05.02
8 Docker로 EOS Node 쉽게 실행하기 4 profile LeafCat 2018.04.17
0 cleos wallet create error 2 profile veramonte 2018.04.10
0 EOS Dawn 3를 설치하면서... 4 profile 변견 2018.04.09
7 #1. EOS.IO 스마트컨트랙트 개발을 위한 가상 머신 설치하기 by nsjames 1 profile 서리 2018.04.09
5 EOS Source를 분석하는 모임을 만들고자 합니다. 10 profile 변견 2018.04.08
5 웹 어셈블리의 오해와 진실... 5 Wysam 2018.03.29
1 Dapp 개발 난이도..? 1 팔오사이 2018.03.28
3 EOS기반 Dapp 개발을 위한 문서 및 EOS 개발자 텔레그램 방 Link 2 팔오사이 2018.03.28
0 EOS에서 Smart Contract를 개발 할때...??? 3 profile 변견 2018.03.28
9 EOS와 Ethereum의 차이점 7 profile 변견 2018.03.28
0 좋네요 오스신 2018.03.26
0 정말 필요했던 부분이네요...^^ profile 변견 2018.03.26
1 오 개발 소모임이군요 profile 스트라티스 2018.03.26
서버에 요청 중입니다. 잠시만 기다려 주십시오...