이더 리움 개발 | 이더리움 Dapp 개발 #1 | 블록체인 Dapp 개발에 필요한 기본적인 개발 도구 설명 25241 투표 이 답변

당신은 주제를 찾고 있습니까 “이더 리움 개발 – 이더리움 Dapp 개발 #1 | 블록체인 DAPP 개발에 필요한 기본적인 개발 도구 설명“? 다음 카테고리의 웹사이트 ppa.maxfit.vn 에서 귀하의 모든 질문에 답변해 드립니다: https://ppa.maxfit.vn/blog/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 코인하는 개발자 이(가) 작성한 기사에는 조회수 6,663회 및 좋아요 97개 개의 좋아요가 있습니다.

이더 리움 개발 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 이더리움 Dapp 개발 #1 | 블록체인 DAPP 개발에 필요한 기본적인 개발 도구 설명 – 이더 리움 개발 주제에 대한 세부정보를 참조하세요

안녕하세요, 코인하는 개발자 입니다.
이번에는 이더리움 블록체인 Dapp 개발에 필요한 기본적인 개발 도구에 대해서 설명하였습니다.
감사합니다.

이더 리움 개발 주제에 대한 자세한 내용은 여기를 참조하세요.

이더리움 개발자 참고자료 | ethereum.org

이더리움에서 개발하는 개발자를 위한 문서, 튜토리얼, 도구가 준비되어 있습니다.

+ 더 읽기

Source: ethereum.org

Date Published: 12/5/2022

View: 5632

이더리움 핵심 개요 정리 1 – Blockchain 개발

이더리움 스마트 컨트랙트의 본격적 개발에 앞서 이더리움 개념을 좀 … 이더리움은 이더(Ether, ETH)라고 불리는 내부 화폐를 가지고 있습니다.

+ 여기에 표시

Source: opentutorials.org

Date Published: 11/27/2021

View: 5121

이더리움 디앱(dApp) 개발과 프로젝트, 블록체인 스마트 컨트랙트

블록체인과 이더리움. 스마트 컨트랙트와 디앱에 대한 이해. 솔리디티 문법 기초와 심화. 디앱 개발을 위한 다양한 도구들. 간단한 디앱 프로젝트.

+ 더 읽기

Source: www.inflearn.com

Date Published: 2/8/2021

View: 5310

초보자들을 위한 이더리움 DApp 만들기 – Medium

Solity 언어로 이더리움 기반의 탈중앙화된 애플리케이션(Decetralized applications)을 만드는 과정을 이해할 수 있게 썼습니다. *기초적인 웹 개발 …

+ 여기에 보기

Source: medium.com

Date Published: 2/23/2022

View: 8973

이더리움 개발 – 누구나 할 수 있는 솔리디티(Solidity) 언어 #1

사설 네트워크에 이더리움도 있겠다 계좌도 여러개 있겠다 이제는 본격적으로 스마트 컨트랙트(Smart Contract)를 구현하기 위한 솔리디티(Solity) …

+ 여기에 보기

Source: needjarvis.tistory.com

Date Published: 8/20/2021

View: 7129

이브모스 “이더리움 개발 툴을 코스모스로 옮긴다” – 코인데스크

좀 더 자세히 설명하자면, 메타마스크(MetaMask)나 파운드리(Foundry) 등 이더리움을 위해 개발된 도구를 코스모스에 그대로 갖다쓰면 전체 생태계가 …

+ 여기에 표시

Source: www.coindeskkorea.com

Date Published: 6/16/2021

View: 4875

이더리움 – 나무위키:대문

비트코인과 더불어 대표적인 암호화폐로 널리 알려져있지만, 이더리움의 가장 … 빠른 개발 시간, 작고 드물게 사용되는 애플리케이션을 위한 보안, …

+ 더 읽기

Source: namu.wiki

Date Published: 10/19/2022

View: 5880

[Smart Contract 개발] #5 이더리움 개발 관련 책 및 개발 자료 소개

이타인클럽입니다. 아주 오래전에 이더리움 스마트 컨트랙트 개발 관련 글을 포스팅했었습니다. 이전글 – Smart Contract 개발 #4 Ethereum Virtual Machine (EVM)… by …

+ 여기에 자세히 보기

Source: steemit.com

Date Published: 5/12/2021

View: 1446

이더리움 디앱 개발

이 책은 이더리움 플랫폼에서 디앱을 개발하는 과정을 다룹니다. 탈중앙화 앱의 개념부터 블록체인, 이더리움, 스마트 컨트랙트를 소개하며 디앱 작동 방식을 설명 …

+ 여기를 클릭

Source: www.hanbit.co.kr

Date Published: 12/22/2021

View: 4994

디앱(Dapp) 개발 로드맵 – 브런치

하지만 이더리움이라는 놈이 등장하고 새로운 개념의 블록체인 확장 기술 중 핵심이 되는 ‘스마트 컨트랙트’라는 기술을 세상에 선보이면서 암호화폐 거래 …

+ 여기에 더 보기

Source: brunch.co.kr

Date Published: 8/8/2022

View: 9653

주제와 관련된 이미지 이더 리움 개발

주제와 관련된 더 많은 사진을 참조하십시오 이더리움 Dapp 개발 #1 | 블록체인 DAPP 개발에 필요한 기본적인 개발 도구 설명. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

이더리움 Dapp 개발 #1 | 블록체인 DAPP 개발에 필요한 기본적인 개발 도구 설명
이더리움 Dapp 개발 #1 | 블록체인 DAPP 개발에 필요한 기본적인 개발 도구 설명

주제에 대한 기사 평가 이더 리움 개발

  • Author: 코인하는 개발자
  • Views: 조회수 6,663회
  • Likes: 좋아요 97개
  • Date Published: 2021. 5. 1.
  • Video Url link: https://www.youtube.com/watch?v=18JOq1vQReE

이더리움 개발자 참고자료

개발자 참고자료 소개

ethereum.org는 이더리움으로 개발하는 데 도움이 되는 기초 개념 및 개발 스택 관련 문서가 제공되는 공간입니다. 초심자가 빠르게 익숙해질 수 있도록 돕는 튜토리얼도 준비되어 있습니다.

Mozilla Developer Network에서 영감을 받아 개발자 콘텐츠와 참고자료가 모여 있는 클럽하우스가 이더리움에도 필요하다고 생각했습니다. 우리의 친구 Mozilla처럼 여기 있는 모든 내용은 오픈 소스로, 여러분이 직접 내용을 보강하고 개선할 수 있습니다.

피드백이 있다면 GitHub 이슈 또는 Discord 서버를 통해 알려주세요. Discord 참여하기

이더리움 디앱(dApp) 개발과 프로젝트, 블록체인 스마트 컨트랙트 – 인프런

입문자를 위해 준비한

[블록체인] 강의입니다.

블록체인에 대한 용어의 설명과 기본 구조, 새로운 디앱을 개발하기 위한 방법을 이해하고 싶은 분들 위해 제작되었습니다. 프로그래밍에 대한 아주 기초적인 지식만 있더라도 개발을 진행해보실 수 있도록 구성하였습니다.

✍️

이런 걸

배워요! 블록체인과 이더리움 스마트 컨트랙트와 디앱에 대한 이해 솔리디티 문법 기초와 심화 디앱 개발을 위한 다양한 도구들 간단한 디앱 프로젝트

디앱 개발, 처음부터 차근차근 시작해보세요!

떠오르는 기술, 블록체인 디앱 ✨

블록체인 입문부터 디앱 프로젝트까지 한번에 끝! 이더리움 VSCode Node.js 트러플 가나슈 게스 메타마스크 스마트 컨트랙트 구현을 위한 다양한 스킬을 배울 수 있습니다.

