One Human + One Agent = One Browser From Scratch
Blog

One Human + One Agent = One Browser From Scratch

2026.01.28
·Web·by web-ghost
#LLM#Agent#Browser#Rust#AI

핵심 포인트

  • 1한 명의 인간과 LLM agent인 Codex가 협력하여 약 3일(~70시간) 만에 HTML과 CSS를 렌더링하는 기본 Browser를 처음부터 성공적으로 구축했습니다.
  • 2이 프로젝트는 약 20,000라인의 Rust 코드로 Linux, macOS, Windows를 지원하며 외부 Rust dependencies 없이 빌드되어 작동하는 브라우저를 완성했습니다.
  • 3연구는 한 명의 인간과 한 명의 agent의 협업이 수많은 agent를 투입하는 것보다 훨씬 효과적일 수 있음을 보여주며, 자율 코딩의 확장성에 대한 새로운 관점을 제시합니다.

"One Human + One Agent = One Browser From Scratch" 논문은 인간과 대규모 언어 모델(LLM) 에이전트의 협력을 통해 단 3일(총 약 70시간) 만에 기본적인 웹 브라우저를 처음부터 구축하는 실험을 상세히 설명합니다. 이 프로젝트의 주요 목표는 HTML 및 CSS 렌더링 기능(JavaScript 지원 없음)을 갖춘 크로스 플랫폼 브라우저를 개발하는 것이었습니다.

핵심 방법론 (Core Methodology):

저자는 "하나의 인간 두뇌와 하나의 LLM 에이전트 두뇌"의 시너지를 강조하며, 수많은 에이전트를 동원하는 것보다 효율적이라고 주장합니다. 사용된 에이전트는 "Codex"였습니다. 개발 과정은 다음과 같은 요구사항을 충족시키도록 설정되었습니다.

  1. 시간 제약: 3일 이내 완료.
  2. 의존성 제약: 타사 Rust 라이브러리/종속성 사용 금지. OS에 기본 제공되는 도구만 허용.
  3. 플랫폼 호환성: Windows, macOS, Linux에서 실행 가능.
  4. 렌더링 능력: 특정 웹사이트(블로그, Hacker News)를 렌더링.
  5. 코드 품질: 항상 컴파일 및 빌드 가능하며, 인간이 읽을 수 있어야 함(코드 품질이 최우선은 아님).

일별 개발 과정 (Day-by-Day Development Process):

  • Day 1:
    • 초기에는 "Hello World" 렌더링부터 시작하여 중첩 태그 렌더링 기능을 추가했습니다.
    • 에이전트가 진행 상황을 확인할 수 있도록 스크린샷 기능을 구현하고, 이를 활용한 "회귀(regression)" 또는 "E2E(End-to-End)" 테스트를 도입했습니다.
    • HTML/CSS 사양을 에이전트에게 제공했으나, 에이전트가 이를 많이 활용하지는 않았습니다.
    • Codex와 함께 X11 및 cURL을 통해 웹사이트를 가져와 렌더링하는 기능을 개발했습니다. 이 시점에서 코드는 약 7,500줄에 달했으며, Cargo.lock 파일은 비어 있었습니다 (외부 종속성이 없음을 의미). 파일들은 각각 1,000줄 미만으로 유지되었습니다.
  • Day 2:
    • 테스트 실행 시 창이 뜨는 불편함을 해소하기 위해 --headless 플래그를 추가했습니다.
    • 창 크기 조절, 다양한 호환성 문제, 성능 이슈를 수정하고 폰트/텍스트 렌더링을 크게 개선했습니다.
    • 작업 흐름은 인간이 웹사이트를 선택하고, JavaScript가 없는 스크린샷을 공유한 다음, Codex에게 이를 재현하도록 요청하는 방식이었습니다. 대부분의 작업은 에이전트가 수행했고, 인간은 에이전트의 완료 통보 시 확인하는 역할을 했습니다.
  • Day 3 (및 Day 4):
    • 대규모 변경 및 새로운 기능 지원이 이루어졌습니다. 추가적인 회귀 테스트, 성능 문제 및 충돌을 수정했습니다.
    • 스크롤 기능과 디버그 로그, 뒤로 가기 버튼 지원이 추가되었습니다.
    • macOS 지원을 시작하여 창을 열고 테스트를 통과시키는 데 성공했습니다.
    • 이후 Windows 지원도 같은 과정으로 추가되었습니다.
    • 넷째 날은 주로 세 플랫폼의 CI(Continuous Integration)를 수정하고 폴리싱하여 최종 릴리스를 준비했습니다. 총 소요 시간은 약 70시간으로, 72시간(3일 * 24시간) 이내에 완료되었습니다.

결과 및 시사점 (Results and Takeaways):

최종 결과물은 약 20,000줄의 코드로 구성된 크로스 플랫폼 브라우저였습니다. cloc 유틸리티를 통한 코드 라인 수는 20150 라인으로 집계되었습니다. 이 브라우저는 비록 "훌륭하거나 좋다고 할 수는 없지만 작동"하며, 한 명의 인간과 한 명의 에이전트가 브라우저를 처음부터 구축할 수 있음을 입증했습니다.

주요 시사점은 다음과 같습니다.

  • 하나의 인간이 하나의 에이전트를 사용하는 것이 수많은 에이전트를 사용하는 것보다 훨씬 효과적입니다.
  • 하나의 에이전트는 장시간 단일 코드베이스에서 실질적인 진전을 이루며 작업할 수 있습니다.
  • 이러한 접근 방식은 각자 에이전트를 갖춘 여러 인간에게도 확장될 수 있습니다.
  • 때로는 느린 것이 더 빠른 결과를 가져오고 더 나은 결과를 낳을 수 있습니다.
  • 에이전트의 작동 방식이나 설정보다 에이전트를 이끄는 인간의 역량이 더 중요할 수 있습니다.
  • "문제를 해결하기 위해 더 많은 에이전트를 투입하여 자율 코딩을 확장할 수 있는가?"라는 질문에 대한 답은 일부 예상보다 더 비관적일 수 있습니다.