DEV Community

Cover image for httpYac이란 무엇인가요?
Rihpig
Rihpig

Posted on • Originally published at apidog.com

httpYac이란 무엇인가요?

httpYac을 찾고 있다면, 아마 Git에 저장한 일반 텍스트 HTTP 요청을 VS Code에서 실행하고 CI에서도 같은 파일을 재사용하는 방식을 원할 가능성이 큽니다. httpYac은 바로 그 역할을 하는 도구입니다. VS Code 확장 프로그램과 Node.js CLI로 제공되는 .http/.rest 파일 러너이며, 이 글에서는 실제 사용 흐름 중심으로 정리합니다. 더 넓은 API 테스트 관점이 필요하면 API 테스트 가이드도 함께 보세요.

지금 Apidog을 사용해보세요

httpYac이란?

httpYac.http 파일 기반의 오픈 소스 HTTP 클라이언트입니다. 요청을 텍스트로 작성한 뒤:

  • VS Code에서 바로 실행하거나
  • 터미널에서 CLI로 실행할 수 있습니다

프로젝트는 GitHub에 있고, 전체 문서는 httpyac.github.io에서 확인할 수 있습니다.

핵심 흐름은 단순합니다.

  1. 요청을 코드 옆의 텍스트 파일에 둡니다.
  2. Git으로 버전 관리합니다.
  3. 로컬과 CI에서 같은 파일을 실행합니다.

이 방식이 httpYac의 가장 큰 장점입니다.

구성 요소

  • VS Code 확장 프로그램: 요청 위의 실행 버튼, 응답 미리보기, 환경 전환을 제공합니다.
  • CLI (httpyac): 동일한 파일을 헤드리스로 실행합니다. CI에서 유용합니다.

두 방식 모두 같은 .http 파일을 사용하므로 별도 내보내기 과정이 없습니다.

.http 파일 형식

.http 파일은 ###로 요청을 구분합니다. 각 요청은 실제 HTTP 요청과 거의 같은 형태로 읽힙니다.

### Get a user
GET https://api.example.com/users/42
Accept: application/json

### Create a user
# @name createUser
POST https://api.example.com/users
Content-Type: application/json

{
  "name": "Ada Lovelace",
  "email": "ada@example.com"
}

### Use a value from the previous response
GET https://api.example.com/users/{{createUser.response.body.$.id}}
Authorization: Bearer {{token}}
Enter fullscreen mode Exit fullscreen mode

핵심 문법

  • ### : 요청 구분
  • # @name : 요청 이름 지정
  • {{...}} : 변수 또는 이전 응답 값 참조

이 형식은 REST Client 확장 프로그램과도 상당 부분 호환됩니다.

변수와 환경

httpYac은 아래에서 변수를 읽습니다.

  • .env
  • http-client.env.json
  • 요청 파일 내부의 인라인 변수

예를 들어 환경별 호스트를 이렇게 분리할 수 있습니다.

@host = https://api.staging.example.com

### Login
# @name login
POST {{host}}/auth/login
Content-Type: application/json

{ "user": "{{USERNAME}}", "pass": "{{PASSWORD}}" }
Enter fullscreen mode Exit fullscreen mode

실무에서는 보안 정보는 .env에 두고, 요청 파일은 Git에 커밋하는 방식을 많이 씁니다. CI에서는 동일한 변수를 환경 변수나 파이프라인 시크릿에서 주입하면 됩니다.

스크립팅과 어설션

httpYac은 단순 전송 도구가 아니라, 요청 전후로 JavaScript를 실행할 수 있습니다. 이를 통해 다음을 처리할 수 있습니다.

  • 사전 요청 데이터 생성
  • 응답 상태 검증
  • 토큰 추출
  • 응답 본문 검증
### Login and capture token
# @name login
POST {{host}}/auth/login
Content-Type: application/json

{ "user": "{{USERNAME}}", "pass": "{{PASSWORD}}" }

{{
  test("status is 200", () => {
    client.assert.strictEqual(response.statusCode, 200);
  });
  exports.token = response.parsedBody.token;
}}
Enter fullscreen mode Exit fullscreen mode

위처럼 저장한 token은 다음 요청에서 {{token}}으로 재사용할 수 있습니다.

CI에서 httpYac 실행하기

CLI를 사용하면 로컬에서 검증한 요청을 CI에서도 그대로 실행할 수 있습니다.

npm install -g httpyac

# 단일 파일 실행
httpyac send api/users.http

# 폴더 내 모든 요청 실행, 환경 지정, 어설션 실패 시 실패 처리
httpyac send --all --env staging "api/**/*.http"
Enter fullscreen mode Exit fullscreen mode

CI에서 체크해야 할 점

  • 어설션 실패 시 httpyac은 0이 아닌 종료 코드를 반환합니다.
  • GitHub Actions, GitLab CI, Jenkins에 바로 연결할 수 있습니다.
  • JUnit 스타일 리포트를 사용하면 CI 대시보드에서 결과를 보기 좋게 관리할 수 있습니다.

즉, VS Code에서 실행하던 요청 파일이 곧바로 파이프라인의 테스트가 됩니다.

