나도 안 쓰는 앱을 만들었습니다 — 토스 미니앱 출시 회고
앱스토어 등록비가 아까워 토스 미니앱을 골랐다. 첫 출시는 열흘 만에 됐지만 다음 업데이트 하나에 두 달이 걸렸고, 반려 6번의 진짜 원인은 프로젝트 첫날 고른 라우터였다. 유저 34명과 리텐션을 그대로 공개하는 사이드 프로젝트 회고.
앱스토어 등록비가 아까워 토스 미니앱을 골랐다. 첫 출시는 열흘 만에 됐지만 다음 업데이트 하나에 두 달이 걸렸고, 반려 6번의 진짜 원인은 프로젝트 첫날 고른 라우터였다. 유저 34명과 리텐션을 그대로 공개하는 사이드 프로젝트 회고.
체크아웃 날짜가 선택되지 않는다는 신고 하나를 따라가다, 같은 코드에서 정반대 방향의 결함까지 발견했다. 판매 불가 날짜가 포함된 예약이 조용히 통과하고 있었다. 세 겹으로 얽힌 원인을 하나씩 걷어낸 과정.
admin 미리보기가 dev에선 멀쩡한데 프로덕션 빌드에서만 죽었다. 서버 액션이 반환하는 클라이언트 컴포넌트가 라우트 매니페스트에서 통째로 빠지던 문제를, 격리 재현과 빌드 산출물 검증으로 잡은 과정.
next-auth v5 beta와 Octokit으로 DB 없이 '어디서나 글쓰기'를 만들면서, 미들웨어 한 겹으로 끝내지 않고 인증을 세 계층에 나눠 건 이야기.
단독 줄 이미지를 remark가 <p>로 감싸며 생긴 hydration 오류를, 자체 rehype 플러그인으로 블록/인라인을 구분해 해결한 과정.
JSX 표현식으로 넘긴 props가 조용히 사라지는 이유와, blockJS를 끄지 않고 해결한 과정.
Radix Slot이 use client 없이 top-level에서 createContext를 호출해 서버 컴포넌트 빌드가 깨진 문제를, variants를 별도 파일로 분리해 해결한 과정.
Figma 스펙과 대조하다 발견한 디자인 토큰 알파값 유실 버그. Tokens Studio의 hex/alpha 분리 필드가 원인이었고, 전수조사와 렌더값 검증으로 마무리한 과정.
동료가 제보한 타입 에러를 재현하려다 전혀 다른 에러를 만났고, 그 과정에서 저장소에 typecheck 스크립트 자체가 없었다는 사실을 발견한 이야기.
사내 디자인 시스템의 번들 CI 게이트가 컴포넌트 스텁 파일만 재고 의존 청크를 집계하지 못하던 결함을 발견하고, 측정 방식을 다시 세운 기록. 발행 후 실측으로 원인 서술을 정정했다.