OP Stack 배우기 — 14개 단계 중 3단계.
지금까지 OP Stack이 무엇이며 각 부분이 어떻게 맞물리는지 살펴보았습니다. 이
페이지에서는 OP Stack이 현재와 같이 구축된 이유를 설명하는 설계 기둥을
소개합니다. 다 읽은 후에는
Ethereum과의 차이점으로 이어서 진행하십시오.
OP Stack은 단순성(simplicity), 실용성(pragmatism), 지속 가능성(sustainability), 그리고 물론 **낙관주의(optimism)**라는 네 가지 주요 기둥에 기반한 확고한 설계 철학에 따라 구축되었습니다.
이 기둥들은 Optimism 전체의 설계에 큰 영향을 미치므로 이해하는 것이 중요합니다.
Optimism은 제공하는 기능 세트에 비해 최대한 단순하도록 설계되었습니다.
이상적으로 Optimism은 안전하고 확장 가능하며 유연한 L2 시스템에 필요한 최소한의 구성 요소로 이루어져야 합니다.
이러한 단순성 덕분에 Optimism의 설계는 더 복잡한 다른 L2 구조에 비해 여러 가지 중요한 이점을 갖습니다.단순성은 엔지니어링 오버헤드를 줄여 주며, 이는 곧 기존 기능을 다시 만드는 대신 새로운 기능을 개발하는 데 시간을 쓸 수 있다는 의미입니다.
Optimism은 가능한 한 실전에서 검증된 기존 Ethereum 코드와 인프라를 사용하는 것을 선호합니다.
이 철학이 실제로 적용된 가장 눈에 띄는 예는 Optimism의 클라이언트 소프트웨어로 Geth를 사용하기로 한 선택입니다.중요 인프라를 다룰 때는 단순성이 곧 보안이기도 합니다.
작성하는 모든 코드 한 줄 한 줄이 의도치 않은 버그를 유발할 수 있는 기회가 됩니다.
프로토콜이 단순하다는 것은 작성할 코드가 적다는 뜻이며, 결과적으로 잠재적인 실수가 발생할 수 있는 영역도 줄어듭니다.
깔끔하고 최소한의 코드베이스는 외부 기여자와 감사자에게도 더 접근하기 쉽습니다.
이 모든 것이 Optimism 프로토콜의 보안성과 정확성을 극대화하는 데 기여합니다.단순성은 Optimism의 장기적인 비전에도 중요합니다.
Ethereum 도구 위에 작성하는 코드의 양을 제한함으로써, 대부분의 시간을 기존 코드베이스와 직접 작업하는 데 쓸 수 있습니다.
Optimism에 투입된 엔지니어링 노력은 Ethereum에도 직접적인 혜택이 될 수 있으며, 그 반대도 마찬가지입니다.
이는 Optimism 프로토콜이 안정화되고 기존 리소스를 핵심 Ethereum 인프라로 돌릴 수 있게 될수록 더욱 두드러질 것입니다.
이상주의에도 불구하고, Optimism의 설계 프로세스는 궁극적으로 실용성에 의해 이끌어집니다.
Optimism 핵심 팀에는 현실적인 제약이 있고, Optimism 위에 구축하는 프로젝트에는 현실적인 요구가 있으며, Optimism을 사용하는 사용자에게는 현실적인 문제가 있습니다.
Optimism의 설계 철학은 이론적 완벽함보다 사용자와 개발자의 요구를 우선시합니다.
때로는 가장 좋은 해결책이 가장 보기 좋은 해결책은 아닙니다.Optimism은 또한 어떤 핵심 팀이든 전문 분야가 제한적일 수밖에 없다는 이해를 바탕으로 개발됩니다.
Optimism은 반복적으로 개발되며, 사용자로부터 지속적으로 피드백을 얻기 위해 노력합니다.
현재 Optimism의 많은 핵심 기능(예: EVM 동등성)은 이러한 반복적인 프로토콜 개발 방식 덕분에 가능했습니다.
Optimism은 장기적인 관점으로 운영됩니다.
애플리케이션 개발자는 자신이 구축하는 플랫폼이 장기간에 걸쳐 단순히 운영되는 것뿐만 아니라 경쟁력을 유지할 것이라는 확신이 필요합니다.
Optimism의 설계 프로세스는 장기적인 지속 가능성을 중심으로 구성되며, 확장성을 위해 지름길을 택하지 않습니다.
결국, 확장 가능한 시스템도 그것을 지탱하는 생태계가 없으면 아무 의미가 없습니다.지속 가능성은 단순성 철학과 맞물려 Optimism의 프로토콜 설계에 적극적으로 영향을 미칩니다.
코드베이스가 복잡할수록 핵심 개발 팀 외부의 사람들이 적극적으로 기여하기가 더 어려워집니다.
코드베이스를 단순하게 유지함으로써, 장기적으로 프로토콜 유지 관리를 도울 수 있는 더 큰 기여자 커뮤니티를 구축할 수 있습니다.
물론 이 모든 것은 낙관주의 없이는 불가능합니다.
Ethereum 비전에 대한 낙관이 이 프로젝트를 계속 앞으로 나아가게 합니다.
우리는 Ethereum의 낙관적인 미래, 즉 우리의 삶을 조율하는 기관들과의 관계를 새롭게 설계할 수 있는 미래를 믿습니다.Optimism은 독립적인 블록체인처럼 보이지만, 궁극적으로 Ethereum의 확장으로 설계되었습니다.
새로운 기능을 만들거나 기존 기능을 단순화하려고 할 때마다 이 점을 염두에 둡니다.
Optimism이 최대한 Ethereum에 가깝게 유지되는 것은 실용적인 이유 때문만이 아니라, Optimism이 Ethereum의 성공을 위해 존재하기 때문입니다.
Optimism의 설계를 살펴보면서 이 철학의 영향을 확인할 수 있기를 바랍니다.
OP Stack은 USEful 소프트웨어입니다. OP Stack은 L2 블록체인 생태계를 구축하기 위한 소프트웨어 구성 요소 세트로, Optimism을 구동하기 위해 Optimism Collective가 구축했습니다.
OP Stack에 추가되는 구성 요소는 **유용성(Utility), **단순성(Simplicity), **확장성(Extensibility)이라는 세 가지 핵심 설계 원칙에 따라 구축되어야 합니다.
이러한 원칙을 따르는 소프트웨어는 Optimism Collective를 위한 USEful 소프트웨어입니다!
OP Stack의 일부가 되려면 Optimism Collective를 구동하는 데 도움이 되어야 합니다.
이 조건은 스택에 포함될 수 있는 소프트웨어의 유형을 결정하는 데 지침이 됩니다.
예를 들어, 사용자가 OP Stack 체인을 더 쉽게 살펴볼 수 있게 해 주는 강력한 오픈 소스 블록 탐색기는 OP Stack에 훌륭한 추가 요소가 될 것입니다.OP Stack에 포함되려면 유용성이 중요하지만, 실험을 두려워할 필요는 없습니다.
과감한 시도를 해 보십시오.
명확한 유용성이 없더라도 지금까지 만들어진 적 없는 무언가를 만들어 보십시오. 이모지를 위한 블록체인이든 무엇이든 만들어 보십시오. 즐기십시오!
복잡한 코드는 확장되지 않습니다.
OP Stack에 포함되는 코드는 단순해야 합니다.단순성은 엔지니어링 오버헤드를 줄여 주며, 이는 곧 Collective가 기존 기능을 다시 만드는 대신 새로운 기능을 개발하는 데 시간을 쓸 수 있다는 의미입니다.
OP Stack은 가능한 한 실전에서 검증된 기존 코드와 인프라를 사용하는 것을 선호합니다.
이 철학이 실제로 적용된 가장 눈에 띄는 예는 OP Stack의 기본 실행 엔진으로 Geth를 사용하기로 한 선택입니다.중요 인프라를 다룰 때는 단순성이 곧 보안이자 유지 보수성이기도 합니다.
작성되는 모든 코드 한 줄 한 줄이 버그와 취약점을 유발할 수 있는 기회가 됩니다.
프로토콜이 단순하다는 것은 작성할 코드가 적다는 뜻이며, 결과적으로 잠재적인 실수가 발생할 수 있는 영역도 줄어듭니다.
깔끔하고 최소한의 코드베이스는 외부 기여자와 감사자에게도 더 접근하기 쉽습니다.
이 모든 것이 OP Stack의 보안성과 정확성을 극대화하는 데 기여합니다.
좋은 OP Stack 코드는 본질적으로 개방적이고, 협력적이며, 확장 가능합니다.
협업을 통해 고립된 개발에서 벗어날 수 있습니다.
협업을 통해 동일한 구성 요소를 반복해서 다시 만드는 데 드는 시간을 줄이고, 서로의 작업 위에 구축하는 데 더 많은 시간을 쓸 수 있습니다.
협업은 우리가 함께 성공하는 방법입니다.확장 가능한 코드는 다른 사람들이 그 코드를 사용하고 그 위에 구축하고 싶어 할 것이라는 생각으로 설계되어야 합니다.
실제로 이는 코드가 (허용적 라이선스하에) 오픈 소스여야 하고, 깔끔한 API를 노출해야 하며, 다른 개발자가 비교적 쉽게 코드의 기능을 확장할 수 있도록 전반적으로 모듈화되어 있어야 한다는 것을 의미합니다.
확장성은 Optimism Collective 생태계 내에서 협업이라는 강력한 힘을 이끌어 내는 핵심 설계 원칙입니다.
이 페이지가 도움이 되었나요?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Optimism Documentation","colors":{"primary":"#FF0420","light":"#FF0420","dark":"#FF0420"},"logo":{"light":"https://mintcdn.com/optimism-373f39ad/Vw5vY8zA-CRjBsUF/public/logos/Lockup_docs_dark.svg?fit=max\u0026auto=format\u0026n=Vw5vY8zA-CRjBsUF\u0026q=85\u0026s=a1ab18aecbec09fe5ad40222ce76f00c","dark":"https://mintcdn.com/optimism-373f39ad/Vw5vY8zA-CRjBsUF/public/logos/Lockup_docs_light.svg?fit=max\u0026auto=format\u0026n=Vw5vY8zA-CRjBsUF\u0026q=85\u0026s=edf965cc513f1a46b1897e2a6494b43b"},"favicon":"https://mintcdn.com/optimism-373f39ad/x8TXRvd2PF-Wx1yv/public/favicon.png?fit=max\u0026auto=format\u0026n=x8TXRvd2PF-Wx1yv\u0026q=85\u0026s=7b7a602bd267ee638c0167179f41737c","navbar":{"links":[{"href":"https://www.optimism.io/blog","label":"Blog"},{"href":"https://github.com/ethereum-optimism/optimism/tree/develop/docs/public-docs","label":"GitHub"}]},"footer":{"socials":{"twitter":"https://twitter.com/optimism","github":"https://github.com/ethereum-optimism"}},"seo":{"metatags":{"canonical":"https://docs.optimism.io/","og:title":"Optimism Documentation","og:type":"website","twitter:card":"summary_large_image"}},"integrations":{"mixpanel":{"projectToken":"807e42c62989ff12427a35baa12b6218"}},"contextual":{"options":["copy","chatgpt","claude","mcp"],"display":"header"},"thumbnails":{"preset":"classic","appearance":"dark","surface":"neutral","background":"https://mintcdn.com/optimism-373f39ad/ZyL9bbNrDzMQhMLM/public/img/thumbnail-bg.png?fit=max\u0026auto=format\u0026n=ZyL9bbNrDzMQhMLM\u0026q=85\u0026s=5baf50afc7e4f4e6288de49b3df19d52","fonts":{"family":"Riforma LL","source":"public/fonts/RiformaLL-Regular.woff","format":"woff"},"eyebrow":{"source":"none"}},"interaction":{"drilldown":false},"metadata":{"timestamp":false},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Status","icon":"signal-bars","href":"https://status.optimism.io"},{"anchor":"Faucet","icon":"gas-pump","href":"https://console.optimism.io/faucet"},{"anchor":"Bridge","icon":"bridge-water","href":"https://app.optimism.io/bridge/deposit"}]},"languages":[{"language":"en","href":""},{"language":"ko","href":"ko"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"optimism-373f39ad","hasAudioNarration":false,"actualSubdomain":"optimism-373f39ad","customDomains":["docs.optimism.io"],"gitSource":{"type":"github","owner":"ethereum-optimism","repo":"optimism","deployBranch":"develop","contentDirectory":"docs/public-docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae92d842d72e31fdbcf58ca","collectionId":"5f428d64-929a-4b8a-a758-22093ef9aeb7","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae92d842d72e31fdbcf58ca"},"feedback":{"thumbs":true,"issues":false,"edits":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae92d842d72e31fdbcf58ca","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"en","tag":"Reference","count":136},{"language":"ko","tag":"참조","count":136},{"language":"en","tag":"Node Operators","count":119},{"language":"ko","tag":"노드 운영자","count":119},{"language":"en","tag":"Protocol","count":98},{"language":"ko","tag":"프로토콜","count":98},{"language":"en","tag":"Chain Operators","count":75},{"language":"ko","tag":"체인 운영자","count":75},{"language":"en","tag":"op-reth","count":74},{"language":"ko","tag":"op-reth","count":74},{"language":"en","tag":"op-reth CLI reference","count":73},{"language":"ko","tag":"op-reth CLI reference","count":73},{"language":"en","tag":"App Developers","count":68},{"language":"ko","tag":"앱 개발자","count":68},{"language":"en","tag":"Guides","count":52},{"language":"ko","tag":"가이드","count":52},{"language":"en","tag":"Tutorials","count":42},{"language":"ko","tag":"튜토리얼","count":42},{"language":"en","tag":"How the protocol works","count":41},{"language":"ko","tag":"프로토콜 작동 방식","count":41}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"styles/homepage.css","content":"@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Regular.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Italic.woff2) format('woff2');font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Medium.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-MediumItalic.woff2) format('woff2');font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Bold.woff2) format('woff2');font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-BoldItalic.woff2) format('woff2');font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Heavy.woff2) format('woff2');font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-HeavyItalic.woff2) format('woff2');font-weight:900;font-style:italic;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Light.woff2) format('woff2');font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-LightItalic.woff2) format('woff2');font-weight:300;font-style:italic;font-display:swap}.nx-prose,.nx-prose h1,.nx-prose h2,.nx-prose h3,.nx-prose h4,.nx-prose h5,.nx-prose h6,.nx-prose p,[data-page-id=index] h1,body{font-family:'Riforma LL',-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,sans-serif!important}[data-page-id=index] h1+p,[data-page-id=index]>p:first-of-type{font-family:'Riforma LL',-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,sans-serif!important;font-family:var(--font-riforma)!important;font-size:1.25rem!important;line-height:1.6!important;color:#6b7280!important;margin-bottom:2rem!important;margin-top:0!important;max-width:100%!important}html[class*=dark] [data-page-id=index] h1+p,html[class*=dark] [data-page-id=index]>p:first-of-type{color:#9ca3af!important}body{font-family:var(--font-riforma)!important}html[class*=dark] body{background:#0f172a!important}.btn-primary,.btn-secondary,.hero-content h1,.hero-content p{font-family:'Riforma LL',-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,sans-serif}html[class*=dark] .hero-content p{color:#9ca3af}.btn-primary,.btn-secondary{border-radius:6px}@media (max-width:768px){.hero-section{flex-direction:column;text-align:center;min-height:auto;padding:2rem 0}.hero-content{padding-right:0;margin-bottom:2rem}.hero-content h1{font-size:1.75rem}.hero-buttons{justify-content:center}}.home-card .home-card__title{font-family:'Riforma LL',-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,sans-serif!important}.card-list-item__description,.card-list-item__title{font-family:'Riforma LL',-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,sans-serif}@media (max-width:768px){.hero-section{padding:4rem 2rem;flex-direction:column;text-align:center;min-height:auto}.hero-content{margin-bottom:2rem;max-width:none}.home-cards{grid-template-columns:1fr!important;padding:0 2rem}.nx-prose{padding-left:2rem!important;padding-right:2rem!important}.card-list-item__header{flex-direction:column;align-items:flex-start;gap:.5rem}}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Regular.woff2) format('woff2');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Regular.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Italic.woff2) format('woff2');font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Medium.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-MediumItalic.woff2) format('woff2');font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Bold.woff2) format('woff2');font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-BoldItalic.woff2) format('woff2');font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Heavy.woff2) format('woff2');font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-HeavyItalic.woff2) format('woff2');font-weight:900;font-style:italic;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-Light.woff2) format('woff2');font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:'Riforma LL';src:url(/fonts/RiformaLL-LightItalic.woff2) format('woff2');font-weight:300;font-style:italic;font-display:swap}.nx-logo img,a[href=\"/\"] img,header img[src*=logo],img[alt*=logo],nav img{max-height:13px!important;width:auto!important;height:13px!important}:root{--font-riforma:'Riforma LL', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;--font-mono:'Roboto Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}.nx-prose,.nx-prose blockquote,.nx-prose h1,.nx-prose h2,.nx-prose h3,.nx-prose h4,.nx-prose h5,.nx-prose h6,.nx-prose li,.nx-prose p,.nx-prose td,.nx-prose th,a:not(pre a):not(code a),body,button,div:not([class*=language-]):not(pre):not(code),html,span:not([class*=language-]):not([class*=token]){font-family:var(--font-riforma)!important}.boolean,.cdata,.class-name,.comment,.constant,.deleted,.doctype,.function,.important,.keyword,.language-bash,.language-javascript,.language-json,.language-python,.language-sh,.language-shell,.language-solidity,.language-typescript,.language-yaml,.language-yml,.number,.nx-bg-primary-700\\/5,.nx-code-block,.nx-code-block *,.nx-code-block span,.nx-font-mono,.operator,.prolog,.property,.punctuation,.regex,.symbol,.tag,.token,.variable,[class*=language-],[class*=language-] *,[class*=language-] span,code,code *,code span,div[data-language],div[data-language] *,div[data-language] span,div[data-theme*=dark],div[data-theme*=light],pre,pre *,pre span,span[class*=token]{font-family:var(--font-mono)!important;font-feature-settings:normal!important}.nx-prose h1,.nx-prose h2,.nx-prose h3,h1,h2,h3{font-family:var(--font-riforma)!important;font-weight:400!important}[data-page-id=index]{max-width:1400px!important;margin-left:auto!important;margin-right:auto!important;padding-left:2rem!important;padding-right:2rem!important}[data-page-id=index] h1{font-size:3rem!important;font-weight:400!important;line-height:1.1!important;margin-bottom:1rem!important;margin-top:0!important;padding-top:0!important;color:#111827!important;letter-spacing:-.02em!important}html[class*=dark] [data-page-id=index] h1{color:#f9fafb!important}[data-page-id=index] .nx-prose{padding-top:0!important;padding-left:0!important;padding-right:0!important;max-width:100%!important}.nx-container{max-width:none!important;padding:0!important}[data-page-id=index] h1,[data-page-id=index]>div>div{max-width:100%!important}body{background:#fff!important}.nx-bg-gradient-to-b,.nx-bg-gradient-to-bl,.nx-bg-gradient-to-br,.nx-bg-gradient-to-l,.nx-bg-gradient-to-r,.nx-bg-gradient-to-t,.nx-bg-gradient-to-tl,.nx-bg-gradient-to-tr,.nx-container{background:0 0!important}.hero-section{display:flex;align-items:center;justify-content:space-between;min-height:auto;padding:0;margin-bottom:2.5rem;max-width:100%;margin-left:0;margin-right:0;background:0 0}.hero-content{flex:1;max-width:505px}.hero-content h1,.hero-content p,[data-page-id=index] h1{font-family:var(--font-riforma)!important}.hero-content h1{font-size:2.5rem;font-weight:600;line-height:1.2;margin-bottom:.75rem;color:#111827;letter-spacing:-.025em}html[class*=dark] .hero-content h1{color:#f9fafb}.hero-content p{font-size:1.125rem;font-weight:400;line-height:1.6;margin-bottom:1rem;color:#6b7280}.hero-visual{flex:1;display:flex;justify-content:center;align-items:center}.hero-visual img{max-width:100%;height:auto}.hero-buttons{display:flex;gap:1rem}.btn-primary{font-family:var(--font-riforma)!important;background-color:#ff0420;color:#fff;padding:.75rem 1.5rem;border:0;border-radius:.75rem;font-weight:500;cursor:pointer;transition:background-color .2s;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;text-align:center}.btn-primary:hover,.btn-secondary{background-color:#e00320;color:#fff;text-decoration:none}.btn-secondary{font-family:var(--font-riforma)!important;background-color:transparent;color:#1f2937;padding:.75rem 1.5rem;border:1px solid #d1d5db;border-radius:.75rem;font-weight:500;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;text-align:center}.btn-secondary:hover{background-color:#f9fafb;border-color:#9ca3af;color:#1f2937;text-decoration:none}html[class*=dark] .btn-secondary{color:#f9fafb;border-color:#4b5563}html[class*=dark] .btn-secondary:hover{background-color:#374151;border-color:#6b7280;color:#f9fafb}@media (max-width:768px){.hero-section{flex-direction:column;text-align:center;min-height:auto;padding:2rem 0}.hero-content{padding-right:0;margin-bottom:2rem}.hero-content h1{font-size:1.75rem}.hero-buttons{justify-content:center}}.home-cards{width:100%;margin-bottom:2.5rem;margin-top:0;max-width:100%;margin-left:0;margin-right:0;padding:0}.home-card{display:flex;flex-direction:column;padding:1.75rem;background:0 0;border:1px solid #e2e8f0;border-radius:12px;transition:all .2s ease}html[class*=dark] .home-card{background:#1e293b;border-color:#334155}.home-card .home-card__title{font-family:var(--font-riforma)!important;font-size:1.5rem!important;font-weight:400!important;margin:0 0 1.5rem;color:#0f172a;letter-spacing:-.01em}html[class*=dark] .home-card .home-card__title{color:#f1f5f9}.home-card__footer{margin-top:auto;padding-top:1.5rem}.home-card__footer-link{color:#64748b;text-decoration:none;font-size:.875rem;font-weight:500;transition:color .2s ease}.home-card__footer-link:hover{color:#475569;text-decoration:none}html[class*=dark] .home-card__footer-link{color:#94a3b8}html[class*=dark] .card-list-item:hover .card-list-item__description,html[class*=dark] .home-card__footer-link:hover{color:#cbd5e1}.card-list{display:flex;flex-direction:column;gap:0}.card-list-item{display:flex;align-items:flex-start;gap:1rem;padding:.875rem 0;border-radius:6px;text-decoration:none;color:inherit;transition:all .2s ease;border-bottom:1px solid #f1f5f9}.card-list-item:last-child{border-bottom:none}html[class*=dark] .card-list-item{border-bottom-color:#334155}.card-list-item:hover .card-list-item__title,html[class*=dark] .card-list-item:hover .card-list-item__arrow{color:#ef4444}.card-list-item:hover .card-list-item__description{color:#475569}.card-list-item__number{width:2rem;height:2rem;border-radius:50%;background:#f1f5f9;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem;flex-shrink:0;color:#475569}html[class*=dark] .card-list-item__number{background:#334155;color:#cbd5e1}.card-list-item__content{flex:1}.card-list-item__header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.card-list-item__description,.card-list-item__title{font-family:var(--font-riforma)!important;margin:0;transition:color .2s ease}.card-list-item__title{font-size:1rem;font-weight:400;color:#0f172a;letter-spacing:-.01em}html[class*=dark] .card-list-item__title{color:#f1f5f9}.card-list-item__description{font-size:.875rem;color:#64748b;line-height:1.5}html[class*=dark] .card-list-item__description{color:#94a3b8}.card-list-item__badge{padding:.25rem .75rem;border-radius:16px;font-size:.75rem;font-weight:600;text-transform:capitalize}.card-list-item__badge--easy{background:#dcfce7;color:#166534}.card-list-item__badge--medium{background:#fef3c7;color:#92400e}.card-list-item__badge--hard{background:#fee2e2;color:#991b1b}html[class*=dark] .card-list-item__badge--easy{background:#14532d;color:#bbf7d0}html[class*=dark] .card-list-item__badge--medium{background:#92400e;color:#fef3c7}html[class*=dark] .card-list-item__badge--hard{background:#991b1b;color:#fecaca}.card-list-item__arrow{color:#cbd5e1;font-size:1.25rem;transition:all .2s ease;display:flex;align-items:center;justify-content:center;margin-top:.25rem}.card-list-item:hover .card-list-item__arrow{transform:translateX(4px);color:#ef4444}html[class*=dark] .card-list-item__arrow{color:#64748b}.nx-prose:not([data-page-id=index] .nx-prose){max-width:1400px!important;margin-left:auto!important;margin-right:auto!important;padding-left:2rem!important;padding-right:2rem!important}@media (max-width:768px){.hero-section{padding:4rem 2rem;flex-direction:column;text-align:center;min-height:auto}.hero-content{margin-bottom:2rem;max-width:none}.home-cards{grid-template-columns:1fr!important;padding:0 2rem}.nx-prose{padding-left:2rem!important;padding-right:2rem!important}.card-list-item__header{flex-direction:column;align-items:flex-start;gap:.5rem}}.nx-card img,[class*=card] img[src*=\"/public/img/\"]{background:0 0!important}"}],"page":{"pagePath":"ko/op-stack/protocol/design-principles","slug":"/ko/op-stack/protocol/design-principles","pageMetadata":{"title":"설계 철학 및 원칙","description":"OP Stack을 구축하는 데 사용된 설계 철학과 원칙을 알아봅니다.","diataxis":"explanation","href":"/ko/op-stack/protocol/design-principles"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"OP Stack을 구축하는 데 사용된 설계 철학과 원칙을 알아봅니다.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,em:`em`,p:`p`,strong:`strong`,..._provideComponents(),...props.components},{Heading,Info}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);return _jsxs(_Fragment,{children:[_jsx(Info,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`OP Stack 배우기 — 14개 단계 중 3단계.`}),`\n지금까지 OP Stack이 무엇이며 각 부분이 어떻게 맞물리는지 살펴보았습니다. 이\n페이지에서는 OP Stack이 현재와 같이 구축된 이유를 설명하는 설계 기둥을\n소개합니다. 다 읽은 후에는\n`,_jsx(_components.a,{href:`/ko/op-stack/protocol/differences`,children:`Ethereum과의 차이점`}),`으로 이어서 진행하십시오.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`설계-철학`,children:`설계 철학`}),`\n`,_jsxs(_components.p,{children:[`OP Stack은 `,_jsx(_components.strong,{children:`단순성(simplicity)`}),`, `,_jsx(_components.strong,{children:`실용성(pragmatism)`}),`, `,_jsx(_components.strong,{children:`지속 가능성(sustainability)`}),`, 그리고 물론 **낙관주의(optimism)**라는 네 가지 주요 기둥에 기반한 확고한 설계 철학에 따라 구축되었습니다.\n이 기둥들은 Optimism 전체의 설계에 큰 영향을 미치므로 이해하는 것이 중요합니다.`]}),`\n`,_jsx(Heading,{level:`3`,id:`단순성`,children:`단순성`}),`\n`,_jsx(_components.p,{children:`Optimism은 제공하는 기능 세트에 비해 최대한 단순하도록 설계되었습니다.\n이상적으로 Optimism은 안전하고 확장 가능하며 유연한 L2 시스템에 필요한 최소한의 구성 요소로 이루어져야 합니다.\n이러한 단순성 덕분에 Optimism의 설계는 더 복잡한 다른 L2 구조에 비해 여러 가지 중요한 이점을 갖습니다.`}),`\n`,_jsx(_components.p,{children:`단순성은 엔지니어링 오버헤드를 줄여 주며, 이는 곧 기존 기능을 다시 만드는 대신 새로운 기능을 개발하는 데 시간을 쓸 수 있다는 의미입니다.\nOptimism은 가능한 한 실전에서 검증된 기존 Ethereum 코드와 인프라를 사용하는 것을 선호합니다.\n이 철학이 실제로 적용된 가장 눈에 띄는 예는 Optimism의 클라이언트 소프트웨어로 Geth를 사용하기로 한 선택입니다.`}),`\n`,_jsx(_components.p,{children:`중요 인프라를 다룰 때는 단순성이 곧 보안이기도 합니다.\n작성하는 모든 코드 한 줄 한 줄이 의도치 않은 버그를 유발할 수 있는 기회가 됩니다.\n프로토콜이 단순하다는 것은 작성할 코드가 적다는 뜻이며, 결과적으로 잠재적인 실수가 발생할 수 있는 영역도 줄어듭니다.\n깔끔하고 최소한의 코드베이스는 외부 기여자와 감사자에게도 더 접근하기 쉽습니다.\n이 모든 것이 Optimism 프로토콜의 보안성과 정확성을 극대화하는 데 기여합니다.`}),`\n`,_jsx(_components.p,{children:`단순성은 Optimism의 장기적인 비전에도 중요합니다.\nEthereum 도구 위에 작성하는 코드의 양을 제한함으로써, 대부분의 시간을 기존 코드베이스와 직접 작업하는 데 쓸 수 있습니다.\nOptimism에 투입된 엔지니어링 노력은 Ethereum에도 직접적인 혜택이 될 수 있으며, 그 반대도 마찬가지입니다.\n이는 Optimism 프로토콜이 안정화되고 기존 리소스를 핵심 Ethereum 인프라로 돌릴 수 있게 될수록 더욱 두드러질 것입니다.`}),`\n`,_jsx(Heading,{level:`3`,id:`실용성`,children:`실용성`}),`\n`,_jsx(_components.p,{children:`이상주의에도 불구하고, Optimism의 설계 프로세스는 궁극적으로 실용성에 의해 이끌어집니다.\nOptimism 핵심 팀에는 현실적인 제약이 있고, Optimism 위에 구축하는 프로젝트에는 현실적인 요구가 있으며, Optimism을 사용하는 사용자에게는 현실적인 문제가 있습니다.\nOptimism의 설계 철학은 이론적 완벽함보다 사용자와 개발자의 요구를 우선시합니다.\n때로는 가장 좋은 해결책이 가장 보기 좋은 해결책은 아닙니다.`}),`\n`,_jsxs(_components.p,{children:[`Optimism은 또한 어떤 핵심 팀이든 전문 분야가 제한적일 수밖에 없다는 이해를 바탕으로 개발됩니다.\nOptimism은 반복적으로 개발되며, 사용자로부터 지속적으로 피드백을 얻기 위해 노력합니다.\n현재 Optimism의 많은 핵심 기능(예: `,_jsx(_components.a,{href:`https://web.archive.org/web/20231127160757/https://medium.com/ethereum-optimism/introducing-evm-equivalence-5c2021deb306`,children:`EVM 동등성`}),`)은 이러한 반복적인 프로토콜 개발 방식 덕분에 가능했습니다.`]}),`\n`,_jsx(Heading,{level:`3`,id:`지속-가능성`,children:`지속 가능성`}),`\n`,_jsx(_components.p,{children:`Optimism은 장기적인 관점으로 운영됩니다.\n애플리케이션 개발자는 자신이 구축하는 플랫폼이 장기간에 걸쳐 단순히 운영되는 것뿐만 아니라 경쟁력을 유지할 것이라는 확신이 필요합니다.\nOptimism의 설계 프로세스는 장기적인 지속 가능성을 중심으로 구성되며, 확장성을 위해 지름길을 택하지 않습니다.\n결국, 확장 가능한 시스템도 그것을 지탱하는 생태계가 없으면 아무 의미가 없습니다.`}),`\n`,_jsx(_components.p,{children:`지속 가능성은 단순성 철학과 맞물려 Optimism의 프로토콜 설계에 적극적으로 영향을 미칩니다.\n코드베이스가 복잡할수록 핵심 개발 팀 외부의 사람들이 적극적으로 기여하기가 더 어려워집니다.\n코드베이스를 단순하게 유지함으로써, 장기적으로 프로토콜 유지 관리를 도울 수 있는 더 큰 기여자 커뮤니티를 구축할 수 있습니다.`}),`\n`,_jsx(Heading,{level:`3`,id:`낙관주의`,children:`낙관주의`}),`\n`,_jsx(_components.p,{children:`물론 이 모든 것은 낙관주의 없이는 불가능합니다.\nEthereum 비전에 대한 낙관이 이 프로젝트를 계속 앞으로 나아가게 합니다.\n우리는 Ethereum의 낙관적인 미래, 즉 우리의 삶을 조율하는 기관들과의 관계를 새롭게 설계할 수 있는 미래를 믿습니다.`}),`\n`,_jsx(_components.p,{children:`Optimism은 독립적인 블록체인처럼 보이지만, 궁극적으로 Ethereum의 확장으로 설계되었습니다.\n새로운 기능을 만들거나 기존 기능을 단순화하려고 할 때마다 이 점을 염두에 둡니다.\nOptimism이 최대한 Ethereum에 가깝게 유지되는 것은 실용적인 이유 때문만이 아니라, Optimism이 Ethereum의 성공을 위해 존재하기 때문입니다.\nOptimism의 설계를 살펴보면서 이 철학의 영향을 확인할 수 있기를 바랍니다.`}),`\n`,_jsx(Heading,{level:`2`,id:`useful-소프트웨어를-위한-설계-원칙`,children:`USEful 소프트웨어를 위한 설계 원칙`}),`\n`,_jsxs(_components.p,{children:[`OP Stack은 USEful 소프트웨어입니다. OP Stack은 L2 블록체인 생태계를 구축하기 위한 소프트웨어 구성 요소 세트로, Optimism을 구동하기 위해 Optimism Collective가 구축했습니다.\nOP Stack에 추가되는 구성 요소는 **유용성(Utility), **단순성(Simplicity), **확장성(Extensibility)이라는 세 가지 핵심 설계 원칙에 따라 구축되어야 합니다.\n이러한 원칙을 따르는 소프트웨어는 Optimism Collective를 위한 `,_jsx(_components.strong,{children:`USEful`}),` 소프트웨어입니다!`]}),`\n`,_jsx(Heading,{level:`3`,id:`유용성`,children:`유용성`}),`\n`,_jsxs(_components.p,{children:[`OP Stack의 일부가 되려면 Optimism Collective를 구동하는 데 도움이 되어야 합니다.\n이 조건은 스택에 포함될 수 있는 소프트웨어의 유형을 결정하는 데 지침이 됩니다.\n예를 들어, 사용자가 `,_jsx(_components.a,{href:`https://app.optimism.io/superchain/?utm_source=op-docs\u0026utm_medium=docs`,children:`OP Stack 체인`}),`을 더 쉽게 살펴볼 수 있게 해 주는 강력한 오픈 소스 블록 탐색기는 OP Stack에 훌륭한 추가 요소가 될 것입니다.`]}),`\n`,_jsx(_components.p,{children:`OP Stack에 포함되려면 유용성이 중요하지만, 실험을 두려워할 필요는 없습니다.\n과감한 시도를 해 보십시오.\n명확한 유용성이 없더라도 지금까지 만들어진 적 없는 무언가를 만들어 보십시오. 이모지를 위한 블록체인이든 무엇이든 만들어 보십시오. 즐기십시오!`}),`\n`,_jsx(Heading,{level:`3`,id:`단순성-2`,children:`단순성`}),`\n`,_jsx(_components.p,{children:`복잡한 코드는 확장되지 않습니다.\nOP Stack에 포함되는 코드는 단순해야 합니다.`}),`\n`,_jsx(_components.p,{children:`단순성은 엔지니어링 오버헤드를 줄여 주며, 이는 곧 Collective가 기존 기능을 다시 만드는 대신 새로운 기능을 개발하는 데 시간을 쓸 수 있다는 의미입니다.\nOP Stack은 가능한 한 실전에서 검증된 기존 코드와 인프라를 사용하는 것을 선호합니다.\n이 철학이 실제로 적용된 가장 눈에 띄는 예는 OP Stack의 기본 실행 엔진으로 Geth를 사용하기로 한 선택입니다.`}),`\n`,_jsx(_components.p,{children:`중요 인프라를 다룰 때는 단순성이 곧 보안이자 유지 보수성이기도 합니다.\n작성되는 모든 코드 한 줄 한 줄이 버그와 취약점을 유발할 수 있는 기회가 됩니다.\n프로토콜이 단순하다는 것은 작성할 코드가 적다는 뜻이며, 결과적으로 잠재적인 실수가 발생할 수 있는 영역도 줄어듭니다.\n깔끔하고 최소한의 코드베이스는 외부 기여자와 감사자에게도 더 접근하기 쉽습니다.\n이 모든 것이 OP Stack의 보안성과 정확성을 극대화하는 데 기여합니다.`}),`\n`,_jsx(Heading,{level:`3`,id:`확장성`,children:`확장성`}),`\n`,_jsxs(_components.p,{children:[`좋은 OP Stack 코드는 본질적으로 개방적이고, 협력적이며, 확장 가능합니다.\n협업을 통해 고립된 개발에서 벗어날 수 있습니다.\n협업을 통해 동일한 구성 요소를 반복해서 다시 만드는 데 드는 시간을 줄이고, 서로의 작업 위에 구축하는 데 더 많은 시간을 쓸 수 있습니다.\n협업은 우리가 `,_jsx(_components.em,{children:`함께`}),` 성공하는 방법입니다.`]}),`\n`,_jsx(_components.p,{children:`확장 가능한 코드는 다른 사람들이 그 코드를 사용하고 그 위에 구축하고 싶어 할 것이라는 생각으로 설계되어야 합니다.\n실제로 이는 코드가 (허용적 라이선스하에) 오픈 소스여야 하고, 깔끔한 API를 노출해야 하며, 다른 개발자가 비교적 쉽게 코드의 기능을 확장할 수 있도록 전반적으로 모듈화되어 있어야 한다는 것을 의미합니다.\n확장성은 Optimism Collective 생태계 내에서 협업이라는 강력한 힘을 이끌어 내는 핵심 설계 원칙입니다.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"설계 철학 및 원칙","description":"OP Stack을 구축하는 데 사용된 설계 철학과 원칙을 알아봅니다.","diataxis":"explanation","href":"/ko/op-stack/protocol/design-principles"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"설계 철학","slug":"설계-철학","depth":2,"children":[{"title":"단순성","slug":"단순성","depth":3,"children":[]},{"title":"실용성","slug":"실용성","depth":3,"children":[]},{"title":"지속 가능성","slug":"지속-가능성","depth":3,"children":[]},{"title":"낙관주의","slug":"낙관주의","depth":3,"children":[]}]},{"title":"USEful 소프트웨어를 위한 설계 원칙","slug":"useful-소프트웨어를-위한-설계-원칙","depth":2,"children":[{"title":"유용성","slug":"유용성","depth":3,"children":[]},{"title":"단순성","slug":"단순성-2","depth":3,"children":[]},{"title":"확장성","slug":"확장성","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/optimism-373f39ad/6b11b6c32a46a09b/public/mixpanel-custom.js"],"subdomain":"optimism-373f39ad","siteName":"Optimism Documentation","title":"Optimism Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/op-stack/protocol/design-principles","matchLevel":1},"ko":{"href":"/ko/op-stack/protocol/design-principles","matchLevel":0}}},"lastModified":"2026-11-03T00:40:53.933Z","originalFileLocation":"ko/op-stack/protocol/design-principles.mdx","locale":"ko"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"OP Stack을 구축하는 데 사용된 설계 철학과 원칙을 알아봅니다.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Optimism Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/optimism-373f39ad/v3BpzhmZ-un_k_ZG/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/optimism-373f39ad/v3BpzhmZ-un_k_ZG/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/optimism-373f39ad/v3BpzhmZ-un_k_ZG/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/optimism-373f39ad/v3BpzhmZ-un_k_ZG/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/optimism-373f39ad/v3BpzhmZ-un_k_ZG/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/optimism-373f39ad/v3BpzhmZ-un_k_ZG/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/optimism-373f39ad/v3BpzhmZ-un_k_ZG/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/optimism-373f39ad/v3BpzhmZ-un_k_ZG/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/optimism-373f39ad/v3BpzhmZ-un_k_ZG/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Optimism Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"OP Stack을 구축하는 데 사용된 설계 철학과 원칙을 알아봅니다.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Optimism Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.optimism.io//ko/op-stack/protocol/design-principles\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://optimism-373f39ad.mintlify.app/_mintlify/api/og/v2?title=%EC%84%A4%EA%B3%84+%EC%B2%A0%ED%95%99+%EB%B0%8F+%EC%9B%90%EC%B9%99\u0026amp;description=OP+Stack%EC%9D%84+%EA%B5%AC%EC%B6%95%ED%95%98%EB%8A%94+%EB%8D%B0+%EC%82%AC%EC%9A%A9%EB%90%9C+%EC%84%A4%EA%B3%84+%EC%B2%A0%ED%95%99%EA%B3%BC+%EC%9B%90%EC%B9%99%EC%9D%84+%EC%95%8C%EC%95%84%EB%B4%85%EB%8B%88%EB%8B%A4.\u0026amp;theme=f64aba71940449e3ce8f3efe\u0026amp;signature=a67ca7f5f2b7bef9463c5890053238ba7d7df9c6966d776ddb3b48a06f4e7e22\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Optimism Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"OP Stack을 구축하는 데 사용된 설계 철학과 원칙을 알아봅니다.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://optimism-373f39ad.mintlify.app/_mintlify/api/og/v2?title=%EC%84%A4%EA%B3%84+%EC%B2%A0%ED%95%99+%EB%B0%8F+%EC%9B%90%EC%B9%99\u0026amp;description=OP+Stack%EC%9D%84+%EA%B5%AC%EC%B6%95%ED%95%98%EB%8A%94+%EB%8D%B0+%EC%82%AC%EC%9A%A9%EB%90%9C+%EC%84%A4%EA%B3%84+%EC%B2%A0%ED%95%99%EA%B3%BC+%EC%9B%90%EC%B9%99%EC%9D%84+%EC%95%8C%EC%95%84%EB%B4%85%EB%8B%88%EB%8B%A4.\u0026amp;theme=f64aba71940449e3ce8f3efe\u0026amp;signature=a67ca7f5f2b7bef9463c5890053238ba7d7df9c6966d776ddb3b48a06f4e7e22\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/optimism-373f39ad/v3BpzhmZ-un_k_ZG/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Optimism Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF0420\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.optimism.io//ko/op-stack/protocol/design-principles\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/ko/op-stack/protocol/design-principles.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://docs.optimism.io//ko/op-stack/protocol/design-principles\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.optimism.io//op-stack/protocol/design-principles\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.optimism.io//op-stack/protocol/design-principles\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.optimism.io/#organization\",\"name\":\"Optimism Documentation\",\"url\":\"https://docs.optimism.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/optimism-373f39ad/Vw5vY8zA-CRjBsUF/public/logos/Lockup_docs_dark.svg?fit=max\u0026auto=format\u0026n=Vw5vY8zA-CRjBsUF\u0026q=85\u0026s=a1ab18aecbec09fe5ad40222ce76f00c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.optimism.io#website\",\"name\":\"Optimism Documentation\",\"url\":\"https://docs.optimism.io\",\"publisher\":{\"@id\":\"https://docs.optimism.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.optimism.io//ko/op-stack/protocol/design-principles#webpage\",\"url\":\"https://docs.optimism.io//ko/op-stack/protocol/design-principles\",\"name\":\"설계 철학 및 원칙\",\"description\":\"OP Stack을 구축하는 데 사용된 설계 철학과 원칙을 알아봅니다.\",\"dateModified\":\"2026-11-03T00:40:53.933Z\",\"isPartOf\":{\"@id\":\"https://docs.optimism.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.optimism.io//ko/op-stack/protocol/design-principles#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.optimism.io//ko/op-stack/protocol/design-principles#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"프로토콜 작동 방식\",\"item\":\"https://docs.optimism.io/ko/op-stack/protocol/index\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"설계 철학 및 원칙\",\"item\":\"https://docs.optimism.io//ko/op-stack/protocol/design-principles\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.optimism.io//ko/op-stack/protocol/design-principles#article\",\"headline\":\"설계 철학 및 원칙\",\"name\":\"설계 철학 및 원칙\",\"description\":\"OP Stack을 구축하는 데 사용된 설계 철학과 원칙을 알아봅니다.\",\"url\":\"https://docs.optimism.io//ko/op-stack/protocol/design-principles\",\"mainEntityOfPage\":{\"@id\":\"https://docs.optimism.io//ko/op-stack/protocol/design-principles#webpage\"},\"dateModified\":\"2026-11-03T00:40:53.933Z\",\"publisher\":{\"@id\":\"https://docs.optimism.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.optimism.io#website\"}}]}\u003c/script>","siteName":"Optimism Documentation","nav":{"global":{"anchors":[{"anchor":"Status","icon":"signal-bars","href":"https://status.optimism.io"},{"anchor":"Faucet","icon":"gas-pump","href":"https://console.optimism.io/faucet"},{"anchor":"Bridge","icon":"bridge-water","href":"https://app.optimism.io/bridge/deposit"}]},"languages":[{"language":"en","pages":[{"title":"en","href":"/op-stack/protocol/design-principles"}]},{"language":"ko","tabs":[{"tab":"시작하기","pages":[{"title":"시작하기","href":"/ko"}]},{"tab":"체인 운영자","pages":[{"title":"체인 운영자","href":"/ko/chain-operators"}]},{"tab":"노드 운영자","pages":[{"title":"노드 운영자","href":"/ko/node-operators/overview"}]},{"tab":"앱 개발자","pages":[{"title":"앱 개발자","href":"/ko/app-developers"}]},{"tab":"프로토콜","groups":[{"group":"시작하기","pages":[{"title":"OP Stack","href":"/ko/op-stack/introduction/op-stack"},{"title":"OP Stack 아키텍처","href":"/ko/op-stack/architecture"},{"title":"팩트 시트","href":"/ko/op-stack/introduction/fact-sheet"},{"title":"OP Stack 배우기","href":"/ko/op-stack/learn/index"}]},{"group":"프로토콜 작동 방식","pages":[{"title":"OP Stack 프로토콜","sidebarTitle":"개요","description":"이 사이트에서 프로토콜 계층의 홈으로, 규범적 명세, rollup 설명 문서, 하드포크 레지스트리로 안내합니다.","href":"/ko/op-stack/protocol/index"},{"title":"설계 철학 및 원칙","href":"/ko/op-stack/protocol/design-principles"},{"title":"Ethereum과의 차이점","description":"Ethereum과 OP Stack 동작 간의 사소한 차이점을 알아봅니다.","href":"/ko/op-stack/protocol/differences"},{"title":"OP Stack 구성 요소","href":"/ko/op-stack/protocol/components"},{"title":"Derivation pipeline","href":"/ko/op-stack/protocol/derivation-pipeline"},{"title":"스마트 컨트랙트 개요","href":"/ko/op-stack/protocol/smart-contracts"},{"title":"블록스페이스 헌장과 Standard Rollup 헌장","href":"/ko/op-stack/protocol/blockspace-charter"},{"title":"Sequencer 장애","href":"/ko/op-stack/protocol/outages"},{"title":"블록 시간 연구","href":"/ko/op-stack/research/block-time-research"},{"group":"트랜잭션","pages":[{"title":"OP Mainnet의 트랜잭션 수수료","href":"/ko/op-stack/transactions/fees"},{"title":"Fee vault","href":"/ko/op-stack/transactions/fee-vaults"},{"title":"강제 트랜잭션","href":"/ko/op-stack/transactions/forced-transaction"},{"title":"트랜잭션 최종성","href":"/ko/op-stack/transactions/transaction-finality"},{"title":"트랜잭션 흐름","href":"/ko/op-stack/transactions/transaction-flow"}]},{"group":"브리징","pages":[{"title":"크로스 도메인 개요","href":"/ko/op-stack/bridging/cross-domain"},{"title":"입금 흐름","href":"/ko/op-stack/bridging/deposit-flow"},{"title":"출금 흐름","href":"/ko/op-stack/bridging/withdrawal-flow"}]},{"group":"결함 증명","pages":[{"title":"결함 증명","href":"/ko/op-stack/fault-proofs/index"},{"title":"결함 증명 설명","href":"/ko/op-stack/fault-proofs/explainer"},{"title":"결함 증명 보안","href":"/ko/op-stack/fault-proofs/fp-security"},{"title":"FP 시스템 컴포넌트","href":"/ko/op-stack/fault-proofs/fp-components"},{"title":"결함 증명 VM: Cannon","href":"/ko/op-stack/fault-proofs/cannon"},{"title":"결함 증명 VM: MIPS64.sol","href":"/ko/op-stack/fault-proofs/mips"},{"title":"OP-Challenger 설명","href":"/ko/op-stack/fault-proofs/challenger"},{"title":"결함 증명 레퍼런스","href":"/ko/op-stack/fault-proofs/reference"},{"group":"Kona","pages":[{"group":"결함 증명 프로그램 개발","pages":[{"title":"결함 증명 프로그램 개발","href":"/ko/op-stack/fault-proofs/kona/fpp-dev/intro"},{"title":"환경","href":"/ko/op-stack/fault-proofs/kona/fpp-dev/env"},{"title":"지원 타깃","href":"/ko/op-stack/fault-proofs/kona/fpp-dev/targets"},{"title":"프롤로그","href":"/ko/op-stack/fault-proofs/kona/fpp-dev/prologue"},{"title":"실행","href":"/ko/op-stack/fault-proofs/kona/fpp-dev/execution"},{"title":"에필로그","href":"/ko/op-stack/fault-proofs/kona/fpp-dev/epilogue"}]},{"group":"Proof SDK","pages":[{"title":"Kona Proof SDK","href":"/ko/op-stack/fault-proofs/kona/proof/intro"},{"title":"OP Stack STF 이해하기","href":"/ko/op-stack/fault-proofs/kona/proof/stf"},{"title":"FPVM 백엔드","href":"/ko/op-stack/fault-proofs/kona/proof/fpvm-backend"},{"title":"커스텀 백엔드","href":"/ko/op-stack/fault-proofs/kona/proof/custom-backend"},{"title":"`kona-executor` 확장","href":"/ko/op-stack/fault-proofs/kona/proof/exec-ext"}]}]}]},{"group":"상호운용성","pages":[{"title":"상호운용성","href":"/ko/op-stack/interop/index"},{"title":"OP Stack 상호운용성 설명","href":"/ko/op-stack/interop/explainer"},{"title":"OP Supernode","href":"/ko/op-stack/interop/supernode"},{"title":"Interop reorg 인식","href":"/ko/op-stack/interop/reorg"},{"title":"Superchain ETH Bridge","href":"/ko/op-stack/interop/superchain-eth-bridge"}]}]},{"group":"보안","pages":[{"title":"OP Stack 보안","sidebarTitle":"개요","href":"/ko/op-stack/security/index"},{"title":"OP Stack 체인의 권한 역할","href":"/ko/op-stack/protocol/privileged-roles"},{"title":"OP Stack 보안 모델","href":"/ko/op-stack/security/faq-sec-model"},{"title":"보안 정책 및 버그 바운티 프로그램","href":"/ko/op-stack/security/security-policy"},{"title":"감사 보고서","href":"/ko/op-stack/security/audit-reports"},{"title":"브리지 일시 중지","href":"/ko/op-stack/security/pause"},{"title":"거래소 및 bridge를 위한 보안 지침","href":"/ko/op-stack/security/exchanges-and-bridges"},{"title":"안전한 상호운용성을 위한 크로스체인 보안 조치","href":"/ko/op-stack/security/interop-security"}]},{"group":"기능","pages":[{"title":"Subblocks","href":"/ko/op-stack/features/subblocks"},{"title":"Sequencer Defined Metering","href":"/ko/op-stack/features/sdm"},{"title":"커스텀 가스 토큰","href":"/ko/op-stack/features/custom-gas-token"},{"title":"OP Stack의 Bridged USDC Standard","href":"/ko/op-stack/features/bridged-usdc-standard"},{"title":"Span Batch","href":"/ko/op-stack/features/span-batches"},{"title":"SendRawTransactionConditional 설명","href":"/ko/op-stack/features/send-raw-transaction-conditional"},{"title":"L2 Contract Manager","href":"/ko/op-stack/features/l2-contract-manager"},{"title":"L2의 Osaka","href":"/ko/op-stack/features/osaka-on-l2"},{"title":"OP Stack preinstall","href":"/ko/op-stack/features/preinstalls"},{"title":"Alt-DA 모드 설명","href":"/ko/op-stack/features/experimental/alt-da-mode"}]},{"group":"참조","pages":[{"group":"스택 구성 요소","pages":[{"title":"Stack 구성 요소","sidebarTitle":"개요","href":"/ko/op-stack/components/index"},{"group":"시퀀싱","pages":[{"title":"op-batcher","href":"/ko/op-stack/components/op-batcher"},{"title":"op-conductor","href":"/ko/op-stack/components/op-conductor"}]},{"group":"파생 및 실행","pages":[{"title":"op-node","href":"/ko/op-stack/components/op-node"},{"title":"kona-node","href":"/ko/op-stack/components/kona-node"},{"title":"op-reth","href":"/ko/op-stack/components/op-reth"}]},{"group":"정산 및 증명","pages":[{"title":"op-proposer","href":"/ko/op-stack/components/op-proposer"},{"title":"op-challenger","href":"/ko/op-stack/components/op-challenger"},{"title":"cannon","href":"/ko/op-stack/components/cannon"},{"title":"kona-client","href":"/ko/op-stack/components/kona-client"},{"title":"kona-host","href":"/ko/op-stack/components/kona-host"},{"title":"op-contracts","href":"/ko/op-stack/components/op-contracts"}]},{"group":"배포 및 인프라","pages":[{"title":"op-deployer","href":"/ko/op-stack/components/op-deployer"},{"title":"proxyd","href":"/ko/op-stack/components/proxyd"}]}]},{"group":"네트워크 업그레이드","pages":[{"title":"네트워크 업그레이드","href":"/ko/op-stack/protocol/network-upgrades"},{"title":"Lagoon","href":"/ko/op-stack/protocol/hardforks/lagoon"},{"title":"Karst","href":"/ko/op-stack/protocol/hardforks/karst"},{"title":"Jovian","href":"/ko/op-stack/protocol/hardforks/jovian"},{"title":"Isthmus","href":"/ko/op-stack/protocol/hardforks/isthmus"},{"title":"Holocene","href":"/ko/op-stack/protocol/hardforks/holocene"},{"title":"Granite","href":"/ko/op-stack/protocol/hardforks/granite"},{"title":"Fjord","href":"/ko/op-stack/protocol/hardforks/fjord"},{"title":"Ecotone","href":"/ko/op-stack/protocol/hardforks/ecotone"},{"title":"Delta","href":"/ko/op-stack/protocol/hardforks/delta"},{"title":"Canyon","href":"/ko/op-stack/protocol/hardforks/canyon"},{"title":"Regolith","href":"/ko/op-stack/protocol/hardforks/regolith"}]},{"title":"superchain-registry","href":"/ko/op-stack/protocol/superchain-registry"},{"title":"용어집","href":"/ko/op-stack/reference/glossary"}]}]},{"tab":"OP Mainnet","pages":[{"title":"OP Mainnet","href":"/ko/op-mainnet"}]},{"tab":"거버넌스","pages":[{"title":"거버넌스","href":"/ko/governance/protocol-upgrades"}]},{"tab":"공지","pages":[{"title":"공지","href":"/ko/notices"}]}]}]},"basePath":"","title":"Optimism Documentation","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":[],"chunks":[]}