언제 httpYac을 쓰면 좋은가

다음 조건에 해당하면 잘 맞습니다.

상황 httpYac이 적합한 이유
VS Code를 중심으로 작업함 요청을 코드 옆에서 바로 실행 가능
요청을 Git에서 관리하고 싶음 일반 텍스트라 diff와 리뷰가 쉬움
팀이 코드 기반 워크플로우에 익숙함 스크립팅과 .env 사용이 자연스러움
소수의 집중적인 API 검증만 필요함 가볍고 빠르게 도입 가능
이미 REST Client 파일을 사용 중임 형식이 유사해 이동이 쉬움

반대로 다음 경우에는 덜 적합합니다.

  • 비개발자도 요청을 작성해야 할 때
  • 요청 수가 많아 시각적 관리가 필요할 때
  • 공유 환경, 목킹, 문서화가 한곳에 모여야 할 때
  • 팀 단위 협업과 통합 관리가 더 중요할 때

httpYac vs GUI/CI 플랫폼

httpYac은 텍스트 파일 중심 도구입니다. Apidog은 GUI 중심이면서 CI에서도 실행 가능한 플랫폼입니다. 둘은 해결하는 문제가 다릅니다.

중요한 점 하나는, Apidog은 .http 파일을 기본적으로 실행하거나 파싱하지 않는다는 것입니다. 반면 httpYac은 .http 파일이 신뢰 가능한 소스일 때 그 파일을 직접 실행하는 데 강점이 있습니다.

기능 httpYac Apidog
요청 소스 Git의 .http / .rest 파일 시각적 요청, OpenAPI 가져오기
편집 인터페이스 VS Code 또는 텍스트 편집기 폼 필드와 스키마 인식 빌더
변수/환경 .env, JSON, 인라인 변수 공유 가능한 관리형 환경
어설션 요청 스크립트의 JavaScript 시각적 어설션 및 스크립팅
CI 실행 httpyac send apidog run
목킹/문서 내장되지 않음 내장 목 서버, 자동 문서 생성
적합한 팀 Git 네이티브 텍스트 워크플로우 선호 설계, 테스트, 목킹, 문서를 한곳에서 관리하고 싶음

시각적 워크플로우가 필요하다면 Apidog이 더 적합할 수 있습니다. 요청 작성, 정리, 실행, CI 검증까지 한 워크스페이스에서 처리할 수 있기 때문입니다. 관련 내용은 apidog run 참조에서 확인할 수 있습니다. 목 서버가 필요하다면 REST 엔드포인트 목킹 도구도 참고할 만합니다.

정리하면:

  • httpYac: Git의 텍스트 파일, 편집기에서 실행, CI 재실행이 핵심일 때
  • Apidog: 시각적 협업, 관리형 환경, 목킹, 문서화까지 함께 필요할 때

자주 묻는 질문

httpYac은 무료인가요?

네. httpYac은 MIT 라이선스의 오픈 소스입니다. VS Code 확장 프로그램과 CLI 모두 무료로 사용할 수 있습니다.

REST Client와 뭐가 다른가요?

둘 다 .http 파일 형식을 사용합니다. 차이점은 httpYac이 독립형 CLI와 CI 실행, 더 넓은 환경 처리, 더 풍부한 스크립팅/어설션 모델을 제공한다는 점입니다.

VS Code 안에서만 쓸 거라면 REST Client도 충분할 수 있습니다. 하지만 동일한 파일을 파이프라인에서 실행해야 한다면 httpYac이 더 적합합니다. 편집기 도구를 더 보고 싶다면 API 테스트를 위한 VS Code 플러그인 목록도 참고하세요.

httpYac이 Postman 대체가 될 수 있나요?

개발자 중심의 텍스트 기반 워크플로우라면 많은 부분을 대체할 수 있습니다. 다만 GUI, 공유 컬렉션, 내장 목킹까지 필요하다면 Apidog 같은 플랫폼이 더 잘 맞을 수 있습니다. 비교가 필요하면 API 테스트 클라이언트도 확인해 보세요.

GraphQL과 gRPC도 지원하나요?

httpYac은 GraphQL 요청과 여러 프로토콜을 지원합니다. 다만 지원 범위는 버전별로 달라질 수 있으니 최신 문서를 확인하는 것이 좋습니다. REST 요청의 경우에는 일반적인 메서드, 헤더, 본문, 인증 흐름을 기본적으로 처리할 수 있습니다.

결론

httpYac은 명확한 사용 시나리오에 잘 맞는 도구입니다.

  • 요청을 텍스트 파일로 관리하고
  • VS Code에서 실행하고
  • CI에서 같은 파일을 다시 실행하고 싶다면

좋은 선택입니다.

반면 팀 단위로 시각적 협업, 환경 관리, 목킹, 문서화까지 함께 필요하다면 Apidog이 더 적합할 수 있습니다. Apidog 다운로드apidog run으로 실행하거나, 로컬 검증용으로 httpYac을 유지하면서 Apidog을 팀의 중심 워크스페이스로 쓰는 방식도 가능합니다.

Top comments (0)