📅 일일 작업 요약
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.js에serializeCardState함수 신규 작성. - 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로 고정됨.
- 해결:
keyMap에logo키 추가 및serializeCardState로직을 통해 상태 기반 URL 생성으로 데이터 무결성 확보. - 해결:
shareUrl생성 시shortId우선 로직 적용 및 컴포넌트 리마운트로 캔버스 갱신.
🌌 Neb (Tribe) 아키텍처
- 문제: AI가 멤버 심사 시 판단을 내리지 않고 멈춤, 승인 후 UI가 갱신되지 않음.
- 해결: 시스템 프롬프트에 사용자 턴이 3개 이상일 때 JSON을 강제 출력하도록 지시;
onJoined콜백으로 상태 동기화. - 인사이트: 커뮤니티 운영을 AI 자동화(Core/Associate 분류)로 대체하면 운영 부담을 줄이면서 가입 자체가 사용자 라벨링 데이터가 됨.
💡 기타 인사이트
- 강의 콘텐츠: 비전공자에게는 ‘마이크로 스텝’과 구체적인 에러 대처법이 필수적임.
- UX 디테일: 로딩 대기 시간에 유머러스한 멘트(“내쫓을 궁리중 (아님)“)를 노출하면 사용자 이탈을 줄이고 브랜드 친근도를 높일 수 있음.
Supported by ai-log-sync & GLM-4.7