Solidity¶
Solidity는 스마트 컨트랙트를 구현하기 위한 컨트랙트 기반의 고급 프로그래밍 언어입니다. Solidity는 C++, Python, 그리고 JavaScript의 영향을 받아 만들어졌습니다. 그리고 Ethereum Virtual Machine(EVM)에서 구동되도록 설계되었습니다.
Solidity는 정적 타입이며, 상속, 라이브러리 그리고 복잡한 사용자 정의 자료형을 지원합니다.
문서에서 살펴볼 수 있듯이 투표, 크라우드 펀딩, 블라인드 옥션, 멀티 시그 월랫 등 다양한 컨트랙트를 작성할 수 있습니다.
주석
Solidity를 연습하기 가장 좋은 방법은 현재 Remix (로딩되는데 다소 시간이 걸릴 수 있습니다.)를 사용하는 것입니다. Remix는 Solidity 스마트 컨트랙트를 작성하고, 배포하고, 실행할 수 있는 웹 브라우저 기반의 IDE입니다.
경고
소프트웨어는 사람에 의해 만들어지기 때문에 버그가 생길 수 있습니다. 따라서 스마트 컨트랙트는 잘 알려진 모범사례들을 참고하여 작성되어야합니다. 스마트 컨트랙트를 작성할 때는 코드리뷰, 테스팅, 회고 그리고 정확성 증명을 해야합니다. 또한 사용자가 코드 작성자보다 코드를 더 신뢰하는 경우가 있다는 것을 기억해야합니다. 마지막으로, 블록체인 자체적으로 주의해야할 사항들이 있습니다. 다음 섹션을 참조해 주세요. 보안 측면 고려사항.
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.
- Simplified Chinese (in progress)
- Spanish
- Russian (rather outdated)
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 파서와 문법¶
- solidity-parser
- Javascript 를 위한 Solidity 파서
- Solidity Grammar for ANTLR 4
- Solidity grammar for the ANTLR 4 parser generator
Language Documentation¶
다음 페이지들 부터, Solidity 로 작성된 간단한 smart contract 과 blockchains. 에 대해서 알아보도록 하겠습니다.
다음 섹션은 Solidity 에서 제공하는 몇가지 유용한 *기능*을 살펴보겠습니다. example contracts 또한 지금 사용하시는 브라우저! 에서도 저희 코드를 실행시켜볼 수 있다는 것을 잊지마세요!
마지막 섹션에서는 Solidity 의 모든 측면에 대해서 심도 있게 다룹니다.
이외에 질문이 있으시다면, Ethereum Stackexchange 에서 검색이나 직접 질문하실 수 있으며 gitter 채널 에서도 가능합니다.
Solidity 나 이 문서에 대해 발전을 위한 아이디어는 항상 환영합니다. :)