solidity11 [Remix IDE] Remix IDE ↔ GitHub 연동 & 해제 완전 가이드 ✅ Remix ↔ GitHub 연동 & 해제 완전 가이드🔗 1. GitHub와 Remix 연결하기 (연동)📌 사전 준비GitHub 계정 필요Remix 웹 IDE 접속: https://remix.ethereum.org📌 연동 절차단계설명1️⃣ 플러그인 활성화Remix 왼쪽 🔌 "플러그인 매니저" → Git 검색 → Activate 클릭2️⃣ Git 플러그인 실행왼쪽 메뉴에 생긴 🔀 Git 아이콘 클릭3️⃣ GitHub 계정 연결"Connect to GitHub" 클릭 → GitHub 로그인 → "Authorize Remix Project" 승인4️⃣ 리포 연결- 기존 리포: Clone from GitHub 사용 - 새 리포: Create new repository로 생성5️⃣ 파일 관리- Stag.. 2025. 5. 15. [Solidity] 9. 이벤트(Event)와 로깅 ✅ 9. 이벤트(Event)와 로깅외부 DApp, 프론트엔드, 로그 기록과의 연결을 가능하게 해줌.사용자 행동 추적, UI 실시간 반영, off-chain 자동화 트리거 등에 핵심 역할을 수행.📌 1. 이벤트(Event)란?스마트컨트랙트 내부에서 특정 상태 변화가 발생했을 때 로그를 기록하는 메커니즘외부 애플리케이션(DApp, 프론트엔드)이 이 로그를 구독하고 반응할 수 있도록 함✅ 기본 구조event EventName(type indexed param1, type param2);emit EventName(value1, value2);📌 2. 이벤트 선언 및 발생✅ 예시: 예치금 이벤트event Deposited(address indexed from, uint amount);function depos.. 2025. 4. 18. [Solidity] 8. 이더 송수신과 `payable`, `transfer`, `send`, `call` ✅ 8. 이더 송수신과 payable, transfer, send, call입출금 로직, NFT 구매, 스테이킹, DAO 자금 배분 등 거의 모든 디앱에서 사용보안 중요📌 1. 이더를 받기 위한 함수 조건이더를 받으려면 최소한 하나 이상의 payable 함수가 있어야 합니다.✅ 가장 간단한 형태receive() external payable { // 수신 로직}📌 2. payable 키워드이더를 받을 수 있는 함수 또는 이더를 보낼 수 있는 주소 타입에 붙입니다.✅ 사용 위치대상예시함수function deposit() public payable { ... }주소payable(msg.sender).transfer(1 ether);📌 3. 이더 수신 함수함수조건역할receive()msg.data .. 2025. 4. 18. [Solidity] 7. 접근 제어 패턴과 `modifier` ✅ 7. 접근 제어 패턴과 modifierSolidity에서 보안과 권한 제어의 핵심 기능오직 owner만 자금을 인출하게 만들기특정 조건을 만족해야만 실행되게 만들기공통 로직(예: require) 중복 방지📌 1. 접근 제어란?스마트컨트랙트의 민감한 기능을 특정 조건을 만족하는 사용자만 실행할 수 있도록 제한하는 구조입니다.✅ 대표적인 실무 패턴패턴 이름설명onlyOwner소유자만 호출 가능onlyAdmin관리자 전용 기능whenNotPaused정지 상태일 때 호출 차단validAmount조건을 만족해야 실행 가능📌 2. modifier란?함수 실행 전후에 조건 검사 로직을 삽입하는 재사용 가능한 코드 블록입니다.✅ 문법modifier onlyOwner() { require(msg.sender.. 2025. 4. 18. [Solidity] 6.매핑(Mapping)과 배열(Array) ✅ 6. 매핑(Mapping)과 배열(Array)Solidity의 데이터 저장 구조의 핵심📌 1. 매핑 (Mapping)✅ 정의Solidity의 핵심 자료구조.Key → Value 쌍으로 데이터를 저장하며, 해시테이블처럼 작동합니다.mapping(address => uint) public balances;balances[0x123...] = 100; 처럼 사용기본값 자동 초기화 (해당 키가 없으면 0 반환)✅ 특징특징설명검색 빠름해시 기반으로 즉시 접근전체 순회 불가키 목록을 직접 저장하지 않으면 전체 조회 불가기본값 존재존재하지 않는 키에 접근 시에도 오류 발생하지 않음 (기본값 반환)중첩 가능mapping(address => mapping(uint => bool)) 가능✅ 실무 예시mapping(a.. 2025. 4. 17. [Solidity] 5. 구조체(Struct)와 열거형(Enum) ✅ 5. 구조체(Struct)와 열거형(Enum)Solidity에서 복잡한 데이터 구조를 표현할 수 있게 해줌.이 둘은 단순히 문법적으로만 중요한 게 아니라, 실무에서사용자 정보주문 상태NFT 메타데이터접근 권한 설정등의 도메인 모델링에 필수적입니다.📌 1. 구조체(Struct)✅ 정의여러 변수들을 하나로 묶은 사용자 정의 타입struct User { string name; uint age; address wallet;}Java의 class나 Python의 dict처럼 필드를 그룹화컨트랙트 내에서 재사용, 배열/매핑으로 조합 가능✅ 선언 위치contract 내부 또는 외부 가능(단, 외부에 선언 시 import 필요)contract A { struct Item { ... }}✅ 사.. 2025. 4. 17. 이전 1 2 다음