Show HN: 전 Cloudflare 팀이 4년간 만든 웹 디버거 Jam
(news.ycombinator.com)- 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를 안내함