블록체인은 과거부터 4차 산업혁명의 미래 혁신 기술 중 하나로 떠오르고 있습니다. 최근에는 NFT, P2E, DeFi 등 다양한 기술과 함께 결합되어 여러 분야의 애플리케이션이 탄생하였습니다. 특히 블록체인 상에서 사라지지 않는 애플리케이션, 통칭 디앱(dApp)은 게임이나 경제, 교환, 시장 등 다양한 분야로 발전하였고 블록체인 활성화와 성장 발판을 마련하게 되었습니다.

이뿐 아니라 블록체인은 현재도 속도, 비용, 확장성 면에서 더욱 발전하고 있습니다. 디앱은 이러한 블록체인의 기술들과 상호작용 관계로 훨씬 더 많은 디앱을 개발하게 될 것으로 기대되고 있습니다.

우리는 이러한 시장에서 기본적인 지식을 통해서 앞으로 더 발전하여 데이터의 보안이나 공개를 다루는 분야, IoT, AI 등 추가로 발전될 플랫폼에서 움직일 수 있도록 디앱에 대한 기초에 대해 소개하려 합니다.

이 강의에서는

이런 내용을 배워요 📚

✅ 이런 분들께 추천합니다! 블록체인 용어 설명 및 기본 구조부터, 새로운 디앱을 개발하기 위한 방법을 알고 싶은 분들께 적합한 강의입니다.

프로그래밍에 대한 아주 기초적인 지식만 있더라도 개발을 진행해보실 수 있도록 구성하였습니다.

1. 블록체인 개요 블록체인이란

장점 · 단점

개발 목적

채굴 2. 스테이블 · 알트 코인 코인 분류

이더리움, 라이트, 이더리움 클래식

법정화폐 담보, 암호화폐 담보, 알고리즘 기반 3. 이더리움 개요 비트코인의 발전

아키텍처

암호화 방식 4. 이더리움 구성요소 – 1 EVM

P2P Network

어카운트

가스비와 가스

가스 시세 확인 방법 5. 이더리움 구성요소 – 2 이더리움 플랫폼 (합의, 실행, 데이터 계층)

트랜잭션

채굴 합의 알고리즘

Nonce 6. Node.js Javascript와 Node.js

npm 패키지 매니저

여러 가지 패키지들

설치 방법 7. VSCode IDE

클라우드 IDE와 로컬 IDE

설치 방법 8. Truffle 프레임워크

설치 방법 9. Ganache 가나슈 (가상의 이더리움 네트워크)

설치 방법 (초콜릿) 10. Geth 여러 가지 이더리움 플랫폼

설치 방법 11. Chrome 설치 방법 12. Metamask 메타마스크

설치 방법 13. dApp 개념

유명 디앱

스마트 컨트랙트 14. 프라이빗 네트워크 이더리움 네트워크 종류

제네시스 블록

개인 네트워크 구축 방법 15. 솔리디티 기본 문법 (값 타입, 함수 타입, 함수 제어자)

심화 문법 (접근 제어자, 트랜잭션 구성 요소) 16. 리믹스 구성 요소

사용 방법

함수 로그 보는 법 17. 호텔 예약 프로젝트 (리믹스를 통한 간단한 예약 스마트 컨트랙트 작성) 작성 방법

배포 방법 18. ECR20 이더리움 프로토콜과 토큰

Ropsten 네트워크

테스트 이더 발급

메타마스크 연결 19. Web3.js 라이브러리

고래의 이더리움을 확인하는 간단 웹 구현 20. 펫샵 프로젝트 개요 트러플 박스

프로젝트 구성 요소

진행 순서 21. 컨트랙트 작성과 마이그레이션 깃 다운로드, 박스 구성요소

컨트랙트 작성

마이그레이션 22. 펫샵 테스팅 테스팅 이유와 방법 23. 메타마스크 연결 실 사용을 위한 연결 방법 24. 프로젝트 사용

호텔 예약 프로젝트 中

학습 내용을 꼼꼼히 정리한

강의 PPT가 함께합니다 💡

여러분이 실습을 차근차근 따라올 수 있도록 체계적인 PPT와 함께 단계별로 정성껏 강의를 진행합니다.

강사 소개 👨‍🏫

보안프로젝트 권승민 전임 강사

보안프로젝트 앱 개발, IoT 연간 강의 진행

인프런 “디파이 킹덤 P2E(Play to Earn)로 투잡하기” 강의 진행

쿠버네티스 환경 취약점 분석 플랫폼 개발

플러터 온라인 스터디 모임 연간 진행

IT보안 모의해킹 프로젝트 다수 참여

KISA-실전형 사이버훈련장 개발 프로젝트 참여

안드로이드 앱 개발에 딱 맞는 플러터와 다트 입문 공동 저술

시스템 해킹 프로토스타 1부, 2부 공동저술

권승민 강사의 다른 강의 📌

지식공유자가 알려주는

강의 수강 꿀팁!

🎓

이런 분들께

추천드려요! 블록체인과 디앱에 대해 알고 싶으신 분 스마트 컨트랙트를 통해 간단하게 디앱을 개발해보고 싶으신 분 솔리디티 문법에 대해 이해하고 싶으신 분 이더리움에 관심이 있으신 분

누구나 할 수 있는 솔리디티(Solidity) 언어 #1

우리는 그동안 Geth를 이용하여 사설 네트워크에서 계좌 생성 및 채굴을 해보고, Mist GUI 브라우저를 이용하여 추가 계좌 생성 및 송금을 해보는 것들을 테스트 해보았습니다. 사설 네트워크에 이더리움도 있겠다 계좌도 여러개 있겠다 이제는 본격적으로 스마트 컨트랙트(Smart Contract)를 구현하기 위한 솔리디티(Solidity)를 시작해보도록 하겠습니다.

들어가기에 앞서 우선 잠깐, 스마트 컨트랙트에 대해서 복습을 해보겠습니다. 스마트 컨트랙트는 우리가 누군가와 계약(Contract)을 하기 위해서는 중간의 신뢰하는 사람이나 기관을 넣을 필요가 없게 만드는, 탈중앙화 계약 시스템입니다.

즉, 내가 누군가와 계약을 한 사실을 모든 사람들에게 공표를 함으로써, 자동적으로 참여하는 노드들과 기록들이 그 증거로 남는 것이 스마트 컨트랙트입니다. 계약을 코딩으로 구현을 하여, 거짓말을 할 수 없게 되고 블록체인의 특성상 수정이 불가능하기 때문에 부인방지의 역할도 가능하게 됩니다.

스마트 컨트랙트에 대해서 복습이 되셨나요? 혹시 이해가 가물가물 하시면, 제가 포스팅한 이더리움을 한번 읽어보시면 도움이 될 것 같습니다.

What is Solidity?

솔리디티는 기존에 있던 언어가 아닌 이더리움의 스마트 컨트랙트를 구현하기 위해서 만들어진 이더리움 전용 언어입니다. 솔리디티는 Python, C++, Javascript같은 널리 알려진 언어와 사용법이 유사하며, EVM(Ethereum Virtual Machine)에서 구동되어 집니다.

이더리움은 기본적으로 무작정 솔리디티 코드를 짜는 것보다는 검증된 모범사례를 참고해서 작성되는 것을 권유하고 있습니다. 코인이 전달되는 코드이기 때문에, 잘못 짠 소스는 악의적인 해커(Hacker)들의 먹잇감이 될 수 있기 때문에 검증된 모범사례(Best Practice)의 코드가 아니라면 상당 기간의 코드리뷰(code review), 테스팅(testing), 감사(audit), 정확성증명(correctness proofs) 작업이 들어가야 할 것입니다.

