처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.04.08 23

브라우저 안에서 리눅스를 돌려 옛날 프린터를 살려내는 프로젝트, Printervention

Hacker News 원문 보기
브라우저 안에서 리눅스를 돌려 옛날 프린터를 살려내는 프로젝트, Printervention

집에 굴러다니는 그 프린터, 아직 버리지 마세요

혹시 집이나 사무실 구석에 오래된 프린터가 하나쯤 있지 않나요? 하드웨어는 멀쩡한데, 제조사가 드라이버 지원을 끊어버리는 바람에 최신 운영체제에서 쓸 수 없게 된 그런 프린터요. macOS를 업데이트했더니 갑자기 프린터가 인식이 안 된다거나, Windows 11에서 드라이버를 아무리 찾아봐도 없는 경험, 한 번쯤 해보셨을 거예요.

이 문제를 정말 기발한 방법으로 해결하는 프로젝트가 등장했어요. 이름은 Printervention인데요, 핵심 아이디어가 놀라워요. 웹 브라우저 안에서 리눅스 가상 머신을 돌리고, 그 리눅스가 프린터 드라이버를 대신 처리해주는 방식이에요. 별도 프로그램을 설치하지 않아도 되고, 브라우저만 있으면 되거든요.

어떻게 동작하는 걸까요?

이 프로젝트를 이해하려면 몇 가지 기술을 알아야 하는데, 하나씩 쉽게 풀어볼게요.

첫 번째는 WebAssembly(웹어셈블리)예요. 이게 뭐냐면, 원래 웹 브라우저는 JavaScript만 실행할 수 있었는데, WebAssembly가 등장하면서 C나 C++ 같은 언어로 만든 프로그램도 브라우저 안에서 거의 네이티브에 가까운 속도로 돌릴 수 있게 된 거예요. Printervention은 이 WebAssembly를 이용해서 브라우저 탭 안에 진짜 리눅스 커널을 올려요. 가상 머신 에뮬레이터가 웹어셈블리로 컴파일되어 있어서, 별도의 하이퍼바이저나 Docker 같은 건 전혀 필요 없어요. 브라우저가 곧 가상 머신이 되는 셈이죠.

두 번째 핵심 기술은 WebUSB예요. 보통 웹 브라우저는 보안상의 이유로 컴퓨터에 연결된 하드웨어에 직접 접근하지 못하거든요. 하지만 WebUSB라는 웹 API가 있으면 브라우저에서 USB 장치와 직접 통신할 수 있어요. 사용자가 명시적으로 권한을 허용해야 하기 때문에 보안 문제도 어느 정도 해결되고요. 크롬(Chrome)이나 엣지(Edge) 같은 Chromium 기반 브라우저에서 지원하는 기능이에요.

그런데 여기서 한 가지 문제가 있어요. WebUSB로 브라우저가 프린터 USB 포트에 접근할 수는 있지만, 브라우저 안에서 돌아가는 리눅스 VM에게 "여기 USB 프린터가 연결되어 있어"라고 알려줘야 하잖아요? 이 둘을 연결하는 다리 역할을 하는 게 USB/IP 프로토콜이에요. USB/IP는 원래 네트워크를 통해 USB 장치를 공유하기 위한 리눅스 커널 모듈인데요, Printervention에서는 이걸 약간 변형해서 사용해요. 브라우저의 WebUSB가 읽어온 USB 데이터를 USB/IP 형태로 패키징해서, 같은 브라우저 안에서 돌아가는 리눅스 VM에게 전달하는 거예요. 리눅스 VM 입장에서는 마치 네트워크 너머에 USB 프린터가 연결된 것처럼 인식하게 되는 거죠.

정리하면 이런 흐름이에요: 프린터 ↔ USB ↔ WebUSB(브라우저) ↔ USB/IP 브릿지 ↔ 리눅스 VM(브라우저 내부) ↔ 리눅스 프린터 드라이버(CUPS 등). 사용자는 Printervention 웹사이트에 접속해서 프린터를 연결하고, 인쇄할 파일을 올리기만 하면 돼요.

왜 이 접근이 특별한가요?

사실 오래된 프린터 문제를 해결하는 방법 자체는 여러 가지가 있어요. 라즈베리파이에 CUPS 프린트 서버를 깔아서 네트워크 프린터로 만드는 방법이 가장 대표적이죠. 아니면 오래된 노트북에 리눅스를 설치해서 프린트 서버로 쓰는 방법도 있고요.

