소프트웨어 개발
HardhatHardhat
Hardhat는 Ethereum 스마트 컨트랙트 개발을 위한 JavaScript/TypeScript 기반 개발 환경 프레임워크다. 컨트랙트 컴파일, 테스트, 배포, 디버깅을 하나의 도구로 처리한다. 2020년 이후 이더리움 개발의 사실상 표준으로 자리잡았다.
주요 기능
| 기능 | 설명 |
|---|---|
| Hardhat Network | 로컬 이더리움 시뮬레이터, 즉각적인 트랜잭션 |
| 컴파일 | Solidity 컴파일 및 ABI 생성 자동화 |
| 테스트 | Mocha/Chai 기반 컨트랙트 테스트 |
| 배포 스크립트 | 네트워크별 자동화된 배포 |
| 디버깅 | console.log 지원, 스택 트레이스 |
| 플러그인 | ethers.js, OpenZeppelin, waffle 통합 |
기본 워크플로
Foundry와 비교
| 항목 | Hardhat | Foundry |
|---|---|---|
| 언어 | JavaScript/TypeScript | Rust 기반, 테스트는 Solidity |
| 속도 | 보통 | 매우 빠름 |
| 생태계 | 넓음, 많은 플러그인 | 빠르게 성장 중 |
| 학습 곡선 | JS 친숙자에게 쉬움 | Solidity 개발자에게 직관적 |
| 퍼징 | 제한적 | 강력한 Fuzz Testing |
테스트 예시
Hardhat vs Foundry 비교
| 항목 | Hardhat | Foundry |
|---|---|---|
| 테스트 언어 | JavaScript / TypeScript | Solidity |
| 실행 속도 | 중간 | 빠름 (Rust 기반) |
| 플러그인 생태계 | 풍부 | 성장 중 |
| 퍼징/불변 테스트 | 플러그인 필요 | 기본 내장 |
| 학습 곡선 | JS 익숙하면 낮음 | Solidity만 알면 낮음 |
| 적합한 사용처 | 프론트엔드 통합, JS 팀 | DeFi, 보안 중심 팀 |
권장 전략: 두 도구를 함께 사용하는 것이 최선. Hardhat으로 배포·통합 스크립트, Foundry로 단위 테스트·퍼징.
관련 개념
- •스마트 컨트랙트 — Hardhat으로 개발하는 대상
- •Solidity — Hardhat이 컴파일하는 언어
- •JavaScript — Hardhat 스크립트/테스트 작성 언어
- •OpenZeppelin — Hardhat과 함께 자주 사용하는 라이브러리
- •ABI — Hardhat 컴파일 시 자동 생성
