SELFISH AAA

해당 아젠다 다시 다 보여줘 봐아젠다 다시 다 보여줘. 보면서 결정할게.# 셀피쉬클럽 v4.0 작업 로그

2026-04-05

프로젝트 초기 셋업

왜: Webflow 의존을 끊고 자체 플랫폼을 구축하기 위해 한 일:

  • Next.js 16 + Tailwind v4 + TypeScript 프로젝트 생성
  • CLAUDE.md, BRIEFING.md, DESIGN.md 문서 작성
  • 어드민 대시보드 v1 구축 (진행률, 사이트맵, CRM 에이전트 현황)

2026-04-08

레포지토리 구조 정리

왜: 소스코드와 작업 로그를 체계적으로 관리하기 위해 한 일:

  • selfishclub-ax 전용 레포로 소스코드 이관
  • .gitignore에 Obsidian 파일 제외
  • GitHub Actions로 aaa 레포 자동 동기화 설정

2026-04-09

레포지토리 구조 정리 및 자동 동기화 구축

왜: 소스코드와 작업 로그가 한 곳에서 체계적으로 관리되고, AAA 레포와 Obsidian에 자동으로 전파되는 구조가 필요해서 한 일:

  • selfishclub-ax 전용 GitHub 레포 연결 및 전체 소스코드 push
  • .gitignore 정리 (Obsidian 파일 제외)
  • GitHub Actions 자동 동기화 설정 (selfishclub-ax → aaa 레포로 작업 로그 자동 복사)
  • /worklog 스킬 수정 (주차 자동 계산, selfishclub-ax + Obsidian 두 곳 동시 기록)
  • GitHub workflow 권한 설정 및 AAA_REPO_TOKEN 등록

BetterAuth + 카카오 로그인 셋업

왜: 카카오 비즈앱 심사에 시간이 걸리므로 로그인 인프라를 먼저 구축 한 일:

  • BetterAuth + pg 패키지 설치 및 서버 설정 (src/lib/auth.ts)
  • 카카오 OAuth 프로바이더 연결 (기존 카카오 앱 REST API 키 사용)
  • Supabase Pooler 경유 DB 연결 (IPv4 호환 이슈 해결)
  • BetterAuth 테이블 4개 생성 (user, session, account, verification) — 기존 테이블 무변경
  • 카카오 로그인 UI 페이지 (/login) 구현
  • Supabase 서버 클라이언트 설정 (src/lib/supabase.ts)

[미결정] GitHub Public 전환 여부

왜: Vercel 무료 배포를 위해 레포를 Public으로 바꿔야 하는데, 결정이 필요 배경:

  • selfishclub-ax가 Private → Vercel Hobby(무료)로 배포 불가
  • Public으로 바꾸면 무료 배포 가능
  • 코드가 공개되지만, API 키/비밀번호 등은 .env.local에 있어서 GitHub에 안 올라감 → 보안 이슈 없음
  • 언제든 다시 Private으로 되돌릴 수 있음
  • org admin 권한이 필요해서 젬마에게 요청해야 할 수 있음 대안: Vercel Pro(월 $20) 또는 Pro Trial(14일 무료) 결정: Public으로 전환 완료

Vercel 배포 + 홈페이지/어드민 레이아웃

왜: 로컬만으로는 한계가 있어서, 기본 레이아웃이라도 배포해두고 작업하기 위해 한 일:

  • GitHub 레포 Public 전환 → Vercel Hobby(무료) 배포 성공
  • 홈페이지 기본 레이아웃 구성 (Header, Hero, 프로그램 카드, 소개 섹션, Footer)
  • 어드민 기본 레이아웃 구성 (사이드바 + 대시보드 껍데기)
  • AX 대시보드 경로 변경 (/admin/dashboard → /dashboard)
  • 배포 주소: selfishclub-ax.vercel.app

2026-04-11

홈페이지 리디자인 — Editorial Tech 컨셉

