Bruno API Client: 오픈 소스 Postman 대안 (2026)
파일 시스템에 컬렉션을 저장하는 빠르고 Git 친화적인 API 클라이언트
Hypereal로 구축 시작하기
단일 API를 통해 Kling, Flux, Sora, Veo 등에 액세스하세요. 무료 크레딧으로 시작하고 수백만으로 확장하세요.
신용카드 불필요 • 10만 명 이상의 개발자 • 엔터프라이즈 지원
Bruno API Client: 오픈 소스 Postman 대안 (2026)
Postman의 클라우드 동기화 요구 사항, 계정 강제 또는 가격 책정 변경으로 인해 답답함을 느껴보셨다면 혼자가 아닙니다. Bruno는 근본적으로 다른 접근 방식을 취하는 오픈 소스 API 클라이언트입니다. 여러분의 API 컬렉션은 타인의 클라우드가 아닌, 여러분의 파일 시스템에 파일로 저장됩니다.
이 가이드는 설치, 핵심 기능, Postman과의 비교, 그리고 팀들이 전환하는 이유 등 2026년 기준 Bruno에 대해 알아야 할 모든 내용을 다룹니다.
Bruno가 존재하는 이유
Postman은 수년에 걸쳐 모델을 변경했습니다. 한때 단순한 데스크톱 앱이었던 것이 이제는 클라우드 계정을 요구하고, 팀 협업 기능을 강요하며, 많은 기능을 유료 등급으로 옮겼습니다. 특정 벤더에 종속(vendor lock-in)되지 않고 단순히 API를 테스트하고 싶은 개발자들에게 이는 번거로운 일입니다.
Bruno는 이를 해결하기 위해 만들어졌습니다. 핵심 원칙은 다음과 같습니다:
- 파일 시스템 기반 컬렉션. API 요청은 Bru 마크업 언어를 사용하는 일반 텍스트 파일로 저장됩니다. 클라우드도, 동기화도, 계정도 필요하지 않습니다.
- Git 친화적. 컬렉션이 파일이기 때문에 코드와 함께 버전을 관리할 수 있습니다.
- 오프라인 우선. Bruno는 인터넷 연결 없이도 완벽하게 작동합니다.
- 오픈 소스. MIT 라이선스입니다. 코드를 검사하고, 수정하고, 기여할 수 있습니다.
설치
Bruno는 macOS, Windows 및 Linux에서 사용할 수 있습니다.
데스크톱 앱
# macOS (Homebrew)
brew install bruno
# Windows (Chocolatey)
choco install bruno
# Windows (Scoop)
scoop install bruno
# Linux (Snap)
snap install bruno
# Linux (apt - Debian/Ubuntu)
sudo apt install bruno
또는 usebruno.com에서 직접 설치 프로그램을 다운로드하세요.
Bruno CLI
CI/CD 파이프라인 및 자동화 테스트를 위해 CLI를 설치하세요:
npm install -g @usebruno/cli
# 컬렉션 실행
bru run --env production
시작하기
컬렉션 생성
- Bruno를 열고 Create Collection을 클릭합니다.
- 컬렉션 파일이 저장될 파일 시스템의 폴더를 선택합니다. Git 추적을 위해 프로젝트 저장소 내부의 위치를 선택하세요.
- 컬렉션 이름을 입력합니다(예: "My API").
Bruno는 다음과 같은 폴더 구조를 생성합니다:
my-api/
bruno.json # 컬렉션 설정
environments/
development.bru # 환경 변수
production.bru
users/
get-all-users.bru # 개별 요청
create-user.bru
get-user-by-id.bru
첫 번째 요청 생성
- 사이드바에서 컬렉션을 마우스 오른쪽 버튼으로 클릭합니다.
- New Request를 선택합니다.
- 이름을 입력하고 HTTP 메서드를 선택합니다.
.bru 파일의 모습은 다음과 같습니다:
meta {
name: Get All Users
type: http
seq: 1
}
get {
url: {{baseUrl}}/api/users
body: none
auth: bearer
}
auth:bearer {
token: {{authToken}}
}
headers {
Content-Type: application/json
Accept: application/json
}
assert {
res.status: eq 200
res.body.length: gt 0
}
tests {
test("should return users array", function() {
const data = res.getBody();
expect(data).to.be.an('array');
expect(data.length).to.be.greaterThan(0);
});
}
Bru 언어는 사람이 읽을 수 있고 diff 확인이 용이하여 버전 관리에 최적격입니다.
환경 설정(Environments)
환경 설정을 통해 개발, 스테이징, 운영 변수 간에 전환할 수 있습니다.
# environments/development.bru
vars {
baseUrl: http://localhost:3000
authToken: dev-token-12345
}
# environments/production.bru
vars {
baseUrl: https://api.example.com
authToken: {{process.env.PROD_AUTH_TOKEN}}
}
Bruno 인터페이스의 오른쪽 상단 드롭다운에서 환경을 전환하세요.
핵심 기능
스크립팅
Bruno는 요청 전(pre-request) 및 요청 후(post-request) 스크립트를 위해 JavaScript를 지원합니다.
// 요청 전 스크립트
const timestamp = Date.now();
bru.setVar("timestamp", timestamp);
// 요청 후 스크립트
const response = res.getBody();
bru.setVar("userId", response.id);
어설션(Assertions)
내장된 어설션을 사용하면 전체 테스트 스크립트를 작성하지 않고도 응답을 검증할 수 있습니다.
assert {
res.status: eq 200
res.body.data.id: isNumber
res.body.data.email: contains @
res.responseTime: lt 500
}
컬렉션 러너 (Collection Runner)
컬렉션의 모든 요청을 순차적 또는 병렬로 실행합니다:
- 컬렉션을 마우스 오른쪽 버튼으로 클릭합니다.
- Run Collection을 선택합니다.
- 환경을 선택합니다.
- 러너 출력창에서 결과를 확인합니다.
Postman에서 가져오기
Postman에서 마이그레이션하는 방법은 간단합니다:
- Postman 컬렉션을 JSON(Collection v2.1)으로 내보냅니다.
- Bruno에서 File > Import Collection으로 이동합니다.
- Postman Collection을 선택하고 내보낸 파일을 선택합니다.
- Bruno가 선택한 폴더의 모든 항목을
.bru파일로 변환합니다.
# Postman 컬렉션이 Git 추적 가능한 파일이 됩니다
git add my-api/
git commit -m "Import API collection from Postman"
Bruno vs Postman: 전체 비교
| 기능 | Bruno | Postman |
|---|---|---|
| 가격 | 무료 (오픈 소스) | 무료 등급 + 유료 플랜 (사용자당 월 $14-$49) |
| 저장소 | 로컬 파일 시스템 | 클라우드 (계정 필요) |
| Git 통합 | 기본 지원 (텍스트 파일) | 제한적 (JSON 내보내기/가져오기) |
| 오프라인 모드 | 모든 기능 지원 | 클라우드 없이는 제한적 |
| 계정 필요 여부 | 아니요 | 예 (2023년 기준) |
| 컬렉션 포맷 | .bru (가독성 높음) |
JSON (장황함) |
| 스크립팅 | JavaScript | JavaScript |
| 환경 변수 | 파일 기반 | 클라우드 동기화 |
| CI/CD CLI | @usebruno/cli (무료) |
Newman (무료) + 모니터링은 유료 |
| 팀 협업 | Git (PR, 브랜치) | 내장 기능 (클라우드 기반) |
| API 문서화 | 내장되지 않음 | 내장 기능 (유료) |
| Mock 서버 | 커뮤니티 플러그인 | 내장 기능 (유료) |
| 성능 | 빠름 (경량) | 무거움 (Electron + 클라우드) |
| 개인정보 보호 | 모든 데이터 로컬 유지 | Postman 서버에 데이터 저장 |
Postman이 여전히 나은 경우
별도의 설정 없이 내장된 클라우드 협업, API 문서 생성, Mock 서버를 원하는 팀에게는 여전히 Postman이 유리합니다. 팀이 이미 Postman의 워크플로우 기능에 의존하고 있다면 전환 비용이 가치가 없을 수도 있습니다.
Bruno가 더 나은 경우
다음과 같은 경우 Bruno가 더 나은 선택입니다:
- API 컬렉션을 코드와 함께 버전 관리하고 싶은 경우
- 오프라인에서 자주 작업하는 경우
- 데이터 프라이버시(클라우드 의존성 없음)를 중요하게 생각하는 경우
- 강제적인 계정 요구 사항이 싫은 경우
- 빠르고 가벼운 도구를 원하는 경우
- 모든 작업에 Git 기반 워크플로우를 사용하는 경우
CI/CD를 위한 Bruno CLI
Bruno CLI를 사용하면 CI/CD 파이프라인에서 컬렉션을 실행할 수 있습니다:
# .github/workflows/api-tests.yml
name: API Tests
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm install -g @usebruno/cli
- run: bru run --env production --output results.json
working-directory: ./api-collection
- name: Upload results
uses: actions/upload-artifact@v4
with:
name: api-test-results
path: ./api-collection/results.json
CLI 옵션
| 명령어 | 설명 |
|---|---|
bru run |
현재 컬렉션의 모든 요청 실행 |
bru run --env <name> |
특정 환경으로 실행 |
bru run --output <file> |
결과를 파일로 저장 |
bru run request.bru |
특정 요청 실행 |
bru run folder/ |
폴더 내 모든 요청 실행 |
bru run --recursive |
모든 하위 폴더의 요청 실행 |
고급 팁
비밀 값(Secrets) 관리
비밀 값을 Git에 커밋하지 마세요. 환경 변수를 사용하세요:
# environments/production.bru
vars {
baseUrl: https://api.example.com
}
vars:secret [
authToken
]
Secret 변수는 런타임에 입력을 요청하며 .bru 파일에 저장되지 않습니다.
대규모 컬렉션 구성
규모가 큰 API의 경우 리소스별로 컬렉션을 구성하세요:
my-api/
bruno.json
environments/
auth/
login.bru
refresh-token.bru
logout.bru
users/
list-users.bru
create-user.bru
update-user.bru
delete-user.bru
orders/
list-orders.bru
create-order.bru
이 방식은 API 경로와 깔끔하게 매칭되어 탐색이 직관적입니다.
자주 묻는 질문 (FAQ)
Bruno를 GraphQL에 사용할 수 있나요? 네. Bruno는 GraphQL 요청을 기본적으로 지원합니다. 새 요청을 생성할 때 요청 유형으로 "GraphQL"을 선택하세요.
Bruno는 WebSocket 테스트를 지원하나요? 최신 버전에서 WebSocket 지원이 가능합니다. 최신 기능은 Bruno 변경 로그를 확인하세요.
Bruno는 정말 무료인가요? Bruno 핵심 앱은 무료이며 오픈 소스(MIT 라이선스)입니다. 비주얼 Git diff 및 비밀 값 관리와 같은 고급 기능을 제공하는 유료 "Golden Edition"이 있지만, 무료 버전으로도 대다수의 사용 사례를 충족할 수 있습니다.
팀원들과 함께 Bruno를 사용할 수 있나요? 네. 컬렉션이 파일로 구성되어 있으므로 Pull Request, 코드 리뷰, 브랜치 생성 및 병합 등 Git을 통해 팀 협업이 자연스럽게 이루어집니다.
마치며
Bruno는 개발자들이 원해왔던 API 클라이언트입니다. 빠르고, 오프라인 우선이며, Git 친화적이고, 무료입니다. Postman의 클라우드 요구 사항에 지쳤고 API 컬렉션을 코드와 함께 관리하고 싶다면, Bruno는 2026년 현재 이용 가능한 최고의 대안입니다.
깔끔한 데스크톱 UI, Bru 마크업 언어, 그리고 CI/CD를 위한 CLI의 조합은 개인 개발자와 팀 모두에게 완벽한 도구입니다.
미디어 생성을 위한 AI API를 사용하는 애플리케이션을 빌드하고 있다면, 신용카드 필요 없이 Hypereal AI를 무료로 체험해 보세요. Bruno는 Hypereal API를 프로젝트에 테스트하고 통합하는 데 훌륭한 도구입니다.
