Solidity 코딩 #01 - 솔리디티 소개

in 코딩 카페4 years ago (edited)

안녕하세요,

EVM(Ethereum Virtual Machine) 상에서 스마트 계약(Smart Contracts)을 개발하기 위해 고안된 언어인 솔리디티(Solidity) 코딩 연재를 시작합니다.

*연재 내용은 Solidity 문서를 참고하여 의역하거나 설명 자료를 덧붙여 작성할 예정입니다. 코드와 관련된 부분은 해당 문서의 내용과 다를 수 있습니다. 또한 연재의 목적은 Solidity 언어를 이용한 스마트 계약 코딩 강좌이며 원 문서의 한글화 작업이 아닙니다. 내용 중 잘 못된 부분이 있다면 댓글로 지적 바랍니다.


image.png

Agenda

  1. Solidity
  2. 언어 문서

1. Solidity

  • 솔리디티는, 스마트 계약을 구현하기 위한 객체지향(object-oriented)적인 고수준(high-level) 언어입니다. 스마트 계약은 이더리움 상태(state) 내에서 계정(accounts)의 행위를 제어(govern)합니다.

  • 이더리움 가상 머신(EVM)을 타겟으로 디자인 되었으며 C++, 파이썬, 자바스크립트로부터 영향을 받았습니다.

  • 정적 타입(statically typed) 언어이며 상속, 라이브러리, 복합적 사용자 정의 타입(complex user-defined types)들을 지원합니다.

  • 투표(voting), 크라우드펀딩, 블라인드 경매(blind auction), 다중서명지갑(multi-signature wallets)을 사용하기 위한 계약을 생성할 수 있습니다.

  • 계약을 배포할 때에는 최신 버전의 솔리디티를 사용하는 것이 좋습니다. 왜냐하면 새로운 기능들과 버그수정 같은 변경사항들이 지속적으로 이루어지기 때문입니다. (현재 버전은 0.x 대로 초기 개발단계에 있습니다. 자세한 내용은 여기를 참고하세요)

❗️Warning
솔리디티는 최근 많은 주요 변경 사항들을 도입한 0.6.x 버전을 출시했습니다. 변경 사항에 대한 전체 리스트는 여기를 확인하세요.

2. 언어 문서

스마트 계약에 대한 개념이 생소하다면 솔리디티로 작성된 스마트 계약 예제로 시작하기를 추천합니다. 더 세부적인 내용을 위한 준비가 됐다면, 언어의 핵심 개념을 배우기 위해 예제를 통한 솔리디티와 "언어 설명(Language Description)" 섹션을 추천해드립니다.

더 자세한 내용은, 블록체인의 기본이더리움 가상 머신을 읽어보시길 바랍니다.

💡Hint
Remix IDE를 이용해 언제든지 브라우저에서 코드 예제들을 시험해 볼 수 있습니다. 리믹스는 솔리디티로 스마트 계약을 작성하고 배포하며 구동시켜볼 수 있는 웹 브라우저 기반 IDE(통합개발환경) 입니다. 웹 기반으로 인해 로딩하는데 시간이 걸릴 수 있으니 인내심을 가지고 기다려 주세요.

❗️Warning
사람이 소프트웨어를 제작함에 따라 버그(오류)가 있을 수 있습니다.
스마트 계약을 작성할 때에는 검증된 소프트웨어 개발 모범 사례(best-practices)들을 따라야 합니다. 여기에는 코드 검토, 테스트, 감사 및 정확성 증명이 포함됩니다. 스마트 계약 사용자들은 때때로 그것의 작성자보다 코드에 대해 더 확신합니다. 그리고 블록 체인과 스마트 계약에는 주의해야 할 그들의 고유한 문제들이 있으므로 실 서비스용 코드를 작업하기 전에 반드시 보안 고려 사항 섹션을 읽으십시오.

질문할 것들이 있다면 Ethereum Stackexchange 또는 솔리디티의 gitter channel에서 답을 찾거나 물어볼 수 있습니다.

이상으로 솔리디티 소개를 마칩니다.
다음 강좌에서는 간단한 예제 코드들을 통해 스마트 계약을 살펴보겠습니다.

Coin Marketplace

STEEM 0.20
TRX 0.13
JST 0.030
BTC 67435.35
ETH 3528.53
USDT 1.00
SBD 2.68