왜: 기존 홈페이지가 캐주얼하고 전문성이 부족해서, 셀피쉬클럽의 새 방향(실전적·진중한 실무자 커뮤니티)에 맞는 디자인으로 전환 한 일:

  • 다크 헤더 + 풀스크린 히어로 + 패럴랙스 스크롤 구현
  • 모션 애니메이션 시스템 구축 (FadeIn, StaggerChildren, CountUp, MagneticButton)
  • 카피 톤 전환 — “냅-다 우당탕탕”에서 “실전에 장착하는 사람들”로
  • 모바일 반응형 + 햄버거 메뉴

콘텐츠 마이그레이션 — 프로그램 목록 + 카테고리

왜: 기존 Webflow에 있던 82개 프로그램을 새 사이트에서 볼 수 있게 하기 위해 한 일:

  • 공유회(/sharing), 챌린지·워크숍(/challenge), 커뮤니티 행사(/community) 3개 목록 페이지 생성
  • 카테고리 15개를 5개로 통합 (AI 마케팅/콘텐츠/빌딩/비즈니스/커뮤니티)
  • 지난 프로그램 그레이스케일 처리, 진행 중/종료 자동 분리
  • Webflow CMS API로 콘텐츠 추출 파이프라인 구축
  • 3개 샘플 상세 페이지 (ai-github, ai-bizvideo, ai-claude4) — 커리큘럼/대상/혜택/FAQ/공유자 정보 포함
  • Supabase Storage 버킷 생성 + Webflow 이미지 마이그레이션
  • 이미지 카드 디자인 (딤 + 타이틀 오버레이)
  • 지난 프로그램 상세 페이지에 리뷰 상단 노출 (186개 후기 연동)

카카오 로그인 완성

왜: 비즈앱 인증이 완료되어, 그동안 블로커였던 카카오 로그인을 마무리하기 위해 한 일:

  • Vercel 환경변수 추가 (DATABASE_URL, BETTER_AUTH_URL, BETTER_AUTH_SECRET, KAKAO_CLIENT_SECRET)
  • 카카오 개발자 콘솔에서 Web 도메인 등록 + REST API 키에 Redirect URI 등록
  • 카카오 로그인 성공 확인 (BetterAuth user/account 테이블에 정상 저장)
  • 로그인 후 리다이렉트 경로 변경 (/mypage → / 홈)

결제 구조 방향 확정

왜: 토스 직접 연동 vs 포트원 경유를 결정하고, 결제 전 선행 작업을 명확히 하기 위해 한 일:

  • 포트원 경유로 결정 (기존 계약 활용)
  • Firestore 제거 확정 — Next.js API Route가 대체, Supabase가 유일한 DB
  • 결제 전 선행 과제 정리: 구매자 정보 수집(로그인 필수), 저장 실패 시 안전장치
  • Supabase 유료 전환 시점 검토 사항 기록

AX 대시보드 레이아웃 수정 + 전체 진행 상황 동기화

왜: 대시보드 탭이 사이드에 있어 클릭 영역이 안 보이는 문제 해결 + 지금까지 작업한 모든 내역을 대시보드에 반영 한 일:

  • 1차/2차/3차 탭을 왼쪽 사이드에서 리스트 상단 가로 3열로 이동
  • 비활성 탭도 보이도록 스타일 수정
  • 누락된 완료 항목 추가 (홈 리디자인, Vercel 배포, 비즈앱 인증, 목록 페이지 등)
  • 누락된 진행 중 항목 추가 (콘텐츠 마이그레이션, 상세 페이지 리뉴얼 등)
  • 사이트맵에 /community 페이지 추가

삽질과 배움

