니모닉 코드는 개인키를 사람들이 읽기 쉬운 단어들로 치환한 형태입니다. BIP-39에 정의되어 있으며 예를 들어 coconut census scorpion popular twelve craft engage wet fantasy man speed emotion
같은 형태로 표현됩니다.
위에 사용한 니모닉 코드는 개인키로는 절대 사용하지 마세요.
Deno는 JavaScript/TypeScript 런타임입니다. 제가 Deno에서 매력적이라고 생각했던 부분은 보안입니다. Deno는 스스로를 secure runtime 라고 이야기합니다. 실행하는 스크립트에서 사용 가능한 권한들을 설정 가능합니다. 예를 들어 스냅샷 테스팅을 할 때 --allow-read=tests/__snapshots__
와 같은 인자를 주어 스냅샷 파일들에만 접근 가능하게 하는 것이죠. 또한 --allow-net
인자로 네트워크 접근 권한도 설정가능 합니다. 권한 설정 관련해서는 Deno Getting Started - Permissions 에서 확인할 수 있습니다.
회사에서 작성하는 프로젝트의 개발환경 준비 문서를 작성하는 도중에 니모닉 코드를 생성해야하는 부분이 있었는데 npm에 있는 어떤 패키지를 활용하려고 하니 이상한 코드가 있지 않을까 걱정이 문득 들었습니다. 그래서 처음에는 Deno에서 BIP-39를 다시 구현해야 하나 생각했다가 Deno가 Node 호환성 모드를 지원한다는 것이 기억 났습니다. 💡
그리고 esm.sh 같은 서비스를 이용하여 쉽게 패키지를 가져올 수도 있습니다.
그래서 아래와 같은 코드를 통해 안심하고 니모닉 코드를 생성해볼 수 있었습니다.
import bip39 from "https://esm.sh/bip39@3.0.4";
console.log(bip39.generateMnemonic());