#1. Solidity를 시작하기 전에

2019. 5. 8. 00:28Tutorial & Training/Solidity

728x90

Ethereum(이더리움) 플랫폼위에 동작하는 응용 소프트웨어(이하 Smart Contract) Dapp을 개발하려면,

우리가 사용하는 C, C++, C#, Java, Python, Perl, Ruby, JS 등과 같은 일반적인 컴파일언어나

스크립트 언어가 아닌 스마트 계약에만 사용되는 언어가 따로 존재하고있습니다.

 

우리가 기존에 사용하거나, 알고있던 언어들은 흔히 절차 지향 언어, 객체 지향언어 라고 표기합니다.

 

절차 지향 언어들은 위에서 아래로 순차 적인 Work Flow(실행 흐름)를 따라야 하며,

객체 지향 언어는 모델링 기반의 설계를 통한 개발을 합니다.

 

둘 다 언어적으로 혹은 코드 스타일에 따라, 각자 장단점이 존재합니다.

취존..? 하지만 객체지향언어는 코드가 직관적이고 유지보수가 뛰어나, 많은 사람들에게 높은 평가를 받으며,

이는 절차지향에 단점을 보완하기 위해 개발되었다고 합니다.

 

 

 

.

 

 

Dapp

흔히 다른 사이트나 블로그를 보면 Dapp이란 무엇인가? 를 지칭할때,

Ethereum과 같은 블록체인 플랫폼에서 동작하는 Application 이라고 표현합니다.

정확히는 Decentralized Application 으로 분산화된 응용 프로그램이라고 지칭 할 수 있습니다.

 

BlockChain Hub에서 정의된 What is a Dapp(https://blockchainhub.net/decentralized-applications-dapps/)을 보면

단일 컴퓨터가 아닌 P2P 네트워크에서 실행되는 응용프로그램 이다. 라고 표현합니다.

 

P2P 네트워크에서 동작하는 응용프로그램으로는 우리도 기존에 알고있거나, 사용해보았던

웹하드, 토렌트 등이 존재합니다. 하지만 위 링크를 통해 확인해 보면,

토렌트는 블록체인에서는 실행되지 않는 Application으로써, Traditional Dapps 라고 표현하였는데,

오래된 또는 전통적인 응용프로그램이라고 하네요.

 

위 링크는 정확한 Dapp의 정의를 알고싶어, 이더리움이 제공하는 https://www.stateofthedapps.com/ko

 

State of the DApps — A list of 2,667 blockchain apps for Ethereum, Steem, EOS, and more

디앱 검색하기 공식 등재된 디앱 프로젝트를 통해 이더리움, 이오스, POA, GoChain 및 스팀 블록체인 가능성 발견하기 디앱 자세히 알아보기

www.stateofthedapps.com

를 통해 직접 문의하여, 얻은 링크 입니다.

 

 

Ethereum 측 답변

해당 링크 보러가기 : 

https://blockchainhub.net/decentralized-applications-dapps/

 

What is a dApp? Decentralized Application on the Blockchain

Definition dApp: applications that runs on a P2P network of computers rather than a single computer. Not controlled by any single entity - Ethereum, Bitcoin

blockchainhub.net

https://www.coindesk.com/information/what-is-a-decentralized-application-dapp

 

What is a Decentralized Application? - CoinDesk

Internet users don’t have sole control over the data they share on today’s websites. Ethereum is unique in that it attempts to wield the blockchain as a way to correct what its designers believe is a problematic part of the internet’s design. It’s like a “

www.coindesk.com

 

.

 

 

계약 지향 언어

Vyper, Solidity, Serpent, LLL 등 다양한 계약 지향 언어가 존재합니다.

 

Vyper는 출시된지 그리 오래되지 않은 역사가 비교적 짧은 축에 속하는데, 별칭으로는

"버려진 Serpent를 개조한 언어다." 라고 하네요.

 

Solidity는 우리가 이 카테고리를 통해 알아보고, 배워볼 언어이며, Javascript와 유사합니다.

 

Serpent는 Python과 유사하다고 하지만, Vyper를 보면, 버려졌다고 표기하고 있네요.

 

LLL 은 설명하지 않겠습니다.

 

위 에서 언급된 언어들은 모두 계약 지향 언어라고 부릅니다.

이들은 모두 똑똑한 계약 (Smart Contract)을 작성하기 위한 언어 이기 때문이죠.

좀 더 쉽게 풀어보자면, 스마트 컨트랙트 즉 계약은 소프트웨어 라고 보면 이해가 쉽습니다.

 

 

요약

Smart Contract == Software

그럼 우리는 앞으로 Solidity라는 계약지향 언어를 사용하여, 결과적으로 Dapp을 만들고

이더리움에서 만든 Dapp Store 생태계에 Application을 등록하여

당당하게 Dapp 개발자가 되는 것을 목표로...

 

 

728x90
1 2