카카오 로그인 Redirect URI를 찾지 못해 2시간 삽질 카카오 개발자 콘솔에서 Redirect URI 등록하는 메뉴를 한참 찾지 못했다. 에디터 권한으로는 안 보여서 오너 권한을 받았는데, 오너로도 별도 메뉴가 없었다. 알고 보니 Redirect URI는 독립된 메뉴가 아니라 앱 > 플랫폼 키 > REST API 키를 클릭해서 들어간 키 설정 페이지 안에 숨어 있었다. 게다가 REST API 키가 여러 개 있었는데, Vercel에 등록한 키와 Redirect URI를 넣은 키가 달라서 한 번 더 실패했다. → 배움: 카카오는 키별로 Redirect URI가 따로 관리된다. 반드시 실제 사용 중인 키에 등록해야 한다.

Webflow CDN 이미지 접근 차단 (403) Webflow 상세 페이지에서 스크래핑한 이미지 URL을 새 사이트에서 쓰려 했더니 403 Forbidden이 떴다. Webflow가 외부에서 직접 이미지를 가져가는 것(핫링크)을 차단하고 있었다. Referer 헤더를 바꿔봐도 안 됐는데, CMS API로 가져온 이미지 URL은 CDN 경로가 달라서 접근이 가능했다. 결국 CMS API의 OG 이미지를 다운로드해서 Supabase Storage에 업로드하는 방식으로 우회했다. → 배움: Webflow는 페이지 빌더 이미지와 CMS 이미지의 CDN 경로가 다르고, 빌더 이미지는 핫링크가 차단된다. 이미지 마이그레이션 시 CMS API를 통해 가져와야 한다.

Vercel 환경변수 추가 후 재배포 필요한 줄 몰라서 삽질 NEXT_PUBLIC_BETTER_AUTH_URL을 Vercel에 등록했는데도 로그인 버튼이 localhost로 요청을 보내고 있었다. NEXT_PUBLIC_으로 시작하는 환경변수는 빌드 시점에 코드에 포함되기 때문에, 환경변수를 추가한 뒤 반드시 재배포(Redeploy)해야 반영된다. → 배움: Vercel에서 NEXT_PUBLIC_ 환경변수를 추가/변경하면 반드시 Redeploy 해야 한다. 서버 전용 환경변수(DATABASE_URL 등)는 재시작만으로 반영되지만, 클라이언트 환경변수는 빌드에 포함되므로 다르다.

UI 컴포넌트 라이브러리 스타일을 덮어쓰기 어려운 문제 대시보드의 1차/2차/3차 탭을 상단으로 옮기려고 했는데, base-ui의 Tabs 컴포넌트에 w-fit, flex-col 같은 기본 스타일이 강하게 적용되어 있어서 !important로도 제대로 안 먹혔다. 결국 Tabs 컴포넌트를 쓰지 않고 useState + button으로 직접 만들어서 해결했다. → 배움: UI 라이브러리 컴포넌트의 레이아웃을 크게 바꿔야 할 때는 오버라이드에 시간 쓰지 말고 처음부터 직접 만드는 게 빠르다.

작업 순서를 유동적으로 바꾼 판단들 원래 계획은 마이페이지 → 결제 순서였는데, 카카오 오너 계정을 받았다는 소식에 카카오 로그인을 먼저 마무리했다. 블로커가 해소된 시점에 바로 처리하는 게 맞았고, 실제로 로그인 완성까지 환경변수/키 불일치 등 예상 못한 삽질이 많았기 때문에 더 일찍 시작한 게 좋았다. 또한 콘텐츠 마이그레이션도 원래 2차 작업이었지만, “일정 대비 진도가 느리다”는 판단에 홈페이지 디자인 작업 중에 끼워 넣었다. 디자인만 하면 껍데기만 예쁘고 실제 데이터가 안 보이니까, 디자인과 콘텐츠를 같이 작업하는 게 결과물 확인에 효과적이었다.

미결정 / 논의 필요

  • 상세 내용은 Obsidian AX프로젝트 추후 결정 및 논의 필요사항.md 참고
  • 카카오 로그인 vs 카카오싱크, Supabase 유료 전환, 이미지 소스, 배포 구조, i_visible 컬럼

