본문 바로가기
Blockchain

[Solidity] Solidity 스마트컨트랙트 개발 문법 및 용어 정리 목차

by clolee 2025. 4. 17.

✅ 실무 중심 Solidity 스마트컨트랙트 개발 문법 및 용어 정리 목차

1. 스마트컨트랙트 기본 구조와 구성 요소

  • pragma, contract, import, constructor
  • 컨트랙트 내 구조적 규칙과 배포 흐름

2025.04.17 - [blockchain] - [Solidity] 1. 스마트컨트랙트 기본 구조와 구성 요소

2. 상태 변수와 데이터 타입

  • uint, int, bool, address, string, bytes, enum
  • storage, 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.value
  • transfer, 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. 가스 최적화 및 스토리지 비용 절감

  • uint256 vs uint8 비용 차이
  • packing 가능한 구조체 설계
  • 반복문 최적화, 이벤트 최소화

16. 배포 전략과 테스트 환경 구성

  • Remix, Ganache, Hardhat을 이용한 배포
  • 로컬 vs 테스트넷 vs 메인넷 배포 차이
  • Truffle/Hardhat 기반 테스트 코드 작성

17. ERC 표준 및 실전 토큰 개발

  • ERC-20, ERC-721, ERC-1155의 구조와 차이
  • Safe Transfer, Approval 구조
  • 실전에서 자주 사용하는 OpenZeppelin 활용법

댓글