http://solidity.readthedocs.io/en/develop/index.html

지원하는 개발 환경(IDE)

솔리디티는 생각보다 다양한, 개발 환경을 지원합니다. 브라우저 기반의 Remix부터 범용적으로 많이 쓰이는 IDE 툴들인 IntelliJ, Visual Studio에서 Solidity Plugin을 설치하면 사용이 가능할 정도입니다.

이외에도 다양한 개발 환경을 지원합니다

다양한 툴들에 대한 비교는 추후, 시간이 되면 작성을 해서 올리도록 하겠습니만, 일단 가장 많이 쓰고 있는 브라우저 기반의 개발 환경인 Remix에서 진행을 해보도록 하겠습니다.

Remix 설치 Step by Step

Remix를 다운로드 하여, 실행하는 Step by Step을 해보도록 하겠습니다.

Remix는 https://github.com/ethereum/browser-solidity/tree/gh-pages에서 다운로드 받을 수 있으며, Clone or download를 클릭 후, Download ZIP을 클릭하여 다운로드 받고, 파일을 실행하여 원하는 곳에 압축을 풀겠습니다.

Clone or download로, 압축 파일을 받습니다

원하는 곳에 압축을 풉니다. 참고로 저는 c:/remix에 압축을 풀어서, 경로가 “C:\remix\browser-solidity-gh-pages”이 만들어 졌습니다.

index.html 파일을 더블 클릭하여 실행 합니다. 빈 페이지가 뜬다면, 크롬(Chrome) 이나 웨일(Whale) 브라우저 등으로 구동을 합니다. 제 Internet Explorer는 구동이 안되는 걸 확인했습니다.

Hello World!!

개발자들은 처음 특정 언어를 배울때 제일 처음에 하는 코딩이 있습니다. 바로 “Hello World!”인데요. 솔리디티판 Hello World가 있습니다.

SimpleStorage라는 Contract를 구현하는 것이 솔리디티판 Hello World입니다. 이 예제는 값을 입력하면, 그 값을 그대로 출력하는 프로그램입니다.

remix의 왼쪽 윗 부분을 보면 +(플러스) 모양의 아이콘이 보입니다. 해당 아이콘을 클릭하면, 윗상단에 팝업창이 뜨면서, File Name을 입력하는 공간이 나옵니다. 여기에 SimpleStorage.sol 을 입력하고, OK 버튼을 클릭합니다.

그럼, 빈 공간이 나오는데 여기에 SimpleStorage 소스를 입력합니다.

1 2 3 4 5 6 7 8 9 10 11 12 13 pragma solidity ^ 0. 4. 24 ; contract SimpleStorage { uint storedData; function set(uint x) public { storedData = x; } function get() public constant returns (uint) { return storedData; } } Colored by Color Scripter cs

위 소스를 복사하여 사용합니다.

소스 설명

맨 위에 있는 pragma solidity는 해당 솔리디티를 어떤 버전으로 컴파일(Compile) 할 것이냐라는 의미입니다. 저는 0.4.24 버전으로 컴파일 한다는 것이고, 여기서 컴파일은 사람들이 식별할 수 있는 언어를 기계들이 이해할 수 있는 언어로 변환하는 것을 뜻합니다. 한마디로 저 소스를 기계들이 이해할 수 있게 기계어로 번역을 한다는 뜻입니다.

이제 한줄씩 소스를 설명해드리도록 하겠습니다.

1. contract SimpleStorage { 소스 } 우선 컨트랙트 명을 SimpleStorage로 이름을 짓겠다는 뜻입니다.

2. uint storedData; storedData라는 이름의 변수를 정수형(Integer)으로 선언한다는 의미입니다. 즉, storedData라는 곳에는 정수형밖에 들어가지 못합니다. 여기에 문자를 넣으면, 에러가 발생하게 됩니다.

3. function set(uint x) public { 소스 } 펑션은 하나하나 기능을 선언하는 것인데 set이라는 이름의 이 펑션은 x라는 정수형 변수만 받게 선언이 되어 있고, 해당 값을 storedData라는 변수에 세팅하게 됩니다. 즉, 해당 펑션이 선언 된 후, set(1)이라고 하면, x에 1이라는 값이 세팅이 되고, x의 값은 다시 storedData에 들어가게 되어서 결국에는 storedData에 1값이 들어가는 매우 간단한 예제입니다.

4. function get() return uint { 소스 } get 메소드는 정수형으로 리턴을 하는 펑션인데, 소스의 내용을 보면 return storedData 입니다. 즉, get()을 호출하면, storedData에 담겨져 있는 값을 그냥 출력하는 펑션입니다. 우리가 set() 펑션에 100값을 넣고, get()을 호출하면, 100이 출력이 되는 매우 간단한 컨트랙트 예제입니다.

이제 이 소스를 컴파일 한 후, 실행을 해보도록 하겠습니다.

소스 컴파일

소스가 모두 입력이 되었으면, Start to compile 버튼을 클릭합니다. 소스에 오타가 나지 않았다면, 문제가 없이 컴파일이 될 것입니다.

위 캡쳐화면처럼, SimpleStorage로 변경된 것을 볼 수 있습니다. 에러가 없다면, 위와 같이 정상적으로 SimpleStorage 부분이 뜨게 됩니다.

소스 실행

Compile이 완료되었으면, Run 메뉴를 선택합니다.

Create 버튼을 클릭하면, 아래 붉은색 네모박스처럼, get과 set 펑션이 보이게 됩니다. set에 값을 넣어보도록 할텐데요 일단 우리 생각처럼 정수형만 되는지 값을 문자와 소수값을 넣어보도록 하겠습니다.

a를 입력하고, set 버튼을 “클릭” 합니다. 그러니, 회색부분의 네모 부분처럼 에러가 발생하였습니다. Error encoding arguments 즉, 아규먼트가 잘못되었다는 것인데, 선언된 것은 숫자형인데 문자열을 전달해서 그렇습니다. 그러면, 소수값을 넣어보도록 하겠습니다.

소수값은 예상과 다르게 정상적으로 작동이 되며, 소수점 밑은 모두 절삭해서 들어가 있습니다. 값을 출력해보고 싶으시면, get 버튼을 누르시면 됩니다. 화면처럼 “0: uint256: 2” 라는 값이 나오는 것을 확인할 수 있습니다.

한가지 더 테스트를 해볼텐데요 uint형이 소수값을 혹시 인식하고 있는지를 테스트 해보도록 하겠습니다.

uint storedData에 1을 넣어보고 컴파일을 해보니 이상이 없이 컴파일 되는 것을 확인 할 수 있었고, 아래는 1.5를 넣으니, 컴파일이 안되며 에러가 뜨는 것을 확인할 수 있습니다. 즉 uint에는 소수값이 들어가면 인식이 안된다는 것을 알 수 있습니다.

참고로 테스트를 하실 때, 마이너스 정수형은 인식이 안되는 것을 확인하실 수 있을 겁니다. -1 같은 값을 넣을 경우 에러가 발생하게 되는데요. 그 이유는 uint의 형에서 u가 unsigned의 약어로 양수만 인식한다는 것을 의미합니다.

마이너스값을 넣고 싶으면, uint를 모두 int로 변경을 합니다.

set에 -2를 넣었는데, get으로 -2가 출력이 되는 것을 확인할 수 있습니다. 이처럼, 변수형 선언은 신중히 고민하고 선언을 해야 나중에 스마트 컨트랙트에 문제가 없을 것입니다. 만약 선언을 잘못하여 에러가 발생할 수 있는 코드를 작성할 경우, 해커들은 취약한 부분을 노리고 어떻게든 에러를 유발하여, 작동에 이상을 가게 만들거나 토큰을 갈취할 수 있다는 점을 명심하실 바랍니다.

