이더리움(Ethereum)과 스마트 컨트랙트(Smart Contract) 기초: Solidity로 나만의 탈중앙화 크라우드펀딩 DApp 만들기
CRYPTO입문

이더리움(Ethereum)과 스마트 컨트랙트(Smart Contract) 기초: Solidity로 나만의 탈중앙화 크라우드펀딩 DApp 만들기

Solidity 지식이 전혀 없는 상태에서 시작하여, 이더리움 테스트넷(testnet)에 완전히 작동하는 포트폴리오용 크라우드펀딩 DApp을 배포하기까지

A
Alex Kim· Blockchain Developer & Web3 Architect
3 강의8h1 수강생15 조회
학습 시작
공유

소개

이더리움은 탈중앙화 금융(DeFi), 대체 불가능 토큰(NFT), 웹3(Web3)의 근간이며, 스마트 컨트랙트는 그 엔진입니다. 이 강좌는 이더리움 가상 머신(EVM)이 실제로 어떻게 작동하는지 이해하는 것부터, ETH 기여금을 받고 마감 기한을 적용하며 환불을 처리하는 실제 크라우드펀딩 DApp을 작성하고 테스트하고 배포하는 것까지 다룹니다 — 모든 것이 신뢰 없이 온체인(on-chain)에서 이루어집니다. 단순히 Solidity 문법을 배우는 것이 아니라, 스마트 컨트랙트가 *왜* 그렇게 동작하는지, 그리고 함수를 배포하거나 호출할 때마다 내부적으로 *무슨 일이 일어나는지*를 이해하게 됩니다. 이 강좌는 구축 우선 방법론(build-first methodology)을 따릅니다. 모든 개념은 10개의 레슨에 걸쳐 한 줄씩 직접 구축하는 탈중앙화 크라우드펀딩 플랫폼인 FundChain에 즉시 적용됩니다. 이더리움의 핵심 아키텍처부터 시작하여 Solidity의 타입 시스템과 보안 패턴을 거쳐, 메타마스크(MetaMask)를 통해 실제 작동하는 웹 프론트엔드(frontend)에 연결된 배포된 컨트랙트로 마무리됩니다. 각 레슨에는 직접 코딩, 보안 분석, 자동화 테스트가 포함됩니다 — 블록체인(Blockchain)에서 테스트되지 않은 코드는 신뢰할 수 없는 코드이기 때문입니다. 나선형 접근 방식(spiral approach)은 프로젝트가 성장함에 따라 가스(gas), 스토리지(storage), 체크-이펙트-인터랙션(checks-effects-interactions) 패턴과 같은 핵심 개념을 점점 더 깊은 수준에서 다시 살펴보게 됨을 의미합니다. 이 강좌는 Python, JavaScript, Java 등 변수, 함수, 조건문이 있는 어떤 언어로든 기본 프로그래밍 경험이 있지만, 스마트 컨트랙트를 작성해본 적 없는 개발자를 위해 설계되었습니다. 블록체인 개발 사전 경험은 필요하지 않으나, 블록체인이 무엇인지에 대한 개념적 이해가 있으면 더 빠르게 시작하는 데 도움이 됩니다. 블록체인 또는 비트코인(Bitcoin) 입문 강좌를 수료하고 실제 구축으로 나아가고 싶다면, 이 강좌가 그 출발점입니다. 강좌를 마치면 처음부터 직접 만든 작동하는 DApp을 GitHub 포트폴리오에 보유하게 되고, 간단한 Solidity 컨트랙트를 읽고 감사(audit)할 수 있는 자신감과 DeFi 프로토콜, NFT 컨트랙트, 고급 이더리움 개발 패턴을 탐구할 탄탄한 기반을 갖추게 됩니다. 또한 향후 모든 스마트 컨트랙트 프로젝트에 적용할 수 있는 재사용 가능한 테스트 스위트(test suite)와 배포 파이프라인(deployment pipeline)도 갖추게 됩니다.

학습 목표

  • EVM 아키텍처, 계정 유형(EOA 대 컨트랙트 계정), 가스 계산을 포함한 전체 트랜잭션(transaction) 라이프사이클을 설명할 수 있습니다
  • 핵심 데이터 타입, 구조체(struct), 매핑(mapping), 배열(array), 함수 가시성 수정자(visibility modifier)를 사용하여 Solidity 스마트 컨트랙트를 작성할 수 있습니다
  • 온체인에서 계정 간에 이더(Ether)를 안전하게 수신, 추적, 전송하는 payable 함수를 구현할 수 있습니다
  • 체크-이펙트-인터랙션(checks-effects-interactions), 인출 패턴(withdrawal pattern), 재진입 공격(reentrancy) 방지를 포함한 스마트 컨트랙트 보안 패턴을 적용할 수 있습니다
  • Hardhat, Ethers.js, Chai를 사용하여 시간 조작(time manipulation)이 포함된 Solidity 컨트랙트의 자동화 테스트 스위트를 구축하고 실행할 수 있습니다
  • 검증된 스마트 컨트랙트를 Sepolia 테스트넷에 배포하고, 배포 스크립트를 통해 프로그래밍 방식으로 상호 작용할 수 있습니다
  • Ethers.js를 사용하여 MetaMask 지갑을 배포된 스마트 컨트랙트에 연결하는 최소한의 웹 프론트엔드를 구축할 수 있습니다
#이더리움#솔리디티#스마트-컨트랙트#댑-개발#하드햇#웹3#크라우드펀딩#블록체인-개발

수강 후기

관련 코스