PR을 제출할 수 없어서 직접 입사해 수정함
(skeptrune.com)- Mintlify의 검색 기능에서 경쟁 조건으로 인한 문제로 1년 이상 불편함이 있었음
- 기자는 Trieve의 창업자로, Mintlify의 검색 엔진 공급계약 업체였으나, 직접 코드에 접근이 안 돼 문제를 고칠 수 없었음
- Mintlify 입사 후 AbortController를 적용해 검색 쿼리 충돌 문제 해결함
- 오픈 소스였다면 외부에서 PR로 직접 빠르게 해결할 수 있다는 점을 강조함
- 작은 문제를 직접 고칠 수 있는 능력에서 만족감과 제품 향상 가치가 발생함
문제의 발견 : Mintlify의 검색 기능 결함
- Mintlify의 검색 기능에서 경쟁 조건(race condition) 문제와 관련된 버그로 인해 검색 결과 오류 현상이 발생함
- Trieve의 창업자로서 Mintlify에 검색 솔루션을 공급하는 입장이었으나, 실시간 검색 중 쿼리가 중단되지 않아 이전 검색 결과가 계속 나타나는 문제가 있었음
- 예전에도 Slack을 통해 Mintlify 측에 해당 이슈를 공유했으나, 우선순위에 밀려 고쳐지지 않은 채 남아 있었음
- 사용자 타이핑 도중 여러 번 검색 요청이 중복되며, 최종적으로 원치 않는 검색 결과가 보여 검색 품질의 저하로 이어졌음
- 검색 품질 이슈가 계속되면서, Trieve에도 부정적인 이미지를 남기는 상황이었음
문제 해결 과정
- Mintlify에 합류하게 되면서 직접적으로 코드베이스에 접근할 수 있게 됨
- 검색 함수 내에 AbortController를 구현하여, 이전 검색 쿼리를 즉시 중단하도록 개선함
- 이제 사용자가 타이핑할 때마다, 가장 최근의 검색 결과만 반영되므로, 항상 최신 상태의 정확한 결과를 확인할 수 있음
- 과거 Twitter에 단기간 입사해 작지만 중요한 UX 개선을 했던 George Hotz 사례와 비슷하게, 작은 불편을 직접 해결한 성취감을 느낌
- 문제 해결에 직접 뛰어드는 엔지니어 정신에 대한 동경, 그리고 그 방식을 통해 커리어 방향성을 확립하는 작은 성공 경험을 얻음
오픈 소스의 가치 재조명
- 개인적으로 오픈 소스 소프트웨어 개발과 활용을 선호함
- 오픈 소스라면, 외부 개발자가 직접 버그 수정이나 기능 개선 Pull Request(PR) 를 제출할 수 있는 구조였음
- 만약 Mintlify의 검색 기능이 오픈 소스였다면, 1년 동안 지속된 문제를 즉시 PR로 해결할 수 있었을 것임
- 폐쇄형 소스 모델의 경우, 코드 접근권이 있어야만 개선 가능하다는 한계점이 다시 부각됨
- 오픈 소스 환경의 '즉각적 권한 부여' 의 가치를 인정하면서도, 각 회사의 사업 모델 차이도 이해함
직접 개선의 보람
- Mintlify 검색 기능이 더 매끄럽고 반응성이 좋아진 원인은 바로 이 개선 덕분임을 언급함
- 오랜 기간 마음에 걸렸던 작은 버그를 직접 고침으로써, 제품 발전에 기여하는 만족감을 느낌
- 앞으로도 이런 작지만 의미 있는 개선 활동을 꾸준히 실천하는 계획임
- 제품을 전설적으로 만드는 것은 이런 반복적인 문제 해결 노력이 쌓여서 가능해짐
- 사소한 불편을 직접 고칠 수 있는 힘이 주는 성취감을 강조함
Hacker News 의견
-
예전에 Amazon 계정이 사기로 의심받아 정지된 적 있음, 오래전에 만든 계정이었는데 이메일과 전화번호를 여러 DB 유출로 삭제했었음, 채용된 뒤 내부적으로 Amazon의 안티-사기팀 담당자에게 연락하여 계정 해제를 빠르게 해결함, 고객지원으로 문의했을 땐 아무 소용 없었음
-
Amazon에서 가장 짜증나는 부분임, Reddit이나 다른 리뷰에서 제품을 찾으면 대개 amazon.com 링크를 타고 감, 이때 미국 달러 계정으로 전환하라고 하고, 주문하려면 다시 독일/유로 계정으로 바꿔야 함, 이 과정이 너무 번거로움, 지역마다 그냥 자유롭게 볼 수 있게 해주면 좋겠음, 주문하려고 할 때만 프로필을 바꾸라 하면 되지 않을까 생각함, 또 지역 내 판매자에게서 구매하는 옵션도 있으면 좋겠음
-
흥미로움, Google 입사 온보딩 때 망가진 폰을 아직도 가지고 있음, 내부적으로 아무도 신경 쓰지 않음, 직접 고칠 수 있는 툴이 있었지만, 허가 없이 쓸 경우 해고된다는 메시지도 붙어 있었음
-
Facebook 계정도 9개월간 해제 실패하다가 우연히 내부 일을 하게 되면서 바로 해제 경험 있음
-
인생에서도 이런 에픽한 순간을 겪고 싶음
-
나도 이런 행운이 있었으면 좋겠음, Amazon 계정을 잃어버린 이유가 내 국제전화번호의 맨 앞자리 하나가 잘못 기재되어서임, 이로 인해 문자 인증을 쓸 수 없었고, OTP 앱이 깔린 폰도 바로 전에 고장남
-
-
Google Maps가 날 채용해서 거리 단위를 km로만 나오게 해줄 수 있다면 연락처는 내 HN 프로필에 있음, 20년간 500번은 마일에서 km로 바꾼 것 같음, 사용자를 분석하는 회사가 이런 기본을 못한다는 게 말도 안 됨
-
500번이나 했다는 게 정말 말도 안 됨, 사용자 참여 저조로 A/B 테스트에서 실패하는 과정을 상상하게 됨, 7번 면접 보고 1개의 PR 올렸더니 이래 된 느낌임
-
지도 전체를 “실제 크기 1cm=1cm 모드”로 확대한 채 여행 전체에 적용하게 만든 담당자를 찾아서 한 대 때려주고 싶음, 아마도 수동 확대 시 차가 화면 밖으로 벗어나게 놔두고, “다시 중심” 누르면 원래대로 강제로 확대시키는 것까지 만든 사람도 동일인일 듯, 2005년 내비게이션도 이런 건 다 해결했었음
-
멕시코 여행 중에 로그인했는데도 Google Flights가 탭을 새로 열 때마다 달러에서 페소로 바꿔버림, 진짜 신경 안 쓰는 듯함
-
Google에서 10년 전에 일할 때 내부 피드백 폼으로 이 문제를 리포트했는데 아무 답이 없었음, 그 후 매년 Google Maps 피드백으로 이 버그 신고했음, 어떤 해에는 두 번이나 보냄, 이제는 진짜 부끄러운 버그가 됐음
-
gmaps 관련 일도 관심 있음, 1시간 이상 걸리는 여정은 미리 돌아오는 길도 캐시해 줬으면 좋겠음, 서비스 신호 안 터질 때 길을 기억해야 해서 곤란할 때가 많음
-
-
실제로 오래된 농담이 현실이 되는 걸 보니 재밌음, (또) 왼쪽 마진을 추가해달라는 요청 있음, 화면 맨 끝에서 텍스트 읽기가 조금 어색하게 느껴짐
-
글에 나온 링크를 따라가다 보니, Apple에서 만료된 패스를 자동 삭제하는 기능을 도입하고 그 직후 바로 퇴사한 사례를 봤음, 이제 그 기능을 쓸 때마다 마음속으로 감사 인사를 해야겠다는 생각이 듦, 진짜 짜증나던 문제였음
-
직접 OP에게 고용되어 고치는 게 낫지 않을까 농담
-
나는 화면 공간을 낭비하는 사이트를 별로 좋아하지 않음
-
나는 왼쪽 정렬이 좋음, 그게 원래 텍스트가 있어야 할 자리라고 생각함
-
-
debounced search function에 AbortController를 추가해서 사용자가 새로운 입력을 할 때마다 이전 쿼리를 중단하도록 했다고 설명함, 사용자가 아직 다 입력하지 않았는데 필터나 검색이 먼저 적용돼버리는 게 가장 짜증남, 입력이 완전히 끝날 때까지 기다려줬으면 좋겠음
-
Grafana 로그 검색은 현재 적용 중인 로그 필터를 바꾸면 문자 하나 바꿀 때마다 조회 건수로 과금함, 이런 이유로 내 UX 사용 습관을 바꿔야 했음, 찾는 문자열 전체가 아니라 문자수만큼 비용 청구가 되는 것 때문임
-
내 블로그에 검색-실시간 기능을 구현할 때는, 이전 검색 제안을 다 완료하고 새로운 요청을 보내도록 했음, 서버 부하를 막고 반응성도 유지할 수 있는 합리적인 방법이라고 생각함
-
특히 예약 사이트에서 이런 게 싫음, 필터들이 왼쪽 사이드바에 나오는데, 화면에 다 안 보이면 매번 조작할 때마다 위로 스크롤되고, 로딩되고, 필터가 읽기 전용으로 바뀌어서 다 끝날 때까지 기다렸다가 겨우 다음서야 추가할 수 있음
-
좋은 타협점은 사용자가 입력을 멈춘 후 몇백 밀리초 정도 대기했다가 쿼리를 보내는 방식이 적합하다고 생각함, 혹은 쿼리는 보내되 입력이 멈출 때까지 결과를 표시하지 않는 방법도 고려할 만함
-
이런 행동은 정말 싫음, fancy한 코드 에디터에서 글자 칠 때마다 경고음이 뜨는 것과 같음, 'i'와 'f' 쳤을 때 바로 “if-then 문이 닫히지 않았어요!”라고 뜨면, 아직 입력 중이라는 걸 알면서도 너무 과민반응임, 다 써야 알림이 나오는 게 낫고, 대부분 언어나 툴에서 이런 실시간 알림은 꺼두고 빌드/실행시에만 오류를 보게 바꿈, LSP(언어 서버 프로토콜)는 진정해야 함
-
-
지금은 버그가 신경 쓰이면 채용돼서 직접 고치는 게 더 쉬울 정도로 소프트웨어 품질이 낮음, GTA 5 로딩 문제를 해결한 프로그래머 이야기가 떠오름, 그렇게 돈이 많은 GTA 5도 품질 개선이 쉽지 않았음
-
품질 문제가 아니라 우선순위 문제로 봄, 회사는 사용자가 원하는 것보다 팀이 하고 싶은 걸 먼저 선택함, 실사용자 테스트나 데이터 실험이 부족함, 실제로 이 사례는 문제의 해결책이라기보다 실제 문제의 단면임, 아마도 훨씬 유용한 이슈들이 많을 텐데 한 명이 본인이 원한 기능만 추가한 상황임
-
GTA:O의 카드에 돈을 많이 쓰는 사람들은 로딩 타임에 관심이 없었음, 나는 화가 나서 시간 재보니 실제 미션보다 로딩 스크린을 더 오래 보는 것을 알고 게임을 아예 그만뒀음
-
-
혹시 인터넷 밈 속의 그 사람이 바로 너냐는 농담
-
기사 내용에서 채용 파트가 전혀 언급되지 않아 궁금함, “뭔가가 나를 괴롭혔고, 회사에 입사한 덕분에 고쳤다” 수준으로 보여서 이야기의 핵심이 빠진 느낌임
- 저자의 회사가 현재 재직 중인 곳에 인수된 것 같아 acquihire(인수+채용)로 추정하고 있음
-
반대로, 나는 예전에 IP 변호사들 때문에 오픈소스 코드에 PR을 등록하는 게 불가능했던 직장에서 근무한 경험 있음, 그래도 정확한 입력값과 버그 라인 번호를 자세히 설명하면 누군가가 직접 고쳐주도록 설득할 수 있었음, 코드 대신 QA(품질보증) 리포트는 무료로 제공했다는 느낌임
-
George Hotz가 2022년 Twitter에 잠시 합류해서 로그인 팝업 제거 문제를 해결했다는 전설적인 사건 이야기가 떠오른다는 의견임, 하지만 내 기억과 다름, George Hotz는 “검색을 고칠 수 있다”고 주장하다 거의 바로 나갔고, 마지막에 위안삼아 팝업만 제거함
-
이번에 George Hotz, 특허 괴물, 그리고 comma.ai에 대해 다시 조사하는 데 잠깐 몰입하게 됨, George Hotz의 Comma.AI는 $999짜리 “comma 3x” 스마트폰과 OBD-II 커넥터, $99짜리 배선 하네스로 최근 10년 이내 제조된 대부분 자동차(심지어 Tesla도)에 Autopilot급 기능을 추가할 수 있음, 전체 비용 $1098, 오픈소스로 GitHub에 올라 있고 심지어 차량에 ssh 접속도 지원함, 선택형 클라우드 구독은 $10/월(직접 SIM) 또는 $24/월(셀러 데이터 포함), 다만 Tesla Sentry Mode에 해당하는 기능은 아직 없고, 이슈 #29912로 남아 있음, 오리지널 Tesla의 Sentry Mode가 250W를 씀 — 80kWh 배터리 기준 7일 만에 80%에서 30%로 떨어짐 — openpilot이 5W 이하만 쓸 거라면 훨씬 효율적일 거라고 생각함
-
George Hotz는 Twitter에 입사했다고 떠벌리고는 아무것도 안 하고 조용히 떠났다고 기억함, 민망하고 본인 스스로 자초한 일이라고 생각함
-
글을 더 정확하게 고쳤으며, 동시에 Github Pages 버그로 블로그 자체는 내렸다고 이야기함
-
마지막엔 Twitter 전체를 새로 만들자는 제안을 Elon에게 했던 것으로 기억함
-
-
개인적으로 Discord에 입사 지원까지 하면서 거대 이모지를 토글 설정으로 바꾸는 PR을 내보려 했음, 나뿐 아니라 서버 전체가 애타게 요청하고 있음
-
소용 있을진 모르겠으나 나 스스로는 이모지 다음에 마침표를 붙여서 임시로 피하고 있음, 새로운 유저에겐 소용 없지만 내겐 임시방편임
-
Discord는 Electron 앱이라서 이론상 클라이언트 측 모드로 바꿀 수 있을 듯함, 다만 계정 정지 위험은 잘 모르겠음
-
의미하는 바를 묻는 코멘트도 있음, 예를 들어 :) 이모티콘의 자동 변환을 끄는 옵션은 있다고 설명함
-