> For the complete documentation index, see [llms.txt](https://whs3-doge5k.gitbook.io/smartcontract-security-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://whs3-doge5k.gitbook.io/smartcontract-security-docs/basics/2./undefined.md).

# 솔리디티 기초

솔리디티는 다음과 같은 주요 특징을 가지고 있다

첫째, 정적 타입 언어로서 모든 변수는 선언 시에 명확한 타입을 지정해야 한다. 예를 들어 uint, bool, string과 같은 타입을 사용하여 변수의 성격을 정의하는데, 정적 타이핑은 컴파일 시점에 오류를 사전에 방지하고 코드의 안정성을 높여준다.

둘째, 솔리디티로 작성된 코드는 이더리움 가상 머신(EVM)에서 실행되도록 컴파일된다. 즉, 솔리디티는 EVM 호환성을 전제로 하여 설계되었으며, 이는 코드가 다양한 이더리움 기반 네트워크에서 동일하게 동작할 수 있도록 한다.

셋째, 솔리디티는 객체지향적인 구조를 지원한다. 사용자는 컨트랙트, interface, library 등의 구조를 활용하여 모듈화된, 재사용 가능한 코드를 구성할 수 있게 되는데, 이러한 방식으로 복잡한 스마트 컨트랙트를 효율적으로 관리하고 유지보수할 수 있게 된다.

넷째, 솔리디티로 작성된 컨트랙트는 한 번 블록체인에 배포되면 변경이 불가능하다. 즉, 코드에 수정이나 덧붙임을 할 수 없기 때문에, 배포 전에 충분한 테스트와 검증이 필수이다. 이는 블록체인의 불변성 원칙과도 밀접하게 연관되어 있다.

마지막으로, 솔리디티의 실행은 Gas라는 단위를 기반으로 작동한다. 스마트 컨트랙트의 각 연산에는 일정량의 gas가 소모되며, 이는 이더(ETH)로 지불된다. 따라서 효율적인 코드 작성은 곧 gas price 절감으로 이어지며, 사용성과 직결되는 중요한 요소이다.

이러한 특징들은 솔리디티가 블록체인 환경에서 신뢰성과 보안성을 바탕으로 작동할 수 있도록 설계되었음을 보여준다.

<br>

출처 : [Solidity 공식 문서 (v0.8.24)](https://docs.soliditylang.org/en/v0.8.24/)

이외 자세한 설명은 [스마트 컨트랙트 ](https://app.gitbook.com/o/dy80ZKc1RRyMV2L9QoJh/s/Lf9vwRuaws92ULgGvzTi/1./undefined-1/undefined)참고\ <br>