다음에는 좀 더 난이도가 있는 컨트랙트 예제로 설명을 해보겠습니다. 🙂

이브모스 “이더리움 개발 툴을 코스모스로 옮긴다”

닉 Z 이브모스 공동 설립자. 출처=블리츠랩스

이브모스(Evmos)는 이더리움 가상머신(EVM)과 코스모스(Cosmos)의 합성어다. 이름 그대로 이브모스의 목표는 EVM 개발자 도구를 그대로 가져와 코스모스 블록체인 개발자들이 쉽게 활용할 수 있도록 하는거다.

좀 더 자세히 설명하자면, 메타마스크(MetaMask)나 파운드리(Foundry) 등 이더리움을 위해 개발된 도구를 코스모스에 그대로 갖다쓰면 전체 생태계가 확장되고 더 풍부해질 것이라는 취지로 설립된 프로젝트가 이브모스다. 지난 4월 출시된 것으로 이제 막 싹트려는 중이다.

지난달 28일 블리츠랩스가 주최한 2022 코리아 웹3 로드쇼와 핵아톰 서울(HackAtom Seoul 2022) 행사에 참석하기 위해 서울을 방문한 이브모스 공동 설립자 닉(Nick)을 만났다. 닉은 이브모스 네트워크 참여자들이 거버넌스 절차에 따라 모은 자금으로 자신을 서울로 파견했다고 말했다.

이브모스의 원조는 2016년쯤 개발된 이더민트(Ethermint) 체인이다. 코스모스 SDK(블록체인 개발 툴)로 구축된 이더민트는 이더리움 블록체인과 연동된 지분증명(POS) 체인이었다. 하지만 닉에 따르면 이더민트는 제대로 개발되지 않은 채 방치됐다. 2021년 캘리포니아 대학교 버클리에 다닐 때 닉은 동기 몇 명과 이더민트 개념을 다시 살리고자 하여 이브모스를 만들기 시작했다.

닉 Z 이브모스 공동 설립자. 출처=블리츠랩스

거버넌스는 커뮤니티에 맡긴다?

이브모스는 이더리움 생태계 개발자들을 코스모스 생태계로 유인하기 위해 각종 인센티브(incentive)를 제공하고자 한다. 예를 들어 댑(dapp, 탈중앙화 앱) 개발들이 코스모스 체인에서 프로젝트를 진행하면 자신들이 만든 스마트계약으로 이루어지는 모든 거래에 대한 수수료를 받을 수 있다. 그래야 토큰 발행과 판매 등으로 돈을 안 벌어도 되고 개발에 더욱 집중할 수 있다.

나는 준비된 질문을 최대한 간소화해서 닉에게 던졌다.

코스모스의 유동성 허브 오스모시스(Osmosis)라는 유동성(LP) 풀이 있다. 오스모시스 LP 풀의 외부 플랫폼 인센티브량은(external incentives)는 이브모스 거버넌스 페이지를 통해서 결정된다고 한다. 하지만 이브모스에서 받는 EVMOS 토큰 이자를 오스모시스 플랫폼에서 덤핑하는 사용자가 상당하다고 한다. 스테이킹 등을 통해 덤핑 문제에 대한 해결 방안이 있느냐고 물었다.

닉은 이브모스가 출시된 지 겨우 2달밖에 안 됐다면서 아직 유동성이 제대로 잡히지 않았다고 인정했다. 그러나 네트워크에 대한 거버넌스 권한 중 약 60%가 창시자들이 아닌 커뮤니티에 주어진 상태로 프로젝트가 출발했다고 말했다.

“초창기 참여자들이 자신들의 토큰을 어느 정도 재분배하는 것이 예상됐다. 하지만 네트워크가 성숙해질수록 유동성이 안정될 것이다. 그렇게 되면 이런 덤핑 현상은 줄어들 것이다.”

나는 코스모스 기반 개발자들 중 레이어2로 확장하고자 희망하는 사람이 상당하다고 들었다고 말했다. 이와 관련해 코스모스 개발자들의 수요를 충족시키기 위한 계획이 있는지 물었다.

닉은 레이어2 체인들이 분명히 이브모스 생태계로 올 것이라고 말했다. 하지만 아직은 그런 움직을 위한 방안을 세우기는 너무 이르다고 말했다.

“현재는 개발자들이 어느 체인이든 다양하게 프로젝트를 구축할 수 있게 더 많은 옵션을 제공하는 것이 우선이다. 레이어2 확장 스토리는 나중의 일이다.”

그는 이브모스는 개발자들이 감수해야 할 리스크 등을 줄이면서 체인 간 “사다리 역할”을 해준다고 했다. 이브모스는 경로이지 최종목적지가 아니라고 강조했다.

“이브모스는 결국 커뮤니티가 엔진이고 계속 코스모스 생태계에 이익을 제공할 것이다.”

이브모스는 사용자와 개발자의 인센티브들이 일치하고 같은 방향으로 흘러가게 하는 것이 목표라고 마케팅해왔다. 하지만 사용자는 더 낮은 수수료를 원할 것이고 서비스와 댑을 만드는 개발자들은 더 높은 수수료를 통해 더 많은 이익을 챙기고 싶을 것이 당연한 일이다. 이런 인센티브 충돌 현상을 어떻게 해결할 것이냐고 물었다.

닉의 말에 따르면, 개발자들은 자신이 개발한 댑에 대한 수수료를 올리고 싶되 네트워크 전체에 대한 수수료를 올리고 싶지 않다. 왜냐면 네트워크 수수료가 너무 높으면 사용자 수가 줄어드니까. 그는 개발자와 밸리데이터 둘 다 사용자가 납득할 수 있는 수준의 수수료를 원한다고 주장했다. 그래야 네트워크 전체가 성장한다고 보는 것이다.

“우리가 위에서 지시하거나 설정하는 것보다 시장에 맡기면 사용자와 개발자들이 비효율적인 코드를 더 효율적으로 포크(fork)할 수 있을 것이다.”

그러면서 닉은 이브모스의 장점은 사용자들이 스스로 연구를 해서 거버넌스와 인센티브에 대한 제안서를 제출할 수 있어 웬만한 오류는 커뮤니티가 알아서 수정해나갈 수 있는 구조라고 주장했다.

“우리가 최고의 인센티브 구조가 뭔지 아는 척하지 않는다. 우리보다 훨씬 더 똑똑한 사용자가 많고 그들이 스스로 조사하고 구성해서 올린 제안서들을 통해 커뮤니티와 네트워크가 끊임없이 성장해나갈 수 있을 것이다.”

닉 Z 이브모스 공동 설립자. 출처=블리츠랩스

체인 간의 이동이 과연 좋은 것인지

이브모스는 체인 간의 연동성과 호환성을 내세우는 프로젝트다. 개발자들이 원하는 대로 체인을 선택하고 편리하게 댑을 개발할 수 있는 것이 목표다. 하지만 체인 간의 이동이 너무 쉬워지면 이더리움 같은 인지도가 높은 체인들이 너무 많은 개발자를 앗아가지 않을까? 이러한 현상은 제품 자기 잠식(product cannibalism)이라고 불리기도 하다. 이것을 어떻게 막을 것인가?

닉은 당분간은 EVM이 더 많은 개발자를 유인할 것이라고 인정했다. 하지만 결과적으로는 이브모스와 코스모스 간의 연동이 강해질수록 코스모스도 EVM와 같이 성장해나갈 것으로 기대했다.

