[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-deep-evm-5-yul-sogae-solidity-eosembeuli-eoneo":3},{"article":4,"author":58},{"id":5,"category_id":6,"title":7,"slug":8,"excerpt":9,"content_md":10,"content_html":11,"locale":12,"author_id":13,"published":14,"published_at":15,"meta_title":7,"meta_description":16,"focus_keyword":17,"og_image":18,"canonical_url":18,"robots_meta":19,"created_at":15,"updated_at":15,"tags":20,"category_name":38,"related_articles":39},"d5000000-0000-0000-0000-000000000105","a0000000-0000-0000-0000-000000000052","Deep EVM #5: Yul 소개 — Solidity의 비밀 어셈블리 언어","deep-evm-5-yul-sogae-solidity-eosembeuli-eoneo","Yul 실용 입문: 구문, Solidity 내 인라인 어셈블리, 사용 시기, 스토리지 읽기, 이벤트 발행, Solidity 오버헤드 우회를 위한 실습 예제.","## Yul이란 무엇이고 왜 존재하는가\n\nYul은 Solidity 팀이 설계한 중간 언어로 EVM 바이트코드로 컴파일됩니다. Solidity와 원시 옵코드 사이에 위치합니다: 변수, 함수, if\u002Fswitch\u002Ffor 구문을 가진 읽기 쉬운 구조화된 구문으로 모든 EVM 옵코드에 직접 접근할 수 있습니다.\n\nYul이 존재하는 이유는 Solidity 컴파일러가 보수적인 바이트코드를 생성하기 때문입니다. 오버플로우 검사, ABI 인코딩, 메모리 관리 — 애플리케이션 컨트랙트에는 유용하지만 MEV 봇, DEX 라우터, 온체인 수학 라이브러리와 같은 가스 중요 코드에는 용납할 수 없는 오버헤드입니다.\n\n## Yul 구문 기본\n\n### 변수\n```yul\nlet x := 42\nlet y := add(x, 1)    \u002F\u002F y = 43\n```\n\n### 함수\n```yul\nfunction safeAdd(a, b) -> result {\n    result := add(a, b)\n    if lt(result, a) { revert(0, 0) }\n}\n```\n\n### 제어 흐름\n```yul\nswitch selector\ncase 0xa9059cbb { \u002F* transfer 처리 *\u002F }\ncase 0x70a08231 { \u002F* balanceOf 처리 *\u002F }\ndefault { revert(0, 0) }\n```\n\n## Yul 사용 시기 (그리고 사용하지 않을 시기)\n\n### Yul을 사용할 때:\n1. **가스가 중요할 때** — MEV 봇, DEX 라우터\n2. **비트 연산이 필요할 때** — 데이터 패킹\u002F언패킹\n3. **메모리 레이아웃이 중요할 때** — 외부 호출용 콜데이터 구축\n4. **일시적 스토리지가 필요할 때** — Solidity가 네이티브 지원 추가하기 전\n\n### Yul을 사용하지 않을 때:\n1. **가독성이 가스보다 중요할 때**\n2. **EVM 지식에 자신이 없을 때**\n3. **가스 절감이 미미할 때**\n\n## Yul vs Huff\n\n| 기능 | Yul | Huff |\n|------|-----|------|\n| 스택 관리 | 자동 (컴파일러) | 수동 |\n| 변수 이름 | 예 | 아니오 |\n| 코드 크기 제어 | 제한적 | 완전 |\n| 가스 오버헤드 | 작음 | 제로 |\n| 학습 곡선 | 보통 | 가파름 |\n\n## 결론\n\nYul은 Solidity의 안전과 EVM의 원시 힘 사이의 다리입니다. 읽기 쉬운 구문으로 옵코드 수준 제어를 제공합니다. MEV 개발자에게 Yul 숙달은 수익성 있는 봇과 가스 효율에서 경쟁자에게 지는 봇의 차이입니다.","\u003Ch2 id=\"yul\">Yul이란 무엇이고 왜 존재하는가\u003C\u002Fh2>\n\u003Cp>Yul은 Solidity 팀이 설계한 중간 언어로 EVM 바이트코드로 컴파일됩니다. Solidity와 원시 옵코드 사이에 위치합니다: 변수, 함수, if\u002Fswitch\u002Ffor 구문을 가진 읽기 쉬운 구조화된 구문으로 모든 EVM 옵코드에 직접 접근할 수 있습니다.\u003C\u002Fp>\n\u003Cp>Yul이 존재하는 이유는 Solidity 컴파일러가 보수적인 바이트코드를 생성하기 때문입니다. 오버플로우 검사, ABI 인코딩, 메모리 관리 — 애플리케이션 컨트랙트에는 유용하지만 MEV 봇, DEX 라우터, 온체인 수학 라이브러리와 같은 가스 중요 코드에는 용납할 수 없는 오버헤드입니다.\u003C\u002Fp>\n\u003Ch2 id=\"yul\">Yul 구문 기본\u003C\u002Fh2>\n\u003Ch3>변수\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-yul\">let x := 42\nlet y := add(x, 1)    \u002F\u002F y = 43\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>함수\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-yul\">function safeAdd(a, b) -&gt; result {\n    result := add(a, b)\n    if lt(result, a) { revert(0, 0) }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>제어 흐름\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-yul\">switch selector\ncase 0xa9059cbb { \u002F* transfer 처리 *\u002F }\ncase 0x70a08231 { \u002F* balanceOf 처리 *\u002F }\ndefault { revert(0, 0) }\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"yul\">Yul 사용 시기 (그리고 사용하지 않을 시기)\u003C\u002Fh2>\n\u003Ch3>Yul을 사용할 때:\u003C\u002Fh3>\n\u003Col>\n\u003Cli>\u003Cstrong>가스가 중요할 때\u003C\u002Fstrong> — MEV 봇, DEX 라우터\u003C\u002Fli>\n\u003Cli>\u003Cstrong>비트 연산이 필요할 때\u003C\u002Fstrong> — 데이터 패킹\u002F언패킹\u003C\u002Fli>\n\u003Cli>\u003Cstrong>메모리 레이아웃이 중요할 때\u003C\u002Fstrong> — 외부 호출용 콜데이터 구축\u003C\u002Fli>\n\u003Cli>\u003Cstrong>일시적 스토리지가 필요할 때\u003C\u002Fstrong> — Solidity가 네이티브 지원 추가하기 전\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Yul을 사용하지 않을 때:\u003C\u002Fh3>\n\u003Col>\n\u003Cli>\u003Cstrong>가독성이 가스보다 중요할 때\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>EVM 지식에 자신이 없을 때\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>가스 절감이 미미할 때\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch2 id=\"yul-vs-huff\">Yul vs Huff\u003C\u002Fh2>\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>기능\u003C\u002Fth>\u003Cth>Yul\u003C\u002Fth>\u003Cth>Huff\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\n\u003Ctr>\u003Ctd>스택 관리\u003C\u002Ftd>\u003Ctd>자동 (컴파일러)\u003C\u002Ftd>\u003Ctd>수동\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>변수 이름\u003C\u002Ftd>\u003Ctd>예\u003C\u002Ftd>\u003Ctd>아니오\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>코드 크기 제어\u003C\u002Ftd>\u003Ctd>제한적\u003C\u002Ftd>\u003Ctd>완전\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>가스 오버헤드\u003C\u002Ftd>\u003Ctd>작음\u003C\u002Ftd>\u003Ctd>제로\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>학습 곡선\u003C\u002Ftd>\u003Ctd>보통\u003C\u002Ftd>\u003Ctd>가파름\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Ch2 id=\"\">결론\u003C\u002Fh2>\n\u003Cp>Yul은 Solidity의 안전과 EVM의 원시 힘 사이의 다리입니다. 읽기 쉬운 구문으로 옵코드 수준 제어를 제공합니다. MEV 개발자에게 Yul 숙달은 수익성 있는 봇과 가스 효율에서 경쟁자에게 지는 봇의 차이입니다.\u003C\u002Fp>\n","ko","b0000000-0000-0000-0000-000000000001",true,"2026-03-28T10:44:27.830855Z","Yul 어셈블리 실용 입문: 구문, Solidity 내 인라인 어셈블리, 가스 중요 스마트 컨트랙트를 위한 실습 예제.","Yul 어셈블리 언어",null,"index, follow",[21,26,30,34],{"id":22,"name":23,"slug":24,"created_at":25},"c0000000-0000-0000-0000-000000000016","EVM","evm","2026-03-28T10:44:21.513630Z",{"id":27,"name":28,"slug":29,"created_at":25},"c0000000-0000-0000-0000-000000000020","Gas Optimization","gas-optimization",{"id":31,"name":32,"slug":33,"created_at":25},"c0000000-0000-0000-0000-000000000014","Solidity","solidity",{"id":35,"name":36,"slug":37,"created_at":25},"c0000000-0000-0000-0000-000000000018","Yul","yul","블록체인",[40,46,52],{"id":41,"title":42,"slug":43,"excerpt":44,"locale":12,"category_name":38,"published_at":45},"d0000000-0000-0000-0000-000000000605","Ethereum 상호운용성 레이어: 55개 이상의 L2가 하나의 체인이 되는 방법","ethereum-sangho-unyongseong-layer-55-l2-hana-chain","Ethereum에는 55개 이상의 Layer 2 롤업이 있어 유동성과 사용자 경험이 파편화되어 있습니다. Ethereum 상호운용성 레이어 — 크로스 롤업 메시징, 공유 시퀀서, 베이스드 롤업을 결합하여 — 하나의 조합 가능한 네트워크로 통합하는 것을 목표로 합니다.","2026-03-28T10:44:44.895917Z",{"id":47,"title":48,"slug":49,"excerpt":50,"locale":12,"category_name":38,"published_at":51},"d0000000-0000-0000-0000-000000000604","롤업을 넘어선 ZK 증명: Ethereum에서의 검증 가능한 AI 추론","rolleob-eul-neomeo-zk-jeungmyeong-ethereum-geomjeung-ai-churon","영지식 증명은 더 이상 단순한 스케일링 도구가 아닙니다. 2026년, zkML은 온체인에서 검증 가능한 AI 추론을 가능하게 하고, ZK 코프로세서는 무거운 연산을 오프체인으로 이동시키며 온체인에서 검증하고, SP1과 Jolt 같은 새로운 증명 시스템이 이를 실용적으로 만들고 있습니다.","2026-03-28T10:44:44.890168Z",{"id":53,"title":54,"slug":55,"excerpt":56,"locale":12,"category_name":38,"published_at":57},"d0000000-0000-0000-0000-000000000581","EIP-7702 실전 가이드: Pectra 이후 스마트 계정 플로우 구축","eip-7702-siljeon-gaideu-pectra-ihu-seumateu-gyejeong-peulro-guchuk","EIP-7702는 모든 Ethereum EOA가 단일 트랜잭션 내에서 스마트 컨트랙트로 임시 동작할 수 있게 합니다. 새로운 계정 추상화 프리미티브를 사용한 배치 트랜잭션, 가스 후원, 소셜 리커버리 구현 방법을 소개합니다.","2026-03-28T10:44:43.377765Z",{"id":13,"name":59,"slug":60,"bio":61,"photo_url":18,"linkedin":18,"role":62,"created_at":63,"updated_at":63},"Open Soft Team","open-soft-team","The engineering team at Open Soft, building premium software solutions from Bali, Indonesia.","Engineering Team","2026-03-28T08:31:22.226811Z"]