2026-04-12

포트원 결제 연동 완료

왜: 기존 토스페이먼츠 직접 연동이 키 불일치로 안 됐고, 포트원 경유로 방향을 확정했기 때문에 실제 연동 작업을 진행 한 일:

  • 토스페이먼츠 SDK 제거 → 포트원 V2 SDK(@portone/browser-sdk)로 교체
  • PurchaseButton 컴포넌트: 포트원 SDK로 결제 요청
  • /api/payments/confirm: 포트원 API로 결제 검증 (서버 사이드 금액 검증)
  • 포트원 Store ID, Channel Key, API Secret 발급 및 Vercel 환경변수 등록
  • 실제 100원 결제 테스트 성공 → Supabase purchase 테이블에 정상 저장 확인

카카오싱크 심사 신청

왜: 카카오 로그인 시 채널 추가를 필수로 하고, 전화번호/이름을 자동 수집하기 위해 카카오싱크가 필요 한 일:

  • 대표 채널 설정 완료
  • 비즈니스 정보 심사 → 즉시 승인
  • 개인정보 동의항목 심사 신청 (이름: 필수, 전화번호: 필수) → 심사 중
  • 개인정보 처리방침 URL, 회원가입 방식 설명 작성하여 제출

스폰지클럽(Sponge Club) 이름 확정

왜: AAA 2기를 외부에 공개 모집하면서 새 브랜드명이 필요 한 일:

  • AAA = 1기 (내부 베타 9명), 스폰지클럽 = 2기 (외부 공개 모집 30명)으로 정리
  • 핵심 철학: Absorb → Compress → Release → React
  • 6주 프로그램, 온라인 5주 + 오프라인 1주(데모데이)
  • 메모리에 기록 완료

삽질과 배움

결제 버튼이 상세 페이지에서 안 보이는 문제 어제 상세 페이지를 리뉴얼하면서 PurchaseButton import와 렌더링 코드가 빠져 있었다. 새로 만든 테스트 상품의 상세 페이지에서 결제 버튼이 없어서 발견. 리뉴얼할 때 기존 기능을 실수로 제거하기 쉽다. → 배움: 페이지를 대폭 리뉴얼할 때는 기존에 있던 기능(결제 버튼, 폼 등)이 빠지지 않았는지 체크리스트를 만들어 확인해야 한다.

결제 성공했는데 구매자 정보가 비어있는 문제 포트원 결제는 성공했지만, purchase 테이블에 이름/전화번호/이메일이 빈 값으로 저장됐다. 아직 카카오 로그인 세션에서 사용자 정보를 결제 요청에 넘기는 연결이 안 되어 있기 때문. 카카오싱크 심사 통과 후 전화번호가 수집되면 그때 연결하기로 판단. → 배움: 결제 연동과 인증 연동은 독립적으로 만들되, 최종적으로는 연결해야 구매자 식별이 가능하다. 순서를 맞추는 게 중요.

마이페이지를 지금 만들지 않기로 한 판단 마이페이지 작업을 시작하려 했으나, 카카오싱크가 아직 심사 중이라 전화번호/이름 수집이 안 되고, 기존 회원 매핑도 못 하는 상태. 지금 만들면 구매자 정보가 비어있어서 결국 다시 수정해야 함. 카카오싱크 심사 통과 후로 미루기로 결정. → 배움: 의존성이 있는 작업은 선행 작업이 완료된 후에 하는 게 재작업을 줄인다.

미결정 / 논의 필요

  • 상세 내용은 [AX프로젝트 추후 결정 및 논의 필요사항](/missions/AX프로젝트 추후 결정 및 논의 필요사항/) 참고

2026-04-15

스폰지클럽 공유회 커스텀 랜딩 페이지 제작