“많은 체인에서 사용될 수 있는 댑이 늘어날수록 그 생태계의 연결된 모든 체인이 이익을 볼 것이다. 이것은 파이가 자기 잠식을 하는 게 아니라 전체 파이가 커지는 것이다.”

이브모스는 출시하면서 렉트드롭(rektdrop)이라는 초창기 EVMOS 토큰에 대한 에어드롭을 진행했다. 이브모스는 체인 간의 호환성을 강조하면서 최대한 다양한 형태의 지갑들을 지원했다. 하지만 결과는 지갑의 범위가 너무 넓어서 에어드롭 토큰의 약 70%가 클레임되지 않았다. 만일 이 에이드롭을 다시 진행한다면 어떻게 다르게 할 것이냐고 물었다.

닉은 지갑의 범위가 너무 넓었다고 인정하면서 앞으로 에이드롭을 진행한다면 어떤 지갑을 소유한 사용자들이 EVMOS 토큰을 적극적으로 받을지 사전 조사를 진행할 것이라고 말했다. 그는 이번 에이드롭에 참여하지 않은 지갑들을 찾아봤더니 대부분 이더리움 같은 체인에서 사용되는 것이라고 말했다. 반면 코스모스 체인에서 사용되는 지갑의 소유자는 적극 참여했다.

“솔직히 코스모스를 모르는 이더리움 사용자들이 얼마나 많은지 보고 깜짝 놀랐다”

URL복사

텔레그램

카카오톡

제보, 보도자료는 [email protected]

이더리움 디앱 개발

이더리움 디앱 개발 – 한빛미디어

불과 얼마전까지 가상화폐의 인기는 하늘을 찔렀다. 가장 유명한 가상화폐1개의 가격이 어지간한 왠만한 직장인의 1년치 월급, 즉 연봉보다 높아지는 기현상까지 벌어지고 말이다. 적잖이 놀라지않을 수 없었다. 지금은 한때 고공행진 할 때만큼은 아니지만 그럼에도 왠만한 신입사원의 1년치 연봉만큼의 교환가치를 갖고 있다. 이러한 낯선 무엇인가를 이제일상의 일부로 받아 들이고 있는 시점에서 우리 개발자들 혹은 기술자들은 대체 이것이 무엇이고 어떻게 동작하는 메카니즘인지에 대해 깊은 관심을 갖지않을 수 없다.

블록체인이라는 기술을 기반으로 생성되는 하나의 코인이 교환가치를 갖는다는 말을 그 누구도 믿지 않았다. 하지만, 금본위제가 무너진 지금의 화폐도 결국 가치를 가진다고 모두가믿을 뿐, 그 가치의 실체는 존재하지 않는다는 것을 모두가 안다. 그런데역으로 가치를 가지지만 실체는 없다고 솔직하게 말하는 이 코인의 세계는 정말 받아 들이기 어려운 것이 사실이다.

화폐가 중앙 은행에 의해 통제되는 현 상황을 벗어나고자 탈 중앙화를 외치며 등장한 블록체인 기반의 이 코인에대해서 우리는 기술적 측면으로 접근해보자.

우선 이더리움(또는 큐텀, 이오스) 의 플랫폼에서 동작하는 D-App 이라 불리는 탈중앙화 앱(De-Centralized Application)은 코인이라기 보다는 토큰이라는 의미가 더 가까운 암호화폐로동작하게 된다. 화폐라는 부산물 보다는 블록체인 기술이 메인이다.

이 책에서는 철저하게 코인이나 토큰 같은 화폐 대체제로서의 블록체인을 말하기 보다는 그러한 토큰이 발생하게 되는행위에서 구현되게 되는 스마트 컨트랙트, 즉 계약에 대한 기능을 어떻게 구현하고 시스템을 설계 및 보안유지 하는데에 필요한 내용을 서술한다.

이미 기존에 개발되어 있는 디앱들이 많이 있지만, 가장 많은 사용비율을 갖는 이더리움 플랫폼 기반의 디앱에 대해서 상세하게 소개하고 심지어 철저하게 개발자 입장을 고려하여 단위 테스트 방법까지도 이 책에서 소개하고있다.

많은 책들이 비트코인을 자산으로 여기고 이를 증식의 기회로 여기는 많은 사람들의 욕망을 자극해서 자동거래 라든가알고리즘을 이용한 거래라든가 제목을 붙여 결국 거래소에 API를 통해 거래하는 방법에 대해 적고 파는책들이 많은데, 그런 책들은 단지 기술에 대한 소비자의 입장일 뿐이고,이 책은 그 기술 자체에 집중한다. 기술적 접근이 아닌 자산 증식의 대상으로 여기고 접근하는경우 심히 어려울 수 있다.

스크립트 언어를 이해할 수 있을 정도의 개발자라면 이 책을 통해 학습하고 익숙해진 후에 스마트 컨트랙트에 대한이해도를 끌어 올리고 적합한 사업모델을 구상하고 실현한다면 큰 기회를 얻을 수 있을지도 모른다. 책을살펴보니 하나 하나 독립적인 내용은 이해하기 난해한 부분도 분명 있으나 개발자의 입장에서 사용해야 하는 언어 레벨에서의 접근에서는 큰 어려움이없다.

Node Js 로 간단하게나마 서비스를 만들어 본 개발자라면 이 책에대한 관심을 갖고 읽어본다면 블록체인, 가상화폐가 단지 대중의 투자(투기?) 대상에서 머물지 않을 것이라 확신한다.

데이터를 공개해야 되지만, 보안은 중요하거나, 공개되지 말아야 하지만 내용은 100 %의 신뢰도를 보장해야 하는경우, 그냥 앱이 아닌 디앱이 꼭 필요한 상황이 앞으로 수 없이도 많이 펼쳐지고 있다. 다른 플랫폼의 디앱도 분명 많이 있지만 가장 먼저 보편적으로 접근해 볼 수 있는 이더리움 디앱 개발을 시도해보자.

개발자들은 참 복되다. 이런 책 읽을 준비는 되어 있으니까…

를 목적으로 한빛미디어 출판사에서 책을 제공받아 작성된 서평입니다.”

디앱(Dapp) 개발 로드맵

본 로드맵은 디앱(Dapp)개발을 공부하기 위해 개인적으로 이것저것 찾아보며 정리한 내용을 토대로 만든 로드맵입니다. 개발 공부를 하는 방법이 여러 가지가 있겠지만 저는 무엇을 공부하기 전에 내가 공부하려는 분야 및 기술의 이해와 전체적으로 필요한 요소들을 정리해서 나열한 후 로드맵 형식으로 작성하는 것을 선호합니다.

로드맵을 만들면 좋은 점은 만약 내가 Dapp을 개발하기 위해 필요한 요소들이 무엇이고 어떤 것부터 준비해서 학습을 해야 할지 한눈에 볼 수 있어서 공부해야 할 요소들의 우선순위가 명확해지고 계획 달성 가능성이 더욱 높아지는 것 같습니다. 그래서 이번에도 Dapp 개발 전 당연히 관련 기술을 공부해야 하기 때문에 이렇게 필요한 기술 스택을 정리해서 로드맵으로 만들어봤습니다.

이걸 보면서 한 가지 참고해야 할 사항은, 저는 이분야(Dapp) 전문가도, 개발자도 아니며 이번에 처음 접해보는 기술이기 때문에 제가 작성한 로드맵이 정답은 아니라는 점입니다. 최대한 여러 매체를 통해 검증된 개발도구와 라이브러리 위주로 정리를 하려고 노력했다는 점만 알아주셨으면 좋겠습니다^^

