이더리움 스택 소개
페이지 마지막 업데이트됨: 2025년 10월 21일
여느 소프트웨어 스택과 마찬가지로 온전한 "이더리움스택"이란, 당신의 목표에 따라 프로젝트 마다 제각각일 것입니다.
하지만 어떻게 응용프로그램과 이더리움 블록체인이 상호작용하는 지를 머리속에 그릴 수 있도록 돕는 핵심 컴퍼넌트들은 존재합니다. 이더리움 기술스택의 계층들을 이해하는 것은 이더리움이 소프트웨어 프로젝트에 통합되게끔 하는 서로 다른 방식들을 이해하는데 도움을 줍니다.
레벨 1: 이더리움 가상 머신
이더리움 가상 머신(EVM)은 이더리움에서 스마트 계약을 실행하는 런타임 환경입니다. 이더리움 블록체인의 모든 스마트 계약 및 상태 변경은 트랜잭션에 의해 실행됩니다. 이더리움 가상환경은 이더리움 네트워크상의 모든 트랜잭션 처리를 수행합니다.
여느 가상머신과 마찬가지로 이더리움가상머신은 코드의 실행과 물리적인 장비(이더리움 노드) 사이에 추상화 계층을 만듭니다. 현재 EVM은 전 세계에 분산된 수천 개의 노드에서 실행되고 있습니다.
이더리움 가상 머신은 내부적으로 특정한 작업 수행을 위해 일련의 opcode 명령어를 사용합니다. 이 (140개의 고유한) 연산 부호는 EVM이 튜링 완전 (opens in a new tab)하도록 하며, 이는 충분한 리소스가 주어진다면 EVM이 거의 모든 것을 계산할 수 있음을 의미합니다.
dapp 개발자로서, EVM에 대해 많이 알 필요는 없으며, 단지 EVM이 존재하고 이더리움의 모든 애플리케이션을 중단 없이 안정적으로 구동한다는 사실만 알고 있으면 됩니다.
레벨 2: 스마트 계약
스마트 계약은 이더리움 블록체인에서 실행되는 실행 가능한 프로그램입니다.
스마트 계약은 EVM 바이트코드(연산 부호라고 불리는 저수준 기계 명령어)로 컴파일되는 특정 프로그래밍 언어를 사용하여 작성됩니다.
스마트 계약은 오픈 소스 라이브러리 역할을 할 뿐만 아니라, 항상 실행 중이며 중단될 수 없는 공개 API 서비스이기도 합니다. 스마트 계약은 사용자와 애플리케이션(탈중앙화앱)이 허가 없이 상호 작용할 수 있는 공개 함수를 제공합니다. 모든 애플리케이션은 배포된 스마트 계약과 통합하여 데이터 피드 추가 또는 토큰 스왑 지원과 같은 기능을 구성할 수 있습니다. 또한, 누구나 새로운 스마트 계약을 이더리움에 배포하여 애플리케이션의 필요에 맞는 맞춤형 기능을 추가할 수 있습니다.
dapp 개발자로서 이더리움 블록체인에 맞춤형 기능을 추가하고 싶을 때에만 스마트 계약을 작성해야 합니다. 프로젝트의 요구 사항을 대부분 또는 전부 기존 스마트 계약과의 통합으로 해결할 수 있을 것입니다. 예를 들어 스테이블코인 결제 지원이나 토큰의 분산형 교환 기능을 추가하는 경우입니다.
레벨 3: 이더리움 노드
애플리케이션이 이더리움 블록체인과 상호 작용하려면 이더리움 노드에 연결해야 합니다. 노드에 연결하면 블록체인 데이터를 읽거나 네트워크에 트랜잭션을 전송할 수 있습니다.
이더리움 노드는 소프트웨어를 실행하는 컴퓨터 - 즉, 이더리움 클라이언트입니다. 클라이언트는 각 블럭의 트랜잭션을 검증하여 네트워크를 안전하고 데이터가 무결하게 관리하는 이더리움의 구현체를 말합니다. 이더리움 노드가 이더리움 블록체인입니다. 노드는 이더리움 블록체인의 상태를 집단적으로 저장하며, 블록체인 상태를 변경하기 위해 트랜잭션에 대한 합의를 이룹니다.
애플리케이션을 이더리움 노드(JSON-RPC API를 통해)에 연결하면, 애플리케이션은 블록체인에서 데이터(예: 사용자 계정 잔액)를 읽을 수 있을 뿐만 아니라 네트워크에 새로운 트랜잭션(예: 사용자 계정 간 ETH 전송 또는 스마트 계약 함수 실행)을 브로드캐스트할 수 있습니다.
레벨 4: 이더리움 클라이언트 API
이더리움 오픈 소스 커뮤니티에서 제작하고 유지 관리하는 다양한 편리한 라이브러리가 애플리케이션이 이더리움 블록체인과 연결하고 통신할 수 있도록 도와줍니다.
사용자 대상 애플리케이션이 웹 앱인 경우, 프런트엔드에 직접 JavaScript API를 npm install할 수 있습니다. 또는 Python이나 Java API를 사용하여 서버 측에서 이 기능을 구현할 수도 있습니다.
이 API는 스택에서 반드시 필요한 부분은 아니지만, 이더리움 노드와 직접 상호작용하는 복잡성을 대부분 추상화해줍니다. 또한 유틸리티 함수(예: ETH를 Gwei로 변환)를 제공하므로, 개발자는 이더리움 클라이언트의 복잡성을 다루는 데 시간을 덜 소비하고 애플리케이션의 특정 기능에 더 집중할 수 있습니다.
레벨 5: 최종 사용자 애플리케이션
스택의 최상위에는 사용자 대상 애플리케이션이 있습니다. 이들은 주로 웹 및 모바일 애플리케이션과 같은 여러분이 정기적으로 사용하고 개발하는 표준 애플리케이션입니다.
이러한 사용자 인터페이스를 개발하는 방법은 본질적으로 변하지 않습니다. 대부분의 경우, 사용자는 그들이 사용하는 애플리케이션이 블록체인을 기반으로 구축되었는지 알 필요가 없습니다.
스택을 선택할 준비가 되셨나요?
이더리움 애플리케이션을 위한 로컬 개발 환경 설정 가이드를 확인하세요.
더 읽어보기
- 웹 3.0 애플리케이션의 아키텍처 (opens in a new tab) - Preethi Kasireddy
도움이 되었던 커뮤니티 참고 자료를 알고 계신가요? 이 페이지를 편집해서 추가하세요!