왜: AAA 프로젝트 공유회(스폰지클럽 모집용 특별 이벤트)를 위한 기깔나는 랜딩 페이지가 필요했고, 기존 공유회 상세 페이지로는 디자인 한계가 있어서 한 일:

  • /sharing/sponge-club 커스텀 랜딩 페이지 신규 생성 (기존 [slug] 상세 페이지와 별도)
  • 다크 톤 기반 7개 섹션 구성 (히어로 → 인트로 → 아젠다 3파트 → 추천 대상 → 크루 추천 이유 → 타임테이블 → 스폰지클럽 티저 → 신청 폼)
  • AAA 키 비주얼 GIF 삽입, CSS mask로 배경 블렌딩
  • 크루 8명 프로필 사진 + 세션 이미지(젬마/다다/다니/흐민/비비안/에밀리/오웬) 반영
  • 크루별 세션 내용 업데이트 (오웬, 다다, 다니 확정 콘텐츠 반영)
  • 말풍선 좌우 엇갈림 배치의 “크루들이 추천하는 이유” 섹션 추가
  • 텍스트 줄바꿈 정리 + 포인트 컬러 밑줄 하이라이트 시스템
  • 신청 폼 비활성화 (“신청이 곧 열립니다” 상태)
  • 모바일 플로팅 CTA (스크롤 위치에 따라 색상 전환, 현재 비활성)

사이트 전체 디자인 업데이트

왜: 브랜드 컬러 변경 + 한글 폰트 가독성 개선 한 일:

  • 포인트 컬러 #FFD700(골드) → #E2E545(형광 옐로우-그린) 전체 교체 (12개 파일)
  • Pretendard Variable 한글 웹폰트 추가 (로컬 호스팅, 전체 사이트 적용)
  • body font-family 체인 정리 (Pretendard → Geist → 시스템 폰트)

Vercel 배포 환경 구축

왜: 기존 Vercel 프로젝트(zemma’s projects/selfishclub-ax)에 연결하여 배포하기 위해 한 일:

  • Vercel CLI 로그인 계정 전환 (bbmktduo → selfishclub/zemma’s projects)
  • selfishclub-ax 프로젝트에 환경변수 11개 등록 (Supabase, 포트원, 카카오 등)
  • 프로덕션 배포 성공 (selfishclub-ax.vercel.app)

커밍순 페이지 + 접근 제한

왜: 홈페이지 리뉴얼이 완료되지 않아서, 스폰지클럽 랜딩만 외부에 공개하고 나머지는 숨기기 위해 한 일:

  • Next.js 미들웨어로 /sharing/sponge-club만 접근 허용, 나머지는 커밍순 페이지로 rewrite
  • 대시보드/어드민 경로에 bbn-699 접미사 추가 (추측 방지)
  • 커밍순 페이지에서 AAA 공유회로 연결하는 CTA 포함

n8n 워크플로우 분석

왜: 무료 공유회 신청 시 DB 저장 + 알림톡 발송을 어떻게 할지 결정하기 위해 한 일:

  • 기존 셀피쉬DB_main_flow 워크플로우 전체 분석
  • 무료 공유회: Webflow 폼 → n8n 웹훅 → event 테이블 INSERT → 솔라피 알림톡 + 슬랙 알림 흐름 파악
  • purchase 테이블이 아닌 event 테이블 사용 확인
  • 스폰지클럽 전용 n8n 워크플로우 JSON 생성 (import 후 활성화하면 사용 가능)
  • 신청 폼 백엔드 연동은 CRM 자동화 작업 확인 후 진행하기로 보류

삽질과 배움

Vercel 배포 시 잘못된 프로젝트에 배포 Vercel CLI에 이전 계정(bbmktduo)으로 로그인되어 있어서, selfishclub이라는 새 프로젝트가 생성되어 거기로 배포됐다. 기존 selfishclub-ax는 zemma’s projects 팀 소속이라 다른 계정이었음. vercel login으로 계정 전환 → vercel link --project selfishclub-ax로 재연결해서 해결. → 배움: Vercel CLI로 배포 전에 vercel whoami.vercel/project.json을 확인해서 올바른 계정/프로젝트인지 반드시 체크해야 한다.

