Solidity

Solidity logo

Solidity는 스마트 컨트랙트를 구현하기 위한 컨트랙트 기반의 고급 프로그래밍 언어입니다. Solidity는 C++, Python, 그리고 JavaScript의 영향을 받아 만들어졌습니다. 그리고 Ethereum Virtual Machine(EVM)에서 구동되도록 설계되었습니다.

Solidity는 정적 타입이며, 상속, 라이브러리 그리고 복잡한 사용자 정의 자료형을 지원합니다.

문서에서 살펴볼 수 있듯이 투표, 크라우드 펀딩, 블라인드 옥션, 멀티 시그 월랫 등 다양한 컨트랙트를 작성할 수 있습니다.

주석

Solidity를 연습하기 가장 좋은 방법은 현재 Remix (로딩되는데 다소 시간이 걸릴 수 있습니다.)를 사용하는 것입니다. Remix는 Solidity 스마트 컨트랙트를 작성하고, 배포하고, 실행할 수 있는 웹 브라우저 기반의 IDE입니다.

경고

소프트웨어는 사람에 의해 만들어지기 때문에 버그가 생길 수 있습니다. 따라서 스마트 컨트랙트는 잘 알려진 모범사례들을 참고하여 작성되어야합니다. 스마트 컨트랙트를 작성할 때는 코드리뷰, 테스팅, 회고 그리고 정확성 증명을 해야합니다. 또한 사용자가 코드 작성자보다 코드를 더 신뢰하는 경우가 있다는 것을 기억해야합니다. 마지막으로, 블록체인 자체적으로 주의해야할 사항들이 있습니다. 다음 섹션을 참조해 주세요. Security Considerations.

Notice for Korean

아직 번역이 진행중입니다. 누구나 참여하실 수 있으며 해당 solidity-korea/solidity-docs-kr repo 에 편하게 Pull Request 주셔서 참여하실 수 있습니다.

번역

This documentation is translated into several languages by community volunteers, but the English version stands as a reference.

Solidity 통합 도구들

  • Remix
    별도의 서버없이 컴파일러와 런타임 환경을 제공하는 브라우저 기반의 IDE
  • IntelliJ IDEA plugin
    IntelliJ IDEA 를 위한 Solidity 플러그인 (기타 모든 JetBrains IDE 포함)
  • Visual Studio Extension
    Solidity 컴파일러가 포함된 Microsoft Visual Studio 플러그인
  • Package for SublimeText — Solidity language syntax
    Sublime Text 를 위한 Solidity 문법 강조기
  • Etheratom
    문법 강조, 편집, 실행 환경 (백엔드 노드 및 VM 과 호환 가능한) 을 제공하는 Atom editor 플러그인
  • Atom Solidity Linter
    Solidity linting 을 제공하는 Atom editor 플러그인
  • Atom Solium Linter
    Solium 기반으로, 사용자 설정이 가능한 Atom editor 용 Solidity linter
  • Solium
    Solidity 에서 코드 스타일이나 보안 이슈를 수정하고 확인하기 위한 linter
  • Solhint
    Smart Contract 검증을 위한 Solidity linter. 보안 사항 및 스타일 가이드, 최적의 관례 사항(역주: for-loop 에서 index 변수명을 i 로 축약하는 것 등)을 제공함.
  • Visual Studio Code extension
    문법 강조 기능과 컴파일러를 제공하는 Microsoft Visual Studio Code 플러그인
  • Emacs Solidity
    문법 강조 기능과 편집 에러 알림을 제공하는 Emacs editor 플러그인
  • Vim Solidity
    문법 강조 기능을 제공하는 Vim editor 플러그인
  • Vim Syntastic
    컴파일 확인이 가능한 Vim editor 플러그인

지원이 중지된 도구들:

  • Mix IDE
    스마트 컨트랙에 대해 디자인, 디버깅, 테스팅이 가능한 Qt 기반의 IDE
  • Ethereum Studio
    완벽한 Ethereum 환경에 대한 shell 액세스를 제공하는 특수(특화된) 웹 IDE. Specialized web IDE that also provides shell access to a complete Ethereum environment.

Solidity 도구들

  • Dapp
    Solidity 를 위한 빌드 도구, 패키지 매니저, 배포 도우미 도구
  • Solidity REPL
    커맨드 라인 기반으로 Solidity 를 바로 사용해볼 수 있는 도구
  • solgraph
    Solidity 흐름을 시각화 하고, 잠재적인 보안 위협을 강조해주는 도구
  • evmdis
    Raw EVM operations 보다 높은 추상화를 제공하기 위해 바이트 코드에 직접 정적 분석을 수행하는 EVM Disassembler
  • Doxity
    Solidity 를 위한 문서 생성기

서드파티 Solidity 파서와 문법

Language Documentation

다음 페이지들 부터, Solidity 로 작성된 간단한 smart contractblockchains. 에 대해서 알아보도록 하겠습니다.

다음 섹션은 Solidity 에서 제공하는 몇가지 유용한 *기능*을 살펴보겠습니다. example contracts 또한 지금 사용하시는 브라우저! 에서도 저희 코드를 실행시켜볼 수 있다는 것을 잊지마세요!

마지막 섹션에서는 Solidity 의 모든 측면에 대해서 심도 있게 다룹니다.

이외에 질문이 있으시다면, Ethereum Stackexchange 에서 검색이나 직접 질문하실 수 있으며 gitter 채널 에서도 가능합니다.

Solidity 나 이 문서에 대해 발전을 위한 아이디어는 항상 환영합니다. :)

Contents

Keyword Index, Search Page