유대선

진행 중 · 2026년 5월 31일

곁 · Beside

나를 아끼는 사람들의 응원 — 목소리·사진·다정한 한마디·짧은 영상 — 을 비공개로 품어두고 무너지는 날 꺼내 보는 설치형 PWA. 같은 코드가 외부 계정 0개 로컬에서 환경변수만으로 완전한 프로덕션 인프라로 전환.

역할
Solo (Claude Code 페어 프로그래밍)
스택
Next.js 16 · React 19 · TypeScript · PostgreSQL · Drizzle · PWA · Web Push · S3 / R2 · Terraform · Tailwind v4
곁 · Beside

프로젝트 로그

이 프로젝트를 만들면서 남긴 트러블슈팅 · 회고 · 업데이트의 시간순 기록.

7 로그됨
마지막 업데이트: 2026년 5월 31일
필터
2026년 5월 25일 주7 · 1 업데이트 · 1 트러블슈팅 · 4 기술 회고 · 1 사용성 회고
  1. 적대적 보안 리뷰: 11개 확인 결함과 무엇을 지금 고쳤나

    기술 회고

    2026년 5월 31일 · 3

    빌드 후 다중 에이전트 적대적 리뷰(보안/인증/데이터/캡처/PWA/스펙)를 돌려 11개 결함을 확인. 데모/스펙을 깨는 것 위주로 즉시 수정, 프로덕션 스케일 항목 2개는 문서화.

  2. 카카오 로그인 실연동: KOE006 → KOE010 까지, 그리고 직접 OAuth 결정

    트러블슈팅

    2026년 5월 31일 · 3

    사양의 '카카오는 제너릭 OAuth로'를 Better Auth 없이 직접 구현해 lib/auth 인터페이스에 끼움. 실제 키로 KOE006(redirect 미등록)·KOE010(client_secret 누락) 두 관문을 넘어 로그인 성공.

  3. 버팀목: 하룻밤 자율 MVP 빌드 — 사양서 한 장에서 동작하는 앱까지

    업데이트

    2026년 5월 31일 · 4

    work.md 사양서 하나를 받아 하룻밤에 '버팀목'(무너질 때 꺼내보는 비공개 보관함) PWA MVP를 끝까지 빌드한 기록. 외부 계정 0개로 즉시 실행되도록 설계.

  4. PGlite 임베디드 DB: 동시성·손상·빌드 충돌과 그 해결의 전말

    기술 회고

    2026년 5월 31일 · 4

    외부 DB 0개를 위해 택한 PGlite(WASM PostgreSQL)에서 부딪힌 세 가지 함정 — 동시 쿼리, 디스크 손상, 빌드 다중워커 충돌 — 과 lazy-init + 프로세스 가드로의 수렴.

  5. 스택 결정 전부: 무엇을, 왜, 대안은, 그리고 프로덕션 전환점

    기술 회고

    2026년 5월 31일 · 5

    버팀목 MVP에서 내린 모든 기술 스택 결정을 근거·대안·프로덕션 전환점과 함께 정리. 핵심 패턴은 '로컬 기본값을 인터페이스 뒤에 두고, 프로덕션 키는 한 파일만 갈아끼우기'.

  6. 신뢰는 암호화 설명이 아니라 '느낌·통제·관계'로 — 그리고 멀티테넌시

    사용성 회고

    2026년 5월 31일 · 4

    민감한 제품에서 '내 데이터가 외부에 저장되는 게 무섭다'를 어떻게 다룰지에 대한 논의와 결정. E2EE의 자리, 느껴지는 신뢰 우선, 내보내기/전체삭제 구현, 멀티테넌시 격리 실증.

  7. 영상을 4번째 콘텐츠 타입으로 — §1.1 단순성에서 의도적으로 벗어난 결정

    기술 회고

    2026년 5월 31일 · 3

    owner 결정으로 음성/사진/글에 더해 짧은 영상(20초)을 추가. 스펙의 단순성 가드레일에서 의도적 이탈임을 플래그하고, 기존 캡처 패턴을 그대로 확장. 미해결 재생 호환성 caveat 명시.