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과의 비교
| 비교 항목 | Bruno | Postman |
|---|---|---|
| 데이터 저장 위치 | 로컬 파일 시스템 (.bru) | 독자적 원격 클라우드 서버 |
| 버전 관리 방식 | Git 리포지토리 직접 연동 | 클라우드 워크스페이스 내 동기화 |
| 로그인/계정 요구 | 불필요 (완전 오프라인) | 클라우드 기능 사용 시 필수 |
| 라이선스 및 비용 | 오픈소스 (MIT 라이선스) | 프리미엄/구독형 유료 모델 |
| 주요 적합 환경 | Git 중심 개발팀, 보안 민감 프로젝트 | 전사적 API 생명주기 관리 및 비개발자 협업 |
관련 문서
- Scalar: OpenAPI 기반 차세대 문서화 및 브라우저 내장 대화형 테스팅 도구
- 데이터 주권 (Data Sovereignty): 데이터 통제권과 프라이버시 보호 원칙
- Code Server: 웹 브라우저 기반 독립 개발 환경