이번 주 개발자 커뮤니티에서는 크롬 브라우저의 실험적 기능 플래그를 뒤지던 이들 사이에서 묘한 기류가 흐른다. 서버 비용 걱정 없이 로컬에서 LLM(거대 언어 모델)을 돌릴 수 있느냐는 논쟁이 붙은 것이다. 특히 깃허브의 여러 저장소에서 브라우저 내장 AI를 활용해 개인정보 유출 없이 데이터를 처리하려는 시도들이 포착되며 분위기가 뜨거워지고 있다.
Chrome 138과 Gemini Nano의 하드웨어 제약
Google은 Chrome 138 버전부터 오리진 트라이얼(정식 출시 전 일부 사용자에게 기능을 미리 공개하는 테스트 제도)을 통해 Prompt API(브라우저 내장 AI 모델에 명령을 내리는 인터페이스)를 제공한다. 이 API는 브라우저에 내장된 Gemini Nano 모델을 사용하여 서버 왕복 없이 온디바이스에서 AI 추론을 수행한다. 하드웨어 요구사항은 상당히 구체적이다. Windows 10 이상, macOS 13 이상, Linux, ChromeOS 환경이 필요하며 저장공간은 22GB 이상을 확보해야 한다. 메모리 기준은 GPU VRAM(그래픽 카드 전용 메모리) 4GB 초과 또는 CPU RAM 16GB 이상과 코어 4개 이상을 요구한다.
기능적으로는 텍스트뿐 아니라 멀티모달 입력을 지원한다. 오디오 입력의 경우 AudioBuffer(오디오 데이터를 담는 버퍼), ArrayBuffer(이진 데이터의 고정 길이 버퍼), Blob(불변의 바이너리 대형 객체) 형식을 지원하며, 이미지 입력은 HTMLImageElement(HTML 이미지 요소), HTMLCanvasElement(캔버스 요소), VideoFrame(비디오 프레임), Blob 형식을 통해 처리한다. 개발자는 prompt() 메서드로 단일 응답을 받거나, promptStreaming()을 통해 ReadableStream(데이터를 한꺼번에 받지 않고 조각내어 실시간으로 읽어오는 방식) 기반의 스트리밍 응답을 선택할 수 있다.
프롬프트 엔지니어링에서 스키마 제어로의 전환
예전에는 AI에게 JSON 형식으로 답해달라고 간곡히 부탁하는 프롬프트 엔지니어링에 의존했다. 이제는 responseConstraint 필드에 JSON Schema(데이터의 구조와 형식을 정의하는 표준 규격)를 직접 전달해 모델의 출력을 boolean 값이나 특정 JSON 구조로 강제할 수 있다. 또한 initialPrompts를 통해 시스템 프롬프트와 이전 대화 맥락을 주입하고, 세션 생성 후에도 append() 메서드로 추가 컨텍스트를 사전 전송하는 방식이 도입되었다. 후행 assistant 메시지에 prefix: true 설정을 추가하면 모델이 개발자가 의도한 특정 문구로 응답을 시작하도록 유도하는 정교한 제어가 가능하다.
세션 관리 방식도 달라졌다. clone()으로 세션을 포크하거나 destroy()로 리소스를 즉시 해제할 수 있으며, AbortSignal(비동기 작업의 중단을 알리는 신호)을 통해 세션 및 프롬프트를 중도 취소할 수 있다. 컨텍스트 윈도우 관리 역시 자동화되었다. contextUsage와 contextWindow를 통해 토큰 사용량을 확인하고, 오버플로 발생 시 시스템 프롬프트는 유지한 채 초기 대화 내용부터 자동으로 삭제하는 메커니즘이 작동한다. 현재 입출력 언어 설정은 expectedInputs와 expectedOutputs를 통해 영어(en), 일본어(ja), 스페인어(es)를 지원한다.
개발자가 바로 체감하는 변화는 데이터 흐름의 단순화와 보안성 강화다. 서버를 거치지 않으므로 개인정보 보호에 유리하며 응답 지연 시간이 획기적으로 줄어든다. AI 기반 검색, 뉴스 분류를 통한 맞춤 피드, 콘텐츠 필터링, 캘린더 일정 생성, 연락처 추출 같은 기능을 서버 인프라 구축 없이 브라우저 단에서 구현할 수 있게 되었다. 교차 Origin iframe(웹페이지 안에 또 다른 웹페이지를 삽입하는 틀) 환경에서도 allow="language-model" 속성을 통해 접근 권한을 위임할 수 있다. 다만 웹 워커(백그라운드에서 실행되는 스크립트)에서는 현재 지원되지 않는다.
이제 AI는 호출하는 외부 서비스가 아니라 브라우저가 기본으로 제공하는 런타임 기능이 된다.




