ETHDenver를 다녀오며, DApp 개발에 대한 단상

in #ethdenver6 years ago (edited)

2018년 2월 16일에서 18일까지 이더리움 재단에서 지원하는 이더리움 덴버 해커톤에 다녀왔습니다. 해커톤에 대해 모르시는 분이 혹여나 계신다면 해커톤이란 하나의 주제 및 이념 아래 해커들, 디자이너들, 그리고 참신한 아이디어를 지닌 모든 이들이 함께 모여 정해진 시간동안 개발에 몰두하는 일종의 컨퍼런스라 생각하시면 되겠습니다. 매너리즘에 빠져 창의적이고 에너지 넘치는 아이디어가 더이상 나오지 않을때, 해커톤에 참여하여 다양한 사람들과 만나 함께 밤을 새워 코딩 하다 보면 어느새 열정이 샘솟음을 느낄 수 있습니다. 정말 많은 기발한 프로젝트들이 탄생하게 됩니다.

사실 저는 기존 Decentralized Application (이하 DApp)개발 경험이 있었던 것도 아니고 암호 화폐 및 블록체인에 대한 일반적인 수준의 관심과 흥미가 있었을 뿐 뜨거운 열정이 있었던 것은 아닙니다. 하지만 우연히 전 회사 동료의 소개로 ETHDenver 주최 소식을 접하게 되었고 함께 팀을 꾸려 참여하게 되었습니다. 교통편과 숙박비가 다소 부담이 있기는 했지만 다행히도 ETHDenver측에서 소량의 장학금을 전달받게 되어 큰 금전적 부담없이 다녀올 수 있었습니다. 다시 한번 재단에는 감사의 말씀을 드립니다.

https://ethdenver.com/

ethdenver2.jpg

600~700 명 가량의 참여자가 있었고, 131개의 최종 프로젝트 제출이 있었습니다. 3일간의 컨퍼런스 진행중 지속적으로 Workshop과 Tech Talk들이 병행되어 Solidity, Truffle, ERC721, Security, Governance 등 이더리움 블록체인 개발을 관통하는 뜨거운 주제들에 대한 강연들이 진행되었습니다. Consensys, Gitcoin, Storj 등등 쟁쟁한 스폰서 회사들과 파트너사들이 진행하는 45분 단위의 워크숍들은 DApp 개발에 대한 실무적 경험이 없더라도 현장에서 보고 배울 수 있는 기회를 제공해 주었습니다.

ethdenver3.jpg

해커톤의 메인 주제는 이더리움 네트워크를 이용한 DApp의 개발이었습니다.

그렇다면 DApp (Decentralized Application) 이란 무엇일까요. 2000년대 초반 이후로 우리는 Web2.0에 기반한 Interactive Web Platform에 익숙해져 있습니다. Web1.0 시대의 Personal Computer를 이용한 개인의 탈중앙화된 서버 호스팅에서 벗어나 Web2.0에 도래해서는 Centralized 된 Cloud가 등장하기 시작했고 AWS, Azure, GCP 등을 필두로 극도의 중앙화된 컴퓨팅 시스템에 우리는 많은 것들을 의존하고 있습니다. 어쩌면 그들에게 너무나 많은 힘을 위임하고 있는 것일지도 모르지요.

여기서 이더리움이 등장합니다. 이더리움은 탈중앙화되어 분산된 어플리케이션 플랫폼을 지향합니다. Distributed Computer Platform으로서 블록체인 위에 돌아가는 Smart Contract를 이용한 사용자간의 계약, 이벤트의 발생 그리고 블록위에 저장되는 다양한 정보들, 각기 다른 프로토콜을 이용한 토큰들 등을 이용하여 Turing Complete한 블록체인을 이루어 냈습니다. 기본적인 연산 수준의 한계를 지니니고 있던 비트코인의 블록체인에서의 진일보한 발전이였지요. 이는 이더리움 블록체인 자체만으로 웹 어플리케이션 개발이 가능함을 의미합니다. For loop, Inheritance 등 기본적인 프로그래밍의 요소들을 모두 갖추고 있는 Solidity를 통한 Smart Contract의 짜임은 이더리움 블록이 단순 저장 매체가 아닌 복잡한 연산이 가능한 컴퓨터처럼 동작하게 도와줍니다.

탈중앙화된 Web3.0 에서 이미지, 영상 등 블록체인 위에 올릴수 없는 큰 용량의 스태틱 파일들은 IPFS와 같은 분산화된 저장시스템을 활용합니다. https://ipfs.io/

DApp은 블록체인위에 돌아가는 탈중앙화된 어플리케이션입니다. 중앙화된 데이터베이스도 필요하지 않은 것이지요. 이로서 Single Point of Failure 는 존재하지 않게 됩니다. Web3.js 를 통해 스마트 컨트랙트와 소통하고, IPFS에 데이터를 저장하고, Solidity로 스파트 컨트랙트를 짜며, Truffle framework을 활용하여 개발하는 DApp은 현재 중앙화된 Web2.0에서 탈중앙화된 Web으로 회귀하는 Web3.0의 가치와 가장 부합하는 어플리케이션 개발방식일지 모르겠습니다.

앞으로 스팀에 꾸준히 저의 블록체인 공부와 DApp 개발 이야기를 기록할 예정입니다. 저의 블록체인으로의 여행기가 저뿐만 아니라 다양한 사람들이게 도움이 되었으면하는 바람입니다.

Sort:  

유익한 글이네요

흥미로운 내용이네요.

Congratulations @outpark! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

You published your First Post
You got a First Vote

Click on any badge to view your own Board of Honor on SteemitBoard.

To support your work, I also upvoted your post!
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

Upvote this notification to help all Steemit users. Learn why here!