📅 일일 작업 요약

1. 작업 분포

카테고리비중
Neb (Backend/Frontend/기획)45%██████████░░░
EPIX Card (Frontend/UX)30%██████░░░░░░░
DevOps/배포 (Docker/GCP)15%███░░░░░░░░░
디버깅/환경설정10%██░░░░░░░░░░

2. 집중 영역 / 시간 소모 포인트

🟢 생산적 작업

  • Neb 기능 구현: ‘Tribe’에서 ‘Neb’로 브랜딩 변경 및 Go 백엔드 구현. AI가 멤버 심사(Core/Associate)와 매칭을 담당하는 구조 설계.
  • EPIX Card UX 고도화: 비디오 뒷면 배경, 오버레이 투명도 조절, 오토 플립 애니메이션, 로고 업로드 복구 등 시각적 기능 개선.
  • 인증 흐름 개선: 비회원 제작 후 로그인 시 데이터가 유지되도록 pendingShare 상태를 활용한 UX 자동 연결 로직 구현.
  • 보안 및 비용 최적화: API 키 관리를 GCP Secret Manager로 설계하고, LLM 제공자를 비용 효율적인 ZAI(GLM-4.6)로 교체.

🔴 삽질/시간 소모 포인트

  • Docker Compose 환경 분리: EC2 배포 시 override.yml이 로드되어 로컬용 의존성(db, redis) 때문에 에러가 발생, 파일명 전략(local.yml)을 수정하여 해결.
  • 데이터 직렬화 불일치: card.urlParams 재사용 시 구버전 데이터와 신버전 파싱 로직이 충돌하여 비디오 로딩 실패. serializeCardState 함수를 신규 작성하여 상태 기반 직렬화로 해결.
  • GCP 권한 및 계정 문제: epixailab 계정의 권한 부재로 Secret Manager 활성화 실패. default 계정으로 전환 후 해결.
  • AI 응답 멈춤 현상: 넵(Neb) 가입 심사 중 3번째 답변 이후 AI가 판단을 내리지 않고 멈추는 이슈 발생. 시스템 프롬프트에 강제 결정 지시문 추가하여 해결.

3. 타임라인

  • 10:34 ⌨️/🦦 EC2 배포 중 Docker Compose depends_on 오류 분석 및 local.yml 전략 수립.
  • 11:00 🐹 생성형 AI 강의 콘텐츠 검토 및 비전공자 맞춤 난이도 조정.
  • 13:32 🦦 EPIX Card 메시징 시스템 ‘답장’ UX 기획 및 방명록 느낌 제거 논의.
  • 16:01 🦦 파비콘 오류 수정, QR 코드 shortId 변환 로직 수정.
  • 16:23 🦦 Cloudinary 로고 업로드 복구(keyMap 수정), 뒷면 영상 배경 구현.
  • 17:07 🦦 영상 배경 시 QR 코드 레이아웃 최적화(Side-nav 플로팅 패널 적용).
  • 17:21 🦦 편집 모드 진입 시 비디오 로드 실패 문제 리포트 및 원인 분석.
  • 17:33 🦦 데이터 정합성 확보를 위해 cardState.jsserializeCardState 함수 신규 작성.
  • 17:58 🦦 로그인 플로우 개선 (pendingShare 상태와 useEffect 활용).
  • 18:22 🦦 ‘Tribe’ 기능 기획: AI가 운영진 역할(심사, 매칭)을 수행하는 구조 합의.
  • 18:47 🦦 백엔드 구현 착수: backend/main.go에 핸들러 및 라우트 정의.
  • 18:59 🦦 LLM 제공자를 Anthropic에서 ZAI로 교체하여 비용 최적화 및 빌드 성공.
  • 19:02 ⌨️ GCP Secret Manager 활성화 시도 중 PERMISSION_DENIED 에러 발생.
  • 19:04 🦦/⌨️ gcloud 계정 전환(epixailab default) 및 Secret Manager 설정 완료.
  • 20:13 🦦 ‘Tribe’를 별자리 느낌의 ‘Neb’으로 전체 코드베이스 리팩터링(변수명, API 경로 등).
  • 20:32 🦦 Go 구조체에 json 태그 누락으로 인한 필드 null 현상 발견 및 수정.
  • 20:37 🦦 NebsPage.js 생성 및 넵 목록, AI 채팅 UI 배포.
  • 21:23 🦦 가입 승인 후 UI 갱신 버그 수정(onJoined 콜밭 추가) 및 대기 중 롤링 메시지 추가.
  • 21:58 🦦 AI 심사 로직 강화(시스템 프롬프트 엄격화, extProfile 추출 기능 추가).
  • 22:17 🦦 폰트(Pretendard) 미적용 문제 수정 및 AI 멈춤 현상 해결(강제 결정 지시 추가).
  • 22:30 🦦 로딩 시 사용자 경험 개선을 위해 ThinkingBubble 컴포넌트(농담 표시) 추가.

4. 해결한 문제와 인사이트

🐳 Docker & 배포

  • 문제: Docker Compose가 로컬용 override.yml을 프로덕션(EC2)에서도 로드하여 의존성 에러 발생.
  • 해결: 명시적으로 로드되는 local.yml로 이름을 변경하여 환경별 설정 격리.

🎨 EPIX Card 프론트엔드

  • 문제: 로고 공유 시 URL 파라미터에 저장되지 않음, QR 코드가 긴 URL로 고정됨.
  • 해결: keyMaplogo 키 추가 및 serializeCardState 로직을 통해 상태 기반 URL 생성으로 데이터 무결성 확보.
  • 해결: shareUrl 생성 시 shortId 우선 로직 적용 및 컴포넌트 리마운트로 캔버스 갱신.

🌌 Neb (Tribe) 아키텍처

  • 문제: AI가 멤버 심사 시 판단을 내리지 않고 멈춤, 승인 후 UI가 갱신되지 않음.
  • 해결: 시스템 프롬프트에 사용자 턴이 3개 이상일 때 JSON을 강제 출력하도록 지시; onJoined 콜백으로 상태 동기화.
  • 인사이트: 커뮤니티 운영을 AI 자동화(Core/Associate 분류)로 대체하면 운영 부담을 줄이면서 가입 자체가 사용자 라벨링 데이터가 됨.

💡 기타 인사이트

  • 강의 콘텐츠: 비전공자에게는 ‘마이크로 스텝’과 구체적인 에러 대처법이 필수적임.
  • UX 디테일: 로딩 대기 시간에 유머러스한 멘트(“내쫓을 궁리중 (아님)“)를 노출하면 사용자 이탈을 줄이고 브랜드 친근도를 높일 수 있음.

Supported by ai-log-sync & GLM-4.7