터미널과 브라우저, 두 세계를 하나로
개발자라면 터미널 기반 애플리케이션의 매력을 알 거예요. 가볍고, 빠르고, 키보드만으로 모든 걸 제어할 수 있잖아요. 하지만 터미널 앱에는 늘 아쉬운 점이 하나 있었어요. 다른 사람에게 보여주거나 공유하기가 어렵다는 거예요. "이거 써봐"라고 하려면 상대방도 터미널 환경을 갖추고 있어야 하고, 설치 과정도 필요하니까요.
반대로 웹 앱은 공유가 쉽지만, 터미널 앱 특유의 그리드 기반 인터페이스(텍스트가 격자 형태로 배치되는 구조)를 웹에서 구현하려면 보통 처음부터 새로 만들어야 했어요. 터미널용 코드와 웹용 코드를 따로 작성해야 하니, 결국 두 배의 작업이 되는 셈이었죠.
Gridland는 바로 이 문제를 해결하려는 프로젝트예요. 한 번 코드를 작성하면 터미널에서도 실행되고, 웹 브라우저에서도 똑같이 실행되는 앱을 만들 수 있게 해줘요.
어떻게 동작하는 건가요
Gridland의 핵심 아이디어는 "그리드"라는 공통 추상화 레이어를 제공하는 거예요. 이게 뭐냐면, 터미널이든 브라우저든 결국 화면에 텍스트나 셀을 격자 형태로 배치한다는 공통점이 있잖아요. Gridland는 이 격자(grid)를 프로그래밍하는 통일된 API를 제공하고, 실제로 화면에 그리는 부분만 환경에 맞게 바꿔주는 거예요.
터미널에서 실행하면 터미널의 문자 기반 렌더링을 사용하고, 브라우저에서 열면 HTML Canvas나 DOM 기반으로 같은 그리드를 그려줘요. 개발자 입장에서는 "이 셀에 이 글자를 이 색으로 표시해줘"라고 하면 되고, 어디서 실행되는지는 신경 쓰지 않아도 돼요.
이런 접근 방식 덕분에 터미널의 키보드 중심 인터랙션도 자연스럽게 브라우저로 가져올 수 있어요. 방향키로 이동하고, 단축키로 명령을 실행하는 그 경험이 웹에서도 유지되는 거죠.
기존 도구들과 비교하면
터미널 UI를 만드는 도구는 이미 꽤 많아요. 예를 들어 Python에서는 Rich나 Textual이 인기 있고, Rust에서는 Ratatui(구 tui-rs)가 유명하고, Go에서는 Bubble Tea가 많이 쓰이죠. 이 도구들은 터미널에서 멋진 TUI(Text User Interface, 텍스트 기반 사용자 인터페이스)를 만들 수 있게 해주지만, 기본적으로 터미널 전용이에요.
웹에서 터미널을 돌리는 방향으로는 xterm.js가 대표적인데, 이건 "터미널 에뮬레이터를 웹에 심는" 방식이라서 실제 터미널 백엔드(쉘 프로세스)가 필요해요. Gridland의 접근법은 이것과 달라요. 백엔드 없이 순수하게 프론트엔드에서도 돌아가는 앱을 만들 수 있어요.
또 하나 재밌는 비교 대상은 WASM(WebAssembly) 기반 접근법이에요. 터미널 앱을 WASM으로 컴파일해서 브라우저에서 돌리는 시도들이 있는데, 이러면 기존 터미널 앱을 거의 그대로 가져올 수 있지만 WASM 컴파일의 복잡성이 따라와요. Gridland는 처음부터 두 환경을 목표로 설계했기 때문에 이런 변환 단계가 필요 없다는 게 장점이에요.
한국 개발자에게 주는 시사점
이 프로젝트가 흥미로운 이유는 "개발 도구의 민주화"와 맞닿아 있어서예요. 내부 도구나 CLI 유틸리티를 만들었는데, 비개발자 동료에게도 쓰게 해주고 싶을 때가 있잖아요. Gridland를 쓰면 터미널 앱을 웹 URL로 공유할 수 있으니, 따로 설치 없이 브라우저에서 바로 사용할 수 있게 돼요.
또한 교육 목적으로도 활용할 수 있어요. 터미널 기반의 간단한 게임이나 인터랙티브 튜토리얼을 만들어서 웹으로 배포하면, 학생들이 별도 환경 설정 없이 바로 실습할 수 있거든요. 실제로 Gridland 홈페이지에서도 브라우저에서 바로 돌아가는 데모를 확인할 수 있어요.
아직 초기 단계 프로젝트이긴 하지만, 터미널과 웹의 경계를 허무는 이런 시도는 계속 관심을 가져볼 만해요. 특히 내부 도구를 많이 만드는 팀이라면, Gridland의 접근법이 "터미널용 따로, 웹용 따로" 만들던 이중 작업을 줄여줄 수 있을 거예요.
정리
Gridland는 "Write once, run on terminal and browser"를 목표로 하는 재밌는 프로젝트예요. 터미널 앱의 가볍고 빠른 경험을 웹에서도 그대로 제공할 수 있다면, 개발자 도구의 배포와 공유 방식이 많이 달라질 수 있겠죠. 여러분은 터미널과 웹, 두 환경 모두에서 돌아가면 좋겠다고 생각한 도구가 있나요?
🔗 출처: Hacker News
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공