디앱(Dapp, Decentralized Application) 이란?

이미지 출처 : https://coincode.kr/archives/9710

디앱은 Decentralized Application의 약자로 탈중앙화 분산 어플리케이션을 뜻합니다.

탈중앙화 분산 어플리케이션이라는 말은 최근 엄청 핫한 비트코인과 이더리움과 같은 암호화폐의 기반이 되는 기술인 블록체인 기술 위에서 돌아가는 어플리케이션이라는 뜻입니다.

하지만 비트코인은 비트코인 거래에서 발생하는 거래 및 장부 이외, 다른 일은 취급하지 못했습니다. 하지만 이더리움이라는 놈이 등장하고 새로운 개념의 블록체인 확장 기술 중 핵심이 되는 ‘스마트 컨트랙트’라는 기술을 세상에 선보이면서 암호화폐 거래에 국한되었던 기술을 다양한 산업에 적용할 수 있게 되었고 다양한 실험적인 시도와 도전이 이어지면서 컴퓨터, 인터넷, 모바일 시대의 뒤를 이을 새로운 혁신의 생태계를 만들어가고 있습니다. 저 또한 이러한 미래의 가능성을 보고 관련 시장과 기술을 공부하고 디앱을 직접 개발해보고 싶은 마음에 디앱 개발 도전기를 시작하려고 하는 것입니다.

참고로 블록체인과 이더리움 그리고 스마트 컨트랙트 관련 기술 설명은 너무 길어지기 때문에 생략하려고 합니다. 혹시 관련 기술의 배경지식이 궁금하신 분은 제가 얼마 전에 작성한 블록체인 관련 글을 참고해 보시길 바랍니다. 브런치 링크 – “[나도 처음이야-NFT편] ③ NFT의 토양 블록체인”

자 그러면 앞으로 도전할 디앱(Dapp) 개발 로드맵을 한번 살펴보도록 하겠습니다~!

나의 디앱(Dapp) 개발 로드맵

1. 사전 지식 습득

디앱(Dapp) 개발을 위해 관련 언어를 학습하고 개발환경을 구축하기 이전에, 개발하려는 기술(디앱)에 대한 기술적 이해가 제일 먼저 선행되어야 한다고 생각한다.

무작정 개발 언어의 문법과 개발 방법론을 주먹구구식으로 외우고 타이핑 치면서 공부하는 것도 한 가지 방법이긴 하지만 내가 생각했을 땐, 전혀 효과적이지 못한 방법일 것 같다. 왜냐하면 디앱은 블록체인이라는 새로운 개념의 네트워크(혹은 인터넷) 위에서 동작하는 어플리케이션이다.

기존 우리에게 익숙했던 중앙 집중화된 어플리케이션과는 전혀 반대의 개념이기 때문에 디앱을 개발하는 과정에서 많은 혼란을 야기시킬 수 있을 것이다.

만약 디앱에서 절대 빼놓을 수 없는 스마트 컨트랙트, 메인넷, 가스, 트렌젝션, 해시, 지갑 등을 처리하는 코드를 공부한다고 했을 때 이게 왜 필요한지? 그리고 어느 부분에서 필요한지 전혀 감을 못 잡은 상태에서 프로그래밍을 하게 될 것이다. 결국 시간이 해결해 주겠지만, 디앱과 관련 기술에 대한 이해도가 있는 상태에서 프로그래밍을 시작한다면 그냥 암기식으로 힘들게 할 필요 없이 이해하면서 빠르게 진도를 나아갈 수 있을 것이다. 그리고 탈중앙화 분산 어플리케이션의 경우, 자체적으로 구축된 블록체인 네트워크 안의 모든 사용자에게 데이터가 분산되어 동일하게 저장되는 특성이 있기 때문에 데이터 저장하는 방식부터 배포하는 모든 과정이 기존 우리가 개발해 왔던 어플리케이션 개발과 전혀 다른 방식으로 개발되어야 한다.

그래서 사전 지식 습득을 선행하지 않은 채로 무작정 개발 공부를 하게 될 때, 어쩌면 기존 방식으로 개발해오던 개발자들이 처음 개발을 접한 분들보다 더 큰 혼란과 더불어 디앱 개발을 이해하는데 더 많은 시간이 걸릴 수도 있겠다는 생각을 했다. 물론 개발의 기초문법은 모든 프로그래밍마다 공통점이 많이 존재하기 때문에 문법을 이해하는 것은 아마 빠를 것이다. (변수, 클래스, 함수, 반복문, 자료형 등등)

하지만 이러한 문법은 하다 보면 이해되고 사용할 수 있게 된다. 하지만 디앱이 동작되는 매커니즘 자체의 이해도가 없다면 좋은 앱을 만들기 어려울 것이고 개발 스킬을 함양하는 데 걸리는 시간도 길어질 것이다.

그러므로 나는 디앱(Dapp) 개발 공부 전에, [아래] 3가지에 관한 배경지식을 충분히 숙지한 뒤 개발에 도전하라고 추천해주고 싶다.

① 블록체인

② 이더리움 그리고 이더리움 EVM

③ 스마트 컨트랙트

2. 개발 도구

디앱 개발에 필요한 배경지식을 충분히 숙지했다면, 이제 개발을 하기 위해 필요한 요소들을 준비해야 한다.

집을 짓기 위해서는 먼저 집을 짓기 위해 필요한 재료, 도구 등을 준비해야 한다. 어플리케이션 개발이 집을 짓는 것으로 비유한다면 어플리케이션 개발을 위해 필요한 도구를 준비하는 것이 당연하다.

2-1. 개발 언어 선택 (솔리디티)

(이미지 출처) : https://velog.io/@truthgarnet/Solidity

■ 선택 언어 : 솔리디티(Solidity)

시장에 배포되는 거의 대부분의 디앱(Dapp)은 이더리움 블록체인 플랫폼에서 파생된 어플리케이션들이고 현재 이 시장에서 대적할자가 없을 만큼 이더리움이 지배적이다. 그러므로 이더리움에서 디앱 개발을 위해 만든 언어인 ‘솔리디티(Solidity)’를 선택한 것은 당연한 일이었다. 물론 솔리디티 뿐만 아니라 다른 언어로 개발은 가능하지만 디앱의 근본 언어인 솔리디티를 배우는 것이 좋아 보였다.

■ 솔리디티(Solidity) 특징 – ※ 해시넷과 위키백과 사이트 내용 참고함.

솔리디티(Solidity)는 이더리움 등 블록체인 플랫폼에서 스마트 계약 작성과 구현에 사용되는 계약 지향 프로그래밍 언어이다.

솔리디티는 스마트 계약을 작성하기 위한 언어로서 C++, 파이썬, 자바스크립트의 영향을 받은 고수준 언어이다.

솔리디티는 정적타입(statically-typed)의 프로그래밍 언어로 EVM상에서 작동하는 스마트계약을 개발하기 위해 설계되었다.

■ 그 밖에 디앱 개발에 알아두면 좋은 언어들 (일단 솔리디티만 해도 뭐..괜찮..)

파이썬(Python)

자바스크립트(JavaScript)

고랭(Golang)

2-2. 개발자 도구 선택 (트러플 )

(이미지 출처) : https://www.blockchainexpert.uk/blog/features-of-truffle

■ 선택 도구 : 트러플(Truffle Framework) 프레임워크

어플리케이션 개발 과정은 생각보다 단순하지 않다. 특정 언어를 습득하고 습득한 언어를 기반으로 여러가지 필요한 기능을 코딩하는 것뿐만 아니라 컴파일, 배포, 관리, 테스트까지 수 없이 많은 작업이 필요하다. 이걸 일일이 개발자가 다 만든다면 많은 시간과 에너지가 소모된다.

