솔리디티
Solidity는 Ethereum 블록체인 및 기타 호환 플랫폼에서 스마트 컨트랙트를 구현하기 위한 객체 지향적이고 고급 언어입니다.
Solidity는 Ethereum Virtual Machine(EVM)을 대상으로 설계되었습니다. 정적으로 형식이 지정되며 상속, 라이브러리 및 복잡한 사용자 정의 유형을 지원합니다. 개발자는 Solidity를 사용하여 블록체인에서 계정 및 애플리케이션의 동작을 제어하는 스마트 컨트랙트를 작성합니다. 이 언어의 구문은 JavaScript 및 C++와 유사하여 이러한 언어에 익숙한 프로그래머가 비교적 쉽게 접근할 수 있습니다. Solidity 코드는 바이트코드로 컴파일된 다음 EVM에서 배포 및 실행됩니다.
Solidity의 기능에는 상태 변수, 함수, 이벤트 및 수정자에 대한 지원이 포함됩니다. 또한 내장 암호화 기능과 블록체인 데이터에 대한 액세스를 제공합니다. 그러나 Solidity 스마트 컨트랙트는 배포되면 변경할 수 없으므로 취약점을 방지하려면 신중한 계획과 철저한 테스트가 필수적입니다. 보안 감사 및 공식 검증은 위험을 완화하기 위한 일반적인 관행입니다.
graph LR
Center["솔리디티"]:::main
Pre_javascript["javascript"]:::pre --> Center
click Pre_javascript "/terms/javascript"
Pre_smart_contract["smart-contract"]:::pre --> Center
click Pre_smart_contract "/terms/smart-contract"
Rel_ethereum["ethereum"]:::related -.-> Center
click Rel_ethereum "/terms/ethereum"
Rel_smart_contract_architecture["smart-contract-architecture"]:::related -.-> Center
click Rel_smart_contract_architecture "/terms/smart-contract-architecture"
Rel_java["java"]:::related -.-> Center
click Rel_java "/terms/java"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧠 지식 테스트
🧒 5살도 이해할 수 있게 설명
📜 Solidity is a special code language used to write 'digital rules' for the world's computer ([Ethereum](/ko/terms/ethereum)). It's like writing a contract that nobody can cheat on because the computer follows the rules exactly as they are written.
🤓 Expert Deep Dive
Solidity's design prioritizes deterministic execution within the EVM, crucial for consensus. Its static typing catches many errors at compile time, reducing runtime surprises. The language's object-oriented features, while convenient, introduce complexities in inheritance and state management that can lead to subtle bugs if not managed carefully. Gas optimization is a primary concern; inefficient Solidity code can lead to prohibitively expensive transactions. The compiler itself is a critical component, and its evolution (e.g., introduction of Yul IR, optimizer improvements) significantly impacts gas costs and security. [Formal verification tools](/ko/terms/formal-verification-tools) are increasingly important for auditing Solidity contracts due to the high stakes of immutable, on-chain logic.