한 사람과 한 에이전트가 함께 만든 브라우저, 20K줄의 코드로 완성

1 week ago 6

  • HTML과 CSS 렌더링이 가능한 브라우저를 단 3일 만에 한 사람과 한 LLM 에이전트가 Rust로 직접 구현
  • 외부 Rust 라이브러리 없이 Windows, macOS, Linux에서 동작하도록 설계
  • 프로젝트는 약 20,150줄의 코드로 완성되었으며, 스크롤·뒤로가기·헤드리스 모드 등 기본 기능 포함
  • 개발 과정은 Codex 에이전트와의 협업으로 진행되어, 사람은 조율과 검증을 담당하고 에이전트는 코드 작성 수행
  • 결과적으로 ‘한 사람 + 한 에이전트’ 조합이 다수의 에이전트보다 효율적임을 보여주는 사례로 제시

프로젝트 개요

  • 목표는 HTML과 CSS를 렌더링할 수 있는 기본 브라우저를 완전히 새로 만드는 것
    • JavaScript는 지원하지 않음
    • 개발자는 “재미 삼아” 시작했으며, LLM 에이전트(Codex)와 협업해 진행
  • 3일 내 완성, 외부 Rust 의존성 금지, 3대 OS 지원 등의 제약 조건을 설정
  • 브라우저는 자체 렌더링 엔진을 갖추고, 스크린샷 기능과 링크 클릭, 회귀 테스트 기능을 포함

Day 1 – 초기 구현

  • “Hello World” 렌더링에서 시작해 중첩 태그 처리스크린샷 기능을 추가
  • HTML/CSS 명세를 정의하고, E2E 테스트를 위해 이미지 비교 기능을 도입
  • 하루 만에 X11과 cURL을 이용해 웹사이트를 가져와 렌더링하는 수준까지 도달
    • 코드베이스는 약 7,500줄, 모든 파일은 1,000줄 이하 유지

Day 2 – 기능 확장

  • 테스트 중 창이 열리는 문제를 해결하기 위해 --headless 모드 추가
  • 창 크기 조정, 호환성, 성능, 폰트 렌더링 개선
  • 워크플로우는 웹사이트 스크린샷을 공유하고 Codex가 이를 재현하도록 하는 방식
    • 대부분의 코드는 에이전트가 작성, 사람은 검토 및 승인 담당

Day 3~4 – 완성 및 크로스플랫폼 지원

  • 스크롤, 디버그 로그, 뒤로가기 버튼 등 브라우저 필수 기능 추가
  • macOS와 Windows 지원을 구현하고 테스트 통과
  • CI 통합 및 릴리스 빌드 완료, 총 개발 시간은 약 72시간

결과 및 코드 통계

  • 최종 코드베이스는 약 20,150줄, 72개 파일로 구성
  • 주요 파일에는 layout, style, platform, browser 모듈 등이 포함
  • Cargo.lock이 비어 있음, 즉 외부 Rust 패키지 없이 완전 독립 실행 가능
  • GitHub에서 CI 빌드된 바이너리와 소스 코드를 직접 다운로드 가능

주요 교훈

  • 한 사람 + 한 에이전트 조합이 수천 개의 에이전트를 사용하는 것보다 효율적

  • 단일 에이전트가 장시간 하나의 코드베이스를 다루며 실질적 진전을 이룰 수 있음

  • 여러 사람이 각자 에이전트를 보유한 형태로 확장 가능성 존재

  • 속도를 늦추는 것이 오히려 더 빠르고 나은 결과를 낳을 수 있음

  • 에이전트를 조종하는 인간의 역할이 시스템 설계보다 더 중요할 수 있음

  • 결론적으로, “여러 에이전트를 투입하면 개발이 가속될까?”라는 질문에 대해
    단일 인간-에이전트 협업이 더 현실적이고 효율적일 수 있음을 보여주는 사례임

Read Entire Article