트러플은 스마트 컨트랙트 개발, 컴파일, 배포, 테스팅 등 복잡한 과정을 쉽게 할 수 있도록 도와주는 프레임워크로, 적절한 비유일지 모르겠으나 집을 지을 때 삽으로 땅을 파는 것보다 포크레인으로 파는 게 훨씬 효율 적이듯이, 개발자가 어플리케이션 개발을 할 때 쉽고 빠르게 개발할 수 있도록 도와주는 개발자 도구라고 생각하면 된다.

■ 트러플(Truffle Framework) 특징 – ※ 해시넷 사이트 내용 참고함.

디앱(DApp) 추적 및 데이터 : 여러 프로젝트의 테스트 상태를 한눈에 볼 수 있다. 배지는 리포지토리 방문자에게 디앱의 계약이 소집자임을 보증한다.

제로 구성 연속 통합 : 구성이 필요하지 않은 경우 모든 커밋에서 테스트하여 솔리디티(Solidity) 코드를 최대한 신뢰할 수 있다. 트러플 팀은 지속적인 스마트 계약 테스트를 위한 통합환경을 제공함으로써 환경 불일치를 제거한다.

자동화된 배포 : Worflow에 Truffle Teams를 추가하는 것은 깃허브(GitHub)를 사용하는 것만큼 쉽다. 개발자 시간과 시스템 리소스를 확보하면서 테스트를 자동으로 실행한다.

스마트 계약 관리 : 배포된 스마트 계약의 트랜잭션, 상태 및 이벤트를 모니터링하고, 워크 플로우에서 빌드 히스토리 및 현재 상태를 본다.

2-3. 통합 개발 환경(IDE) 툴 선택 (비주얼 스튜디오)

(이미지 출처) : https://nage.wo.tc/33

■ 선택 개발 툴 : 비주얼 스튜디오(Visual Studio) 툴

여러분이 만약 대학교 과제나 회사 업무로 문서작업을 해야 한다고 가정해보자.

분명 한글, 워드, 파워포인트 등의 문서작성 프로그램을 써야 할 것이다. 아무래도 메모장에 작성하는 것보다는 문서 관리나 작성이 매우 편리하기 때문이다.

이와 마찬가지로 프로그래밍을 한다는 것은 특정 언어의 코드를 서술하는 문서를 작성하는 일이다. 하지만 프로그래밍은 조금 더 복잡성이 존재는데 코딩, 디버그, 컴파일, 배포, 텍스트 편집 등의 모든 작업을 하나의 프로그램 안에서 처리하는 것들을 하나로 묶어 대화형 인터페이스로 제공하는 프로그램 및 환경을 통합 개발 환경(Integrated Development Environment, IDE)이라고 부르고 솔리디티 프로그래밍이 가능하면서도 개발자들 사이 전 세계적으로 유명하고 자주 쓰이는 개발 툴 중 하나인 마이크로소프트사가 개발한 ‘비주얼 스튜디오’라는 개발 툴로 선택하였다.

■ 비주얼 스튜디오(Visual Studio) 특징

개발자들 사이에서는 모르는 사람이 없는 만큼 워낙 유명한 툴이라 따로 특징을 나열하지는 않겠지만 혹시 모르는 분들이나 궁금하신 분들은 인터넷에서 그냥 “비주얼 스튜디오”라고만 쳐도 어마어마한 정보를 얻을 수 있을 것이므로 특징에 대한 언급을 따로 하지 않겠다.

2-4. 클라이언트(지갑) 앱 선택 ( 메타마스크)

■ 선택 클라이언트 앱(지갑) : 메타마스크(메타마스크)

우리는 현재 사용하고 있는 컴퓨터, 스마트폰 어플리케이션을 통해 정보를 공유하고 특정 서비스를 이용한다. 이는 전 세계가 인터넷으로 연결되어 있기 때문이다. 블록체인의 경우 우리가 일반적으로 알고 있는 인터넷 네트워크와 전혀 다른 환경의 분산 네트워크 환경으로 인터넷과는 별개로 구성된 새로운 네트워크라고 생각하면 된다.

하지만 우리는 스마트폰이나 컴퓨터 인터넷과 특정 어플리케이션을 통해 블록체인 위에 존재하는 암호화폐(비트코인 등)를 사고파는 것이 가능한 것을 주위에서 종종 볼 수 있었다. 우리가 일반적으로 사용하는 인터넷 네트워크에서 독립적으로 운영되는 블록체인 네트워크의 정보를 접근할 수 있어야 암호화폐를 사고파는 행위가 가능한데, 인터넷 네트워크와 블록체인 네트워크 사이 연결시켜 주는 다리 역할을 하는 것이 바로 블록체인 지갑(Wallet)이다.

메타마스크(Metamask) 지갑은 이더리움을 보유하고 송금 및 관리할 수 있는 다양한 암호화폐 지갑 중 하나로, 구글 크롬 웹브라우저에서 플러그인 방식으로 사용하는 크롬 확장 프로그램이다.

메타마스크는 이더리움 블록체인과의 상호작용을 하는 다리 역할뿐만 아니라 본래 블록체인 지갑의 본질적인 역할인 공개키(publick key)와 개인키(private key) 저장하고 관리하는 역할을 한다.

공개키와 개인키는 암호화폐를 주고받을 때 필요한 어드레스로 은행으로 따지면 계좌번호 같은 역할을 한다고 생각하면 된다.

다양한 암호화폐 지갑중 메타마스크를 선택한 이유는 단순하다.

사람들이 많이 쓰는 것 같고 직관적인 UI에 사용하기 쉽다고 한다.

2-5. 테스트 네트워크 환경 선택 ( 가나슈 )

(이미지 출처) : https://medium.com/@kacharlabhargav21/using-ganache-with-remix-and-metamask-446fe5748ccf

■ 선택 테스트 네트워크 환경 구축 : 가나슈(Ganache)

가나슈는 이더리움 블록체인 기반의 디앱(Dapp)을 개발할 때 사용하는 개인용 블록체인 네트워크를 뜻한다.

개인용 블록체인이기 때문에 메인 블록체인 네트워크와 연결할 필요 없이 로컬에서 작동시킬 수 있어, 개발 중인 스마트 컨트랙트 및 디앱을 손쉽게 배포 및 테스트해볼 수 있다.

만약 이더리움 블록체인 메인 네트워크에서 거래가 발생하게 되면 거래 정보는 블록체인 네트워크상에 저장되면서 블록체인 특성상 모든 네트워크 참여자에게 공유되고, 한번 블록에 저장되어 체인이 형성된 거래내역 및 데이터는 수정/삭제가 불가능한 구조를 가지고 있다.

이러한 특성이 있는 이유로 디앱을 개발할 때는 메인 네트워크와 동일한 환경의 개인 블록체인 네트워크에서 스마트 컨트랙트 및 디앱 테스트가 진행되어야 한다. 이렇게 디앱 개발용으로 사용할 개인용 블록체인 네트워크 환경을 만들어주는 게 바로 ‘가나슈(Ganache)’이다.

3. 그 밖에 디앱 개발에 필요한 API 및 라이브러리(추후에)

여러 개발 도구를 설치하고 개발환경을 구축해서 만약 간단한 디앱 개발을 완료했다고 가정해보자.

위에 언급했듯이 가나슈(Ganache)를 통해 개발 및 테스트용 간이 블록체인 네트워크를 통해 디앱 개발을 했다면 이제 남은건 개발 완료한 배포하는 일이 남았다. 디앱을 배포할 때는 블록체인 메인 네트워크에 배포가 된다는 의미이고 블록체인 메인 네트워크와의 상호작용이 가능한 무엇이 필요하다는 의미다.

