My Feedback about Hello Base

Michael Lynch

Hello Base에 대한 내 피드백

원문은 Michael Lynch님이 에 게재했습니다. 이 블로그 구독하기

암호화폐의 언어 장벽

지금 기술자들 사이에는 안타까운 언어 장벽이 존재한다.

암호화폐 애호가들은 지금 생태계와 크립토 업계에서 일어나는 일들에 잔뜩 들떠 있다. 그들은 새로운 사람들을 끌어들이려 하지만, 정작 크립토 버블에 너무 깊이 빠져 있어 크립토와 관련된 무엇이든 크립토를 모르는 사람들에게 설명하는 데 어려움을 겪는다.

나는 이 언어적 간극을 메울 적임자라고 생각한다. 암호화폐의 기본은 이해하고 있지만, 지난 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과 Richie(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 rollup”).

하지만 모든 것을 정의한다고 해도, 독자는 튜토리얼이 무엇에 관한 것인지 훑어보며 파악할 수 없다. 중간쯤부터는 사실상 다른 언어로 말하고 있기 때문이다.

튜토리얼의 30% 지점에서 발췌한 내용이다. 크립토를 모르는 개발자에게는 낯설 용어들을 굵게 표시했다:

이러한 rollup의 또 다른 큰 장점은 EVM 호환을 유지한다는 것으로, 이는 Ethereum용으로 작성한 코드를 별다른 추가 작업 없이 L2에 배포할 수 있다는 뜻이다.

이런 설명이 과연 필요할까? 내가 튜토리얼을 따라가고 있다면, 그저 기술이 실제로 동작하는 모습을 보고 싶을 뿐이다. 역사를 알 필요는 없다. 그리고 이해해야 할 개념에 대해서는 단순화된 설명이면 충분하다.

Base의 어려움을 솔직하게 밝힐 것

Base에 대한 메시지 중 내가 가장 불만인 점은 그들이 “개발자가 새로운 웹 앱을 만드는 가장 쉬운 방법입니다! 허가가 필요 없으니 누구나 어디서나 할 수 있습니다!”라는 구호를 계속 반복한다는 것이다.

그러다 막상 만들려고 하면 “아, 참고로 Coinbase 계정*이 필요하고, Coinbase는 신원 확인을 위해 전신 스캔을 해야 합니다. 그리고 앱은 어색한 우회 방법을 쓰지 않으면 수 킬로바이트 이상의 영구 데이터를 저장할 수 없습니다. 그리고 어색한 우회 방법을 쓰지 않으면 배포한 뒤에는 앱을 절대 수정할 수 없습니다.”라고 하는 식이다.

* Base를 사용하는 데 실제로 Coinbase 계정이 꼭 필요한 건 아니라는 걸 안다. 하지만 튜토리얼들은 대안을 제시하지 않고 모두 그 경로를 따른다.

Base는 현재 온보딩을 어렵게 만드는 거친 부분들이 있다. 튜토리얼은 개발자를 중간에 놀라게 하거나 문제점이 없는 척하기보다는 이에 대해 솔직해야 한다고 생각한다:

  • Base를 실험해 보는 데도 돈을 써야 한다.
  • 돈을 온체인으로 옮기는 것 자체가 번거롭다(테스트넷에서도 수도꼭지(faucet)가 온갖 절차를 요구하기 때문이다).
  • web2에서처럼 앱을 수정할 수 없다.
  • web2처럼 간단하게 데이터를 저장할 수 없다.
  • 기본적인 개발을 위해서도 서로 관련 없는 수많은 주체들과 상호작용해야 하는 것처럼 보인다(OnChainKit, Hardhat, Coinbase, Solidity).
    • 사실이 아닐 수도 있지만, 지금까지 가볍게 탐색해 본 내 인상은 그렇다.

Coinbase에 대한 의존성을 끊을 것

Coinbase여야만 하는 타당한 이유가 있으리라 생각하지만, 독자가 Coinbase 지갑을 만들어야 한다면 튜토리얼의 완성도를 크게 떨어뜨린다.

나는 실제로 한동안 튜토리얼을 시도조차 꺼렸는데, 진짜 Coinbase 인증을 받아야 하는 줄 알았기 때문이다(Coinbase가 몇 년 전 이상한 이유로 내 계정을 잠가버린 적이 있다).

패스키만으로 지갑을 만들 수 있다는 걸 알고 안심했지만, 독자가 전체 계정 설정 과정을 거쳐야 한다고 생각하지 않도록 이 부분을 더 명확히 할 수 있을 것이다.

하지만 나는 이런 마찰이 완전히 사라졌으면 좋겠다. “hello world” 스마트 컨트랙트 하나를 Base 테스트넷에 게시하려고 온갖 절차를 밟게 하는 튜토리얼보다는, 마찰이 없고 가짜로 동작하는(즉, 실제로 블록체인에 게시하지 않는) 튜토리얼이 더 낫다.

Julia Evans가 만든 mess with dns는 복잡한 인프라(DNS 서버)가 필요한 튜토리얼의 훌륭한 사례다. 저자는 복잡한 부분을 추상화해 독자가 단일 웹 앱 안에서 모든 것을 할 수 있도록 만들었다.

Firefox에서 테스트할 것

나는 튜토리얼을 “Read Contract”까지는 진행할 수 있었지만, “Read Contract”에서 그냥 멈춰버렸다. 나는 Win10의 Firefox를 사용하고 있다:

이 글은 muse-spark-1.2-contributor 모델을 사용해 번역했습니다.

댓글