다음은 개발자와 AI 간의 오늘 하루 대화 로그야. 이 로그를 분석해서 내가 하루 동안 무엇에 집중하고 시간을 썼는지 한눈에 파악할 수 있도록 Obsidian 마크다운 형식으로 요약해줘.
[엄격한 요구사항 - 반드시 지킬 것]
-
작업 분포 (단일 테이블): 반드시 아래와 같은 형식의 ‘하나의 표’로 카테고리별 시간 비중을 요약해. 다른 형태의 리스트나 여러 개의 표로 나누지 마. 막대는 10칸 기준 ‘텍스트 블록(█████░░░░░)‘을 사용해. | 카테고리 | 비중 | | |---|---|---| | 프론트엔드 기능 구현/UI/UX | 40% | ████░░░░░░ | | 백엔드/인프라/배포 | 30% | ███░░░░░░░ | | 인증 및 보안 아키텍처 | 20% | ██░░░░░░░░ | | 기획 및 디버깅 | 10% | █░░░░░░░░░ |
-
집중 영역 / 시간 소모 포인트:
- 생산적 작업: 원활하게 진행된 구현이나 기획.
- 삽질/시간 소모 포인트: 에러 해결이나 설정 문제 등으로 오랜 시간 대화가 이어진 부분.
-
타임라인: 시간대별 주요 작업 흐름. 각 항목 앞에는 수집된 로그의 화자에 맞춰 🦦(Claude), 🐹(Gemini), ⌨️(Shell) 이모지를 붙여줘.
-
해결한 문제와 인사이트: 핵심적인 문제 해결 과정과 얻은 교훈.
-
[중요] 코드는 절대 직접 생성하거나 작성하지 마. 대신 “A 파일의 B 함수 로직을 C 방식으로 수정함” 같이 파일명과 방향성 위주로만 설명해.
하루 업무 요약
작업 분포
| 카테고리 | 비중 | |
|---|---|---|
| 프론트엔드 기능 구현/UI/UX | 40% | ████░░░░░░ |
| 백엔드/인프라/배포 | 30% | ███░░░░░░░ |
| 인증 및 보안 아키텍처 | 20% | ██░░░░░░░░ |
| 기획 및 디버깅 | 10% | █░░░░░░░░░ |
집중 영역 / 시간 소모 포인트
생산적 작업
- 명함 서비스 2.0 아키텍처 설계: 클라이언트 사이드 암호화(CSE), Firebase Auth 연동, 향후 AI 네트워킹을 위한 상호작용 가중치 체계(메시지, MCP 협업 등 반영) 기획 완료.
- React 인증 시스템 구축: Firebase SDK 연동,
AuthContext전역 상태 관리,LoginModal컴포넌트 생성, 비로그인 시 개인정보 마스킹 처리 구현. - 명함 저장/불러오기 및 공유 기능: 백엔드 API(
/api/my/cards) 구현 및 프론트엔드 연동./card/:shortId경로 기반 공유 시스템으로 개편하여 소유권 모호성 해결. - 카카오톡 공유 기능 포팅: 레거시 프로젝트의 로직을
FabMenu컴포넌트로 이식하여 SNS 공유 기능 추가. - FCM Web Push 구현: VAPID 키 설정 및 메시징 모듈 추가, 토큰 등록 로직 구현.
삽질/시간 소모 포인트
- Cloud Run 배포 및 비용 최적화: 서울 리전(
asia-northeast3) 사용 시 발생하는 과금 이슈를 발견하고, 미국 리전(us-central1)으로 전체 프로젝트를 마이그레이션하여 비용 절감. - Docker 빌드 및 GCP 인증 이슈: 멀티스테이지 빌드 시 서비스 계정 키가 러너 이미지에 복사되지 않아 인증 실패가 발생,
.gcloudignore설정을 수정하여 해결. - Firestore 쿼리 인덱스 누락:
GET /api/my/cards호출 시 복합 인덱스(ownerId+updatedAt)가 누락되어 500 에러가 발생, 콘솔에서 인덱스를 생성하여 해결. - 카카오 SDK 무결성 해시 불일치: 브라우저에서 스크립트 로드가 차단되는 현상 발생, 올바른 해시값으로 수정하여 해결.
- 엣지케이스 로직 분석: 로그인 전후 명함 상태 덮어씌워지기 문제와 남의 명함 조회 시 로딩 로직 등을 분석하고
shortId참조 방식으로 설계 변경.
타임라인
- 09:38 🦦 User: 시험문제 모바일 서버 실행 요청.
- 09:41 🦦 User: 모바일 우측 패널이 문제를 가린다고 제보.
- 09:42 🦦 AI: 모바일용 토글 버튼 및 오버레이 추가 작업 시작.
- 09:43 🦦 AI: 모바일 UI 수정 완료 (사이드 패널 기본 숨김, 하단 시트 방식).
- 13:38 🦦 User: 명함 서비스 업그레이드 방향성 제시 (Firebase, CSE, 벡터화).
- 13:50 🦦 AI: Firebase Auth 마이그레이션 5단계 계획 수립.
- 14:06 🦦 AI:
firebase.js,AuthContext.js,LoginModal.js생성 및 기존 파일 수정 시작. - 15:55 🦦 AI: 빌드 중 에러 발생 (
headerStyle등 정의되지 않은 변수 문제). - 15:59 🦦 AI:
Editor.js패턴 참고하여 누락된 변수 정의 추가, 빌드 성공. - 16:03 🦦 AI:
Step3_FinalCard.js에 전화번호/이메일 마스킹 로직 추가. - 17:32 🦦 AI: 네트워킹 가중치 체계 재설계 (클릭 기반에서 상호작용의 질 기반으로 변경).
- 17:44 🦦 AI: FCM Web Push 구현 착수, VAPID 키 설정.
- 17:54 ⌨️ Shell: Cloud Run 배포 시 리전(
asia-northeast3) 확인 및 과금 가능성 지적. - 18:02 🐹 Gemini: GCP 전체 프로젝트 리전별 서비스 목록 조회.
- 18:24 🦦 AI:
us-central1로 리전 이전 및 불필요한 서비스 삭제 작업 진행. - 18:44 🦦 AI: localStorage 신뢰성 문제 해결 방안 수립 (
shortId참조 저장 후 Firestore 검증 로직). - 18:48 🦦 AI: 백엔드(
store/card.go,handlers/card.go) 및 프론트엔드 명함 저장/불러오기 기능 구현. - 18:55 🦦 AI: Cloud Run 500 에러 원인 분석 시작, 프로젝트 ID 및 리전 확인.
- 18:58 🦦 AI: Dockerfile 수정 (serviceAccountKey.json 복사 문제 해결) 및 재배포.
- 19:25 🦦 AI: “남의 카드를 보다가 로그인하는 경우” 엣지케이스 분석.
- 19:31 🦦 AI: 공유 시스템 개편:
/card/:shortId라우팅 도입 및store/card.go에GetCard추가. - 19:43 🦦 AI: “남의 카드 조회 시 탈출구 부재” 해결 위한 “나도 만들기” 배너 추가.
- 20:04 🦦 AI: 다른 기기 대응 위해
AuthContext에 서버 폴백(GET /api/my/cards) 로직 추가. - 20:26 🦦 AI:
zai폴더에서 카카오톡 공유 코드 발견 후FabMenu.js로 포팅. - 20:36 🦦 AI: 프로젝트 구조 재정비 (
epix-card생성, 구버전_archive로 이동). - 20:51 🦦 AI:
/api/my/cards500 에러(Firestore 인덱스 누락) 확인 및 카카오 SDK integrity 해시 수정.
해결한 문제와 인사이트
핵심 문제 해결
- SAA 시험 모바일 호환성:
Step3_FinalCard.js및 HTML 구조를 수정하여 모바일 화면에서 문제를 가리던 사이드 패널을 기본 숨김 처리하고 하단 시트 형태로 조작 가능하게 개선. - 소유권 및 데이터 신뢰성:
shortId와ownerId를 매칭하여 “내 카드”와 “남의 카드”를 구분. localStorage에 데이터를 직접 저장하는 대신shortId식별자만 저장하고 실제 데이터는 Firestore에서 조회하여 로그인 전후 상태 충돌 방지. - 빌드 및 배포 안정화:
Step3_FinalCard.js의 미정의 변수(headerStyle등)를 추가하여 빌드 에러 해결. Dockerfile 및.gcloudignore를 수정하여 Cloud Build 시 인증 파일 누락 문제 해결. Firestore 복합 인덱스 생성으로 API 500 에러 해결.
주요 인사이트
- 보안 설계 방향: “개발자도 조회 불가능한 암호화”를 위해서는 서버 사이드가 아닌 **클라이언트 사이드 암호화(CSE)**가 필수적이며, Firestore에는 암호문만 저장해야 함.
- 인프라 비용 절감: Cloud Run의 네트워크 Egress 무료 조건은 북미 리전에 있어, 과금 우려가 있는 서울 리전에서 미국 리전(
us-central1)으로 이전하는 것이 비용 효율적임. - 프로젝트 구조 단순화: 백엔드와 프론트엔드가 분산된 폴더 구조를
epix-card단일 폴더로 통합하여 배포 관리 효율성 증대 및 설정 혼선 방지. - Firebase Auth 이점: 개인 SMTP 서버 사용 시 스팸 위험이 있으나, Firebase Auth 사용 시 Google 인프라를 통해 우수한 메일 도착율(Deliverability)을 기대할 수 있음.
Supported by ai-log-sync & GLM-4.7