Hello Base에 대한 내 피드백
암호화폐의 언어 장벽
지금 테크 업계에는 안타까운 언어 장벽이 존재합니다.
암호화폐 애호가들은 지금 생태계와 크립토 업계에서 벌어지는 일들에 잔뜩 들떠 있습니다. 새로운 사람들을 끌어들이려 애쓰지만, 워낙 크립토 버블에 깊이 빠져 있다 보니 크립토 관련 내용을 크립토를 모르는 사람들에게 설명하는 데 어려움을 겪곤 합니다.
저는 이런 언어적 간극을 메우기에 꽤 적합한 사람이라고 생각합니다. 암호화폐의 기본 원리는 이해하고 있지만, 지난 7년 정도는 크립토 관련 소식을 가까이서 따라가지는 않았기 때문입니다.
Base는 가교가 되어야 한다
1년 전, 저는 Into the Bytecode의 한 에피소드에 나온 Jesse Pollak과의 인터뷰를 들었습니다. 그는 Coinbase가 개발 중인 Base라는 새로운 기술에 대해 잔뜩 기대하고 있었습니다.
Base는 암호화폐 세계가 낯선 개발자들을 끌어들이고, 그들이 생태계 안에서 쉽게 개발을 시작할 수 있도록 하는 것을 목표로 합니다.
저는 Base를 탐색하기 시작했고, 다른 대부분의 암호화폐 프로젝트와 마찬가지로 똑같은 언어 장벽을 겪고 있다는 것을 알게 되었습니다. 공식 문서는 따라가기 어려웠고, 독자가 이더리움 블록체인에 대해 깊은 이해를 하고 있다고 전제하는 것처럼 보였습니다.
Jesse Pollak은 제 피드백에 몇 차례 답하며 크립토를 모르는 사람의 관점을 이해하는 데 도움이 된다고 말했지만, 이후에도 이전과 똑같이 행동을 계속했기에 저는 그에게 피드백을 주는 흥미를 잃었습니다.
다시 소환되다
이번 주, Steve Simkins가 자신이 만든 Base 입문 자료를 공유하며 트위터에서 저를 태그했습니다:
저는 Base에 다시 한번 도전해 보고, 크립토 업계 바깥 사람으로서 메시지가 어떻게 보이는지에 대한 생각을 공유하려 합니다.
Hello Base에서 좋았던 점
명확한 진행 경로를 제시한다
Base 공식 문서는 ‘시작하기’ 문서에서부터 새로운 개발자들에게 어지러울 정도로 복잡한 갈림길들을 바로 들이밉니다.
Hello Base는 독자에게 시작부터 끝까지 명확한 흐름을 제공합니다. 시작하기 위해 무엇을 배워야 할지 여러 경로 중에서 고를 필요가 없습니다. 어떤 학습 경로를 선택해야 할지 고민하는 복잡함을 없애주는 단일 트랙이 존재합니다.
브라우저에서 전체 튜토리얼을 완료할 수 있다
Hello Base는 hello world 예제를 아주 잘 단순화했습니다. 독자는 어떤 도구도 설치하거나 복잡한 기술 스택을 배울 필요가 없습니다. 브라우저 안에서 바로 모든 것을 시도해 볼 수 있습니다.
용어를 설명해 준다
Base 공식 입문 문서에 대한 제 비판 중 하나는 초보자를 혼란스럽게 할 만한 내부 용어들을 아무렇지 않게 남발한다는 점입니다.
Hello Base는 새로 온 사람들이 이해하지 못할 개념들을 잘 파악하고 이를 앞에서부터 설명합니다. 암호화폐 생태계 안에서 Base가 해결하려는 문제들에 대해 간결하게 설명합니다.
Hello Base가 개선되면 좋을 점
가치를 더 빨리 보여주자
Hello Base도 다른 많은 Base 문서와 마찬가지로 독자가 이미 Base에 흥미가 있다고 가정한다는 점에서 비슷한 문제를 안고 있다고 생각합니다.
현실은 독자의 99%는 Base에 관심이 없으며, 머물러야 할 설득력 있는 이유를 주지 않으면 몇 초 안에 탭을 닫아버린다는 것입니다.
첫 문단에서는 독자가 왜 Base에 관심을 가져야 하고 왜 계속 읽어야 하는지를 설명해야 합니다.
현재 첫 문단은 다음과 같습니다:
개발자이면서 블록체인을 한 번도 다뤄본 적이 없거나 거의 알지 못한다면, 잘 찾아오셨습니다. 단 몇 분 만에 기초를 배우고 차세대 개발자들을 온체인으로 이끌기 위해 설계된 블록체인인 Base에서 어떻게 개발을 시작할 수 있는지 알게 될 것입니다.
블록체인을 모르는 개발자인 제가 이 글을 읽는다면, Base가 나에게 무엇을 주는 걸까요? 다른 블록체인 기술이 아니라 왜 Base를 배워야 할까요? web2 기술 대신 왜 Base를 배워야 할까요?
Hello Base의 소개를 Ruby on Rails의 소개와 비교해 보겠습니다:
현대 웹 앱의 복잡성을 압축하세요.
시작하는 데 필요한 것만 배우고, 진행하면서 계속 성장하세요. Ruby on Rails는 HELLO WORLD부터 IPO까지 확장됩니다.
Rails의 피치는 설득력이 있습니다. 시작하고 실행하는 과정을 간단하게 만들어 줄 것이며, 같은 도구로 대규모 확장까지 이룰 수 있다고 말합니다.
바로 이 질문에 답하는 Base 소개를 보고 싶습니다:
- 오늘 Base에서 할 수 있지만 다른 어떤 기술로는 할 수 없는 일은 무엇인가?
Jesse Pollak은 Base에서 만들 수 있는 앱의 예시를 든 적이 있는데, 제게는 전혀 매력적으로 느껴지지 않았습니다. 인증을 하거나 결제를 보내는 가장 쉬운 방법이 아니므로, 그렇다고 가장할 필요는 없습니다.
제가 web2 개발자라면, 다른 여러 기술 스택을 놔두고 왜 굳이 Base에서 개발해야 할까요?
Hello Base가 모든 사람에게 최고의 솔루션이라고 주장할 필요는 없습니다. 지금은 틈새 시장이라도 괜찮습니다(예: 기존 은행 서비스를 이용할 수 없을 때 결제를 받을 수 있는 방법이라든지). 하지만 사람들을 끌어들일 만한 설득력 있는 사용 사례가 필요합니다.
재미있는 부분만 남기고 간결하게
튜토리얼이 바로 재미있는 것으로 들어가면 좋겠습니다. Hello Base가 기초를 설명하려는 의도는 이해하지만, 그건 독자에게 뭔가 멋진 것을 보여준 뒤에 나와야 합니다.
Python 튜토리얼을 읽는다고 하면, 정적 타입과 동적 타입 언어의 역사에 대한 설명으로 시작해 메모리 안전성의 장점을 늘어놓지 않습니다. 그냥 “hello world”를 어떻게 출력하는지만 보여줍니다.
“hello, world!”가 정석적인 프로그래밍 예제가 된 이유는 Kerninghan과 Ritchie(K&R)가 쓴 The C Programming Language의 1장 1페이지에 나오기 때문입니다. 당시 다른 프로그래밍 책들이 변수와 타입의 기초부터 시작할 때, K&R은 바로 예제부터 보여줬습니다.
hello world보다 더 나은 예제는 없을까?
위에서 말한 내용과 어느 정도 연관되는데, 저는 Base / Ethereum 예제에서 web2 기술로 이미 할 수 있는 일을 더 복잡한 방식으로 하는 경우를 계속 보게 됩니다.
아마 첫 번째 예제에서는 어쩔 수 없이 그렇게 해야 할 수도 있지만, Base의 고유한 특성을 활용한 좀 더 멋진 무언가를 보여줄 수는 없을까요?
독자가 그저 블록체인에 데이터를 저장한다는 개념 자체에 흥미를 느끼지 않는다면, Base로는 쉽게 할 수 있지만 web2 기술로는 어렵거나 불가능한 흥미로운 일은 무엇이 있을까요?
Gumroad에 13% 수수료를 떼이지 않고 콘텐츠를 유료화할 수 있을까요? Patreon의 승인 없이 팬들이 매달 후원할 수 있는 간단한 방법을 만들 수 있을까요?
전문 용어를 최소화하자
Hello Base가 대부분의 용어를 설명하긴 하지만, 여전히 실제로 정의되지 않은 것들이 많습니다(예: “gas”, “optimistic rollups”).
하지만 모든 것을 정의한다고 해도, 튜토리얼 중간쯤부터는 사실상 다른 언어로 말하고 있는 셈이라 독자가 훑어보며 전체 내용을 파악할 수 없습니다.
튜토리얼의 30% 지점에서 발췌한 내용입니다. 크립토를 모르는 개발자에게는 낯설 용어들을 굵게 표시했습니다:
이러한 rollups의 또 다른 큰 장점은 EVM compatible을 유지한다는 점이며, 이는 Ethereum용으로 작성한 코드를 추가 작업 없이 deployed to an L2할 수 있다는 뜻입니다.
이런 설명이 과연 필요할까요? 튜토리얼을 따라가는 입장에서는 그냥 기술이 실제로 동작하는 모습을 보고 싶을 뿐입니다. 역사를 알 필요는 없습니다. 그리고 이해해야 할 개념이 있다면 단순화된 설명으로도 충분합니다.
Base의 한계에 솔직해지자
Base에 대한 메시지 중 제가 가장 불만인 점 중 하나는 “개발자가 새로운 웹 앱을 만드는 가장 쉬운 방법입니다! 허가 없이 누구나 어디서나 할 수 있습니다!”라는 말을 주문처럼 반복한다는 것입니다.
그러다 막상 개발을 시작하려고 하면 “아, 참고로 Coinbase 계정*이 필요하고, 신원 확인을 위해 Coinbase가 전신 스캔을 해야 합니다. 그리고 또, 이런 어색한 우회 방법을 쓰지 않으면 앱에 몇 킬로바이트 이상의 영구 데이터를 저장할 수 없습니다. 그리고 또, 이런 어색한 우회 방법을 쓰지 않으면 앱을 배포한 뒤에는 절대 수정할 수 없습니다”라고 말합니다.
* Base를 사용하는 데 실제로 Coinbase 계정이 꼭 필요한 것은 아니라는 걸 알고 있습니다. 하지만 튜토리얼들은 대안을 제시하지 않은 채 모두 그 경로를 따릅니다.
Base는 현재 온보딩을 어렵게 만드는 거친 부분들이 있습니다. 튜토리얼은 개발자를 중간에 놀라게 하거나 문제점이 없는 척하기보다는 이에 대해 솔직해야 한다고 생각합니다:
- Base를 실험해 보는 데에도 돈을 써야 합니다.
- 돈을 온체인으로 옮기는 과정이 번거롭습니다(테스트넷에서도 마찬가지인데, 테스트넷 수도꼭지(faucet)가 온갖 절차를 요구하기 때문입니다).
- web2에서처럼 앱을 자유롭게 수정할 수 없습니다.
- web2처럼 간단하게 데이터를 저장할 수 없습니다.
- 기본적인 개발을 위해서도 서로 관련 없는 수많은 주체들(OnChainKit, Hardhat, Coinbase, Solidity)과 상호작용해야 하는 것처럼 보입니다.
- 사실이 아닐 수도 있지만, 지금까지 가볍게 탐색해 본 제 인상은 그렇습니다.
Coinbase 의존성을 없애자
왜 꼭 Coinbase여야 하는지 타당한 이유는 있을 거라 생각하지만, 독자가 Coinbase 지갑을 만들어야 한다면 튜토리얼의 흐름이 크게 처집니다.
사실 저는 튜토리얼을 시도하는 것 자체를 한동안 망설였습니다. 진짜 Coinbase 인증을 받아야 하는 줄 알았기 때문입니다(Coinbase가 몇 년 전 이상한 이유로 제 계정을 잠갔던 적이 있습니다).
패스키만으로 지갑을 만들 수 있다는 걸 알고 안심했지만, 독자가 전체 계정 설정 과정을 거쳐야 한다고 생각하지 않도록 이 부분을 더 명확하게 해주면 좋겠습니다.
하지만 이런 마찰 자체가 완전히 사라지면 좋겠습니다. “hello world” 스마트 컨트랙트 하나를 Base 테스트넷에 게시하기 위해 온갖 절차를 거쳐야 하는 튜토리얼보다는, 마찰 없이 가상으로 진행되는(즉, 실제로 블록체인에 게시하지 않는) 튜토리얼이 더 낫겠습니다.
mess with dns by Julia Evans는 복잡한 인프라(DNS 서버)가 필요한 튜토리얼의 좋은 예시입니다. 하지만 저자가 복잡한 부분을 추상화해 독자가 단일 웹 앱 안에서 모든 것을 할 수 있게 만들었습니다.
Firefox에서 테스트해 주세요
튜토리얼을 “Read Contract”까지는 진행할 수 있었는데, 거기서 그냥 멈춰 버리고 더 이상 진행되지 않았습니다. 저는 Win10에서 Firefox를 사용하고 있습니다:
글을 무작위로 읽기