n8n 무료 공유회 데이터가 purchase가 아닌 event 테이블에 저장되는 것을 놓칠 뻔함 처음에 무료 공유회도 purchase 테이블에 p_amount: 0으로 저장될 것이라 추정했지만, 실제 n8n 워크플로우를 분석해보니 event 테이블에 별도로 INSERT하고 있었다. 추정만으로 구현했으면 기존 데이터와 다른 곳에 쌓이는 문제가 생겼을 것. → 배움: 기존 시스템을 연동할 때는 반드시 실제 워크플로우/코드를 확인하고, 추정으로 구현하지 말아야 한다.

콘텐츠 마이그레이션 — Webflow CMS → 상세 콘텐츠 + 썸네일

왜: 기존 Webflow에 있던 공유회/챌린지 프로그램 데이터를 새 사이트에서 볼 수 있게 하기 위해 한 일:

  • Webflow CMS API로 공유회 37개 + 챌린지 24개 데이터 전체 추출
  • slug + 날짜 + 이름 3가지 방식으로 Webflow ↔ Supabase 매핑 (매핑 성공 37개, 실패 21개 — Supabase에 없는 초기 프로그램)
  • 상세 콘텐츠(summary, speakers, target, benefits) 6개 마이그레이션 (ai-seo, ai-ir, ai-chal, aimkt, sharing-aivideo, seminar-yusagil)
  • 프로그램 썸네일 34개 다운로드 → public/images/program-images에 저장
  • ProgramList 컴포넌트에 37개 이미지 매핑 추가
  • 상세 페이지 히어로 이미지를 Webflow CDN → 로컬로 교체 (핫링크 차단 대비)

접근 제한 방식 개선

왜: bbn-699 접미사 방식은 URL이 변해서 불편했고, 더 유연한 방식이 필요 한 일:

  • ?access=secret 쿼리 파라미터 방식으로 통일
  • 대시보드, 어드민, 공유회 목록 등 모든 숨김 페이지에 적용
  • bbn-699 접미사 완전 제거, 라우트 폴더명 원복

삽질과 배움

Webflow slug와 Supabase slug가 달라서 매핑에 시간 소요 Webflow CMS의 slug(예: aimktteam, yusagil)와 Supabase item 테이블의 i_formid_webflow(예: aimkt, seminar-yusagil)가 달랐다. slug 직접 매칭으로는 3개밖에 안 되어서, 날짜 매핑과 이름 매핑을 추가로 적용해 6개까지 올렸다. 나머지 10개는 Supabase에 해당 프로그램 자체가 없었다. → 배움: 두 시스템 간 데이터 마이그레이션 시 slug가 다를 수 있으므로, 여러 기준(slug, 날짜, 이름)으로 교차 매핑해야 한다.

미결정 / 논의 필요

  • 상세 내용은 [AX프로젝트 추후 결정 및 논의 필요사항](/missions/AX프로젝트 추후 결정 및 논의 필요사항/) 참고
  • 신청 폼 n8n 연동: CRM 자동화 작업 확인 후 진행
  • 카카오싱크 재심사: 개인정보처리방침 수정 후 재신청 예정
  • 매핑 실패 10개 프로그램: Supabase에 새로 등록할지 결정 필요

2026-04-16

무료 공유회 신청 API + n8n 알림 연동 완료

왜: 스폰지클럽 공유회 신청을 받고, 신청 즉시 슬랙 알림 + 카카오 알림톡을 보내기 위해 한 일:

  • /api/registrations/free API 라우트 생성 — event 테이블 INSERT + i_event_count 자동 증가
  • n8n 워크플로우를 알림 전용으로 간소화 (DB 저장은 API, 알림만 n8n)
  • 스폰지클럽 폼 활성화 (이름/전화번호/이메일)
  • 실제 테스트 완료: DB 저장 ✅ 슬랙 알림 ✅ 카카오 알림톡 ✅
  • Vercel 서버리스 환경에서 n8n fetch 중단 버그 수정 (await 추가)

