✅ 실무 중심 Solidity 스마트컨트랙트 개발 문법 및 용어 정리 목차
1. 스마트컨트랙트 기본 구조와 구성 요소
pragma,contract,import,constructor- 컨트랙트 내 구조적 규칙과 배포 흐름
2025.04.17 - [blockchain] - [Solidity] 1. 스마트컨트랙트 기본 구조와 구성 요소
2. 상태 변수와 데이터 타입
uint,int,bool,address,string,bytes,enumstorage,memory,calldata정확한 차이constant,immutable,public,private등 변수 수식자
2025.04.17 - [blockchain] - [Solidity] 2. 상태 변수와 데이터 타입
3. 함수(Function) 정의와 실행 흐름
- 함수 접근 제어자:
public,external,internal,private - 함수 속성:
view,pure,payable,returns - 함수 호출 방식: 내부 호출 vs 외부 호출, delegatecall
2025.04.17 - [blockchain] - [Solidity] 3. 함수(Function) 정의와 실행 흐름
4. 제어 구조 & 연산자
if,else,while,for,require,revert,assert==,!=,<,>,&&,||,!,++,--,+=등
2025.04.17 - [blockchain] - [Solidity] 4. 제어 구조 & 연산자 (조건문, 반복문, 오류 처리)
5. 구조체(Struct)와 열거형(Enum)
- 복합 데이터 구조 정의
- 구조체 배열, 매핑과의 조합
enum을 통한 상태 전이(state transition) 모델링
2025.04.17 - [blockchain] - [Solidity] 5. 구조체(Struct)와 열거형(Enum)
6. 매핑(Mapping)과 배열
mapping(keyType => valueType)push,pop,delete배열 조작mapping+struct을 통한 복합 저장소 설계
2025.04.17 - [blockchain] - [Solidity] 6.매핑(Mapping)과 배열(Array)
7. 접근 제어 패턴과 modifier
onlyOwner,onlyAdmin패턴 구현modifier로 중복 로직 제거- 인자 전달 modifier
2025.04.18 - [blockchain] - [Solidity] 7. 접근 제어 패턴과 `modifier`
8. 이더 송수신과 payable
msg.sender,msg.valuetransfer,send,call방식 비교- 이더를 받는 함수:
receive(),fallback()
2025.04.18 - [blockchain] - [Solidity] 8. 이더 송수신과 `payable`, `transfer`, `send`, `call`
9. 이벤트(Event)와 로깅
event,emit구문indexed키워드- DApp에서 이벤트를 통한 상태 추적
2025.04.18 - [blockchain] - [Solidity] 9. 이벤트(Event)와 로깅
10. 에러 처리
require,revert,assert비교- 커스텀 에러(
error) 사용으로 가스 절약
2025.04.18 - [blockchain] - [Solidity] 10. 에러 처리: `require`, `revert`, `assert`, `error`
11. 상속, 추상 컨트랙트, 인터페이스
is,abstract,interface,override,virtual- ERC-20/ERC-721 등 표준 인터페이스 구현
2025.04.18 - [blockchain] - [Solidity] 11. 상속, 추상 컨트랙트, 인터페이스
12. 라이브러리와 재사용
library키워드- 안전한 수학 연산: OpenZeppelin’s SafeMath (0.8 이상에서 불필요)
- 고급 활용:
using for문법
13. 보안 패턴
- 재진입 공격 방어 (
checks-effects-interactions) - 프론트러닝 방지 (
commit-reveal,block.timestamp) - 비인가 접근 제어
14. 컨트랙트 간 호출 및 Low-level 함수
call,delegatecall,staticcall- 인터페이스를 통한 외부 호출
- 컨트랙트 주소 안전성 검증
15. 가스 최적화 및 스토리지 비용 절감
uint256vsuint8비용 차이- packing 가능한 구조체 설계
- 반복문 최적화, 이벤트 최소화
16. 배포 전략과 테스트 환경 구성
- Remix, Ganache, Hardhat을 이용한 배포
- 로컬 vs 테스트넷 vs 메인넷 배포 차이
- Truffle/Hardhat 기반 테스트 코드 작성
17. ERC 표준 및 실전 토큰 개발
- ERC-20, ERC-721, ERC-1155의 구조와 차이
- Safe Transfer, Approval 구조
- 실전에서 자주 사용하는 OpenZeppelin 활용법
'Blockchain' 카테고리의 다른 글
| [Solidity] 2. 상태 변수와 데이터 타입 (0) | 2025.04.17 |
|---|---|
| [Solidity] 1. 스마트컨트랙트 기본 구조와 구성 요소 (0) | 2025.04.17 |
| [Blockchain] DApp 개발을 위한 구성 요소 (0) | 2025.04.17 |
| [Ethereum] Remix이전에 배포한 스마트컨트랙트를 다시 불러오는 방법 (0) | 2025.04.11 |
| [Ethereum] 이더리움 테스트넷 Sepolia, Holesky (0) | 2025.04.11 |
댓글