4P by GN⁺ | ★ favorite | 댓글 2개
  • Jam은 제품 관리자 같은 비개발자가 모호하고 재현하기 어려운 버그 티켓을 만들지 않도록, 개발자 도구 정보와 세션 영상을 하나의 링크로 묶어 공유하게 함
  • 기존 버그 보고는 스크린샷 밖의 정보가 빠지거나 “동작하지 않음” 같은 표현이 모호해, Jira 댓글로 재현 방법을 확인하는 동안 수정이 지연되기 쉬움
  • Jam은 공유 가능한 HAR 파일처럼 세션 영상과 동기화된 개발자 도구 정보를 제공하고, 방금 발생한 버그는 DOM을 30초 영상처럼 즉시 재생할 수 있음
  • 자동 재현 단계 작성, Chrome DevTools 단축키, GraphQL 응답에서 mutation 이름과 오류를 뽑아내는 기능으로 디버깅 시간을 줄임
  • 제품은 출시 후 2년이 지났고 Jam으로 200만 개 이상의 버그가 수정됐으며, 무료 플랜을 유지하면서 기업용 기능은 유료 티어로 제공함

Jam이 겨냥한 버그 보고의 빈틈

  • Jam은 제품 관리자 같은 비개발자가 엔지니어에게 유용한 버그 티켓을 만들기 어렵다는 문제에서 출발한 웹 디버거임
  • 버그 보고에서 자주 생기는 병목은 정보 손실과 모호한 표현임
    • 스크린샷을 첨부해도 엔지니어에게 필요한 정보가 화면 경계 밖에 있을 수 있음
    • “동작하지 않음”만으로는 오류가 반환된 것인지, UI가 반응하지 않은 것인지 알기 어려움
    • 재현 방법을 확인하려고 Jira의 비동기 댓글을 여러 차례 주고받는 동안 수정 속도가 느려짐
  • 소프트웨어 개발 방식은 크게 바뀌었지만, 버그를 캡처하고 보고하는 방식은 여전히 수동적이고 손실이 많음

개발자 도구와 세션 영상을 한 링크로 공유

  • Jam은 개발자 도구 + 영상을 하나의 링크로 묶어 공유함
    • 세션 녹화 영상과 동기화된 공유 가능한 HAR 파일에 가까운 형태임
    • 버그가 방금 발생했다면 DOM을 30초짜리 영상처럼 재생하는 즉시 리플레이를 공유할 수 있음
  • 디버깅 편의를 위해 다음 기능을 제공함
    • Jam이 자동으로 재현 단계를 작성함
    • Jam의 개발자 도구는 Chrome DevTools에서 익숙한 키보드 단축키를 사용함
    • GraphQL 응답을 파싱해 mutation 이름과 오류를 추출함
      • GraphQL은 모든 요청에 하나의 엔드포인트를 쓰고 항상 200을 반환하기 때문에, 디버깅 시 원하는 요청을 찾으려면 GraphQL 요청을 일일이 살펴봐야 하는 경우가 있음
  • Jam은 제품 출시 후 2년이 지났고, 사용자들은 Jam으로 200만 개 이상의 버그를 수정함

무료 플랜과 팀의 배경

  • Jam은 영구 무료 사용이 가능하며, 실제 회사에 필요한 기능은 유료 티어로 제공함
    • 공동창업자 2명과 팀의 약 절반은 전 Cloudflare 출신임
    • Cloudflare에서 무료 티어를 통해 많은 피드백을 받았던 경험 때문에 Jam에서도 큰 무료 플랜을 유지하려 함
  • Jam은 엔지니어를 채용 중이며, 관심 있는 사람에게 jam.dev/careers를 안내함

댓글과 토론

원문은 'ex-Cloudflare Team' 인데 GN+ 제목은 구글 직원으로 되어있네요.

DeepL도 'We' 가 들어간 문장을 유니티라고 잘못 번역 하던데...

갑자기 언어모델들 한국어 데이터셋이 궁금해지네요 🤔

음. 이건은 정말 신기하게 번역이 되었네요. 어차피 중요한 내용도 아닌듯해서 그 부분은 제거해 두었습니다.