콘텐츠 마이그레이션 — 프로그램 카드 수 맞추기

왜: Webflow에 있는 프로그램이 우리 사이트에서 안 보이는 것들이 있어서, 카드 수를 맞추기 위해 한 일:

  • Webflow에만 있고 Supabase에 없던 공유회 17개 + 이벤트 8개 신규 등록 (iid: wf_001~, wf_evt_001~)
  • 썸네일 23개 추가 다운로드 (총 60개+)
  • Webflow 페이지 스크래핑으로 6개 추가 이미지 확보
  • 공유회/챌린지 목록 정렬을 ID순 → 날짜 내림차순으로 변경
  • Upcoming에 뜨던 과거 프로그램 12개를 Past로 이동

이벤트 페이지 신규 생성

왜: 오프라인 행사(셀피쉬월드, 체육대회 등)를 보여줄 페이지가 필요해서 한 일:

  • /events 페이지 생성 — “직접 만나는 셀피쉬클럽의 오프라인 행사”
  • 이벤트 8개 Supabase 등록 (i_type: special)
  • 카드 클릭 시 기존 Webflow 사이트로 외부 링크 연결
  • 썸네일 7개 다운로드

챌린지 목록 페이지 정리

왜: 공유회와 마찬가지로 챌린지도 카드 수/썸네일/정렬을 맞춰야 해서 한 일:

  • Webflow 19개 vs Supabase 32개 비교 — 1개만 누락, 즉시 보완
  • 챌린지 썸네일 전부 확보 (10개만 404 — 오래된 행사)
  • 날짜 내림차순 정렬 적용

마이페이지 레이아웃 생성

왜: 로그인한 사용자가 자신의 신청/구매 내역과 VOD를 볼 수 있어야 해서 한 일:

  • /mypage 페이지 + /api/mypage API 라우트 생성
  • 비로그인 시 로그인 유도, 로그인 시 프로필 + 신청내역 + 구매내역 + VOD
  • 이메일 기준으로 event/purchase 테이블 조회 (카카오싱크 없이도 작동)
  • 카카오싱크 승인 후 전화번호 매핑만 추가하면 기존 회원 연결 가능

삽질과 배움

Vercel 서버리스에서 await 없는 fetch가 실행 안 되는 문제 API 라우트에서 n8n 웹훅을 fetch()로 호출했는데, await를 안 붙이니까 Vercel이 응답 반환 후 함수를 즉시 종료해버려서 fetch가 중단됐다. 로컬에서는 잘 되는데 배포 환경에서만 안 되는 문제. await를 추가하니 해결. → 배움: Vercel 서버리스 함수에서는 모든 비동기 작업에 await를 붙여야 한다. fire-and-forget 패턴은 서버리스에서 작동하지 않는다.

Supabase i_type enum에 “event” 값이 없는 문제 이벤트를 등록하려고 i_type: "event"로 넣었더니 enum 제약으로 실패. 기존 허용값이 sharing/challenge/workshop/special 4개뿐이었다. 기존 테이블 수정 없이 special로 등록하고 페이지에서만 “이벤트”로 표시하는 방식으로 우회. → 배움: DB enum 수정은 영향 범위가 크니까, 기존 값으로 우회할 수 있으면 우회하는 게 안전하다.

미결정 / 논의 필요

  • 상세 내용은 [AX프로젝트 추후 결정 및 논의 필요사항](/missions/AX프로젝트 추후 결정 및 논의 필요사항/) 참고
  • Supabase 신규 테이블 생성 논의 필요: blog (블로그 55개 마이그레이션용), aitools (추천 AI 툴 8개)
  • 카카오싱크 재심사: 개인정보처리방침 수정 후 재신청 예정