블록체인

Solidity 알아보기 ( 공식 문서 참고 )

sungjae0309 2026. 5. 19. 12:36

Solidity란? 

공식 문서에 따른 내용들을 정리해보고자 한다. 

  • Solidity는 스마트 컨트랙트 구현을 위한 고수준 객체 지향 언어이다
  • 스마트 컨트랙트는 이더리움 상태(state)에서 계정(account)들의 동작을 관리하는 프로그램

주요 특징

  • EVM 타겟팅: 이더리움 가상 머신(EVM)에서 구동되도록 설계된 중괄호 {} 베이스의 언어이다. 
  • 친숙한 문법: C++, Python, JavaScript의 영향을 받아 비교적 익숙한 형태를 띈다. 
  • 정적 타입 언어: 컴파일 시점에 변수의 타입이 결정되며 상속, 라이브러리, 복잡한 사용자 정의 타입 등을 지원한다. 

활용 범위

솔리디티로 작성된 스마트 컨트랙트는 다음과 같은 탈중앙화 서비스에 활용할 수 있다

  • 온라인 투표 시스템
  • 크라우드 펀딩
  • 블라인드 경매
  • 다중 서명 지갑 

솔리디티 시작하기

공식 문서에서는 솔리디티를 처음 접하는 개발자를 위해 아래의 단계를 권장하고 있다 

  • 기초 이해: 스마트 컨트랙트, 블록체인 기초, EVM의 개념을 먼저 숙지한다 
  • 코드 직접 작성: 로컬 환경에 당장 설치하기 부담스럽다면, 통합 개발 환경인 Remix IDE를 활용해 코드를 작성하고 배포해 볼 수 있다
  • 보안 모범 사례 준수: 스마트 컨트랙트에는 블록체인 트귱의 취약점이 존재할 수 있다. 실제 서비스 환경에 배포 전 반드시 코드 리뷰, 테스트, 보안 감사를 거쳐야 한다 

용어 정리 

  • EVM (Ethereum Virtual Machine): 스마트 컨트랙트가 실행되는 이더리움 네트워크 상의 독립적인 가상 컴퓨터 환경
  • Remix IDE: 별도 설치 없이 웹 브라우저에서 바로 솔리디티 코드 짜고 테스트 가능한 개발 환경 

나의 개발 환경과 순서 정리 

나는 AI 개발 도구인 Claude Code와 Codex를 적극 활용해서 Solidy를 개발해보고자 한다.

GPT에게 물어본 결과 다음과 같은 개발 방식을 추천해주었다.

순서 

  1. Foundry로 Solidity 기본기
  2. Claude Code로 컨트랙트 설명/테스트/보안 리뷰
  3. Codex로 기능 단위 구현 맡기기
  4. Hardhat 또는 Next.js로 프론트 연동
  5. Anvil 로컬체인에서 테스트
  6. Sepolia 같은 테스트넷 배포

최종 환경

구분 사용 도구
에디터 Vs Code
AI  Claude + Codex
Solidity 프레임워크 Foundry 
dApp 프론트 연동 Hardhat + React/Next.js
패키지 매니저 pnpm
로컬 체인 Anvil
지갑/테스트넷 MetaMask + Sepolia

이 조합을 추천해 준 이유는 Solidity 개발에 필요한 기본 요소를 거의 포함하고 있기 때문이다. 

  • Foundry로 스마트 컨트랙트를 빠르게 작성하고 테스트할 수 있고,
  • Hardhat과 React 또는 Next.js를 이용하면 실제 사용자가 접근할 수 있는 dApp 형태로 확장할 수 있다.

각 도구의 역할 정리 

 

1. Foundry

Foundry는 Solidity 스마트 컨트랙트 개발을 위한 프레임워크다.

  • 컨트랙트 작성, 테스트, 배포를 빠르게 진행할 수 있고, 특히 테스트 속도가 빠르다는 장점이 있다.
  • fuzz test 같은 고급 테스트 기능도 지원하기 때문에, 스마트 컨트랙트의 안정성을 높이는 데 도움이 된다.

2. Hardhat

Hardhat은 Ethereum 기반 dApp 개발에서 많이 사용되는 개발 환경이다.

  • Foundry가 컨트랙트 개발과 테스트에 강하다면, Hardhat은 프론트엔드와의 연동에서 장점이 있다.
  • React나 Next.js로 만든 화면과 스마트 컨트랙트를 연결할 때 유용하게 사용할 수 있다.
  • 따라서 기본 컨트랙트 개발은 Foundry로 진행하고, 이후 dApp 형태로 확장할 때 Hardhat을 함께 활용할 계획이다.

 

 

'블록체인' 카테고리의 다른 글

Solidity 실습: Foundry  (0) 2026.05.22
Solidity 실습 준비: MacOS에서 Foundry 개발 환경 설치  (0) 2026.05.20
스마트 컨트랙트란  (1) 2026.05.18
레이어란  (0) 2026.05.17
Validator와 Staking  (0) 2026.05.16