# 솔리디티 (Solidity)

솔리디티(Solidity)는 JavaScript와 유사하지만 스마트 계약 개발에 중점을 둔 프로그래밍 언어입니다. 이 언어로 작성한 코드는 바이트코드로 컴파일되며, 이더리움 네트워크에서 동작하는 이더리움 가상 머신(EVM)이 이를 실행합니다.

## Solidity의 장점

- **쉬운 학습:** Solidity의 구문은 JavaScript와 유사하여 JavaScript에 익숙한 개발자가 쉽게 배울 수 있습니다.
- **스마트 계약 중심:** 이더리움 블록체인에서 스마트 계약을 생성하고 배포하도록 특별히 설계되었습니다.
- **커뮤니티 자료:** 개발자 커뮤니티 규모가 커서 문서, 튜토리얼 등 참고 자료가 많습니다.
- **EVM 호환성:** Solidity에 의해 생성된 바이트코드는 이더리움 가상 머신(EVM)을 지원하는 모든 플랫폼에서 실행될 수 있습니다.

## Solidity의 단점

- **표준화 부족:** 비교적 새로운 언어이므로 Python 또는 Java와 같은 이전 언어에 비해 표준화된 모범 사례가 적습니다.
- **미흡한 디버깅 도구:** 디버깅 도구는 다른 프로그래밍 언어에 사용할 수 있는 도구만큼 고급이거나 사용자 친화적이지 않습니다.
- **미흡한 오류 처리:** 오류 메시지가 난해하여 블록체인 개발에 대한 광범위한 경험 없이는 이해하기 어려울 수 있습니다.

## Solidity란 무엇입니까?

Solidity는 JavaScript와 유사하지만 **스마트 계약**을 생성하도록 특별히 설계된 프로그래밍 언어입니다. 스마트 계약은 코드로 작성되어 이더리움이라는 분산 네트워크에 저장되고, 조건이 충족되면 스스로 실행되는 계약입니다.

## 작동 방식은 무엇입니까?

- Solidity는 자동판매기의 작동 규칙을 적는 언어라고 생각하면 됩니다.
- Solidity로 작성된 이러한 규칙은 **바이트코드**로 변환됩니다. 이는 **이더리움 가상 머신**이 이해하는 언어입니다.
- 이더리움 가상 머신은 특정 조건이 충족될 때마다 코딩된 규칙을 실행하는 자동 판매기의 엔진처럼 작동합니다.

## 실제 응용 분야:

1. **탈중앙화 금융(DeFi):** 은행 없이 대출 및 차입 플랫폼을 생성합니다.
2. **대체 불가능한 토큰(NFT):** 예술 및 수집품과 같은 고유한 디지털 자산의 소유권 및 거래를 가능하게 합니다.
3. **공급망 관리:** 원산지에서 소비자까지 제품을 추적하여 투명성과 진위를 보장합니다.

## Solidity와 JavaScript의 관계

JavaScript에 익숙하다면 Solidity를 비교적 쉽게 익힐 수 있습니다. 두 언어는 구문이 비슷한 부분이 있지만, Solidity는 스마트 계약 작성을 목적으로 설계되었습니다.

## 코드에서 계약으로: 바이트코드 변환

Solidity로 코드를 작성하면 컴파일러가 이를 **바이트코드**로 변환합니다. 바이트코드는 이더리움 네트워크의 실행 환경인 **이더리움 가상 머신(EVM)**이 처리하는 형식입니다. EVM은 코드에 작성된 대로 계약을 실행하며, 코드에 오류가 있으면 그 오류도 그대로 실행됩니다.

## 이더리움: 주요 실행 환경

Solidity가 주로 쓰이는 곳은 스마트 계약을 지원하는 블록체인 플랫폼인 **이더리움**과 EVM 호환 체인입니다.

---
출처: https://achivx.kr/glossary/solidity-%EC%86%94%EB%A6%AC%EB%94%94%ED%8B%B0/ · ACHIVX 용어 사전 · 수정일 2026-10-20