그런데 Printervention의 접근 방식이 눈에 띄는 이유는 진입 장벽이 거의 없다는 점이에요. 라즈베리파이를 사려면 돈을 써야 하고, 리눅스를 설치하려면 어느 정도 기술적 지식이 필요하잖아요. 반면에 이 프로젝트는 브라우저만 열면 끝이에요. 별도 소프트웨어 설치도 필요 없고, 운영체제에 뭔가를 건드릴 필요도 없어요. 비개발자인 부모님이나 사무직 직원도 쓸 수 있을 만큼 접근성이 좋은 거죠.

기술적으로도 흥미로운 지점이 많아요. 브라우저 안에서 리눅스를 돌리는 것 자체가 예전에는 상상하기 어려웠거든요. 이게 가능해진 건 WebAssembly의 성숙, 브라우저 엔진의 성능 향상, 그리고 WebUSB 같은 하드웨어 접근 API가 표준화된 덕분이에요. 이 프로젝트는 이런 웹 기술들이 결합하면 어디까지 가능한지를 잘 보여주는 사례라고 할 수 있어요.

웹 브라우저가 운영체제를 대체하는 시대?

사실 "브라우저 안에서 뭔가 무거운 걸 돌린다"는 트렌드는 이미 꽤 진행되고 있어요. VS Code의 웹 버전인 vscode.dev, 브라우저에서 Node.js를 돌리는 StackBlitz의 WebContainers, 심지어 브라우저에서 데이터베이스를 돌리는 PGlite 같은 프로젝트들이 이미 나와 있거든요. Printervention도 이 흐름의 연장선에 있는 프로젝트예요.

이런 기술들이 발전하면 흥미로운 가능성이 열려요. 예를 들어 레거시 하드웨어의 드라이버 문제를 클라우드나 웹 서비스로 해결하는 패턴이 일반화될 수 있어요. 스캐너, 시리얼 포트 장비, 산업용 센서 같은 것들도 비슷한 방식으로 브라우저를 통해 접근할 수 있게 될지 모르겠죠. WebUSB뿐 아니라 Web Bluetooth, Web Serial 같은 API도 이미 있으니까요.

다만 한계도 있어요. WebUSB는 현재 Chromium 기반 브라우저에서만 동작하고, Safari나 Firefox는 보안상의 이유로 지원하지 않고 있어요. 브라우저 보안 모델과 하드웨어 접근 사이의 줄다리기는 앞으로도 계속될 거예요.

한국 개발자에게 주는 시사점

이 프로젝트에서 한국 개발자들이 챙길 수 있는 게 꽤 있어요.

우선 WebAssembly의 가능성을 다시 한번 생각해볼 수 있어요. WebAssembly가 단순히 "웹에서 C++ 코드를 돌리는 기술" 정도로만 알고 있었다면, 이 프로젝트가 보여주듯 브라우저 안에서 완전한 OS를 구동하는 수준까지 왔다는 걸 알 수 있거든요. 웹 기반 제품을 만드는 분이라면 WebAssembly로 할 수 있는 범위가 생각보다 훨씬 넓다는 걸 인지해두면 좋겠어요.

또한 WebUSB와 Web Serial은 IoT나 하드웨어 연동 프로젝트를 하시는 분들에게 매우 실용적이에요. 별도 네이티브 앱을 배포하지 않아도, 웹페이지 하나로 장비 설정이나 펌웨어 업데이트 같은 걸 할 수 있으니까요. 스타트업이나 소규모 팀에서 하드웨어 제품의 관리 도구를 만들 때 특히 유용해요.

그리고 레거시 시스템 호환성 문제는 한국 기업 환경에서 특히 많이 겪는 문제이기도 해요. 관공서나 대기업에서 아직 오래된 프린터, 스캐너, 카드 리더기를 쓰는 경우가 많잖아요. 이런 접근 방식을 응용하면 ActiveX를 대체하거나, 레거시 장비와의 연동 문제를 브라우저 기반으로 해결하는 아이디어도 나올 수 있지 않을까요?

마무리

한줄 정리: 드라이버 지원이 끊긴 프린터를 살리기 위해 브라우저 안에서 리눅스를 통째로 돌리고, WebUSB로 하드웨어를 연결한 프로젝트. 웹 기술의 경계가 어디까지인지 다시 생각하게 만들어요.

여러분은 WebAssembly나 WebUSB를 실무에서 사용해본 경험이 있나요? 브라우저가 점점 OS의 역할을 대체해가는 흐름에 대해 어떻게 생각하시나요?


🔗 출처: Hacker News

이 뉴스가 유용했나요?

이 기술을 직접 배워보세요

AI 도구, 직접 활용해보세요

AI 시대, 코딩으로 수익을 만드는 방법을 배울 수 있습니다.

AI 활용 강의 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.