Select a display theme:

필요한 기능 만든김에 오픈소스 까지 [Pulse]

4 번 조회

얼마 전 Pulse 라는 CLI tool 을 NPM 에 게시 및 오픈소스로 공개 하였습니다.

그렇게 거창한 기능을 가지고 있지는 않고

  1. API 를 호출
  2. 예상한 status 가 맞는지 확인
  3. DB에 저장

이라는 간단한 구조를 가지고 있습니다.

이미 세상에는 Postman, Insomnia, Hoppscotch 등의 훌륭한 솔루션이 존재하고 vscode 에서는 REST Client 같은 확장프로그램이 Jetbrain 에서는 .http 을 지원 지원하는 등 명백한 상위 호환이 존재하지만 굳이 만든 이유를 얘기 하자면 오래전 부터 지속적으로 API 응답에 대한 모니터링에 대한 필요성을 느끼고 있었고 종종 테스트를 위해 수십개의 JSON RPC 를 호출해야 하는 경우가 있었습니다.

이러한 필요성을 느끼던 중 (Postman 결제를 못받아서) 아래와 같은 고민도 동시에 하게 되었습니다.

  • 특정 Editor, IDE 에 종속적이지 않고 싶다
    • 이런 기능 때문에 사용하는 개발툴을 통일하고 싶진 않다
  • Local, Github Action, Jenkins 등 다양한 환경에서 사용하고 싶다
  • Postman 등의 유료 결제가 불가능한 환경에서도 사용하고 싶다
    • API 스펙 변경에 대한 동기화가 자동으로 잘 되면 좋겠다 (git 등으로)
    • 변경사항에 대한 기록이 남으면 좋겠다 (git 등으로)
    • 잘 모르는 사람이 잘못 바꾸는 경우를 견제하고 싶다 (PR 처럼)
  • 응답값의 스키마 검증을 위해 많은 추가 코드를 작성하고 싶지 않다
  • 추후 Status Page 등 구현을 위해 언제 실패 했는지, 응답은 어떻게 왔는지 기록하고 싶다 > DB, JSON

여러 오픈소스를 확인 해봤지만 뭔가 딱 마음에 드는게 없어서 주말에 직접 만들어보게 되었습니다. 처음에는 별거 없어서 혼자 사용할까 싶다가 세상 어딘가 비슷한 (결제를 못받은) 사람이 있지 않을까 해서 오픈소스로 공개 및 NPM 에 게시하게 되었습니다.

지금은 여러 요청을 보내고 status code 만 확인하게 되어 있지만 응답값의 스키마 또한 검증할 수 있게 하려 하고 있습니다. 어느정도 작업은 완료 했는데 작업 중 사용하던 라이브러리의 버그로 생각되는 부분을 찾아서 해당 부분에 대해 고민하느라 기능 추가가 늦어지고 있습니다.

만들고 얼마 뒤 회사에서 Postman 결제를 했다는 슬픈전설

pulse npm pulse download

Github : https://github.com/kim-yeonjoong/pulse

NPM: https://www.npmjs.com/package/@yeonjoong/pulse