Bruno (브루노)

개요: Bruno는 API 컬렉션 데이터를 로컬 파일 시스템에 마크다운 유사 평문(.bru)으로 저장하여 Git을 통해 버전 관리 및 협업을 수행할 수 있도록 지원하는 오픈소스 로컬 우선(Local-first) API 클라이언트이다.

배경 및 등장 맥락

Postman 등 기존 상용 API 클라이언트 플랫폼들이 오프라인 모드(Scratchpad)를 축소하고 강제 클라우드 로그인 및 원격 동기화 정책을 도입함에 따라, 개발 조직 내에서 API 키 및 내부 엔드포인트 정보의 외부 유출 우려와 벤더 종속성 문제가 대두되었다.

Bruno는 이러한 클라우드 중심 폐쇄적 구조에 반대하여, ‘오프라인 우선(Offline-first)‘과 ‘Git 친화적 협업(Git-friendly)‘을 핵심 철학으로 삼고 개발되었다.

주요 특징 및 아키텍처

  • 평문 파일 기반 저장 (Bru DSL): API 요청 정보(URL, Headers, Params, Body, Script 등)를 JSON 기반의 거대한 단일 파일 대신, 읽고 편집하기 쉬운 전용 선언형 평문 형식(.bru)으로 저장한다.
  • Git 네이티브 버전 관리: 컬렉션 디렉터리가 소스 코드 리포지토리 내에 직접 위치할 수 있으므로, Git 브랜치 분기, 커밋, 풀 리퀘스트(PR), 코드 리뷰 워크플로우를 소스 코드와 동일하게 적용할 수 있다.
  • 클라우드 비의존 및 데이터 주권 보장: 계정 생성이나 원격 클라우드 서버 동기화가 강제되지 않으며, 모든 데이터는 개발자의 로컬 디스크에만 보존되어 사내 민감 데이터 유출 위험을 원천 차단한다.
  • Bru CLI를 통한 자동화 테스팅: @usebruno/cli를 통해 터미널 환경이나 CI/CD 파이프라인에서 API 테스트 스위트를 구동하고 결과 리포트를 생성할 수 있다.
  • 마이그레이션 및 스크립팅 지원: 기존 Postman 및 Insomnia 컬렉션의 불러오기(Import)를 지원하며, Node.js 기반의 JavaScript 사전/사후 요청 스크립트와 Assertion 작성이 가능하다.

Postman과의 비교

비교 항목BrunoPostman
데이터 저장 위치로컬 파일 시스템 (.bru)독자적 원격 클라우드 서버
버전 관리 방식Git 리포지토리 직접 연동클라우드 워크스페이스 내 동기화
로그인/계정 요구불필요 (완전 오프라인)클라우드 기능 사용 시 필수
라이선스 및 비용오픈소스 (MIT 라이선스)프리미엄/구독형 유료 모델
주요 적합 환경Git 중심 개발팀, 보안 민감 프로젝트전사적 API 생명주기 관리 및 비개발자 협업

관련 문서