# Firefox의 Web Serial 지원 발표

> Clean Markdown view of GeekNews topic #29761. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=29761](https://news.hada.io/topic?id=29761)
- GeekNews Markdown: [https://news.hada.io/topic/29761.md](https://news.hada.io/topic/29761.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-05-22T15:03:44+09:00
- Updated: 2026-05-22T15:03:44+09:00
- Original source: [hacks.mozilla.org](https://hacks.mozilla.org/2026/05/web-serial-support-in-firefox/)
- Points: 1
- Comments: 1

## Topic Body

- **Firefox 151 데스크톱**부터 Web Serial API를 지원해 웹 앱이 네이티브 소프트웨어 없이 호환 직렬 장치와 통신할 수 있음
- **Web Serial**은 JavaScript로 직렬 장치를 읽고 쓰는 API로, 마이크로컨트롤러·3D 프린터·전력계 등에 직접 연결 가능함
- Adafruit 워크플로에서는 Web Serial로 펌웨어를 전달해 **CircuitPython**을 설치하고, `code.py` 파일로 장치 코드를 쉽게 배포함
- Firefox는 명시적 사용자 허용, 사이트별·포트별 권한, **애드온 게이팅**으로 장치 접근의 보안·개인정보 보호 위험을 줄임
- Mozilla는 WICG 단계의 Web Serial을 **WHATWG 표준화**로 추진하며, 실제 하드웨어 워크플로 테스트와 피드백을 요청함

---

### Web Serial API와 지원 범위
- **Firefox 151 for Desktop**부터 Web Serial API를 지원해 웹 애플리케이션이 네이티브 소프트웨어 없이 호환 장치와 통신할 수 있음
- [Web Serial API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Serial_API)는 웹사이트가 JavaScript로 직렬 장치를 읽고 쓸 수 있게 하는 웹 API임
- 대상 장치는 마이크로컨트롤러, 개발 보드, 3D 프린터, 전력계, 기타 직렬 연결 하드웨어를 포함함
- 직렬 호환 장치에는 **Espressif ESP 기반 보드**, Raspberry Pi Picos, 3D 프린터, LEGO 장치 등이 들어감
- 최신 컴퓨터에는 보통 직렬 포트가 없지만, USB 포트에 연결되거나 Bluetooth로 페어링된 장치는 운영체제에서 직렬 포트처럼 보이도록 자신을 직렬 가능 장치로 알릴 수 있음
- Web Serial 호환 장치는 취미 개발자, 하드웨어 해커, 교육자, 메이커, 개발자가 홈 자동화, 하드웨어 프로토타이핑, 3D 프린팅 등에 활용함

### Adafruit와 CircuitPython 워크플로
- [Adafruit](https://www.adafruit.com/)는 오픈소스 하드웨어와 [STEM](https://en.wikipedia.org/wiki/Science,_technology,_engineering,_and_mathematics) 교육 분야에서 Web Serial 활용을 보여주는 대표 조직 중 하나임
- Adafruit는 Web Serial로 펌웨어를 전달해 자사 장치에 [CircuitPython](https://circuitpython.org/)을 빠르게 설치할 수 있게 함
- 설치 후 파일 이름을 `code.py`로 지정하면 대부분의 장치에서 USB 장치로 파일을 끌어다 놓는 방식으로 코드를 배포할 수 있음
- Python 프로그램은 단순한 텍스트 기반 입출력으로 Web Serial을 통해 웹 페이지와 상호운용 가능함
- [Adafruit Web Serial Tool](https://adafruit.github.io/Adafruit_WebSerial_ESPTool/)을 사용할 수 있으며, CircuitPython 사이트의 `OPEN INSTALLER` 방식과는 구분됨
- [example CircuitPython Web Serial project](https://github.com/hafta/circuitpython-webserial-example/)는 로컬 [web page](https://github.com/hafta/circuitpython-webserial-example/blob/main/webserial.html)에서 Web Serial을 사용해 CircuitPython [file](https://github.com/hafta/circuitpython-webserial-example/blob/main/code.py)을 실행 중인 장치로 메시지를 보내는 구조임
- Mozilla는 Adafruit와 협력해 Firefox 구현을 이 커뮤니티에서 흔히 쓰는 실제 하드웨어 워크플로에 맞춰 테스트함
- Mozilla 엔지니어 Alex Franchuk은 Web Serial과 전자 장치를 결합한 [Page Playground](https://adafruit-playground.com/u/afranchuk/pages/page-playground-using-webserial-in-firefox)를 만들었음

### 전력 측정과 홈 자동화
- Mozilla의 Florian Quèze는 [전력 소비 측정을 위한 여러 프로젝트](https://www.youtube.com/watch?v=Ly7ve5ftRnU)를 실험했고, Web Serial로 시판 USB 전력계의 전력 데이터를 읽어 Firefox에 표시하는 [데모](https://serial.combien-consomme.fr/)를 만들었음
- 해당 코드는 데이터를 Firefox Profiler로 내보낼 수 있어 전력 데이터를 시각화하고 공유하기 쉬움
- 관련 리소스는 [page](https://serial.combien-consomme.fr/), [GitHub repo](https://github.com/fqueze/webserial-power-profiling), 세 밝기 모드가 있는 조명의 전력 사용량을 기록한 [Firefox Profiler 데이터](https://share.firefox.dev/4uGxHsg)임
- 테스트된 USB 전력계에는 [AVHzY C3 USB](https://store.avhzy.com/index.php?route=product/product&product_id=53), [Joy-IT TC66C](https://joy-it.net/en/products/JT-TC66C), YZXStudio USB ZY1280이 포함됨
- [Home Assistant](https://www.home-assistant.io/)는 홈 자동화를 위한 인기 오픈소스 프로젝트이며, [ESPHome](https://esphome.io/)은 저렴한 ESP32와 유사 장치에 Home Assistant 호환 펌웨어를 제공함
- ESPHome 펌웨어는 Web Serial을 통해 몇 번의 클릭만으로 설치하고 설정 가능함

### 보안과 개인정보 보호
- 웹 플랫폼이 하드웨어 장치를 읽고 쓸 수 있게 되면 **보안과 개인정보 보호** 우려가 커짐
- Web Serial에서 웹사이트는 사용자가 명시적으로 허용하기 전까지 직렬 포트를 보거나 접근할 수 없음
- 포트 허용은 사이트별·포트별로 이뤄짐
- Web Serial API는 웹사이트가 `navigator.serial.requestPort()`를 호출하도록 요구하며, 사용자는 접근을 허용할 포트를 선택하거나 모든 접근을 거부할 수 있음
- 웹사이트는 연결된 장치 목록을 받지 않으며, 사용자가 선택한 포트 외에는 유용한 지문추적 정보가 제공되지 않음
- Firefox는 사이트가 직렬 포트 접근을 요청하는 시점과 이유를 사용자가 이해하도록 [Web MIDI API](https://developer.mozilla.org/en-US/docs/Web/API/Web_MIDI_API) 구현에서 도입한 **애드온 게이팅(add-on gating)** 을 사용함
- 애드온 게이팅은 다른 웹 권한 프롬프트보다 사용자가 무엇을 허용하는지 더 자세히 알려줌
- 애드온 게이팅 프롬프트는 사이트가 처음 포트 접근을 요청할 때 포트 선택 프롬프트보다 먼저 표시됨
- Firefox Enterprise Policies를 사용하는 조직에서는 Web Serial이 기본적으로 비활성화됨
- 관리자는 [DefaultSerialGuardSetting](https://firefox-admin-docs.mozilla.org/reference/policies/defaultserialguardsetting/) 정책 설정으로 조직 전체의 Web Serial 기능을 명시적으로 허용하거나 차단할 수 있음

### 표준화와 피드백
- Web Serial은 아직 **Web Incubator Community Group(WICG)** 단계에 있지만, Mozilla는 범위와 오랜 인큐베이션을 고려할 때 표준화 경로가 있다고 봄
- Mozilla는 [새 Workstream proposal](https://github.com/whatwg/sg/pull/264)을 통해 WHATWG에서 Web Serial API 표준화를 추진 중임
- Mozilla는 주변장치에 대한 웹 접근 방식을 형성하기 위해 생태계 파트너와 표준화 기구와 협력할 계획임
- 장치 기반 Web Serial 워크플로가 있다면 Firefox에서 테스트할 수 있음
- [Mozilla Connect](https://connect.mozilla.org/)에서 프로젝트를 공유하고 질문하거나 피드백을 남길 수 있음
- 기술 문제는 [support.mozilla.org](http://support.mozilla.org)를 확인하거나 [Bugzilla](https://bugzilla.mozilla.org/enter_bug.cgi?product=Core&component=DOM%3A+Device+Interfaces)에 버그를 제출하면 됨

## Comments



### Comment 58068

- Author: neo
- Created: 2026-05-22T15:03:44+09:00
- Points: 1

###### [Lobste.rs 의견들](https://lobste.rs/s/tbxmm1/announcing_web_serial_support_firefox) 
- WebUSB도 구현해 주면 좋겠음
  - 이게 ESP 같은 **마이크로컨트롤러 플래싱**을 가능하게 해준다면, 내 WebUSB 사용 사례의 95~100%는 해결됨
  - 누군가 **Firefox 확장**으로 구현해 둔 게 있음: https://github.com/ArcaneNibble/awawausb

- 잘 속는 사람들, 특히 **직렬 포트**가 뭔지 모르는 사람들을 어떻게 보호할 생각인지 궁금함. Mozilla의 [표준 입장](https://mozilla.github.io/standards-positions/)에도 이런 내용이 있음  
  > 직렬 인터페이스를 제공하는 장치는 인증이 거의 없거나 전혀 없는 상태로 강력한 저수준 기능을 노출하는 경우가 많다. 충분한 보호 장치 없이 그런 기능을 웹에 노출하면 해당 장치에 중대한 위협이 된다
  - 초보 사용자가 가질 만한 직렬 지원 장치는 **마우스** 정도밖에 떠오르지 않음. 펌웨어 업데이트가 서명되지 않은 경우 악성코드가 올라갈 수는 있겠지만, 공격자에게 유용한 표적으로는 잘 안 보임  
    매크로 기능이 있는 키보드는 조금 더 걱정되긴 함. 그래도 Chrome에는 이 기능이 몇 년째 있었고 큰 문제가 없었으니, 심각한 우려는 아니라고 봄. 특히 주변기기들이 설정 용도로 점점 더 많이 쓰기 시작하는 지금은 유용성이 위험보다 훨씬 큼

- 이건 말이 안 됨. **웹페이지 뷰어**에 직렬 포트 접근을 추가하는 게 얼마나 정신 나간 일인지 표현하기 어렵다
  - 공감이 안 됨. 너무 유용한 기능이고, 이제 이걸 쓰려고 Chrome으로 바꾸지 않아도 돼서 반가움
  - 웹은 이미 약 20년 전에 **애플리케이션 플랫폼**으로 진화했음

- 아, 맞다. 웹사이트에 딱 필요한 게 이거지. WebRawSockets를 기다리는 중임. 반쯤 농담이지만, 예전에 내가 참여했을 때 **SVG 작업 그룹**이 실제로 SVG에 원시 소켓을 추가하려고 했음
  - SVG 작업 그룹이 SVG에 원시 소켓을 넣으려 했다니, 대체 무슨 일이었나 싶음. 그 이유가 뭐였는지 기억남?
