
Web2 개발자가 Web3에 진입하는 방법은?
글: Tiny Bear
AI와 Web3는 현재 거대한 잠재력을 지닌 분야로 여겨지는 몇 안 되는 영역 중 하나이며, 특히 Web3는 상대적으로 높은 급여 수준과 많은 원격 근무 기회, 전 세계 어디서나 일할 수 있는 가능성을 제공하기 때문에 많은 Web2 개발자들이 Web3 진입을 희망하고 있다.
Web3 개발을 배우는 데 있어 가장 어려운 점은 어디서부터 시작해야 할지 모를 때다. Web3는 10년 이상의 발전 과정을 거치며 그 내용이 점점 방대해졌고, 다양한 요소들이 서로 연결되어 있어 Web3에 입문하려는 개발자들에게 "어디서부터 어떻게 배워야 하는가?"라는 혼란을 야기한다.
저자는 2017년부터 Web3 분야에 몸담아 스마트 계약 개발과 기술 홍보 활동을 해왔으며, 블록체인 기술의 발전도 꾸준히 추적해왔다. 이러한 경험을 바탕으로 본 학습 로드맵을 정리하였으며, 이를 통해 독자들이 보다 명확한 방향성으로 Web3를 학습할 수 있기를 기대한다.
본문은 이 학습 로드맵에 대한 설명이며, 로드맵은 인터랙티브 형식[1]으로 구성되어 있으며, 이해하기 어려운 용어가 있을 경우 해당 용어 우측 상단의 화살표를 클릭하면 오른쪽 패널에서 설명을 확인할 수 있다.
학습 로드맵에서는 Web3 학습을 세 단계로 나누었다: 블록체인 기초 이해 → 블록체인 사용 경험 쌓기 → 관심 분야 선택 후 심화 학습.
Web3 개발 입문자들은 방향을 선택할 때 탐욕을 부리지 말고, 일부를 선택하여 깊이 있게 집중하는 것이 중요하다. 한 가지 분야에 집중함으로써 방향 감각을 잃지 않고 자신의 성장을 더 쉽게 확인할 수 있다.
블록체인 기초 이해
블록체인 기술의 이면에는 여전히 전통적인 컴퓨터 기술이 존재하며, Web3에서 개발을 수행하려면 데이터베이스, 자료구조, 컴퓨터 네트워크, 프로그래밍 언어 등의 기본 지식이 필수이다.
하지만 블록체인의 탈중앙화된 운영 방식은 처음 접했을 때 직관적으로 이해하기 어렵다. 이는 순전히 기술적인 문제가 아니라 사회적 사고방식도 포함되기 때문이다.
기술적 관점에서만 보면 BTC의 공급량이 왜 2100만 개로 제한되는지 의문을 가질 수 있다. "프로그램이니 수정 가능한 것 아닐까?"라고 생각하기 쉽다.
이 질문에 답할 수 있다면, 블록체인이 무엇인지, 어떻게 작동하는지에 대한 기초 개념은 거의 이해한 셈이다.
블록체인이 어떤 용도로 쓰이는지, 왜 유용한지, 어떤 시나리오에서 필요할지에 대한 이해는 시간이 지남에 따라 점차 깊어진다.
현재로서도 블록체인 기술은 여전히 해결해야 할 여러 문제를 안고 있지만, 전체적으로 보면 개인의 주권을 강화하고 집단 간 협업을 더욱 투명하게 만드는 기술이라고 볼 수 있다.
많은 학습자들이 Web2의 장점을 들며 Web3의 단점을 비판하는 경향이 있는데, 새로운 기술을 배울 때는 열린 마음을 유지하는 것이 중요하다. 그래야 더 많은 것을 받아들일 수 있다.
블록체인이 가져오는 변화는 AI만큼 직접적이지는 않기 때문에, 우리는 그 가치를 과소평가하기 쉽다.
블록체인 사용 경험 쌓기
블록체인에 대한 기초적인 이해를 마친 후에는 실제 블록체인 애플리케이션을 직접 체험해보는 것이 좋다. 예를 들어 월렛[2] 소프트웨어를 사용해 자신의 계정을 생성하거나, 조건이 된다면 암호화폐를 소량 보유해보는 것도 좋은 방법이다. (일정한 진입 장벽이 있지만, 테스트넷 코인으로도 경험은 가능하다. 그러나 실제 자산으로 체험하는 것은 다른 차원의 느낌을 준다.)
거래를 실행할 때 서명을 진행하고, 블록체인 브라우저에서 트랜잭션이 패킹되어 블록에 포함되는 과정을 직접 확인해보자.
사용하면서 각 체인의 거래 속도 차이를 느낄 수 있으며, 이를 통해 다양한 합의 알고리즘을 이해하고, 탈중앙화, 보안, 효율성 사이의 균형을 고민해볼 수 있다.
흥미를 느낀다면 DEX에서 자산을 교환해보고, NFT 거래를 해보고, DAO 거버넌스에도 참여해보자.
Web2와 비교했을 때 Web3 앱의 핵심적인 차이점은 다음과 같다: 당신의 자산은 오직 당신에게만 속하며(모든 정보는 일종의 자산으로 간주될 수 있음), 오직 당신의 개인키로 서명한 경우에만 자산을 사용할 수 있고, 누구도 당신의 자산을 빼앗을 수 없다. 또 다른 차이점은 Web3 앱이 일반적으로 오픈소스이며, 모든 사람이 동등하게 투명한 규칙 아래 참여한다는 점이다.
Web3의 가치와 의미에 공감한다면, Web3 생태계 구축에 직접 참여해보는 것을 권장한다.
분야 선택
본 글은 주로 기술적 관점에서 다루며, 독자들은 연구 또는 개발 분야 중 하나를 선택할 수 있다. (Web3 프로젝트 내에는 커뮤니티 운영 등 흥미로운 비기술적 업무도 많지만, 여기서는 논의하지 않는다.)
이론적 혹은 학문적 배경이 탄탄하거나 새로운 사물을 탐구하는 것을 좋아한다면, 암호학, 합의 알고리즘, 확장성 솔루션, 토큰 이코노믹스 등을 연구하는 방향을 선택할 수 있다. 이 경우 대량의 영문 논문을 읽는 능력이 요구된다.
개발 분야는 크게 두 가지로 나뉜다: 체인 개발과 애플리케이션 개발.
체인 개발
체인 개발은 개발자의 기술 수준에 더 높은 요구를 하며, 연봉 또한 높은 편이다. 하지만 수요는 애플리케이션 개발보다 적다. 시간이 지남에 따라 앱 생태계가 확장되면서 애플리케이션 개발 수요는 점점 증가할 것으로 보이며, 체인 개발은 점차 안정화될 것이다. 새로운 메인체인을 개발할 기회는 많지 않으므로, 체인 개발은 저수준 기술을 깊이 있게 탐구하는 것을 좋아하는 사람들에게 적합하다.
체인 개발은 신규 체인 개발 또는 2단계(Layer2), 3단계(Layer3) 확장 체인 개발 중 선택할 수 있다.
신규 체인 개발은 일반적으로 Layer1을 의미하며, 다음 내용들을 숙지해야 한다:
-
Geth: Go 언어로 구현된 이더리움 노드 소프트웨어로, EVM 호환 체인의 개발 및 맞춤화에 널리 사용된다.
-
Reth: Rust 언어로 구현된 이더리움 클라이언트로, 고성능 이더리움 클라이언트 옵션을 제공한다.
-
Substrate: Rust 기반의 맞춤형 블록체인 구축 프레임워크로, Parity가 개발하였다. 폴카닷(Polkadot) 생태계 외에도 많은 독립 체인이 Substrate를 기반으로 개발되고 있다.
-
Cosmos SDK: Go 언어로 개발된 모듈화된 블록체인 개발 프레임워크로, 코스모스(Cosmos) 네트워크와 호환되는 신규 체인 대부분이 Cosmos SDK를 기반으로 개발된다.
-
또한 Move 가상머신이나 Solana VM을 사용해 개발된 체인들도 일부 존재한다.
Layer2 확장 또는 Layer3 애플리케이션 체인
메인체인의 거래 처리 용량은 제한되어 있으며, 특히 이더리움과 비트코인은 대규모 사용자를 감당하기 어렵다. Layer2의 아이디어는 일부 거래를 메인체인 외부(Layer2)에서 실행하고, 메인체인(Layer1)은 Layer2의 결과만 검증하는 것이다. Layer3은 특정 애플리케이션 시나리오에 맞춰 최적화된 블록체인을 의미한다. 체인 개발자는 다음 내용을 이해해야 한다:
-
OP Stack: Optimism이 개발한 Layer2 프레임워크로, 이더리움 Layer2 체인에서 가장 널리 사용된다.
-
Polygon CDK: Polygon이 개발한 체인 개발 도구로, Validium, zkRollup 등 다양한 확장 방식을 지원한다.
-
StarkEx: StarkWare가 개발한 ZK-Stark 기술 기반의 Layer2 확장 솔루션. 유사한 ZK 기반 솔루션으로 Matter Labs(zkSync 개발팀)의 ZK Stack도 있다.
-
Arbitrum Stylus(Arbitrum Nitro의 업그레이드 버전) 및 Arbitrum Orbit: Arbitrum 팀이 개발한 Layer2 및 Layer3 확장 솔루션. Stylus는 다중 언어 프로그래밍이 가능한 실행 계층 확장을 제공한다.
체인 개발을 희망한다면 모듈화 블록체인 개념도 이해해야 한다. 모듈화는 기존의 통합된 블록체인을 여러 계층으로 나누어 각 계층이 다른 문제를 해결하도록 하는 접근법이다. 이 네 가지 계층은 다음과 같다:
-
실행 계층(Execution Layer): 스마트 계약 실행을 담당하며, 이더리움의 EVM 모듈과 유사하다. Layer2는 일종의 실행 계층으로 볼 수 있다.
-
결제 계층(Settlement Layer): 거래의 결제를 처리하며, 체인 상 자산의 안전성과 거래 유효성을 보장한다.
-
합의 계층(Consensus Layer): 노드 간 거래에 대한 합의를 보장하는 모듈.
-
데이터 가용성(Data Availability, DA): 체인 데이터가 올바르게 저장되고 접근 가능하도록 보장하는 계층. Layer2 확장 솔루션에서 Layer2 거래의 유효성을 검증하는 데 사용된다. 주요 DA 솔루션으로는 EIP4844의 Blob 기반 DA, AnyTrust, EigenDA, Avail DA, Celestia, NearDA 등이 있다.
또한 블록체인에 점차적으로 제로지식 증명(ZKP) 기능이 통합되는 추세도 주목해야 한다. 예를 들어, ZKP를 이용해 거래 실행의 증명을 만들 수 있으며(zkRollup은 Layer2에서 사용되지만 Layer1에서도 적용 가능), 저장 상태의 증명을 통해 경량 클라이언트 및 상태 없는 클라이언트를 실현하여 탈중앙화를 강화할 수 있다. 또한 일부 체인은 ZKP를 활용해 프라이버시 거래를 구현하고 있다.
체인 개발을 선택했다면, 초보자에게는 Go 언어 학습을 추천하며, Geth와 OP Stack을 중심으로 탐구해보기를 권장한다. 그 외 프레임워크는 필요와 관심에 따라 추가로 학습하면 된다.
위에서 설명한 Layer2 확장은 주로 이더리움 관점에서의 이야기였으나, 최근 비트코인의 확장성 솔루션도 많은 팀들이 개발 중이며 관심이 높아지고 있다. 대표적인 방식은 (상태)채널 기반 확장과 사이드체인 기반 확장이다. 전자는 비트코인의 보안성을 잘 계승하지만, 프로그래밍 확장성은 낮다. 대표적인 사례로는 라이트닝 네트워크와 RGB, RGB++ 클라이언트 검증 방식의 조합이 있다. 후자는 보안성이 다소 낮지만(예: MPC 방식을 통한 크로스체인), 더 뛰어난 프로그래밍 확장성을 제공한다. 또한 두 방식을 결합한 하이브리드 솔루션도 존재한다.
현재 비트코인 확장성 솔루션은 여전히 산업적 탐색 단계에 있으므로, 비트코인을 믿는 개발자라면 주목해볼 만하다.
애플리케이션 개발
애플리케이션 개발을 희망한다면, 체인의 저수준 구현에 대해 깊은 이해가 반드시 필요하지는 않지만, 각 체인의 특징(예: 성능, 탈중앙화 정도)은 파악해야 한다.
예를 들어 소셜 또는 게임 애플리케이션 개발 시에는 체인의 성능이 중요하지만, 고가치 DeFi 애플리케이션 개발 시에는 탈중앙화 수준이 더 중요할 수 있다.
또한 저수준 체인이 지원하는 개발 언어, 생태계의 활성도, 앱에 대한 지원 정책 등도 고려해야 한다. 이는 앱 개발의 작업량과 사용자 확보 비용에 직접적인 영향을 미친다.
구직자에게도 마찬가지인데, 생태계가 활성화될수록 일자리 기회는 많아지지만 경쟁 또한 치열해진다.
적절한 저수준 체인을 선택하는 것은 앱 성공에 매우 중요하다. 대부분의 경우 하나 또는 한 종류의 체인 위에서 개발하지만, 인프라 앱(월렛, 크로스체인 브릿지, 오라클 등)은 여러 체인을 동시에 지원해야 하는 경우가 많다.
자신에게 맞는 생태계 선택
각 생태계를 간략히 비교하여 참고용으로 제시한다:
비트코인(Bitcoin): 가장 큰 컨센서스와 자금 규모를 보유하고 있지만, 스크립트 기능이 제한되어 있어 체인 상에서 할 수 있는 앱이 적다. 많은 앱은 인덱서나 클라이언트 검증 방식과 결합하여 구현해야 하며, 생태계는 아직 성숙하지 않았다. 그러나 발전 가능성 측면에서는 더 많은 기회가 있을 수 있다.
EVM 생태계: 이더리움과 다양한 EVM 호환 체인(트론 Tron 포함), 그리고 일부 BTC Layer2도 포함된다. 이 호환 체인들은 동일한 프로그래밍 모델을 사용하며, 모두 Solidity로 스마트 계약을 개발한다. 앱 생태계가 풍부하고, 개발 도구와 학습 자료도 잘 갖춰져 있다.
Solana: 지난 1년간 강력한 성장을 보였으며, 생태계 규모 면에서 2위를 차지하고 있지만, 여전히 EVM 생태계와는 격차가 크다. Solana의 장점은 높은 처리량과 빠른 블록 생성 속도이며, 스마트 계약은 Rust로 개발된다. 입문 장벽이 다소 높은 편이다.
TON: 대량의 사용자를 보유한 Telegram을 배경으로 하며, 최근 인기가 상승 중이다. TON 역시 고성능 특성을 지니며, 스마트 계약은 주로 Func 언어로 작성된다. 하지만 TON 생태계는 아직 짧은 역사로 인해 도구 라이브러리가 미흡하고 학습 자료도 부족하다.
또한 Move 생태계(Sui/Aptos 포함), Starknet 생태계, ICP 생태계, AO/AR 생태계 등 다른 블록체인 생태계들도 각자의 장점을 가지고 있지만, 현재로서는 관심도가 낮은 편이다.
여기서 설명된 내용은 현재의 생태계 상황이며, 각 생태계는 동적으로 발전하고 있으며, 고유의 문화적 특성도 다르다. 따라서 본인의 선호에 따라 선택하면 된다.
초보자에게는 자료가 풍부하고 생태계도 안정적인 EVM 생태계에서 시작하는 것을 추천한다.
스마트 계약 개발
Web3 앱 개발은 기존 인터넷 앱 개발과 비교해 큰 변화가 있다. 많은 백엔드 로직이 스마트 계약으로 옮겨져 체인 상에서 실행되며(일부는 프론트엔드로 이동됨, 다음 항목 참조), 이를 통해 중앙화된 서버에 대한 의존성을 제거한다.
물론 Web3 앱 중 스마트 계약 개발이 필요 없는 경우도 많다. 예: 월렛, 거래소, 체인 데이터 서비스 등. 이런 앱을 개발할 때는 계약과의 상호작용 방법을 이해해야 한다. 다음 항목 참조.
EVM 생태계에서 스마트 계약 개발에 가장 널리 사용되는 언어는 Solidity이며, 반드시 학습해야 한다. Yul은 계약 개발을 위한 어셈블리 언어로, 여력이 있다면 함께 학습하면 좋다.
Solana, TON, Move 등 다른 생태계는 각자의 개발 언어를 사용하므로, 이후 기회가 되면 따로 소개하겠다.
Solidity 개발 IDE로는 초보자에게 온라인 Remix IDE를 추천한다. 실제 프로젝트 개발에서는 VS Code + 개발 프레임워크 조합을 주로 사용한다. 개발 프레임워크는 스마트 계약의 컴파일, 배포, 테스트를 도와주며, Foundry를 우선적으로 추천한다(테스트가 편리함). 그 다음으로 Hardhat이 있다.
스마트 계약 개발 시에는 일반적인 Token/NFT 표준(ERC20, ERC2612, ERC721, ERC1155 등)을 이해하고 사용할 수 있어야 하며, OpenZeppelin 같은 스마트 계약 라이브러리를 활용하는 습관을 들이는 것이 좋다. 이 라이브러리는 다양한 표준을 구현해놓아 개발자의 작업량을 줄이고 코드의 보안성을 높여준다.
계약 개발 시에는 가능한 한 표준을 따르는 것이 중요하다. 이는 Web2 개발과의 차이점이다. Web2 앱은 보통 자신만 호출하지만, 스마트 계약은 누구나 호출할 수 있으며, 더 많은 사람들이 호출할수록 프로그램의 가치가 커진다. 표준을 따름으로써 타인이 자신의 프로그램을 쉽게 활용할 수 있게 된다.
스마트 계약 개발 심화
Solidity는 입문이 쉬우나, 탁월한 스마트 계약 개발자가 되기 위해서는 많은 것을 배우고(연습하고) 익혀야 한다. 예를 들어, Gas 비용을 줄이기 위한 계약 최적화 기술, Create2를 통한 계약 주소 생성 및 예측, 저수준 Call 호출 및 위임 호출(delegatecall) 메커니즘 이해, 계약 업그레이드 방법, 오프라인 서명을 활용한 사용자 비용 절감, Merkle 트리를 활용한 체인 상 저장 비용 절감, 일반적인 보안 취약점 이해, DAO 거버넌스 방식 및 구현, 계정 추상화(Account Abstraction), 오라클을 통한 외부 데이터 획득 방법 등이다.
또한 DeFi(탈중앙화 금융)는 현재 Web3에서 가장 중요한 애플리케이션 분야이므로, 일반적인 금융 개념을 이해하고 주요 DeFi 프로토콜의 작동 방식, 플래시론(flash loan)의 원리를 파악하면 더 많은 기회를 얻을 수 있다.
Web3 앱의 프론트엔드 및 백엔드
스마트 계약은 백엔드 역할을 하지만, 사용자 경험을 높이기 위해서는 프론트엔드도 필수적이다. Web3 앱은 사용자가 자신의 자산을 스스로 관리하므로, 프론트엔드는 월렛과 연결되어 상호작용을 완성해야 한다.
Web3 앱의 백엔드는 주로 캐시 계층으로 기능한다. 체인 상의 데이터는 데이터베이스처럼 구조화되지 않아 조회가 불편하므로, 백엔드를 통해 데이터를 캐싱하면 사용자 경험을 개선할 수 있다.
현재는 전문적인 체인 데이터 서비스 제공업체도 많이 있으며, 체인에는 방대한 양의 공개 데이터가 존재해 일종의 데이터 보물창고와 같다. 빅데이터에 관심이 있다면 이 또한 매력적인 분야가 될 수 있다.
Web3 프론트엔드 개발 시에는 MetaMask, WalletConnect, Web3Modal 등 일반적인 월렛 연결 방법을 숙지해야 한다. 프론트엔드와 체인 간의 상호작용은 Vim.sh, Ethers.js, Web3.js 등의 라이브러리를 통해 이루어지며, 이 라이브러리들은 사실상 체인 노드의 RPC 서비스를 래핑한 것이다. 호출 시 프론트엔드는 RPC 노드의 URL을 통해 어느 체인과 상호작용할지 결정하며, ABI와 계약 주소를 통해 특정 함수를 호출한다.
Web3 백엔드는 주로 데이터 처리를 담당한다. 예를 들어, 블록을 스캔하여 특정 계약의 특정 이벤트 데이터를 수집하는 작업이다. 체인과의 상호작용 방식은 프론트엔드와 유사하지만, 백엔드 언어에 따라 다른 래퍼 라이브러리를 사용해 Web3 RPC 노드와 통신한다. 대표적으로 Go 백엔드에서는 go-ethereum 라이브러리를, Node.js 백엔드에서는 Vim.sh, Ethers.js 등을 사용한다. 이 라이브러리들은 익숙해질 필요가 있다.
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News