3-1. 백엔드 API (인푸라 )

■ 선택 : 인푸라(Infura)

인푸라(Infura) 는 전 세계로 퍼져 있는 이더리움 블록체인 네트워크에 접속하기 위한 게이트웨이(진입문)이라고 생각하면 된다. 아직은 개발을 시작하지 않아서 잘 모르겠으나, 분산형 데이터베이스 시스템 환경인 블록체인의 메인 네트워크에 서비스(디앱)을 배포하고 관리하는 과정이 쉽지 않을 거라고 생각한다.

이처럼 인푸라는 개발자가 디앱 개발 이후 이더리움 블록체인 메인 네트워크에 접속을 쉽고 간편하게 도와주는 역할 및 디앱 개발자 입장에서 복잡한 디앱 인프라(infra) 및 환경을 유지하지 않고도 자신의 애플리케이션을 이더리움에 배포할 수 있도록 도와주어 디앱 서비스 개발에 집중할 수 있도록 서비스를 제공한다고 한다.

3-2. 프론트엔드 자바스크립트 API (web3.js )

■ 선택 : web3.js

결국 대부분의 모든 서비스는 서비스와 사용자가 만나는 접점이 존재해야 하고, 이런 접점은 클라이언트에서 이뤄진다. 이 말은 아무리 블록체인 기반의 서비스의 효용성이 좋아도 디지털화된 서비스를 이용하는 일반 유저와의 접점이 필요하다는 말이고 모든 서비스의 접점은 컴퓨터의 인터넷 브라우저 화면 및 스마트폰 화면에서 이뤄진다.

생각해보라, 당신이 블록체인 서비스를 이용하는데 코드와 알 수 없는 문자형 식이 난무하는 서비스를 이용하고 싶겠는가.. 이더리움 블록체인 노드들은 JSON-RPC 라는 특정 규칙과 규약의 프로토콜을 통해 소통한다.

그리고 이런 형태의 정보를 일반 사람이 읽기 매우 불편한 구조로 되어있다.

이처럼 web3.js는 블록체인 내부(백엔드영역)의 복잡하고 골치아픈 JSON-RPC와 같은 백엔드 영역의 데이터 및 정보를 대신 상호작용하여 편리하게 읽을 수 있는 자바스크립트 인터페이스를 통해 손쉽게 상호작용 할 수 있게 해주는 API 이다.

개발 분야에서 우리가 스마트폰 앱과 컴퓨터 인터넷을 켜면 나타나는 화면을 개발하는 영역을 프론트엔드(front-end)라고 부른다.

자바스크립트라는 언어는 우리가 지금 이용하는 인터넷의 화면을 제어하고 처리하는 언어로 개발 분야에서는 엄청 유명하고 강력한 언어이다. 고로, 모든 개발자들에게 익숙한 언어이기도 하다.

그렇기 때문에 web3.js를 통해 일반 사용자들과의 접점이 되는 프론트엔드(화면) 개발을 원활하게 할 수 있도록 도와준다.

※ 사실 챕터 3 “그 밖에 디앱 개발에 필요한 API 및 라이브러리(추후에)” 파트에서 설명한 백엔드와 프론트 엔드 API는 지금 당장 필요한 부분이 아닌 것 같아서 많이 알아보지 않았을뿐더러, 몇 번 찾아보고 읽어봐도 이해가 잘 안 되는 부분이라 빼버릴까도 생각헀지만 어차피 추후에 이 기술을 적용해야 할 때가 올 것이라 생각 되어, 그냥 인터넷에서 찾아본 내용을 내가 이해한 범위 안에서 설명했다. 이 부분은 앞으로 천천히 디앱 개발을 시작하면서 이해될 것으로 생각하고 그냥 넘어가겠다.

4. 솔리디티(Solidity) 개발 공부 시작!!

디앱에 필요한 개발 도구 및 환경을 설치 및 구축한 후에 본격적으로 디앱 개발 언어인 솔리디티(Solidity) 개발 공부를 시작할 예정이다.아마 모든 프로그래밍 언어가 그렇듯, 각 언어가 지향하는 철학과 방법론이 달라서 조금 문법이 달라질 수는 있지만 기본적인 골격(자료형, 함수, 클래스, 반복문, 조건문, 변수 등등..) 은 비슷할 것으로 예상된다.그렇기 때문에 내일(2022년 02월 22일)부터 조금씩 개발 공부를 시작해서 늦어도 3월 말까지는 솔리디티 기본 문법 및 개념을 마스터할 예정이다.

솔리디티 기초 문법을 공부할 책은 이미 선정해서 주문해 놓은 상태이고 그 책을 보면서 기초는 마스터할 예정이다. 그리고 3월 이후에는 본격적으로 디앱을 기획하고 개발하는 사이트 프로젝트를 진행해볼까 한다.

디앱 개발을 위해 솔리디티 개발환경 구축부터~ 기초 문법을 공부한 내용까지 공부하고 실습한 내용을 정리해서 브런치에 꾸준히 올릴 예정이다.

디앱에 필요한 개발 도구 및 환경을 설치 및 구축한 후에 본격적으로 디앱 개발 언어인 솔리디티(Solidity) 개발 공부를 시작할 예정이다.

아마 모든 프로그래밍 언어가 그렇듯, 각 언어가 지향하는 철학과 방법론이 달라서 조금 문법이 달라질 수는 있지만 기본적인 골격(자료형, 함수, 클래스, 반복문, 조건문, 변수 등등..) 은 비슷할 것으로 예상된다.

그렇기 때문에 내일(2022년 02월 22일)부터 조금씩 개발 공부를 시작해서 늦어도 3월 말까지는 솔리디티 기본 문법 및 개념을 마스터할 예정이다.

솔리디티 기초 문법을 공부할 책은 이미 선정해서 주문해 놓은 상태이고 그 책을 보면서 기초는 마스터할 예정이다. 그리고 3월 이후에는 본격적으로 디앱을 기획하고 개발하는 사이트 프로젝트를 진행해볼까 한다.

디앱 개발을 위해 솔리디티 개발환경 구축부터~ 기초 문법을 공부한 내용까지 공부하고 실습한 내용을 정리해서 브런치에 꾸준히 올릴 예정이다.

5. 마무리

제가 아직 디앱 개발을 위한 도구 설치, 개발환경 구축, 솔리디티 언어 공부를 시작한 게 아니고 단순 책과 인터넷을 통해 학습한 내용을 토대로 로드맵을 작성하고 이 글을 통해 설명하게 되었는데 아마 직접 개발해보아야 제가 작성한 로드맵의 오류와 잘못된 점을 파악할 수 있을 것 같습니다.

혹시 이 글에서 잘못된 부분이 있으면 댓글로 알려주시면 감사드리겠습니다 ㅠㅠ

바로 수정하도록 하겠습니다.

키워드에 대한 정보 이더 리움 개발

다음은 Bing에서 이더 리움 개발 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 이더리움 Dapp 개발 #1 | 블록체인 DAPP 개발에 필요한 기본적인 개발 도구 설명

  • 동영상
  • 공유
  • 카메라폰
  • 동영상폰
  • 무료
  • 올리기

이더리움 #Dapp #개발 ##1 #| #블록체인 #DAPP #개발에 #필요한 #기본적인 #개발 #도구 #설명


YouTube에서 이더 리움 개발 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 이더리움 Dapp 개발 #1 | 블록체인 DAPP 개발에 필요한 기본적인 개발 도구 설명 | 이더 리움 개발, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

Leave a Comment