변경 이력
InfoTravelog 는 매일 빠르게 진화하고 있어요. 제안·버그 제보는 피드백 페이지에서 환영합니다.
- 보안서버 측 해시·서명 비밀값 처리를 한 곳으로 모으고, 환경 설정이 누락돼도 개인정보 해시가 역추적되지 않도록 안전하게 보강했습니다.
- 보안영수증 제출에 하루 한도를 적용해 비정상적인 대량 제출과 무분별한 장소 자동 등록을 막았습니다.
- 보안영수증으로 등록되는 장소(카페·맛집)의 자동 공개 여부를 관리자 승인 정책에 연동해, 무분별한 공개를 정책으로 제어할 수 있도록 정비했습니다.
- 보안회원이 직접 등록하는 장소도 같은 자동 승인 정책 체계로 통일하고, 검수 전환 시 지도 노출(쉐도우 스팟)까지 함께 비공개되도록 정비했습니다(카페·맛집은 관리자 정책으로 검수 전환 가능).
- 버그픽스지역·스팟·지도 목록 화면이 일시적인 데이터 연결 지연에도 빈 화면 대신 안전하게 표시되도록 보강했습니다.
- 개선출사 도구, 지도·장소, 강의 편집 등 여러 화면의 공통 로직을 내부적으로 정리해 유지보수성과 안정성을 높였습니다.
- 개선내부 코드 품질 검사 도구를 도입하고, 사진 기록·지도·댓글 화면의 잠재적 오류 패턴을 정리해 안정성을 높였습니다.
- 배포내부 계산·정책·검증 로직에 대한 자동 회귀 테스트를 766개로 확대하고 빌드 로그를 정리해 배포 안정성을 강화했습니다.
- 보안서버 로그와 오류 응답에서 개인정보와 내부 오류 메시지가 노출되지 않도록 정리했습니다.
- 개선더 이상 쓰지 않는 옛 지도 라이브러리 잔재와 임시 파일을 정리했습니다.
- 개선갤러리, 사진 목록과 상세, 물때 도구 화면이 강제 다크에서 벗어나 라이트·그레이 테마에서도 자연스럽게 보이도록 보강했습니다.
- 개선사진 상세와 일부 관리자 화면의 색 모드 대응을 정리해 테마 전환 시 가독성을 높였습니다.
- 버그픽스공개 페이지 전체가 로그인 화면으로 이동하던 전역 private-site 잠금을 제거하고, 관리자 영역만 관리자 계정으로 제한하도록 되돌렸습니다.
- 보안/admin/*와 /api/admin/* 권한 검사는 유지하면서, 관리자 API는 미인증 401·비관리자 403 응답을 반환하도록 정리했습니다.
- 개선robots와 sitemap도 공개 사이트 기본 정책에 맞춰 정상 노출되도록 정리하고, 개인·관리자·API 경로는 계속 제외했습니다.
- 신기능헌 확정 로고 v2를 SVG 원본, 5 테마 variant, 다크/모노 variant, 워드마크 가로·세로 자산으로 생성했습니다.
- 신기능1024·512·192·180·48·32·16 PNG와 favicon.ico, apple-touch-icon, iOS/Android adaptive icon 자산을 추가했습니다.
- 개선PWA manifest, 브라우저 favicon, 헤더 워드마크, 구조화 데이터 로고 경로를 새 브랜드 오렌지 #EA580C 기준으로 연결했습니다.
- 신기능Prompt Lab 추천 화면을 Sonnet Vision 분석, 8차원 segment 매칭, Opus 초안 생성, 피드백 저장 흐름으로 연결했습니다.
- 개선참조 설명과 이미지 URL을 분석해 private entry top 매칭을 만들고, 좋아요/다시 보기 피드백을 다음 매칭 점수에 반영하도록 했습니다.
- 보안새 DB 마이그레이션 없이 v2_61 테이블을 재사용하고, Prompt Lab API는 기존 Layer 0 관리자 가드를 유지합니다.
- 배포운영 Supabase에 v2_61 Prompt Lab 정합 마이그레이션을 적용해 12 카테고리, 8차원 segment, 정렬 인덱스를 코드와 맞췄습니다.
- 개선초기 seed에서 남은 legacy 카테고리는 삭제하지 않고 비활성화해 기존 연결은 보존하면서 active 카테고리를 12개로 정리했습니다.
- 보안prompt-lab Storage bucket private 상태와 Prompt Lab 7개 테이블 RLS 활성 상태를 확인했습니다.
- 개선프롬프트 카테고리 관리에 드래그 정렬을 추가하고, 순서를 바꾸면 저장 API로 바로 반영되도록 했습니다.
- 보안카테고리 비활성화와 빈 분류 영구 삭제를 DangerActionModal 사유 입력 흐름으로 통일해 admin_audit_log 근거가 남도록 보강했습니다.
- 개선카테고리 색상 입력을 HEX와 HSL 모두 허용하도록 검증을 넓히고, v2_61 시드 SQL의 12 카테고리 한글 라벨과 아이콘을 UTF-8 기준으로 확인했습니다.
- 개선추천 워크플로우에 피드백과 재생성 흐름을 붙여 4단계 추천 화면의 실사용 감각을 보강했습니다.
- 개선사진강의 관리자 편집기의 sticky toolbar를 상단 작업 줄과 WYSIWYG 편집 도구 줄로 정리하고, 실제 미리보기를 새 탭에서 여는 버튼을 추가했습니다.
- 개선단축키 17종 도움말을 모달 형태로 정리하고 굵게, 기울임, 밑줄, 취소선, 코드 블록 단축키가 WYSIWYG에서 바로 동작하도록 보강했습니다.
- 개선Foundations M2 렌즈 본문에 액세서리, 필터, 손떨림 보정, 키트 구성 판단 기준을 더해 14 카드 보강 흐름을 마무리했습니다.
- 버그픽스사진강의 관리자 편집 화면에서 실제 미리보기만 보이고 좌측 편집 영역이 사라질 수 있던 split view 레이아웃을 안정화했습니다.
- 개선WYSIWYG 편집 영역에 최소 높이와 본문 표시 스타일을 명시해 편집기가 빈 칸처럼 보이지 않도록 보강했습니다.
- 버그픽스KTO 검수 큐 한 방 처리가 함수 시간 제한에 걸리지 않도록 10건씩 나눠 승인하도록 바꿨습니다.
- 개선일괄 승인 중 현재 처리 묶음과 완료 건수를 화면에 표시해, 중간에 멈춰도 어디까지 진행됐는지 알 수 있게 했습니다.
- 보안서버 일괄 승인 API는 한 요청 최대 50건으로 제한해 운영 함수 timeout과 과도한 요청을 방지합니다.
- 개선프롬프트 연구소를 12 카테고리 색과 최신 8차원 segment 기준으로 다시 맞췄습니다.
- 신기능매거진 masonry/list/grid 전환, 상세 화면, 새 entry 저장, 탐색, 추천 워크플로우 라우트를 추가했습니다.
- 개선카테고리 관리에서 설명, 라이트·다크 색, 활성 상태, 기본 비활성화 삭제 흐름을 관리할 수 있게 했습니다.
- 배포v2_61 Prompt Lab 정합 SQL을 준비했으며 운영 DB 적용은 별도 안전 절차로 남겼습니다.
- 개선사진강의 관리자 편집기에서 Markdown과 WYSIWYG 모두 좌 편집·우 실제 페이지 iframe 미리보기 구조로 정리했습니다.
- 개선미리보기 iframe에 본문 전용 embed 모드를 붙여 공개 페이지의 사이드바·하단 이동 요소 없이 본문 렌더링을 확인하게 했습니다.
- 버그픽스raw 이미지 URL, HTML 이미지, iframe embed가 저장·미리보기 과정에서 markdown으로 더 안전하게 정규화되도록 보강했습니다.
- 배포TipTap 확장 패키지는 이미 저장된 버전을 재사용했고, DB 변경 없이 편집기 코드만 보강했습니다.
- 개선Foundations M2에 렌즈 역할, 화각 종류, 화각별 사진 변화 설명을 보강했습니다.
- 개선단렌즈·줌렌즈, 모델명 읽기, 렌즈 외부 구조, 마운트 호환, 24-70 비교 설명을 추가했습니다.
- 신기능AF vs MF, 조리개 f값, 첫 렌즈 선택 가이드 챕터를 새로 붙여 M3 노출 학습으로 이어지게 했습니다.
- 배포DB 변경 없이 운영 markdown 본문만 보강했고, 사진은 헌 admin 업로드 후 일반 이미지로 추가하는 흐름을 유지합니다.
- 버그픽스Foundations M1~M8 본문에서 예시 사진 YAML 블록을 제거해 WYSIWYG 전환 중 본문 해석이 꼬일 여지를 없앴습니다.
- 개선공개 강의 페이지와 관리자 편집기에서 예시 사진 슬롯 전용 렌더링·편집 UI를 걷어내고 일반 markdown 이미지 흐름으로 단순화했습니다.
- 개선사진강의 이미지 업로드 감사 기록 문구를 슬롯 전용 표현에서 본문 이미지 표현으로 정리했습니다.
- 신기능비공개 프롬프트 저장 시 Claude Vision 가능 여부를 확인하고, 불가하면 텍스트 fallback으로 8차원 segment를 자동 생성합니다.
- 신기능/admin/lab/prompts에 매거진 그리드, 검색·카테고리·별점·분석 source 필터, 자동 태그와 segment 카드를 추가했습니다.
- 개선프롬프트 항목별 분석 재실행 API와 버튼을 추가하고 prompt_recommendations, prompt_lab_tags, admin_audit_log에 근거를 남깁니다.
- 개선/admin/lab/categories에서 카테고리 편집과 빈 분류 삭제를 지원하되, 연결된 프롬프트가 있으면 삭제를 막습니다.
- 버그픽스사진강의 관리자에서 WYSIWYG 전환 중 본문 해석이 실패해도 흰 화면으로 번지지 않고 Markdown 모드로 되돌아오도록 보강했습니다.
- 버그픽스TipTap 본문 주입 전에 이미지, task list, raw HTML 본문을 더 안전한 편집기 HTML로 정규화하도록 정리했습니다.
- 개선CloudFront 같은 직접 이미지 URL 줄도 편집기 진입 시 이미지 노드로 다룰 수 있게 해 예시 사진 본문 회복성을 높였습니다.
- 신기능총관 전용 비공개 이미지 프롬프트 연구소의 관리자 화면과 API 골격을 추가했습니다.
- 보안prompt-lab private bucket, RLS 전제 SQL, soft delete, admin_audit_log 연결을 준비했습니다.
- 개선12개 기본 카테고리 seed와 8차원 prompt segment 구조를 코드 모듈 경계 안에 정리했습니다.
- 배포운영 데이터 구조와 FK 보조 인덱스 적용을 완료하고 seed 12개와 private bucket을 확인했습니다.
- 보안전체 페이지와 일반 API를 허용 계정만 볼 수 있도록 전역 비공개 접근 가드를 추가했습니다.
- 보안허용 사용자 목록 환경변수가 있으면 해당 계정만, 없으면 관리자 계정만 접근하도록 구성했습니다.
- 개선검색엔진 노출을 막기 위해 기본 robots와 sitemap, 메타 robots를 비공개 모드 기준으로 전환했습니다.
- 신기능사진강의 관리자 편집기에 표, 할 일 목록, 코드 블록, 밑줄, 하이라이트, 첨자, YouTube 등 풍부한 서식 도구를 추가했습니다.
- 신기능/ 블록 메뉴로 예시 사진 슬롯과 캐러셀, 퀴즈, 슬라이더, 비교 마커를 빠르게 넣을 수 있게 했습니다.
- 개선툴바를 상단에 고정하고 글자 수, 예상 읽기 시간, 단축키 도움말을 편집 화면에서 바로 확인할 수 있게 했습니다.
- 버그픽스서식 편집에서 만든 코드 블록, 표, 할 일 목록이 저장 시 markdown으로 안전하게 돌아가도록 변환 로직을 보강했습니다.
- 배포v2.60 draft DB 적용은 포함하지 않았고, 별도 승인 후 안전 절차로 적용하는 구조를 유지했습니다.
- 신기능사진강의 관리자 편집기에 공개 페이지와 같은 렌더링을 보는 iframe 미리보기를 추가했습니다.
- 신기능미리보기에서 라이트·다크 모드, 5개 시각 테마, PC와 390px 화면을 바로 바꿔 볼 수 있습니다.
- 신기능강의 본문 임시 저장 API와 7일 자동 정리 cron, 운영 적용용 v2.60 SQL을 준비했습니다.
- 개선편집기 진입 시 남아 있는 임시 저장본을 감지해 복원하거나 버릴 수 있게 했습니다.
- 배포운영 DB 적용은 포함하지 않았고, v2.60 SQL은 별도 승인 후 적용하는 구조입니다.
- 버그픽스사진강의 관리자 편집기에서 서식 편집 모드의 내부 형식이 본문으로 섞여 미리보기에 그대로 보일 수 있는 흐름을 막았습니다.
- 버그픽스서식 편집 모드에서 저장할 때도 markdown으로 변환하고, 저장 경로에서도 한 번 더 markdown으로 정규화합니다.
- 개선Foundations M1~M8 예시 사진 슬롯의 임시 image_path 줄을 제거해, 헌이 직접 업로드한 사진만 본문에 연결되도록 정리했습니다.
- 배포DB 스키마 변경 없이 관리자 편집 흐름과 운영 본문 markdown만 정리했습니다.
- 신기능Foundations M1~M8 본문 안의 [예시 사진 슬롯] YAML 블록을 실제 예시 사진 카드로 렌더링하도록 연결했습니다.
- 신기능/admin/lessons/[module]에서 슬롯 목록을 보고 image_path, caption, credit, 태그를 편집할 수 있는 관리 UI를 추가했습니다.
- 개선직접 업로드한 사진은 즉시 표시하고, 아직 연결되지 않은 provided 슬롯은 PDF 기준 이미지나 준비 중 상태로 안전하게 보입니다.
- 보안사진강의 본문 저장과 슬롯 이미지 업로드를 기존 관리자 권한 흐름으로 처리하고 admin_audit_log에도 기록합니다.
- 배포DB 스키마 변경 없이 markdown 본문과 이미지 경로만 사용하는 Phase 1 구조입니다. auto-match는 후속 단계로 남겨두었습니다.
- 개선관리자 사용자 목록에서 각 사용자 통계 탭으로 바로 들어갈 수 있는 진입 버튼을 추가했습니다.
- 버그픽스실험 페이지 영역에서 다크모드가 모든 시각 테마보다 우선 적용되도록 핵심 테마 변수를 한 번 더 보호했습니다.
- 개선이번 보강은 화면 진입성과 시각 일관성만 다듬었고, 데이터베이스 구조 변경은 없습니다.
- 버그픽스실험 페이지 전체에서 Modern 시각 테마가 라이트·다크 모드 선택을 덮어쓰지 않도록 lab 전용 변수를 분리했습니다.
- 버그픽스/lab, /lab/quick, /lab/plan, /lab/style, /lab/journey 화면의 배경과 주요 카드가 data-theme='dark'를 우선 반영하도록 보정했습니다.
- 개선Modern 테마도 라이트 모드에서는 밝은 표면을 쓰고, 다크 모드에서는 어두운 표면으로 전환되도록 기준을 맞췄습니다.
- 버그픽스관리자 작업 기록 화면이 보강 정보 조회 실패 때문에 전체 연결 경고처럼 보이지 않도록 기본 기록 조회를 먼저 보여주게 했습니다.
- 버그픽스실험 페이지의 빠르게, 내 출사 화면에서 사용자 다크모드 선택이 배경과 카드 톤에 반영되도록 보정했습니다.
- 개선관리자 작업 기록 화면의 검색, 필터, 빈 상태 문구를 더 읽기 쉬운 한국어로 정리했습니다.
- 신기능공식 장소를 한 번에 많이 가져오지 않고, 분류와 지역을 나누어 천천히 채우는 점진 수집 골격을 준비했습니다.
- 신기능공식 장소 상세 정보도 10분 단위로 조금씩 보강할 수 있도록 Common, Intro, Info 수집 흐름을 분리했습니다.
- 신기능공식 장소 이미지를 새벽 시간대에 조금씩 보강하는 흐름을 추가해 사진 후보의 시각 품질을 높일 준비를 했습니다.
- 개선실패한 공식 장소 수집 작업을 매일 새벽 다시 점검하고, 오래 실패한 작업은 보류로 분리해 조용히 관리하도록 했습니다.
- 개선KTO 점진 수집 관리자 화면을 17×8 heatmap, 24시간 수집량, 분류별 진행률, API 통계로 정밀화했습니다.
- 개선최근 응답 시간과 제한 신호를 보고 공식 장소 수집 속도와 처리량을 자동으로 낮추는 보호 장치를 추가했습니다.
- 개선사용자 활동이 많은 장소부터 상세·이미지 보강을 먼저 시도하고, 같은 공식 장소가 반복 수집될 때는 변경 여부를 고유값으로 구분합니다.
- 개선보강이 끝난 공식 장소가 sitemap에 더 안정적으로 반영되도록 장소 sitemap 기준을 확장했습니다.
- 신기능sitemap을 매일 자동으로 제출할 수 있는 자동 갱신 흐름을 추가했습니다. Google과 Naver 공식 연동 정보가 설정된 경우에만 실행됩니다.
- 개선/admin/queue/kto-progressive에서 수집 속도 보호 상태와 변경 감지 통계를 바로 볼 수 있게 했습니다.
- 개선Search Console/Naver 인증 정보가 없을 때는 외부 호출을 건너뛰고, sitemap 상태를 안전하게 기록하도록 했습니다.
- 보안공식 장소 자동 수집 긴급 정지와 재시작은 총관만 실행할 수 있고, 사유 입력과 감사 기록을 남기도록 했습니다.
- 개선/admin/queue/kto-progressive 화면에서 8개 분류와 17개 지역의 진행도, 최근 수집 기록, 상세 정보 보강 상태를 확인할 수 있게 했습니다.
- 개선관리자 화면에서 자동 수집 긴급 정지, 재개, 미리 점검, 오류 재시도, 보류 장소 일괄 재시도를 바로 실행할 수 있게 했습니다.
- 배포v2.59 공식 장소 점진 수집용 운영 테이블과 인덱스 적용을 완료했습니다.
- 보안위험 작업 확인 흐름을 DangerActionModal로 통일했습니다. 휴지통 이동, 일괄 작업, 사용자 정지·권한 변경·GDPR 검토가 모두 이유 입력 후 실행됩니다.
- 보안/admin/users의 테스트 유저 영구 삭제도 DangerActionModal로 전환하고, 삭제 사유를 감사 기록 payload에 함께 남기도록 보강했습니다.
- 개선/admin/smoke 화면을 SmokeTestView로 분리해 5개 시나리오의 PASS/WATCH/FAIL 상태와 실행 시간을 카드형으로 확인할 수 있게 했습니다.
- 개선/api/admin/smoke 응답에 durationMs를 추가해 smoke 실행 시간을 화면과 자동 점검에서 함께 읽을 수 있게 했습니다.
- 신기능사용자 상세 통계 탭에 FrameType, 테마 분포, 시간대 heatmap, 기여도 시계열을 더해 운영자가 활동 패턴을 깊게 볼 수 있게 했습니다.
- 개선/admin/audit timeline에 작업별 색, 대상 미리보기, JSONB 펼치기를 추가해 bulk action과 위험 작업의 전후 맥락을 더 빨리 확인할 수 있게 했습니다.
- 개선/admin/settings/permissions에 스팟관, 사진관, 맛집관, 축제관, 모임관 기준의 분야별 일반관 matrix를 추가했습니다.
- 신기능/admin/content 5개 view에 체크박스 기반 일괄 작업을 연결했습니다. 선택한 항목을 한 번에 휴지통 이동, 복구, 상태 변경, 분류 변경할 수 있습니다.
- 보안일괄 작업 API는 권한 행렬을 확인하고, 각 대상별로 admin_audit_log를 남기도록 구성했습니다. 위험 작업은 사유 입력을 요구합니다.
- 개선콘텐츠 관리 화면의 필터, 목록, 행 단위 작업 라벨을 한국어로 정리해 운영자가 현재 상태를 더 빠르게 읽을 수 있게 했습니다.
- 보안/admin/users/[id]에 작업 탭을 추가해 경고, 정지, 권한 변경, 등급 변경, 점수 재계산, GDPR 검토를 확인 모달과 이유 입력 후 실행하도록 정리했습니다.
- 보안사용자 작업 API는 Layer 0 권한 행렬을 확인하고, 모든 변경을 admin_audit_log에 before/after 또는 사유와 함께 남기도록 보강했습니다.
- 개선사용자 상세 화면의 프로필, 타임라인, 작업, 감사 로그 탭을 한국어 라벨로 정리하고 운영 메모와 감사 이력을 분리해 확인하기 쉽게 만들었습니다.
- 개선신고가 접수될 때 moderation_queue에 P0/P1/P2 우선순위를 자동 반영하도록 연결했습니다. 욕설·혐오·법적 신호는 P0, 누적 신고와 같은 IP 의심 신호는 P1, 단순 신고는 P2로 분류합니다.
- 개선일반 신고, 장소 신고, 메뉴 신고 흐름이 같은 우선순위 분류기를 사용하도록 맞췄습니다. 이미 열린 검수 항목은 더 높은 우선순위로 자동 승격됩니다.
- 개선/admin/smoke에 자동 우선순위 분류 시나리오를 추가해 Phase 1-2 검수 큐 기준을 바로 확인할 수 있게 했습니다.
- 보안문서와 첨부 파일 접근을 tags 추정만으로 판단하지 않도록 명시 분류 우선 정책을 추가했습니다. 민감 자료, 관리자 자료, 공개관리 첨부, 본인 export를 분리해 검사합니다.
- 보안Lab 피드백 CSV, 내 데이터 export, 사진강의 백업 조회, 사진강의 이미지 업로드 흐름에 문서 권한 검사와 다운로드·업로드 감사 기록을 연결했습니다.
- 개선/admin/smoke에 employee·publisher 계열 외부접속 시나리오를 포함한 문서/첨부 권한 분류 검증을 추가했습니다.
- 신기능v2.58 Phase 0 W1 관리 시스템 골격을 추가했습니다. /admin/content/spots, /admin/content/photos, /admin/content/comments, /admin/users/[id], /admin/audit, /admin/trash 진입점을 연결했습니다.
- 신기능REQ-45.22 기준 9 컴포넌트 골격을 코드에 분리했습니다. AdminHub, ContentListView, UserListView, UserDetailView, AuditLogView, TrashView, ModerationQueueView, Layer0PermissionMatrix, BulkActionMenu를 admin 영역에 연결했습니다.
- 신기능콘텐츠 관리 routes를 /admin/content/events, /admin/content/outings, /admin/content/queue까지 확장하고, /admin/settings/permissions 권한 표 skeleton을 추가했습니다.
- 신기능admin_audit_log, moderation_queue, user_admin_notes, 5개 영역 soft delete 컬럼을 위한 운영 적용용 SQL을 추가했습니다.
- 개선REQ-45.22 최신 콘텐츠 축에 맞춰 events와 user_outings soft delete follow-up SQL을 추가했습니다. 기존 W1 SQL은 유지하고 운영 적용 순서만 분리했습니다.
- 배포운영 Supabase에 v2_58_admin_management_w1과 v2_58_admin_management_w1_content_alignment migration을 적용했습니다. 3개 신규 테이블, active 인덱스, soft delete 컬럼, smoke test까지 확인했습니다.
- 개선Layer 0 권한 helper와 관리자 audit helper를 추가하고, 30일 휴지통 자동 정리 cron 골격을 연결했습니다. 기본값은 안전하게 비활성 상태입니다.
- 신기능v2.58 W2로 /admin/content 5개 화면에 검색·상태·분류·휴지통 필터와 행 단위 관리 액션을 연결했습니다.
- 신기능/admin/users 목록에 검색·권한·상태·활동 필터를 추가하고, 사용자 상세에는 프로필·타임라인 탭과 경고 메모 액션을 연결했습니다.
- 보안콘텐츠 soft delete, 복구, 상태 변경, 분류 변경, 사용자 경고·정지·권한 변경 흐름을 admin_audit_log에 함께 남기도록 연결했습니다.
- 신기능v2.58 W3로 검수 큐 상태 액션을 연결했습니다. 검토 중·해결·닫기 처리를 audit 기록과 함께 남깁니다.
- 개선휴지통 요약에서 콘텐츠별 휴지통 보기로 바로 이동할 수 있게 하고, Layer 0 권한 표의 운영자 라벨을 정리했습니다.
- 신기능v2.58 W3 잔여 smoke 5개 시나리오를 /admin/smoke와 /api/admin/smoke에 추가했습니다. audit JSONB, 휴지통 복구, 30일 정리 dry-run, Layer 0 차단, 검수 큐 lifecycle을 확인합니다.
- 보안휴지통 30일 정리 검증은 hard delete 없이 dry-run count만 수행하도록 분리했습니다.
- 개선공식 장소 분류에 축제·공연·행사 후보를 더해 장소 목록, 지도, 빠르게 화면에서 cyan 색상으로 구분되도록 연결했습니다.
- 개선장소 필터의 행사 선택은 기존 장소 구조를 바꾸지 않고 공식 행사 타입 기준으로만 좁혀 보도록 안전하게 적용했습니다.
- 개선출사 목적 점수의 근거 보기를 열어본 흐름을 관리자 기준 화면의 점수 근거 영역에 반영하도록 연결했습니다.
- 개선FrameType은 저장된 결과 수와 유형 분포를 함께 읽어 Phase B 기준 판단에 더 직접적으로 쓰도록 보강했습니다.
- 개선빠르게 화면의 장소 추천 후보를 실제로 둘러본 흐름까지 관리자 기준 화면의 축적 상태에 반영하도록 연결했습니다.
- 개선추천 후보 클릭 기록은 화면 이동을 막지 않도록 뒤에서 조용히 처리합니다.
- 개선장소 후보와 자동 코스 흐름이 관리자 기준 화면의 축적 상태에 반영되도록 서버 기록을 연결했습니다.
- 개선기록 실패가 있어도 빠른 계획과 자동 코스 사용 흐름은 그대로 이어지도록 안전하게 처리했습니다.
- 개선관리자 프로젝트 화면에 이슈 단계와 공개 변경 이력 안전 검사를 함께 볼 수 있는 카드를 더했습니다.
- 개선데이터 기준 화면에서 테마·자동 코스·내 후보·장소 추천의 축적 상태를 한눈에 확인할 수 있게 했습니다.
- 개선빠른 계획의 KTO 약어 노출을 공식 장소·공식 장소 데이터 문구로 바꿔 더 자연스럽게 읽히도록 정리했습니다.
- 개선장소 추천과 자동 코스 보완 설명은 유지하면서 사용자 화면의 데이터 출처 톤을 부드럽게 맞췄습니다.
- 개선자동 코스 시간 시뮬 영역의 API 표현을 오늘 조건 기준 시간표로 바꿔 사용자 화면에서 더 자연스럽게 보이도록 정리했습니다.
- 개선내 후보와 추천 보완 흐름의 소프트 추천 톤을 유지하면서 개발 용어 노출을 줄였습니다.
- 개선빠르게·제대로·내 출사·오늘 조건 공유 이미지의 영문 보조 라벨을 베타·내 출사로 정리했습니다.
- 개선Lab 공유 미리보기에서도 화면 안 한국어 카피와 같은 톤이 유지되도록 맞췄습니다.
- 개선Lab 인덱스 공유 이미지의 영문 보조 라벨을 실험 페이지·베타·실험으로 바꿔 한국어 화면 흐름과 맞췄습니다.
- 개선빠르게·제대로·내 출사로 이어지는 Lab 라벨 정리와 같은 톤으로 공유 미리보기 문구를 정돈했습니다.
- 개선빠른 계획 하루 코스의 Pace, Move, Spot, Anchor 칩을 흐름·이동·촬영지·시간 기준으로 바꿨습니다.
- 개선하루 코스 API insight의 anchor 표기도 후보 기준으로 맞춰 handoff 문구가 더 자연스럽게 보이도록 정리했습니다.
- 개선Lab 인덱스, 빠른 계획, 제대로 계획, 스타일, 피드백 영역의 영어 보조 라벨을 한국어로 통일했습니다.
- 개선빠른 계획과 제대로 계획의 OG 이미지 보조 라벨도 한국어 흐름에 맞췄습니다.
- 개선내 출사 화면과 미리보기 패널의 영문 보조 라벨을 내 출사로 통일했습니다.
- 개선사전·현장·사후 흐름 화면에서도 Lab의 한국어 카피 톤이 이어지도록 정리했습니다.
- 개선내 출사 저장 모달과 빠른 계획 저장 CTA의 보조 라벨을 한국어로 통일했습니다.
- 개선Lab 안에서 계획을 저장하거나 이어갈 때 영문 보조 문구가 섞이지 않도록 다듬었습니다.
- 개선빠른 계획의 하루 코스 설명 카드에서 시간·장소·출처 라벨을 한국어로 통일했습니다.
- 개선자동 코스가 보여주는 근거 카드의 표현을 Lab 화면의 다른 handoff 라벨과 맞췄습니다.
- 개선자동 코스의 추천 보완 후보가 rest, meal, cafe, culture 링크에서도 음식점·문화시설 분류를 추론하도록 보강했습니다.
- 개선내 후보가 부족해 추천으로 채운 단계에서도 카테고리 단서가 더 잘 보여 코스 수정 기준을 잡기 쉬워졌습니다.
- 개선오늘 조건, 목적 점수, 찍을 곳, 쉬어갈 곳 API의 handoff 라벨을 목적, 기준 위치, 분류, 거리, 후보 같은 한국어 표현으로 맞췄습니다.
- 개선Lab 5단계 API를 소비하는 화면에서도 Purpose, Origin, Sources 같은 보조 라벨이 그대로 노출되지 않도록 정리했습니다.
- 개선/api/course/daily 응답의 목적, 출발 기준, 시간 기준, 중심 후보, 동선 라벨을 한국어 표현으로 맞췄습니다.
- 개선자동 코스 시간표를 소비하는 화면에서도 Purpose, Origin, Window 같은 보조 라벨이 그대로 노출되지 않도록 정리했습니다.
- 개선/api/photos/quick 응답의 목적, 위치, 사진 수, 다음 라벨을 화면의 빠른 사진 정리 문맥과 같은 한국어 표현으로 맞췄습니다.
- 개선사진 정리 API를 소비하는 화면에서도 Purpose, Location 같은 보조 라벨이 그대로 노출되지 않도록 정리했습니다.
- 개선/lab quick과 style 화면에 남아 있던 Purpose, Location, Next 같은 보조 라벨을 한국어 흐름으로 정리했습니다.
- 개선목적 점수, 기준 위치, 다음 단계, 빠른 업로드처럼 실제 화면의 5단계 문맥이 더 자연스럽게 보이도록 맞췄습니다.
- 개선매거진 초안과 내 출사 저장 API에 남아 있던 단순 오류 응답을 한국어 메시지와 nextActions가 있는 응답으로 맞췄습니다.
- 개선내 출사나 매거진 초안 저장 결과를 확인하지 못한 경우에도 사진 정리, 제대로 계획, 업로드 흐름으로 돌아갈 수 있습니다.
- 개선/api/photos/quick 오류 응답에도 사진 정리, 업로드, 하루 코스, 내 출사 흐름으로 이어지는 nextActions를 추가했습니다.
- 개선빠른 사진 정리 요청의 purposeId와 photoIds 입력 검증 범위를 더 좁혀 잘못된 요청을 더 분명히 처리합니다.
- 개선/lab/plan 자동 코스가 위치 좌표가 없어도 오늘 조건 API의 기본 시간표를 불러와 시간 흐름을 먼저 보여주도록 보강했습니다.
- 개선위치를 연결하면 기존처럼 출발지 기준 거리와 시간을 더 촘촘하게 다시 계산합니다.
- 개선/lab 내 후보 트레이가 서버 저장 준비 전, 로그인 필요, 계정 연결 성공 같은 API 메시지를 화면에 표시하도록 연결했습니다.
- 개선계정 저장이 아직 준비되지 않은 환경에서도 이 브라우저에 담은 후보를 유지한다는 안내가 더 분명해졌습니다.
- 개선/api/lab/saved-tray 응답에 로그인 필요, 요청 오류, 서버 저장 준비 전, 성공·실패 상태의 한국어 메시지를 추가했습니다.
- 개선내 후보 API가 찍을 곳, 쉬어갈 곳, 하루 코스, 제대로 계획으로 이어지는 nextActions를 함께 내려주도록 맞췄습니다.
- 개선/lab/journey 화면에 남아 있던 DB 표현을 내 출사 저장과 서버 저장 기준으로 정리했습니다.
- 개선저장 전에는 브라우저에만 남고, 사용자가 저장을 눌렀을 때만 서버에 남는다는 흐름이 더 분명해졌습니다.
- 개선/lab/journey와 매거진 초안 응답에서 DB·마이그레이션 같은 기술 용어를 서버 저장 준비 안내로 바꿨습니다.
- 개선Lab 추천 카드와 사후 정리 모달의 사진 없는 상태 문구를 사진 추가 전으로 맞췄습니다.
- 개선/api/ai/magazine-draft 응답에 초안 편집, 사진 추가, 내 출사 계획, 사후 흐름으로 이어지는 nextActions를 추가했습니다.
- 개선매거진 초안 subtitle과 DB 미준비 안내에서 오래된 카드 표현을 내 출사 매거진 흐름에 맞게 정리했습니다.
- 개선/lab/style에서 저장된 진단 신뢰도가 없을 때 기본 72점 같은 예시 숫자를 보여주지 않도록 정리했습니다.
- 개선공유 코드나 체험용 결과는 실제 문항 신뢰도와 구분해 표시하고 추천 기준 칩도 스타일 코드·오늘 조건 중심으로 맞췄습니다.
- 개선/lab/journey 저장 요약에서 실제 점수가 없을 때 예시 점수를 보여주지 않고 비워두도록 정리했습니다.
- 개선/api/outings/from-lab 응답에 내 출사 흐름, 제대로 계획, 사진 정리, 하루 코스 nextActions를 추가했습니다.
- 개선/lab/journey 사전·현장·사후 지표 카드가 예시값 대신 선택 목적, 위치, 임시 기록 상태를 기준으로 보이도록 정리했습니다.
- 개선현장 단계의 위치와 사진 수, 사후 단계의 묶을 기록과 저장 상태가 현재 브라우저 기록에 맞춰 표시됩니다.
- 개선/lab/plan 자동 코스의 기준 보기 패널에 새벽·오전·오후·저녁 단계별 배치 근거를 추가했습니다.
- 개선각 단계가 내 후보인지 추천 보완인지, 어떤 시간·역할 기준으로 들어갔는지 바로 확인할 수 있게 했습니다.
- 보안/api/photos/quick POST 요청에 Zod body 검증을 추가해 잘못된 사진 정리 요청을 명확한 JSON 오류로 돌려주도록 했습니다.
- 개선기존 사진 1~3장 제한, 280자 메모 제한, 목적·위치 전달 흐름은 유지했습니다.
- 개선/api/nearby 응답에 찍을 곳, 쉬어갈 곳, 하루 코스, 제대로 계획으로 이어지는 nextActions 링크를 추가했습니다.
- 개선/api/rest 응답에도 쉬어갈 곳, 찍을 곳, 하루 코스, 제대로 계획 연결 링크를 추가해 빠른 단계 API 흐름을 맞췄습니다.
- 개선/api/course/daily 응답에도 하루 코스, 찍을 곳, 쉬어갈 곳, 사진 정리, 제대로 계획 연결 링크를 추가했습니다.
- 개선/api/condition/today와 /api/score/today 응답에도 오늘 조건에서 찍을 곳, 쉬어갈 곳, 하루 코스, 제대로 계획으로 이어지는 링크를 추가했습니다.
- 개선/api/photos/quick 응답의 nextActions도 빠른 5단계와 업로드, 내 출사 흐름, Travelog 초안으로 이어지도록 보강했습니다.
- 개선/lab/quick 쉬어갈 곳 단계에서 목적별 필터와 기본 필터가 같은 조건을 중복으로 보여주지 않도록 정리했습니다.
- 개선별·야경, 일출·일몰, 안개 목적에서는 맥락형 라벨을 우선 남겨 필터 선택이 더 간결하게 보이도록 했습니다.
- 개선/lab/plan 자동 코스가 내 후보를 우선 쓰되, 촬영 후보나 쉬어갈 곳 역할이 비어 있으면 부족한 역할만 추천으로 얇게 보완하도록 정교화했습니다.
- 개선음식점만 담거나 촬영지만 담은 경우에도 4단계 코스가 촬영·휴식 흐름을 함께 갖추도록 보완했습니다.
- 개선/lab/quick 사진 정리 단계에 목적, 위치, 1~3장 제한, EXIF·메모·Travelog 연결 정보를 한눈에 보는 칩을 추가했습니다.
- 개선/api/photos/quick 응답에도 같은 handoff 정보를 추가해 사진 정리 화면과 후속 API가 같은 기준을 공유하게 했습니다.
- 개선/lab/plan 자동 코스 제안에 출발지 기준 칩과 근거 설명을 추가해 위치 기준 이동 시간을 더 쉽게 확인할 수 있게 했습니다.
- 개선/lab/quick 하루 코스 미리보기에도 출발지 기준 칩과 생성 근거를 연결해, 빠르게 보기에서 시작한 위치 기준이 제대로 만들기까지 이어지게 했습니다.
- 개선/api/course/daily 응답에도 목적, 출발지, 핵심 시간대, 후보 앵커, 동선 기준 handoff를 추가해 자동 코스 화면과 API가 같은 요약 단서를 공유하게 했습니다.
- 개선/api/course/daily 시간표가 일출·일몰, 안개, 야경처럼 빛 시간과 이동 여유를 반영한 실제 시각으로 내려오도록 정교화했습니다.
- 개선/lab/plan 기준 보기에서 오늘 조건 API 시간표를 함께 보여줘, 자동 코스 제안의 빛 시간·출발·도착 기준을 화면에서 바로 확인할 수 있게 했습니다.
- 개선/lab/quick·/lab/plan·/lab/style·/lab/journey의 hero, 패널, 점수 카드, 단계 버튼이 5개 시각 테마 토큰을 실제 표면에 반영하도록 맞췄습니다.
- 버그픽스Lab 패널 안에 남아 있던 흰색 전용 텍스트·칩·border 유틸을 테마 표면 토큰으로 덮어 light 계열 테마에서도 읽히도록 보강했습니다.
- 개선Lab 피드백, 내 후보 트레이, 내 출사 저장 모달도 5테마 표면 토큰을 따라가도록 보강했습니다.
- 개선/lab 인덱스 hero, 3개 진입 카드, 안내 노트도 5테마 표면 토큰을 따르도록 연결해 PC에서도 테마 차이가 보이게 했습니다.
- 개선PC에서도 Editorial, Modern, Minimal Mono, Cinematic, Vivid 테마 차이가 배경·카드·버튼·강조색으로 더 분명하게 보이도록 정리했습니다.
- 개선/api/condition/today 응답에 먼저 볼 카드, 좋은 조건, 주의 조건, 출처 기준, 다음 단계 요약을 담은 insights를 추가했습니다.
- 개선/api/condition/today 응답에 목적, 기준 위치, 조건 카드 수, 강한 조건, 주의 조건 handoff를 추가했습니다.
- 개선/api/score/today 응답에 오늘 목적, 강한 조건, 주의 조건, 장소 단서, 출처 반영도를 담은 insights를 추가했습니다.
- 개선/api/score/today 응답에 목적 점수, 기준 위치, 종합 점수, 첫 장소 후보, 출처 수 handoff를 추가했습니다.
- 개선/api/nearby 응답에 목적, 필터, 다양성, 보완, 결과 기준을 담은 insights를 추가해 장소 후보가 섞여 나오는 이유를 더 쉽게 확인할 수 있게 했습니다.
- 개선/api/nearby 응답에 목적, 기준 위치, KTO 분류, 거리 chip, 후보 수 handoff를 추가해 찍을 곳 화면과 API 요약 기준을 맞췄습니다.
- 개선/api/rest 응답에 목적, 거리, 필터, 후보, 코스 연결 기준을 담은 insights를 추가해 쉬어갈 곳 추천 이유를 더 쉽게 확인할 수 있게 했습니다.
- 개선/api/rest 응답에 목적, 기준 위치, 반경, 필터, 실후보 수를 담은 handoff를 추가해 쉬어갈 곳 화면과 API 요약 기준을 맞췄습니다.
- 개선/api/course/daily 응답에 목적, 시간, 동선, 후보, 출처 기준을 담은 insights를 추가해 자동 코스 생성 근거를 더 쉽게 재사용할 수 있게 했습니다.
- 개선/api/photos/quick 응답에도 목적별 1~3장 선택 기준을 함께 내려 사진 정리 화면과 업로드 흐름이 같은 단서를 공유하도록 맞췄습니다.
- 개선/lab/quick 사진 정리 단계에 목적별 1~3장 선택 기준을 추가해 대표컷, 조건 단서, 다음 출사 메모를 더 쉽게 고를 수 있게 했습니다.
- 개선/lab/quick 하루 코스 단계에 접힘형 코스 생성 근거를 추가해 목적, 시간, 후보, 데이터 기준을 확인하고 자유롭게 수정할 수 있게 했습니다.
- 개선/api/condition/today와 /api/score/today 응답에 요청받은 좌표와 실제 적용된 중심 좌표를 함께 내려 위치 기반 점수 검증을 더 쉽게 했습니다.
- 개선/lab/plan 자동 코스가 목적과 후보 거리 기준으로 출발 준비, 촬영, 휴식, 정리·복귀 시간을 더 구체적으로 보여주도록 정교화했습니다.
- 개선/api/rest와 /api/course/daily 응답에도 요청받은 purpose, radius, rest 원문과 실제 적용된 값이 함께 보이도록 맞춰 quick 5단계 API 디버깅 기준을 통일했습니다.
- 개선/api/photos/quick 응답에 요청받은 purpose 원문과 정규화된 출사 목적을 함께 내려, 사진 정리 단계가 어떤 목적 흐름으로 이어지는지 더 쉽게 확인할 수 있게 했습니다.
- 개선/api/nearby 응답에 요청받은 KTO·거리 필터 원문과 실제 적용된 정규화 필터를 함께 내려, 공유 링크나 외부 링크 별칭을 더 쉽게 확인할 수 있게 했습니다.
- 개선자동 코스가 관광지·문화시설 복합 분류와 food, meal, cafe 같은 쉬어갈 곳 별칭을 함께 읽어 목적별 후보 배치 점수에 반영하도록 보강했습니다.
- 개선/lab/quick과 /api/nearby가 distance=nearby, 1h, hour, far 같은 외부 링크 별칭도 가까운 후보·1시간 안·주말 후보 필터로 정규화하도록 맞췄습니다.
- 개선KTO 카테고리 필터가 tourist/restaurant/cultural 정식 키뿐 아니라 12·14·39, culture, food, attraction 같은 별칭도 같은 색·필터 체계로 해석하도록 보강했습니다.
- 버그픽스/lab/quick?step=rest가 restaurant, cultural, convenience 쿼리 별칭도 기존 식사·문화·주차 필터로 정규화해 공유 링크와 API 필터 표현이 어긋나지 않게 했습니다.
- 개선/api/course/daily 응답에 촬영지와 쉬어갈 곳 앵커가 실제로 잡혔는지, 후보가 없을 때 어떤 fallback 상태인지 확인할 수 있는 메타를 추가했습니다.
- 개선/api/rest 응답에 정규화된 쉬어갈 곳 필터, 후보 타입별 실제 장소 여부, 보조 후보 fallback 사유를 담아 UI가 추천 근거를 더 투명하게 보여줄 수 있게 했습니다.
- 버그픽스/api/photos/quick에서 lat/lng가 없을 때 0,0 좌표가 붙지 않도록 정리해, 위치 정보가 있을 때만 업로드·Travelog 링크에 좌표를 넘깁니다.
- 개선/api/photos/quick 응답에 목적·좌표 반영 여부, 1~3장 제한, Travelog·내 출사 후속 이동 링크를 함께 담도록 보강했습니다.
- 개선/api/rest가 KTO 문화시설 후보를 실내·문화 타입으로 함께 돌려주고, rest=culture 필터를 지원하도록 확장했습니다.
- 개선/api/rest가 rest 또는 kind 쿼리로 카페·식사·주차·편의 필터를 직접 받도록 맞추고, 적용 필터와 반환 개수를 source 메타에 함께 표시합니다.
- 개선/lab/quick 찍을 곳 추천 API가 KTO 분류와 거리 필터 적용 상태, fallback 이유, 다양성 선택 방식을 함께 돌려주도록 보강했습니다.
- 버그픽스/lab/quick 내 후보가 계정 저장 만료 시각을 넘긴 뒤에는 브라우저 보관 목록에서도 다시 살아나지 않도록 정리했습니다.
- 버그픽스/lab/quick 내 후보 동기화 안내가 페이지 이동이나 후보 비우기 뒤에도 남지 않도록 메시지 타이머를 정리했습니다.
- 버그픽스/lab/plan 자동 코스 안내가 연속 조작 중에도 최신 상태에 맞게 유지되도록 토스트 타이머를 정리했습니다.
- 버그픽스/lab/quick 내 후보를 삭제하거나 모두 비웠을 때 로그인 안내와 동기화 메시지가 후보 수에 맞게 바로 정리되도록 보완했습니다.
- 개선/api/rest 응답에 실제 기준 좌표, 반경 후보 수, 연결된 장소 수를 함께 담아 쉬어갈 곳 추천이 어떻게 보완됐는지 더 쉽게 확인할 수 있게 했습니다.
- 개선/lab/plan 자동 코스 결과에서 초안을 바로 비우고, 실수했을 때 직전 코스로 되돌릴 수 있는 안전한 흐름을 추가했습니다.
- 개선하루 코스 API가 음식점 후보를 중심 촬영지로 잡지 않도록, 출사 목적에 맞는 관광지·문화시설 후보를 먼저 고르고 음식점은 쉬어갈 곳으로 분리해 배치합니다.
- 개선하루 코스 API가 출사 목적별 시간 기준을 함께 알려주도록 보강했습니다. 별·은하수, 일출·일몰, 안개, 야경처럼 시간대가 중요한 코스의 출발·도착 여유를 더 쉽게 확인할 수 있습니다.
- 개선찍을 곳 추천 API가 KTO 분류나 거리 조건이 너무 좁아도 빈 목록으로 끝나지 않도록, 조건 결과 수를 함께 알려주면서 가볼 만한 후보를 부드럽게 보완합니다.
- 개선/lab/quick 하루 코스 단계에 가까운 흐름, 반나절 흐름, 주말 후보 같은 거리 기반 Pace 칩을 추가해 자동 코스와 같은 기준으로 읽히게 했습니다.
- 개선하루 코스 API 응답에 기준 후보까지의 거리 흐름, 예상 편도 이동 시간, 목적별 이동 주의 문구를 함께 내려주도록 보강했습니다.
- 개선자동 코스로 만들기 근거 패널에 가까운 흐름, 반나절 흐름, 주말 후보 같은 거리 흐름과 예상 편도 이동 시간을 함께 보여주도록 보강했습니다.
- 개선빠른 사진 정리 API가 초안 응답에도 사진 수 제한, 목적별 메모 힌트, 좌표, 임시 초안 정보를 함께 내려주고 사용자별 응답은 캐시하지 않도록 정리했습니다.
- 개선제대로 계획에서 자동 코스를 만들면 배치 근거 패널을 바로 열어, 어떤 기준으로 시간대와 후보가 묶였는지 한 번에 확인할 수 있게 했습니다.
- 개선빠른 출사 계획의 하루 코스 API가 중심 촬영지와 쉬어갈 곳 후보를 각 단계에 함께 붙이고, 예상 이동 시간을 메타로 내려주도록 보강했습니다.
- 개선빠른 출사 계획의 쉬어갈 곳 API가 요청 반경 안의 후보를 먼저 고르고, 반경 안 후보가 없을 때만 주변 후보로 부드럽게 보완하도록 정리했습니다.
- 개선빠른 출사 계획의 찍을 곳 화면에서 분류와 거리 필터가 너무 좁아 후보가 비어도, 조건을 유지한 채 비슷하게 가볼 만한 주변 후보를 함께 보여주도록 보완했습니다.
- 개선빠른 출사 계획의 찍을 곳 화면도 KTO 분류·거리 필터 후 점수 70%와 다양성 30% 기준으로 다시 5곳을 골라 지역과 분류가 더 자연스럽게 섞이도록 했습니다.
- 개선빠른 사진 정리 API에 사전 조회를 추가해 1~3장 제한, 메모 길이, 출사 목적별 메모 프롬프트, 업로드 이동 경로를 미리 받을 수 있게 했습니다.
- 개선하루 코스 API가 오늘 조건 후보 풀에서 대표 촬영지와 식사 후보를 함께 내려주도록 보강했습니다. 자동 코스 화면과 API가 같은 후보 맥락을 공유합니다.
- 개선쉬어갈 곳 API가 오늘 조건의 KTO 후보 풀에서 실제 카페·식사 후보를 함께 내려주도록 보강했습니다. 출사 목적별 순서는 유지하면서 화면과 API의 데이터 흐름을 맞췄습니다.
- 개선Nearby API가 KTO 분류·거리 필터를 적용한 뒤에도 점수 70%와 다양성 30% 기준으로 다시 5곳을 골라 같은 지역이나 같은 분류가 몰리지 않도록 했습니다.
- 개선오늘 조건의 내부 장소 추천 풀을 넓혀 KTO 분류·거리 필터를 적용해도 후보가 더 잘 남도록 했습니다. 화면에는 기존처럼 핵심 5개만 보여줍니다.
- 개선담아둔 후보에 거리 정보가 없어도 관광지·문화시설 같은 KTO 분류 단서가 메타 줄에 보이도록 정리했습니다.
- 개선빠른 계획의 쉬어갈 곳 단계에서 카페와 식사 후보가 섞이지 않도록, 음식점 후보를 더 분명하게 골라 보여주도록 정리했습니다.
- 개선오늘 조건의 장소 추천 5개를 고를 때 지역뿐 아니라 KTO 관광지·음식점·문화시설 분류도 함께 분산해서 보도록 했습니다.
- 개선자동 코스가 비어 있는 단계를 추천 후보로 보완할 때, 연결된 KTO 분류를 읽어 관광지·문화시설 같은 분류 칩을 함께 보여주도록 했습니다.
- 개선/api/nearby가 Quick의 가까운 후보·1시간 안·주말 후보 거리 필터를 함께 받아, 화면과 API의 장소 추천 기준이 더 일관되도록 했습니다.
- 버그픽스/lab/quick 찍을 곳 단계에서 먼저 후보를 5개로 자른 뒤 필터링하던 흐름을 전체 후보 정렬 후 필터링하도록 바꿔, KTO·거리 필터 결과가 더 풍부하게 보이도록 했습니다.
- 개선자동 코스 보완 후보 링크가 관광지와 문화시설을 함께 살펴보도록 KTO 다중 분류 URL을 더 자연스럽게 연결했습니다.
- 개선/api/nearby에서도 관광지·음식점·문화시설 KTO 분류를 여러 개 함께 받아 Lab 추천 후보와 같은 필터 흐름으로 응답하게 했습니다.
- 개선/lab/quick의 찍을 곳 단계에서도 관광지·음식점·문화시설 분류를 여러 개 함께 켜고, 거리 필터와 공유 URL에 그대로 유지되도록 정리했습니다.
- 개선/places와 /api/places에서 관광지·음식점·문화시설 KTO 분류를 여러 개 함께 고를 수 있게 연결했습니다.
- 개선공유 URL이나 외부 링크의 purpose 값에 공백, 하이픈, 슬래시, 가운데점이 섞여도 같은 출사 목적 흐름으로 이어지도록 정규화를 보강했습니다.
- 개선/lab/quick과 /lab/plan의 빠르게·제대로 전환 및 5단계 링크 묶음에 내비게이션 라벨과 현재 위치 정보를 보강했습니다.
- 개선/lab/style, /lab/journey, 점수 설명 모달의 주요 CTA 링크를 flex 기반 터치 박스로 맞춰 모바일 터치 안정성을 높였습니다.
- 개선/lab/quick 상단의 목적·스타일 chip을 44px 터치 기준에 맞춰 모바일에서도 안정적으로 누를 수 있게 정리했습니다.
- 개선/lab/journey의 사전·실행·사후 전환을 tablist와 tabpanel 구조로 정리해 보조기기에서 현재 단계를 더 명확히 읽을 수 있게 했습니다.
- 버그픽스일출·일몰, 별·은하수, 반영, 계절, 야경, 안개 같은 한글 목적값도 빠른 계획과 자동 코스에서 현재 목적 체계로 자연스럽게 이어지도록 정리했습니다.
- 개선Lab 주요 화면의 상단 이동 링크와 Style 보조 CTA를 44px 터치 기준에 맞춰 모바일에서 더 안정적으로 누를 수 있게 정리했습니다.
- 개선헤더의 테마 선택 칩도 44px 터치 기준에 맞춰 태블릿과 터치 노트북에서 더 안정적으로 누를 수 있게 정리했습니다.
- 버그픽스/lab/quick의 장소·휴식 필터 링크 높이를 44px 기준으로 맞춰 모바일에서 더 안정적으로 탭할 수 있게 정리했습니다.
- 개선내 후보 코스 배치가 KTO 분류와 목적 적합도를 더 반영하고, 코스 제안 기준에 이동 시간 감각을 함께 보여주도록 보강했습니다.
- 버그픽스공통 display 텍스트와 lessons 본문에서 남아 있던 음수 자간을 0 기준으로 정리해 5테마 타이포 규칙과 맞췄습니다.
- 버그픽스/api/photos/quick이 사진 0장 요청을 거절하고, 중복 photo id를 정리한 뒤 1~3장 기준으로 이어가도록 보강했습니다.
- 개선/lab/plan의 코스 제안 기준에 목적 일치, 후보 종류, 거리 범위, KTO 분류 단서를 함께 보여주도록 보강했습니다.
- 개선내 후보로 자동 코스를 만들 때 출사 목적 일치도와 거리 범위를 함께 보아 더 자연스러운 순서로 배치하도록 보강했습니다.
- 개선/lab/style과 /lab/journey도 Modern 테마의 배경, hero, 주요 카드 표면 스타일을 더 선명하게 받도록 연결했습니다.
- 개선/lab/plan도 Modern 테마의 배경, hero, 선택 목적 카드, 자동 코스 보드 스타일 신호를 받도록 연결을 보강했습니다.
- 버그픽스자동 코스가 sessionStorage에 남은 추천 보완 항목을 복원할 때도 예전 목적 alias를 현재 목적 id로 정규화하도록 보강했습니다.
- 개선/api/nearby, /api/rest, /api/course/daily가 출사 목적 alias를 정규화하고, 쉬어갈 곳과 하루 코스 응답을 목적별로 더 다르게 보여주도록 보강했습니다.
- 버그픽스자동 코스 단계 chip과 하루 코스 API가 milkyway, reflection 같은 예전 목적값을 현재 목적 체계로 정규화하도록 보강했습니다.
- 개선빠른 사진 정리 API가 업로드 이동 URL에 사진 업로드 타입, 출사 목적, 기준 위치를 함께 담도록 보강했습니다.
- 개선자동 코스 단계 카드에 후보가 담긴 출사 목적 chip을 함께 표시해 여러 목적 후보가 섞여도 판단하기 쉽게 했습니다.
- 개선빠른 사진 정리에서 업로드로 이동한 뒤 로그인해도 선택한 출사 목적과 기준 위치가 함께 유지되도록 정리했습니다.
- 개선찍을 곳에서 담은 음식점·카페 후보도 자동 코스에서는 촬영지가 아니라 쉬어갈 곳·식사 단계로 배치되도록 보정했습니다.
- 개선하루 코스 단계에 목적, 이동 거리와 시간, 촬영 후보 분류, 핵심 시간대를 요약 chip으로 보여주도록 정리했습니다.
- 버그픽스빠른 사진 정리 초안 API가 1~3장 흐름과 한 줄 메모 길이를 검증하도록 보강했습니다.
- 개선자동 코스 제안 근거 패널에 목적별 기준 타임라인을 칩으로 표시해 출발·촬영·식사 흐름을 더 직관적으로 확인할 수 있게 했습니다.
- 개선자동 코스로 만든 각 단계 카드에 거리·KTO 분류·자동 보완 칩을 표시해 후보 배치 이유를 더 쉽게 볼 수 있게 했습니다.
- 버그픽스내 후보 트레이에서 KTO 카테고리 내부 키가 보이지 않도록 관광지·음식점·문화시설 라벨로 변환했습니다.
- 개선자동 코스 근거 보기에서 단계별 후보의 가까운 거리와 KTO 카테고리 단서를 함께 보여주도록 정리했습니다.
- 개선내 후보 메타를 활용해 코스 배치가 어떤 후보 묶음에 기대고 있는지 더 쉽게 확인할 수 있습니다.
- 개선quick에서 담은 내 후보가 거리, KTO 카테고리, 썸네일 단서를 함께 보존하도록 저장 메타를 확장했습니다.
- 개선내 후보 트레이에 거리와 카테고리 단서가 먼저 보이도록 정리해 자동 코스 전 단계의 판단 맥락을 높였습니다.
- 개선/lab/plan의 자동 코스 보완 후보를 누를 때 현재 purpose와 lat/lng가 /lab/quick으로 이어지도록 정리했습니다.
- 개선추천 보완 카드에서 다시 후보를 찾더라도 같은 위치 기준으로 찍을 곳·쉬어갈 곳 흐름을 이어갈 수 있습니다.
- 개선/lab/plan이 저장된 내 출사 outing id를 읽어 상단 상태와 공유 URL에 함께 보존하도록 정리했습니다.
- 개선quick·style에서 이어진 lat/lng를 제대로 계획 화면의 Journey 미리보기 초기 위치에도 반영하도록 연결했습니다.
- 개선내 출사 저장 성공 후 열기 링크가 outing id와 함께 선택 목적, lat/lng를 유지하도록 정리했습니다.
- 개선저장 직후 다시 /lab/plan으로 돌아가도 같은 위치 기반 quick·plan 흐름을 이어갈 수 있습니다.
- 개선/lab/journey가 quick·style 흐름에서 넘어온 lat/lng를 읽어 초기 여정 스냅샷과 업로드 링크에 반영합니다.
- 개선사후 정리에서 바로 내 출사로 저장할 때도 선택 위치가 spots와 quickChips에 남아 기록 흐름이 끊기지 않습니다.
- 개선/lab/style에서 찍을 곳, 코스, 제대로 계획으로 이동할 때 선택 목적과 현재 위치가 이어지도록 정리했습니다.
- 개선스타일 결과에서 바로 다음 출사 흐름으로 넘어가도 /lab/quick과 /lab/plan이 같은 lat/lng 컨텍스트를 유지합니다.
- 개선/lab/quick 사진 정리 단계에서 사진 업로드, Travelog 초안, 사후 정리 링크가 선택한 목적과 현재 위치를 함께 이어받습니다.
- 개선빠르게 흐름에서 장소를 잡은 뒤 사진을 정리할 때도 lat/lng 컨텍스트가 유지되어 다음 기록으로 자연스럽게 이어집니다.
- 개선/lab/plan에서 담아둔 후보가 없어도 목적별 추천 후보로 4단계 코스 초안을 먼저 만들 수 있습니다.
- 개선자동 초안은 추천 후보로 표시되고, 되돌리기와 단계별 수정을 그대로 사용할 수 있습니다.
- 개선/lab/quick 공유 링크가 장소 분류, 거리, 쉬어갈 곳 필터까지 함께 담아 좁혀본 화면 그대로 공유됩니다.
- 개선빠른 계획 공유 후 다시 열어도 출사 목적과 기준 위치, 현재 단계 맥락이 유지됩니다.
- 개선/lab/quick 쉬어갈 곳 카드에서 실제 후보가 부족할 때도 카페·음식점·문화시설·주차 후보를 같은 Lab 필터 화면으로 이어줍니다.
- 개선하루 코스가 참고하는 휴식 후보도 선택한 목적과 기준 위치를 유지합니다.
- 개선/lab/quick 찍을 곳 단계의 가까운 후보, 1시간 안, 주말 후보, 계절 후보 chip이 같은 Lab 화면 안에서 필터를 바꾸도록 정리됐습니다.
- 개선별, 야경, 안개, 일출·일몰 목적별 보조 chip과 도움 카드도 선택한 목적과 위치 맥락을 유지합니다.
- 개선/lab/plan 자동 코스에서 비어 있는 시간대를 채우는 추천 후보가 Lab의 장소·쉬어갈 곳 단계로 이어져, 다시 후보를 고르기 쉬워졌습니다.
- 개선식사, 문화시설, 관광지 보완 후보가 선택한 출사 목적을 유지한 채 /lab/quick 안에서 이어집니다.
- 개선/lab/quick 쉬어갈 곳 단계의 카페·대기, 음식점, 문화시설, 주차·복귀 chip이 같은 Lab 화면 안에서 후보를 바로 좁혀보도록 연결됐습니다.
- 개선별, 야경, 일출·일몰, 안개 목적에서도 휴식 후보를 고를 때 목적과 위치 맥락을 유지합니다.
- 개선/lab/quick 찍을 곳 단계의 KTO 분류와 거리 chip이 같은 Lab 화면 안에서 후보를 바로 좁혀보도록 연결됐습니다.
- 개선관광지, 문화시설, 음식점과 가까운 후보, 1시간 안, 주말 후보를 조합해 보면서도 목적과 위치 맥락을 유지합니다.
- 개선/lab/plan 자동 코스의 보완 후보가 지도 목적 링크로 빠지지 않고, 같은 목적을 유지한 /lab/quick 장소 단계로 이어지게 했습니다.
- 개선일몰, 별, 풍경, 인물, 야경, 안개 목적에서 후보를 더 찾을 때도 내 후보 저장 흐름을 계속 사용할 수 있습니다.
- 개선/lab/plan에서 담은 후보가 없어도 수동으로 4단계 코스 틀을 먼저 열고, 각 단계에서 후보 찾기로 이어갈 수 있게 했습니다.
- 개선자동 코스가 부담스러운 경우에도 새벽·오전·오후·저녁 구조를 먼저 잡고 천천히 후보를 채울 수 있습니다.
- 개선/lab/quick 하루 코스가 목적별 흐름에 골든아워, 새벽 안개, 야간 촬영, 예상 이동 시간을 더 구체적으로 보여주도록 보강했습니다.
- 개선거리 chip 기준도 가까운 후보, 1시간 안, 주말 후보 감각에 맞춰 더 넓은 출사 범위로 정리했습니다.
- 버그픽스/lab의 기준 위치를 바꿀 때 URL에 남아 있던 예전 목적 alias를 현재 목적 id로 정리해 이어가도록 보강했습니다.
- 개선위치를 전주, 서울, 현재 위치 등으로 바꿔도 출사 목적 맥락이 더 일관되게 유지됩니다.
- 버그픽스/lab/journey에서 내 출사로 저장한 뒤 열기 링크가 예전 도구 화면이 아니라 /lab/plan 흐름으로 이어지도록 정리했습니다.
- 개선저장한 내 출사를 다시 열 때도 선택한 출사 목적 query를 함께 넘겨 빠르게와 제대로 흐름의 맥락을 유지합니다.
- 버그픽스/lab 전역 목적 context와 내 후보 저장 검증이 milkyway, reflection 같은 예전 목적 alias를 현재 목적 id로 정규화하도록 보강했습니다.
- 개선오래된 공유 링크나 저장 후보를 통해 들어와도 빠르게와 제대로 흐름의 출사 목적이 더 안정적으로 이어집니다.
- 버그픽스/lab/style이 Quick에서 받은 출사 목적을 오늘 점수, 위치 변경, 내 출사 흐름, 공유 링크까지 이어 넘기고, 예전 목적 alias도 자연스럽게 정규화하도록 보강했습니다.
- 개선촬영성향을 확인한 뒤 다시 빠르게나 제대로 흐름으로 이동해도 선택한 목적이 유지됩니다.
- 버그픽스/lab/style FrameType 추천과 /lab/journey 상단 이동 링크가 내 출사 흐름으로 이어지도록 문구와 목적 전달을 정리했습니다.
- 개선실험 페이지 안에서는 예전 도구 화면보다 /lab/plan 중심으로 이어져 빠르게와 제대로 흐름이 더 자연스럽습니다.
- 버그픽스/lab/quick 상단 내 스타일 찾기 링크가 현재 위치와 선택한 출사 목적을 유지한 채 /lab/style로 이어지도록 정리했습니다.
- 개선빠르게 흐름에서 촬영 성향을 확인하러 이동해도 앞 단계의 장소 맥락이 끊기지 않습니다.
- 버그픽스/lab/quick 사진 정리 단계의 업로드 링크가 사진 업로드 타입과 출사 목적을 함께 넘기도록 정리했습니다.
- 개선로그인 복귀 뒤에도 사진 정리 맥락이 더 분명하게 이어집니다.
- 버그픽스/lab/plan에서 출사 목적을 바꿔도 이전 목적의 추천 보완 후보가 남지 않도록 정리했습니다.
- 개선자동 코스가 현재 선택한 목적 기준으로 다시 이어져, 별·안개·일출일몰 흐름이 섞이지 않습니다.
- 버그픽스/upload 완료 화면과 내 출사 연결 상태에서 예전 명칭이 보이지 않도록 사용자 문구를 정리했습니다.
- 개선Lab에서 이어진 사진 업로드가 같은 흐름의 내 출사 기록으로 자연스럽게 보이도록 맞췄습니다.
- 버그픽스/upload이 purpose 또는 outing 링크로 들어와도 사진 업로드 흐름을 바로 열도록 정리했습니다.
- 개선업로드 화면에 선택한 출사 목적을 보여주고, 사진 업로드 이벤트에도 목적 맥락을 남깁니다.
- 버그픽스/lab/journey에서 사진을 추가할 때 선택한 출사 목적이 /upload까지 이어지도록 정리했습니다.
- 개선사후 정리 중 사진이 더 필요할 때도 같은 목적 맥락으로 업로드를 시작할 수 있습니다.
- 버그픽스/lab/journey가 tab=post 같은 링크를 사후 정리 탭으로 바로 열도록 정리했습니다.
- 개선내 출사 계획 공유 링크도 현재 탭과 출사 목적을 함께 담아 같은 맥락으로 이어집니다.
- 버그픽스/lab/style 공유 버튼이 스타일 결과와 기준 위치를 함께 담도록 정리했습니다.
- 개선공유 받은 사람이 같은 스타일 결과와 주변 추천 맥락을 이어서 볼 수 있게 했습니다.
- 버그픽스/lab/quick 공유 버튼이 현재 step, 목적, 기준 위치를 함께 담도록 정리했습니다.
- 개선공유 받은 사람이 같은 빠른 계획 화면과 위치 기준에서 이어볼 수 있게 했습니다.
- 버그픽스/lab/plan 공유 버튼이 선택한 목적과 기준 위치를 함께 담도록 정리했습니다.
- 개선공유로 들어온 사용자가 같은 계획 맥락에서 빠르게 이어볼 수 있게 했습니다.
- 버그픽스/lab/plan에서 장소를 찾으러 갈 때 선택한 목적과 기준 위치가 함께 유지되도록 정리했습니다.
- 개선자동 코스 보드의 빈 상태 CTA가 plan 페이지의 현재 맥락을 받아 빠른 계획 장소 단계로 이어집니다.
- 버그픽스Lab 추천 카드에서 위치를 바꾸러 갈 때 현재 기준 위치가 유지되도록 정리했습니다.
- 개선/lab/quick과 /lab/style 추천 모달이 각 화면의 위치 링크를 함께 넘기도록 맞췄습니다.
- 버그픽스내 후보 트레이가 비어 있을 때 장소 찾으러 가기 링크도 현재 위치와 출사 목적을 유지하도록 정리했습니다.
- 개선빠른 계획 안에서 후보를 담기 전후 모두 같은 기준으로 장소 탐색을 이어갈 수 있게 했습니다.
- 버그픽스조건이 맞지 않는 출사 목적에서 점수 설명을 보고 조건을 다시 볼 때도 선택 목적과 위치가 유지되도록 정리했습니다.
- 개선점수 설명 모달의 출사 만들기 링크와 조건 다시 보기 링크가 같은 위치 기준을 공유하도록 맞췄습니다.
- 버그픽스/lab/plan의 자동 보완 후보에서 빠른 계획으로 돌아갈 때 선택한 출사 목적이 유지되도록 보강했습니다.
- 개선담아둔 후보가 없을 때 장소 찾으러 가는 링크도 현재 목적을 품고 이어지도록 맞췄습니다.
- 버그픽스/lab/quick의 찍을 곳에서 쉬어갈 곳으로 넘어갈 때 선택한 목적과 위치가 함께 유지되도록 정리했습니다.
- 개선안개·인물 목적 도움 카드와 쉬어갈 곳 기본 필터가 같은 quick step 흐름을 공유하도록 맞췄습니다.
- 개선/lab/quick, /lab/plan, /lab/journey가 milkyway, sunrise, reflection 같은 목적 alias도 자연스럽게 받아들이도록 정리했습니다.
- 개선공유 링크나 이전 실험 링크의 목적 값이 조금 달라도 점수, 장소, 코스 흐름이 끊기지 않게 했습니다.
- 개선/lab/plan의 코스 제안 기준에서 실제 배치된 시간대, 내 후보 수, 추천 보완 수를 한눈에 볼 수 있게 했습니다.
- 버그픽스코스 후보를 다른 시간대로 옮겨도 선택한 출사 목적의 시간표와 설명이 유지되도록 정리했습니다.
- 개선모바일 상단 헤더와 사이드바의 주요 버튼·링크를 44px 터치 기준에 맞춰 누르기 쉽게 정리했습니다.
- 개선테마 전환, 알림, 변경 이력, 로그인·프로필·로그아웃 같은 전역 조작도 같은 기준으로 맞췄습니다.
- 개선Lab 피드백 입력창이 iOS에서 확대되지 않도록 모바일 글자 크기를 조정했습니다.
- 개선피드백 제출과 수정 버튼, 저장 상태 안내를 모바일·보조기기 기준에 맞춰 정리했습니다.
- 개선/lab/journey의 단계 점, sticky CTA, 후속 액션 버튼을 모바일에서 더 누르기 쉽게 넓혔습니다.
- 개선다녀온 뒤 정리 모달에도 배경 스크롤 잠금을 더해 작은 화면에서 조작이 흔들리지 않게 했습니다.
- 개선내 출사 저장 모달에 배경 스크롤 잠금, 바깥 클릭 닫기, Esc 닫기를 더했습니다.
- 개선Lab 위치 선택 버튼과 상태 안내를 모바일 터치·보조기기 기준에 맞춰 정리했습니다.
- 개선추천 기준 모달에 배경 스크롤 잠금과 Esc 닫기를 더했습니다.
- 개선추천 카드의 주요 링크와 기준 버튼을 모바일에서 더 누르기 쉽게 정리했습니다.
- 개선내 후보 트레이의 비우기, 로그인 안내, 후보 삭제 버튼을 모바일에서 더 누르기 쉽게 넓혔습니다.
- 개선후보 저장 동기화 안내가 보조기기에서도 상태 메시지로 읽히도록 정리했습니다.
- 개선자동 코스의 후보 수정 모달에 배경 스크롤 잠금과 Esc 닫기를 더했습니다.
- 개선코스 수정 버튼들의 터치 영역을 넓혀 모바일에서 더 누르기 쉽게 정리했습니다.
- 개선테마 선택 칩과 메뉴 버튼의 터치 영역을 넓히고, 키보드로 닫은 뒤 초점이 돌아오도록 정리했습니다.
- 개선테마를 여러 번 전환해도 폰트 preconnect 링크가 중복으로 쌓이지 않도록 정리했습니다.
- 개선점수 산출과 조건 상세 모달을 열었을 때 배경 스크롤이 움직이지 않도록 정리했습니다.
- 개선키보드 Esc로 Lab 상세 모달을 닫을 수 있게 했습니다.
- 버그픽스라이트·다크 모드와 5개 시각 테마가 서로 다른 data 속성을 쓰도록 클라이언트 적용 경로를 정리했습니다.
- 개선Lab 피드백 저장 시 선택된 시각 테마를 data-visual-theme 기준으로 읽도록 맞췄습니다.
- 개선/lab/quick의 하루 코스 단계에 시간, 장소, 보완 기준을 짧게 보여주는 제안 기준 카드를 추가했습니다.
- 개선별, 일출일몰, 안개 같은 목적별로 왜 해당 순서를 먼저 보여주는지 더 쉽게 확인할 수 있습니다.
- 개선/lab/quick의 사진 정리 단계에 출사 목적별 확인 카드와 업로드 이후 연결 동선을 추가했습니다.
- 개선별, 일출일몰, 안개, 인물 사진마다 초점, 빛, 현장 조건처럼 남겨둘 단서를 다르게 보여줍니다.
- 개선/lab/quick의 쉬어갈 곳 단계에 촬영 전후로 언제 쉬면 좋은지 볼 수 있는 순서 카드를 추가했습니다.
- 개선별, 일출일몰, 안개, 인물 같은 목적에 따라 음식점, 문화시설, 주차·편의 필터로 바로 이어지게 했습니다.
- 개선/lab/plan의 자동 코스 항목을 다른 시간 단계로 드래그해 옮길 수 있게 했습니다.
- 개선모바일에서는 기존 수정 버튼을 유지하고, PC에서는 드래그 이동 안내를 함께 보여줘 코스를 더 편하게 다듬을 수 있습니다.
- 개선/lab/plan에서 출사 목적에 따라 새벽, 오전, 오후, 저녁 단계의 시간표와 설명이 다르게 보이도록 정리했습니다.
- 개선담아둔 후보가 부족한 단계는 추천 후보로 부드럽게 보완하고, 코스 제안 기준과 시간 흐름을 바로 확인할 수 있게 했습니다.
- 개선/lab/quick의 찍을 곳 단계에서 관광지, 음식점, 문화시설 후보를 색상 칩과 함께 바로 좁혀볼 수 있게 했습니다.
- 개선가까운 후보, 1시간 안, 주말 후보처럼 거리 감각을 먼저 고르고, 출사 목적별 가이드와 도구로 이어지는 카드를 추가했습니다.
- 개선관광지, 음식점, 문화시설을 서로 다른 색과 칩으로 구분해 장소 카드와 필터에서 공식 데이터 종류를 더 쉽게 볼 수 있게 했습니다.
- 개선/map과 /lab/quick 장소 후보에도 같은 카테고리 색을 적용해 지도 핀과 추천 후보의 의미가 이어지도록 정리했습니다.
- 개선/lab/quick의 사진 정리 단계에 출사 목적별 메모 칩을 추가해 EXIF와 한 줄 감상을 더 가볍게 남길 수 있게 했습니다.
- 개선사진을 바로 올리거나 Travelog 메모, 사후 정리 흐름으로 이어가는 선택지를 한 화면에서 볼 수 있게 정리했습니다.
- 개선/lab/quick의 쉬어갈 곳 단계가 실제 추천 후보를 함께 보여주고, 마음에 드는 휴식 후보를 바로 담아둘 수 있게 했습니다.
- 개선하루 코스 단계가 선택한 출사 목적과 추천 장소를 바탕으로 촬영지·휴식지 중심의 순서를 더 자연스럽게 제안합니다.
- 개선KTO 음식점 데이터를 추가 반영해 쉬어갈 곳 후보로 활용할 수 있는 공개 장소 풀이 6,000건 이상으로 넓어졌습니다.
- 개선문화시설 데이터도 전체 수량에 가깝게 반영해 실내·전시·공연 기반의 출사 후보를 더 풍부하게 살펴볼 수 있게 했습니다.
- 신기능Editorial, Modern, Minimal Mono, Cinematic, Vivid 5가지 화면 테마를 사이트 전체에서 바로 바꿔볼 수 있게 했습니다.
- 개선상단·사이드바·모바일 메뉴에 테마 선택 칩을 추가하고, 선택한 테마와 라이트·다크 설정이 새로고침 뒤에도 유지되도록 했습니다.
- 개선테마별 표시 글꼴은 필요한 순간에 불러오도록 정리해 첫 화면이 느려지지 않게 했습니다.
- 버그픽스/lab/quick PC 화면에서 Modern 목업의 큰 hero, 5단계 버튼, 6점수 카드 시각이 분명하게 보이도록 Modern 전용 화면 스코프를 보강했습니다.
- 버그픽스첫 진입 때 가장 좋은 출사 목적 카드가 바로 강조되지 않던 문제를 고쳐 추천 점수 카드가 즉시 눈에 들어오도록 했습니다.
- 개선KTO 관광지 데이터를 추가 수집해 공개 장소 후보를 5,000건 이상 더 반영했습니다.
- 개선Lab 장소 추천과 지도·장소 탐색에서 활용할 수 있는 관광지 후보 풀이 더 넓어졌습니다.
- 개선/lab/quick의 장소 추천이 회원 사진이 있는 곳뿐 아니라 KTO 공식 이미지가 있는 관광지 후보도 함께 살펴보도록 추천 풀을 넓혔습니다.
- 개선가까운 후보 5곳이 한 지역이나 한 종류로 몰리지 않도록 점수와 다양성을 함께 반영해 고릅니다.
- 개선/lab/plan에서 내 후보를 자동 코스로 만들거나 수동으로 단계에 넣을 수 있게 흐름을 정리했습니다.
- 개선후보 저장 트레이의 표현을 내 후보로 통일하고 빈 상태 안내를 더 자연스럽게 다듬었습니다.
- 개선KTO 관광지 목록을 추가 수집해 새 관광지 후보 5,024건을 공개 장소 데이터로 반영했습니다.
- 개선대량 수집 뒤 관광지 후보를 안전하게 일괄 반영할 수 있는 운영 스크립트를 추가했습니다.
- 버그픽스후보 저장이나 내 출사 저장 중 로그인할 때 현재 Lab 단계와 목적 URL로 돌아오도록 복귀 링크를 보강했습니다.
- 개선빠른 출사 계획 공유 링크가 위치 좌표는 제외하되 사용자가 고른 출사 목적은 함께 담아 맥락을 더 잘 이어가게 했습니다.
- 버그픽스담아둔 후보 저장 API가 알 수 없는 출사 목적 값을 받으면 저장 전에 비워 오래된 브라우저 데이터가 추천 흐름을 흐리지 않도록 보강했습니다.
- 버그픽스빠른 출사 계획에서 최고 점수 목적을 추천으로만 보여주고, 사용자가 직접 고르기 전에는 다음 단계에 자동 확정해 넘기지 않도록 정리했습니다.
- 개선목적 점수 카드도 명시 선택된 목적만 강조해 추천과 선택 상태를 더 분명하게 구분했습니다.
- 버그픽스출사 목적 선택은 탭 세션 안에서만 유지되게 해 이전 방문의 목적이 다음 방문에 자동 선택처럼 남지 않도록 정리했습니다.
- 버그픽스담아둔 후보를 트레이에서 삭제하거나 비울 때 같은 후보의 저장 버튼도 즉시 다시 저장 가능 상태로 바뀌도록 동기화했습니다.
- 버그픽스후보 데이터가 유효하지 않아 저장 목록에서 제외된 경우 버튼만 저장됨으로 남지 않도록 저장 후 상태를 다시 확인합니다.
- 보안Lab 후보 저장 트레이에 들어오는 링크를 내부 경로로 제한해 잘못된 외부 링크가 표시되지 않도록 보강했습니다.
- 버그픽스브라우저에 남은 Lab 후보 데이터의 종류가 잘못된 경우 트레이 표시 전에 제외해 화면 오류를 막도록 보강했습니다.
- 버그픽스saved_tray DB 준비 전 localOnly 상태에서는 로그인 사용자에게 불필요한 로그인 안내가 뜨지 않도록 정리했습니다.
- 버그픽스브라우저에 저장된 Lab 후보 항목에 저장 시각이 없거나 잘못된 경우 목록 병합 전에 걸러내도록 보강했습니다.
- 버그픽스saved_tray 운영 DB 마이그 전 localOnly 응답을 받을 때도 담아둔 후보가 브라우저 저장 상태를 안전하게 유지하도록 보강했습니다.
- 버그픽스/lab/quick에서 담아둔 후보를 삭제하거나 비우면 /lab/plan의 4단계 자동 배치에서도 같은 후보가 함께 정리되도록 보강했습니다.
- 개선/lab/quick에서 담아둔 장소·휴식·코스·사진 후보를 5단계 완료 표시와 내 출사 진행 숫자에 바로 반영하도록 보강했습니다.
- 개선사진 정리 단계의 다음 버튼은 같은 단계에 머무르지 않고 /lab/plan의 제대로 계획 흐름으로 이어지게 정리했습니다.
- 개선목적별 출사 점수에서 Gate 같은 내부 용어를 사용자에게 더 자연스러운 조건 확인 문구로 정리했습니다.
- 개선조건이 맞지 않는 목적도 바로 버리지 않고 이유를 먼저 볼 수 있게 해, 점수 산출 흐름을 더 이해하기 쉽게 다듬었습니다.
- 신기능로그인 사용자는 /lab/quick에서 담아둔 후보를 7일 동안 계정에 저장하고, 비로그인 사용자는 기존처럼 브라우저 세션에 보관하도록 하이브리드 저장을 추가했습니다.
- 개선/lab/plan에서 담아둔 후보를 새벽·오전·오후·저녁 4단계로 자동 배치하고, 사용자가 되돌리거나 단계 위치를 수정할 수 있게 했습니다.
- 개선/lab/quick에서 담아둔 후보가 /lab/plan의 선택된 목적 영역에도 이어져, 빠르게 고른 후보를 제대로 계획에서 다시 확인할 수 있게 했습니다.
- 개선/lab/quick에서 담아둔 장소·휴식·코스·사진 메모를 허브 안에서 바로 확인하고 비울 수 있게 했습니다.
- 개선PC에서는 다음 단계 안내 옆에 저장 트레이를 표시하고, 모바일에서는 저장 항목이 있을 때만 간단히 보여 흐름을 덜 방해하게 했습니다.
- 개선/lab/quick의 찍을 곳 단계에 목적별 필터, 후보 저장, 쉬어갈 곳 연결을 추가해 장소 선택 흐름을 더 이어지게 했습니다.
- 개선쉬어갈 곳과 하루 코스 단계에 목적별 안내, 브라우저 임시 저장, 내 출사 시작 연결을 보강했습니다.
- 개선사진 정리 단계에 1~3장 업로드 준비, EXIF 확인, Travelog 메모 흐름과 목적 라벨 저장 힌트를 추가했습니다.
- 신기능/lab/plan을 추가해 빠른 계획에서 고른 출사 목적을 사전·실행·사후 내 출사 흐름으로 이어가게 했습니다.
- 개선/lab/journey 저장 흐름에 선택된 목적, 도움 도구, 현장 quick chip을 더해 목적별 준비와 기록 맥락을 보기 쉽게 했습니다.
- 개선/lab/style의 4축 막대, 추천 3개 카드, 결과별 정사각 OG 이미지를 보강해 촬영성향 이후 행동을 더 분명하게 정리했습니다.
- 개선/lab/quick의 5단계 메뉴를 모바일 가로 스크롤과 PC pill 버튼 기준으로 줄이고, 선택·완료 상태를 더 또렷하게 다듬었습니다.
- 개선목적별 점수 카드와 점수 설명 모달을 Modern 테마 기준의 큰 숫자, 둥근 카드, Magnum red hero 톤으로 정리했습니다.
- 개선8개 조건 카드의 ⓘ 상세 보기와 /admin/theme 안내를 보강하고, 6/1 이후 테마 배정 준비 코드를 추가했습니다.
- 신기능/lab/quick?step=weather를 새 빠른 출사 계획 허브로 추가하고, 오늘 조건·찍을 곳·쉬어갈 곳·하루 코스·사진 정리 5단계를 한 화면 흐름으로 묶었습니다.
- 개선목적별 점수에서 고른 출사 목적이 sessionStorage·URL·API로 이어져 장소, 휴식, 코스, 사진 정리 단계의 추천 기준으로 전달됩니다.
- 개선/lab/today는 기존 링크 호환을 위해 /lab/quick?step=weather로 이어지도록 정리했습니다.
- 신기능/lab/today에서 일출·일몰, 별, 풍경, 인물, 야경, 안개 목적별 점수를 한 번에 비교할 수 있게 했습니다.
- 개선점수 옆 ⓘ를 누르면 가중치, 환산값, Gate 이유, 출처, 도움 도구를 바텀시트로 확인할 수 있습니다.
- 개선/api/score/today 응답에 8개 조건 카드, 13개 요소, 6개 목적 점수, 추천 목적 카피를 함께 제공합니다.
- 개선Lab 피드백에 테마·기기 정보를 함께 남길 수 있게 준비하고, 관리자 통계에서 테마별 반응을 나눠 볼 수 있게 했습니다.
- 개선사진가 모집 페이지에 Modern 베타 테마를 적용해 모집 전 화면의 시각 톤을 Lab 실험 흐름과 맞췄습니다.
- 개선Editorial과 Modern 두 가지 시각 프리셋을 CSS 변수로 분리해 Lab 화면에서 더 큰 카드와 넓은 여백을 시험할 수 있게 했습니다.
- 신기능관리자 Theme Lab에서 Editorial/Modern과 라이트/다크 조합을 한 화면에서 비교할 수 있습니다.
- 개선Today Score, Lab 진입 카드, 베타 안내, 부드러운 추천 카드가 새 radius·padding·타이포 변수에 맞춰 점진적으로 반응합니다.
- 신기능공유 버튼에 Instagram, Threads, Facebook, Twitter/X, KakaoTalk, 링크 복사 선택지를 추가하고 채널별 UTM을 자동으로 붙입니다.
- 개선/lab, /lab/journey, /photographer-recruit에도 공유 버튼을 배치해 모집 전 SNS 확산 흐름을 준비했습니다.
- 개선/admin/lab-stats에서 페이지별 만족도 비교, 공유 채널 분포, 14일 공유 추이, 날짜 필터를 함께 확인할 수 있습니다.
- 개선/lab/today 점수 카드에 size별 밀도, 6개 가중 bar, 출사 종류 chip, 출처 표시를 더 분명하게 정리했습니다.
- 개선가까운 후보 5곳은 오늘 빛·거리·계절·사진 기록을 함께 점수화하고 조건에 맞는 추천 이유를 자동으로 보여줍니다.
- 개선/api/score/today와 /api/nearby 응답에 provider별 캐시 TTL과 Redis/memory 캐시 메타를 함께 제공합니다.
- 개선/lab 인덱스 3개 진입 카드를 큰 아이콘, 일정 비율 카드, 약한 Magnum glow hover로 다시 다듬었습니다.
- 개선/lab/style에 4축 사진 스타일 breakdown과 신뢰도 안내를 추가하고 사용자 화면의 FrameType 표현을 더 부드럽게 바꿨습니다.
- 개선/lab/journey는 모바일 점 indicator, 좌우 swipe, 하단 sticky CTA, PC 우측 sticky 패널로 이동성을 보강했습니다.
- 개선/lab/journey 사후 정리 6개 선택지를 모바일 bottom sheet와 PC 모달로 바꾸고, 매거진 초안 생성 상태를 단계별로 보여줍니다.
- 개선Lab 공통 베타 chip/banner를 Magnum red 계열로 통일하고 피드백 버튼 터치 반응과 수정 흐름을 다듬었습니다.
- 개선Lab 추천 카피에서 자동 확정처럼 들리는 표현을 줄이고 사용자가 직접 고르는 톤으로 정리했습니다.
- 개선/lab/today 점수 카드를 재사용 컴포넌트로 분리하고 GO·WAIT·NO 판단, 6개 세부 점수, 출처 표시를 한 화면에 정리했습니다.
- 개선가까운 후보 5곳을 SoftRecommendation 카드로 바꿔 추천 이유, 숨기기, 알고리즘 설명을 함께 볼 수 있게 했습니다.
- 개선KMA·대기질·물때 보조·달 계산에 위치별 캐시 계층을 붙여 반복 조회 부담을 줄였습니다.
- 개선Lab 피드백은 lab_anon 쿠키를 우선 사용하고, 감사 상태가 5초 뒤 자연스럽게 접히도록 다듬었습니다.
- 개선베타 안내의 진척 보기 링크가 별도 /about/roadmap 페이지로 열리도록 연결했습니다.
- 개선/admin/lab-stats에 최근 14일 만족도 추이를 추가해 페이지별 반응 흐름을 보기 쉽게 했습니다.
- 개선Lab 자유 의견 목록을 현재 필터 그대로 CSV로 내려받을 수 있게 했습니다.
- 개선/lab 계열 페이지에 공통 베타 안내 배너와 닫기 동작을 붙여 실험 페이지임을 같은 방식으로 알립니다.
- 개선/lab/today 점수 카드에 촬영 종류 chip, 알고리즘 버전, KMA·대기질·MOF·KASI 출처 설명을 추가했습니다.
- 개선가까운 후보 5곳 카드에 추천 점수와 이유를 더 선명하게 표시하고, 피드백 위젯을 3개 감정 버튼 + 선택 의견 흐름으로 바꿨습니다.
- 개선/admin/lab-stats를 총관 전용으로 잠그고, 자유 의견 목록에 페이지·반응·검색 필터를 추가했습니다.
- 개선홈 하단에 「새 안 미리보기 (베타)」 섹션을 추가해 /lab의 3개 실험 진입점을 한눈에 볼 수 있게 했습니다.
- 개선기존 도구 옆 베타 카드는 첫 화면을 덜 가리도록 하단 미니 카드 섹션으로 정리했습니다.
- 개선/lab 범위와 매거진 초안 안내에서 사용자 화면의 명칭을 「내 출사」 흐름에 맞춰 다듬었습니다.
- 개선/lab 인덱스 hero를 「무엇을 하실 건가요?」 중심으로 정리하고 3개 진입 카드의 목적을 더 선명하게 보이도록 다듬었습니다.
- 신기능/lab/style 추천 영역을 오늘 점수와 FrameType 가중치를 결합한 가까운 장소 5개 추천으로 보강했습니다.
- 신기능/lab/journey 사후 탭의 매거진 버튼이 저장된 내 출사에서 /api/ai/magazine-draft 초안을 만들도록 연결했습니다.
- 개선/admin/lab-stats에 source_lab 출사 대비 매거진 초안 생성 수와 비율을 추가했습니다.
- 개선/lab/journey 기본 흐름을 localStorage 임시 보관으로 바꾸고, 사용자가 직접 누르는 「내 출사로 저장」 버튼을 추가했습니다.
- 신기능저장 확인 모달에서 사진·스팟·시간·점수 요약과 공개 범위 3가지를 확인한 뒤에만 정식 내 출사로 저장합니다.
- 신기능POST /api/outings/from-lab 경로를 추가해 저장 성공 시 user_outings.source_lab=true row를 만들고 연결 가능한 사진을 붙입니다.
- 개선비로그인 사용자는 저장 버튼이 비활성화되고, 로그인 후에도 브라우저 임시 기록이 유지되도록 정리했습니다.
- 버그픽스/lab/today 다크 모드에서 위치 선택과 가까운 장소 카드가 흰 배경·흰 글씨처럼 섞여 보이던 색상 조합을 어두운 카드 톤으로 정리했습니다.
- 버그픽스/lab/today 하단 피드백 위젯의 안내문, 입력창, 선택 버튼도 같은 다크 카드 톤으로 맞췄습니다.
- 버그픽스기본 Tailwind 투명도 스케일에 없는 dark 색상 클래스를 표준 값으로 바꿔 다크 스타일 누락 가능성을 줄였습니다.
- 버그픽스/lab/today 점수 카드 안쪽 요약·지표 카드가 다크 컨텍스트에서도 밝은 카드와 진한 글자 조합으로 읽히게 수정했습니다.
- 개선/lab/style 결과 공유 메타에 1080x1080 정사각 OG 이미지를 추가했습니다.
- 개선/lab/journey에 출사 시작·출사 중·출사 끝 상태와 모바일 진행 중 바를 추가했습니다.
- 개선사후 정리 단계에 사진·메모를 내 출사로 묶는 6가지 선택지를 추가했습니다.
- 버그픽스/lab/style 공유 링크의 result 값이 로그인 사용자의 저장 결과보다 우선 표시되도록 수정했습니다.
- 개선/lab/today 베타 안내 배너의 관리자 링크를 피드백 영역 이동 링크로 바꿔 공개 화면 혼선을 줄였습니다.
- 개선/lab/journey에 SNS·메신저 공유용 OG/Twitter 이미지 메타를 추가했습니다.
- 개선/api/lab-feedback가 같은 사용자·같은 페이지의 24시간 내 재응답은 새 기록 대신 기존 의견 업데이트로 처리합니다.
- 개선Lab 피드백 위젯에 오늘 의견이 업데이트됐다는 상태 문구를 추가했습니다.
- 신기능/api/admin/lab-stats에서 관리자용 Lab 방문·체류·피드백 통계를 JSON으로 확인할 수 있게 했습니다.
- 개선/admin/lab-stats 화면과 API가 같은 통계 수집 함수를 쓰도록 정리했습니다.
- 개선/admin/lab-stats 기본 통계 목록과 빠른 이동 링크에 /lab/journey를 추가했습니다.
- 개선/lab/journey 프리뷰의 사진 추가, 일기 작성, 매거진 만들기 버튼을 실제 업로드·Travelog·Picture Record 흐름으로 연결했습니다.
- 신기능/api/score/today에서 Lab Today 점수, 6개 지표, 가까운 후보, 출처 정보를 JSON으로 확인할 수 있게 했습니다.
- 신기능/api/nearby에서 기준 좌표 주변 추천 장소를 Lab Today 판단 정보와 함께 읽을 수 있게 했습니다.
- 개선/lab/journey의 출사 시작·끝 버튼이 사전·실행·사후 탭을 실제로 넘기도록 보강했습니다.
- 개선/lab/style에 결과를 오늘의 행동으로 바꾸는 Next Move 섹션을 추가했습니다.
- 신기능/lab을 촬영성향, 빠른 출사 계획, 제대로 출사 계획 3개 진입 카드로 재구성했습니다.
- 신기능/lab/journey에 사전·실행·사후 탭을 넘겨보는 내 출사 흐름 프리뷰를 추가했습니다.
- 개선/lab/style은 나의 촬영성향에서 추천 장소와 촬영 루트로 이어지는 실험 흐름을 더 분명하게 다듬었습니다.
- 개선홈의 베타 Lab 카드를 /lab 인덱스로 연결해 새 실험 흐름 전체를 먼저 볼 수 있게 했습니다.
- 개선/lab 입구를 베타 안내, 실험 카드, 피드백 영역이 분명한 시안형 레이아웃으로 정리했습니다.
- 개선/lab/today의 촬영 판단 점수, 6개 분해 지표, 가까운 후보 5곳을 더 직관적인 카드 구조로 다시 배치했습니다.
- 개선/admin/lab-stats도 KPI 카드와 자유 의견 목록을 실험 페이지 운영 화면에 맞춰 보기 쉽게 다듬었습니다.
- 개선/tools/calendar에서 날짜를 클릭하면 선택한 날짜가 상단 배지, 오른쪽 패널, 달력 셀에 즉시 표시되도록 보강했습니다.
- 개선월간 보드와 agenda 보기 모두 선택한 날짜를 더 강하게 강조하고 키보드·보조기기용 선택 상태도 함께 전달합니다.
- 개선feedback_lab 운영 마이그를 적용하고 /api/lab-feedback 저장 응답을 확인했습니다.
- 버그픽스SQL 적용 스크립트가 새로 만든 테이블 이름을 자동 검증하도록 고쳐 운영 마이그 확인 흐름을 보강했습니다.
- 신기능KTO 검수 큐에서 pending 관광지·음식점 등의 상세 설명, 운영 정보, 공식 이미지를 작은 묶음으로 보강할 수 있게 했습니다.
- 개선상세 보강은 최근 시도한 항목을 다시 두드리지 않고 다음 묶음으로 이어지도록 해 KTO API timeout 부담을 줄였습니다.
- 개선KTO 관광지와 음식점 데이터를 각각 2000건 이상 검수 큐에 확보했습니다.
- 버그픽스KTO API 재시도 횟수 환경변수가 비어 있을 때 0회로 해석되던 문제를 고쳐, 기본 2회 재시도가 적용되도록 했습니다.
- 버그픽스수동 Vercel 배포 시 로컬 env 백업·.vercel 산출물·빌드 산출물이 업로드 후보에 섞이지 않도록 web/.vercelignore 안전장치를 추가했습니다.
- 버그픽스사진강의 이미지 갤러리가 운영 S3 업로드 이미지도 함께 불러오도록 보강했습니다.
- 버그픽스사진·사진강의 이미지 URL 생성에서 빈 CDN 환경변수, https 포함 도메인, client/server URL 불일치 가능성을 함께 안정화했습니다.
- 버그픽스사진강의 저장·복원에서 운영 저장소 미설정 시 읽기 전용 파일시스템 오류 대신 설정 안내를 보여주도록 했습니다.
- 개선프로젝트 대시보드의 최근 작업 커밋을 GitHub 링크로 바로 열 수 있게 했습니다.
- 개선출사 카드 연결 상태에 내 저장 장소 컬렉션 수를 읽기 전용으로 표시하도록 보강했습니다.
- 개선대표 카드 옆에 최근 저장 컬렉션 3개와 저장 항목 수를 보여줘 다음 출사 준비 동선을 짧게 만들었습니다.
- 개선내 영수증 검증 기록을 민감 정보 없이 요약 조회하는 API와 출사 카드 read-only 미리보기를 추가했습니다.
- 개선코스 템플릿은 Phase 2 전까지 읽기 전용 링크로 분리해 코스 라이브러리와 모임 만들기로 바로 이어지게 했습니다.
- 신기능/lab/style 실험 페이지를 추가해 FrameType 결과를 장소, 프레임, 빛 확인, 30분 미션으로 이어볼 수 있게 했습니다.
- 개선/lab/style 결과도 모바일 공유 시트와 데스크톱 링크 복사로 바로 공유할 수 있게 연결했습니다.
- 개선/lab/style 공유 링크의 제목·설명·대표 이미지가 FrameType 결과 코드별로 달라지도록 보강했습니다.
- 개선/lab 입구에서 오늘 촬영 판단과 내 사진 스타일 실험을 함께 선택할 수 있게 정리했습니다.
- 신기능/lab/today 실험 페이지를 추가해 구름, 미세먼지, 물때, 달, 시즌, 가까운 후보를 100점 촬영 판단으로 보여줍니다.
- 신기능사진이 있는 가까운 장소 5곳을 함께 추천하고 지도, 오늘의 빛, 장소 상세로 자연스럽게 이어지도록 했습니다.
- 개선내 위치와 주요 지역 프리셋으로 기준 위치를 바꾸고, 점수에 반영한 데이터 출처를 바로 확인할 수 있게 했습니다.
- 개선오늘 촬영 판단 결과를 공유 버튼으로 복사하거나 모바일 공유 시트로 보낼 수 있게 연결했습니다.
- 개선SNS와 메신저 공유 미리보기에 맞춘 /lab/today 전용 대표 이미지를 추가했습니다.
- 개선/lab 입구에도 체류 추적, 피드백 위젯, 실험 원칙 카드, 공유 미리보기 메타를 보강했습니다.
- 개선/admin/lab-stats에 수집 테이블 준비 상태, 이벤트 로깅 상태, 최근 24시간 페이지뷰·피드백 요약을 추가했습니다.
- 개선/admin/lab-stats에서 /lab, /lab/today, /lab/style을 바로 열 수 있게 운영 링크를 보강했습니다.
- 신기능좋아요·보통·아쉬워요 피드백과 자유 의견 저장 API, /admin/lab-stats 운영 통계를 추가했습니다.
- 개선기존 출사 도구 화면은 그대로 두고 사이드바와 홈에서만 Lab 미리보기 링크를 연결했습니다.
- 개선홈, 도구, 출사 카드, 장소, 행사, 사진가 모집 페이지에 공유용 대표 이미지와 정사각 카드 이미지를 보강했습니다.
- 개선공유 버튼이 UTM 링크를 자동으로 붙이고 자체 공유 이벤트를 남기도록 연결했습니다.
- 신기능행사 상세 페이지를 추가해 축제·행사도 바로 공유하고 장소·지도 흐름으로 이어갈 수 있게 했습니다.
- 개선사진가 모집 페이지에 창립 멤버 100명 진행도 placeholder와 SNS 유입별 안내 문구를 추가했습니다.
- 개선가이드, 모임, 코스, 업로드, 프로필, FrameType 추천의 사용자 문구를 출사 카드 기준으로 통일했습니다.
- 버그픽스출사 시작은 Magnum red, 출사 끝은 emerald로 맞추고 진행 중 바를 모바일 하단에서도 바로 보이게 조정했습니다.
- 개선sitemap에서 예전 출사 경로를 제외하고 대표 출사 카드 URL만 제출하도록 정리했습니다.
- 버그픽스갤러리, 지도, 사진 상세, AR, 별사진 화면이 테마 초기화 지연이나 라이트 설정에 흔들리지 않도록 각 페이지에 다크 기준을 직접 고정했습니다.
- 버그픽스갤러리 v2 화면은 페이지 자체 data-theme 기준으로도 어두운 배경과 밝은 글자 보정이 적용되도록 CSS fallback을 추가했습니다.
- 개선v2.43 축제 보강 컬럼, KTO 관광지 staging, KMA 날씨, KASI 천문, KHOA 조위 API의 운영 응답을 다시 점검했습니다.
- 버그픽스지역 하위 페이지가 홈을 canonical로 내보내던 문제를 고쳐 /regions/[지역], /regions/[지역]/[시군구], /regions/[지역]/[시군구]/[구]가 자기 URL을 대표 주소로 갖게 했습니다.
- 개선sitemap에 실제 공개 스팟이 있는 지역 인덱스만 추가해 빈 지역 페이지를 대량 제출하지 않으면서 검색 수집 기준을 맞췄습니다.
- 버그픽스KTO TourAPI 호출을 공식 HTTP endpoint로 맞추고 gzip 응답을 피하도록 요청 헤더를 보강해 데이터 가져오기 timeout·non JSON 오류를 줄였습니다.
- 신기능관리자 검수큐용 KTO staging 스크립트를 추가해 관광지 1000건을 낮은 호출량으로 가져올 수 있게 했습니다.
- 개선운영 시드 실행에서 .env.local의 DATABASE_URL이 운영 DB 전환을 덮어쓰지 않도록 보호했습니다.
- 버그픽스사진강의 편집 저장이 운영 읽기 전용 파일시스템에 막히던 문제를 S3 lesson-content 저장소로 우회해 복구했습니다.
- 개선강의 본문, 관리자 편집, 백업 히스토리, 검색, RSS가 같은 저장소를 읽도록 맞춰 저장 후 공개 화면에도 반영되게 했습니다.
- 개선운영 강의 페이지를 동적 렌더링으로 전환해 배포 없이도 저장된 강의 본문을 즉시 읽을 수 있게 했습니다.
- 신기능출사 카드에 명시적인 출사 시작·출사 끝 버튼과 진행 중 sticky bar를 추가해 사전·실행·사후 흐름이 분명해졌습니다.
- 신기능사후 탭에서 매거진 만들기를 누르면 연결 사진 3장 이상인 서버 카드로 매거진 초안을 생성하고 편집 화면으로 이어갑니다.
- 개선도구 허브, 캘린더, 오늘의 빛, 물때 플래너, 계산기, AR, 빛 타임머신의 사용자 문구를 출사 카드 기준으로 통일했습니다.
- 개선사전 탭은 저장 장소, 실행 탭은 영수증·업로드, 사후 탭은 Picture Record·Travelog·코스 링크를 읽기 전용으로 연결했습니다.
- 버그픽스축제·행사 지도와 목록에서 저장된 주최기관, 입장료, 검수 배지를 다시 표시할 수 있도록 v2.43 보강 컬럼 연결을 복원했습니다.
- 개선행사 대표 이미지는 기존 포스터, 보강 이미지, 상세 이미지 순서로 유지해 KTO 사진 fallback이 계속 동작하도록 했습니다.
- 신기능/tools/outing 출사 카드 진입점을 추가해 사전 판단, 현장 실행, 사후 기록을 탭 흐름으로 볼 수 있게 했습니다.
- 개선기존 출사 세션 화면에 8개 데이터 소스 연결 상태와 대표 출사 카드 요약을 표시하도록 보강했습니다.
- 개선/tools 허브의 출사 세션 항목을 출사 카드 중심으로 정리하고 sitemap에도 새 경로를 반영했습니다.
- 버그픽스모바일에서 지도·도구 화면이 가로로 밀리지 않도록 공통 overflow guard와 주요 레이아웃 min-width 보정을 추가했습니다.
- 버그픽스홈 공지 티커의 반복 렌더링을 정리해 실제 공지는 한 번만 읽히고 복제 트랙은 접근성 트리에서 제외되도록 개선했습니다.
- 개선/map 첫 진입은 서울 기본 중심으로 시작하고, 지도 로딩 지연 시 안내와 재시도 버튼을 표시합니다.
- 개선/tools 첫 방문 도움말 모달을 모바일 bottom sheet 형태로 다듬고 화면 폭을 넘지 않도록 보강했습니다.
- 개선홈 페이지 PC 공지 티커가 콘텐츠 영역 전체 폭을 사용하도록 가로 제한을 제거했습니다.
- 개선공지 제목이 데스크톱에서 더 길게 보이도록 항목 텍스트 폭도 함께 넓혔습니다.
- 버그픽스운영 서버에서 사진강의 이미지 업로드가 public 폴더 쓰기 제한으로 실패하지 않도록 S3/CDN 저장 경로를 추가했습니다.
- 버그픽스업로드 실패 시 HTML 오류나 서버 예외가 숨지 않고 편집기 화면에 실제 원인 메시지로 표시되도록 보강했습니다.
- 개선클립보드 이미지처럼 파일명 확장자가 불안정한 경우에도 MIME 타입 기준으로 jpg/png/webp/gif를 판정합니다.
- 버그픽스KTO 검수큐 버튼이 실패 원인 없이 멈춘 것처럼 보이지 않도록 JSON 오류, 로그인 만료, timeout 메시지를 화면에 표시합니다.
- 신기능KTO 검수큐 상단에 cron 설정, CRON_SECRET, KTO 키, 최근 수집 시각을 확인하는 상태 패널을 추가했습니다.
- 신기능자동 cron이 막힌 상황에서도 관리자가 드립 모드 KTO 수집을 1회 실행해 결과와 오류를 바로 확인할 수 있게 했습니다.
- 버그픽스사진강의 공개 본문에서 집필 노트, 확인 요청, 사진 슬롯 메모 같은 운영용 문장이 노출되지 않도록 정리했습니다.
- 개선미구현 인터랙션은 '준비 중' 안내 대신 바로 따라 할 수 있는 실습 카드로 표시되도록 바꿨습니다.
- 개선/lessons 허브, 검색, RSS도 공개용 강의 본문 기준으로 챕터 시간과 발췌문을 계산하도록 맞췄습니다.
- 개선홈페이지 첫 문장을 사진가의 여행 기록과 촬영 준비 흐름이 함께 보이도록 다시 정리했습니다.
- 개선사이트 소개 페이지를 Travelog, Picture Record, 촬영 도구, 사진이 있는 장소 중심의 현재 서비스 구조에 맞게 재작성했습니다.
- 개선전역 SEO 설명과 홈·소개 공유 메타도 새 정체성 문장에 맞춰 갱신했습니다.
- 개선FrameType 결과 OG, 카카오톡, 인스타그램 공유 이미지 응답에 CDN 캐시 정책을 보강했습니다.
- 개선결과 이미지가 반복 요청될 때 서버 부담을 줄이면서, 필요 시 재검증될 수 있도록 stale-while-revalidate 정책을 적용했습니다.
- 개선/guides와 9개 출사 가이드 상세 페이지에 canonical, Open Graph URL, Twitter 카드 메타를 보강했습니다.
- 개선도구 허브에서 진입하는 가이드 링크가 카카오톡·검색 미리보기에서 더 일관되게 보이도록 정리했습니다.
- 버그픽스/tools/calendar에서 직접 추가한 출사 계획을 삭제하면 연결된 브라우저 출사 세션도 함께 정리되도록 맞췄습니다.
- 개선서버에 동기화된 출사 세션이 있으면 캘린더 삭제 시 서버 삭제도 함께 시도하고, 실패 상황은 안내 메시지로 알려줍니다.
- 버그픽스사진 업로드 장소 검색에서 Google Geocoding 결과명이 숫자 한 글자처럼 약하게 잡히면 사용자가 입력한 검색어를 촬영 포인트 제목으로 우선 표시하도록 보강했습니다.
- 개선해외 명소나 공터를 주소 기반으로 바로 등록할 때 카드 제목이 더 자연스럽게 보이도록 Google 결과 이름 생성 규칙을 다듬었습니다.
- 개선/tools, /map, /places, /gallery, /regions와 주요 출사도구 하위 페이지의 제목·설명·공유 메타를 읽기 좋은 한국어 문구로 정리했습니다.
- 개선주요 탐색 페이지에 canonical 경로와 Open Graph URL을 보강해 공유 미리보기와 검색 노출 기준을 맞췄습니다.
- 개선sitemap.xml에 주요 출사도구 하위 페이지와 FrameType 결과 공유 페이지를 추가해 검색 수집 기준을 맞췄습니다.
- 버그픽스/map 첫 진입 때 지도 중심 좌표를 정하는 짧은 구간에 빈 검은 영역 대신 준비 상태를 보여주도록 했습니다.
- 개선Mapbox 스타일과 핀이 준비되는 동안 안내 오버레이를 표시해 모바일에서도 지도가 멈춘 것처럼 보이지 않게 개선했습니다.
- 버그픽스/tools 첫 방문 안내 모달을 모바일 화면 높이 안에 들어오도록 스크롤 가능한 바텀시트 형태로 조정했습니다.
- 개선배경 클릭 닫기와 하단 고정 시작 버튼을 추가해 작은 화면에서도 안내를 바로 닫고 도구를 사용할 수 있게 했습니다.
- 버그픽스전체 레이아웃에 가로 넘침 방지를 적용해 모바일에서 숨은 가로 스크롤이 생기는 위험을 줄였습니다.
- 개선홈 공지 티커의 과도한 HTML 반복을 줄이고 복제 영역은 보조기술에서 숨기도록 정리했습니다.
- 개선픽처 레코드 저널 초안 저장을 최소 3장 이상 사진 묶음으로 제한해 한 장짜리 발행 막힘을 줄였습니다.
- 개선생성 화면에 현재 선택 장수와 추가로 필요한 사진 수를 표시해 발행 조건을 더 명확하게 했습니다.
- 개선픽처 레코드 편집 화면에서 발행 후 공개 링크를 바로 복사할 수 있게 했습니다.
- 개선공개 픽처 레코드 페이지에 시스템 공유와 링크 복사가 가능한 공유 버튼을 추가했습니다.
- 개선발행 조건이 부족할 때 필요한 항목을 한국어로 안내하도록 저장 오류 메시지를 보강했습니다.
- 개선프로필 취향 설정 화면에서 FrameType 결과 배지를 공개하거나 본인에게만 보이도록 전환할 수 있게 했습니다.
- 개선FrameType 재테스트 시 기존 공개 설정을 유지한 채 최신 결과만 갱신되도록 저장 흐름을 보강했습니다.
- 개선FrameType 16 결과에 인스타그램 업로드용 1080x1350 세로 결과 카드 이미지를 추가했습니다.
- 개선결과 카드에서 인스타 카드 이미지를 클립보드에 복사하고, 브라우저가 지원하지 않으면 이미지 새 창으로 열리도록 fallback을 넣었습니다.
- 개선FrameType 공유 페이지에서도 인스타 카드 미리보기와 카드 열기 버튼을 제공해 모바일 저장 동선을 짧게 만들었습니다.
- 개선카톡 공유와 인스타 이미지 공유의 역할을 분리해 사용자가 어떤 방식으로 공유하는지 더 쉽게 고를 수 있게 했습니다.
- 개선FrameType 16 테스트 완료 결과를 로그인한 사용자의 프로필에 자동 저장하고, 재테스트하면 최신 결과로 갱신되게 했습니다.
- 개선프로필 상단에 FrameType 코드, 결과명, 신뢰도 요약을 작은 배지로 표시하도록 연결했습니다.
- 버그픽스AI Vision 설정 저장 시 FrameType 프로필 결과가 함께 사라지지 않도록 사용자 설정 JSON 저장 방식을 병합형으로 보강했습니다.
- 버그픽스로컬·운영 DB 스키마 차이가 있어도 프로필의 Pioneer·Spot Master 보조 영역이 페이지 전체를 멈추지 않도록 안전하게 처리했습니다.
- 개선FrameType 16 결과에 카톡 링크 복사 버튼을 추가하고, 결과별 전용 공유 페이지를 만들었습니다.
- 개선카톡 미리보기에 쓰기 좋은 1200x630 결과 이미지와 Open Graph 메타데이터를 별도 경로로 제공하도록 보강했습니다.
- 버그픽스FrameType 공유 메타와 OG 이미지에 깨져 보이던 한국어 문구를 정리했습니다.
- 개선FrameType 16 테스트 완료 시 마지막 결과를 브라우저에 자동 저장하고, 다음 방문 때 최근 결과 카드로 다시 열 수 있게 했습니다.
- 개선최근 결과 카드에 유형 코드, 결과명, 완료일, 신뢰도 표시와 삭제 액션을 추가했습니다.
- 개선FrameType 결과 화면에 16개 유형 전체를 한눈에 보는 Type Map을 추가했습니다.
- 개선현재 유형, 가까운 유형, 반대 유형을 시각적으로 구분하고 각 유형 결과 링크로 바로 이동할 수 있게 했습니다.
- 개선FrameType 결과 화면에 유형별 프레임 청사진, 촬영 단서, 자연톤·무드톤 팔레트를 시각적으로 보여주는 Visual Kit을 추가했습니다.
- 개선풍경/사람, 광각/망원, 순간/구성, 자연/무드 축 조합이 작은 프레임 다이어그램에 반영되도록 구성했습니다.
- 개선FrameType 16 결과 화면에 유형별 장소 탐색, 갤러리, 출사 세션, 캘린더, 오늘의 빛, 빛 타임머신으로 이어지는 추천 루트를 추가했습니다.
- 개선각 유형의 4축 조합에 맞춘 키워드와 「이번 주 30분 미션」 체크리스트를 추가해 테스트 결과를 실제 촬영 행동으로 연결했습니다.
- 개선FrameType 16을 12문항에서 32문항으로 확장하고, 시나리오 기반·역문항 혼합·축별 상황 다양화 원칙을 반영했습니다.
- 개선축별 8문항 진행도, 중간 저장, 결과 신뢰도와 일관성 표시를 추가해 긴 테스트의 이탈을 줄였습니다.
- 개선16개 결과 유형에 영문 요약과 사진 교본 정합 노트를 추가해 정식 콘텐츠 확장 기반을 마련했습니다.
- 개선FrameType 16 결과에 유형별 추천 장면, 샘플 프레임, 다음 액션 카드를 추가해 테스트 이후 바로 출사 준비로 이어지게 했습니다.
- 개선결과 공유 링크가 유형별 제목, 설명, 대표 OG 이미지로 노출되도록 메타데이터와 공유 이미지를 보강했습니다.
- 개선테스트 완료와 공유 액션을 운영 이벤트 로그로 남길 수 있도록 FrameType 전용 이벤트 타입을 추가했습니다.
- 신기능픽처 레코드를 별도 magazines DB 모델로 저장하고 초안, 검토, 공개 발행 상태를 관리할 수 있게 했습니다.
- 신기능공개 발행된 기록은 /picture-records/[slug] 전용 페이지와 SEO 메타, sitemap 항목으로 이어지도록 구성했습니다.
- 개선프로필 Picture Record 탭에서 공개 발행본과 초안을 함께 보여주고, 본인은 이어서 편집할 수 있게 연결했습니다.
- 신기능/tools/frame-type에 풍경/인물, 광각/망원, 순간/구성, 자연/무드 4축 사진 취향 테스트를 추가했습니다.
- 개선선택한 답변에 따라 실시간 유형 미리보기, 축별 점수, 16개 결과 설명과 촬영 미션이 달라지도록 구성했습니다.
- 개선테스트 완료 후 결과 링크를 복사하고, /tools/frame-type?result=HTCM처럼 특정 유형 결과를 바로 열 수 있게 했습니다.
- 개선출사 도구 허브의 촬영 방식 단계에서 FrameType 16으로 바로 이동할 수 있게 연결했습니다.
- 신기능저장한 픽처 레코드 초안을 전용 편집 화면에서 열고 제목, 본문, 공개 범위, 발행 상태를 다시 다듬을 수 있게 했습니다.
- 개선발행은 제목, 본문, 사진 3장 이상 조건을 클라이언트와 API에서 함께 확인해 매거진형 기록 품질을 지키도록 보강했습니다.
- 개선프로필 Picture Record 카드에 본인 전용 편집·발행 진입 버튼을 연결하고, 저장 직후 바로 편집 화면으로 이어지게 했습니다.
- 신기능사진 묶음 픽처 레코드를 출사 세션과 저널 초안으로 저장하는 API를 추가했습니다.
- 개선운영 DB에 출사 세션 마이그레이션이 아직 없으면 브라우저 임시 저장으로 안전하게 유지하도록 처리했습니다.
- 개선프로필 Picture Record 탭에 저장된 픽처 레코드 초안 카드가 보이도록 연결했습니다.
- 신기능픽처 레코드 사진 묶음 초안을 브라우저에 임시 저장하고 저장본을 다시 불러올 수 있게 했습니다.
- 개선발행 준비도 패널을 추가해 대표 컷, 3장 이상 구성, 역할 흐름, EXIF, 태그 맥락의 부족한 점을 바로 확인합니다.
- 개선내 프로필 Picture Record 탭에서 저장된 초안이 있으면 이어서 편집할 수 있는 안내를 보여줍니다.
- 개선초안 원문에 사진 구성 목록을 함께 넣어 대표 컷, 전환 컷, 디테일 컷, 마무리 컷의 역할이 드러나게 했습니다.
- 신기능픽처 레코드 작성 화면에서 한 장이 아니라 여러 사진을 묶어 매거진형 시리즈 초안을 만들 수 있게 했습니다.
- 개선최근 5장, 최대 묶음, 대표 1장만 선택을 추가해 발행 목적에 맞는 사진 구성을 빠르게 바꿀 수 있게 했습니다.
- 개선초안 문구가 대표 컷, 보조 컷, 촬영 기간, 장비, 반응 합계를 기준으로 시리즈 흐름을 설명하도록 보강했습니다.
- 개선픽처 레코드 작성 화면의 큰 미리보기를 썸네일이 아닌 풀사이즈 이미지로 바꿔 원본 비율 확인성을 높였습니다.
- 개선초안 원문 영역을 추가해 브라우저 복사가 막혀도 내용을 직접 선택해 사용할 수 있게 했습니다.
- 개선사진 선택 버튼의 접근성 라벨과 키보드 포커스를 보강하고, 프로필 대표 기록 이미지도 잘리지 않게 표시합니다.
- 신기능/profile/picture-records/new에서 내 사진을 고르고 EXIF·태그 기반 픽처 레코드 초안을 만들 수 있게 했습니다.
- 개선프로필 Picture Record 탭의 CTA를 실제 초안 작성 화면으로 연결했습니다.
- 개선프로필 탭의 모바일 좌우 스와이프 전환을 추가하고 쓰이지 않던 레거시 탭 렌더 코드를 정리했습니다.
- 신기능프로필 기본 화면을 Travelog와 Picture Record 두 탭으로 재구성하고 Travelog를 기본 탭으로 설정했습니다.
- 개선사진, 출사 세션, 저장 컬렉션, 영수증 검증, 코스 재료를 여행 일지형 카드로 묶어 보여주도록 보강했습니다.
- 개선기존 활동 통계, 뱃지, 장비, Pioneer, Spot Master 정보는 Profile Info 접기/펼치기 패널로 압축했습니다.
- 버그픽스운영 DB에 아직 없는 사진 기록 보강 컬럼이 있어도 프로필 페이지가 멈추지 않도록 기본 사진 조회 범위로 안정화했습니다.
- 신기능출사 세션 만들기와 촬영 완료 흐름에 한 줄 감상, 빛 조건, 이동, 난이도, 재방문, 만족도 입력을 추가했습니다.
- 개선입력량에 따라 기본 정리, 짧은 매거진 재료, 상세 매거진 재료로 기록 풍부도를 보여주도록 했습니다.
- 개선입력한 감상과 Quick chips를 세션 메모에 함께 저장해 이후 내 출사 기록과 매거진 초안의 재료로 쓸 수 있게 했습니다.
- 신기능출사 가이드, 상세 가이드, 출사 모임, 코스 라이브러리에도 출사 세션 저장 브릿지를 추가했습니다.
- 개선도구에서 만든 브라우저 세션의 source 값을 기존 세션 분류로 정규화해 동기화와 표시가 안정적으로 이어지게 했습니다.
- 버그픽스코스 라이브러리 테이블이 아직 없는 환경에서도 페이지가 500으로 멈추지 않고 빈 상태 안내를 보여주도록 보강했습니다.
- 신기능도구 허브, 오늘의 빛, 출사 계산기, 물때 플래너, 출사 캘린더, 빛 타임 머신, AR, AI 카메라 추천에 출사 세션 저장 브릿지를 추가했습니다.
- 개선도구별 판단을 빛 판단 → 계산 → 캘린더 → 세션 → 사진 기록 흐름으로 이어가도록 공통 워크플로우 안내를 붙였습니다.
- 개선빛 타임 머신의 후보 저장은 출사 캘린더뿐 아니라 출사 세션에도 함께 남도록 보강했습니다.
- 버그픽스오늘의 빛 대시보드가 로딩 안내에 머물지 않고 기본 빛 계산과 세션 브릿지를 바로 보여주도록 수정했습니다.
- 신기능/tools/outings에서 바로 출사 세션을 만들 수 있는 Quick Create 폼을 추가했습니다.
- 신기능브라우저에만 저장된 세션을 로그인 후 서버로 동기화하고, 촬영 완료·다시 예정·삭제까지 관리할 수 있게 했습니다.
- 개선다가오는 세션과 지난 세션을 나누고, 다음 세션·연결 사진 수·계획/사진/완료 진행도를 한눈에 보이도록 정리했습니다.
- 버그픽스/api/outings에 PATCH와 DELETE를 추가해 세션 상태 변경과 삭제가 사용자 본인 범위에서만 처리되도록 보강했습니다.
- 버그픽스/gallery, /photos, /map을 다크 강제 라우트에 다시 포함해 저장된 라이트 테마가 있어도 사진·지도 화면은 어두운 배경으로 열리도록 맞췄습니다.
- 버그픽스클라이언트 테마 브리지가 아직 테마 값을 읽지 못한 순간에 light로 덮어쓰지 않도록 현재 data-theme 또는 dark 기본값을 유지하게 보강했습니다.
- 개선초기 theme-init 스크립트와 ThemeProvider의 다크 강제 라우트 목록을 맞춰 새로고침, 직접 진입, 클라이언트 이동 모두 같은 테마 정책을 따르게 했습니다.
- 신기능출사 세션에서 사진 올리기로 이동하면 업로드 화면이 해당 세션 맥락을 보여주고, 게시 완료 후 세션으로 돌아갈 수 있게 했습니다.
- 신기능사진 게시 API가 outingId를 받아 업로드된 사진을 user_outing_photos에 연결하도록 확장했습니다.
- 개선로그인 전 /upload 진입에서도 outing 파라미터가 보존되어 로그인 후 같은 세션 업로드 흐름으로 돌아오도록 했습니다.
- 개선/tools/outings 목록에 세션에 연결된 사진 수를 표시하도록 보강했습니다.
- 신기능/tools/outings 화면을 추가해 캘린더 계획을 출사 세션 목록으로 확인할 수 있게 했습니다.
- 신기능출사 캘린더에서 계획을 저장하면 브라우저 출사 세션 저장소에 함께 보관되고, 로그인·DB 준비 상태에 따라 서버 저장도 시도합니다.
- 개선출사 세션용 DB 마이그레이션과 /api/outings graceful 응답을 준비해 운영 DB 적용 전에도 화면이 깨지지 않도록 했습니다.
- 배포운영 DB에 출사 세션 테이블 3종을 적용하고 생성 여부를 확인했습니다.
- 개선/tools 허브의 캘린더 단계와 기록 단계에서 출사 세션으로 바로 이동할 수 있게 연결했습니다.
- 개선출사 계산기 상단 설명을 장소·날짜·촬영 종류에서 일반/프로 판단으로 이어지는 문구로 정리했습니다.
- 개선물때 플래너에 일반/프로 사용 순서 안내를 추가하고, 포인트 선택 후 공식 물때 조회로 이어지는 흐름을 더 분명하게 표시했습니다.
- 개선출사 가이드 상세에 계산기, 오늘의 빛, 빛 타임머신, 캘린더로 이어지는 다음 행동 카드를 추가했습니다.
- 버그픽스업로드와 지역 하위 페이지에 남아 있던 내부 작업 표현을 사용자에게 자연스러운 서비스 안내 문구로 바꿨습니다.
- 버그픽스/upload, /meetups/new처럼 로그인 후 원래 화면으로 돌아가야 하는 경로가 /login?next=...를 보낼 때 로그인 페이지가 해당 값을 정확히 이어받도록 수정했습니다.
- 개선이미 로그인한 사용자가 로그인 페이지에 다시 들어오면 지도 대신 원래 이어가려던 사진 올리기, 모임 만들기, 캘린더, 저장 목록 화면으로 이동합니다.
- 개선로그인 화면에 현재 이어갈 작업과 3단계 진행 안내를 표시해 사진·모임·캘린더 작성 흐름을 더 명확하게 했습니다.
- 개선/tools를 도구 나열형 허브에서 출사 판단, 코스, 방식, 캘린더, 현장, 기록·공유 6단계 워크플로우 허브로 재구성했습니다.
- 개선오늘 출사, 다음 주말 빛, 물때 바닷가, 저장 사진, 검증 코스, 모임, 사진 기록으로 바로 들어가는 빠른 시작 7개 진입을 추가했습니다.
- 개선단계 카드를 누르면 해당 단계의 도구가 바로 펼쳐지고, 첫 진입 도움말과 준비 중 확장 자리를 함께 표시하도록 정리했습니다.
- 버그픽스다크 모드에서 text-ink, text-gray, bg-paper 계열이 라이트 색으로 남아 글자 대비가 낮아지던 전역 누출을 보정했습니다.
- 버그픽스갤러리, 지역, 컬렉션, 도구, 지도, 법적 고지, footer 더보기 버튼을 브라우저 대비 스모크로 확인하고 흐린 칩과 배지를 보강했습니다.
- 개선다크 강제 정책 주석을 현재 코드 기준으로 정리했습니다. AR, 물때, 별사진 도구는 강제 다크이고 사진, 갤러리, 지도는 기본 다크이되 사용자 라이트 선택을 존중합니다.
- 개선v2.43 events 운영 DB 보강 컬럼 존재를 읽기 전용 점검 스크립트로 확인할 수 있게 했습니다.
- 버그픽스v2 갤러리 공통 스타일이 흰 배경을 강제해 다크모드에서 갤러리만 라이트 화면으로 보이던 문제를 수정했습니다.
- 버그픽스갤러리 헤더, 카드, 검색창, 필터 칩의 다크 배경·테두리·텍스트 색을 갤러리 스코프 안에서 다시 맞췄습니다.
- 개선전체 app 라우트 136개와 핵심 운영 URL 9개 smoke check 결과를 바탕으로 /admin/project에 사이트 표면 리뷰 섹션을 추가했습니다.
- 개선/admin 대시보드의 프로젝트 카드에서 전체 사이트 리뷰로 바로 이동할 수 있게 안내를 보강했습니다.
- 개선KTO 자동 cron은 기본 drip 모드로 실행해 목록·상세·기존 Place 보강량을 작게 제한하고, 운영 부담 없이 조금씩 데이터가 쌓이도록 조정했습니다.
- 개선대량 백필이 필요할 때는 cron 수동 호출에 budget=bulk를 붙여 기존 큰 한도를 사용할 수 있게 분리했습니다.
- 버그픽스KTO 서비스키가 data.go.kr Encoding 키로 등록돼도 내부에서 Decoding 키로 정규화해 이중 인코딩으로 호출 실패하지 않도록 보정했습니다.
- 버그픽스KTO API 호출별 timeout을 추가하고, 관리자 수동 시드 가져오기를 Vercel Pro 300초 한도에 맞춰 긴 상세 수집도 안정적으로 끝나게 했습니다.
- 개선스팟 Pioneer를 장소 등록자가 아니라 해당 장소의 첫 공개 사진 업로더 기준으로 계산하도록 바꿨습니다.
- 개선/places 둘러보기 목록은 사진이 1장 이상 올라온 장소만 노출해, 빈 장소가 탐색 경험을 흐리지 않도록 정리했습니다.
- 버그픽스/places 더보기 API가 대표 사진 id의 BigInt 직렬화 때문에 500이 날 수 있던 경로를 함께 보정했습니다.
- 개선사진 올리기 장소 선택에서 등록된 장소와 미등록 주소 후보를 한 목록으로 합쳐, 해외 명소나 공터도 검색 결과 카드에서 바로 촬영포인트로 등록할 수 있게 정리했습니다.
- 버그픽스운영 DB에 게시글 테이블이 아직 없을 때 /posts 정적 생성이 빌드를 흔들지 않도록 게시글 페이지를 동적 처리하고 테이블 존재 확인을 추가했습니다.
- 버그픽스운영 DB에 게시글 테이블이 아직 없을 때 sitemap 생성 과정에서 해당 테이블을 쿼리하지 않도록 빌드 안정성을 보강했습니다.
- 버그픽스사진 업로드 주소 검색에서 해외 주소 모드일 때 국내 유사 상호보다 Google 주소 결과가 먼저 보이도록 우선순위를 보정했습니다.
- 개선사진 올리기 첫 단계에서 등록된 장소 검색과 주소 자동완성을 함께 보여주도록 정리했습니다.
- 신기능공터·해변·산길처럼 상호가 없는 위치도 주소 검색 결과를 촬영 포인트로 바로 등록한 뒤 사진을 올릴 수 있습니다.
- 신기능내 위치 주변, 내 등록 장소, 지역별 필터를 추가해 등록 장소가 많아져도 더 빠르게 고를 수 있게 했습니다.
- 개선해외 주소 검색을 위한 Google Geocoding 연결 지점을 추가하고, 장소 등록 좌표 범위를 전 세계 위경도로 확장했습니다.
- 개선영수증 사진에 EXIF 위치가 없어도 인식된 상호·주소로 좌표를 보강해 기존 장소 매칭과 새 장소 등록 판단이 더 안정적으로 이어지도록 했습니다.
- 보안분석 결과 제출에 서버 서명을 붙였습니다. 분석 후 상호·주소·번호·원문 등이 바뀐 요청은 바로 통과시키지 않고 관리자 검토 대상으로 보냅니다.
- 버그픽스관리자가 같은 영수증을 다시 승인해도 방문 기록이 중복 생성되지 않도록 승인 처리 흐름을 보강했습니다.
- 개선영수증 검토 큐에서 날짜, 주소, 신뢰도, OCR 원문 일부를 함께 확인할 수 있게 해 의심 항목 판별 시간을 줄였습니다.
- 신기능/upload에 영수증 인증 진입을 추가했습니다. 영수증 사진을 AI Vision으로 분석해 상호, 주소, 메뉴, 날짜, 번호를 확인하고 기존 장소 매칭 또는 새 장소 등록으로 이어집니다.
- 신기능/api/receipts/analyze와 /api/receipts를 추가해 영수증 분석, 중복 번호 확인, EXIF 위치 정합, 하루 1건 제한, 의심 상태 분기를 처리합니다.
- 개선장소 상세에 영수증 인증 카드와 카테고리별 Master 카드를 추가하고, 관리자 대시보드에는 영수증 검토 큐와 승인·반려 액션을 연결했습니다.
- 보안영수증 원본은 공개 화면에 노출하지 않고, 첫 진입 시 민감 정보 안내 모달을 표시하도록 정리했습니다.
- 버그픽스/upload에서 사진 올리기 진입 시 사용자 등급·멤버십·장소 후보 조회 중 일부 운영 DB 컬럼이 늦게 반영되어도 서버 오류로 중단되지 않도록 호환 fallback을 추가했습니다.
- 개선업로드 화면은 조회 실패 시 기본 업로드 정책과 빈 장소 후보로 계속 열리며, 정확한 원인은 서버 로그에 남겨 후속 점검이 가능하도록 정리했습니다.
- 개선/places를 v2 목업 기준의 editorial header, 통계 row, 카테고리 chip, 검색·정렬 bar, 3열 photo-first 카드 구조로 재정리했습니다.
- 버그픽스운영 DB에 places.kto_image_urls 컬럼 적용이 늦어도 스팟 목록이 500으로 죽지 않도록 목록 조회의 KTO 이미지 컬럼 의존을 제거했습니다.
- 개선/regions/[광역], /regions/[광역]/[시군구], /regions/[광역]/[시군구]/[구군] 하위 페이지를 목업의 지역 상세 v2 구조로 재구성했습니다.
- 개선지역 히어로, 하위 지역 인덱스, Featured 스팟 4:3 카드, 사진 그리드를 공통 컴포넌트로 통일해 광역·시군구·구군 페이지가 같은 톤으로 보이도록 정리했습니다.
- 개선홈 페이지의 봄 시즌 카드를 오늘의 빛 카드 옆으로 이동해 상단 정보 흐름 안에서 바로 보이도록 정리했습니다.
- 개선사진가들이 모은 명소 섹션을 최근 사진 기록 아래로 옮기고, 카드 비율을 최근 사진 썸네일과 비슷한 4:3 형태로 맞췄습니다.
- 버그픽스홈 화면 공지 티커가 다크 배경에서 흰 캡슐과 옅은 글자 조합으로 흐려 보이던 문제를 수정했습니다.
- 개선공지 배경을 어두운 유리 톤으로 고정하고 라벨, 본문, 링크 화살표 대비를 높여 라이트·다크 화면 모두에서 읽기 쉽게 정리했습니다.
- 신기능AR 미니맵에 은하수 중심 (궁수자리 방향 Sagittarius A*) 보라색 마커 (✦) 가 추가됐습니다. 「은하수가 지금 어디 떠있나」 즉시 확인 가능.
- 신기능은하 적도 띠 (은하수가 하늘에 걸쳐있는 모양) 가 미니맵에 보라색 점선 호로 표시됩니다. 지평선 위 구간만 표시.
- 개선한국 (4~9월 자정~새벽) 은하수 사진가에게 「어디서·언제 셔터 누를지」 의 첫 단서를 제공합니다.
- 버그픽스홈 페이지 오른쪽 「봄 시즌」 카드가 왼쪽 콘텐츠 높이에 맞춰 과하게 늘어나던 문제를 수정했습니다.
- 개선홈의 좌우 그리드를 상단 정렬로 바꾸고 시즌 모듈의 강제 전체 높이를 제거해 카드가 내용 높이만 차지하도록 정리했습니다.
- 개선출사계산기의 모드 토글을 「일반 모드」가 앞, 「프로 모드」가 뒤에 오도록 정리하고 일반 모드를 기본 진입값으로 바꿨습니다.
- 개선일반 모드는 값 설명·촬영 순서·실패 체크, 프로 모드는 후보 비교·Pro Lab·장비 인사이트 중심이라는 차이가 보이도록 모드 비교 패널을 추가했습니다.
- 신기능빛 타임 머신 Pro의 캘린더 내보내기를 출사 캘린더와 연동했습니다. 후보 Top 3를 /tools/calendar의 내 계획으로 저장하고, ICS 다운로드는 보조 기능으로 유지합니다.
- 신기능/tools/calendar의 「출사 계획 추가」 버튼을 실제 입력 모달로 연결했습니다. 날짜, 시간, 제목, 장소, 메모를 입력해 내 출사 계획을 만들 수 있습니다.
- 신기능추가한 계획은 월간 보드, agenda, 선택 날짜 패널, 다음 일정 목록에 즉시 반영되고 브라우저 localStorage에 보존됩니다.
- 개선「내 계획」 필터와 개별 삭제 버튼을 추가해 직접 저장한 일정만 빠르게 확인하고 정리할 수 있게 했습니다.
- 신기능AR 화면 상단의 카메라 버튼이 ON / OFF 토글로 동작합니다. ON 상태 (초록) 에서 누르면 카메라가 꺼지고, OFF 상태 (회색) 에서 누르면 다시 켜집니다. 권한은 그대로 유지되어 즉시 재시작됩니다.
- 버그픽스「해 위치 계속 움직임」 사고 추가 정정 — 일부 폰에서 새 자세 센서 (AbsoluteOrientationSensor) 의 quaternion 변환 정확도가 미검증이라 임시 비활성화. 기존 안정적인 자세 이벤트 + 보정 체인을 사용하도록 정렬했습니다.
- 개선스팟, 갤러리, 큐레이션, 내 컬렉션, 피드백, 어드민, 알림 화면에 v2 목업 기반의 editorial header, 밝은 paper 배경, Magnum red 강조 스타일을 적용했습니다.
- 개선컬렉션 상세와 내 컬렉션 상세, 어드민 project/feedback 화면까지 같은 v2 surface 스코프를 확장해 이동 흐름의 시각 톤을 맞췄습니다.
- 개선기존 데이터 조회와 상호작용 로직은 유지하고, 페이지별 전용 스코프 클래스로 스타일을 분리해 다른 화면 영향 범위를 줄였습니다.
- 개선/photos/[id]를 v2 사진 상세 목업 기준의 다크 갤러리 화면으로 정리했습니다. 메인 사진은 어두운 뷰어에 크게 두고, 정보 패널은 오른쪽에 붙도록 조정했습니다.
- 개선작가 정보, 저장, 신고, 댓글, 좋아요, 빛 컨텍스트, EXIF, AI Vision 영역이 사진 감상 흐름을 해치지 않도록 다크 패널 톤으로 맞췄습니다.
- 개선사진 원본 비율은 유지하면서 화면 안에서 object-contain으로 보이도록 해 세로·가로 사진 모두 잘리지 않게 했습니다.
- 개선/meetups와 /tools/meetups를 v2 목업 기준의 출사 모임 보드로 재구성했습니다. 상단 hero, 현황 지표, 모집 chip, 카드형 목록을 한 화면에서 확인할 수 있습니다.
- 개선모임 카드는 상태, D-day, 일정, 호스트, 인원, 예상 비용, 모집률을 함께 보여주도록 정리했습니다.
- 버그픽스출사 모임 페이지의 깨진 한글 메타데이터와 안내 문구를 정상 한국어 문구로 교체했습니다.
- 개선/tools/ar를 v2 목업 기준의 AR 시각화 허브로 재구성했습니다. 별·태양·달 overlay 프리뷰와 다크 전용 시각 톤을 적용했습니다.
- 신기능Camera, Dome, Map, Static 4단계 fallback 구조를 카드로 보여주고, 실제 AR 실행은 /ar로 이어지도록 분리했습니다.
- 개선은하수 가시 영역, 추천 구도, 현재 시각 정보, 촬영 세팅 요약을 목업처럼 한 화면에서 확인할 수 있게 했습니다.
- 개선출사 계산기 상단을 v2 목업 기준의 photo calculator 화면으로 재구성하고, 입력 영역과 결과 영역의 대비를 더 선명하게 조정했습니다.
- 신기능노출 탭에 동영상 셔터 180도 룰 계산을 추가해 프레임률과 셔터 각도 기준 권장 셔터를 바로 볼 수 있게 했습니다.
- 개선탭 바와 계산 패널, 주요 수치 카드의 디자인을 v2 목업의 Magnum red·serif result 스타일에 가깝게 정리했습니다.
- 신기능출사 캘린더를 v2 목업 기준의 월간 보드형 도구로 재구성했습니다. 골든아워, 물때, 월령, 시즌, 모임 후보를 한 달 화면에서 함께 볼 수 있습니다.
- 개선날짜 선택 시 우측 판단 패널에서 해당일 일정과 다음 주요 일정을 바로 확인하도록 바꿨습니다.
- 개선월 이동, 오늘 복귀, agenda 보기, 유형 필터를 추가해 실제 출사 후보를 빠르게 좁힐 수 있게 했습니다.
- 버그픽스AR 카메라 뷰의 해 위치와 미니맵의 해 위치가 약 8.5° 어긋나던 사고를 fix — 미니맵이 보정 전 자력계 헤딩을 사용하고 AR 오버레이는 자력편각 보정된 진북 헤딩을 사용해 두 뷰가 불일치하던 문제를 동일 좌표계로 정합했습니다.
- 신기능AR 카메라 우측 상단의 2D 미니맵을 누르면 큰 방위 모달로 확대해 볼 수 있게 했습니다.
- 개선확대 모달에서 해·달·북극성의 방위와 고도를 숫자로 함께 보여 현장 확인이 더 쉬워졌습니다.
- 개선작은 미니맵만 터치 버튼으로 동작하고, 확대 모달 안의 큰 미니맵은 표시 전용으로 정리했습니다.
- 개선홈페이지를 v2 홈 목업 기준으로 photo-first 히어로, Magnum red 액센트, 오늘의 빛 스트립, 출사 도구 Bento, 물때·강의 티저가 이어지는 구성으로 재정리했습니다.
- 개선모바일 첫 화면도 큰 사진 히어로와 오늘의 빛·도구 요약이 먼저 보이도록 바꾸고, 기존 사진 피드는 그 아래에서 이어지게 정리했습니다.
- 버그픽스홈 상단 전용 nav와 오늘의 빛 로딩 placeholder를 라이트·다크 토큰에 맞춰 조정해 초기 로딩 중에도 빈 흰 박스처럼 보이지 않게 했습니다.
- 개선AR 페이지를 `?debug=1` 로 열었을 때 현재 활성 센서 경로가 함께 표시됩니다. Chrome Android 의 AbsoluteOrientationSensor 사용 여부와 DeviceOrientation fallback 여부를 현장에서 바로 확인할 수 있습니다.
- 개선방향 권한이 거부되거나 미지원인 경우도 sensorMode 로 분리해 표시하므로, AR 마커 흔들림 검증 때 원인 확인이 쉬워졌습니다.
- 신기능AR 카메라 뷰 우측 상단에 작은 원형 미니맵을 추가했습니다. 현재 위치 중심 + 정북 기준 컴퍼스 + 카메라 시야 부채꼴 + 해 (노란 ☀) · 달 (은 ☾) · 북극성 (★) 위치가 동시에 표시됩니다.
- 개선각 천체 옆 작은 막대로 고도 (지평선 위/아래) 도 함께 확인할 수 있어, AR 뷰에서 가려진 천체도 위치를 즉시 파악할 수 있습니다.
- 개선AR 시각화에 Chrome Android 의 차세대 자세 센서 API (AbsoluteOrientationSensor) 를 도입했습니다. 자이로·가속도·자력계 데이터를 브라우저가 직접 quaternion 으로 융합하므로 기존 자세 이벤트의 깜빡임·드리프트 없이 안정적입니다.
- 개선지원 안 되는 환경 (iOS Safari 등) 은 기존 DeviceOrientation + Complementary Filter 폴백을 그대로 사용합니다.
- 버그픽스Samsung 등 일부 Android 폰에서 r5 적용 후에도 자력계 reference 가 magnetic↔relative 계속 깜빡이던 사고 최종 fix — 한 번이라도 안정적인 좌표계 (true/magnetic) 가 관찰되면 그 type 으로 영구 잠금. 이후 relative 판정도 잠금된 type 으로 처리해 자력편각 보정이 일관되게 적용됩니다.
- 버그픽스AR 시각화의 「고정 안 됨」 사고 진짜 원인 fix — Android Chrome 이 두 종류의 자세 이벤트 (절대·상대) 를 동시에 발생시켜 매 프레임 자력편각 보정이 켜졌다 꺼졌다 진동하던 사고. 절대 이벤트 한 번 받으면 그것만 사용하도록 잠금해 8.5° 진동을 차단했습니다.
- 개선AR 시각화의 「고정 안 됨」 문제 정정 — Chrome Android 가 제공하는 절대 좌표 이벤트 (deviceorientationabsolute) 를 우선 사용해 자력계 reference 가 흔들리는 케이스를 줄였습니다.
- 개선센서 융합 필터의 자력계 보정 비중을 2% → 5% 로 상향. 자이로 드리프트가 더 빠르게 정정됩니다.
- 신기능AR 페이지 URL 끝에 `?debug=1` 을 붙이면 좌측 하단에 실시간 센서 값 (α/β/γ · compass type · 화면 각도 · 해 azimuth/altitude) 이 표시됩니다. 진단·검증 용.
- 버그픽스AR 시각화에서 해 위치가 +6 시간 (약 90°) 떨어진 곳에 표시되던 사고를 fix — 일부 폰의 스크린 방향 보고 오류로 인한 90° 회전 보정을 임시 비활성화했습니다. 차후 더 안전한 가로 모드 감지로 재도입 예정.
- 신기능AR 카메라 권한 버튼이 화면 상단에 항상 표시됩니다. 권한 거부 상태면 빨강 (펄스 애니메이션) · 허용 상태면 초록. 언제든 재요청 가능.
- 버그픽스AR 카메라 뷰에서 해 위치가 실제와 완전히 다르게 표시되던 사고를 fix — Android 자력계가 보고하는 「자기 북쪽」 (magnetic north) 과 실제 「진북」 (true north) 의 차이 (한국 평균 -8.5°) 를 자동 보정합니다. iOS 는 이미 진북 기준이라 영향 없음.
- 버그픽스일부 Android 브라우저에서 자력계가 「상대 좌표」 (RELATIVE — 초기 위치 기준) 로 반환되어 천체 위치가 무작위로 보이던 케이스를 감지해 노란 경고 띠를 표시합니다. Visual Calibration 으로 수동 보정 가능.
- 신기능AR 카메라 권한이 거부됐을 때 화면 상단에 「📷 카메라 권한 허용」 버튼이 나타나 즉시 재요청할 수 있습니다.
- 버그픽스AR 카메라 뷰에서 별·해·달이 기기를 움직일 때마다 떠다니는 듯이 보이던 사고를 fix — 화면 좌표 (x, y) 에 EMA 평활을 적용해 자력계 잡음 (실내 5~10°) 으로 인한 픽셀 단위 점프를 흡수했습니다.
- 버그픽스폰을 가로/세로 회전 시 천체 마커가 잘못된 위치에 표시되던 문제를 fix — screen.orientation.angle (0/90/180/270) 을 좌표 회전 행렬에 반영했습니다.
- 개선센서 이벤트 (60Hz) 마다 React 재렌더하던 부하를 requestAnimationFrame 60fps cap 으로 throttle 했습니다. AR 진입 시 더 부드러운 화면.
- 개선천체 위치 (해·달·북극성·궤적) 계산을 1초 캐싱으로 변경 — 매 프레임 재계산 → 1초 1회. CPU 사용량 ↓.
- 버그픽스통합 검색의 출사 가이드 결과에서 실제로 열린 8개 가이드가 준비 중으로 표시되던 상태를 모두 live로 정리했습니다.
- 개선검색 가이드 인덱스에 매크로 촬영 가이드를 추가하고, sitemap 안내 주석도 출사 가이드 9종 기준으로 맞췄습니다.
- 개선은하수 가이드도 공용 상세 템플릿과 데이터 구조로 옮겨, 출사 가이드 9종 전체가 같은 v2 상세 화면 체계로 관리되게 정리했습니다.
- 개선은하수 가이드에 시즌, 달·천문박명, 광공해, 장비, NPF 노출, 현장 루틴, 스택킹, 추천 출사지, 관련 도구 사이드바를 다시 정리했습니다.
- 개선일출·일몰, 반영, 안개·운해, 도시 야경, 매크로, 자연광 인물, 단풍, 벚꽃 가이드를 v2 목업 톤의 상세 화면으로 개편했습니다.
- 개선각 가이드에 핵심 조건, 카메라 세팅, 현장 루틴, 추천 출사지, 함께 쓰면 좋은 도구를 추가해 출사 전 바로 판단할 수 있게 보강했습니다.
- 개선/guides 인덱스를 v2 목업 기준의 큰 히어로와 주제별 카드 라이브러리 구조로 재정리했습니다.
- 개선은하수·별사진 가이드를 시즌, 달 위상, 천문박명, Bortle 광공해, 호남권 출사지, 장비, NPF 셔터, 스택킹, 후보정까지 포함한 상세 실전 가이드로 보강했습니다.
- 개선스팟 상세 페이지의 Spot Master·Pioneer 명예 보드, 삭제·위치 수정 액션, 등록·업로드 화면의 최근 UI 개선 내역을 정리했습니다.
- 개선/map·/regions·/upload·/places/[id]에 반영된 v2 목업 기반 조정과 검증 완료 상태를 프로젝트 기록에 함께 맞췄습니다.
- 개선스팟 상세 페이지의 삭제 버튼을 별도 줄에서 제거하고, 위치 수정 버튼 바로 옆 액션 영역으로 옮겼습니다.
- 버그픽스장소 삭제 확인창과 오류 문구가 깨지지 않도록 삭제 버튼 컴포넌트의 안내 문구를 정리했습니다.
- 개선스팟 상세의 Pioneer·Spot Master 영역을 1~2줄 compact 보드로 줄이고, Master 사진 미리보기와 큰 점수 타일을 제거해 본문 공간 점유를 낮췄습니다.
- 개선아직 명예 보드가 비어 있는 장소도 한 줄 안내와 짧은 CTA만 보이도록 정리했습니다.
- 버그픽스스팟 아너 보드의 한국어 안내·점수 계산 문구를 다시 정리하고, 더 이상 쓰지 않는 사진 미리보기 블록을 제거했습니다.
- 개선/map 화면을 v2 목업 기준의 다크 지도 도구 화면으로 정리했습니다. 큰 editorial 헤더, 검은 레이어 칩, 340px 좌측 패널, 풀 지도 프레임을 적용했습니다.
- 개선/regions 인덱스를 17개 시·도 카드 허브로 재구성했습니다. 시즌 추천 지역, 전체 지역 그리드, 사진 많은 시·군·구 TOP 리스트를 한 화면에서 볼 수 있습니다.
- 개선/upload 사진 올리기 화면에 현재 회원 등급별 업로드 규정 카드를 추가했습니다. 일반 3장, Bronze 5장, Silver 10장, Gold 20장, 평생 무료 무제한 기준을 한눈에 확인할 수 있습니다.
- 개선사진 선택 제한도 사용자 등급과 창립 회원/평생 무료 상태를 반영하도록 바꿔, 업로드 전 안내와 실제 선택 가능 수량이 어긋나지 않게 정리했습니다.
- 개선Design v2 place-detail-with-master 목업을 참고해 /places/[id] 상단을 사진형 히어로와 떠 있는 Spot Master 카드 구조로 재정리했습니다.
- 개선Pioneer와 Spot Master 요약 카드를 목업처럼 더 압축된 명예 보드로 바꾸고, Master 랭킹 CTA와 Top 사진 표시를 더 선명하게 다듬었습니다.
- 개선KTO 이미지가 있는 장소는 히어로 배경으로 사용하고, 없을 때는 관광지 톤 그라데이션으로 자연스럽게 표시되도록 보강했습니다.
- 개선/meetups/new 화면을 올리기·등록 허브와 이어지는 목업 톤으로 정리하고, 모임 기본 정보·회비 기준·후속 준비 3단계를 먼저 보여주도록 보강했습니다.
- 개선모임 생성 폼의 카드 배경과 주요 CTA를 정리해 사진 업로드, 장소 등록, 모임 만들기 진입이 한 계열처럼 보이게 맞췄습니다.
- 개선/places/new 장소 등록 화면을 업로드 허브와 이어지는 목업 톤으로 정리하고, 위치 찾기·중복 확인·분류 등록 3단계를 먼저 보여주도록 보강했습니다.
- 개선장소 등록의 위치 검색, 카테고리, 장소 정보, 중복 후보 카드가 라이트·다크에서 더 안정적으로 보이도록 카드 스타일을 정리했습니다.
- 개선/upload/by-photo 화면을 업로드 목업 톤에 맞춰 사진 선택, EXIF·GPS 분석, 장소 추천, 기록 등록 3단계가 더 선명하게 보이도록 정리했습니다.
- 개선GPS 자동 매칭의 사진 선택 영역, 미리보기, EXIF/GPS 정보 카드, 매칭 결과 카드를 모바일에서도 보기 쉬운 구조로 보강했습니다.
- 개선/upload 올리기·등록 허브를 목업 기준으로 사진 먼저, 장소 먼저, 출사 모임 진입이 분명한 구조로 재정리했습니다.
- 개선사진 업로드 폼의 상단 워크플로, 큰 드롭존, EXIF·GPS·AI Vision 안내 카드, 선택 사진 그리드를 목업 톤에 맞춰 보강했습니다.
- 개선모바일에서는 탭과 GPS 자동 매칭 진입이 더 잘 보이도록 업로드 헤더와 CTA를 정리했습니다.
- 개선Spot Master 옆에 작은 i 버튼을 추가해 Pioneer 보너스, 사진 기여, 좋아요, 댓글 점수 계산 방법을 바로 확인할 수 있게 했습니다.
- 개선스팟 상세와 프로필 Masters 탭 모두에서 같은 점수 안내 팝업을 사용해 마스터 선정 기준을 일관되게 보여줍니다.
- 신기능프로필 페이지에 Pioneers 탭을 추가해 사용자가 처음 등록하거나 발견한 장소 목록을 볼 수 있게 했습니다.
- 개선프로필 상단 통계에 Pioneers 카운트를 추가하고, Pioneer 카드에 개척일·사진 수·좋아요·대표 사진을 함께 표시했습니다.
- 개선Pioneer와 Master를 각각 영구 명예와 현재 랭킹 명예로 분리해 프로필에서도 차이가 드러나도록 정리했습니다.
- 개선/places/[id] 상세의 Pioneer와 Spot Master를 각각 독립 카드로 분리하고, 닉네임 앞 역할 배지를 더 선명하게 표시했습니다.
- 신기능프로필 페이지에 Masters 탭을 추가해 사용자가 현재 1위로 유지 중인 장소와 대표 사진, 점수 구성을 볼 수 있게 했습니다.
- 개선/places/[id]/master-ranking 랭킹 닉네임에도 Pioneer와 Master 역할 배지를 붙여 명예 구조가 더 직관적으로 보이게 했습니다.
- 신기능/upload에서 한 번에 최대 3장까지 사진을 선택하고 썸네일로 대표 사진을 확인·전환·제거할 수 있게 했습니다.
- 개선v2.51 목업 흐름을 반영해 AI Vision 일괄·개별 모드 선택 UI와 다중 사진 저장 방식 안내를 추가했습니다.
- 개선DB 마이그 전 단계에서는 기존 사진 row를 순차 생성하는 안전한 Phase 0 방식으로 동작하도록 구성했습니다.
- 신기능/admin/queue/spot-master에 장소별 Pioneer·Master 후보와 급상승 이상 신호를 확인하는 관리자 전용 운영 큐를 추가했습니다.
- 개선최근 30일 공개 사진을 기준으로 같은 장소 집중 업로드, 신규 계정 급상승, 좋아요 급증 후보를 읽기 전용으로 집계합니다.
- 개선좋아요와 댓글 테이블을 함께 읽어 외부 좋아요, 댓글, 셀프 반응 신호를 운영 큐에서 구분해 볼 수 있게 했습니다.
- 개선/admin 대시보드에 스팟 마스터 운영 카드가 추가되어 v2.49 Phase 0 모니터링 화면으로 바로 이동할 수 있습니다.
- 신기능Design v2 스팟 마스터 목업을 기준으로 /places/[id] 상세에 Pioneer와 Master를 함께 보여주는 SpotMasterCard를 추가했습니다.
- 신기능/places/[id]/master-ranking 페이지를 새로 추가해 장소별 사진가 TOP 10, Top 5 사진, 점수 breakdown을 확인할 수 있게 했습니다.
- 개선운영 DB 마이그 전 단계에서는 저장 컬럼 없이 현재 사진·좋아요·댓글 데이터를 서버에서 계산해 Phase 0 미리보기로 표시합니다.
- 개선/tools 허브를 Design v2 tools-v0 목업 흐름에 맞춰 editorial hero, 시즌 추천 띠, 대표 도구 카드 구조로 재구성했습니다.
- 개선운영 중인 도구 링크는 유지하면서 대표 6개 도구와 바로 쓰는 도구, 장비·코스 섹션으로 나눠 스캔성을 높였습니다.
- 개선오래된 도구 허브 문구와 깨진 표시를 정리하고 모바일에서도 카드 우선순위가 자연스럽게 보이도록 다듬었습니다.
- 개선/tools metadata title과 description도 현재 허브 구성에 맞춰 정리했습니다.
- 개선/tools/meetups가 /meetups로 리다이렉트하지 않고 출사 모임 목록을 직접 렌더링하도록 정리했습니다.
- 개선출사 도구 허브에서 들어와도 도구 URL과 모임 관리 화면의 맥락이 이어지게 했습니다.
- 개선/tools/ar가 /ar로 리다이렉트하지 않고 AR 시각화 도구를 직접 렌더링하도록 정리했습니다.
- 개선도구 URL에서도 위도·경도·라벨 query를 그대로 받아 카메라·돔·지도 fallback 흐름을 사용할 수 있습니다.
- 버그픽스물때 플래너 히어로 그래프의 빨간 표시가 12시 고정이 아니라 실제 추천 촬영창 시간대로 이동하도록 수정했습니다.
- 개선자동조회로 조위 샘플이 들어오면 그래프 막대 모양도 실제 조위 흐름 기준으로 갱신됩니다.
- 개선/tools/courses가 리다이렉트 대신 코스 라이브러리를 직접 렌더링하도록 정리했습니다.
- 개선도구 URL에 맞는 title과 description metadata를 추가했습니다.
- 개선/tools/calendar에 월간 캘린더 그리드, 촬영 이벤트 도트, 저장한 출사 후보 패널을 추가했습니다.
- 개선월 선택을 더 빠르게 바꾸고 빛·계절·달 이벤트를 한눈에 구분할 수 있게 정리했습니다.
- 신기능/tools/calendar 준비 안내 페이지를 월별 계절 피사체와 추천 빛 시간을 보는 출사 캘린더 베타로 전환했습니다.
- 신기능계절·빛·행사 포커스 필터, 월별 추천 점수, 추천 시간·피사체·준비 메모를 한 화면에 표시합니다.
- 개선출사 도구 허브의 출사 캘린더 상태를 준비 중에서 베타로 변경했습니다.
- 개선/ar 페이지에 AR 시각화 도구용 title과 description metadata를 추가했습니다.
- 신기능/tools/ai-camera 준비 안내 페이지를 5문항 카메라 추천 베타 도구로 전환했습니다.
- 신기능촬영 목적, 예산, 휴대성, 경험, 렌즈 확장 의향에 따라 카메라 Top 3와 시작 렌즈를 추천합니다.
- 개선출사 도구 허브의 AI 카메라 추천 상태를 준비 중에서 베타로 변경했습니다.
- 개선오늘의 빛 대시보드와 빛 타임 머신의 페이지 타이틀을 infotravelog 인포트래블로그 표기로 맞췄습니다.
- 버그픽스물때 조건 API가 KASI 공공데이터의 HTTP 200 내부 오류 resultCode를 성공으로 오인하지 않도록 보강했습니다.
- 개선KASI 인증·제한·제공기관 오류 문구를 감지하면 partial/fallback 진단으로 전환해 운영 상태를 더 분명하게 표시합니다.
- 개선물때 플래너 모바일에서 촬영포인트를 누르면 선택과 동시에 물때·날씨·안전 종합조회가 실행되도록 개선했습니다.
- 개선모바일 포인트 조회 중에는 중복 탭을 막고, 선택된 포인트 기준으로 추천 간조·만조 시간이 적용되도록 보강했습니다.
- 개선물때 플래너 모바일 하단 패널에 물때·날씨·안전을 한 번에 확인하는 종합조회 버튼을 추가했습니다.
- 개선모바일 종합조회는 결과 영역 이동 흐름을 유지해 포인트 선택 후 바로 촬영 창을 확인하기 쉽게 했습니다.
- 개선물때 플래너 상단 종합 카드에 물때와 조건을 한 번에 확인하는 종합 조회 버튼을 추가했습니다.
- 개선상단 카드에서 조회할 때는 결과 영역으로 자동 이동하지 않고 카드 안에서 상태를 갱신하도록 분리했습니다.
- 개선물때 플래너 상단 종합 카드가 공식 물때 조회 상태, 조건 조회 상태, 실제 안전 API 결과를 즉시 반영하도록 개선했습니다.
- 개선공식 간조·만조 목록을 상단 카드에도 표시해 사용자가 아래 입력 영역까지 내려가지 않아도 주요 기준 시간을 확인할 수 있게 했습니다.
- 개선/tools/tides 화면에 Design v2 목업의 다크 강제, Magnum red 강조, photo-first 종합 카드 톤을 적용했습니다.
- 신기능상단에 물때, 날씨, 안전, 천문, 계절, 대표 사진을 한 번에 보는 종합 판단 카드를 추가했습니다.
- 개선안전 4단계 레전드와 정사각형 대표 사진 그리드를 추가해 모바일·데스크톱에서 상태를 더 직관적으로 읽을 수 있게 했습니다.
- 신기능물때 플래너 Pro Preview에 1순위 후보를 캘린더 일정 파일로 내보내는 버튼을 추가했습니다.
- 개선내보낸 일정에는 촬영지, 촬영 포인트, 후보 시간, 점수, 기준 물때, 빛 판단, 지도 링크와 Pro 브리핑 내용이 함께 들어갑니다.
- 신기능물때 플래너 Pro Preview에 1순위 후보 적용과 Pro 브리핑 복사 버튼을 추가했습니다.
- 개선Pro 브리핑에는 촬영지, 목적, 후보 시간, 점수, 빛 판단, 안전, 날씨, 월령, 준비 장비, 안전 메모, 지도 링크를 한 번에 담습니다.
- 개선물때 플래너 Pro Preview의 Top 3 후보를 누르면 해당 후보 날짜와 간조·만조 기준 시간이 바로 적용되고 추천 촬영 결과 영역으로 이동하도록 했습니다.
- 개선Basic/Pro 선택과 Pro 촬영 목적을 브라우저에 저장해 다음 방문에도 같은 분석 모드로 이어볼 수 있게 했습니다.
- 신기능/tools/tides에 Basic/Pro Preview 전환을 추가해 일반 사용자는 빠른 물때 조회, Pro 사용자는 작품 후보 비교 흐름으로 진입할 수 있게 했습니다.
- 신기능Pro Preview에 반영·갯벌·일몰·일출·장노출 목적 선택, Top 3 후보, 7일 후보 점수, 안전·월령·빛 겹침 지표를 추가했습니다.
- 개선Pro 후보는 공식 간조·만조 시간이 입력되면 촬영 목적, 촬영 포인트 카테고리, 빛 창, 안전 점수, 월령, 추천지 우선순위를 합산해 점수화합니다.
- 버그픽스KASI_MOON_ENDPOINT 입력 완료 후 월령 응답 필드가 lunAge 외 다른 표기로 내려와도 읽을 수 있도록 월령 필드 판독 범위를 넓혔습니다.
- 개선월령 API 호출은 성공했지만 moonAge 값을 찾지 못한 경우 성공으로 오인하지 않고 partial 상태와 SunCalc fallback으로 전환해 운영 진단이 더 분명하게 보이도록 했습니다.
- 신기능지도 페이지의 출사 모드 행에 「🎪 행사」 토글 chip 을 추가했습니다. 클릭하면 진행 중·예정 행사가 지도 위에 핀으로 표시됩니다.
- 개선행사 핀은 분류별 색상으로 구분됩니다 — 축제 빨강 · 공연 보라 · 행사 노랑. 핀 클릭 시 행사명·기간·지역·바로가기가 popup 으로 표시됩니다. 행사가 많은 지역은 클러스터 숫자로 표시.
- 개선토글 상태는 브라우저에 저장되어 다음 방문 시 유지됩니다.
- 버그픽스KTO 자동 수집 cron 내부 안전 타이머를 Vercel Pro 300초 한도에 맞췄습니다. kto-import가 9분까지 돌려고 하던 값을 280초로 낮춰 timeout 직전 빈 응답 위험을 줄였습니다.
- 개선kto-events cron도 Pro 기준 maxDuration 300초로 올리고, 페이지·항목 반복 중 280초 안전 마진을 넘으면 자연스럽게 중단하도록 보강했습니다.
- 버그픽스빛 타임머신 Pro 목적을 바꿨을 때 기존 같은빛 후보를 억지로 재정렬하던 흐름을 보완했습니다. 일몰·일출·블루아워·은하수·반영·야경은 서버에서 목적별 후보 시간을 따로 계산합니다.
- 개선정오 사진을 일몰이나 은하수 목적으로 다시 볼 때 새벽 4시 같은 어색한 후보가 그대로 우선 추천되는 문제를 줄였습니다. 선택한 촬영 목적의 실제 시간대 후보를 우선 사용합니다.
- 개선후보 품질 계산에 목적별 계절 보정, 태양 고도 보정, 은하수 중심 고도와 달 밝기 기준을 추가했습니다. Pro 카드의 1순위 지표도 선택한 목적의 후보 기준으로 표시됩니다.
- 개선빛 타임 머신 선택 사진 미리보기를 원본 비율 중심 표시로 변경했습니다. 세로·가로 사진이 잘리지 않고 전체 프레임을 먼저 확인할 수 있습니다.
- 신기능사진 보기와 지도 보기를 페이지 이동 대신 플로팅 창으로 열도록 추가했습니다. 지도 보기는 좌표·해 방향·해 고도와 카카오맵 열기를 함께 제공합니다.
- 신기능업로드 촬영종류와 피사체 분류를 기반으로 「같은 빛·일몰·일출·블루아워·은하수/별·반영/물안개·야경」 재현 목적을 자동 추천하고, 사용자가 직접 재해석할 수 있게 했습니다.
- 개선재현 목적에 따라 후보 점수와 설명을 다르게 보여줍니다. 저장한 사진도 업로더 분류에 묶이지 않고 내 출사 목적 기준으로 다시 판단할 수 있습니다.
- 개선Pro Signal Matrix를 추가해 목적별 성공 조건을 분해했습니다. 일몰·일출은 해 방향/구름/도착 리듬, 은하수는 달빛·박명·광해, 반영은 바람·수면·물때처럼 확인해야 할 조건을 따로 보여줍니다.
- 개선후보 복사, 1순위 메모, Pro 리포트, 캘린더 내보내기에 재현 목적과 Pro 판단축을 함께 포함했습니다. 촬영 실행 카드도 목적별 준비 문구로 바뀝니다.
- 버그픽스「전국 축제·공연·행사 지도」 의 3 분류 탭이 「전부 행사」 로만 표시되던 사고를 fix — KTO 행사 데이터 중 카테고리 코드가 비어있는 행사가 많아 자동 분류가 안 되던 원인을 해소.
- 개선행사 제목 키워드 기반 자동 분류를 추가했습니다 — 「축제·페스티벌」 → 축제, 「공연·콘서트·뮤지컬·연극·전시·박람회·음악회」 → 공연, 그 외 → 행사. KTO 카테고리 + 제목 키워드 두 신호로 정확도 ↑.
- 버그픽스행사 카드의 대표 이미지가 일부 행사 (예: 정부 문화 프로그램) 에서 안 보이던 사고를 fix — KTO 의 대표 이미지 (firstimage) 가 비어있어도 detail 이미지 (imageUrls) 에 사진이 있으면 그 중 첫 번째 사진을 자동으로 표시하도록 fallback 체인 추가.
- 개선「전국 축제·공연·행사 지도」 메인 페이지의 우측 영역을 시·군 상세 페이지와 동일한 구조 (Region Index 카드 + 색 범례 + 광역 바로가기 grid) 로 재구성했습니다.
- 개선「전체 일정」 list 가 지도 우측 1 컬럼 → 지도 아래 3 컬럼 grid 로 이동했습니다. 한 화면에 더 많은 일정을 한 눈에 볼 수 있게 했습니다.
- 개선17 광역 바로가기 카드 — 광역 이름 + 축제 N개 표시. 광역 클릭 시 해당 시·군 페이지로 진입.
- 개선어드민 「KTO 일괄 보강」 의 한 번 처리 개수가 5 개 (max 7) → 20 개 (max 100) 로 늘었습니다. Vercel Pro 플랜의 함수 실행 시간 300 초 한도 활용 — 한 번 클릭으로 4 배 더 많이 처리.
- 신기능행사 데이터 자동 수집 cron 이 「하루 1 번」 에서 「6 시간마다 (00·06·12·18 KST)」 로 빈도 증가. 신규 행사가 빠르게 사이트에 반영됩니다.
- 개선자동 수집 cron 의 한 번 처리 한도가 10 개 → 30 개 (보강), 25 개 → 50 개 (신규 detail) 로 확장. KTO 데이터가 일 단위가 아닌 시간 단위로 점진 보강됩니다.
- 버그픽스매일 새벽 자동으로 도는 KTO 데이터 수집 (cron) 이 이전엔 함수 기본 시간 (~15 초) 으로 잘려 일부만 적재되던 가능성 해소 — 정식으로 300 초 한도 부여.
- 버그픽스빛 타임 머신에서 후보 핵심 빛 시간이 서버 시간대 문자열에 의존해 04:00처럼 보일 수 있던 문제를 고쳤습니다.
- 버그픽스후보 비교, Pro 브리핑, 촬영 준비 카드, 메모 복사, 캘린더 설명 모두 후보 ISO 시간을 한국 시간 기준으로 다시 표시합니다.
- 개선빛 타임 머신에서 후보가 0개일 때의 안내를 Pro 조건 완화 흐름에 맞게 수정했습니다.
- 개선더 이상 예정 기능처럼 보이지 않고, 사용자가 계절·점수 기준을 넓혀 다시 확인할 수 있음을 바로 안내합니다.
- 개선빛 타임 머신 후보 카드에 주말 후보 배지를 추가했습니다.
- 개선Pro의 주말 우선 정렬과 후보 행 표시가 맞물려, 왜 특정 후보가 위로 올라왔는지 더 쉽게 읽을 수 있습니다.
- 신기능Pro 후보 필터에 점수순, 빠른순, 주말 우선 정렬을 추가했습니다.
- 개선점수만 높은 후보가 아니라 이번 주말에 실행 가능한 후보나 가장 가까운 날짜를 빠르게 골라볼 수 있습니다.
- 개선주말 우선 정렬은 주말 후보를 먼저 올리고, 같은 그룹 안에서는 점수와 날짜를 함께 반영합니다.
- 신기능Pro 모드에 빛 타임 머신 리포트 복사 버튼을 추가했습니다.
- 개선기준 사진, 기준 빛, 1순위 후보, 촬영 판단 3 갈래, 상위 후보 5개를 텍스트로 묶어 현장 메모나 외부 노트에 바로 옮길 수 있습니다.
- 개선일반 모드는 1순위 메모 중심, Pro 모드는 브리핑 리포트 중심으로 실행 액션 차이가 더 선명해졌습니다.
- 신기능Pro 모드에서 점수·계절 필터가 너무 좁아 후보가 사라지면 「조건 완화」 패널이 뜨도록 했습니다.
- 개선전체 계절, 70+로 완화, 전체 후보 보기 버튼으로 사용자가 다시 후보 목록을 바로 복구할 수 있습니다.
- 개선후보 없음 상태를 막다른 안내가 아니라 다음 판단으로 이어지는 흐름으로 정리했습니다.
- 신기능Pro 모드에 최고점·가장 빠른 창·주말 후보를 나눠 보여주는 촬영 판단 브리핑을 추가했습니다.
- 개선Pro 토글을 누르면 저장한 사진 후보가 있을 때 자동으로 저장 사진 모드로 전환되어 일반/Pro 차이가 더 즉시 드러납니다.
- 개선핵심 빛 기준으로 -45분 도착, 기준 빛, +75분 정리 흐름을 시각화해 촬영 준비 리듬을 바로 읽게 했습니다.
- 개선/tools/time-machine의 노출명을 「빛 타임 머신」 으로 정리하고 페이지 타이틀, 도구 허브, 설명 문구를 함께 맞췄습니다.
- 신기능일반 모드는 내 사진 기준 상위 후보와 1순위 메모에 집중하고, Pro 모드는 저장 사진, 월별 히트맵, 후보 필터, Top 3 비교, 캘린더 내보내기를 한 흐름으로 보이게 재구성했습니다.
- 개선Pro Preview 토글과 잠금 안내 패널을 추가해 일반/Pro 차이가 화면에서 바로 드러나도록 했습니다.
- 신기능「전국 축제 지도」 페이지를 「전국 축제·공연·행사 지도」 로 확장했습니다. 상단 탭으로 축제 · 공연 · 행사 3 카테고리를 분리해 보거나 전체를 함께 볼 수 있습니다.
- 개선우측 일정 list 를 「이번 주」 · 「이번 달」 · 「상시 진행」 3 시간 슬롯으로 재구성했습니다. 연중 진행 행사가 신규 행사를 가리지 않도록 「상시 진행」 은 접기/펼치기 로 분리.
- 개선월별 chip 과 새 분류 chip 이 함께 동작합니다 (예: 「공연」 탭 + 「5 월」 조합).
- 개선광역 상세 페이지 (예: 경기도) 의 「시·군 바로가기」 카드 배열이 시·군 수에 따라 자동 조정됩니다 — 21+ (경기) 는 4 컬럼, 13~20 (서울 25 등) 은 3 컬럼, 그 이하는 2 컬럼. 지도 높이와 카드 list 길이가 더 잘 맞춰지도록 정정했습니다.
- 개선/tools/time-machine의 사진 빛 재현 결과에 상위 3개 후보 비교 패널을 추가했습니다.
- 개선점수, 방위 오차, 고도 오차, 도착 권장 시각을 한 줄에서 비교할 수 있어 후보 날짜를 고르기 쉬워졌습니다.
- 개선/tools/time-machine의 사진 빛 재현 후보에 최우선 촬영 창, 강한 후보 수, 유리한 계절을 묶은 전략 요약 패널을 추가했습니다.
- 개선Basic 추천과 Pro 확장 조언을 나눠 보여줘 무료 기능은 실행 준비, Pro 기능은 날씨·물때·장소 비교 확장으로 차별화되도록 정리했습니다.
- 버그픽스어드민 「KTO 일괄 보강 - 행사」 의 「남음 카운트」 가 r2 후에도 그대로 유지되던 사고를 최종 fix — KTO API 가 일부 행사에 대해 사진을 0~1 개만 제공해 「보강 필요」 조건이 영원히 참인 무한 반복 상태였습니다. 「최근 7 일 안에 시도했으면 KTO 응답을 신뢰한다」 는 게이트를 추가해 데이터가 부족한 행사도 보강 큐에서 빠져나오도록 정정했습니다.
- 개선/tools/time-machine의 사진 빛 재현 후보에 도착 권장 시각, 핵심 빛 시각, 정리 기준을 묶은 촬영 실행 카드를 추가했습니다.
- 개선캘린더 내보내기는 핵심 빛 시각 45분 전부터 일정이 시작되도록 바꿔 실제 출사 준비 시간까지 함께 잡히게 했습니다.
- 개선/tools/time-machine의 사진 빛 재현 후보에 매우 가까움·가까움·참고 후보 같은 매칭 라벨을 추가해 추천 날짜의 신뢰도를 더 직관적으로 볼 수 있게 했습니다.
- 개선방위와 고도 차이를 한국어 설명으로 풀어 후보 카드, 복사 텍스트, 캘린더 내보내기에 함께 담기도록 정리했습니다.
- 버그픽스어드민 「KTO 일괄 보강 - 행사」 의 「남음 카운트」 가 5 개 처리 후에도 그대로 유지되던 사고를 진짜 원인까지 fix — 검수 큐의 pending 후보는 Event 행이 아직 없으므로 보강 후에도 「Event row 없음 = 보강 필요」 로 잡혀 무한 반복되던 조건을 「rawData 가 충분히 채워졌으면 보강 완료」 로 정정했습니다.
- 개선사진 빛 재현 후보에 점수와 계절 필터를 추가해, 다시 찍기 좋은 날짜를 더 빠르게 좁혀볼 수 있게 했습니다.
- 개선후보 카드에 D-day, 계절, 시간대 칩을 더해 촬영 준비 우선순위를 한눈에 판단하기 쉽게 정리했습니다.
- 개선사진 빛 재현 후보를 캘린더 파일로 내보내거나 텍스트로 복사할 수 있게 해, 추천 날짜를 바로 출사 준비에 옮길 수 있도록 개선했습니다.
- 개선후보 날짜의 점수와 방위·고도 오차가 캘린더 설명과 복사 문구에 함께 들어가도록 정리했습니다.
- 개선사진 빛 재현 결과에 월별 후보 점수를 한눈에 보는 히트맵을 추가해, 비슷한 빛이 어느 달에 집중되는지 빠르게 판단할 수 있게 했습니다.
- 개선일반 기능과 고급 기능의 차이를 실행성 중심으로 정리해 캘린더 저장, 물때 결합, 조건 비교 같은 다음 확장 방향을 화면 안에서 자연스럽게 보여줍니다.
- 신기능/tools/time-machine에 내가 촬영한 사진과 저장한 사진을 기준으로 비슷한 태양 방위와 고도가 다시 오는 날을 찾는 사진 빛 재현 패널을 추가했습니다.
- 개선사진 선택, 기준 빛 시각화, 후보 날짜 점수, 방위/고도 오차 바를 한 화면에 묶어 빛 타임 머신의 차별점을 날짜 입력 도구에서 사진 기반 재현 도구로 확장했습니다.
- 버그픽스어드민 「KTO 일괄 보강」 의 행사(contentTypeId=15) 보강이 「남음 카운트가 줄지 않고 같은 데이터를 반복 처리」 하던 사고를 fix — 보강 필요 판단 로직에 행사 분기가 누락되어 한 번 보강한 행사도 항상 「미보강」 으로 잡히던 원인을 해소.
- 개선AR 시각화에서 별 위치 계산이 ±0.5° 약식 변환에서 ±0.001° 정밀 변환으로 실제 전환됐습니다. 화면 한 픽셀 오차 수준 — 별 마커가 실제 천체와 정확히 일치합니다.
- 개선운영 통계 (스팟·사진가·사진 수) 가 실데이터 기반으로 표시 됩니다 (1시간 캐시). 「9 출사 도구」 카드 클릭으로 출사 도구 hub 로 이동.
- 신기능AR 시각화에 IAU 88 별자리가 모두 표시됩니다 (이전 15 → 88). 한국에서 보이는 30+ 별자리는 라인까지 그려집니다.
- 개선별 데이터 30 → 128 개 (mag ≤ ~3.7). 카시오페이아·페가수스·헤르쿨레스·전갈자리·궁수자리 등 핵심 별자리의 형상이 정확히 보입니다.
- 개선별 위치 계산 정밀도를 ±0.5° → ±0.001° 으로 끌어올린 정밀 변환 모듈을 도입했습니다 (astronomy-engine). 한 픽셀 오차 수준에 가깝게 천체와 일치합니다.
- 개선다크 모드 카드의 안쪽 하이라이트와 외곽 테두리 그림자를 한 단계 또렷하게 정정했습니다. zinc 톤 + 카드 경계 r2 정합 (라이트 모드 영향 없음).
- 신기능사진강의 모듈 페이지 끝 (prev/next 직전) 에 해당 모듈과 연결된 사이드 코너 토픽이 자동으로 표시됩니다. M2 끝 = AF·필름카메라 / M3 끝 = 회절·상반칙불궤 / M7 끝 = 모아레·비트뎁스·컬러그레이딩·AI 한계.
- 개선amber 톤 카드 grid (sm:2 col) + 토픽 reading time + 모듈 hint 배지. 본문 안 cross-link 와 함께 옆길 발견 두 자리 (본문 중간 + 모듈 끝) 확보.
- 신기능/lessons/feed.xml RSS 2.0 feed 를 추가했습니다. Foundations 8 모듈 + 사이드 코너 8 토픽 = 16 entry. RSS 리더로 구독하면 본문 갱신 시 자동 안내.
- 개선/lessons hub + 모듈 페이지의 Open Graph + Twitter card 메타데이터를 강화했습니다. 카카오톡·트위터 공유 시 제목/설명/이미지가 자연스럽게 표시됩니다.
- 개선모듈 페이지 description 이 동적으로 「N 챕터 · 약 N 분 · 첫 3 챕터 제목」 으로 생성됩니다.
- 신기능사진강의 hub 의 「더 깊이 들어가기」 헤더 옆에 📡 RSS link 가 추가됐습니다.
- 신기능전문가 모드에 Expert Lab을 추가해 7일 조건 랭킹, 목적별 점수, 고급 기능 후보 카드를 한 화면에서 볼 수 있게 했습니다.
- 개선초보자 모드는 Beginner Path 단계 카드로 장소·날짜·목적·핵심값·안전 확인 순서가 먼저 보이도록 분리했습니다.
- 개선전문가 모드는 분석형, 초보자 모드는 안내형으로 첫 화면의 정보 구조와 시각 톤을 다르게 정리했습니다.
- 개선/tools/calculators 첫 화면을 「오늘의 출사 브리핑」 카드 중심으로 재구성해 촬영 시간·현장 신호·핵심 조건을 먼저 보여줍니다.
- 개선빛·천체·노출·렌즈·심도 요약 카드에 아이콘, 판정 라벨, 프리셋 변경 하이라이트를 추가했습니다.
- 개선현장 리스크는 신호등 점과 chip으로 요약해 숫자보다 촬영 판단이 먼저 보이도록 정리했습니다.
- 개선/tools/calculators 제목 중복을 줄이고 브라우저 타이틀이 「인포트래블로그 · InfoTravelog」로 보이게 정리했습니다.
- 신기능첫 화면에 빛·천체·노출·렌즈·심도 요약 카드, 입력값 검증, 기상·대기 현장 리스크 카드, 공유 URL 복사를 추가했습니다.
- 개선천체 탭에 NPF/500 별 노출 카드를 보강하고 별궤적·렌즈 프레임·심도 범위 미리보기를 추가했습니다.
- 개선/admin/lessons 페이지 상단에 「모듈 · 전체 본문 · backup · 최근 수정」 4 통계 카드 추가. 각 모듈 카드에도 backup 개수 emerald chip + 상대 시각 라벨.
- 개선/admin 대시보드의 「📖 사진강의 본문 편집」 카드에 「8 모듈 · backup N · 최근 N분 전」 동적 메타 추가.
- 신기능Google·Naver 검색에 사진강의 페이지 11 개 (hub · 사이드 코너 · 검색 + 모듈 8) 가 sitemap 으로 등록됩니다.
- 신기능/lessons/search?q=조리개 처럼 URL 로 검색 결과를 공유할 수 있는 풀 페이지가 추가됐습니다. 챕터 + 사이드 코너 두 그룹으로 나눠 표시.
- 개선Ctrl+K 검색 팔레트 footer 에 「전체 결과 페이지 →」 link 가 추가됐습니다. 빠른 검색은 팔레트, 깊게 살펴보기·공유는 풀 페이지.
- 신기능각 챕터 제목 (h2) 위에 마우스를 올리면 「🔗」 버튼이 나타납니다. 클릭으로 챕터 anchor URL 이 클립보드에 복사돼 공유가 쉬워졌습니다.
- 신기능/lessons hub 의 「02 취미 트랙 / 03 상업 트랙」 카드가 클릭 가능해졌습니다. 「🔔 출시 알림 받기」 → 트랙별 안내 모달 + 알림 신청 상태 localStorage 보존.
- 개선사진강의 페이지를 인쇄하면 사이드바·검색·모바일 nav·인터랙티브 컴포넌트가 자동 숨겨지고 본문만 깔끔하게 출력됩니다.
- 개선본문 ↔ 사이드 코너 cross-link 확장 — M3-3 셔터 → 상반칙불궤 · M7-1 RAW → 비트뎁스/모아레 · M7-3 슬라이더 5개 → 컬러 그레이딩.
- 개선본문의 「📚 더 깊이 들어가기」 cross-link 인디케이터가 brand 카드 스타일 (둥근 모서리 + brand bg + 강조 link) 로 보입니다. 일반 인용문과 시각 구분.
- 개선사이드 코너 페이지의 「본문 N-N으로 돌아가기 ↩」 인용문도 동일 카드 톤으로 정리.
- 개선모바일에서도 사진강의 본문 검색 버튼이 우상단에 노출됩니다. 데스크탑 좌하단 「🔍 검색 ⌘K」 와 같은 팔레트로 연결.
- 개선본문에서 사이드 코너로 직접 점프하는 cross-link 시범 적용. M2-1 (미러리스 EVF) → AF 구조 사이드 코너 · M3-2 (F22 함정) → 회절 사이드 코너.
- 신기능/lessons hub 의 「어디서부터 시작할까요?」 진단이 활성화됐습니다. 3 질문 yes/no 답변에 따라 시작하기 좋은 모듈 (M1·M3·M5·M7) 자동 추천.
- 신기능결과는 localStorage 에 보존되어 hub 재방문 시 「✓ 진단 결과 — 추천 모듈」 카드가 노출됩니다. ↺ 다시 진단 버튼으로 재시도 가능.
- 신기능Ctrl/Cmd+K 또는 / 키로 사진강의 검색 팔레트가 열립니다. Foundations 8 모듈 + 사이드 코너 8 토픽 통합 검색.
- 신기능키워드 매치 부분 ** 강조 표시 + 모듈/토픽 배지 + ↑↓ 키 navigation + Enter 점프. 데스크탑 우상단 floating 「🔍 검색 ⌘K」 버튼도 함께.
- 개선기상청 단기예보 조회가 물때 플래너에서 선택한 촬영일 기준으로 예보를 필터링하도록 개선했습니다.
- 개선/api/weather도 선택 date 파라미터를 받을 수 있어 같은 격자·발표시각 안에서도 날짜별 예보 캐시를 분리합니다.
- 버그픽스KMA/KASI 공공 API 응답이 지연될 때 종합 조건 카드 전체가 오래 멈추지 않도록 공급자 호출 timeout을 적용했습니다.
- 신기능/lessons/side 페이지가 활성화되어 광학·기술·사진사 8 토픽을 읽을 수 있습니다. AF 구조 · 필름카메라 4종 · 회절 · 상반칙불궤 · 모아레 · 비트뎁스 · 컬러그레이딩 · AI 사진 한계.
- 신기능각 토픽 모듈 배지 (M2 끝 / M3 끝 / M7 끝 emerald/amber/violet 색 매핑) + reading time + anchor 직링크.
- 개선/lessons hub 의 「더 깊이 들어가기」 카드가 클릭 가능해졌습니다. 카드를 누르면 해당 토픽 anchor 로 점프.
- 개선/tools/tides 화면을 지도·해안 안전 흐름과 같은 다크 모드로 고정하고, 테마 전환 버튼은 해당 화면에서 비활성화했습니다.
- 개선물때 플래너 상단에 다크 모드 고정 안내를 표시해 사용자가 화면 정책을 바로 알 수 있게 했습니다.
- 개선M3-3 셔터 슬라이더 우측 「동결 ↔ 흐름」 패널이 작동합니다. 셔터속도에 따라 motion trail 잔상 + streak 길이 동적으로 변화. 실제 사진 자산 없이도 학습 가능.
- 개선M3-4 ISO 슬라이더 우측 「화질」 패널 활성화. 가상 풍경 그라데이션 + ISO 따라 채도 손실 + grain noise 오버레이 + 「CLEAN / USABLE / EDGE / DEGRADED」 평가 chip 자동.
- 개선/tools/tides 회원 사진 샘플 grid와 모바일 BottomSheet 사진에 반영·갯벌·일몰·일출 카테고리 배지를 우상단에 표시합니다.
- 개선사진 alt를 비워두지 않고 촬영지, 카테고리, 거리 기준으로 채워 접근성 검증 항목을 보강했습니다.
- 신기능본문 편집기에 이미지를 드래그 앤 드롭하거나 Ctrl+V 로 붙여넣으면 자동 업로드 + 본문 삽입됩니다. 여러 장 동시 처리.
- 신기능「📚 갤러리」 버튼으로 이전에 업로드한 이미지 + PDF 캡쳐 자산을 그리드로 보고 클릭 한 번에 본문에 재삽입. sub-dir 필터 + 파일명 검색.
- 개선이미지 업로드 버튼이 다중 선택 (multiple) 모드로 바뀌었습니다. 한 번에 여러 장 선택 가능.
- 개선/tools/tides 회원 사진 샘플 grid와 모바일 BottomSheet 사진에 반영·갯벌·일몰·일출 카테고리 배지를 우상단에 표시합니다.
- 개선사진 alt를 비워두지 않고 촬영지, 카테고리, 거리 기준으로 채워 접근성 검증 항목을 보강했습니다.
- 신기능/lessons hub 페이지 Hero 직후에 「↪ 이어보기」 카드가 등장합니다. 마지막으로 본 모듈+챕터로 한 번에 jump. 진척 게이지·읽음 챕터 수·접속 시간 함께.
- 신기능모듈 헤더·사이드바·hub 카드에 「약 N 분」 reading time 표시. 분당 한글 600 자 기준.
- 신기능키보드 단축키 — [ = 이전 챕터, ] = 다음 챕터. 입력란·textarea 포커스 중에는 비활성.
- 신기능/tools/tides에서 촬영지를 즐겨찾기에 저장하거나 해제할 수 있게 했습니다. 저장 목록은 브라우저 localStorage의 tide.favorites에 보관됩니다.
- 개선마지막으로 본 물때 촬영지를 tide.lastViewed에 저장해 공유 링크 없이 다시 들어와도 최근 확인한 지점으로 자동 복원합니다.
- 신기능/admin/queue/tide-spots 카드에 추천 사진 5장 고정과 고정 해제 버튼을 추가해 운영 DB 적용 후 대표 사진 샘플을 바로 저장할 수 있게 했습니다.
- 개선마이그 전에는 버튼을 비활성화하고, 적용 후에는 EXIF GPS 200m 후보를 조회해 photo_sample_ids overlay에 저장한 뒤 관리자 큐를 새로고침합니다.
- 신기능모바일에서 sticky 하단 챕터 nav 가 등장합니다. 현재 모듈의 챕터를 가로 스크롤로 점프 + 진척률 게이지.
- 신기능scroll-spy: 본문을 스크롤하면 현재 보는 챕터가 사이드바·모바일 nav 에서 자동 강조됩니다. 읽은 챕터는 ✓ 표시.
- 신기능/lessons hub 페이지의 모듈 list 카드에 「N/M 챕터 읽음」 progress bar 가 표시됩니다. 8 모듈 모두 읽으면 ✓ 완독 chip.
- 개선데스크탑에서 본문을 읽는 동안 우하단 floating 「↑ 이전 챕터 / ↓ 다음 챕터」 pill nav 가 활성 챕터 기준으로 자동 제공됩니다.
- 신기능관리자용 PATCH /api/admin/tide-spots/[spotId]/photo-samples API를 추가해 v2.47 tide_photo_spots overlay에 대표 사진 id 0~5개를 저장할 수 있게 했습니다.
- 개선대상 spot id와 사진 id 형식을 검증하고, 운영 DB 마이그 전 테이블이 없으면 migration_required 응답으로 안전하게 안내합니다.
- 개선다크 모드 카드의 안쪽 하이라이트와 외곽 테두리 그림자를 한 단계 더 또렷하게 정정했습니다. 이전 zinc 톤 정정 + 카드 경계 정정과 정합해 카드와 배경 분리가 더 자연스럽습니다 (라이트 모드 영향 없음).
- 신기능tide_photo_spots 테이블을 읽어 정적 TidePhotoSpot 데이터에 userReports, photoSampleIds, seasonalBest, safetyNote, safetyToneOverride overlay를 합치는 서버 헬퍼를 추가했습니다.
- 개선/admin/queue/tide-spots와 /admin 대시보드 카운트가 overlay를 반영하되, 운영 DB 마이그 전 테이블이 없어도 기존 정적 큐로 안전하게 fallback합니다.
- 신기능v2.47 TideSpot 운영 overlay 테이블용 migration-v2-47-tide-photo-spots.sql 파일을 추가했습니다. userReports, photoSampleIds, seasonalBest, safetyNote, safetyToneOverride 저장을 준비합니다.
- 개선Prisma schema에 TidePhotoSpot 모델을 추가해 운영 DB 적용 후 /admin/queue/tide-spots 승인·반려 액션과 대표 사진 고정 저장을 연결할 수 있게 했습니다.
- 신기능/tools/tides 모바일 화면에 하단 요약 시트를 추가해 선택 촬영지의 안전 톤, 추천 촬영 창, 날씨, 계절 칩, 회원 사진 샘플을 바로 확인할 수 있게 했습니다.
- 개선모바일 고정 내비게이션과 겹치지 않도록 시트를 내비게이션 위에 배치하고 계획 저장·현장 지도 액션을 sticky 영역에 배치했습니다.
- 신기능/admin/queue/tide-spots 운영 큐를 추가해 사용자 제보, 출처 검토, 안전 우선, 대표 사진 미지정 후보를 관리자에서 한 번에 볼 수 있게 했습니다.
- 개선/admin 대시보드에 물때 촬영지 검수 카드를 연결하되 긴급 처리 합계에는 포함하지 않아 준비성 검토와 당일 운영 알림을 분리했습니다.
- 개선/admin/lessons/[module] Markdown 모드에 좌 편집 / 우 라이브 렌더 split-view 미리보기를 추가했습니다. 👁 미리보기 ON/OFF 토글.
- 신기능/admin/lessons/[module]/history — 분 단위 자동 백업 list + 미리보기 + 「↺ 이 버전으로 복원」 버튼. 복원 직전 본문은 .pre-restore.bak 으로 별도 보존.
- 신기능/admin/lessons 에서 Foundations M1~M8 본문을 직접 편집할 수 있습니다. Markdown 원본 모드 (안전 · 권장) + WYSIWYG 모드 (TipTap · 자유 사진 배치) 2 종.
- 신기능이미지 업로드 시 자동으로 /public/lesson/{module}/manual/ 폴더에 저장 + 본문에 삽입. 8MB 까지 · jpg/png/webp/gif 지원.
- 개선저장 시 자동 분 단위 백업 (.backup/ 폴더). Ctrl+S 단축키 + 변경 미저장 시 페이지 이탈 경고.
- 신기능/api/tools/tides/conditions 를 추가해 물때 촬영지 기준 기상청 단기예보, 한국천문연구원 출몰·월령, 안전 참고 점수를 한 번에 조회할 수 있게 했습니다.
- 신기능한국천문연구원 천문현상 정보(AstroEventInfoService/getAstroEventInfo)를 조건 API에 연결해 선택일 이후 가까운 월내 천문 이벤트를 함께 표시합니다.
- 신기능물때 촬영지 데이터에 계절 추천, 현재 추천 강조, 안전 톤·안전 노트, 대표 사진·사용자 보고 확장 필드를 추가했습니다.
- 신기능회원 사진 EXIF GPS를 기준으로 물때 촬영지 ±200m 안의 대표 사진 샘플을 자동 매칭하는 API와 카드 표시를 추가했습니다.
- 개선기상청 해양기상관측자료는 공공기관 신청 대상이라 미연동 상태로 명시하고, UI에는 물때·날씨·천문·안전 참고 카드와 면책 문구를 추가했습니다.
- 버그픽스KASI 조회는 DATA_GO_KR_SERVICE_KEY / PUBLIC_DATA_SERVICE_KEY fallback과 배포 커밋 메타를 지원해 Vercel 환경변수 반영 여부를 더 쉽게 점검할 수 있게 했습니다.
- 개선「출사 도구」 hub 에 있던 「별 사진 가이드」 카드를 제거했습니다 — 같은 내용이 「출사 가이드」 인덱스의 첫 항목 「별사진·은하수」 로 이미 들어가 있어 중복이었습니다. 출사 가이드를 통해서 동일하게 진입할 수 있습니다.
- 개선기존 /tools/star-photo 링크는 자동으로 /guides/star-photography 로 redirect 되도록 그대로 유지 — 외부에서 공유한 옛 링크도 끊김 없이 연결.
- 버그픽스출사 도구 hub 의 「사진 강의」 카드가 「준비 중」 안내 페이지로 가던 사고를 fix — 실제로 라이브 운영 중인 사진강의 페이지 (Foundations 8 모듈 32 챕터) 로 바로 이동합니다. 카드 설명문과 상태(「사용 가능」) 도 같이 갱신.
- 개선이전 링크인 /tools/academy 로 접근해도 자동으로 강의 페이지로 redirect — 외부에서 옛 링크를 공유한 경우에도 끊김 없이 연결.
- 개선데스크탑 좌측 사이드바의 접힘 상태 폭을 72px에서 60px으로 한 단계 줄였습니다. hover 시 펼침은 220px 그대로.
- 개선접힘 상태에서 메뉴 아이콘이 왼쪽으로 쏠려 보이던 사고를 fix — 접혀 있을 때는 자동으로 중앙 정렬, hover로 펼치면 라벨과 함께 자연스럽게 좌측 정렬로 복원됩니다.
- 개선좌측 사이드바에서 「사진 강의」 와 「내 모임」 항목을 제거했습니다 — 둘 다 「출사 도구」 hub 안에서 진입 가능해 중복이었습니다.
- 개선사이드바 「마이」 그룹의 「설정」 메뉴를 프로필 페이지 좌상단으로 이동했습니다. 본인 프로필에서 「✎ 프로필 편집」 옆에 「⚙ 설정」 버튼이 같이 보입니다.
- 개선사이드바 메뉴 항목의 글씨·아이콘 크기와 행간을 한 단계 작게 정리해 더 컴팩트하게 보입니다.
- 버그픽스AR 시각화에서 북극성·해·달 등 천체 마커가 카메라를 땅 쪽으로 향해야 화면에 나타나던 사고를 fix — 디바이스의 기울기 (beta) 를 천문 좌표계의 앙각으로 변환할 때 90° 오프셋이 빠져 있던 원인. 이제 카메라를 천체 쪽으로 향하면 자연스럽게 화면 중앙에 마커가 위치합니다.
- 개선별자리 (Constellation), AR Camera, AR Dome 세 가지 뷰가 같은 좌표 변환 함수를 공유하므로 한 번에 모두 정합.
- 개선홈 페이지 「둘러보기 · 사진가들이 모은 명소」 섹션의 정사각 미리보기 카드에 스팟 이름과 사진을 올린 작성자(@닉네임) 가 같이 표시됩니다. 좌상단에 「인기·일몰·별사진」 같은 카테고리 칩, 하단에 스팟 이름과 작성자가 두 줄로 보이도록 정리.
- 개선그라디언트 오버레이 농도를 한 단계 더 진하게 (다크 → 사진 위 흰 글씨 가독성 보강).
- 버그픽스로그인되어 있는데도 좌측 사이드바 하단에 「로그인 / 가입」 자물쇠 버튼이 표시되던 사고를 fix — 페이지 다른 영역에서는 「올리기」 같은 로그인 분기가 정상 표시되는 반면 사이드바만 비로그인 상태로 보이는 사고. 같은 페이지 안에서 인증 정보가 두 번 조회되며 결과가 어긋나던 원인을 해소 (한 번만 조회 후 사이드바·헤더에 공통 전달).
- 개선다크 모드의 카드 본문 글씨 (예: 「출사 가이드 · 계절·주제별 촬영 포인트와 준비 체크」 같은 카드 설명문) 가 r2 적용 후에도 여전히 어두워 보이던 부분을 한 단계 더 밝게 정정했습니다. 보조 글씨 (E5 → EE) · 작은 회색 글씨 (C8 → D5) · 비활성 (85 → 95) · ink palette (D4/B8/9E/85 → DC/C8/B0/95) 모두 한 등급씩 더 ↑.
- 개선카드 테두리도 한 단계 더 명확하게 (subtle 0.14 → 0.20 · default 0.22 → 0.30 · strong 0.30 → 0.38). 다크 배경 위에서 카드 경계가 더 분명히 인지됩니다.
- 개선다크 모드의 카드 내부 작은 회색 글씨 (스팟 카드 본문 주소 · 「전체 9곳」 통계 · 「📷 1 ♡ 0」 카운트 · 좌측 「이 날짜의 일출·일몰 …」 같은 설명문) 가 여전히 어두워 보이던 문제를 r2 로 한 단계 더 보강했습니다. 보조 글씨 · 작은 회색 글씨 · 비활성 글씨 · 테두리 모두 한 등급씩 밝아짐.
- 개선테마 모드를 「라이트 / 다크」 2 가지로 단순화했습니다 — 별도로 있던 AMOLED 모드는 폐기. 토글 버튼은 ☀ ↔ 🌙 단순 토글로 동작합니다.
- 개선사진 상세 · 갤러리 · 지도 페이지가 다크 모드로 강제되던 부분을 정정해 사용자가 라이트/다크를 선택할 수 있게 됐습니다. 라이트 사용자는 라이트로, 다크 사용자는 다크로 자연스럽게 표시됩니다.
- 개선다크 강제 페이지는 AR 화면 (별도구 · 별모드 · 별사진 가이드) 만 남깁니다 — 야간 촬영 도구 특성상 라이트 모드가 시야를 방해해서 다크 고정이 의도된 페이지들입니다.
- 개선다크 모드에서 작은 회색 글씨 (예: 「오늘의 빛 · 전주 기준」 의 「전주 기준」 부분) 가 잘 안 보이던 문제를 보강 — 보조 글씨 색 한 단계 밝게, 비활성 글씨도 인식 가능한 톤으로 정정.
- 개선카드·박스 테두리가 검은 배경에 거의 묻혀 보이지 않던 부분을 강화 — subtle 6% → 10% / default 12% → 16% / strong 20% → 24%. 카드 경계가 처음으로 명확히 인지됨.
- 개선다크 모드 배경 「층위」 시각 분리 — 페이지 배경 vs 섹션 vs 카드 vs hover vs popover vs 모달 vs 최상위 가 각 +5~9 unit씩 차이나도록 정정 (이전엔 카드와 배경이 거의 같은 검정이라 「평면」 느낌). 모든 카드 사이 시각 위계 자연스러움.
- 개선출사 계산기 페이지가 박제 의도와 달리 다크 모드로 강제되던 부분을 라이트 default 로 정정. 라이트 사용자가 계산기 들어가면 라이트로 표시. (다크 강제 페이지는 박제 6 = 사진 상세 · 갤러리 · 지도 · 별모드 · AR · 별사진 가이드 만 유지)
- 버그픽스갤러리 페이지에서 사진이 적을 때 (개발 초기 단계) 화면 하단에 거대한 빈 검정 영역이 표시되던 문제 fix — main 영역이 viewport 를 다 차지하도록 min-h-screen 적용.
- 개선출사 도구 허브에 「물때 플래너」 와 「별 사진 가이드」 2 항목을 추가해 총 12 가지로 확장했습니다. 「오늘의 빛 대시보드」 는 실제 페이지가 있으므로 「준비 중」 → 「사용 가능」 으로 정정.
- 버그픽스「준비 중」 표시였던 AI 카메라 추천·시간 머신·출사 캘린더 3 가지는 클릭 시 404 가 나던 문제를 fix — 각각 「준비 중」 안내 페이지를 만들어 사용자가 다른 도구로 자연스럽게 이동할 수 있게 했습니다.
- 개선그리드 4 열 (12 → 4+4+4) 로 정리. 이름순 정렬 유지.
- 버그픽스출사 도구 페이지가 6 카드만 보이던 문제를 fix — 5/12 에 10 가지로 확장했던 항목 중 AI 카메라 추천 · 시간 머신 · 오늘의 빛 대시보드 · 출사 캘린더 4 가지가 5/16 사이드바 정리 작업 중 빠져 있던 회귀를 복구했습니다.
- 개선이름순 정렬(AI → AR → 사진 강의 → 시간 머신 → 오늘의 빛 → 출사 가이드 → 계산기 → 모임 → 캘린더 → 코스) 유지. 데스크탑 그리드 4 열 (10 → 4+4+2).
- 신기능장소 상세 페이지의 「행사」 탭이 카드형 풍부 UI 로 업그레이드됐습니다. 16:9 헤로 이미지, ★ 검수 배지, 운영 시간·요금·소요 시간·관람 연령 4 카드, 프로그램 timeline, 추가 갤러리, 주최/주관/문의, 홈페이지·예매 CTA 까지 한 화면에서 확인.
- 개선문화관광축제·글로벌육성축제·예비문화관광축제 등 KTO 인증 등급은 자동으로 ★ 검수 배지 + 등급 칩으로 표시됩니다.
- 개선기존에는 제목·날짜·짧은 설명만 보였던 화면이 KTO 가 제공하는 모든 보강 데이터를 한 번에 보여주도록 정리됐습니다.
- 개선AR 화면의 BETA 배지·나침반 N 마커·정렬 슬라이더 등 액센트 색을 magnum 톤으로 통일했습니다. 화면 통일감 ↑.
- 개선데스크탑에서 AR 폴백 화면(자력계 없는 PC)을 2 컬럼 와이드 레이아웃으로 정리 — 좌 천체 카드 / 우 ±6h 궤적 테이블. 모바일은 그대로 single column.
- 개선천체 마커의 빛 번짐을 살짝 줄여 야간 사진 위에서도 마커 너머 사진이 자연스럽게 보이도록 다듬었습니다.
- 개선PC 사이드바의 도구 영역을 출사 도구 한 줄로 압축하고, /tools 허브에서 가이드·계산기·모임·코스·AR·강의로 들어가게 정리했습니다.
- 개선기존 KTO 축제 데이터에 프로그램·요금·운영 시간·연령 정보를 자동 보강해 축제 상세 표시 기반을 넓혔습니다.
- 버그픽스저장 가능한 추가 이미지가 없는 KTO 응답은 반복 backfill 후보로 남지 않도록 후보 판정을 안정화했습니다.
- 개선기존 KTO 행사 rawData를 Event 컬럼과 programs/imageUrls로 옮기는 backfill 스크립트를 추가하고, 이미 받아 둔 원본 기준 빈 필드 보강을 완료했습니다.
- 버그픽스KTO API 재호출이 timeout될 때 실패 건수와 잔여 후보 수가 분리되어 보이도록 스크립트 결과를 정리했습니다.
- 개선KTO 일괄 보강 결과에 보강이 필요한 전체 항목과 아직 남은 항목 수를 함께 표시해 진행 상황을 확인하기 쉽게 했습니다.
- 버그픽스KTO 일괄 보강 실패 시 실제 원인(KTO 키 미설정, API timeout 등)을 관리자 화면에서 확인할 수 있게 했습니다.
- 신기능KTO 검수 큐의 일괄 보강에 행사 버튼을 추가해 축제·행사 데이터도 프로그램, 추가 이미지, 문의, 장소 정보를 한 번에 보강할 수 있게 했습니다.
- 신기능KTO 축제 수집 시 프로그램·부대행사(detailInfo), 추가 이미지, 장소·문의·요금·소요시간·공식 홈페이지·축제 등급을 Event 데이터에 함께 저장합니다.
- 개선문화관광축제·글로벌육성축제·예비문화관광축제 등급은 자동 검수 신호로 반영해 축제 데이터의 신뢰 표시 기반을 마련했습니다.
- 개선KTO 축제 전체 백필을 Vercel 함수 제한에 걸리지 않도록 startPage 단위로 나눠 실행할 수 있게 했습니다.
- 버그픽스KTO 검수 큐에서 관광지·문화시설·숙박·음식점 승인 시 JSON 메타에 빈 값이 섞여 promote_failed 가 발생할 수 있던 문제를 수정했습니다.
- 버그픽스KTO 데이터 변경 감지 항목을 다시 승인할 때 기존 promoted Place 또는 같은 contentId Place 를 재사용해 중복 생성과 unique 충돌을 막았습니다.
- 버그픽스예전 방식으로 들어온 행사 데이터에 날짜가 없으면 승인 시 KTO 상세 정보를 다시 가져와 startDate/endDate/title 을 보강하도록 했습니다.
- 버그픽스행사 Event 는 없고 Place 만 이미 있는 데이터도 기존 Place 를 먼저 찾아 재사용하도록 해 kto_content_id 중복 오류를 막았습니다.
- 버그픽스KTO Place 생성 중 kto_content_id unique 충돌이 다시 발생해도 기존 Place 를 찾아 병합하도록 P2002 방어 처리를 추가했습니다.
- 버그픽스운영 DB에 축제 Phase0 보강 컬럼이 아직 없을 때도 행사 승인이 되도록 Event 저장과 조회를 기존 컬럼 기준으로 낮췄습니다.
- 버그픽스행사 승인 저장을 운영 DB 기존 컬럼만 쓰는 SQL upsert 로 바꿔 Prisma 기본값 컬럼 드리프트(raw_data 등)를 피하도록 했습니다.
- 개선개별 승인과 검수 큐 한 방 처리에서 실패가 발생하면 실제 상세 사유가 관리자 화면에 보이도록 개선했습니다.
- 개선KTO 축제 수집을 기간 기반 searchFestival2와 pagination 방식으로 바꿔 여러 페이지의 축제 정보를 안정적으로 가져오도록 했습니다.
- 개선이미 들어온 KTO 축제 데이터는 contentId 기준으로 중복 없이 재사용하고, 승인된 데이터가 바뀌면 축제 지도용 events 데이터까지 다시 동기화되도록 했습니다.
- 개선지도 라이트 모드를 Mapbox Standard 기반의 옅은 톤과 자연광 스타일로 바꿔 더 깔끔하게 보이도록 했습니다.
- 개선라이트 지도에서는 POI와 대중교통 라벨을 줄이고, 다크 지도는 기존 검정 배경과 오렌지 도로 톤을 유지했습니다.
- 개선축제 지도 권역과 시군 경계선을 라이트 모드에서는 검정, 다크 모드에서는 흰색 기준으로 더 명확하게 정리했습니다.
- 개선지도 안쪽 면 색은 거의 투명하게 낮춰 배경 지도가 보이고 경계선 중심으로 권역을 읽을 수 있게 다듬었습니다.
- 개선행사 수 0건 권역의 empty outline stroke 를 #737373 으로 올려 라이트·다크 양쪽에서 경계가 더 또렷하게 보이도록 조정했습니다.
- 버그픽스홈 오늘의 빛 카드 8개의 다크 모드 배경과 글자색을 의미 색상에 맞춰 더 밝게 보정했습니다.
- 개선별점, 공지 티커, 카드 외곽선과 배경 대비를 올려 어두운 화면에서도 정보가 또렷하게 보이도록 다듬었습니다.
- 개선축제 지도에서 다크 고정을 풀어 라이트·다크 모드가 모두 자연스럽게 적용되도록 바꿨습니다.
- 개선광역·시군 행정구역 레이어는 면을 더 투명하게 낮추고 테두리를 선명하게 조정해 지도 배경 위에서 더 스타일리시하게 보이도록 다듬었습니다.
- 개선축제 상세 핀 팝업과 주변 카드도 라이트·다크 색상에 맞춰 읽기 좋게 보정했습니다.
- 개선축제 지도를 기존 SVG 지도에서 Mapbox GL 기반 지도로 바꿔 확대와 이동이 더 자연스럽게 동작합니다.
- 개선광역과 시·군 지도 모두 축제 수에 따라 4단계 색상과 숫자 배지를 보여주도록 정리했습니다.
- 신기능시·군 상세 지도에는 축제 핀과 사진형 팝업, 장소 보기와 지도로 이동 버튼을 추가했습니다.
- 신기능축제 지도에서 광역을 누르면 시·군 행정구역 지도로 한 단계 더 들어갈 수 있게 했습니다.
- 신기능전북 같은 광역 페이지에서 시·군별 축제 개수 배지와 색상 단계를 바로 볼 수 있습니다.
- 개선시·군을 선택하면 해당 지역 축제 목록과 지도 핀을 함께 보는 상세 화면으로 이어집니다.
- 신기능물때 추천지에 자동 중요도, 추천 점수, 난이도, 접근 유형, 물때 민감도 산정 구조를 추가했습니다.
- 개선향후 장소별 importanceOverride 등 수동 필드로 자동 등급을 개별 보정할 수 있게 열어두었습니다.
- 개선물때 플래너 목록에 대표 추천, 초보 쉬움, 물때 필수, 공식 출처 관리 필터와 등급 배지를 추가했습니다.
- 개선현재 자동 집계는 264곳 중 전국 대표 28곳, 지역 대표 45곳, 물때 필수 17곳입니다.
- 개선축제 리스트 카드의 「검수」 배지를 ★ + magnum 톤으로 통일하고, 카드 모서리·터치 영역도 디자인 v2.0 기준에 맞춰 정리했습니다.
- 개선「지도」 「상세」 CTA 를 Button 컴포넌트 (span 패턴) 로 교체 — 모바일 터치 영역 44px 보장 + 키보드 접근성 개선.
- 신기능축제 핀 팝업 EventPinPopup 컴포넌트 추가 (지도 상세 페이지에 적용 예정). 16:9 이미지 · ★ 검수 chip · 날짜 · 장소 · 「지도」/「상세」 CTA. 모바일에서는 sticky bottom sheet 모드 지원.
- 개선구 /spots, /landmarks, /cafes, /restaurants 인덱스 페이지가 모두 새 /places 통합 페이지로 자동 이동합니다 (카테고리 chip 자동 활성). 외부 북마크·SNS 공유 링크·검색엔진 인덱스 SEO 보존을 위해 308 영구 리다이렉트로 처리.
- 개선/landmarks/[광역] 도 /places?cat=landmark®ion={광역} 으로 자동 매핑. /feed (구 라우트) 도 동일 흐름.
- 버그픽스위치 수정 모달의 native confirm() 팝업을 제거했습니다. 모바일 일부 환경에서 OS confirm UI 가 깨지거나 잘리는 사고를 회피하기 위해 모달 안 inline 「변경 확인」 단계로 바꿨습니다.
- 개선안내 텍스트 12px → 14px 으로 ↑ 하고 줄간격을 늘려 모바일 가독성을 높였습니다. 「변경됨」 표시도 작은 chip 으로 정리.
- 개선닫기 ✕ 버튼을 Button 컴포넌트로 통일 (44×44 터치 영역 보장 + 키보드 Enter/Space 지원). 모달 배경·카드·텍스트·에러 색을 디자인 v2.0 토큰으로 swap 해 라이트·다크 자동 swap.
- 신기능변경 이력 페이지에 종류별 필터 chip (신기능 · 개선 · 버그픽스 · 보안 · 배포) 추가 — 원하는 종류만 골라보기 가능. URL 에 ?kind=feature 형태로 동기화되어 북마크도 됩니다.
- 개선Editorial 톤 헤더 (Crimson Pro display) + 날짜 smallcaps (JetBrains Mono uppercase tracking) 적용. 최신 항목에는 magnum 「LATEST」 배지.
- 개선엔트리 카드를 디자인 v2.0 Card 컴포넌트 (elev=1 radius 2xl) 로 통일. 종류 chip 도 의미 색 토큰 (success/info/warning/danger/brand) 으로 정합.
- 개선사진 기반 사이트 정체성에 맞춰 디자인 시스템을 v2.0 으로 업그레이드했습니다. 색·폰트·여백·모서리 등 전반 톤을 「사진이 주인공」 인 차분한 화면으로 재조정.
- 개선라이트·다크 분리 토큰화 — paper(흰 계열) · ink(검정 계열) · magnum(따뜻한 빨강 액센트). 의미 색 카드(일출·일몰·신월·은하수 등)도 다크 모드에서 묻히지 않게 가독성 ↑.
- 개선타이포그래피 — 본문 Pretendard · 디스플레이 Crimson Pro · 데이터 JetBrains Mono. 사진 캡션과 도수 표시가 한층 정리됨.
- 개선모바일 button 깨짐 fix — iOS Safari·Android Chrome 의 native button reset 문제를 해결하기 위해 내부 렌더를 span role=button 으로 마이그(터치 영역 44px 보장 + 접근성 키보드 지원).
- 신기능사진강의 (Foundations) 사이트 골격이 정해졌습니다. 8 모듈 32 챕터 (입문 → 노출 → 빛 → 구도 → 색 → 인물 → 풍경 → 후보정) 가 차례로 공개될 예정.
- 개선URL = /lessons, 본문 단일 진실의 원천 = 별도 문서. M1(입문) 본문 마이그 완료. M2~M8 이 순차 공개 예정입니다.
- 개선라이트 모드 default. 진입은 「출사 도구」 hub 안에 통합 (별도 navigation 없음).
- 버그픽스축제 지도에서 행사 없는 지역 (서울·강원·충남·대전·세종·전북·경북·경남·대구·제주 등) 이 배경에 묻혀 안 보이던 문제 해결. fill-opacity 0.012 → 0.35 로 ↑.
- 개선empty region outline 색 #525252 → #737373 (ink-200) · outline-width 1.25 → 1.5 ↑ — 경계 명확히 보이도록 보강.
- 개선low/mid/high tone 의 fill-opacity 도 함께 ↑ (0.026~0.044 → 0.55~0.85) — 모든 region 시각 위계 유지하면서 가독성 ↑↑.
- 신기능ARMapView 신규 — 4 계층 fallback 의 3 단. 자력계 없을 때 Mapbox dark 지도 위에 현재 위치 핀 + 천체 방향 화살표 (태양/달/북극성). 위치만 가능한 디바이스도 사진 spot 결정 도구로.
- 신기능천체 화살표 3 종 — 태양 (#FCD34D solid 2px), 달 (gray dashed 4 4 2px), 일몰 시 magnum-500 강조 2.5px + 끝 원. 골든아워 진입 시 자동 안내 카드.
- 신기능「🌅 일출 / 지금 / 🌇 일몰」 3 chip + ±6h 슬라이더. 일출/일몰 클릭 시 자동 점프. SunCalc 일출/일몰 시각 사용.
- 개선featureDetection.recommendArView() 에 「map」 분기 추가 — 4 계층 fallback 완성. camera (full) → dome (자력계만) → map (위치만) → static (그 외).
- 신기능ARDomeView 신규 — 4 계층 fallback 의 2 단. 카메라 거부/미지원 시 radial-gradient dome 배경 (top 푸른 → 중간 짙은 남색 → 지평선 검정) + 별·별자리 + 태양·달.
- 신기능자이로 인디케이터 (좌상 「Az · Alt」) + 권한 상태 (우상) + 시간 ±1h chip + 「지금」 magnum CTA + 위치 표시. 인터랙티브 회전 (DeviceOrientation alpha/beta).
- 개선방위 라벨 N E S W 동적 표시 — 정면 방향 magnum-300 강조. 고도 grid 30°·60° subtle 라인. 일몰 임박 시 태양 색 magnum-500 자동 전환.
- 신기능Constellation 컴포넌트 신규 — 별 등급 4 단계 (Mag 1=6px glow 8 / Mag 2=4px glow 5 / Mag 3=3px glow 3 / Mag 4+=2px no glow). Mag ≤ 4.5 까지만 표시 (야간 사진 위 노이즈 회피).
- 신기능별자리 라인 3 스타일 — subtle (흰 20% 1px 기본) · 강조 (magnum-300 1.5px 탭 시) · dashed (4 4 magnum-300 학습 모드). 탭 인터랙션으로 라벨 토글.
- 신기능라벨 — 별 이름 JetBrains Mono 12px + Bayer/Mag 11px · 별자리 라틴 Crimson Pro italic 13px magnum-300 + 한국명 Pretendard 10px.
- 개선lib/ar/constellation.ts — 핵심 30 별 (Yale Bright Star Catalog) + 14 별자리 (오리온·큰개·황소·사자·목동·거문고·독수리·백조·큰곰·작은곰·카시오페이아 등) + 표준 천체역학 RA/Dec → Az/Alt 변환 헬퍼 (±0.5° 정확도).
- 개선ARCameraView 에 Constellation 통합. Visual Calibration offset 자동 적용. 「basic / learning / dome」 3 모드 prop 지원. astronomy-engine 정밀 통합은 Phase 1+ 별자리 88 IAU 전체 시.
- 신기능Feature Detection — 진입 즉시 카메라·자력계·자이로 비동기 검사 (1.5 s). 자력계 없는 데스크탑/태블릿 → ARStaticView 폴백 (천체 데이터 텍스트 + ±6h 궤적 테이블 + 일출/일몰). v2.33 § 5.6 4 레이어 fallback 의 1·4 단계 구현.
- 개선센서 융합 업그레이드 — 기존 EMA 0.15 → Complementary Filter α=0.98 (자이로 98% + 자력계 2%). DeviceMotion rotationRate × dt 적분 + DeviceOrientation 헤딩 블렌딩. 자이로 미지원 디바이스는 EMA 자동 fallback. 마커 떨림 감소 + 단기 안정성 향상.
- 개선AR 권한 모달 다크 강제 (bg-zinc-900 + ring-zinc-700) — Design v2.0 「ar-viewer 다크 강제」 정합. /ar?lang=en 으로 외국인 진입 가능.
- 신기능AR 시각화에 「🎯 Visual Calibration」 슬라이드 추가. 화면의 태양·달·북극성과 실제 천체를 사용자가 직접 정렬 → offset 값 localStorage 저장 → 이후 모든 표시에 자동 적용. PhotoPills 2.1.1 패턴.
- 개선정확도 ±21° → ±3° (7 배 향상). 박제 v2.33 § 4.7 「의무화」 명시 — Sensor Fusion + 8 자 자력계 보정 후에도 ±5~10° 잔존 → 사용자 시각 보정으로 0.5° 까지 ↓.
- 개선UI — 하단 HUD 의 시간 슬라이더 옆에 「🎯 Visual Calibration」 버튼. 클릭 시 ±30° 슬라이드 (0.1° 단위) + ◀▶ ±1° 버튼 + 「✓ 저장 / 0° 리셋 / 🗑 재캘리브레이션」. 저장 후 emerald 배지, 미저장 시 amber 배지로 상태 표시.
- 개선lib/ar/calibration.ts 신규 — applyVisualCalibration · saveVisualCalibration · resetVisualCalibration · getCalibrationMeta. localStorage 안전 처리 (private mode graceful · SSR 안전).
- 신기능축제 지도를 실제 한국 광역 GeoJSON과 Marker 배지 기반으로 다시 구성했습니다.
- 개선축제 수 4단계 색상, Magnum red glow, 모바일 확대 이동과 지역 칩 fallback을 연결했습니다.
- 개선행정구역 데이터는 별도 청크로 불러오도록 조정해 축제 지도 초기 로드를 가볍게 했습니다.
- 신기능교동도 월선포, 벌천포, 낙월도, 도리포, 외옹치, 고래불, 새연교 등 물때 출사지 15곳을 추가했습니다.
- 개선추천 촬영지는 264곳, 공식 참고 링크는 56곳, 직접 큐레이션은 208곳으로 갱신했습니다.
- 개선포구 반영, 해안 산책로, 섬 전망, 교량 야경, 동해 장노출까지 촬영 유형을 더 촘촘히 보강했습니다.
- 신기능한국 17개 광역과 시군구 GeoJSON 원본 데이터를 축제 지도용으로 추가했습니다.
- 개선KOSTAT 행정구역 코드를 서비스 지역 slug로 연결하는 17개 광역 매핑을 추가했습니다.
- 개선축제 지도를 실제 GeoJSON 기반으로 바꾸기 위해 지도 렌더링 의존성을 추가했습니다.
- 개선후속 작업에서 17개 광역 행정구역 데이터와 모바일 확대 이동을 연결할 준비를 마쳤습니다.
- 신기능천수만·금강하구·줄포만·무안갯벌·낙동강하구·제주 섬권 등 생태·철새·갯벌 출사지 15곳을 추가했습니다.
- 개선추천 촬영지는 249곳, 야생동물 분류는 36곳, 갯벌 분류는 69곳으로 확대했습니다.
- 개선을숙도·하도해변 등 기존 생태 포인트에 공식·공공 출처 링크와 갯벌 분류를 보강했습니다.
- 개선공식 참고 링크는 41곳, 검토 필요 0건으로 출처 감사 집계를 확인했습니다.
- 버그픽스Design v2.0 강제 다크 정책에 맞춰 별사진 몰입 화면 /star-mode 경로도 다크 테마로 고정했습니다.
- 신기능사진가 모집 라이트 강제 정책 검증을 위해 /photographer-recruit 페이지와 sitemap 노출을 추가했습니다.
- 개선Magnum red, data-theme, AMOLED, Button v2 span, Text, Card, Hero, BentoCard, PhotoCard, EditorialHeader 적용 상태를 다시 점검했습니다.
- 개선후속 검증 페이지 기준으로 /festivals, /tools, /upload, /places 위치 수정 흐름을 확인하고 위치 수정 관련 액션을 span/Button v2 패턴으로 맞췄습니다.
- 신기능태안·보령·부안·해남·보성·여수·거제·남해·사천·포항·울진·양양·제주 물때 출사지 18곳을 추가했습니다.
- 개선추천 촬영지는 234곳으로 늘었고 공식 참고 링크는 24곳, 직접 큐레이션은 210곳으로 갱신됩니다.
- 개선각 장소에 추천 물때, 구도, 장비, 안전 팁, 초보자 팁을 한 포인트씩 정리했습니다.
- 신기능/festivals에 17개 광역 한국 지도와 월별 필터, 지역별 축제 개수 배지를 추가했습니다.
- 신기능KTO 행사 전용 cron을 매일 04:00 KST에 실행되도록 추가하고 행사 상세 원문을 events로 연결하는 경로를 마련했습니다.
- 개선events에 이미지, 주최, 입장료, 우천 안내, 운영 검수, 원문 보관 필드를 보강했습니다.
- 개선축제 정보 검증을 위해 CORRECT, INCORRECT, CORRECTION, EVIDENCE 신호를 저장하는 feedback API를 추가했습니다.
- 개선물때 추천지에 출처 유형, 검수 상태, 라이선스 메모, 최근 검토일을 담을 수 있는 구조를 추가했습니다.
- 개선물때 플래너 상단에 추천지 수, 공식 참고 링크 수, 직접 큐레이션 수를 표시하도록 보강했습니다.
- 개선장소별 촬영지 자료 기준과 복사되는 촬영 계획에 출처 메타 정보를 함께 표시합니다.
- 신기능PC 사이드바를 장소 찾기·둘러보기·출사 도구·함께하기·마이·관리 6그룹으로 정리했습니다.
- 신기능/tools 허브를 6개 출사 도구 카드로 정리하고 가이드·계산기·모임·코스·AR·강의 진입을 연결했습니다.
- 개선브랜드 강조색을 Design v2.0 Magnum red 기준으로 통일하고 페이지별 라이트·다크 강제 테마를 보강했습니다.
- 개선/upload를 사진·장소·출사 모임 3카드 허브로 정리하고 프로필 설정을 accordion 형태로 묶었습니다.
- 버그픽스카페·맛집·관광지 레거시 경로가 /spots?category=* 로 이동하도록 301 경로를 정리했습니다.
- 개선물때 촬영지 상세 카드에 장소 설명·구도·장비·안전 팁이 InfoTravelog 직접 큐레이션 자료임을 표시했습니다.
- 개선복사되는 물때 촬영 계획에도 공공데이터포털 조위 데이터 출처와 큐레이션 출처 문구를 함께 넣었습니다.
- 개선물때 촬영 플래너 상단에 조위 데이터 출처와 공공누리 제1유형 라이선스 고지를 추가했습니다.
- 개선추천 촬영지 설명·구도·장비·안전 팁은 InfoTravelog 직접 큐레이션 자료임을 함께 표시했습니다.
- 버그픽스운영 API 점검에서 일시 미제공으로 확인된 안흥·포항·굴업도 조위관측소에 가까운 대체 관측소 자동조회 순서를 추가했습니다.
- 개선태안·보령·대산, 후포·울산, 영흥도·인천·영종도 순으로 fallback해 물때 촬영 플래너의 자동조회 실패를 줄였습니다.
- 버그픽스위도 조위관측소가 공공데이터에서 일시 미제공으로 응답할 때 군산·영광 관측소를 순서대로 자동 조회하도록 보강했습니다.
- 개선대체 관측소를 사용한 경우 물때 플래너에 임시 기준 안내와 현장 물선 확인 문구를 함께 표시합니다.
- 신기능물때 촬영 플래너에 장항·서천마량·어청도·거문도·추자도·동해항·고흥·영종도권 추천지 20곳을 추가했습니다.
- 개선장항송림, 춘장대, 마량포구는 더 가까운 장항·서천마량 조위 기준으로 바꿔 추천 시간 정확도를 높였습니다.
- 버그픽스AI 가이드 프롬프트에 Place JSON 단일 진실과 4줄 사실성 가드를 추가해 다른 장소 혼입을 줄였습니다.
- 신기능Place 위치 수정 모달의 지도 핀 드래그 저장을 지원하고 기존 owner/admin 권한 API와 연결했습니다.
- 개선KTO 검수 큐 한 방 처리의 음식점 카페/맛집 휴리스틱과 토글 미리보기를 정리했습니다.
- 보안공개 변경 이력에 내부 운영 단어 필터를 적용해 사용자에게 필요한 업데이트만 보이도록 했습니다.
- 개선Button 컴포넌트를 모바일 Safari 안정성을 위해 native button 대신 span role=button 패턴으로 전환하고, submit/reset 폼 동작은 내부 브리지로 유지했습니다.
- 개선Button v2 spec에 맞춰 variant를 primary/secondary/ghost 3종으로 정리하고 sm/md/lg/icon 크기와 default/hover/active/focus/disabled 5상태 CSS를 명확히 맞췄습니다.
- 개선tokens.json v2.0 기준으로 paper, ink, magnum, semantic, status, font, radius, shadow, motion, tap 토큰을 Tailwind와 globals.css에 동기화하고 data-theme dark selector를 Tailwind 설정에 연결했습니다.
- 신기능Text, Hero, BentoCard/BentoGrid, PhotoCard, EditorialHeader 컴포넌트와 Card 4단 elevation API를 추가했습니다.
- 개선ThemeProvider를 data-theme, system 기본값, localStorage theme, AMOLED 속성, 강제 dark/light 페이지 정책까지 처리하도록 보강했습니다.
- 신기능사이드바를 「장소 찾기 · 둘러보기 · 출사 도구 · 함께하기 · 마이」 6 그룹으로 재편하기로 했습니다. 「🛠 출사 도구」 단일 진입점에서 가이드·계산기·출사 모임·코스 라이브러리·AR·강의 6 도구를 한 곳에 모읍니다.
- 신기능「올리기·등록」 페이지를 사진·장소·출사 모임 3 카드로 통합해 진입 마찰을 줄입니다.
- 개선디자인 리프레시 v2 계획을 확정했습니다. 사진가 신뢰감을 우선한 photo-first + editorial 정통 톤, 새벽 출사 사용자를 위한 AMOLED 모드, 페이지별 라이트/다크 강제 정책을 도입합니다.
- 신기능출사 모임이 끝나면 그 시간표(코스)만 따로 공개 자산화되어 다른 사람이 「이 코스로 새 모임 만들기」로 재사용할 수 있는 시스템을 박았습니다. 참가자·정산 정보는 비공개로 분리됩니다.
- 신기능5+ 회 사용된 코스에 「🌟 검증된 코스」 자동 배지와 라이브러리 상단 노출, 작성자에게 활동 점수 보상이 자동 부여됩니다. 자기 코스 import는 IP·계정 기반으로 차단됩니다.
- 버그픽스카카오 특정 계정 로그인에서 Prisma P2022(schema drift) 예외가 AccessDenied 로 이어지던 흐름을 줄이기 위해 User 조회·생성 반환값을 로그인에 필요한 최소 컬럼으로 제한했습니다.
- 개선레거시 oauth_provider/oauth_uid 컬럼 조회가 운영 DB와 맞지 않으면 해당 경로를 건너뛰고 OAuthAccount·email 기반 연결을 계속 시도하도록 보강했습니다.
- 버그픽스/login?error=Configuration 화면에 갇힌 카카오 사용자는 브라우저별로 한 번만 자동 재시도해 정상 OAuth 시작 흐름으로 빠져나오도록 보강했습니다.
- 개선Configuration 안내 문구를 설정 오류가 아닌 카카오 연결 재시작 안내로 바꿔 특정 사용자 장애 대응 시 혼선을 줄였습니다.
- 버그픽스카카오톡 인앱 브라우저에서 /login?error=Configuration 화면에 머문 사용자가 다시 시도할 수 있도록 로그인 버튼을 Auth.js 클라이언트 signIn 흐름으로 전환했습니다.
- 개선Configuration 안내 카드에 카카오 재시작 버튼을 추가해 오류 URL을 다시 공유하거나 새로고침하는 대신 바로 정상 OAuth 시작 흐름을 탈 수 있게 했습니다.
- 버그픽스예전 /api/auth/signin/{provider} 직접 링크를 모바일 브라우저에서 열면 Auth.js Configuration 오류로 떨어지던 흐름을 /login 의 정상 POST 로그인 시작으로 자동 연결하도록 보강했습니다.
- 개선/login 이 callbackUrl 을 안전하게 이어받아 저장·프로필 등 보호 화면에서 로그인한 뒤 원래 목적지로 돌아갈 수 있게 했습니다.
- 버그픽스signIn 콜백 내부 예외가 Auth.js 에서 일반 AccessDenied 로 뭉개지던 흐름을 잡아 /login 의 reason 코드와 Vercel 로그에 남기도록 보강했습니다.
- 개선신규 OAuth 사용자 생성 중 nickname 또는 OAuth unique 충돌이 나면 재시도·기존 계정 복구를 먼저 수행해 일시적 중복 오류가 로그인 실패로 이어지지 않게 했습니다.
- 버그픽스users.oauth_provider/oauth_uid 에는 남아 있지만 oauth_accounts 연결이 누락된 레거시 계정이 로그인 시 unique 충돌로 AccessDenied 되는 흐름을 복구했습니다. active 계정이면 OAuthAccount 를 자동 재연결하고 로그인합니다.
- 개선이메일 매칭·admin UID 매칭의 OAuthAccount 생성도 upsert 로 바꿔 재시도/동시 클릭에서 중복 생성 오류가 로그인 실패로 번지지 않게 했습니다.
- 버그픽스Auth.js 기본 Access Denied 화면으로 빠지던 흐름을 /login 으로 연결했습니다. 모바일에서 「접근 불가 / 로그인 권한이 없습니다」 카드가 뜨는 대신 InfoTravelog 로그인 화면에서 원인을 안내합니다.
- 개선signIn 콜백의 차단 지점마다 Vercel 로그에 reason(existing_account_deleted, existing_email_suspended_perm 등)을 남기도록 보강했습니다.
- 버그픽스Auth.js OAuth 왕복 쿠키(callback-url·pkce·state·nonce)를 production 에서 SameSite=None; Secure 로 발급하도록 조정했습니다. iPhone Safari·Google 앱·Naver 앱에서 provider 앱/브라우저를 거쳐 돌아올 때 PKCE/State 쿠키가 빠져 로그인 실패하는 케이스를 줄입니다.
- 개선개발 환경은 기존처럼 SameSite=Lax 로 유지해 localhost HTTP 검증이 깨지지 않게 분기했습니다.
- 버그픽스/login 에 iOS 홈 화면 앱·앱 내 브라우저 감지 안내와 OAuth 실패 원인 메시지를 추가했습니다. Safari 쿠키가 분리되어 로그인 후 다시 로그인 화면으로 돌아오는 케이스를 사용자가 즉시 이해하고 Safari에서 재시도할 수 있게 했습니다.
- 개선배포 로그인 폼을 iPhone Safari UA로 확인했습니다. Kakao·Naver·Google 모두 OAuth provider 로 303 redirect 되고 Auth.js PKCE 쿠키가 Secure·SameSite=Lax 로 발급되는 상태입니다.
- 신기능오프라인 홍보용 InfoTravelog 명함을 재단 90x50mm, 작업 92x52mm 기준의 인쇄용 PDF·PNG·SVG 산출물로 저장했습니다.
- 개선/admin/project의 최근 작업 저장과 박제 문서 목록에서 이번 명함·시장 리서치 작업을 바로 확인할 수 있게 했습니다.
- 신기능사진 업로드 글쓰기, 홈·상세 사진 기록 출력, 더보기, 댓글·대댓글, 태그, 좋아요, 알림 흐름까지 커뮤니티 작업 내역을 한 묶음으로 정리했습니다.
- 개선마이페이지 일기·매거진·책자 발행 확장을 고려해 사진 기록 제목·본문 구조와 저장/출력 기반을 진행 내역에 남겼습니다.
- 개선회원등급, 프로필 프레임, 창립회원 표시, SNS 아이콘, 프로필 통계 명암, AI Vision 업로드 설정 작업을 프로젝트 진행 내역으로 묶었습니다.
- 신기능출사 계산기, 오늘의 빛, 물때 촬영 플래너, KHOA 조위 기반 추천 시간, 전국 물때 추천지 확장 작업을 changelog와 프로젝트 대시보드에 저장했습니다.
- 개선사진작가를 초기 타깃으로 잡고, 인스타 사진을 고객용 포트폴리오·출사 기록 자산으로 바꾸는 마케팅 방향과 우선순위를 저장했습니다.
- 버그픽스사진 태그 저장 안정화, 해시태그 중복 노출 정리, 사진 삭제 API 안정화처럼 운영 중 발견된 수정 작업도 함께 기록했습니다.
- 개선Google Search Console, 네이버 서치어드바이저, Daum 검색등록에 필요한 sitemap·robots·브랜드 제목·설명 점검 흐름을 정리했습니다.
- 개선홈 기본 제목을 InfoTravelog 인포트래블로그 - 여행사진 커뮤니티로 줄이고 사이트 설명과 JSON-LD를 네이버 진단 기준에 맞췄습니다.
- 버그픽스카카오톡 링크 공유 시 개인 사진 대신 갤러리형 InfoTravelog 대표 미리보기가 뜨도록 루트 OG 이미지를 분리했습니다.
- 개선/admin/project 대시보드와 핸드오프 마크다운에서 검색 등록 후속 확인 항목을 바로 확인할 수 있게 했습니다.
- 개선/admin/project 최근 변경 표시와 핸드오프 마크다운을 changelog 상위 16개까지 확장해 오늘 작업 이력을 한 번에 확인할 수 있게 했습니다.
- 개선프로젝트 대시보드 DB 상태에 users.ai_vision_settings 컬럼 확인을 추가해 AI Vision 설정 마이그레이션 반영 여부를 함께 점검합니다.
- 개선사진 먼저 업로드의 GPS 자동 매칭을 Place 검색으로 전환하고, 사진 등록 요청이 placeId 기준으로 처리되도록 장소 등록·사진 업로드 변경 내역을 함께 저장했습니다.
- 신기능PC에서도 실제 모바일 레이아웃을 볼 수 있는 /mobile-view를 추가하고, 홈 상단 모바일 보기 버튼의 위치·다크모드 색상·PC 보기 전환 버튼을 정리했습니다.
- 개선모바일 홈 피드를 인스타그램식 사진 기록 흐름으로 다듬고, 상단 메뉴를 갤러리·지도·맛집·카페·등록하기 순서로 변경했습니다.
- 개선홈 피드의 map·spot 텍스트 버튼을 원형 지도·스팟 아이콘 버튼으로 바꾸고, 사진 기록·해시태그·작성자 프로필 배열 문제를 모바일 기준으로 보정했습니다.
- 버그픽스사진 태그 수정 저장 실패, 모바일 업로드 해시태그 간격, 갤러리 감상모드 댓글 뒤로가기, 홈 공지 스크롤 같은 모바일 사용 흐름 문제를 정리했습니다.
- 버그픽스모바일 지도에서 전체 메뉴를 열 때 지도 위 네비게이션 버튼이 메뉴 위로 떠서 가리는 z-index 충돌을 수정했습니다.
- 신기능물때 촬영 플래너에 인천·충남·전북·전남·경남·울산·제주 섬/포구 촬영지 20곳을 추가했습니다.
- 개선부교, 원도 배편, 갯골 철수, 항구 블루아워, 몽돌·현무암 미끄럼 등 현장 안전 메모를 보강했습니다.
- 신기능물때 촬영 플래너에 강원·경북·울산·부산·경남·제주권 촬영지 20곳을 추가했습니다.
- 개선동해 파고, 항구 야경, 몽돌 장노출, 제주 얕은 물 반영과 철새 촬영 메모를 보강했습니다.
- 신기능물때 촬영 플래너에 경기·인천·충남·전북·전남·경남·부산·경북 촬영지 20곳을 추가했습니다.
- 개선항구 블루아워, 갯벌 물골, 마리나 반영, 섬 배편, 동해 파고처럼 촬영 목적별 현장 메모를 보강했습니다.
- 신기능물때 촬영 플래너에 인천 섬, 경기·충남 서해, 전북·전남권 물때 추천지 14곳을 추가했습니다.
- 개선풀등, 섬 배편, 해식동굴, 갯벌 철수, 항구 블루아워 등 현장 조건 메모를 보강했습니다.
- 신기능물때 촬영 플래너에 평택항, 삼길포, 태안, 굴업도, 덕적도, 무안, 신안 섬 포인트 11곳을 추가했습니다.
- 개선섬 배편, 항만 통제, 해식동굴 고립, 갯벌 철수처럼 현장 리스크를 장소별 메모에 보강했습니다.
- 신기능물때 촬영 플래너에 전북, 전남 원도, 경남, 부산, 울산, 경북, 제주권 추천지 26곳을 추가했습니다.
- 개선항구 야경, 원도 일몰, 몽돌 장노출, 제주 하구·풍차·등대 포인트를 장소별 촬영 목적에 맞게 보강했습니다.
- 신기능물때 촬영 플래너에 전북, 강원, 경북, 울산, 제주권 추천지 20곳과 새 지역 필터를 추가했습니다.
- 개선동해·제주권은 조위보다 파고와 현장 통제가 중요한 점을 장소별 안전 메모에 반영했습니다.
- 신기능프로필 설정에 AI Vision 자동 적용 항목, 해시태그 개수, 신뢰도 기준을 조절하는 세부 설정 패널을 추가했습니다.
- 개선사진 업로드 AI 분석이 사용자 설정에 맞춰 촬영종류·피사체·해시태그 자동 병합 여부와 해시태그 추천 개수를 반영하도록 보강했습니다.
- 개선오늘의 빛 프로 지도 시간바 아래에 일출·일몰과 추천 시간 버튼을 시간순으로 합쳐 해와 달 방위를 바로 비교하게 했습니다.
- 개선지도 아래 태양·달·점수 요약을 한 줄 레일로 압축하고 선택 버튼의 다크 모드 활성 색을 더 선명하게 보강했습니다.
- 신기능물때 촬영 플래너에 수도권 서해, 충남, 전남, 경남, 부산권 사진용 물때 추천지 21곳을 추가했습니다.
- 개선각 장소에 반영, 갯벌 패턴, 바닷길, 일출·일몰, 장노출 목적과 현장 안전 메모를 함께 정리했습니다.
- 개선프로필 팔로워 통계 박스의 배경 불투명도를 80%로 높여 커버 사진 위에서도 숫자와 라벨이 더 선명하게 보이도록 조정했습니다.
- 개선Grand Master 테두리를 흐르는 애니메이션 버전에서 이전 블랙루비 금속 프레임과 어두운 글레어 중심 디자인으로 복구했습니다.
- 신기능물때 촬영 플래너에 궁평항, 마시안해변, 서산 웅도, 증도 태평염전, 고성 상족암, 여수 무슬목 포인트를 추가했습니다.
- 개선갯벌 반영, 항공기 궤적, 염전 패턴, 해식동굴, 몽돌 일출처럼 장소별 촬영 목적과 최신 현장 주의점을 보강했습니다.
- 개선Grand Master 테두리에 블랙과 루비 레드가 자연스럽게 흐르는 금속 밴드 애니메이션을 추가하고 회전 글레어 색감을 맞췄습니다.
- 개선프로필 SNS 링크를 더 작은 무채색 원형 아이콘으로 바꾸고 라이트·다크 모드의 텍스트와 테두리 색을 따르게 정리했습니다.
- 개선프로필 커버 배경이 팔로워 통계 박스 중간까지만 내려오도록 잘라 하단 액션 영역은 페이지 배경 위에 놓이게 조정했습니다.
- 개선프로필 헤더의 밝은 모드 배경과 통계 카드 명암을 보정해 커버 사진 아래 영역이 더 또렷하게 보이도록 정리했습니다.
- 신기능물때 촬영 플래너에 최근 계획 저장·불러오기를 추가해 장소, 포인트, 날짜, 간조·만조 시간을 브라우저에 최대 5개까지 보관합니다.
- 개선추천 촬영 카드에 물때표 캡처, 철수 알람, 방수 신발, 삼각대 잠금 같은 현장 체크 항목을 촬영 포인트 유형에 맞춰 표시합니다.
- 개선오늘의 빛 프로 모드에서 지도 선택 시간이 추천 근거표, 후보 비교, 체크리스트와 함께 바뀌도록 동기화했습니다.
- 개선선택한 촬영 시간 기준으로 도착·세팅·집중 촬영·정리 시간을 보여주는 현장 실행 순서를 추가했습니다.
- 개선프로필 닉네임 아래 고정 포트폴리오 문구를 제거하고, 본인이 원하는 소개 문구를 바로 수정하거나 추가할 수 있는 버튼을 연결했습니다.
- 개선프로필 헤더의 SNS 링크를 텍스트 버튼 대신 인스타그램처럼 원형 아이콘만 보이는 compact 버튼으로 정리했습니다.
- 개선Grand Master 테두리를 블랙 메탈 중심에 진한 루비 레드 외곽선과 어두운 반사광이 도는 블랙루비 프레임으로 변경했습니다.
- 개선물때 촬영 플래너의 추천 카드에 도착·세팅·철수 기준과 지도 이동 버튼을 추가해 공유한 계획을 현장에서 바로 실행하기 쉽게 했습니다.
- 개선공유·복사되는 물때 촬영 계획에도 현장 도착, 세팅 완료, 철수 시간과 지도 링크를 함께 담도록 보강했습니다.
- 개선Founding Member 테두리 색상 흐름 속도를 조금 더 늦춰 움직임은 보이면서 더 차분하게 보이도록 조정했습니다.
- 개선물때 촬영 플래너의 공유·복사·캘린더 링크에 선택 장소, 포인트, 날짜, 간조·만조 시간을 담아 다시 열면 같은 촬영 계획이 복원되게 했습니다.
- 개선AI 장비 진단 패널에 AI Vision이 감지한 촬영 종류·피사체·해시태그 상위 근거를 별도 카드로 표시했습니다.
- 개선장비 진단 요약 복사 내용에도 AI Vision 근거를 포함해 추천 이유를 공유 문장에서도 확인할 수 있게 했습니다.
- 개선프로필 Likes 상세 목록에서도 사진 타일 위의 촬영 정보·좋아요·댓글 오버레이를 숨겨 Photos 탭과 같은 순수 이미지 중심 보기로 맞췄습니다.
- 개선오늘의 빛 프로 모드 지도 아래에 선택 시간의 태양·달 고도와 방위를 바로 읽는 요약 카드를 추가했습니다.
- 개선추천 점수가 높은 시간대를 버튼으로 바로 전환해 지도 위 해·달 방향을 빠르게 비교할 수 있게 했습니다.
- 개선Founding Member 테두리 색상 흐름 속도를 기존의 절반 정도로 늦춰 더 자연스럽게 보이도록 조정했습니다.
- 개선AI 장비 진단의 다음 액션 영역에 프로필에서 확정된 장비를 후보 장비와 분리해 보여주도록 보강했습니다.
- 개선장비 진단 요약 복사 내용에도 확정 장비와 자동 감지 후보를 나눠 담아 공유 후 확인 흐름을 더 분명하게 했습니다.
- 개선AI 장비 진단 요약 복사 내용에 자동 감지 장비 후보의 종류·이름·감지 사진 수를 함께 포함했습니다.
- 버그픽스/changelog 상단의 깨진 Founding Member 작업 기록을 다시 읽을 수 있는 한국어 문장으로 정리했습니다.
- 개선지도·지역·내 스팟·카테고리 목록의 새 스팟 등록 CTA가 deprecated /spots/new 대신 /places/new로 직접 이동하도록 정리했습니다.
- 개선지역 상세의 + 새 스팟 버튼을 지도와 스팟 목록에서 쓰는 compact 버튼 스타일과 반응형 문구로 맞췄습니다.
- 버그픽스Founding Member 프레임의 conic 테두리 애니메이션을 다시 정리해 대시보드와 프로필에서 움직임이 눈에 보이도록 복구했습니다.
- 개선AI 장비 진단의 자동 감지 후보를 단순 이름 목록에서 장비 종류·이름·감지 사진 수를 포함한 구조로 확장했습니다.
- 개선출사도구 장비 진단의 후보 칩에 카메라·렌즈 같은 분류와 감지 사진 수를 함께 보여 프로필 확정 전 판단 근거를 보강했습니다.
- 개선스팟 목록의 상단 헤더와 + 새 스팟 버튼을 지도 페이지 헤더와 같은 compact 액션바 구조로 맞춰 버튼 크기와 반응형 표시가 일관되게 보이도록 정리했습니다.
- 개선AI 장비 진단 리포트에 EXIF 기반 자동 감지 장비 후보 이름을 함께 내려주도록 확장했습니다.
- 개선출사도구 장비 진단의 다음 액션 영역에서 프로필로 이동하기 전에 감지된 장비 후보를 칩 형태로 미리 확인할 수 있게 했습니다.
- 버그픽스Founding Member 프레임의 내부 클래스와 배경 레이어를 보정해 색상 애니메이션이 실제 화면에 표시되도록 고쳤습니다.
- 개선프로필 장비 후보 전체 추가·거절을 단건 반복 요청 대신 /api/profile/equipment PATCH 한 번으로 처리하도록 바꿨습니다.
- 버그픽스서버가 최신 ownedEquipment 목록을 읽은 뒤 후보 전체를 한 번에 저장해 장비 JSON 목록의 중간 덮어쓰기 위험을 줄였습니다.
- 개선Founding Member 프레임에 회전 링과 부드러운 색상 변화를 추가해 창립회원 표시가 더 또렷하게 보이도록 다듬었습니다.
- 개선홈 페이지 출사도구 4개 카드를 출사 가이드, 출사 계산기, 물때 촬영 플래너, 출사 모임으로 재구성해 실제 출사 준비 흐름에 맞게 정리했습니다.
- 버그픽스오늘의 빛 대시보드가 서버와 브라우저의 시간 계산 차이로 hydration 오류를 내지 않도록 브라우저 마운트 이후에 실제 빛 계산 UI를 렌더링하게 보정했습니다.
- 개선Founding Member 테두리의 무지개 색상 변화 속도와 색상 전환 폭을 높여 변화가 더 빠르고 역동적으로 보이도록 조정했습니다.
- 개선프로필 내 장비 섹션에서 EXIF 기반 자동 감지 장비 후보를 전체 추가하거나 전체 거절할 수 있는 액션을 추가했습니다.
- 버그픽스장비 후보 일괄 처리 시 JSON 장비 목록 저장이 덮어써지지 않도록 후보별 서버 반영을 순차 처리하게 했습니다.
- 개선오늘의 빛 프로 모드의 첫 화면을 큰 지도 중심으로 재배치하고 일출·일몰·색온도·대기질 수치를 작은 요약 카드로 압축했습니다.
- 버그픽스Mapbox 지도 초기화나 방향선 갱신 오류가 전체 페이지 client-side exception으로 번지지 않도록 안전 처리와 오류 안내를 추가했습니다.
- 신기능오늘의 빛 대시보드에 주소·장소·좌표 검색과 실제 Mapbox 지도 기반 태양·달 방위 추적을 연결해 선택 위치 기준으로 해와 달의 방향을 확인할 수 있게 했습니다.
- 신기능물때 촬영 플래너에 주소·장소·위도경도 검색을 추가해 검색한 위치를 기준으로 가까운 물때 촬영지를 바로 재정렬할 수 있게 했습니다.
- 개선내 위치 기준 정렬에 기준 위치 표시와 거리 해제 버튼을 더해 모바일에서도 현재 필터 상태를 쉽게 되돌릴 수 있게 했습니다.
- 개선주소가 없는 갯벌·바닷길 촬영지도 좌표 입력으로 기준 위치를 잡을 수 있게 해 외진 물때 포인트 탐색 흐름을 보강했습니다.
- 개선AI 장비 진단의 자동 감지 장비 확정 액션이 프로필 편집의 내 장비 섹션으로 바로 이동하도록 연결했습니다.
- 개선프로필 장비 섹션에 앵커와 스크롤 여백을 추가해 상단 내비게이션에 가려지지 않고 EXIF 기반 장비 후보를 확인할 수 있게 했습니다.
- 신기능물때 촬영 플래너에 공공데이터포털 조위관측소 실측·예측 조위 API route를 추가해 관측소 코드와 촬영일 기준 조위 데이터를 조회할 수 있게 했습니다.
- 신기능추천 촬영지마다 실제 조위관측소 코드와 이름을 연결하고, 공식 조회 결과의 간조·만조 후보를 클릭해 입력값에 바로 반영할 수 있게 했습니다.
- 개선API 키가 없거나 조회에 실패해도 수동 간조·만조 입력 흐름은 유지되도록 안내 메시지와 안전한 fallback을 추가했습니다.
- 개선출사도구 AI 장비 진단 결과 아래에 사진 추가 업로드, 자동 감지 장비 확정, 취향·데이터 설정, 내 통계 보기로 이어지는 다음 액션 영역을 추가했습니다.
- 개선EXIF 사진 수와 자동 감지 장비 개수에 따라 CTA 문구가 바뀌도록 해 진단 결과에서 바로 보강해야 할 항목을 확인할 수 있게 했습니다.
- 신기능출사도구에 물때 촬영 플래너를 추가해 전국 대표 간조·만조 촬영지를 반영·바닷길·갯벌·일출·일몰 포인트로 분류했습니다.
- 신기능장소 안에서도 촬영 포인트를 별도 선택하게 만들고, 공식 간조·만조 시간을 입력하면 포인트별 추천 촬영 창과 일출·일몰 겹침을 계산합니다.
- 개선내 위치 기준 가까운 촬영지 정렬, 지역·촬영 목적 필터, 안전 메모와 초보자 팁을 함께 제공해 실제 출사 준비 흐름에 맞췄습니다.
- 신기능출사도구 AI 장비 진단 패널에 요약 복사 버튼을 추가해 촬영 성향, 추천 우선순위, 이번 출사 체크, 다음 장비 방향을 한 번에 클립보드로 공유할 수 있게 했습니다.
- 개선복사 텍스트에 화각·카메라·렌즈 근거, 필수/권장/선택 장비, 골든아워·은하수·달·ND 타이밍 메모를 포함해 카톡이나 메모앱에 붙여넣기 쉽게 정리했습니다.
- 신기능AI 장비 진단 API에 upgradeAdvice를 추가해 회원 사진 성향 기반 추천을 구매·대여 고려, 먼저 연습, 지금은 보류 항목으로 분리했습니다.
- 신기능출사도구 AI 장비 진단 패널에 다음 장비 방향 카드를 추가해 상품명 추천 전 단계에서 장비 카테고리와 판단 근거를 볼 수 있게 했습니다.
- 개선오늘의 빛 프로 모드에서 의미를 알기 어려운 조건 그래프를 피크 시간·객관 수치·판단 기준·후보 시간 비교가 한눈에 보이는 리포트로 재구성했습니다.
- 신기능AI 장비 진단 패널의 이번 출사 체크를 현재 장소·날짜·촬영 프리셋·빛/천체 계산값과 회원 사진 성향을 합쳐 만드는 조건형 체크리스트로 확장했습니다.
- 개선은하수·장노출·일몰·인물·풍경 프리셋에 따라 삼각대, ND/CPL, 광각/망원, 밝은 단렌즈, 릴리즈, 배터리 등 챙길 장비와 이유를 필수·권장·선택으로 구분합니다.
- 개선골든아워, 블루아워, 은하수 정점, 달 밝기, ND 계산값을 타이밍 메모로 함께 보여줘 출사 준비가 단순 장비 목록에서 실제 촬영 계획으로 이어지게 했습니다.
- 신기능출사도구에 내 사진 기반 AI 장비 진단 패널을 추가해 업로드 사진의 EXIF, AI Vision 메타, 보유 장비 기록으로 촬영 성향과 출사 체크 장비를 추천합니다.
- 신기능로그인 회원 전용 /api/tools/equipment-insights API를 추가해 최근 사진 기준 화각 분포, 저조도·고ISO·흔들림 위험, 추천 우선순위, 다음 실행 단계를 JSON으로 제공합니다.
- 개선카메라 제품명 추천보다 장비 카테고리·촬영 전략 중심으로 안내해 초기 MVP 단계에서 구매 권유 오해를 줄였습니다.
- 개선프로 모드의 시간대별 조건 매트릭스를 제거하고, 가장 좋은 시간·추천 흐름 막대·후보 시간·체크할 일을 바로 읽히는 촬영 타이밍 리포트로 바꿨습니다.
- 신기능프로 모드에 시간 슬라이더가 있는 태양·달 방향 지도 패널을 추가해 선택 시간의 방위각과 고도를 촬영 위치 중심으로 추적할 수 있게 했습니다.
- 개선프로 모드의 복합 선형 그래프를 시간대별 조건 매트릭스로 바꿔 추천 피크와 빛·태양·달·강수·바람·습도·먼지 조건을 레일 형태로 읽게 했습니다.
- 개선출사 계산기 초보자 모드의 제목·버튼·결과값 글자 크기를 전문가 모드 기준으로 맞춰 모드 전환 시 시각 밀도가 흔들리지 않게 했습니다.
- 신기능오늘의 빛 대시보드를 한눈 모드와 프로 모드로 분리하고, 프로 모드에 시간대별 출사 점수·태양고도·달고도·강수·바람·미세먼지 그래프를 추가했습니다.
- 개선PM10과 PM2.5 표기를 미세먼지·초미세먼지로 바꾸고, 황사/흙먼지 영향과 연무/배출가스 영향을 보조 설명으로 구분했습니다.
- 개선전문가 모드의 결과 카드를 모바일에서도 2열로 배치하고 패널 간격과 카드 내부 여백을 줄여 한 화면에서 더 많은 계산값을 보게 했습니다.
- 개선프리셋 버튼·상단 요약·출사 계산 메모도 전문가 모드에서는 낮은 높이로 압축해 첫 화면의 빈 여백을 줄였습니다.
- 개선전문가 모드의 패널·입력·결과 카드를 더 촘촘하게 조정하고, 촬영 프리셋을 작은 선택형 버튼으로 바꿔 클릭 상태가 드러나게 했습니다.
- 신기능위치 영역은 기본 내 위치 버튼과 날짜만 보이게 압축하고, 주소·장소명·좌표 검색은 접힘 패널에서 열어 쓰도록 정리했습니다.
- 버그픽스출사 계산기 위치 검색에 카카오 주소·키워드 검색과 위도·경도 붙여넣기 지원을 추가해 주소가 없는 은하수 촬영지도 잡을 수 있게 했습니다.
- 개선오늘의 빛 대시보드에 PM10, PM2.5, 황사성 먼지 신호를 추가해 시정·노을 채도·야경 헤이즈 리스크를 함께 판단하도록 보강했습니다.
- 개선대기질 상태를 출사 점수, 추천 촬영 장르, 현장 신호, 준비 카드에 반영해 먼지가 많은 날에는 마스크·렌즈 클리닝·렌즈 교체 최소화까지 안내합니다.
- 신기능출사 계산기 모드를 전문가·초보자로 재정의하고, 전문가 모드에서도 입력명 옆 i 도움말을 바로 열어볼 수 있게 했습니다.
- 신기능노출 탭에 별궤적 계획 계산을 추가해 목표 각도·촬영 시간·총 컷 수·남은 촬영량을 함께 계산합니다.
- 개선초보자 모드에 조리개·ISO·픽셀 크기·별 이동·장노출 실수 방지 등 실제 촬영 흐름을 설명하는 학습 카드를 추가했습니다.
- 개선날씨 API 응답에 시간대별 하늘·강수·바람·습도 예보를 추가해 골든아워와 블루아워 근처 조건을 따로 판단할 수 있게 했습니다.
- 개선오늘의 빛 대시보드에 노을·반영·안개·블루아워 신호 카드를 추가하고, 추천 점수 계산이 촬영 시간대 예보를 우선 사용하도록 보강했습니다.
- 개선오늘의 빛 대시보드에 출사 점수, 추천 촬영 장르, 날씨·바람·강수 리스크, 현장 판단, 촬영 준비 카드를 추가했습니다.
- 개선기상청 단기예보가 없거나 오늘 날짜가 아닐 때도 빛 시간표와 장르 추천은 계속 계산되도록 graceful fallback을 적용했습니다.
- 신기능/tools/light-today 페이지를 추가해 오늘의 일출·일몰, 골든아워·블루아워, 색온도, 사광·반역광 기준 시간을 한 화면에서 확인할 수 있게 했습니다.
- 개선출사 도구 허브의 오늘의 빛 대시보드 카드를 사용 가능 상태로 전환했습니다.
- 신기능출사 계산기에 전문가 모드와 안내 모드를 추가하고 기본값을 빠른 계산용 전문가 모드로 설정했습니다.
- 개선안내 모드에서는 긴 설명을 항상 노출하지 않고 입력명 옆 i 버튼과 접힘 설명으로 확인하게 바꿔 모바일 화면 밀도를 낮췄습니다.
- 신기능출사 계산기에 주소·장소명 검색을 추가해 검색 결과를 선택하면 위도·경도와 출사 메모 위치명이 자동 적용되게 했습니다.
- 개선내 위치로 설정 버튼을 더 눈에 띄게 바꾸고, 오늘·내일·주말·+1주·+1달 날짜 퀵 버튼을 색상별로 구분해 빠르게 고를 수 있게 했습니다.
- 개선출사 계산기 탭을 바꿀 때마다 빛·천체·노출·렌즈·심도의 용도와 입력값 읽는 법을 설명하는 초보자 안내 박스를 추가했습니다.
- 개선위치·날짜·ND·조리개·ISO·초점거리·센서 포맷 입력칸 아래에 짧은 도움말을 붙여 처음 쓰는 사용자도 값을 고르기 쉽게 했습니다.
- 신기능출사 계산기의 위치·날짜·렌즈·노출·심도 입력값을 브라우저에 자동 저장해 다음 방문 때 이어서 계산할 수 있게 했습니다.
- 신기능오늘·내일·주말·+1주 날짜 퀵 버튼과 계산 결과 요약 메모 복사 버튼을 추가해 현장에서 바로 공유할 수 있게 했습니다.
- 신기능출사 계산기에 폭포 장노출·은하수·일몰 압축·인물 배경흐림·풍경 전체 선명 촬영 프리셋을 추가해 입력값을 한 번에 세팅할 수 있게 했습니다.
- 신기능현재 위치 버튼을 추가해 브라우저 위치 권한을 허용하면 위도·경도를 자동 적용하고 빛·천체 계산을 즉시 갱신합니다.
- 개선출사 도구 hub 의 계산기 설명을 실제 동작 범위에 맞춰 현재 위치와 촬영 프리셋 중심으로 업데이트했습니다.
- 신기능/tools/calculators 를 placeholder 에서 실제 계산기 페이지로 전환했습니다. 빛·천체·노출·렌즈·심도 탭을 한 화면에서 사용할 수 있습니다.
- 신기능골든아워·블루아워·일출일몰 방위, 은하수·달 조건, ND 장노출 타이머, 동등 노출, 별 점상 노출, FOV, 과초점·DOF 계산을 통합했습니다.
- 개선출사 도구 hub 와 홈 출사 도구 카드에서 출사 계산기를 사용 가능 상태로 연결하고, 스팟 상세 미니 계산기에는 전체 계산기 이동 링크를 추가했습니다.
- 버그픽스모바일 지도에서 전체 사이드 메뉴를 열 때 지도 위 필터·위치·주변 메뉴 버튼이 메뉴 위로 떠서 가리는 문제를 z-index 정리로 수정했습니다.
- 개선브라우저 기본 제목과 사이트 설명을 네이버 진단 기준에 맞춰 InfoTravelog 인포트래블로그 - 여행사진 커뮤니티 중심으로 줄였습니다.
- 개선infotravelog.com 링크 공유 카드의 제목·설명·대표 이미지를 갤러리 중심으로 바꿔 사진 탐색 서비스 인상이 먼저 보이도록 조정했습니다.
- 버그픽스모바일 지도에서 전체 사이드 메뉴를 열 때 지도 위 필터·위치·주변 메뉴 버튼이 메뉴 위로 떠서 가리는 문제를 z-index 정리로 수정했습니다.
- 버그픽스카카오톡 같은 채팅방에 infotravelog.com을 공유할 때 개인 사진이 아니라 InfoTravelog 대표 OG 이미지가 뜨도록 루트 미리보기 이미지를 분리했습니다.
- 개선모바일 홈 피드의 map·spot 텍스트 버튼을 원형 지도·스팟 아이콘 버튼으로 바꿔 사진 카드 위 시각 노이즈를 줄였습니다.
- 개선모바일 홈 공지 아래 칩 메뉴를 갤러리, 지도, 맛집, 카페, 등록하기 순서로 재구성하고 등록하기를 브랜드 오렌지 버튼으로 강조했습니다.
- 개선스팟 목록의 + 새 스팟 버튼을 지도 페이지 상단의 + 새 스팟 버튼과 같은 Link 클래스·반응형 span 구조로 통일했습니다.
- 개선스팟 목록의 새 스팟 버튼과 지도 상단의 사진 업로드 버튼을 span 기반 pill 표시로 바꿔 전역 버튼 스타일에 따른 글씨체 어긋남을 줄였습니다.
- 개선PC 홈의 최근 사진 기록을 한 줄 4개 카드로 정렬하고, 둘러보기 컬렉션도 4개만 노출되도록 맞췄습니다.
- 버그픽스사진 삭제 시 전체 Photo row 반환 때문에 운영 DB의 새 기록 컬럼 마이그레이션 지연 상태에서 삭제가 실패할 수 있던 문제를 최소 select 로 보정했습니다.
- 버그픽스장소·스팟 카운터와 관리자 감사 로그 실패가 사진 삭제 자체를 롤백하지 않도록 트랜잭션 밖에서 처리하고, DELETE 실패 응답을 JSON 으로 정리했습니다.
- 개선홈 PC 화면의 둘러보기 섹션을 최근 사진 기록 아래로 내려 사진 기록 흐름을 먼저 볼 수 있게 정리했습니다.
- 개선홈 PC 헤더에서 모바일 보기 버튼을 공지 줄에서 오른쪽 빠른 이동 영역의 끝으로 옮겨 정렬감을 개선했습니다.
- 버그픽스홈 PC 헤더의 모바일 보기 버튼에서 다크모드 배경 opacity 클래스가 누락되던 문제를 안정적인 색상 값으로 보정했습니다.
- 개선/mobile-view 내부의 PC 보기, 홈으로, 경로·기기 선택 버튼을 다크 화면에 맞는 브랜드/표면 색상 조합으로 정리했습니다.
- 개선PC 홈의 최근 사진을 최근 사진 기록 카드로 바꿔 제목·본문 첫 줄과 더보기 펼침을 함께 볼 수 있게 했습니다.
- 개선모바일 홈 피드의 기록 출력 UI를 재사용 컴포넌트로 정리하고, 사진 상세의 해시태그 아래 기록 영역 이름을 사진 기록으로 명확히 바꿨습니다.
- 버그픽스운영 DB에 log_title/log_body 컬럼 적용이 늦어도 업로드 기록을 exif_meta.photoLog fallback 으로 보존하고 홈·상세에서 읽도록 보강했습니다.
- 신기능PC에서도 실제 모바일 레이아웃을 휴대폰 프레임 안에서 탐색할 수 있는 /mobile-view 페이지를 추가했습니다.
- 개선홈 PC 헤더의 공지 옆에 모바일 보기 버튼을 배치하고, 오른쪽 빠른 이동 버튼을 상단 정렬로 살짝 올렸습니다.
- 신기능사진 업로드 흐름 A/B에 한줄 기록과 본문 기록 입력을 추가하고 photos.log_title/log_body 저장 경로와 마이그레이션을 연결했습니다.
- 개선홈 피드는 사용자가 쓴 기록을 AI 캡션보다 우선 보여주고, 긴 본문은 첫 줄만 노출한 뒤 더보기로 펼치도록 정리했습니다.
- 개선사진 상세와 사진 수정 화면에도 기록 제목·본문을 연결해 향후 마이페이지 일기·매거진/책자 발행 기능의 기반을 마련했습니다.
- 신기능관리자가 배정한 창립회원 슬롯을 공개 프로필에서 FM-005 Founding Member 같은 한정 번호 배지와 전용 프레임으로 표시합니다.
- 개선홈 모바일 피드 작성자 영역에도 창립회원 전용 아바타 링과 짧은 번호 칩을 표시해 특별 회원권이 사이트 곳곳에서 보이도록 연결했습니다.
- 버그픽스운영 DB의 user_sns_links.handle 컬럼 누락으로 프로필 편집에서 SNS 링크 추가가 실패하던 schema drift를 마이그레이션으로 보정했습니다.
- 신기능창립회원 001-100 한정 슬롯을 관리하는 /admin/ranking/special-members 페이지와 배정/해제 API를 추가했습니다.
- 개선/admin/ranking에 자동 시즌 티어, 예약 티어, 최상위 티어, 특별 회원권을 구분해 보는 등급 체계 현황 영역을 추가했습니다.
- 신기능/profile/edit 에 프로필 사진 미리보기·변경·삭제 UI를 추가하고, 본인 전용 avatar 업로드 API로 S3 업로드 후 users.avatarUrl 을 갱신하도록 연결했습니다.
- 개선프로필 편집 화면 폭을 줄이고 프로필 사진과 기본 정보를 2열로 배치해 내용 밀도에 맞게 정리했습니다.
- 버그픽스공지 문구가 짧거나 한 개뿐이어도 홈 공지 티커가 화면 안에서 멈춘 것처럼 보이지 않고 계속 옆으로 흐르도록 반복 트랙 구조를 보정했습니다.
- 개선/levels 등급별 노출 예시 카드를 데스크톱에서 한 줄에 3개씩 보이도록 배치를 조정했습니다.
- 개선Founding Member 프레임의 무지개 색상 변화 속도를 기존보다 약 2배 빠르게 조정했습니다.
- 신기능관리자가 공지 제목·링크·노출 순서·기간을 관리할 수 있는 /admin/notices 화면과 API를 추가했습니다.
- 신기능활성 공지를 홈 PC 타이틀 시즌 정보 옆과 모바일 홈 상단 한 줄 바에 흐르는 티커로 표시하고, 링크가 있으면 클릭 이동되도록 연결했습니다.
- 개선모바일 갤러리 썸네일의 상시 오버레이를 숨겨 PC처럼 사진만 깔끔하게 보이도록 정리했습니다.
- 버그픽스갤러리 감상모드와 댓글창을 브라우저 뒤로가기로 단계적으로 닫히게 해 이전 스팟 페이지로 빠지는 흐름을 막았습니다.
- 신기능감상모드 툴바에 사진 상세로 이동하는 detail 아이콘을 추가하고, 댓글창을 홈 피드와 같은 하단 시트 UI로 맞췄습니다.
- 개선/levels의 시즌 티어·예약 티어·명예 티어·특별 회원 분류 라벨과 요약 카드를 제거했습니다.
- 개선Profile Header, Feed Author, Comment 예시를 모든 등급별 카드로 확장해 실제 노출 모습을 한눈에 비교할 수 있게 했습니다.
- 버그픽스Founding Member 프레임의 무지개 색상 변화가 프로필 사진까지 변색시키지 않도록 애니메이션을 테두리 링 레이어로 분리했습니다.
- 개선/levels 프레임 미리보기 카드에 시즌 티어·예약 티어·명예 티어·특별 회원 라벨을 추가했습니다.
- 개선시즌 티어, 특별 회원, 작가등급, 전문 뱃지, 업적이 각각 어떤 등급 흐름이고 어디에 표시되는지 한눈에 보는 요약표를 추가했습니다.
- 개선Founding Member 프레임의 회전 글레어와 glow감을 제거하고, 무지개 색 변화 속도만 더 빠르게 조정했습니다.
- 개선Master·Grand Master 프레임 색상을 Gold 등급과 같은 금장 계열로 되돌리고 두꺼운 프레임 두께는 유지했습니다.
- 개선Founding Member 프레임의 무지개 색 변화 속도를 높이고, 연한 회전 글레어를 추가했습니다.
- 개선Master·Grand Master 프레임의 촘촘한 줄무늬와 눈처럼 흩뿌리는 입자 레이어를 제거하고 넓은 금속 반사면 중심으로 정리했습니다.
- 신기능/levels에 선착순 100명 한정 창립회원 Founding Member 프레임을 추가하고, 무지개색이 천천히 변하는 한정판 효과를 적용했습니다.
- 개선Master 프레임을 블랙·골드 금속 링과 골드 글레어·빛가루 중심으로 정리했습니다.
- 개선Grand Master 프레임을 왕관 없이 블랙·레드 금속 링, 붉은 글레어와 레드 빛가루 레이어로 변경했습니다.
- 버그픽스사진 수정에서 태그만 저장하는 경우 photos.tags를 직접 갱신하도록 분리하고, 저장 후 캐시 갱신 실패가 태그 저장 실패로 보이지 않게 보정했습니다.
- 버그픽스/levels 등급 프레임 미리보기에서 글레어가 프로필 사진 안쪽에 보이지 않도록 아바타 이미지를 효과 레이어 위로 분리했습니다.
- 개선Master·Grand Master 프레임 두께를 키우고 블랙 골드 링에 중세풍 장식 결을 은은하게 추가했습니다.
- 버그픽스/levels 등급 프레임의 회전 글레어가 프로필 사진 내부까지 덮지 않도록 테두리 링 영역으로 마스크를 다시 제한했습니다.
- 버그픽스사진 수정에서 태그만 바꿀 때 장소 값을 다시 보내지 않도록 줄이고, 관리자 감사 로그 실패가 실제 태그 저장을 롤백하지 않도록 분리했습니다.
- 개선/levels 등급 프레임을 실제 프로필의 Admin 프레임과 같은 글레어·스파크·금가루 레이어 구조로 맞추고 등급별 색상만 다르게 조정했습니다.
- 버그픽스사진 수정에서 태그만 바꿔도 기존 장소의 shadow spot 보정이 다시 실행되며 저장이 막힐 수 있던 흐름을 장소 변경 시에만 실행되도록 고쳤습니다.
- 버그픽스프로필의 Saved 목록에서 스팟으로 저장한 컬렉션도 대표 사진을 불러와 미리보기 그리드에 표시되도록 고쳤습니다.
- 버그픽스모션 줄이기 환경에서도 /levels 의 Gold 이상 등급 프레임 글레어가 실제 프로필처럼 계속 회전하도록 예외 규칙을 추가했습니다.
- 개선홈의 내 근처 가볼 만한 곳을 가로 캐러셀로 정리하고, 좌우 화살표로 페이지 단위 이동이 가능하도록 개선했습니다.
- 신기능반경 5·10·20·50km 선택과 사진·카페·맛집·관광·숙박 카테고리 토글을 추가하고, 처음 진입 시 모든 카테고리를 활성화했습니다.
- 버그픽스Gold 이상 회원등급 프레임의 한 바퀴 도는 글레어가 확실히 동작하도록 애니메이션 규칙과 링 마스크를 보강했습니다.
- 버그픽스사진 수정에서 해시태그 저장 시 photo_hashtags 검색 인덱스 동기화가 실패해도 photos.tags 본문 저장은 완료되도록 분리했습니다.
- 개선사진 상세 페이지에서 좋아요가 5명 이상이면 좋아요한 사람 목록을 숨기고 총 좋아요 수만 표시하도록 변경했습니다.
- 신기능/spots 미리보기 카드의 좋아요 숫자를 스팟 좋아요 토글로 연결하고, 댓글 숫자는 댓글 많은 사진 갤러리로 바로 이동하도록 연결했습니다.
- 신기능신규 POST /api/spots/[id]/like 로 스팟 좋아요 추가·취소를 지원하고 로그인 상태의 기존 좋아요 여부를 카드에 반영합니다.
- 버그픽스/levels 프리뷰의 미래 등급 프레임 클래스가 빌드 CSS에서 빠질 수 있던 문제를 정적 매핑과 safelist 로 보정했습니다.
- 버그픽스Silver 프레임은 흰 단색처럼 보이지 않도록 회색 크롬 대비를 강화하고, Platinum 이상 효과가 확실히 표시되게 했습니다.
- 개선/levels 회원등급 예시를 Unranked 흰 단색, Gold 이상 회전 글레어, Diamond 보석 반짝임, Master 관리자급 블랙 골드 기준으로 정리했습니다.
- 개선Grand Master 프리뷰에는 Master 계열 금장 프레임 위에 번개 연출과 상단 왕관 뱃지를 추가했습니다.
- 버그픽스모바일에서 모든 button·link 를 44px 이상으로 강제하던 전역 규칙을 정리해 필터칩, 등급뱃지, admin 소형 버튼이 커지거나 깨져 보이지 않도록 했습니다.
- 개선/levels 등급별 미리보기에 Platinum, Diamond, Master, Grand Master 프레임을 추가해 향후 확장 등급의 보상감을 한 화면에서 비교할 수 있게 했습니다.
- 버그픽스/photos/[id]/edit 수정 페이지에서 다크모드일 때 바깥 배경과 하단 액션 영역이 흰색으로 남던 문제를 surface-base 배경과 다크 버튼 스타일로 정리했습니다.
- 버그픽스모바일 프로필에서 Explorer 같은 작가등급 버튼만 전역 터치 타겟 규칙을 받아 크게 깨져 보이던 문제를 전용 칩 버튼 스타일로 정리했습니다.
- 신기능사진 상세 상단과 관리 영역에 인스타그램식 ⋯ 게시글 관리 시트를 추가하고, 소유자와 admin 이 수정·공유·삭제 흐름에 들어갈 수 있게 했습니다.
- 신기능/photos/[id]/edit 페이지를 추가해 업로드 후에도 연결 장소와 해시태그를 수정할 수 있게 했고, 저장 시 Place/Spot 연결과 해시태그 조인·사용량을 함께 동기화합니다.
- 버그픽스/levels 등급별 프로필 프레임 미리보기에서 사진 컨테이너가 원본 비율대로 튀어나오고 프레임이 카드 폭 기준으로 커지던 문제를 고정 크기 avatar 박스로 정리했습니다.
- 개선/levels 상단에 내 프로필 사진을 기준으로 Unranked, Bronze, Silver, Gold 티어 프레임을 비교하는 미리보기 섹션을 추가했습니다.
- 개선프로필 헤더, 피드 작성자, 댓글 영역에서 등급과 작가등급이 어떻게 보이는지 예시 카드로 정리해 등급 상승 보상감을 더 명확하게 보여줍니다.
- 버그픽스다크 모드 알림 목록에서 읽지 않은 댓글 알림 카드의 배경과 글씨 대비가 무너져 내용이 흐리게 보이던 문제를 고쳤습니다.
- 개선알림 카드의 시간, 제목, 본문 미리보기 색상을 배경 상태와 분리해 팔로우·좋아요·댓글 알림 모두 읽기 쉽도록 정리했습니다.
- 개선사진 댓글 시간을 정확한 날짜 대신 방금 전, 몇 분 전, 몇 시간 전 같은 상대시간으로 표시해 모바일 댓글창에서 날짜가 밀려 보이는 문제를 줄였습니다.
- 신기능댓글과 답글 모두에서 답글 달기를 사용할 수 있게 하고, 답글 묶음은 필요할 때 펼쳐보는 인스타그램식 흐름으로 정리했습니다.
- 버그픽스라이트박스 댓글 패널에 전용 sheet 모드를 전달해 하단 댓글창 안에 카드형 댓글 영역이 들어가던 레이아웃 어긋남을 고쳤습니다.
- 개선admin 계정의 프로필, 팔로워 목록, 홈 피드 아바타를 Master 표기 대신 Admin 표기로 바꾸고 블랙 바탕에 골드 테두리 느낌의 전용 프레임으로 분리했습니다.
- 개선기존 Master 금장 효과와 유사한 글레어, 반짝임, 금가루 모션을 Admin 전용 클래스에 적용해 향후 Master 회원등급과 관리자 표시가 섞이지 않도록 했습니다.
- 개선시즌 티어의 시작 단계를 사용자 화면에서 Spark 대신 Unranked로 표시하고, 향후 확장 최상위 예약명을 Legend 대신 Grand Master로 정리했습니다.
- 개선누적 작가등급에 Rookie·Creator·Explorer·Curator·Ambassador·Legend 영어 칭호를 추가해 프로필 등급 표기가 더 고급스럽게 보이도록 했습니다.
- 개선프로필 상단과 팔로워 목록 아바타를 Spark·Bronze·Silver·Gold·Master 단계별 프레임으로 나누고, Gold 이상은 Master 표현을 참고한 글레어와 반짝임을 더했습니다.
- 신기능KTO cron 이 목록 수집만 하지 않고 contentType 별 제한된 수량만 detailCommon·detailIntro·detailImage 까지 함께 받아 rawData 와 Place 공식 사진을 자동 보강합니다.
- 신기능이미 공개된 KTO Place 중 갤러리·운영시간·소개·연락처 같은 필드가 비어 있는 항목을 매일 소량 자동 보강하도록 공용 refresh 헬퍼를 추가했습니다.
- 개선운영계정 일 10만 회 한도에 맞춰 cron_per_type_limit, cron_detail_per_type_limit, cron_refresh_per_type_limit 로 수집량과 상세 보강량을 분리 제어합니다.
- 개선모바일 홈 피드 작성자 아바타를 Spark·Bronze·Silver·Gold·Master 단계별 테두리로 분리해 등급 차이가 더 명확하게 보이도록 보강했습니다.
- 개선모바일 홈 피드의 작성자 프로필 사진을 원형으로 바꾸고, 마스터 작성자는 금장 글레어 테두리로 구분되도록 정리했습니다.
- 개선모바일 홈 피드 카드에서 캡션 아래의 ‘댓글 N개 모두 보기’ 보조 버튼을 제거해 사진과 캡션 흐름이 더 깔끔하게 보이도록 정리했습니다.
- 버그픽스모바일 홈 피드에서 댓글 하단 시트를 연 뒤 휴대폰 뒤로가기를 누르면 이전 페이지로 이동하지 않고 댓글창만 닫히도록 히스토리 처리를 추가했습니다.
- 개선장소·사진 상세 페이지에 검색 결과용 title·description·canonical·OG/Twitter 메타를 동적으로 생성하도록 보강했습니다.
- 개선사이트맵에 공개 사진 상세와 누락된 촬영 가이드 URL을 추가해 검색 엔진이 더 많은 핵심 콘텐츠를 수집할 수 있게 했습니다.
- 신기능프로필의 Photos·Places·Likes·Saved 숫자를 각각 전용 목록 페이지로 연결했습니다. 저장 목록은 본인과 관리자만 열람할 수 있게 처리했습니다.
- 보안비공개 저장 컬렉션 상세·캘린더·API 조회는 관리자 접근을 허용하면서 일반 방문자에게는 계속 차단되도록 권한 검사를 정리했습니다.
- 개선모바일 홈 피드가 초기 8개에서 끝나지 않고, 아래로 스크롤하면 다음 사진을 자동으로 이어서 불러오도록 개선했습니다.
- 신기능GET /api/home/feed 페이지네이션을 추가해 홈 피드의 좋아요·댓글·장소·캡션 정보가 추가 로드에서도 동일하게 유지되도록 했습니다.
- 신기능프로필 Followers/Following 숫자를 팔로워·팔로잉 목록 페이지로 연결해 다른 회원의 관계를 확인할 수 있게 했습니다.
- 신기능새 팔로워가 생기면 앱 알림을 생성하고, 알림함에서 팔로워·좋아요·댓글·기타 그룹별로 펼쳐 볼 수 있게 했습니다.
- 버그픽스다크모드 프로필에서 Follow 버튼이 흰 배경만 보이고 글자가 사라지던 문제를 고정 검정 텍스트와 명확한 링으로 보정했습니다.
- 개선프로필 아바타 하단 배지를 Master가 먼저, Curator 같은 프로필 타이틀이 뒤에 보이도록 순서를 바꿨습니다.
- 버그픽스Curator·Master 배지를 아바타 하단 위치로 되돌리되 z-index를 올려 마스터 테두리와 글레어에 가려지지 않도록 조정했습니다.
- 개선/levels 화면을 v2.38 통합 회원 등급 구조에 맞춰 Level·Season Tier·3-Layer·전문 분야 뱃지 설명으로 다시 정리했습니다.
- 개선/admin/project 핸드오프 문서 목록에 v2.38 통합 회원 등급 문서를 추가해 회원등급 작업의 진실 원천을 바로 확인할 수 있게 했습니다.
- 개선사진 업로드에서 AI Vision 신뢰도가 충분할 때 촬영종류·피사체·해시태그를 기존 선택에 자동 병합해, 사용자가 추천 적용 버튼을 누르지 않아도 기본 분류가 채워지도록 했습니다.
- 개선신뢰도가 낮은 AI 분석은 자동 적용하지 않고 추천 패널에 직접 확인 권장 상태로 남겨 사용자가 수동으로 판단할 수 있게 했습니다.
- 개선프로필 아바타 하단에 겹쳐 보이던 Curator·Master 배지를 프레임 위쪽으로 옮겨 마스터 테두리와 금가루 효과가 더 깔끔하게 보이도록 정리했습니다.
- 개선모바일 사진 업로드 화면의 선택·추천 해시태그 줄간격과 상하 여백을 줄여, 여러 줄로 넘어가도 공간을 덜 차지하도록 조정했습니다.
- 개선모바일 사진 업로드 화면에서 선택·추천 해시태그의 큰 pill 버튼 배경과 배지를 제거하고, #태그 텍스트 중심의 간결한 표시로 바꿨습니다.
- 개선Master 프레임 주변에 사진을 가리지 않는 샴페인 골드 더스트 레이어를 추가해 은근히 흩날리는 보상감을 더했습니다.
- 버그픽스운영 DB에 ai_vision_meta 컬럼이 아직 적용되지 않은 상태에서도 사진 업로드가 실패하지 않도록 AI 상세 메타 저장만 건너뛰는 fallback을 추가했습니다.
- 개선Master 프레임의 마지막 반짝임을 눈처럼 보이는 원형 플래시에서 보석 컷을 닮은 짧은 글린트 효과로 조정했습니다.
- 버그픽스브라우저의 동작 줄이기 설정에서도 Master 프레임 글레어가 멈추지 않도록 등급 보상 애니메이션 예외를 추가했습니다.
- 버그픽스Master 프레임의 회전 글레어가 테두리 위에서 실제로 보이도록 프레임 배경과 애니메이션 레이어 구조를 다시 정리했습니다.
- 개선Master 프로필 테두리를 더 두껍고 화려한 금장 프레임으로 조정하고, 회전 글레어와 별빛 스파크를 더 강하게 강화했습니다.
- 개선프로필 Master 등급 원형 테두리에 금장 반사광이 한 바퀴 돌고 끝에서 짧게 반짝이는 CSS 애니메이션을 추가했습니다.
- 신기능/levels 페이지를 추가해 현재 Level 1~6과 시즌 Tier 산정 방식, 포인트 흐름을 한 화면에서 설명했습니다.
- 개선지역·출사 스타일·카테고리·장비·커뮤니티·단골/모임 분야별 뱃지 초안을 정리해 향후 회원 등급 시스템 논의의 기준 화면으로 만들었습니다.
- 개선내 프로필 Photos 탭의 사진 미리보기에서 태그·화각·좋아요·댓글 오버레이를 숨겨 사진만 보이도록 정리했습니다.
- 개선회원 등급별 프로필 원형 테두리를 더 뚜렷하게 나누고, Master는 금장 conic 테두리와 은은한 glow로 고급스럽게 보이도록 강화했습니다.
- 버그픽스프로필 탭 활성 버튼과 사진 올리기 버튼이 다크모드에서 흰 배경·흰 글자로 보이던 문제를 고정 색상 조합으로 수정했습니다.
- 개선프로필의 Photos·Places·About 바로가기를 페이지 내 탭 전환으로 바꾸고, 사진 탭 감상 모드 옆에 본인 사진 올리기 버튼을 배치했습니다.
- 개선등급별 프로필 사진 테두리와 아바타 하단 배지 스트립, 상단 원형 edit 버튼, 팔로워·팔로잉·사진·스팟·좋아요·저장 통계를 정돈했습니다.
- 배포운영 Supabase DB에 user_follows 테이블과 팔로워·팔로잉 조회 인덱스를 적용해 팔로우 저장 기능을 활성화했습니다.
- 개선수동 SQL 마이그레이션을 안전하게 재실행할 수 있는 apply-sql-file 스크립트를 추가해 운영 적용 후 테이블 존재 여부를 확인하게 했습니다.
- 버그픽스운영 DB에 user_follows 마이그레이션이 아직 적용되기 전에도 프로필 페이지가 500 에러 없이 열리도록 방어 처리했습니다.
- 버그픽스팔로우 API는 테이블 준비 전 서버 예외 대신 503 JSON 응답을 반환하게 해 배포 순서 차이로 인한 화면 장애를 막았습니다.
- 신기능사용자 간 팔로우 관계를 저장하는 user_follows 테이블과 프로필 팔로우 토글 API를 추가했습니다.
- 개선500px형 프로필 상단에 Follow/Following 버튼과 팔로워·팔로잉 수를 연결해 작가 관계 흐름을 바로 볼 수 있게 했습니다.
- 개선PC 프로필을 사진이 먼저 보이는 포트폴리오형 화면으로 재구성하고, 상단 작가 헤더·통계·탭 구조를 500px에 가까운 감각으로 정리했습니다.
- 개선프로필 사진 목록에는 원본 비율을 살리는 masonry 그리드 옵션을 추가하고 라이트·다크 모드 모두에서 배경과 버튼 대비가 자연스럽게 보이도록 다듬었습니다.
- 신기능admin_settings.kto_import 를 추가해 KTO cron 활성 여부, contentType 별 row 수, 증분 기준일, 수동 가져오기 기본 row 수와 상세 수집 기본값을 운영 중 조정할 수 있게 했습니다.
- 개선/admin/queue/kto-import 의 시드 가져오기 기본값을 설정에서 읽고, /api/cron/kto-import 도 같은 설정으로 실행되도록 연결했습니다.
- 개선스팟 목록 상단을 다른 모바일 페이지처럼 얇은 타이틀 줄로 정리하고, 별도 홈으로 버튼 대신 + 새 스팟 액션만 남겼습니다.
- 개선모바일 전체 메뉴의 글씨, 아이콘, 그룹 간격과 하단 계정 영역을 조금 줄여 한 화면에서 더 많은 메뉴가 보이도록 조정했습니다.
- 개선Places 화면의 상단 헤더를 더 명확한 소개와 장소 등록 CTA로 정리하고, 필터·검색 영역을 카드형 패널로 묶어 PC에서 훑어보기 쉽게 다듬었습니다.
- 개선장소 카드의 사진 영역에 카테고리와 사진 수 배지를 올려 목업처럼 카드만 봐도 장소 성격과 콘텐츠 양을 바로 파악할 수 있게 했습니다.
- 개선사진·게시글 댓글 알림 링크가 댓글 영역이 아니라 해당 댓글 앵커로 바로 이동하도록 조정했습니다.
- 개선알림으로 열린 댓글은 자동 스크롤 후 잠깐 강조 표시되어 어떤 반응을 눌렀는지 바로 알아볼 수 있게 했습니다.
- 개선헤더와 사이드바 알림 버튼을 알림이 0건이어도 항상 보이게 해 알림함과 알림 설정으로 들어가는 길을 유지했습니다.
- 개선활동 알림과 출사 일정 배지를 60초마다, 탭 재진입 시 다시 조회해 새 반응을 더 빨리 알아차릴 수 있게 했습니다.
- 개선PC 홈의 둘러보기 컬렉션을 최근 사진 영역처럼 4열 2줄 구성으로 맞춰 두 영역의 시각적 높이와 리듬을 정리했습니다.
- 개선홈 상단 시즌 표시와 시즌 카드를 기존 그라데이션·이모지 워터마크 스타일로 되돌리되, PC 홈 그리드에서는 주변 카드와 높이가 맞도록 유지했습니다.
- 개선홈 상단의 다음 골든타임 문구를 일출·일몰 시간 중심으로 단순화하고, 주요 홈 카드의 이모지 아이콘을 절제된 텍스트 배지 스타일로 정리했습니다.
- 개선PC 홈에서 오늘의 빛·출사 도구, 시간 머신·시즌 카드가 같은 행 높이로 맞물리도록 재배치하고, 둘러보기와 최근 사진을 반반 폭과 동일한 정사각 썸네일 그리드로 맞췄습니다.
- 개선모바일 페이지 리뷰 화면의 외부 배경을 다시 어둡게 바꿔 휴대폰 미리보기에 시선이 더 잘 모이도록 조정했습니다.
- 개선PC 홈 첫 화면에서 큰 환영 히어로와 중복 CTA를 덜어내고, 상단을 소개와 빠른 이동 중심의 얇은 헤더로 정리했습니다.
- 개선출사 도구 카드를 차분한 표면 스타일로 바꿔 오늘의 빛, 도구, 근처 장소 흐름이 더 깔끔하게 보이도록 조정했습니다.
- 개선알림 목록에서 알림을 누르면 해당 알림만 읽음 처리하고 관련 사진·글·댓글 위치로 이동하도록 개선했습니다.
- 개선알림 화면에 읽지 않은 개수와 알림 설정 진입점을 추가하고, 알림 카드의 작성자·종류·본문 미리보기를 더 명확하게 정리했습니다.
- 개선PC 지도 주변 리스트를 지도 위 패널에서 기존 좌측 컬럼 방식으로 복구해 지도 드래그와 이동을 더 자유롭게 했습니다.
- 버그픽스지도 레이어 시트의 관광지·문화재 활성 상태에서 글자가 흐리게 보이던 대비 문제를 보정했습니다.
- 신기능좋아요, 사진 댓글, 댓글 답글, 글 댓글, @언급 알림을 사용자가 항목별로 켜고 끌 수 있게 했습니다.
- 개선알림 생성 시 수신자의 활동 알림 설정을 먼저 확인해 원하지 않는 커뮤니티 알림은 저장하지 않도록 했습니다.
- 개선PC 지도 화면에서 주변 리스트를 접힘 패널로 바꿔 지도 영역을 넓히고, 상단 필터는 핵심 카테고리와 +필터 버튼 중심으로 정리했습니다.
- 개선지도 보조 필터 시트를 데스크톱에서도 우측 패널로 열리게 해 촬영 종류 같은 세부 조건을 지도 위에서 조용히 조정할 수 있게 했습니다.
- 버그픽스홈 피드 map 버튼으로 지도에 들어갈 때 위치 권한 자동 이동이 사진의 스팟 좌표를 덮어쓰지 않도록 URL 좌표를 최우선으로 처리했습니다.
- 신기능사진 좋아요·사진 댓글·댓글 답글·게시글 댓글·@닉네임 언급을 앱 내 알림으로 저장하고 /notifications 에서 확인할 수 있게 했습니다.
- 개선기존 헤더 알림 bell 이 일정 알림과 커뮤니티 미확인 알림을 함께 집계하도록 확장했습니다.
- 개선사진 해시태그를 버튼형 칩 대신 본문에 가볍게 붙는 텍스트 링크 스타일로 바꿔 모바일에서 차지하는 세로 공간을 줄였습니다.
- 버그픽스사진 해시태그 링크가 모바일 전역 터치 타깃 규칙 때문에 불필요하게 높아지지 않도록 최소 높이 예외를 함께 적용했습니다.
- 개선PC 홈 화면을 좌측 핵심 빛 정보와 우측 도구·시즌 패널 구조로 재배치해 넓은 화면에서 시선 흐름과 정보 밀도를 개선했습니다.
- 개선출사 도구 카드를 PC 사이드 패널에 맞는 2열 compact 레이아웃으로 표시해 카드가 좁게 눌리지 않도록 조정했습니다.
- 버그픽스홈 피드와 최근 사진 조회가 일시적으로 실패해도 홈 전체가 500으로 깨지지 않도록 빈 상태로 안전하게 렌더링합니다.
- 버그픽스홈 피드의 map 버튼이 장소 상세가 아니라 지도 페이지로 이동하고, 해당 장소 좌표를 중심으로 지도가 열리도록 수정했습니다.
- 개선홈 피드 댓글 시트를 모바일 앱형 하단 패널로 다듬고, 댓글 입력창을 하단 composer 스타일로 정리했습니다.
- 버그픽스홈 피드 기본 설명에서 해시태그를 제거해 하단 태그 목록과 중복 노출되지 않도록 했습니다.
- 개선본인이 누른 사진 좋아요는 하트와 숫자가 rose 계열 색으로 표시되어 홈 피드에서도 상태를 더 쉽게 알아볼 수 있게 했습니다.
- 버그픽스운영 DB에 AI Vision 상세 메타 컬럼이 아직 없을 때도 홈 피드가 사진 설명을 기본 문구와 태그로 안전하게 렌더링하도록 보강했습니다.
- 개선모바일 홈 피드의 사진 설명을 첫 줄 중심으로 정리하고, 긴 설명은 더보기로 자연스럽게 펼치도록 바꿨습니다.
- 신기능홈 피드에서 댓글을 누르면 하단 시트가 올라와 지난 댓글을 확인하고 바로 댓글·대댓글을 남길 수 있게 했습니다.
- 개선댓글 작성 후 홈 피드의 댓글 수가 즉시 갱신되도록 댓글 컴포넌트에 실시간 카운트 콜백을 연결했습니다.
- 개선홈을 인스타그램식 사진 피드에 가깝게 정리하고, 모바일 하단 네비게이션·업로드 버튼·페이지 타이틀·리뷰 화면 배경을 함께 다듬었습니다.
- 개선갤러리, 장소 목록, 장소 상세, 사진 상세, 지도 화면의 모바일 전용 배치를 조정해 버튼 크기와 카드 순서, 지도 주변 패널 동작을 정리했습니다.
- 버그픽스갤럭시 플립7 실제 기기에서 홈 피드 작성자 아이디가 위로 밀리던 원인을 전역 모바일 터치 타깃 규칙으로 확인하고 홈 피드 링크 높이 예외를 적용했습니다.
- 버그픽스전역 모바일 터치 타깃 규칙이 홈 피드 작성자·장소 링크를 44px 높이로 키워 닉네임 위치가 어긋나던 원인을 확인하고, 홈 피드 내부 링크는 자체 높이를 따르도록 예외 처리했습니다.
- 버그픽스갤럭시 플립7에서 홈 피드 닉네임과 장소명이 벌어지는 문제를 피하려고 grid 배치를 제거하고 inline flex 스타일로 헤더 정렬을 고정했습니다.
- 버그픽스홈 피드 토픽 칩과 첫 사진 카드 사이에 여백을 추가해 닉네임이 상단 바에 붙어 보이는 문제를 더 완화했습니다.
- 버그픽스홈 피드 작성자 헤더의 absolute 배치를 제거하고 명시적 2행 grid로 바꿔 닉네임이 상단으로 붙는 문제를 보정했습니다.
- 버그픽스홈 피드 작성자 헤더를 고정 높이 absolute 레이아웃으로 바꿔 갤럭시 플립7에서도 아이디와 장소명이 프로필 옆 중앙에 붙도록 보강했습니다.
- 버그픽스갤럭시 플립7 폭에서 홈 피드 작성자 아이디가 프로필 이미지 위쪽으로 떠 보이던 문제를 grid row-span 구조 제거와 flex 정렬로 수정했습니다.
- 개선장소 상세 모바일 제목을 다른 페이지 헤더와 같은 크기와 글씨체로 맞춰 화면 전환 시 타이틀 리듬이 흔들리지 않게 했습니다.
- 개선사진 상세 모바일에서 메인 사진을 더 넓게 보이도록 여백을 줄이고, 작성자 프로필 이미지를 사각형에 가깝게 정리했습니다.
- 개선모바일 페이지 리뷰 보드의 전체 배경과 미리보기 주변 영역을 흰색으로 변경했습니다.
- 개선지도 중심 주변 플로팅 패널을 상단 카테고리 영역 아래에서 열리도록 내리고, 패널 안에 반경 선택 버튼을 다시 추가했습니다.
- 개선모바일 페이지 리뷰에서 viewport 크기 표시와 측정 오버레이를 숨기고, 미리보기 주변 배경을 투명하게 조정했습니다.
- 개선장소 상세 액션 버튼의 실제 높이와 정렬을 통일해 저장·공유·신고·위치 수정·삭제·admin 이 같은 크기로 보이도록 조정했습니다.
- 개선사진 위에 겹쳐 보이던 메타데이터 오버레이를 제거하고, 메타데이터·태양 재현 카드를 사진과 사진 그리드 사이로 이동했습니다.
- 개선모바일 하단 네비의 업로드 버튼에 하이라이트·깊은 그림자·눌림 상태를 추가해 중앙 CTA가 더 고급스럽고 입체적으로 보이도록 조정했습니다.
- 개선장소 상세 모바일 헤더의 저장·공유·신고·위치 수정·삭제·admin 버튼을 가장 작은 글자 크기로 통일하고 아이콘을 제거해 보조 액션처럼 보이도록 정리했습니다.
- 개선장소 상세 헤더에서 저장·공유·신고를 주소 아래 왼쪽으로, 위치 수정·삭제·관리자 버튼을 오른쪽으로 다시 배치했습니다.
- 개선사진 탭 모바일에서 좋아요 카드와 댓글 미리보기 카드를 제거하고, 사진 그리드 아래에 지도·AI 가이드·분류/촬영정보/빛 정보 카드 순서로 보이도록 조정했습니다.
- 개선홈 모바일 피드의 장소 버튼을 spot, 지도 보기 버튼을 map 으로 줄여 사진 위 액션이 더 가볍게 보이도록 조정했습니다.
- 개선지도 중심 주변 메뉴를 원형 플로팅 버튼 대신 왼쪽 모서리 화살표 손잡이와 반투명 사이드 패널 방식으로 변경했습니다.
- 개선장소 상세 모바일에서 AR 버튼을 제거하고 저장·공유·신고를 지역 정보 오른쪽으로, 위치 수정·삭제를 주소 줄 오른쪽으로 옮겨 헤더 액션을 정리했습니다.
- 개선사진 탭 모바일 순서를 사진·사진그리드, 좋아요 카드, AI 가이드, 나머지 정보 순으로 재배치하고 분류 카드는 데스크톱에서만 보이도록 조정했습니다.
- 개선실제 모바일 기기에서 InfoTravelog 타이틀이 잘려 보이지 않도록 헤더 레이아웃을 grid로 바꾸고 우측 프로필/admin 영역 폭을 줄였습니다.
- 버그픽스실제 모바일 기기에서 홈 피드 작성자 프로필 사진 옆 아이디와 장소명이 어긋나 보이는 문제를 막기 위해 피드 헤더를 고정 grid 배열로 정리했습니다.
- 개선모바일 리뷰 페이지와 홈·갤러리·지도·스팟 화면의 주요 버튼과 필터 칩 좌우 여백을 줄여 버튼이 덜 둔해 보이도록 조정했습니다.
- 개선모바일 리뷰 페이지의 격자 배경선을 제거하고 단일 어두운 배경색으로 바꿔 미리보기 화면에 더 집중할 수 있도록 조정했습니다.
- 개선모바일 홈 피드, 헤더, 하단 네비, 갤러리 필터, 지도 칩, 사진 상세 액션의 과한 원형 라운드를 줄이고 작은 사각 버튼 톤으로 맞췄습니다.
- 개선갤러리 페이지의 제목을 '스팟 갤러리'에서 '갤러리'로 줄이고, 갤러리·스팟·지도 페이지의 모바일 제목 글씨체와 크기를 같은 톤으로 맞췄습니다.
- 개선모바일 하단 네비의 스팟 버튼을 현재 장소 목록인 /places로 연결하고, 아이콘과 업로드 버튼 크기를 조금 낮춰 사진 피드 위에서 덜 튀도록 조정했습니다.
- 개선홈 모바일 피드의 작성자 프로필 이미지를 원형에서 작은 정사각형 형태로 바꾸고, 장소명과 사진 메타데이터 글씨를 조금 키워 사진 정보가 더 잘 읽히도록 조정했습니다.
- 개선사진 상세 모바일 상단의 뒤로가기 버튼을 정사각 아이콘형으로 정리하고, 스팟명과 사진 위치 정보가 좁은 화면에서도 깨지지 않도록 헤더 밀도를 낮췄습니다.
- 개선모바일 세로 화면에서 풀스크린으로 가로사진을 볼 때 사진 크기가 지나치게 작아지지 않도록 가로사진만 자동 회전해 화면을 더 크게 채우도록 조정했습니다.
- 신기능/posts 글 목록, /posts/new 작성 화면, /posts/[id] 상세 화면을 추가해 촬영 후기와 장소 팁을 게시글로 공유할 수 있게 했습니다.
- 신기능게시글 댓글 API와 화면을 추가하고 기존 comments 테이블을 post 타겟까지 확장해 글마다 의견을 남길 수 있게 했습니다.
- 신기능게시글 태그를 기존 hashtags 사전과 post_hashtags 조인 테이블에 연결해 태그별 글 필터와 sitemap 노출까지 이어지도록 했습니다.
- 버그픽스Place 상세의 사진 탭과 사진 목록에서 신규 placeId 사진과 기존 spotId 사진을 함께 병합해 마이그레이션 전후 사진 배열이 갈라져 보이지 않도록 정리했습니다.
- 개선사진 상세 모바일 흐름을 작성자 아래 댓글, 좋아요한 사람, 빛 컨텍스트, EXIF 순서로 재배치하고 댓글·좋아요 목록은 기본 접힘 형태로 다듬었습니다.
- 개선지도 모바일 화면 왼쪽 중앙에 지도 중심 주변 스팟 플로팅 메뉴를 추가해 목록에서 선택하면 해당 위치로 바로 이동하도록 했습니다.
- 개선AI Vision quick/detail/feedback 사용량 제한을 DB 이벤트 로그 우선 방식으로 전환해 서버 재시작이나 Vercel 함수 인스턴스 교체 후에도 한도가 유지되도록 보강했습니다.
- 개선ai_vision_quota_events 멱등 SQL 마이그레이션을 추가하고, 테이블 미적용·DB 장애 시에는 기존 메모리 제한으로 안전하게 fallback 하도록 했습니다.
- 개선사진 먼저 업로드 흐름의 GPS 자동 매칭을 옛 스팟 API 대신 Place 검색으로 전환해 장소 등록 체계와 사진 업로드 체계가 같은 기준을 사용하도록 정리했습니다.
- 버그픽스자동 매칭 후 사진 등록 요청이 spotId 대신 placeId 를 보내도록 바꿔 신규 장소·KTO 장소·기존 장소 모두 같은 업로드 경로로 처리되게 했습니다.
- 개선AI Vision detail/feedback 분석에 사용자별 사용량 제한을 추가해 자동 분석 비용과 반복 호출을 서버 라우트에서 방어하도록 보강했습니다.
- 신기능/photos/[id] 상세 페이지에서 저장된 aiVisionMeta 의 캡션·접근성 설명·빛·구도·상태·비공개 힌트를 확인할 수 있게 했습니다.
- 개선AI Vision altTextKo 또는 captionKo 를 사진 상세 이미지 alt 로 활용해 접근성과 검색 노출 기반을 함께 강화했습니다.
- 개선모바일 헤더 로고와 테마 버튼을 더 작게 정리하고, 하단 네비게이션을 이모지 대신 심플한 선형 아이콘으로 교체해 사진 감상을 방해하지 않도록 했습니다.
- 개선홈 피드 사진 위에 카메라·렌즈·촬영조건 메타데이터를 작고 반투명하게 표시하고, 라이트 모드 브랜드 블루를 더 낮은 채도의 파스텔 톤으로 조정했습니다.
- 개선갤러리 타이틀 아이콘과 문구를 모던하게 정리하고, 장소 목록 상단 타이틀을 스팟 및 + 새 스팟 CTA 중심으로 재배치했습니다.
- 버그픽스모바일 리뷰 프레임의 폭이 테두리 포함으로 계산되어 실제 iframe 콘텐츠 폭이 작아지던 문제를 수정하고, 갤럭시 플립 계열 프리셋을 기본값으로 추가했습니다.
- 개선mobileReview 쿼리로 열린 실제 페이지에 CSS viewport·visual viewport·DPR 진단 배지를 표시해 실기기와 리뷰 프레임의 차이를 바로 확인할 수 있게 했습니다.
- 신기능사진 업로드 AI Vision 에 quick/detail 분석 모드를 추가해 기존 자동 분류는 유지하면서 정밀 분석 시 캡션·alt text·빛·구도·상태·비공개 힌트를 함께 확인할 수 있게 했습니다.
- 보안프로필의 AI Vision 분석 옵트아웃을 업로드 UI 와 /api/photos/analyze 서버 라우트 양쪽에서 반영해, 꺼진 사용자는 외부 Vision 호출이 발생하지 않도록 보강했습니다.
- 개선Photo.aiVisionMeta JSONB 컬럼과 멱등 SQL 마이그레이션을 추가해 v2 세부 분석 메타를 기존 ai_* 검색 호환 필드와 분리 저장할 수 있게 했습니다.
- 버그픽스갤럭시 플립 계열처럼 모바일 글자 크기/화면 확대 영향이 큰 환경에서 상단 헤더·주제 칩·하단 네비 버튼이 과하게 커지던 문제를 픽셀 기반 치수로 보정했습니다.
- 개선모바일 전역 text-size-adjust 를 고정하고 로그인·테마·업로드 FAB·지도 보기 버튼이 좁은 화면에서도 겹치지 않도록 폭과 높이를 제한했습니다.
- 신기능/dev/mobile-review 개발용 페이지를 추가해 홈·갤러리·장소·사진·지도 화면을 모바일 프레임으로 미리보고 페이지별 코멘트를 남길 수 있게 했습니다.
- 개선코멘트는 브라우저 localStorage 에 저장되며, 전체 리뷰 내용을 마크다운으로 복사해 후속 모바일 디자인 수정 작업에 바로 활용할 수 있습니다.
- 개선모바일 홈을 인스타그램식 사진 피드 중심으로 전환해 최근 출사 사진, 작성자, 장소, 좋아요, 댓글, 해시태그를 첫 화면에서 바로 탐색할 수 있게 했습니다.
- 개선기존 데스크톱 홈 구성은 유지하고, 모바일에서는 상단 주제 칩과 사진 상세/장소/지도 이동 CTA를 피드 안에 배치했습니다.
- 버그픽스Photo.spotId nullable 전환 이후 남아 있던 map·region·saved·home·carousel null 처리 오류를 정리해 TypeScript 빌드가 통과하도록 보강했습니다.
- 버그픽스KTO 한 방 처리 preview import 경로와 promote 응답 필드 충돌을 수정하고, meetup 참여/멤버 권한 API의 좁혀지지 않던 타입 분기를 정리했습니다.
- 개선사진 좋아요·댓글 캐시 무효화는 spot 연결이 있는 경우에만 spot 경로를 갱신하고, 사진 상세 경로는 항상 갱신하도록 안전하게 분리했습니다.
- 개선갤러리 카드에서는 해시태그 칩을 숨겨 사진 그리드 밀도를 유지하고, 스팟/장소 사진 메인 영역의 사진 아래에 해시태그를 표시하도록 정리했습니다.
- 개선장소 사진 영역의 원본 보기 팝업 버튼을 제거하고, 사진 아래의 '사진 상세 보기' 링크로 /photos/[id] 상세 페이지에 이동하도록 변경했습니다.
- 보안이용약관·개인정보처리방침·위치기반서비스 약관 v0.2가 2026-05-10부터 정식 시행 중임을 /changelog에 명시했습니다.
- 개선한국어·영문 약관 페이지와 /profile/preferences의 데이터 설정 흐름이 같은 정책 기준을 바라보도록 안내 문구를 정리했습니다.
- 개선기존 가입자는 사전 안내된 합의 흐름을 유지하고, 신규 가입자는 가입 과정에서 최신 약관 확인을 거치도록 운영 기준을 분명히 했습니다.
- 개선Design 모바일 목업을 참고해 모바일 공통 레이아웃을 조정했습니다. 미니 헤더를 더 낮추고 하단 BottomNav의 활성 표시와 그림자를 정리해 첫 화면 공간을 확보했습니다.
- 개선/gallery 모바일에서는 큰 추천 캐러셀을 접고 바로 정렬·검색·2열 마소너리 그리드가 보이도록 바꿨습니다. 사진 카드 정보 오버레이도 터치 환경에서 항상 읽히게 했습니다.
- 개선/map 모바일은 사진 캐러셀보다 지도를 먼저 보여주도록 재배치하고, 필터 바와 지도 높이를 조정해 첫 화면에서 지도 탐색이 바로 가능하게 했습니다.
- 신기능AI 사진 분석 해시태그 추천/저장 상한을 5개에서 10개로 확대. 업로드 UI, API 검증, 정규화 로직을 같은 상수로 동기화.
- 신기능갤러리 카드와 사진 상세 이미지 아래에 저장된 해시태그 칩을 표시. 클릭 시 /search?q=태그 로 이동해 같은 해시태그 사진을 함께 탐색.
- 개선기존 데이터 호환: photos.tags 외 photo_hashtags 조인과 ai_hashtags 원본 추천도 병합 표시. 검색도 JSON 태그 fallback 까지 매칭.
- 버그픽스AI 가이드 프롬프트에 장소명·좌표·주소 기준 가드를 추가. 입력된 Place 외 유명 인근 장소나 동음이의어가 섞이지 않도록 보강.
- 개선/places/[id] 사진 탭에서 AI 가이드를 요청할 때 Place 컨텍스트를 명시 전달. 같은 숫자의 spot id 와 혼동되는 경로를 차단.
- 개선사이드바 「둘러보기」 순서 = 사이트 소개 → 출사 도구 → 큐레이션 (헌 결정). 첫 인상 페이지 (about) 가 최상단.
- 개선sitemap 에 /help 추가 (priority 0.6, monthly).
- 신기능/tools hub 6 → 10 항목 확장. 신규 4 종 — 🤖 AI 카메라 추천 (v2.7 + EXIF 학습) · ⏰ 시간 머신 (특정 날짜 빛 시뮬) · 💡 오늘의 빛 대시보드 (출사 전 5초 점검) · 📅 출사 캘린더 (시즌·페스티벌 알림). 모두 coming 상태 (disabled 카드).
- 개선이름순 정렬 (영어 → 한글 가나다) — AI 카메라 추천 · AR 시각화 · 사진 강의 · 시간 머신 · 오늘의 빛 대시보드 · 출사 가이드 · 출사 계산기 · 출사 모임 · 출사 캘린더 · 코스 라이브러리.
- 개선그리드 데스크톱 3 → 4 열 (10 항목 4+4+2). 모바일 1 열, 태블릿 2 열 그대로.
- 버그픽스/profile/collections 페이지 server-side exception fix — curatedCollection 의 PK 가 slug (String) 인데 코드가 c.id.toString() 호출하던 문제. id 제거 후 slug 사용.
- 개선「내 모임」 사이드바 「마이」 그룹에서 제거 → /users/[id] 프로필 페이지의 「⚙ 취향·데이터 설정」 옆에 「🤝 내 모임」 link 추가. 사이드바 「마이」 그룹 = 내 큐레이션·저장 · 설정 2 메뉴로 단순화.
- 개선data.go.kr 운영계정 승인 후 일일 한도 1,000 → 100,000 회 (100 배). cron kto-import 의 PER_TYPE_LIMIT 100 → 500 으로 5 배 증량 — 5 카테고리 × 500 = 2,500 / 일 = 운영 한도의 2.5% 만 사용 (안전 마진 충분). 신규 관광지·문화·이벤트·숙박·맛집 데이터 채워지는 속도 ↑.
- 개선사이드바 갤러리 메뉴 위치 변경 — 「둘러보기」 → 「장소 찾기」 그룹의 4 번째 항목 (지역 다음). 사진을 「볼거리」 가 아닌 「장소 발견」 의 한 수단으로 재해석. 둘러보기 그룹 = 큐레이션·🛠 출사 도구·사이트 소개 3 메뉴로 단순화.
- 개선최종 5 그룹 구조 = ① 장소 찾기 4 (지도·스팟·지역·갤러리) ② 둘러보기 3 (큐레이션·출사 도구·사이트 소개) ③ 함께하기 2 (올리기·등록·피드백) ④ 마이 3 (내 큐레이션·저장·내 모임·설정) ⑤ 관리 1 (어드민).
- 버그픽스/profile/collections 가 /saved 로 redirect 하던 흐름 제거 — standalone hub 페이지로 전환. 사이드바 「내 큐레이션·저장」 클릭 시 사이드바 일부 메뉴 (내 모임·설정·어드민) 일시 사라지던 문제 + /saved 가 「큐레이션」 컨텐츠 안 보이던 문제 모두 fix.
- 신기능/profile/collections = 2 섹션 통합 hub. ① 📁 내 컬렉션 (내가 만든 SavedCollection top 6 + 전체 보기 link) ② ✨ 운영 큐레이션 (편집장 픽 CuratedCollection top 4). 두 시스템의 차이도 명확히 안내.
- 개선v2.41 r2 의 「출사 도구」 별도 그룹 (6 메뉴) → 「둘러보기」 안 단일 「🛠 출사 도구」 메뉴로 통합. 사이드바 5 그룹으로 단순화. sub 메뉴 5 개 (가이드·계산기·모임·코스·AR) 사이드바 제거 — /tools hub 페이지 안에서 접근. 모든 도구는 hub 카드 그리드 통해 1 클릭 진입.
- 신기능사이드바 5 → 6 그룹 재편 — ① 장소 찾기 · ② 둘러보기 · ③ 🛠 출사 도구 (NEW) · ④ 함께하기 · ⑤ 마이 · ⑥ 관리. 큐레이션 분리 (운영 = 둘러보기 / 내 = 마이). 알림·통계 사이드바 제거 → 설정·프로필 흡수.
- 신기능🛠 출사 도구 Hub (/tools) 신규 — 6 카드 (출사 가이드 · 출사 계산기 · 출사 모임 · 코스 라이브러리 · AR 시각화 · 사진 강의). PhotoPills + Sun Surveyor + Strava + Splitwise + Meetup 통합 = 글로벌 새 카테고리 「Photography Tools Hub」.
- 신기능➕ 올리기·등록 3 카드 hub (/upload) — 「무엇을 공유하시겠어요?」 → 📸 사진·📍 장소·🤝 출사 모임. 기존 사진 업로드 흐름은 /upload?type=photo 또는 /upload?place=N 으로 호환 유지.
- 신기능/tools/guides (= /guides redirect) · /tools/calculators (5 종 안내 placeholder) · /tools/academy (M+4+ 안내) 신규. 양쪽 URL 유지 + canonical /tools/*.
- 개선/profile/settings 통합 페이지 placeholder — 6 섹션 진입점 (알림·프로필·통계·선호·계좌·약관). 단일 5~7 탭 통합은 후속. /profile/collections·/me/meetups 는 기존 페이지로 redirect (사이드바 호환).
- 개선박제: SitePlanning/01_planning/v2.41_navigation_ia.md § 0-α + _decisions/2026-05-12_v2.41-r2-sidebar-6-groups-tools-hub.md. UI 만 / DB 영향 0.
- 신기능코스 작성자가 다른 사용자에게 코스를 공유하면 계층 보상 — import 시 +3 pt · 정산 확정 시 +20 pt · 참가 ≥ 3 명 영향력 +10 pt · 5+ 회 사용 검증 도달 시 +50 pt 일시 보너스 + 「🌟 검증된 코스」 자동 배지 + 코스 라이브러리 상단 노출.
- 신기능양방향 보상 — 다른 사람 코스를 활용해 처음 모임을 완주한 사용 host 에게 「🗺 가이드 따라간 첫 모임」 배지 (포인트 X, 명예만). 코스 사용 host 도 인정.
- 보안자작극 방지 — Layer 1 user_id 자기 import 차단 (DB trigger) + Layer 2 IP hash 매치 보류 (v2.29 § 1.4 인프라 재사용). 적발 시 보상 보류 + admin 큐 등록 + suspicious_flag 영구.
- 개선코스 라이브러리 정렬 변경 — 검증된 코스 상단 → 완주 횟수 → 가져간 횟수 → 신규. 표시도 「✅ N 회 완주」 (실제 가치) 와 「♻ N 회 가져감」 (의지) 분리.
- 개선DB 추가 — meetup_course_templates 9 컬럼 (author_user_id·usage_count·verified_at·is_verified·is_suspicious 등) + meetup_course_usage 신규 + course_reward_log 신규 + users 5 컬럼 (permanent_free_tier 등). 박제: SitePlanning v2.45.
- 개선W2 (알림 컴포넌트 4 종 + admin suspicious 큐) 는 사진가 모집 5/16 이후 점진 도입. 현재는 console.log 로 보상 흐름 트레이스 가능.
- 버그픽스모임 기간 표시가 설정한 시간과 9 시간 어긋나던 문제. 원인: Vercel 서버 timezone 이 UTC 라 server-rendered `toLocaleString("ko-KR")` 가 UTC 그대로 표시. 영향: /meetups 목록 · /meetups/[id] 상세 · /api/og/meetup/[id] (SNS 카드).
- 개선모든 server-side `toLocaleString` / `toLocaleDateString` 호출에 `timeZone: "Asia/Seoul"` 명시. 자정 경계의 `isMultiDay` 판단도 KST 기준으로 변경. 영구 patch — Vercel timezone 변경되어도 안전.
- 버그픽스/users/[id] 의 「🎒 내 장비」 카테고리 카드가 다크 모드에서 흰색 배경 그대로 박혀 카메라·렌즈·삼각대 라벨이 안 보이던 문제. EquipmentCategoryCard 컨테이너에 dark:bg-surface-elev2 추가, non-primary chip 에 dark:bg-surface-elev1 + dark:text-ink-200 + dark:ring-surface-elev3 추가. primary (★) chip 도 dark:bg-amber-900/40 + dark:text-amber-200 으로 톤 매칭.
- 개선일정 인라인 form 라벨 명확화 — ① 카테고리 ② 시간 ③ 이름/메모 ④ 예상 비용 으로 번호+라벨 표기. 카테고리 pill 도 아이콘+텍스트 2 줄. 「✓ 슬롯 추가」 / 「✓ 변경 저장」 으로 상태 명시.
- 버그픽스늦은 시간 (22~24시) 빈 블럭 클릭 시 form 의 「✓ 추가」 버튼이 timeline 끝 넘어 잘리던 문제 fix — form 의 anchorTop + 추정 높이 가 timeline 끝 넘으면 자동으로 위로 띄움. mount 시 scrollIntoView({block: nearest}) 도 호출.
- 신기능기존 슬롯 클릭 → 인라인 편집 form (PATCH /api/meetups/[id]/slots/[slotId] r7 신규). 카테고리·시작 시각·소요 시간·이름·비용 모두 변경. 시간 중복은 DB EXCLUDE GIST 가 자동 차단. 「🗑 삭제」 버튼도 form 안에 통합.
- 신기능📤 공유 버튼 — 모임 상세 헤더에 신규. 3 옵션: 「📋 모임 링크 복사」 · 「📅 시간표 텍스트 복사 (카톡 붙여넣기)」 · 「📤 다른 앱으로 공유」 (navigator.share 지원 시). 비공개 모임은 ?invite= 자동 부착.
- 신기능⚙ 모임 정보 편집 페이지 (/meetups/[id]/edit) — host 전용. 4 섹션 한 페이지: ① 기본 (제목·설명·공개·회비방식) · ② 일정 (기간) · ③ 회비 (예상 회비·운전자 수고비·모임장 분담) · ④ 모집 (정원·최소인원·자동승인·대기자·코스공개). 변경 필드만 PATCH 로 전송.
- 개선PATCH /api/meetups/[id] 확장 — title·description·visibility·feeMode·startAt·endAt·estimatedFeePerPerson·driverBonus·hostDiscountRatio·minMembers 수용. 기간 변경 시 기존 슬롯 dayIndex 검증 (새 기간 벗어나면 거부). 정산·취소 모임 편집 차단.
- 개선일정 편집(/meetups/[id]/schedule) 을 dropdown 5+ 클릭 → 빈 블럭 1 클릭 UX 로 전환. 00:00~24:00 30분 단위 48 블럭 세로 타임라인 + 점유 슬롯 카테고리 색 띠 시각화 + 같은 일차 시간 중복 자동 차단 그대로 (DB EXCLUDE GIST).
- 신기능빈 블럭 클릭 → 인라인 form 펼침 (카테고리 6 pill + 이름·예상비용 + ±30분 버튼). 기본 길이 1시간 (2 블럭), 「+30분」/「-30분」 으로 즉시 조정. 모달 X — 시선 이동 최소.
- 신기능🌅 일출 · 🌇 일몰 가로 점선 (서울 기준, SunCalc) — 골든아워 한눈에. 사진가의 출사 모임 정체성과 직결되는 차별화 UX.
- 신기능📋 빠른 시드 3 프리셋 (🌅 일출형 · 🌇 일몰형 · ⭐ 야경/은하수) — 해당 일차 슬롯 0 개일 때만 노출. 첫 host 의 진입 장벽 ↓↓. 적용 후에도 자유 수정·삭제.
- 개선새벽 (00:00~04:30) 영역 기본 접힘 + 「⬇ 새벽 보기」 토글. 슬롯·일출이 새벽에 있으면 자동 펼침.
- 버그픽스vercel.json 의 meetup-auto-close cron 을 매시간 (0 * * * *) → 매일 09:00 (0 9 * * *) 로 변경. Hobby 플랜은 하루 1 회 cron 한도 — 매시간 schedule 이 빌드 단계에서 거부되어 v2.40 r5 (사이드바 「출사 모임·코스 라이브러리」 메뉴 추가·동적 OG·host 가이드·photos↔meetup) 가 production 에 반영되지 못함. 진단 시간 ~2h.
- 개선「시작 6h 전 미달 자동 취소」 정밀도는 매일 09:00 1 회 점검으로 변경 — Phase 0 운영 가능 수준. 정밀도 필요 시 Vercel Pro 업그레이드 또는 host 수동 마감 사용.
- 신기능/meetups/host-guide — 처음 출사 모임을 host 하시는 분을 위한 6 단계 가이드 (모임 만들기·일정 슬롯·참가자 관리·영수증 등록·정산 확정·코스 공개) + 운영 팁 5. 5/16 사진가 모집 시 함께 안내.
- 신기능/meetups 헤더에 「📖 host 가이드」 진입 버튼. sitemap 에 정적 페이지 추가 (priority 0.5).
- 신기능/api/og/meetup/[id] next/og 동적 OG 이미지 — 다크 그라데이션 + 모임 제목 + 4 칸 정보 (날짜·기간·인원·1인 회비) + host nickname + 모집 상태 배지. 카톡·페이스북·X 공유 시 자동 미리보기.
- 신기능/meetups/[id] generateMetadata 의 openGraph.images + twitter.images = summary_large_image. 비공개 모임은 OG endpoint 가 404 반환 (noindex 정합).
- 개선Windows + emoji ERR_INVALID_URL 사고 회피 위해 emoji 미사용. 텍스트 라벨로 대체 (날짜·기간·인원·회비). fonts 시스템 기본.
- 신기능photo.meetupId 컬럼 + Photo↔Meetup relation. 「📤 사진 올리기」 시 「이 모임에 연결」 옵션 (POST /api/photos meetupId 수용). /meetups/[id] 에 「📷 모임 사진 N」 카드 + 「전체 보기」 링크.
- 신기능/meetups/[id]/photos 갤러리 페이지 신설 — 모임에 연결된 사진 grid (최대 60). 호버 시 @uploader + 📍 place 표시. 비공개 모임은 멤버/invite 만 열람. 코스 import 시 「이 코스로 다녀온 사진」 자동 노출 (소스 모임의 갤러리 링크).
- 개선db/migrate-v2.40-r5-photo-meetup.sql — photos.meetup_id BIGINT + 인덱스. 재실행 안전 (IF NOT EXISTS).
- 신기능/admin/project 최상단 「🚨 운영 alarm」 섹션 — 미해결 신고·Place 신고 대기·KTO 검수 적체·OCR 신뢰도 낮음(<85%)·정원 미달 임박(24h)·숨김 Place 누적. 각 항목 클릭 시 해당 admin 페이지로 진입. crit > warn > info 우선순위 정렬 + count desc. 「📋 클로드 핸드오프 복사」 markdown 에 자동 반영.
- 신기능DesktopSidebar 「함께하기」 그룹에 「🤝 출사 모임」 + 「📚 코스 라이브러리」 진입점 추가. 사진 올리기 + 장소 등록 옆에 v2.40 진입점 명확화.
- 개선lib/admin/alarms.ts (NEW) — collectAdminAlarms 헬퍼. 6 종 alarm 통합. graceful fallback (테이블 없으면 0).
- 신기능/meetups/[id] 공개 모임 generateMetadata 보강 — title·description (📅 날짜·⏱ 일수·👥 인원/한도·💰 회비·@host 자동 요약) + openGraph (article type, siteName) + twitter (summary card). SNS·메신저 공유 시 미리보기 이미지·제목 노출 → 5/16 사진가 모집 직전 모집 효과 ↑.
- 신기능비공개 모임은 noindex + 최소 메타 (title 만) 유지. 검색 노출 차단.
- 신기능/sitemap.xml 에 /meetups · /meetups/courses 정적 + 공개 모집 모임 (recruiting/closed/active) + 코스 템플릿 (published) 동적 페이지 자동 추가. Google·Naver Webmaster 자동 인덱싱.
- 개선/meetups · /meetups/courses 목록 페이지도 openGraph + twitter 메타 추가.
- 신기능/admin/project 에 「24h 운영 활동」 5 카드 (신규 모임·영수증 등록·정산 확정·참가 승인·코스 import) + 영수증 OCR 평균 신뢰도 카드 (≥95% 녹색·85~95% 황·<85% 적색). 운영 시작 후 매일 1 회 점검 + 핸드오프 markdown 자동 반영.
- 신기능5/16 사진가 모집 직전 운영 안전망 — admin 이 매일 한 번 「📊 프로젝트 대시보드」 진입 시 24h 활동·OCR 정확도·DB 마이그 상태·검증 9 PASS 한 페이지로 점검. 사고 인지 + 클로드 핸드오프 1 클릭.
- 신기능/api/cron/meetup-retain-cleanup 신설 — retain_until < NOW 인 settled/cancelled 모임의 meetup_receipts.receipt_image_url 만 null 처리. 모임·정산·슬롯·금액·OCR raw 는 감사용 유지. PIPA 정합 (사진 보존 만료 후 즉시 삭제, 메타데이터 익명화 후 유지).
- 신기능vercel.json 매일 04:00 UTC (= 13:00 KST) cron 등록. 단 admin_settings.meetup_automation.cron_retain_until_cleanup_enabled=true 일 때만 동작 (default false → Phase 0 = OFF, 운영 후 ON 검토).
- 배포W6 베타 검증 9 항목 모두 PASS — Layer 0 전용·🛡 총관 차등·카드 6 항목 fixed·min_members 자동 취소·정산 후 코스 자산화·allow=false 미공개·?import 완전 prefill·grandfather 보호·admin_settings_audit 모든 변경 기록. /admin/project 의 토글 9/9 ✅ 표시. v2.40 Phase 0 (모집·일정·영수증 OCR·1/N 정산·참가 흐름·admin 정책·코스 라이브러리) 즉시 출시 가능 상태.
- 버그픽스verification toggle 새로고침 후 reset 사고 hotfix — Vercel serverless 인스턴스별 메모리 캐시(60s) 가 stale 값 반환 → revalidatePath('/admin/project'·'/admin/settings/meetups') + project_verification_checks 키만 cache bypass.
- 신기능/admin/project 에 「베타 검증 9」 섹션 추가 — Design REQ-14 r3 의 9 항목 (Layer 0 only · 안전·법무 🛡 전용 · 카드 6 항목 · min_members 자동 취소 · 코스 자산화 · allow_publishing 미공개 · ?import prefill · grandfather · audit) 각각 「⏳ 대기 → ✅ PASS → ❌ FAIL → ⏳」 클릭 토글. admin_settings.project_verification_checks 키에 저장 + audit 자동.
- 신기능박제 manifest 확장 — KNOWN_DOCS 에 SitePlanning v2.42·v2.44, TODO 백로그, W6 베타 검증 시나리오, Design v2.41 nav spec, r2/v2.40 결정 문서 등 추가. 클로드 핸드오프 markdown 에 자동 포함.
- 개선마이그 SQL 시드에 8 번째 admin_settings 키 추가 (project_verification_checks). 기존 DB 에 ON CONFLICT DO NOTHING 으로 1 줄 INSERT 만 추가 실행하면 적용.
- 신기능/admin/project — 운영 카운트(users·places·photos·meetups·receipts) · DB 마이그 적용 상태(13 테이블 + meetups r3+r4 컬럼 7 + users.is_super_admin + admin_settings 7 시드) · changelog 상위 5 · admin_settings 7 카테고리 default 와 diff · 박제 manifest(SitePlanning·Design·decision) 한 페이지.
- 신기능「📋 클로드 핸드오프 복사」 버튼 — 현재 프로젝트 상태를 markdown 으로 압축 → 클립보드 1 클릭 복사 + 「💾 .md 다운로드」. 새 클로드 채팅 시작 시 paste 하면 컨텍스트 reset 비용 0. /admin 메인에 「관리자 도구」 섹션 카드로 진입점.
- 신기능lib/projectStatus.ts — collectProjectStatus() + renderHandoffMarkdown() 헬퍼. KNOWN_DOCS 박제 manifest 는 새 v2.x 추가 시 수동 갱신. changelog.ts 가 단일 진실, 공개 /changelog 와 admin /admin/project 둘 다 같은 배열 사용.
- 배포docs/v2.40-w6-beta-verification.md — 3 실측 검증 (min_members 미달 / 코스 자산화 cron / admin grandfather + 🛡 총관 차등) 의 Setup·Action·Expected·PASS 기준 분해. Design REQ-14 r3 의 9 검증 체크리스트와 매핑.
- 배포db/seed-v2.40-w6-test.sql — DO 블록 1 회 실행으로 검증용 모임 4 개 (A 미달 / B 코스 공개 / C grandfather / D 코스 미공개) 자동 시드. 시간 가속 (start_at = NOW + 7~8h) 으로 cron 1 회 호출로 즉시 발동 가능. cleanup 도 단일 DELETE.
- 신기능host 전용 「⚙ 모임 설정」 통합 패널 — 자동 승인 · 대기자 명단 · 코스 공개 · 정원 조절 · 모집 마감/재개 토글. 정원 변경은 시작 12h 전까지 자유 (admin_settings 기준), 변경 시 사유 입력 → meetup_member_limit_history 자동 기록. 「❌ 모임 취소」 = 위험 영역으로 분리.
- 신기능Waitlist 흐름 — 정원 차고 「대기자 명단 ON」 이면 신청 시 status='waitlist'. host 의 「🪑 대기자 N 명」 섹션에서 「승격」 클릭 → 정원 여유 시 즉시 approved. 비멤버는 「정원 마감 — 대기자 명단 신청」 안내.
- 신기능🛡 총관 vs 🛠 일반관 차등 (User.isSuperAdmin) — 「⑥ 안전·법무」 카테고리는 🛡 총관만 변경. 🛠 일반관은 dim + 「🛡 총관 전용」 배지 + 저장 차단 (UI + API 양쪽 가드). 헌 promote = `UPDATE users SET is_super_admin=true WHERE email='infotravelog@naver.com'`.
- 신기능MeetupCard 6 항목 fixed — 제목·상태/비공개 · 날짜 · 인원(현재/한도 + 최소) · 회비 방식 + 예상 1인 · 모임장 · ⚠ 24h 이내 최소 인원 미달 경고 배지 (조건부).
- 신기능코스 라이브러리 추천 배지 — import_count ≥ 5 = 「🌟 추천」 배지. 사용 횟수 표시. import 정렬 우선. ?import=<id> 진입 시 title·description·feeMode + totalDays 로 endAt + memberLimit + estimatedFee 까지 완전 prefill (모든 필드 수정 가능).
- 신기능/admin/settings/meetups — 7 카테고리 admin_settings (모임장 자격 · 모집 정책 · 정산 정책 · 자동화 · 코스 큐레이션 · 안전·법무 · UX) JSON 편집 + 변경 감사 로그. hardcode 제거 — 자동 마감 시간 · 최소 인원 알림 · 보존 개월 모두 운영 시점 조절.
- 신기능/meetups/courses 코스 라이브러리 — 정산 확정 + 「코스 공개」 토글 ON 인 모임은 자동으로 익명 코스 템플릿 생성 (host = 「(익명) Silver 사진가」 등 등급 표시, 참가자·금액·영수증 제외). 「이 코스로 새 모임 만들기」 → /meetups/new?import=<id> 로 시간표·장소·기본정보 prefill, 모든 필드 수정 가능.
- 신기능정원 조절 + 분쟁 증빙 + 자동 마감 cron — host 가 정원 변경 시 시작 12h 전까지만 자유 (admin_settings 로 조절), member_limit_history 자동 기록. 시작 6h 전 자동 마감 (closed_at·closed_reason). 최소 인원 미달 시 24h 전 알림 · 6h 전 자동 취소. /api/cron/meetup-auto-close.
- 신기능신규 모임 폼 옵션 3 추가 — 최소 인원(min_members) · 대기자 명단(waitlist_enabled) · 코스 공개 허용(allow_course_publishing). 정원 부분 초과 시 대기자 명단 활성 모임은 신청 받을 수 있도록 W5 보강 예정.
- 신기능/meetups 모임 목록 — 「내 모임 (진행 중)」 + 「내 모임 내역 (종료)」 분리 표시. 종료 모임은 기본 6 개월 본인 열람 가능(retainUntil), 이후 자동 만료. 공개 모집 중 모임 별도 섹션.
- 신기능참가 신청·승인 흐름 (W5) — 비멤버 「참가 신청」 → host 「대기 중 신청 N 건」 승인·거부 → 즉시 참가자 명단 반영. host 가 「자동 승인 ON」 토글 시 신청 즉시 approved. 비공개 모임은 invite_code 검증. 본인은 pending·approved 단계 모두 「신청 취소」 가능. host 는 참가자 「🚗 운전자 지정」·강퇴 가능. 정원 초과 자동 차단(memberLimit 비교).
- 신기능/meetups/[id]/schedule 일정 슬롯 편집 (host 전용) — 일차 탭 + 30 분 단위 카테고리 6 종 (🚗 출발·이동 / 📸 촬영지 / 🍜 식당 / 🛏 숙박 / ⛽ 주유·톨비 / 📌 기타). 같은 일차 시간 중복은 DB EXCLUDE GIST 제약으로 자동 차단(409 응답). 멤버는 상세에서 read-only 일정 확인.
- 신기능/meetups/[id]/receipts 영수증 관리 — 사진 업로드 시 v2.35 § 4.9 OCR 인프라(Claude Haiku 4.5 Vision) 재사용해 금액·일시·상호·카드 끝 4 자리 자동 추출. 카테고리 6 종 + 분담 정책 4 종(균등 · 운전자 할인 · 모임장 할인 · 수동). 슬롯 연결 가능. 영수증 사진은 S3 영구 보관(presigned PUT) — 참가자·host 만 조회. 카드 last4 는 sha256 해시(PIPA).
- 신기능/meetups/[id]/settle 1/N 정산 자동 계산 — 영수증 합 + driver_bonus + host_discount_ratio 적용. 멤버별 net (받을 돈 / 보낼 돈) 표시. 박제 § 5 알고리즘 (equal · driver_discount · host_discount · manual). host 「정산 확정」 시 meetup.status='settled' + settlement·lines DB 저장. 멤버 read-only 미리보기.
- 신기능DB 8 테이블 + W5 마이그 — meetups·meetup_members·meetup_slots·meetup_receipts·meetup_split_overrides·meetup_settlements·meetup_settlement_lines·user_bank_info. W5 추가 컬럼 = meetups.auto_approve(BOOL · 자동 승인 토글) · meetups.retain_until(TIMESTAMPTZ · 본인 열람 만료). 만료 인덱스.
- 신기능/guides 인덱스에 9 가이드 모두 live. 일출·일몰, 반영 사진, 안개·운해, 자연광 인물, 단풍, 벚꽃, 도시 야경, 접사·매크로 신규. 각 페이지 9 섹션 구성 (조건·장비·세팅·심도·구도·후처리·시즌 캘린더·한국 명소 10~30 곳). 한국 위도 33~38° 기준 실측 데이터.
- 신기능/guides 인덱스 카드 정사각 + 자동 채움 그리드 (모바일 2 · 태블릿 3 · 데스크톱 4-5 col). 제목은 표지 위 오버레이, 설명은 하단. 사진 매칭은 추후 활용 (matchShootTypes·matchSubjects 필드 박힘).
- 개선각 가이드 헤더의 「📚 출사 가이드」 라벨을 「← 📚 출사 가이드」 클릭 가능한 Link 로. /guides 인덱스로 1 클릭 복귀.
- 신기능/regions/[광역]/[시군구]/[구·군] lvl3 페이지 신규 — changelog 2026-05-06 의 「3 단계 탐색」 약속 완료. 전주시 → 완산구·덕진구, 수원·청주·창원·천안 등 도(道) 시 안의 구·군 정상 진입. breadcrumb 4 단계 (전국 > 광역 > 시군구 > 구·군).
- 신기능/cafes·/restaurants 에 RegionFilterClient 부착 — 권역 탭 → 광역 칩 → 시군구 셀렉트 (URL ?r1=&r2=&r3=). /spots 와 일관. PlaceIndexShell 헤더에 「🗺 현재 광역 · ✕ 전체 보기」 칩.
- 신기능/places/[id] 에 「📍 위치 수정」 모달 — 본인 (Place 등록자) 또는 admin 만 보임. 지도 + 핀 드래그 또는 클릭으로 새 좌표 → 저장. PATCH /api/places/[id]/location, P1 권한 (본인 + admin).
- 신기능/upload 의 「ⓘ 원하는 장소가 없나요?」 카드 3 옵션: 🔍 검색으로 등록 · 🗺 지도로 등록 (NewPlaceForm 즉시 지도 picker 활성) · 🛰 GPS 자동 매칭. 「지도로 등록」은 /places/new?mode=map → PlaceSearchPicker 의 manualMode 우선 시작.
- 개선/places/[id]·/places/[id]/photos·/users/[id] 에 공용 Breadcrumb 컴포넌트 적용. 전국 > 광역 > 시군구 > 장소 4 단계 클릭 가능. 모바일 max-w-[60vw] truncate.
- 개선DesktopSidebar 11 평면 → 5 그룹 (장소 찾기·둘러보기·함께하기·마이·관리). 「장소 찾기」 = 지도·스팟·지역 3 핵심 (관광지·카페·맛집 제거). 「함께하기」 = 사진 올리기·장소 등록·피드백. 「둘러보기」 = 갤러리·큐레이션·가이드·사이트 소개.
- 개선BottomNav 7 → 5 슬롯: 홈·지도·➕업로드(FAB)·스팟·갤러리. 마이는 MobileMiniHeader 우상단 프로필. 사이드바와 일관.
- 신기능admin/queue/kto-import 에 「✨ 검수 큐 한 방 처리」 버튼. 모든 pending 자동 promote, 음식점은 title 키워드 (카페·커피·디저트·베이커리·빵·케이크 등) 휴리스틱으로 cafe/restaurant 분류. 모달 미리보기 + admin 토글 후 일괄 승인.
- 버그픽스promote_failed (KTO 원본 title·좌표 누락) — withDetail=true 시드 데이터의 rawData 가 {list, detailCommon, ...} wrap. lib/place/import.ts promoteKtoImport 가 평탄화 후 처리.
- 개선KtoImportQueueShell 카드 title·addr 도 평탄화 fallback — wrap 된 옛 데이터 「(제목 없음)」 사고 해소.
- 개선/collections 인덱스 카테고리별 section (8 카테고리) 제거 → flat grid (모바일 2 · 데스크톱 5 col 자동 채움). 카드 정사각 + 카테고리 라벨 카드 위 배지로 표시. 한 화면에 한눈에 들어옴.
- 신기능/collections/[slug] 카드 사진 미리보기 — getPreviewPhotosForSpots batch fetch 후 background-image. 사진 없으면 카테고리 이모지 fallback. /collections 인덱스 카드도 첫 사진 표지.
- 버그픽스Hydration mismatch (React #418/#423) — photoUrl.ts 의 hasAws() 가 client bundle 에서 false → server·client URL 불일치. NEXT_PUBLIC_CLOUDFRONT_DOMAIN 으로 분리 + hasAws 체크 제거. 「잠깐 사진 보였다 사라짐」 사고 해소.
- 버그픽스picsum.photos placeholder 가 위장된 더미로 표시되던 사고 — isPlaceholderUrl helper + safeThumbUrl wrapper. 시드 데이터(seed/ prefix)는 그라디언트+이모지 fallback.
- 버그픽스KTO 이미지 Mixed Content — tong.visitkorea.or.kr 가 http URL 제공 → ensureHttps() helper + DB UPDATE (places.kto_image_urls 84 row, landmarks.thumbnail_url 정규화).
- 버그픽스/regions·/spots·/cafes·/restaurants·/collections·/photos·/saved 의 SpotCard link 가 spot.id 를 /places/[id] 로 보내 엉뚱한 장소 노출. lib/place/mapSpotToPlace.ts 의 mapSpotIdsToPlaceIds() helper 가 lat/lng (±10m) 매칭 placeId 로 변환.
- 버그픽스/spots/[id] 5 페이지를 server-side redirect 로 통합 (page·photos·edit·guide/edit·sun-alignment). 옛 외부 링크·검색 인덱스 모두 /places/[matched] 로 자동 흡수.
- 개선카드 미리보기 <img onError display:none> 패턴 → background-image div (5 컴포넌트). React DOM 재사용·router cache 복원 시 부작용 0.
- 버그픽스/api/weather + /api/track 503 → 204 graceful. 환경변수 미설정 시 콘솔 에러 안 띄움. KMA_API_KEY · EVENT_LOGGING_ENABLED 설정 시 정상 응답.
- 버그픽스프로필 편집 모달 「🏆 회원 등급 안내」 의 6 등급 리스트·현재 위치 그라디언트·수동 점수·품질 보너스 박스가 다크모드에서 흰 배경 + 흰 글씨로 가독성 0. brand·emerald·amber 톤 다크 카운터파트 (900/30, 200·100·300) 추가.
- 개선「내 장비」 isPrimary chip (★ EOS R6m2 등) amber-900/20 → 900/40 으로 강화 — 다크모드 가독성.
- 버그픽스「전주수목원」 카드만 손바닥 (grab) 커서 + 우클릭 안 됨 = mapbox 의 floating UI 가 sidebar 영역 침범 (좁은 viewport 에서 stacking 충돌). MapInteractive 의 aside 에 `relative z-30` 강제 + 별도 stacking context. 우측 mapbox container 에도 `relative` 추가해서 absolute 자식이 자기 영역 밖으로 못 나가게.
- 버그픽스NearbySpotsList 의 spot card + landmark 버튼에 inline style `pointerEvents: auto, cursor: pointer` 강제. cursor 가 mapbox 의 grab 으로 떨어지던 case 해소.
- 버그픽스db/migrate-jeonjusumokwon-spot-to-place.sql + db/migrate-all-orphan-spots-to-places.sql — 옛 Spot 테이블 데이터를 Place 로 마이그. 같은 lat/lng Place 이미 있으면 skip (중복 방지).
- 버그픽스지도 핀 popup HTML 의 모든 href 가 옛 `/spots/${id}` 경로 → /spots route 가 deprecated 됐고 ID 가 Place ID 라 404. 모두 `/places/${id}` 로 정정 (4 군데 일괄 replace). 「상세 보기」 버튼·제목 링크·사진 링크 모두 정상.
- 버그픽스NearbySpotsList spot card + landmark 버튼에 `relative z-10` 추가. sticky 레이아웃 변경 후 다른 absolute 요소가 클릭 가로채던 case 안전 가드.
- 버그픽스db/diag-jeonjusumokwon-status.sql — 「전주수목원」 Place status 진단. hidden 이면 자동 복원 안 된 거 (별도 fix 필요).
- 버그픽스신고 1: 「+ 내 커뮤니티 추가」 후 「전주수목원」 이 KTO + Place 양쪽으로 분리 표시되던 문제. NearbySpotsList 가 spots(회원 Place) 의 lat/lng 와 같은 KTO landmark 를 자동 filter out (지도 통합 핀과 같은 ±5m 매칭). 회원 Place 카드 1 개로만 표시 → 분리감 해소.
- 버그픽스신고 2: KTO 「전주수목원」 클릭이 아예 안 되던 문제. NearbySpotsList 가 dispatchEvent('itl:open-landmark') 만 보내고 SpotsOverviewMap 의 listener 마운트 타이밍에 의존했음 (race). NearbySpotsList 자체에 LandmarkModal dynamic import + state 관리 추가 → 즉시 모달 열림. 이벤트 dispatch 도 유지 (SpotsOverviewMap 도 listen 중이라 동기화).
- 버그픽스Spot card link `/spots/${id}` → `/places/${id}` 정정. Place-centric 전환 후 옛 경로 잔재 fix.
- 개선PhotoTab 의 「사진 올리기」 → /upload?placeId=... 진입 시 「장소 선택」 단계 (Step 1) 자체 건너뛰기. step 진행 표시도 [2, 3] 만 노출. 이미 선택된 Place 에 사진 올리는 의도가 명확한데 또 dropdown 보여주던 잡음 제거.
- 개선헤더 동적 — preselected 면 「전주수목원 — 사진 올리기」 같이 Place 명 노출. ← 버튼도 그 Place 페이지로 back. 일반 /upload 진입은 종전대로 「사진 올리기」.
- 개선본문 상단에 brand 카드로 「📍 선택한 장소: 전주수목원 + 주소」 + 「↻ 다른 장소로」 작은 링크. 변경 의도 있을 때만 Step 1 dropdown 노출.
- 버그픽스Phase 2 마이그로 hidden 처리된 KTO 자동 시드 Place 가 같은 ktoContentId 로 「+ 내 커뮤니티 추가」 시도 → KTO contentId UNIQUE 충돌 → 기존 hidden Place 페이지로 redirect 되어 PhotoTab 안 보이던 문제. POST /api/places 가 P2002 catch 안에서 기존 Place 가 hidden 이면 자동으로 복원 (status=published, isHidden=false, hiddenReason 정리) + 회원에게 ownership 부여 (createdById). title/categories/메타 도 입력값으로 갱신. shadow Spot 도 같이 보장.
- 버그픽스NewPlaceForm — action="restored" 응답 처리. /places/[id]?restored=1 으로 redirect (just_created=1 과 구분).
- 버그픽스「+ 내 커뮤니티 추가」 후 PhotoTab 의 「사진 올리기」 클릭 → /upload?placeId=... 진입했지만 page.tsx 가 ?place= / ?spot= 만 받음. placeId 로 보낸 query 가 무시돼서 dropdown 에 preselect 안 되던 문제. searchParams 에 placeId 추가 + candidate 매칭 우선순위 placeId → place → spot.
- 버그픽스로그인 redirect 도 placeId/place query 보존 (next 파라미터 매칭).
- 버그픽스db/diag-place-photo-upload-blocked.sql — 「수목원」 Place 상태 확인용 진단 SQL.
- 신기능Phase 2 패러다임 — Place = 회원 가공 only, KTO 시드 = landmarks 테이블만. 같은 lat/lng 에 둘 다 있으면 지도엔 통합 1 핀 (Place 우선), /places 인덱스엔 Place 만. 미리보기 충돌·카테고리 mix 등 v2.28 통합의 부작용 해소.
- 신기능P2-A: db/migration-v2-29-phase2-cleanup-orphan-kto-places.sql — 자동 시드 Place (KTO contentId 있고 회원 활동 X) 일괄 status=hidden. ⚠ 보존 조건 강제 — 사진·좋아요·신고·메뉴 갱신·영수증 방문 흔적 있으면 절대 hidden X (회원 활동 흔적 = 자동 conversion 으로 간주).
- 신기능P2-B: 지도 통합 핀 — SpotsOverviewMap 의 fetchLandmarks 가 spots(회원 Place)와 lat/lng ±5m 매칭되는 KTO landmark 자동 filter out. 같은 위치엔 Place 핀만 노출 (회원 사진·가공 콘텐츠 우선). KTO 정보는 Place 페이지 안 「공공 정보」 섹션에서 표시.
- 신기능P2-C: /places/new?landmark=12345 진입 흐름 — KTO landmark contentId fetch → 이름·주소·좌표·카테고리·이미지 prefill. landmarkPrefill prop 으로 NewPlaceForm 에 전달. 폼 헤더 「내 커뮤니티에 추가」 + 안내 배너. POST 시 ktoContentId·ktoContentTypeId·ktoImageUrls 모두 같이 박힘 (콜드 스타트 사진 0 장 해소).
- 신기능LandmarkModal 에 「+ 내 커뮤니티에 추가」 brand CTA 박스 추가. 클릭 시 위 prefill 흐름으로 이동. KTO 단독 페이지에서 회원이 가공할 동기 명확화.
- 신기능/api/spots/nearby + /api/spots GET 응답에 ktoContentTypeId 노출. NearbySpotsList 카드 (지도 주변 스팟) 에 「{카테고리} · 한국관광공사」 amber 라벨. 기존 landmark 항목과 같은 톤. KTO 시드 (12 관광지·14 문화시설·32 숙박·39 음식점) 모두 일관.
- 개선충돌 처리 — Place.ktoContentId 는 출처 식별 (불변), cafeMeta/restaurantMeta 의 source: 'kto'|'user' 분리, MenuRevision 신선도 시스템 (v2.35 §4.10) 으로 「KTO 시드 + 회원 추가 정보」 양립. 한국관광공사 라벨은 출처 표시일 뿐이라 회원 정보가 추가돼도 그대로 유지.
- 버그픽스globals.css surface 토큰 (-base, -elev1, -elev2, -elev3) 에 `-rgb` 채널 변수 추가 (light + dark). tailwind.config.ts surface 정의를 `rgb(var(--surface-elev1-rgb) / <alpha-value>)` 패턴으로 변경. 이전엔 hex 직접이라 `bg-surface-elev1/95` 같은 opacity 문법이 컴파일 안 돼서 dark variant 가 무효였음 (다크에서도 흰색 박스). brand 토큰과 동일 패턴으로 통일.
- 버그픽스SpotsOverviewMap 데스크톱·모바일 카테고리 바 dark 모드 정상화. 30+ 곳 (about·home·layout·gallery 등) 의 `dark:bg-surface-elev*/95` 도 자동 정상화 (token 마이그 1 곳으로 일괄 fix).
- 버그픽스db/diag-photo-placeid-coverage.sql — 「지도 주변 미리보기 안 뜸」 진단. Photo.placeId/spotId 채워짐 분포 + 완산칠봉꽃동산 사진 매칭 + Place.photoCount 정합성 3 SELECT.
- 개선SiteFooter 전면 재작성 — 모든 페이지 공통 「컴팩트 1 줄 (~36px) + 클릭 확장」 패턴. 기본: 브랜드 + 핵심 링크 4 개 + ▲ 더보기. 확장: 4 column 풀 footer (오버레이, 슬라이드 업). 선호도 localStorage 저장. ESC 또는 ▼ 클릭으로 닫기.
- 개선layout.tsx — 데스크톱 sticky footer 패턴. md:h-screen + main:overflow-auto 로 footer 가 항상 viewport 하단 고정, 컨텐츠는 main 안에서만 스크롤. 모바일은 자연 스크롤 (BottomNav 70px 가 nav 담당). /map 같은 도구 페이지가 풀-뷰포트 느낌.
- 버그픽스도구 페이지 footer 숨김 로직 (직전 r1 fix) 철회 — 옵션 D 가 더 일관 + 발견성 보존.
- 버그픽스getPreviewPhotosForPlaces — Photo.placeId 직접 매칭 못 한 Place 들에 lat/lng → shadow Spot → photos 2단 fallback 추가. PhotoFirstForm 등 spotId 만 박힌 옛 사진들도 「주변 스팟」 카드 + 지도 핀 popup 미리보기에 정상 노출.
- 버그픽스db/backfill-2026-05-11-photo-place-id.sql — Photo.place_id NULL 인 사진들을 spot.lat/lng ±10m 매칭으로 일괄 채움. 가장 가까운 Place 1 개 선택 (ROW_NUMBER + Manhattan 거리). Place.photo_count 도 재계산. idempotent.
- 개선SiteFooter — /map · /upload · /admin · /ar · /star-mode 도구 페이지에선 자동 숨김 (표준 map 앱 UX). 컨텐츠 페이지 (/, /places, /about, /feedback 등) 는 풀 footer 그대로. usePathname + 정규식 매칭.
- 개선/places PlacesIndexShell — 「전체」 chip 삭제. 항상 1 카테고리 선택 강제. cat 파라미터 없거나 비어 있으면 default photo. 이유: 카테고리 mix 시 사진 미리보기 충돌 (다른 카테고리 사진이 같은 spot 페이지에 박혀 보이던 현상). single-select 로 각 카테고리 영역이 명확히 분리됨.
- 개선/places page.tsx default 로직 단순화 — cat 빈 값 → undefined cast 제거. 항상 rawCats 또는 [photo] fallback.
- 버그픽스GalleryGrid `<img>` 에 onError handler — 썸네일 URL 404 시 picsum placeholder (id seed) 로 자동 교체. 「🖼 사진명」 같은 broken image 아이콘 + alt 노출 방지. 무한 루프 방지 (data-fallback 마커).
- 버그픽스db/diag-photo-thumb-broken.sql 신규 — 특정 Place 의 사진 thumb_key 형식 + Lambda 썸네일 생성 여부 진단. thumb_key prefix 별 status 표시 (✓ thumbs / ⚠ photos = Lambda 미생성 / ❌ NULL).
- 개선CategoryToggle 다크 모드 글씨 가독성 — `dark:text-ink-200` → `dark:text-ink-100`. border 도 `gray-200` → `gray-300`. hover 에 bg 추가 (gray-50 / surface-elev2).
- 버그픽스lib/spotPreviewPhotos — getPreviewPhotosForPlaces (신규) 헬퍼. Photo.placeId 우선 매칭 + 사진 0 장인 Place 들에 ktoImageUrls.firstimage 자동 fallback. 콜드 스타트 (회원 사진 0 + KTO 데이터 있음) 케이스 즉시 미리보기 노출.
- 버그픽스/api/spots/nearby + /api/spots GET 모두 getPreviewPhotosForPlaces 호출. 「주변 스팟」 카드 + 지도 핀 popup 양쪽에서 미리보기 사진 정상 노출.
- 버그픽스지도 카테고리 토글 — 「🏛 관광지」 가 KTO 토글과 중복돼서 사용자에게 혼란. 「내 커뮤니티」 영역의 landmark 토글 제거. 관광지는 한국관광공사 토글로 단일화. 데스크톱 + 모바일 시트 양쪽.
- 버그픽스/api/spots/nearby (지도 중심 주변 스팟) — Spot 테이블 query 였어서 새 카테고리 (cafe·restaurant·lodging) 가 안 나왔음. Place-centric 으로 전환. 토글 slug → Place categories[] 매핑은 /api/spots GET 과 같은 패턴.
- 버그픽스CategoryToggle 컴포넌트 다크모드 — inactive 상태가 hardcoded #374151 (text-gray-700) 이라 다크에서 안 보였음. inline style 은 active (브랜드 컬러) 일 때만, inactive 는 Tailwind 다크 변형 클래스 (border-gray-200 dark:border-surface-elev3 + text-gray-700 dark:text-ink-200).
- 버그픽스지도 카테고리 토글 (cafe·restaurant 등) 켜도 핀이 안 보이던 근본 원인 — /api/spots GET 이 Spot 테이블만 query 했음. v2.28 Place 통합 후 신규 등록은 모두 Place 우선이라 Spot 은 shadow 일 뿐. /api/spots GET 을 Place-centric 으로 전환 — Place.categories[] hasSome 매칭. URL/params 호환 유지 (map 코드 변경 X).
- 개선토글 slug → Place categories[] 매핑 — photo_spot → photo, 나머지 동명. 응답에 categories 배열 추가 (다중 카테고리 chip 표시 가능).
- 신기능지도 데스크톱 + 모바일 시트에 landmark (🏛 관광지), lodging (🏨 숙박) 토글 추가. CATEGORY_COLOR 에 teal·sky 등록. v2.28 통합 후 5 카테고리 모두 토글로 노출.
- 버그픽스db/diag-map-categories.sql — 「지도에 핀 안 보임」 진단용. categories 테이블 시드 + Place 카테고리 분포 + Place vs Spot 매칭 4 개 SELECT.
- 버그픽스DELETE /api/photos/[id] — Photo.spotId nullable 마이그 후 null crash. spotId 가 있을 때만 Spot 카운트 갱신, placeId 가 있으면 Place 카운트도 같이 갱신. AuditLog 도 spot_id·place_id 둘 다 기록. revalidate 도 양쪽 경로.
- 신기능PlaceDeleteButton (신규) — Place 상세 헤더에 「🗑 삭제」 노출. 작성자 본인 OR admin 만. confirm 다이얼로그 + 사진 N 장 영향 안내 + 성공 시 /places 로 이동. canDeletePlace(user, place) 시그니처 확장 (place 없이 호출하면 admin 만).
- 신기능DELETE /api/places/[id] — 작성자 본인 OR admin. Place 삭제 시 lat/lng 매칭 shadow Spot (사진 0 장인 것만) 자동 정리해서 orphan 방지.
- 개선lib/imageResize.ts MAX_DIM_PX 3000 → 4000 — 풀프레임 디테일 보존 + Retina 5K 디스플레이 대응. UploadForm·PhotoFirstForm 안내 문구도 「4000px」 로 동기화. 25MB 용량 캡은 그대로.
- 버그픽스db/diag-missing-migrations.sql — 운영 DB 가 놓친 마이그 한 번에 진단. v2.29 (exif_meta·events·user_optout)·v2.31 (sns)·v2.35 (menu·receipt·address·kto_images)·v2.38 (tier·history)·2026-05-11 (spot_id nullable) 11 개 검사. ❌ MISSING 만 골라 적용.
- 신기능v2.28 Place 통합 마무리 — Spot/Photo 데이터 전체 와이프 후 Place 가 진실의 원천. /upload 가 Place 를 직접 query, dropdown 에 카테고리 chip + 「내가 등록」 뱃지 + KTO 뱃지 + 사진 카운트 표시. 본인 장소 우선 prepend.
- 신기능POST /api/photos · /api/photos/sign — placeId 받음. 내부에서 ensureShadowSpotForPlace 로 spotId 자동 결정. spotId 직접 받기도 옛 호환 유지. Photo.placeId 컬럼도 같이 채움.
- 신기능Photo.spotId NOT NULL → nullable (마이그). spot relation 도 옵셔널 (onDelete: SetNull). Photo.placeId 가 진실의 원천이 됨. db/migration-2026-05-11-photo-spotid-nullable.sql 적용 필요.
- 신기능/spots/new → /places/new 자동 redirect. 옛 NewSpotForm 컴포넌트는 참조용 보존.
- 버그픽스db/wipe-2026-05-11-spots-photos.sql — Spot · Photo · 종속 테이블 (likes·tags·meta·comments·spot_parking·spot_reviews·ai_guides) 일괄 삭제. users·places·categories·kto_landmarks·place_* 보존. atomic transaction.
- 버그픽스v2.28 Place 통합 마이그 진행 중 잔재 — /places/new 는 Place 만 만들고 매칭 Spot 은 안 만들어서 Photo.spotId NOT NULL 제약 때문에 사진 업로드 불가능했던 문제. lib/place/shadowSpot.ts 헬퍼 추출 (ensureShadowSpotForPlace + ensureShadowSpotsForPlaces). categories[0] → Category.slug 매핑 (photo→photo_spot, cafe·restaurant·landmark·lodging 동명, fallback=photo_spot).
- 버그픽스POST /api/places — transaction 안에서 Place 생성 직후 ensureShadowSpotForPlace 호출. 코드 통일.
- 버그픽스/upload 페이지 r3 — 백필 SQL 없이도 동작. 본인 최근 Place 30 건 fetch 후 ensureShadowSpotsForPlaces 로 orphan 들에 lazy 생성. 첫 방문 한 번만 INSERT 발생, 이후엔 매칭만 (idempotent).
- 버그픽스db/migration-v2-28-shadow-spots-backfill.sql — 일괄 처리용 SQL 도 같이 제공 (선택). 운영 DB 에 한 번 돌리면 모든 Place 가 즉시 처리. lazy 생성과 결과는 동일.
- 신기능/places/new — PlaceSearchPicker (네이버 Local POI 이름·주소 검색) 부활. 구 /spots/new 의 인프라 그대로 이식. 자동 디바운스(300ms) + 최대 15 건 결과 + 「지도에서 직접 찍기」 fallback 내장.
- 신기능/places/new — KtoSearchAutocomplete 통합. DB 우선 매칭 + KTO API 보충 (12 관광지·14 문화시설·32 숙박·39 음식점). 선택 시 이름·좌표·주소 + ktoContentId/Type/이미지 자동 채움. KTO contentTypeId 기반 카테고리 자동 추천 (12·14 → landmark, 32 → lodging, 39 → restaurant).
- 신기능POST /api/places — schema 확장. address·externalPlaceIds·ktoContentId·ktoContentTypeId·ktoImageUrls 받기. KTO contentId UNIQUE 충돌 시 409 + 기존 Place 페이지 이동 안내. Place 스키마는 이전부터 컬럼이 있었으나 API 가 받지 않아 「검색해도 출처가 사라지는」 문제 해결.
- 신기능ReceiptPrefillButton + /api/ai/receipt-prefill (신규) — 카페·맛집 카테고리 선택 시 노출. 영수증 사진 → Claude Haiku 4.5 vision OCR → 가맹점 이름·주소·전화·사업자번호·메뉴 미리보기 추출 → 제목·주소·전화·대표 메뉴 자동 채움. 사용자별 1 시간 5 회 한도. 이미지 1200px 자동 리사이즈 + JPEG 85% 압축 ≈ 1 회 ₩30.
- 신기능lib/ai/receiptOcr — prompt + 응답 타입 확장. merchantAddress·merchantPhone·businessNumber 추가 추출 (기존 호출자 영향 X — 옵셔널).
- 개선NewPlaceForm — 카페·맛집 메타 패널 (시설·분위기·대표 메뉴·가격대·편의·예약·주차 등) 옛 /spots/new 에서 이식. 영수증 OCR 결과는 phone·signatureMenu 에 자동 들어감.
- 개선SunInfoCard r6 — 외곽 bg/border 가 mode 별 colored (orange/violet/indigo) 였는데 다크에서 다른 .card 들과 톤 어긋남. 라이트는 모드별 컬러 유지, 다크는 `surface-elev2`/`surface-elev3` 로 통일 (TimeCard·ShadowCard 와 같은 패턴). 모드 정체성은 헤더 아이콘·제목·hint 컬러가 담당.
- 개선SunPhaseColumn (🌅 아침·🌇 저녁) inactive label `dark:text-ink-400` → `dark:text-ink-300` 가독성 보강. active label·value (`dark:text-orange-100`) 와의 대비도 적절히 유지.
- 개선TimeCard·ShadowCard·AstroCard r6 — 다크 모드 secondary text brightening. label (일출 전 블루·1:1 오전 등)·duration (28분·36분)·desc (인물 입체감 등)·sub-time (~05:34)·도움말·정오 12:30 등이 dark:text-ink-300/400 이라 회색 bg 와 대비 부족했음. 일괄 ink-200/300 으로 한 단계씩 brightening. admin 페이지의 「light label · bright value」 톤 매칭.
- 개선ShadowCard 정오 그림자 배율 부가설명 「(피사체 1m → 그림자 32cm)」·「짧음 (한낮 강한 그림자)」 등 dark:text-ink-400 → dark:text-ink-200 로 한 단계 더 밝게 (핵심 데이터 부속 정보라 가독성 우선).
- 개선TimeCard·ShadowCard·AstroCard r5 — 외곽·내부 ring 을 brand/amber/violet 컬러 → `surface-elev3` 중성으로 변경. 다른 .card 들과 톤 통일 (오렌지/앰버 띠가 너무 도드라져서 카드만 분리되어 보였던 문제). 헤더 텍스트와 핵심 숫자만 브랜드 컬러 유지. highlighted 블록은 `brand-400/70`·`amber-400/70` 으로 강조 (full opacity → 70%).
- 개선TimeBlock·ShadowBlock 텍스트 색 가독성 보강 — `dark:text-ink-400` → `dark:text-ink-300` (label·desc), `dark:text-brand-300` → `dark:text-brand-200` (시각 숫자), amber 동일 패턴.
- 버그픽스SunPhaseColumn (일출 시각·방위 카드의 「🌅 아침」·「🌇 저녁」 inner 블록) — 다크 변형이 전무해서 다크 모드에서 흰색/오렌지가 그대로 떠보였음. bg-white/60 → `dark:bg-surface-elev3/60`, active `bg-orange-300/60`·`text-orange-900` → `dark:bg-orange-500/30`·`dark:text-orange-100`, hover·default text 모두 ink 토큰 페어 추가.
- 버그픽스/about — 「만든 사람」 + FAQ 카드의 `dark:bg-surface-elev1` (=body bg) → `dark:bg-surface-elev2` 로 elevation 확보.
- 버그픽스/feedback — FeedbackBoard 카드/입력/필터·정렬 버튼/상태 chip 다크 mode 보강. rejected status, 비공개·내 글·admin chip, 공감 버튼, sort 버튼, empty state, 에러 텍스트 등 누락된 dark: 변형 일괄 추가. 카드 bg `surface-elev1` → `surface-elev2` (page main = `surface-base` 위로 elevation).
- 버그픽스EquipmentStatsCard (스팟 상세 사이드바 「실제 사용 장비」) — 외곽 `dark:bg-surface-elev1` (=body bg, 카드 안 보였음) → `dark:bg-surface-elev2`. BarRow 막대 배경, Stat 칸 배경도 한 단계씩 elevated.
- 버그픽스TimeCard·ShadowCard·AstroCard r4 — 다크 모드에서 카드 컬러가 안 보였던 문제. 외곽 bg 가 `dark:bg-brand/amber/violet-500/10` (10% 틴트) 였고 내부 블록 `dark:bg-surface-elev1` 이 body bg(#171717) 와 동일해서 「카드 구조가 사라진」 모습. 외곽=`dark:bg-surface-elev2`(#262626), 내부 블록=`dark:bg-surface-elev3`(#3F3F46) 로 명확한 elevation 부여. 라이트 모드 (브랜드 50/40 틴트) 는 그대로 유지.
- 개선모든 페이지·shell·footer 의 max-w-7xl 통일 (글 페이지 about·legal·guides 보존). PlaceDetailShell 도 max-w-4xl → max-w-7xl. 본문이 페이지 폭과 동일하게 확장.
- 개선스팟 상세 (/places/[id] PhotoTab) — 「오늘의 출사 시간 (TimeCard)」 + 「그림자 가이드 (ShadowCard)」 한 줄 (md+ grid 2-col, 모바일 세로). 본문 폭 확장으로 두 카드 같이 보임.
- 개선스팟 상세 layout r3 — 좌·우 패널 swap + 좌측 사진 패널 끝에 좋아요·출사시간·그림자·별사진 카드 모두 박힘. SpotInteractive 에 bottomExtra ReactNode prop 추가, PhotoTab 가 4 카드 fragment 전달. 「사진 → 좋아요 → 시간/그림자/별」 흐름이 좌측 column 안에 일관되게.
- 신기능REQ-1 globals.css surface-elev3 라이트·다크 분기 (라이트=#E4E4E7, 다크=#3F3F46) + tailwind.config.ts surface 를 CSS 변수 경유 마이그 (brand 패턴 정합).
- 개선REQ-2 cat-landmark teal — KTO TourAPI 출처 정체성 강조 (라이트 #14B8A6, 다크 #5EEAD4). tokens v1.1.0 동기.
- 개선REQ-8 cat-lodging sky — 휴식·머무름 톤 (라이트 #0EA5E9, 다크 #38BDF8). tokens v1.3.0 동기.
- 신기능REQ-5 /places UX 회복 r3 — 「전체」 chip + single-select + 사진 default + PlaceCard 사진 미리보기 (4:3) + Q9 fallback (카테고리 색 그라데이션 + 큰 emoji). 사진 우선순위 = primaryCategory 기반 분기 — 사진 카테고리는 사용자 업로드 우선 (사진가 작품 정체성), 관광지·카페·맛집·숙박·행사는 KTO 공식 사진 우선 (관광공사 검수). 같은 이름 중복 Place (광한루원 id 6 사용자 vs id 17 KTO) 도 자연스럽게 분리 표시.
- 버그픽스PlaceCard 사진 미리보기가 카테고리 toggle 시 다른 사진으로 변동되던 사고. Prisma orderBy 가 likeCount/createdAt 만으로 정렬 시 같은 값이면 stable order X (fetch 마다 다름). secondary tie-breaker (id desc) 추가로 stable.
- 개선REQ-9 meta description sync — Hero 「같은 빛을 다시 찾는 곳」 통일 (title·og·twitter 모두). 사용자 첫 인상 + SEO juice 정합.
- 버그픽스5/7 백업본과 비교해서 발견한 진짜 원인. 사이드바의 모바일 drawer 처리를 위해 박은 「min-w-[140px] max-w-[220px]」가 base class (no breakpoint) 라 데스크톱에도 적용. md:w-[48px] 박아도 min-width 가 우선 → 실제 사이드바 폭 = 140px (한 시간 동안 헌이 정확히 진단한 「48px 이 아닌것처럼 보임」).
- 버그픽스fix: md:min-w-0 md:max-w-none 추가로 base 의 min/max 무력화. 데스크톱 폭 = md:w-[72px] (5/7 백업과 동일), hover 시 220px 펼침.
- 개선r9 의 nav 변경 (w-12 h-12 정사각) 되돌림. 5/7 백업과 동일한 nav 구조 (flex gap-3 px-2 py-2.5) 복원.
- 개선r7~r8 의 디버그 (로그아웃 / 하단 div 일시 제거) 모두 복원. 사이드바 정상 5/7 형태 + 추가 기능 (NotificationBell, ViewToggle, LogoutButton, ChangelogIndicator) 그대로.
- 버그픽스한 시간 헛고생 후 헌이 정확히 진단: 「사이드바 안에 hidden 처리 안 된 element 가 폭을 차지해서 빈 공간 생김」. styled-jsx 의 :global(.sidebar-label) display: none 이 jsx-hash 처리 때문에 적용 안 되고 있던 것. 사이드바 안의 라벨 (홈·지도·갤러리 등 18+ 개) 이 wrapping 으로 보이지 않을 뿐 폭 차지.
- 버그픽스fix: sidebar-label CSS 를 globals.css 로 이동 (display: none !important). styled-jsx scope 우회. r4 의 가운데 정렬 + r5 의 max-w-screen-2xl 은 잘못 짚은 fix 라 둘 다 제거.
- 버그픽스사이드바 collapsed 폭 변경이 production 에 반영 안 되던 사고. 「md:w-[48px] md:hover:w-[220px]」 arbitrary value 가 Tailwind JIT 에서 가끔 누락 (특히 빌드 캐시·CSS purge 케이스). 표준 spacing token 「md:w-12 md:hover:w-56」 (48 / 224 px) 로 교체. 무조건 인식.
- 신기능POST /api/admin/ranking/promote — admin 이 특정 회원에 tier 직접 부여 (점수 무시). 명예 단골·시즌 챔피언·부정 사용자 강등 등 운영 도구. user_tier_history 에 trigger='admin_manual' 적재 + audit_logs 기록.
- 신기능/admin/ranking 「⚙ 특정 회원 등급 강제 부여」 폼 — 회원 ID + tier 선택 + 사유 메모. 적용 시 「↑ 승급 / ↓ 강등 완료」 결과 패널 + router.refresh() 로 분포 SSR 재갱신.
- 버그픽스사이드바 collapsed 폭 72 → 48 px 로 좁힘 (헌 명시 후 추가 축소) + overflow-x-hidden + nav·link·하단 padding 도 px-2 → px-1.5 / px-2 → px-1 로 동시 축소. 본문 영역 ↑ 24 px 추가 확보.
- 신기능/users/[id]/points 헤더 — TierCrown (full) + 다음 등급까지 진척도 게이지 + 시즌·마지막 갱신 시각. 본인+admin 만 접근 (기존 그대로).
- 신기능「👑 등급 변동 내역」 섹션 — 최근 20 건 timeline. ↑ 승급 / ↓ 강등 배지 + tier 변동 + 점수 변동 + 시각 + trigger. row 0 일 때 「가입 시 Spark 시작」 empty state 안내.
- 개선lib/ranking/history.ts — logTierChange/logTierChanges (createMany 일괄) + fetchUserTierHistory helper. recompute API + cron 양쪽에서 direction !== 'same' 일 때만 적재 (점수만 변동은 노이즈 skip).
- 개선/users/[id] 프로필 헤더 진척도 게이지 아래 「📊 점수 내역·등급 변동 자세히 →」 link 추가 (본인만 노출). 기존 작은 텍스트 link 보다 눈에 띄게 강화.
- 신기능/api/cron/recompute-tiers — 매주 일요일 03:00 KST 자동 tier 재계산. CRON_SECRET 인증. vercel.json schedule 「0 18 * * 6」 (= 토 18:00 UTC = 일 03:00 KST). 헌 결정 § 18.2 Q3 = 주 1 회 정합.
- 신기능TierCrown 컴포넌트 신설 — variant=mini (댓글 옆 chip) / full (프로필 헤더 badge), hideSpark 옵션. 등급별 색·이모지·ring. v2.38 § 2.3 「차등 화려함」 Phase 1 (4 단계) 정합. Phase 3 platinum/diamond/legend 진입 시 같은 컴포넌트로 확장.
- 신기능댓글 영역 (CommentSection·LightboxCommentPanel) 닉네임 옆 TierCrown 표시. tier 있으면 TierCrown, 없으면 LevelChip fallback. /api/photos/[id]/comments + /photos/[id] SSR 둘 다 user.tier select 추가.
- 신기능/users/[id] 프로필 헤더에 TierCrown (full) + 「다음 등급까지 진척도」 게이지 바. v2.38 § 15.1 Visible Progress 정합 — 「Bronze → Silver · 766 점 남음」 + 진척도 바. Gold 도달 시 Phase 1 최고 등급 안내.
- 개선/users/[id] 페이지 fetch 에 tier·tierScore·tierUpdatedAt 추가. nextTierGap(tier, score, cutoffs) 호출로 진척도 산출 (admin 편집 cutoff 자동 반영).
- 신기능/admin/ranking 페이지에 「⚙ cutoff 편집」 폼 추가. 4 등급 (Bronze·Silver·Gold) × 2 값 (floor·percentile) 박스 입력 + 저장. 저장 시 60s memory cache 무효화 + audit_log 기록. 다음 recompute 부터 즉시 반영.
- 신기능PUT/GET /api/admin/ranking/config — systemConfig 의 ranking_cutoffs key (JSONB) 에 upsert. 정합성 (floor 는 bronze<silver<gold, percentile 은 gold<silver<bronze) 자동 검증.
- 개선lib/ranking/tier.ts computeCutoffs(scores, config?) 시그니처 변경 — DB config 우선, 없으면 DEFAULT_TIER_CUTOFFS fallback. 기존 TIER_FLOORS·TIER_PERCENTILE_CUTOFFS alias 유지 (호환).
- 개선lib/systemConfig.ts 에 ranking_cutoffs key + RankingCutoffsConfig 타입 추가. spot·place 자동 승인 패턴 그대로 reuse — DB 마이그 0.
- 개선recompute API + admin SSR 페이지 모두 getConfig('ranking_cutoffs') 호출. cutoff 시뮬레이션 표가 admin 편집한 값으로 즉시 갱신.
- 신기능/admin/ranking 신설 — admin 메인에서 「📊 통합 활동 등급」 카드 클릭 진입. F12 Console 안 거치고 dryRun 시뮬레이션·실제 적용 버튼으로 한 번에. 실제 적용 시 확인 모달 + router.refresh() 로 분포 SSR 재갱신.
- 신기능현재 분포 SSR 표시 — 회원 N 명 + Spark/Bronze/Silver/Gold 4 카드 (각 카운트·avg·max 점수). Top 10 활동 점수 회원 테이블. 마지막 recompute 시각 헤더 노출.
- 신기능cutoff 시뮬레이션 — 「지금 recompute 하면 어떻게 적용될지」 미리보기 (gold/silver/bronze 진입 점수 + floor + percentile).
- 신기능결과 패널 — dryRun/실제 응답 그대로 시각화 (분포 4 박스 + 승급/강등 카운트 + cutoff 3 개 + 변동 회원 샘플 details).
- 개선/admin 메인 「시스템 설정」 섹션에 진입점 카드 추가 (KTO Landmark 옆). v2.38 배지 + 보라색 (사이트 v2.38 신규 색상 정합).
- 신기능User 모델에 tier (UserTier enum) + tierScore + tierUpdatedAt + tierSeason 추가. Phase 1 = 4 단계만 (Platinum·Diamond·Legend 는 Phase 3 M-5~M-6 enum ALTER 로 확장).
- 신기능lib/ranking/tier.ts 신설 — 「상위 % 컷」 (LoL 모델) percentile cutoff 산출 + assignTier + nextTierGap. Bronze 50%·Silver 25%·Gold 10% + 절대 floor 임계 (회원 시드 단계 어뷰징 방지).
- 신기능lib/ranking/score.ts 신설 — Phase 1 = users.totalPoints 직결 (v2.5 PointTransaction 합계 캐시 reuse). 카테고리별 분리는 Phase 2 (M-3+) 에서 user_category_stats.
- 신기능POST /api/admin/ranking/recompute — admin 수동 트리거 (dryRun 옵션 + 분포·컷오프·승급/강등 응답). W2 에서 vercel.json 주 1 회 cron 박을 예정.
- 개선기존 User.level (Int 1~6, v1.2 호환) 은 deprecated 주석만 박고 보존. 신규 코드는 user.tier 사용.
- 버그픽스일괄 보강 클릭 시 「Failed to execute 'json' on 'Response': Unexpected end of JSON input」 에러 — Vercel Hobby plan 60 초 한계 초과로 빈 응답 반환된 사고. maxDuration 300 → 60. limit max 50 → 15 (3 호출 × ~1 초 × 15 + SLEEP 80ms ≈ 50 초 안전치). default 20 → 10.
- 버그픽스시드 API 도 동일 — maxDuration 300 → 60. withDetail=true 시 numOfRows default 50 → 15 (안내 박스에 「15 이하 권장」 명시). withDetail=false 면 200 개도 OK (areaBasedList 만 호출이라 빠름).
- 개선isGalleryEmpty → isGalleryShallow (gallery < 2) 확장 — firstimage 1 장만 있는 Place 도 일괄 보강 대상에 포함. 144 개 관광지 같이 「갤러리 1 장」 케이스 자동 재처리.
- 개선안내 박스 갱신 — 「상세도 가져오기 ON 이면 15 이하 권장」 명시. admin 이 timeout 사고 미리 회피.
- 버그픽스bulk-refresh-kto 의 onlyEmpty 필터가 cafeMeta.openHours 등 meta 만 체크해서 「openHours 채워진 음식점은 모두 skip → candidates=50 processed=0」 결과. ktoImageUrls.gallery 가 비어있어도 대상에서 제외되던 사고 (헌 보고). 이제 갤러리 0 장이면 무조건 대상에 포함.
- 개선필터 우선순위 — 갤러리 비어있으면 무조건 대상 (사진 보강 우선) → meta 비어있어도 대상. take 도 limit×2 → ×3 으로 여유 ↑ (필터 후 limit 만큼 확보).
- 버그픽스ingestKtoImport 의 existing+changed 분기가 ktoImport 만 갱신하고 promote 된 Place 는 옛 데이터 그대로 두던 사고. 시드 재실행해도 「강남집」 같은 옛 Place 의 ktoImageUrls 가 안 바뀌어서 갤러리 사진 1 장 그대로였음. 이제 existing.promotedToPlaceId 있으면 Place.ktoImageUrls + address 도 동기화.
- 개선extractKtoImageUrls·extractAddress 헬퍼 분리 — ingestKtoImport·promoteKtoImport 에서 공용. 신규 promote + 기존 갱신 둘 다 같은 로직 사용. 코드 간결·동작 일관.
- 개선address 갱신 정책 — 회원이 정정한 거 보존 (기존 address 비어있을 때만 채움). KTO source 의 ktoImageUrls 는 항상 갱신 (KTO 가 진실의 원천).
- 개선「상세도 가져오기」 default true — 시드 한 번에 detailCommon·detailIntro·detailImage 모두 자동 받음 → 갤러리 사진 즉시 채워짐. 「갤러리 자동 채워지기 안 됨」 사고의 가장 흔한 원인 (체크 빠뜨림) 차단.
- 개선numOfRows default 200 → 50 — 한 번 클릭 = 50 개 + detail × 4 호출 ~30~60 초 (200 개 × 4 = 너무 길음). 차례로 pageNo 1·2·3·4 클릭하면 200 개 안전.
- 개선옵션 안내 박스 신규 — numOfRows·pageNo·전체 스캔·상세도 가져오기 각각의 의미를 시드 버튼 위에 ul 로 명시. admin 직관 ↑.
- 신기능시드 「상세도 가져오기」 옵션이 fetchDetailImage 도 호출 — withDetail=true 시 detailCommon·detailIntro 와 함께 detailImages 도 병렬 fetch. KtoImport.rawData 에 detailImages 박힘. 시드 후 자동으로 갤러리 사진 받힘 (이전엔 「🔄 정보 보강」 클릭 필수).
- 신기능ingestKtoImport (시드 promote) 가 detailImages → ktoImageUrls.gallery 자동 매핑. detailCommon.firstimage 도 fallback. 시드 즉시 ktoImageUrls 채워져서 사이트 진입 시 갤러리 즉시 노출.
- 신기능apply-kto-fields (「⚙ 필드 선택」 → 「✓ 선택 적용」) 도 fetchDetailImage 호출 + ktoImageUrls 갱신. admin 이 「적용」 한 번 누를 때마다 갤러리 최신 사진 동기화.
- 개선갤러리 갱신 경로 4 곳 모두 일관됨 — 시드+withDetail / 「🔄 정보 보강」 / 일괄 보강 / 「⚙ 필드 선택」 적용 어느 흐름이든 ktoImageUrls.gallery 최신 유지.
- 신기능Place.ktoImageUrls JSONB 컬럼 신규 (스키마 + migration-v2-35-place-kto-images.sql) — { firstimage, firstimage2, gallery: [{ url, smallUrl, name }] }. 모든 카테고리 공통, 회원 사진 없을 때 fallback. 마이그 SQL 에 백필 (kto_imports.raw_data → ktoImageUrls).
- 신기능fetchDetailImage 통합 — refresh-kto-meta·bulk-refresh-kto·apply-kto-fields 가 detailImage2 API 도 병렬 호출. originimgurl·smallimageurl·imgname 추출 → ktoImageUrls.gallery 배열 박음. ingestKtoImport (시드 promote) 시 areaBasedList 의 firstimage·firstimage2 도 자동 박음.
- 신기능components/place/KtoImageGallery 신규 — 「📷 KTO 공식 사진」 섹션. 메인 사진 (16:9) + 「갤러리 펼치기」 토글 → 썸네일 그리드 (4×N). 클릭 시 메인 교체. 모든 패널 (Cafe·Restaurant·Landmark·Lodging) 상단에 박힘.
- 개선정책 부합 — 「출력은 핵심만」 (메인 1 장만 보임), 「데이터는 raw 다」 (모든 사진 ktoImageUrls.gallery 보존). 회원 사진 0 인 KTO Place 도 빈 페이지 X — KTO 공식 사진으로 첫 인상 채움.
- 버그픽스apply-kto-fields API 가 KTO 39 음식점 + 'restaurant' 카테고리 일 때 cafeMeta 매핑 결과를 restaurantMeta 에도 mirror — openHours·closedDays·hasParking·contact·overview·signatureMenu·ktoRaw·_ktoFieldSelection 모두 동기화. 「전화·소개」 가 사이트에 안 보이던 문제 해결.
- 버그픽스mapKtoFoodToRestaurantMeta — contact (infocenterfood→phone, homepage→website) + overview (detailCommon.overview) 매핑 추가. cuisine 이 raw cat3 코드 (예 「A05020100」) 면 자동 비움. refresh API 흐름도 동일하게 풍부 매핑.
- 버그픽스RestaurantPanel UI 갱신 — 전화·홈페이지·소개 표시 추가 (restaurantMeta 에 없으면 cafeMeta fallback). 「요리」 가 영문+숫자 raw 코드 패턴이면 비표시. 메뉴 섹션을 ⭐ 시그니처 + 일반 분리 표시 (cafeMeta.menu 통합).
- 신기능POST /api/admin/places/bulk-refresh-kto — contentTypeId 별 KTO Place 일괄 detail fetch + meta 매핑. limit (기본 20, max 50) · onlyEmpty (기본 true, meta 채워진 Place skip) · dryRun. KTO API 부담 ↓ (한 번에 N 개).
- 신기능/admin/queue/kto-import 「🔄 KTO 일괄 보강」 섹션 신규 — 5 contentType 별 색상 버튼. 한 번 처리 N 개 입력·비어있는 것만 토글. 결과 인라인 표시 (candidates·processed·updated·failed). 한도 도달 시 「다음 N 개 보강」 안내.
- 버그픽스RestaurantPanel KTO 박스에 admin 「⚙ 필드 선택」 + 「🔄 KTO 정보 보강」 버튼 누락 fix — CafePanel·LandmarkPanel·LodgingPanel 과 동일 패턴.
- 개선이제 강문달카페 같은 KTO Place 200 개를 한 번 클릭으로 모두 detail 보강 가능. 관광지·음식점·문화·숙박 각각 일괄 처리 → admin 부담 ↓.
- 신기능lib/place/ktoFieldCatalog.ts 신규 — 5 contentType (12·14·15·32·39) 별 필드 카탈로그. label·group (operation·contact·menu·facility·guide·schedule)·recommended·mapsTo (어느 meta 의 어느 필드로 매핑되는지). 39 음식점 17 필드, 12 관광지 16, 14 문화시설 12, 32 숙박 26, 15 행사 18 정의.
- 신기능/admin/places/[id]/kto-fields 페이지 신규 — KTO API raw 응답 (detailIntro+detailCommon) 의 모든 필드를 group 별 묶어 체크박스 표시. 각 필드 옆에 raw 값 미리보기 + 매핑 대상 표시 (예: → cafeMeta.openHours). 「⭐ 추천만」「전체」「모두 해제」 버튼. 카탈로그 외 raw 필드도 「참고용」 으로 별도 노출.
- 신기능POST /api/admin/places/[id]/apply-kto-fields — selectedFields 받아서 매핑 재실행. 체크된 필드만 cafeMeta·landmarkMeta·lodgingMeta 등에 박힘. ktoRaw 는 통째 보관 (raw 보존). selection 자체도 _ktoFieldSelection 에 박아 다음 진입 시 default. refetch 옵션 (KTO API 재호출 vs ktoRaw 캐시).
- 신기능각 카테고리 패널 (CafePanel·LandmarkPanel·LodgingPanel) KTO 박스에 admin 「⚙ 필드 선택」 링크 + 「🔄 KTO 정보 보강」 버튼 둘 다. 「보강」 = 자동 추천 매핑 / 「필드 선택」 = 미세 조정.
- 개선정책 부합 — 「출력은 핵심만, 데이터는 raw 다」. admin 이 noisy 필드 (heritage1·useseason 같은) 자체 비표시 가능. 새 필드 추가 시 카탈로그만 갱신 (마이그 X).
- 신기능Place 모델에 address VARCHAR(300) 컬럼 신규. 도로명/지번 주소 — KTO addr1+addr2 자동 매핑 + 회원 등록 Place 도 입력 권장. migration-v2-35-place-address.sql (raw SQL) — ALTER TABLE + 기존 KTO Place 백필 (kto_imports.raw_data → places.address).
- 신기능PlaceDetailShell 헤더에 「📍 주소」 표시 + 「복사」 버튼. 좌표 (37.79·128.91) 옆 지번/도로명 주소 노출 — 「강원특별자치도 강릉시 강동면 강문해변길 …」 같이.
- 신기능ingestKtoImport (promote 시) addr1+addr2 결합 → places.address 자동 입력. KtoImport.rawData 의 list 또는 list 안 의 list 모두 처리 (withDetail 시드 호환).
- 신기능/api/admin/places/[id]/refresh-kto-meta — address 비어있으면 detailCommon.addr1+addr2 채움. admin 「🔄 KTO 정보 보강」 한 번이면 cafe_meta·landmark_meta·lodging_meta 와 함께 address 도 백필.
- 신기능lib/place/ktoMappings.ts 신규 — KTO 12 관광지·14 문화시설 → LandmarkMeta 매핑 (usetime·restdate·parking·infocenter·overview·homepage·admission). 32 숙박 → LodgingMeta (roomcount·scalelodging·infocenterlodging·reservationurl). 회원 source='user' 영역 보존 + 매핑 안 된 raw 는 ktoRaw 에 통째 보관 (미래 활용 위해).
- 신기능POST /api/admin/places/[id]/refresh-kto-meta 4 카테고리 분기 — cafe·restaurant·landmark·lodging 모두 매핑. 한 Place 가 여러 카테고리면 모두 갱신. event 는 별도 테이블이라 후속.
- 신기능LandmarkPanel·LodgingPanel KTO 베이스 박스에 admin 「🔄 KTO 정보 보강」 버튼 (cafe 와 동일 패턴). KTO source Place 에서 클릭 한 번으로 detailIntro·detailCommon fetch + meta 자동 채움.
- 신기능시드 API 「상세도 가져오기」 옵션 (withDetail) — ON 시 areaBasedList + detailCommon + detailIntro 다 받아 KtoImport.rawData 에 list+common+intro 통합 저장. 200 개 × 3 호출 ~2~3 분. UI 「출력은 핵심만, 데이터는 다」 정책 부합. maxDuration 60s → 300s.
- 신기능lib/place/ktoCafeMapping.ts 신규 — KTO 39 detailIntro/detailCommon 응답 → cafe_meta·restaurant_meta 매핑. opentimefood→openHours·restdatefood→closedDays·parkingfood→hasParking·infocenterfood→contact.phone·firstmenu→signature 메뉴·treatmenu→menu 배열·overview→vibe. HTML 태그 정리 + 「있음/없음」 boolean 파싱 + 휴무일 추출.
- 신기능POST /api/admin/places/[id]/refresh-kto-meta — Place 의 ktoContentId·ktoContentTypeId 로 detailIntro·detailCommon 병렬 fetch + 매핑 + cafe_meta·restaurant_meta UPDATE. 회원 source='user' 영역은 보존 (덮어쓰기 X).
- 신기능CafePanel 「KTO 베이스 정보」 amber 박스 우측에 admin 「🔄 KTO 정보 보강」 버튼 — 클릭 시 detail fetch + 새로고침. 강문달카페 같은 KTO 음식점 promote 후 비어있던 cafe_meta 즉시 보강 가능.
- 개선회원이 메뉴판·영수증 OCR 로 채운 메뉴는 보존 (hasUserMenu 체크). KTO 가 갖고 있는 firstmenu·treatmenu 는 「KTO 베이스 정보」 로만, 회원 검증 위에 덮어쓰기 X.
- 신기능POST /api/admin/kto-imports/seed 신규 — admin 권한. body: contentTypeId·numOfRows (기본 200, 최대 500)·pageNo·since·scanAll. KTO areaBasedList → ingestKtoImport → kto_imports staging 적재. 응답: fetched·imported·changed·failed·errors·durationMs.
- 신기능/admin/queue/kto-import 상단에 「🌱 KTO 시드 가져오기」 섹션 — 5 종 버튼 (관광지·문화시설·행사·숙박·음식점) 색상 구분. numOfRows·pageNo·전체 스캔 옵션. 클릭 시 진행 상태 + 결과 요약 (✅ fetched/imported/changed/failed) 인라인 표시. 큐 자동 새로고침.
- 개선cron 자동 일배치 (refresh-landmarks·kto-import) 는 그대로 유지. admin 이 시간 날 때 추가 보강 (예: 신규 contentTypeId, 특정 since 재스캔). 성공·실패 즉시 확인 가능 — Vercel cron log 안 봐도 됨.
- 신기능ReceiptVisit·UserPlaceBadge prisma 모델 신규 + raw SQL 마이그 (migration-v2-35-receipt-visits.sql). 영수증 인증 방문 무기한 보관 (5 년 후 익명화). card_last4_hash sha256(EVENT_TENANT_SALT) — PII 분리.
- 신기능POST /api/ai/receipt-ocr 보강 — mode=user_activity·place_menu 모두 receipt_visits INSERT. confidence < 0.7 면 verified=false (admin 검수 큐). placeId 필수 (방문 기록 위해).
- 신기능lib/place/receiptVisit.ts 신규 — recordReceiptVisit 동기 트랜잭션. INSERT 직후 같은 user+place 카운트 query → 5/15/30/50 임계 도달 시 UserPlaceBadge UPSERT. REGULAR_50 은 verified=false (admin 검수). 응답에 newBadges (UI 토스트용).
- 신기능GET /api/places/[id]/visit-stats — 방문자 통계 (totalVisits·uniqueVisitors·byKind). PlaceVisitStatsCard 컴포넌트가 CafePanel 에 박혀 자동 fetch. 비어있으면 자체 hide. 가격 표시 X (개별 회원 PII 분리).
- 신기능GET /api/profile/receipt-stats + ReceiptStatsSection 컴포넌트 — /profile/stats § 외식·카페 신규. 누적 방문·다녀본 곳·이번 달·월 평균·요일 막대·시간대 24h·단골 Top 5. 비어있으면 「영수증 첨부 시작」 CTA.
- 개선BadgeKind 4 단계 — REGULAR_5 (☕ 단골)·REGULAR_15 (⭐ 단골)·REGULAR_30 (💛 마니아)·REGULAR_50 (👑 명예 단골). 한 회원이 여러 단계 가질 수 있고 UI 는 가장 높은 단계만 표시. v2.31 § 0 결정 7 의 30 뱃지에 단골 4 추가 자리.
- 개선v2.35 §4.11 W1~W6 (활동 점수 ×3·EVIDENCE 신호) 는 hook 위치 확보 단계. 점수 공식 본격 적용은 v2.31 마일스톤 진입 시. receipt API 응답의 newBadges 가 점수 가산 hook 위치.
- 신기능메뉴판 OCR 50 개 한도 (Q1) — menuOcr.ts maxMenus 30→50, max_tokens 2048→3072. 시스템 프롬프트 「최대 50 개」. 모달 안내 「최대 50 개까지」 명시. 비용 ~₩50~80/장.
- 신기능버튼 라벨·색상 갱신 (Q2) — 「📋 메뉴판」 → 「📋 메뉴판 촬영하기」 brand 색, 「🧾 영수증」 → 「🧾 영수증 촬영하기」 amber 색. 직관적 동사형 + 시각 구분.
- 신기능마지막 검증자 표시 — CafeMeta.menuUpdatedBy 신규 (userId·nickname·avatarUrl·at). commit API 가 회원 정보 자동 박음. 메뉴 헤더에 「📅 신선도 · 헌 검증」 표기 + 아바타.
- 신기능이력 모달 (Q4) — [📜 이력] 버튼 → MenuRevisionHistoryModal. 시간순, 갱신자·날짜·source(메뉴판/영수증)·요약 (✅↗↘🆕❓🚫). 행 클릭 expand → 그 시점 메뉴 스냅샷. 「더 보기」 → /api/places/[id]/menu/revisions cursor pagination.
- 신기능메뉴 신고 시스템 (Q5·Q6) — PlaceReportKind 4 종 확장 (menu_price_wrong·menu_not_exist·menu_name_wrong·menu_outdated) + place_reports.menu_name 컬럼. POST /api/places/[id]/menu/report. 모달 안내 「3 회 누적 시 자동 검수」.
- 신기능자동 「⚠ 정확성 의심」 배지 — cafe_meta.menuReportCounts 메뉴별 누적 카운트. 3 회 도달 시 flagged=true → CafePanel 메뉴 행 옆 amber 배지. admin 검수 큐에 자동 표시.
- 신기능신고 버튼 (Q7) — 메뉴 행 hover (PC) / 항상 노출 (모바일) 「⚠」 작은 아이콘. 클릭 → MenuReportModal. 4 종 라디오 + 기타 자유 입력. 비로그인도 IP 기반 신고 가능.
- 개선prisma schema MenuRevision 모델 + Place·User inverse relation. migration-v2-35-menu-revisions.sql (raw SQL · docker cp + psql -f 패턴, db push X).
- 신기능MenuOcrUploader source prop 추가 — 'menu' (메뉴판 OCR) / 'receipt' (영수증 OCR). 동일 검토 흐름 (✅↗🆕❓ 라벨), 라벨·아이콘만 분기. CafePanel 메뉴 섹션 헤더에 「📋 메뉴판」 + 「🧾 영수증」 두 버튼.
- 신기능POST /api/ai/receipt-ocr mode=place_menu 일 때 mergedPreview·summary·menuUpdatedAt 반환 — menu-ocr 와 동일 응답 구조. 클라이언트 검토 화면 일관성. mergeMenu 호출로 신선도 4 층 동일 적용 (lastSeenAt·priceHistory).
- 개선메뉴 등록 권한 완화 — admin·작성자만 → active 로그인 회원 누구나 (KTO 메타는 작성자만). v2.35 §4.9 Q4 「회원 변경 즉시 노출」 정책. UI (CafePanel) 와 API (/api/places/[id]/menu/commit) 동시 갱신. 영업 분쟁 시 신고로 회수.
- 버그픽스메뉴판 버튼이 모바일에서 안 보이던 사고 — Place.createdBy 가 null 이거나 회원 user_id 와 다르면 권한 없어서 hidden 이었음. 권한 완화로 로그인 회원 누구나 보임.
- 신기능components/layout/SidebarContext.tsx 신규 — 모바일 drawer open state. ESC 키 닫기 + body scroll lock + pathname 전환 시 자동 닫기. useSidebar 훅으로 어디서든 접근.
- 신기능DesktopSidebar 모바일 drawer 모드 — md 미만에선 fixed inset-y-0 left-0 z-[200] + transform translate-x. 평소 -translate-x-full (hidden), open=true 시 translate-x-0 슬라이드 in. width 80vw max 300px. 우측 상단 X 닫기 버튼 (md:hidden). 데스크톱은 기존 sticky 72px → hover 220px 그대로.
- 신기능components/layout/SidebarBackdrop.tsx 신규 — 모바일 drawer 열렸을 때 검은 반투명 backdrop. 탭하면 close. md 이상에선 hidden (사이드바 sticky 라 backdrop 불필요).
- 신기능components/layout/SidebarToggleButton.tsx 신규 — 햄버거 ☰ 버튼. MobileMiniHeader 좌측 끝 (로고 옆) 에 박힘. open 상태 aria-expanded 토글.
- 개선사이드바 라벨 CSS 갱신 — 모바일 drawer 펼침 상태에선 라벨 항상 노출. 데스크톱은 hover 시만 (기존 동작). :global() 셀렉터로 모든 sidebar-label 일괄 적용.
- 개선ViewToggle 위치 이동 — SiteFooter 에서 제거 → DesktopSidebar 의 테마 토글 행 밑으로. compact prop 추가 (사이드바용 짧은 라벨 「💻 PC 보기」). 터치 디바이스만 노출 (matchMedia(pointer: coarse)) — 마우스 PC 사용자에겐 자동 hide. md:hidden 클래스 제거.
- 개선layout.tsx ThemeProvider 안에 SidebarProvider wrap. SidebarBackdrop 한 자리 박음. 닫기 4 트리거 (X 버튼·backdrop 탭·ESC 키·페이지 전환) 모두 동작.
- 버그픽스Next.js layout 의 viewport export 가 client-side navigation 마다 head 에 다시 박혀 desktop 모드 토글이 풀리던 사고. usePathname 으로 pathname 변경 감지 → applyViewport 재적용.
- 버그픽스추가 안전망 — desktop 모드일 때 MutationObserver 가 head 의 viewport meta content 변경을 감시 → 외부에서 모바일로 갱신되면 즉시 1280px 로 복구. requestAnimationFrame 으로 무한 루프 방지.
- 신기능components/layout/ViewToggle.tsx 신규 — 모바일 viewport meta content 동적 갱신 (width=1280 ↔ width=device-width). localStorage 'view-mode' 박아 다음 방문 자동 적용. 데스크톱 (md 이상) 에서는 자동 숨김 (PC 사용자 노출 X).
- 신기능SiteFooter 하단 줄에 토글 박음 — 모든 페이지 모바일에서 우측 하단 「💻 PC 버전으로 보기」 작은 버튼. PC 모드 진입 시 라벨 「📱 모바일 버전으로」 로 토글. 「Made with…」 텍스트는 sm 이상에서만 노출 (모바일 footer 가벼움).
- 개선hydration safe — SSR 첫 렌더는 mobile, useEffect 에서 localStorage 읽고 desktop 으로 보정. localStorage 접근 실패 (사파리 시크릿) 도 graceful skip.
- 신기능POST /api/places/[id]/menu/commit — 회원이 검토 화면에서 수정한 메뉴를 cafe_meta.menu 에 박는 확정 API. canEditMeta 권한 (작성자·admin, source=kto 면 admin 만). sanitizeMenuForPersist 로 changeKind 제거. menuUpdatedAt = now 자동 갱신.
- 신기능components/place/MenuOcrUploader.tsx 신규 — 모달 형태. 파일 선택·드래그 → 1200px 리사이즈 (canvas) → /api/ai/menu-ocr → 검토 화면 (✅↗🆕❓ 라벨, 가격 변동 박스, missed 단순 누락/단종 결정) → /api/places/[id]/menu/commit. ESC 닫기·backdrop 클릭 닫기. 한도 표시 (24h N/3 사용).
- 신기능CafePanel 「📋 메뉴판 업로드」 버튼 — 작성자·admin 에게만 노출. 메뉴 섹션 헤더 + 빈 상태 양쪽. 클릭 시 MenuOcrUploader 모달. 확정 후 reload 로 새 메뉴 표시.
- 개선PlaceDetailShell currentUserId·isAdmin 을 TabContent → CafePanel·RestaurantPanel 로 prop drilling. RestaurantPanel 은 props 받기만 (TODO v2.35 Step 3 에서 cafe 70% 재사용).
- 개선v2.35 §4.9 W2 = UI · commit 완료. 다음 = W3 (회원 일 5 회 한도 — User 컬럼 마이그) + 일배치 cron (단종 hide·시즌 토글) + RestaurantPanel 재사용 (Step 3).
- 신기능POST /api/ai/menu-ocr — Claude Haiku 4.5 vision 으로 카페·맛집 메뉴판 사진 OCR. 메뉴 이름·가격·시그니처·카테고리 (coffee/tea/dessert/food/etc) 자동 추출. 최대 30 개 (Q1=a). confidence < 0.5 면 「메뉴판 아님」 안내. base64 ≤ 2.5MB.
- 신기능POST /api/ai/receipt-ocr — 영수증 사진 OCR. menus·totalPrice·date·cardLast4·merchantName 추출. mode=place_menu (Place 메뉴 등록) / user_activity (본인 활동 점수, v2.31) 분기. base64 ≤ 2MB.
- 신기능lib/place/menuMerge — 자동 머지 로직. 새 OCR ↔ 기존 menu 이름 매칭 (Levenshtein ≤ 2, 짧은 이름 1) → lastSeenAt 갱신·priceHistory push·신규 추가·missedCount 트래킹·3 회 누락 시 hiddenAt (자동 hide). isCurrentlySeasonal MM-DD 처리 (해 넘김 포함). filterVisibleMenu·freshnessLabel 헬퍼.
- 신기능Place 일 3 회 한도 (Q3=a) — cafe_meta.ocrLog 배열 (마이그 X). 30 일 retention 자동 정리. 메뉴판·영수증 합산. 한도 초과 시 nextAvailableAt 안내. 회원 일 5 회 한도는 W2 (User 컬럼 추가 필요).
- 개선CafePanel 메뉴 섹션 신선도 배지 — menuUpdatedAt 기준 31~90 일 회색·91~180 일 amber·>180 일 「갱신 신고 권장」. 단종 hiddenAt 메뉴·시즌 밖 메뉴 자동 비표시. UI 헬퍼 인라인 (lib import 회피).
- 신기능CafePanel v2.35 §3.4 확장 — 창문 방향 (8 방위 자동 라벨), 창가/총/야외 자리 수, 자연광 시간·추천 자리, 자체 로스팅·원두 정보, 디저트/차/반려 친화, 콘센트 수·자리 시간 제한·소음 등급, 1인 평균가, 인스타그램·전화 연락 표시.
- 신기능촬영 정책 섹션 신규 — 인테리어/음식/다른 손님/플래시/삼각대 5 항목 한눈에. 영업장 분쟁 회피 정책 (와이파이·화장실 비번 비표시) 안내 카피 하단 박제.
- 신기능메뉴 — 시그니처 ⭐ 우선 분리 표시 + 일반 메뉴. 가격·설명 동시. 영수증 OCR 결과로 자동 등록 가능 (§4.4 — 후속 마일스톤).
- 신기능AI 자리 빛 가이드 cache 표시 — meta.cafe.aiLightGuide 박혀있으면 amber 박스로 「✨ AI 자리 빛 가이드」 + 본문 + 생성일 표기. 생성 UI·API 는 후속 마일스톤 (§4.2).
- 개선lib/place/types.ts 확장 — VenueBusinessHours·VenueContact·VenueAccess·VenueSeats·VenuePhotographyPolicy·AiGuideCache·ReceiptOcrResult·FoodVenueSharedMeta 신규. CafeMeta 가 v2.35 §3.4 의 풍부 필드 옵셔널로 흡수, 기존 minimal 동작 유지.
- 신기능docs/AR_BETA_ANNOUNCEMENT.md 신규 — 사진가 모집 5/16 직전 안내 한 페이지. 사용법 3 단계 + 알려진 한계 5 가지 + 피드백 채널 + Phase 1 예고.
- 보안isSecureContext 검증 — window.isSecureContext 또는 hostname=localhost 가 아니면 「동의하고 시작」 버튼 비활성, 「HTTPS 필요 (사용 불가)」 표기. getUserMedia·DeviceOrientation 은 secure context 만 허용하는데 모바일 IP 직접 접속 (http://192.168.x.x) 시 묵묵히 실패하던 사고 차단.
- 신기능BETA 배지 — PermissionGate 헤더 「🌌 AR 시각화」 옆 violet 「BETA」 작은 라벨. Phase 0 진입 시 사용자가 「실험 단계」 임을 즉시 인지.
- 신기능베타 안내 + 피드백 링크 — 권한 모달 하단 「🧪 베타 기능: 일부 기기에서 부정확할 수 있어요. 발견 시 /feedback 으로 공유 부탁드립니다.」 안내. 사진가 모집 5/16 대비 피드백 채널 명시.
- 개선v2.33 Phase 0 5 마일스톤 (M1·M2·M3·M4·M5) 모두 완료. 다음 = 사진가 모집(5/16~) 후 실기기 피드백 → Phase 1 (별자리 88·perspective projection·궤적 시각화 강화).
- 개선celestialToScreen 회전 보정 — deviceGamma (roll) 으로 화면 회전 행렬 적용. 사용자가 폰 비틀어 잡았을 때 천체 마커도 함께 회전, 가로 모드에서도 자연스러움.
- 개선DeviceOrientation low-pass filter (지수 평활 EMA 0.15) — 센서 떨림 ↓. alpha 는 0/360 경계 shortest-path 처리. beta·gamma 는 단순 보간.
- 신기능캘리브레이션 UI — 화면 중앙 십자선 (orientation 권한 부여 시) + 진입 후 첫 3 초 「🧭 캘리브레이션 중… 기기를 잠깐 흔들어 주세요」 violet 토스트.
- 신기능iOS autoplay 차단 fallback — videoRef.play() catch 시 needsTapToPlay state. 「▶ 카메라 시작 (탭)」 풀스크린 버튼 노출, 탭하면 재시도.
- 신기능ARShell 시간 슬라이더 — ±6h (0.5h 단위, 「🕐 지금」 reset 버튼). 시뮬 시각에 따라 태양·달 위치 실시간 갱신. 「+3h」 같은 배지 상단 HUD 에 표시.
- 신기능태양 궤적 곡선 — getSunTrajectory(±6h) 25 점을 SVG dashed line 으로 화면에 표시. 「태양이 어떻게 이동할지」 한눈에. 지평선 아래(altitude -20°) 는 자동 숨김.
- 신기능거부 fallback 강화 — 카메라 거부 시 「📷 카메라 거부됨, 검은 배경 위 천체만」 amber 안내 + 슬레이트 그라디언트 배경. orientation 거부 시 별도 amber 안내. Geolocation 거부 + Place 좌표 fallback 시 진행.
- 신기능진입점 3 곳 — (1) 홈 「🛠 출사 도구」 카드의 「⏰ 시간 머신」 → 「🌌 AR 시각화」 교체 (시간 머신은 anchor 그대로). (2) Place 상세 헤더 「🌌 AR」 violet 버튼 (lat·lng·title query). (3) /map mapOverlay 우측 하단 floating 버튼 (anchor 기반).
- 신기능lib/ar/celestial.ts 신규 — SunCalc 기반 천체 위치 계산. getPolarisPosition(위도=고도) · getSunPosition · getSunTrajectory(±6h) · getMoonPosition(위상 라벨 8 단계). celestialToScreen 으로 (azimuth, altitude) → 디바이스 화면 좌표 평면 투영.
- 신기능lib/ar/permissions.ts 신규 — 3 권한 헬퍼. requestGeolocation · requestOrientationPermission (iOS 13+ requestPermission 처리) · requestCamera (후면 카메라). teardownArResources 로 AR 종료 시 모든 리소스 해제 (약관 v0.2 §5 옵트인+해제 의무).
- 신기능components/ar/ARShell.tsx 신규 — 권한 모달 → Geolocation → DeviceOrientation → Camera 순차 요청. 카메라 background <video> + 천체 마커 오버레이 + 상단 라벨/시각 + 하단 나침반 링/안내. iOS Safari + Android Chrome 동등.
- 신기능/ar 라우트 신규 — query ?lat=&lng=&label= 진입. Place 상세·/map·홈 등에서 navigate. ARShellRouterClient 가 useRouter 로 닫기 처리 (history back 또는 홈).
- 개선MVP 는 plain DOM + canvas video + DOM 마커 — A-Frame/Three.js 마이그는 Phase 1+ 로 미룸. 현재로 iOS Safari 안전 + 가벼움. 의존성 추가 0 (suncalc 이미 사용 중).
- 개선v2.33 § 1 Phase 0 5 기능 중 4 종 (북극성·태양·달·나침반) 구현. 캘리브레이션 (pitch/roll) 은 M2 + 시간 슬라이더 같이 진행. 진입점 (Place·/map·홈) 은 M3.
- 버그픽스SpotInteractive 의 「전체 (N) →」 갤러리 링크가 /spots/${spotId}/photos 로 hardcoded 였는데, Place 컨텍스트에서 spotId 자리에 placeId 가 들어가 다른 spot 으로 이동하는 사고. SpotInteractive 에 galleryHref·uploadHref prop 추가, PhotoTab 에서 /places/${placeId}/photos 와 /upload?placeId= 로 명시 전달. spot 페이지는 기본값 그대로.
- 개선PhotoGalleryGrid 데스크톱(lg) 컬럼 5 → 4 로 줄여 사진 카드 크기 약 25% ↑. 모바일 (2 cols) 과 sm·md (3 cols) 는 그대로.
- 버그픽스middleware /spots/[id]·/photos·/edit redirect 비활성화. spot.id 와 place.id 가 schema 상 별개 entity 라 같은 ID 라도 다른 장소인데, 단순 ID 매핑 redirect 가 잘못된 곳으로 보냈음. /map 핀(spotId) 클릭 → 엉뚱한 place 진입 사고. /spots 목록·카테고리 페이지(cafes·restaurants·landmarks) redirect 는 유지 (페이지 vs 페이지라 안전). S6 데이터 마이그 후 재활성화 권장.
- 개선스팟 상세 layout 좁힘 — lg:grid-cols-[460px_1fr] → [360px_1fr]. 우측 사진 캐러셀이 더 넓게 표시.
- 개선PhotoDistributionCards 컴팩트화 — 좌측 「이 스팟의 사진」 카드를 「분류」로 단순화. 사진 미리보기(top.thumbUrl) 제거 (우측 캐러셀과 중복). 큰 정사각 카드 → 작은 칩 (아이콘 + 라벨 + 카운트). 「📷 전체」 칩 추가 — 한 클릭으로 필터 해제.
- 버그픽스PhotoTab 자동 사진 선택 — initialSelectedPhotoIdx prop 추가. ?photo=<id> 진입 시 photos 배열에서 인덱스 매칭 (없으면 첫 사진 0). 기존엔 항상 null 이라 캐러셀이 비어있었음.
- 버그픽스/places/[id]/photos — redirect 페이지를 진짜 갤러리로 교체. fetchPhotoTabData 의 photos 를 GalleryPhoto 형식으로 변환 → PhotoGalleryGrid 렌더. spot photos 페이지와 동등 기능.
- 버그픽스CalculatorCard 헤더 표기 수정 — 옛 「장노출 · Hyperfocal · DOF」 → 「장노출 · Hyperfocal · DOF · 별궤적 · FOV」. 5 종 모두 활성 상태 명시. 코드는 5 종 다 있었지만 헤더 라벨이 옛 3 종이라 사용자 혼란.
- 버그픽스PhotoTab 이 client("use client") 였는데 자식 TimeCard·ShadowCard·AstroCard 가 server async component (prisma 호출). client 트리에서 server component 직접 호출 시 prisma 가 client 번들로 끌려와 graceful skip → SSR/CSR mismatch → React #482/#423.
- 버그픽스PhotoTab 을 server async 로 전환. page.tsx (server) 가 PhotoTab 을 prerender 후 PlaceDetailShell (client) 에 ReactNode prop 으로 전달. TabContent 가 case=photo 일 때 그 prop 을 그대로 렌더.
- 개선Next.js 의 「server-component-as-children-to-client」 표준 패턴 적용. server-only 작업 (prisma·SunCalc·EXIF 통계) 은 server 에 격리, client 인터랙션 (LikeUsersCard·SpotInteractive) 만 hydrate.
- 신기능PhotoTab 신규 client 컴포넌트 — 기존 spot/[id]/page.tsx 의 풍부한 위젯 (TimeCard·ShadowCard·AstroCard·LikeUsersCard·SpotInteractive) 을 Place 컨텍스트로 이식. 사진 카테고리 패널이 placeholder → 풀 기능.
- 신기능lib/place/fetchPhotoTabData.ts 신규 — server-side prefetch helper. photos.placeId 우선, 마이그 전이면 lat·lng·title 매칭 spots → photos.spotId fallback. 댓글·좋아요·parking·starFriendly·bortleScale 한 번에 fetch.
- 신기능places/[id]/page.tsx — fetchPhotoTabData 호출 + PlaceDetailShell 에 prop drilling. PlaceDetailShell·TabContent props 확장 (photoTabData·currentUserId·isAdmin). 사진 카테고리에서 SpotInteractive 카드 그리드·EXIF 통계·AI 가이드·출사 계산기 모두 동작.
- 개선PhotoTab 사진 0 케이스도 시간 위젯 (TimeCard·ShadowCard·AstroCard) 노출 — 사진가 가치 즉시. 「첫 사진 올리기」 CTA 는 EmptyState action 으로.
- 개선components/place/PlaceTabContent.tsx 의 placeholder PhotoTab 제거. 다른 패널 (Landmark·Cafe·Restaurant·Lodging·Event·Review) 은 그대로.
- 신기능업로드 drag & drop 영역 — 기존 「사진 선택」 버튼을 점선 박스로 교체. 파일 끌어놓기 + 클릭 + 키보드(Enter/Space) 모두 지원. JPEG·PNG·WebP 형식 거부 처리.
- 신기능업로드 진행 표시 — XMLHttpRequest 로 S3 PUT 진행률 추적 (fetch 는 미지원). 3 단계 progress bar (sign 10% → S3 0~80% → meta 95% → done 100%) + 실시간 % 표기.
- 신기능ShareButton 컴포넌트 — Web Share API 우선 (모바일 카톡 공유 시트), 미지원 시 클립보드 복사 + 「복사됨」 토스트. icon/button 두 variant. Place 상세 + Photo 상세 헤더에 통합.
- 신기능검색 자동완성 — SearchBar 에 200ms debounce + suggest API 호출 + 키보드 네비게이션 (↑↓ Enter Esc). 장소·해시태그·태그 3 섹션 분리 표시.
- 신기능GET /api/search/suggest — Place title prefix + Hashtag + Tag top 5 each. q 비면 events.search 30 일 빈도 → 인기 검색 8 개.
- 신기능최근 검색어 — localStorage `itl_recent_searches` 최대 10 개 + 「지우기」 버튼. 검색 시 events 「search」 이벤트 적재.
- 신기능SiteFooter — 4 column grid (둘러보기·정보·약관·운영자) + 운영자 이메일 + © 라인. sticky footer 패턴 (main flex-1) + 모바일 BottomNav 70px 여유.
- 신기능Schema.org JSON-LD 구조화 데이터 — Organization + WebSite + SearchAction 사이트 전역 + Place 카테고리별 type 분기 (TouristAttraction · LocalBusiness · CafeOrCoffeeShop · Restaurant · LodgingBusiness) + Photograph (ImageObject).
- 신기능Place 상세 + Photo 상세 JSON-LD 자동 주입 — 위경도·지역·작성자·좋아요수까지 검색엔진 친화적 메타데이터.
- 신기능TermsChangeModal — 약관 v0.2 시행일 환경변수 (NEXT_PUBLIC_TERMS_V0_2_EFFECTIVE_DATE) 설정 시 시행일 ±N일에 1회 모달. 변경 10가지 요약 (신규 5 + 변경 3 + 강화 2) + localStorage 다시 보지 않기.
- 신기능Search Console / Naver Webmaster verification meta tag 자동 주입 — NEXT_PUBLIC_GOOGLE_SITE_VERIFICATION + NEXT_PUBLIC_NAVER_SITE_VERIFICATION env. 미설정 시 no-op 안전 기본값.
- 신기능docs/SEO_REGISTRATION_GUIDE.md 신규 — Google Search Console + Naver Webmaster 등록 30분 step-by-step 가이드 (운영자 외부 작업).
- 개선.env.example — PLACE_REDIRECT_ENABLED + GOOGLE_SITE_VERIFICATION + NAVER_SITE_VERIFICATION + TERMS_V0_2_EFFECTIVE_DATE 4개 항목 사용 가이드 추가.
- 신기능GET /api/profile/export — 약관 §7.2 데이터 이동권 (Right to Data Portability). 회원 프로필·사진 메타·등록 장소·컬렉션·좋아요·SNS 링크·1년치 행동 로그를 JSON 파일로 다운로드.
- 신기능DELETE /api/profile/delete — 약관 §12.3 탈퇴. 「탈퇴」 정확히 입력 확인 → User.status=deleted + 닉네임 익명화 + email/avatar/bio NULL + OAuthAccount 전체 삭제 + UserSnsLink 삭제 + events.actor_user_id NULL.
- 신기능/profile/preferences 「계정·데이터 권리」 섹션 — AccountDataActions 컴포넌트 (📥 다운로드 버튼 + ⚠️ 탈퇴 모달).
- 신기능탈퇴 확인 모달 — 약관 §12.3 처리 6 항목 안내 + 「탈퇴」 정확히 입력 검증 + 빨간색 경고 디자인 + signOut 자동 redirect.
- 보안auth.ts signIn 콜백 — User.status='deleted' 차단 이중 안전장치 (OAuthAccount 삭제 + email 매칭 양쪽 모두). 약관 §12.4 동일 정보 재가입 차단.
- 개선middleware — PLACE_REDIRECT_ENABLED=1 일 때 /spots/new → /places/new + /landmarks/[lvl1] → /places?cat=landmark®ion=lvl1 추가. matcher 에 /landmarks/:path* 보강.
- 개선.env.example — PLACE_REDIRECT_ENABLED 항목 + 사용 가이드 추가. 운영 마이그(S8) 완료 후 Vercel 환경변수에 1 설정 시 SEO 자동 이전.
- 신기능/search 결과 페이지 — 기존 Spot+Tag 단순 검색에서 6 인덱스 통합으로 확장. 📍 장소 (v2.28 r2 places.search_tsv) · # 태그 · # 해시태그 · 📷 사진 (해시태그 매칭) · 🏞 스팟 (legacy) · 📚 가이드 (정적 SEO 8 종).
- 신기능Place 섹션 — listPlaces({ search }) 한국어 simple tsvector + GIN 인덱스 사용. 카테고리 다색 칩 + KTO 뱃지 + region · photoCount · likeCount.
- 신기능사진 해시태그 매칭 — 검색어가 hashtags.slug/label 와 매치되면 해당 해시태그가 달린 인기 사진 12 장 그리드 노출 (3·4·6 cols · likeCount desc).
- 신기능가이드 매칭 — /guides 정적 SEO 페이지 8 개 (별사진·일출·반영·안개·인물·단풍·벚꽃·야경) 인덱스에서 title/description 부분 매치. live = clickable, soon = 「준비 중」 배지.
- 신기능결과 요약 줄 — 매칭된 6 인덱스 카운트 한 줄로 노출 (앵커 역할). 빈 검색 시 예시 검색어 6 개 (광한루원·은하수·벚꽃·한라산·야경·단풍) chip suggestion.
- 개선병렬 fetch (Promise.all 5) + 조건부 photo fetch — 평균 응답 시간 단축. zero-result 는 EmptyState (preset='search').
- 신기능PlacesIndexShell 무한 스크롤 — items state + cursor (마지막 id) + hasMore. /api/places 의 cursor + hasMore 응답 활용 (이미 지원). 페이지 24 개씩 로드.
- 신기능IntersectionObserver — sentinel 보이면 자동 loadMore (rootMargin 400px 일찍 트리거). 자동 fallback 「더 보기 ↓」 버튼 (자바스크립트 disabled 또는 IntersectionObserver 미지원 시).
- 신기능필터 변경 (카테고리·지역·검색·정렬) 시 items 자동 reset. 끝 도달 시 「N 곳 표시 · 끝」.
- 개선이전 「N 곳 표시 (페이지네이션은 추후 무한 스크롤로 보강)」 안내 → 실제 무한 스크롤 가동. 회원 1만+ 시점 첫 화면 성능 ↓.
- 신기능components/auth/LogoutButton.tsx 신규 — NextAuth signOut wrapper. variant (ghost·danger·sidebar) × size (sm·md). 모든 로그아웃 진입점에서 일관.
- 신기능DesktopSidebar 하단 — 로그인 시 「프로필 + 로그아웃」 둘 다 노출. 비로그인 시 「로그인 / 가입」 라벨 강조 + 「카카오·네이버·구글 OAuth」 부연. 사이드바 hover 시 라벨 펼침.
- 버그픽스MobileMiniHeader — `/me/profile` (404) → `/profile` URL fix. 비로그인 「로그인」 버튼에 🔐 아이콘 추가 + shadow 강조.
- 신기능/users/[id] 본인 프로필 — 「내 통계」 진입점 + 「로그아웃」 버튼 추가 (isMe 한정). 「취향 설정」 → 「취향·데이터 설정」 라벨 명확화 (옵트아웃 4 토글 포함 강조).
- 신기능components/home/HomeWelcomeHero.tsx 신규 — 비로그인 회원 한정 hero (v2.8 슬로건 「같은 빛을 다시 찾는 곳」 + 1줄 설명 + 「장소 둘러보기」·「지도」·「로그인」 3 CTA + 4 가치 라벨). 로그인 시 자동 숨김. 30초 안에 「뭐 하는 곳」 이해.
- 버그픽스PlaceDetailShell 모바일 탭 7개 잘림 fix — flex-wrap → overflow-x-auto + flex-nowrap + scrollbar-hide (가로 스크롤). globals.css 에 .scrollbar-hide utility 추가.
- 신기능components/upload/ExifConsentModal.tsx 신규 — 사진 업로드 첫 회 EXIF 보존 안내 (localStorage `itl_exif_consent_seen_v1`). 약관 v0.2 §3.1 의무. 「✓ 분석용 보존 ✓ 다운로드 strip ✓ 본인 비공개 가능 ✗ 거주지 추정 X」 4 라벨 + 약관·옵트아웃 링크. 다시 보지 않기 자동.
- 개선EventsCalendarShell 빈 상태 → EmptyState 컴포넌트 swap (UX § 4 # 9 일부). PlacesIndexShell 에 이어 점진 swap.
- 신기능app/sitemap.ts 신규 — Next.js 14 metadata API. 정적 16 페이지 (홈·map·places·events·gallery·collections·guides·about·install·changelog·legal 한·영) + 동적 (places/[id] 모든 published, collections/[slug] visible). 1시간 revalidate.
- 신기능app/robots.ts 신규 — 모든 크롤러 허용 (admin·api·profile·saved·settings·upload 차단). GPTBot·CCBot·Google-Extended 별도 정책 (현재 허용, 향후 약관에 명시 후 결정).
- 신기능app/places/[id]/opengraph-image.tsx 신규 — Vercel ImageResponse API. Place 제목 + 카테고리 칩 + 지역 + 사진 수 1200×630 PNG 자동 생성. 카카오·트위터·페이스북·Pinterest 공유 시 즉시 노출. 카테고리별 그라디언트 색 (place-* 토큰 정합).
- 신기능/admin 대시보드 보강 — 「오늘 처리할 일」 섹션 추가 (PROACTIVE § 1.1). pendingSpots + pendingKtoImports + openPlaceReports + openReports + openParking 합계, urgent red/clean emerald 자동 분기. 항목별 직접 링크.
- 신기능/admin 「최근 24h 활동」 섹션 — 신규 회원·사진·Place·analytics_events 적재 카운트. 운영 가시성 즉시.
- 개선/admin 큐 카드 6 종으로 확장 — v2.28 r2 신규 (KTO 검수·Place 신고·Place 숨김) 통합. 기존 큐 (스팟·일반 신고·사용자·주차장) 유지.
- 버그픽스/api/profile/sns-links POST 전체 try/catch + zod 별도 try + console.error. 「Failed to execute 'json' on 'Response'」 같은 raw 메시지 대신 명확한 JSON 응답 + detail.
- 신기능v2.31 unique 완화 — db/migration-v2-31-sns-unique-relax.sql + schema. 같은 platform (예: Instagram) 여러 계정 등록 가능 (개인 + 사이트). userId+url 동일은 차단.
- 개선ProfileEditForm 의 catch 메시지 — server detail 도 함께 표시 (디버깅 + UX).
- 신기능lib/userStats.ts 신규 (220줄) — getCategoryStats + getExifStats + getUserStats. 6 카테고리 (사진·카페·맛집·관광지·숙박·행사) 별 등록 Place·받은 좋아요·북마크·점수 (v2.31 §1.2 단순 공식) + EXIF 시간대 24h 분포·계절·화각·카메라·렌즈·다녀간 시도.
- 신기능GET /api/users/me/stats 신규 — auth() 본인만, BigInt JSON 직렬화, getUserStats 호출 + try/catch 안전 응답.
- 신기능/profile/stats 페이지 + ProfileStatsView 신규. 4 섹션: ① 종합 한눈 (총 점수·대표 카테고리·총 사진·다녀간 시도) ② 카테고리별 막대 차트 (place-* 토큰 색) ③ EXIF 인사이트 4 카드 (시간대·계절·화각·장비) ④ 다녀간 지역 (17 시도 + top 10 + 「전국 일주!」 라벨). 다크 모드 + 모바일 1열 / 데스크톱 2열.
- 신기능/profile/preferences 에 「📊 내 통계 보기」 진입점 카드 추가 (brand 색).
- 개선v2.31 §11 단기 단계 — cat_counts JSONB 컬럼 X (매 요청 집계, 회원 1만+ 시 cron 도입). 등급·뱃지 30종은 v2.31 중기 (M-2~6) 진입 시.
- 신기능Strava 흡수 패턴 (Competitor § 7) — 본인 통계 대시보드. retention 핵심.
- 신기능components/ui/Input.tsx 신규 — controlled/uncontrolled, size sm/md/lg, label·hint·error·prefix·suffix, focus-visible ring + WCAG aria-invalid/describedby.
- 신기능components/ui/Select.tsx 신규 — native <select> 기반 (a11y + 모바일 OS 픽커), Input 과 동일한 size·label·hint·error 패턴 + 자체 chevron.
- 신기능components/ui/Textarea.tsx 신규 — autoResize 옵션 (rows ~ maxRows), maxLength + showCount, label·hint·error 일관.
- 개선components/ui/Modal.tsx v1.1 — z-50 → z-[9999] (Leaflet pane z-200~700 + Mapbox controls 위 안전, 메모리 박제 회귀 방지). focus trap 추가 (모달 열릴 때 첫 focusable 자동 focus, Tab/Shift+Tab 순환, ESC 닫기 시 이전 focus 복원).
- 개선기존 Button (variant 5종 × size 3) · EmptyState v1.1 (preset 6 + 일러스트 + compact + useEmoji) · Chip · Card · PageShell · ResponsiveLayout 모두 잘 갖춰져 있어 보강 불필요. Audit 「부재」 판정 → 실제 「사용 빈도 낮음」 으로 정정.
- 개선PlacesIndexShell 빈 상태 → EmptyState preset="spots" swap. 「📍 결과가 없어요」 + 「+ 새 장소 등록」 CTA. 다른 페이지 점진 swap 권장 (UX audit § 3.5 통일).
- 신기능S2.1 — lib/exif.ts 에 extractFullExif() + toExifMetaJson() 신규 (140줄+). 정형 컬럼 외 추가 14 필드 (GPS 고도·방향·노출보정·WB·플래시·색공간·측광/노출 모드·이미지 크기·orientation·소프트웨어·렌즈 메이커) 모두 추출. 약관 v0.2 §3.1 의 「분석용 보존 + 다운로드 strip」 정책 정합 (다운로드 strip 은 후속 작업).
- 신기능S2.2 — db/migration-v2-29-photos-exif-meta.sql 신규. photos.exif_meta JSONB 컬럼 + GIN 인덱스 (멱등 IF NOT EXISTS). schema.prisma Photo.exifMeta 추가. ⚠ Place.photoMeta (카테고리 메타) 와 헷갈리지 X — 본 컬럼은 「개별 사진 EXIF」 명시.
- 신기능S2.3 — POST /api/photos 의 ExifSchema 에 14 필드 zod 추가 + 사진 생성 시 exifMeta JSONB 저장. 「GPS 는 정형 컬럼에 저장하지 않음」 주석 폐기, 약관 v0.2 §3.1 정책 반영. extractedBy="client_v1" 출처 기록.
- 신기능S2.4 — scripts/backfill-exif.ts 신규 (188줄). 기존 사진의 빈 exifMeta 또는 hasExif=false 인 것을 S3 fetch → exifr.parse → toExifMetaJson → DB 갱신. --dry · --limit · --re-extract 옵션. extractedBy="server_backfill_v1".
- 신기능S2.5 — db/migration-v2-29-user-optout.sql 신규. users 테이블에 4 컬럼 추가 (event_logging_enabled · ai_analysis_enabled · stats_inclusion_enabled · nickname_public, 모두 default true). 약관 v0.2 §7.3 옵트아웃 의무. lib/events/server.ts isUserOptedIn() 활성화 — User.eventLoggingEnabled=false 시 logEvent skip.
- 신기능S2.6 — components/profile/DataPreferencesForm.tsx 신규 (226줄). 4 토글 UI + 즉시 저장 (debounce + saveState 표시). /profile/preferences 페이지에 「데이터 수집 설정」 섹션 추가. 각 토글 옆 짧은 설명 + 약관 §10 링크. PUT /api/users/me/data-preferences 신규.
- 개선약관 v0.2 §7.3 의 「데이터 수집 옵트아웃 4 가지」 약속이 사이트 UI 로 100% 구현. 시행일 전 모든 회원이 옵트아웃 가능. 기존 데이터는 보존 (정책 변경 retroactive X).
- 버그픽스lib/season.ts colorClass 4 시즌 모두 라이트 모드 한 단계 진하게 (다크는 그대로). 봄: pink-300→rose-400 → pink-500→rose-600 / 여름: emerald-400→teal-500 → emerald-600→teal-700 / 가을: amber-400→orange-500 → amber-600→orange-600 / 겨울: sky-300→blue-500 → sky-500→blue-600. 흰 텍스트 대비 1.6:1 → 4.7:1 (WCAG AA 통과).
- 신기능S1.1 — db/migration-v2-29-events-table.sql events 테이블 + 4 인덱스 (occurred_at·user·actor·payload GIN) + append-only 트리거 (UPDATE/DELETE 차단) + purge_old_ip_hash() 함수 + v_events_daily_stats 뷰. 175줄, 멱등 (IF NOT EXISTS). Prisma schema 손 X — schema_drift 회피.
- 신기능S1.2 — lib/events/server.ts logEvent() + getActorHash() (sha256(user_id || tenant_salt)) + getIpHash() + extractRequestContext() (Vercel x-vercel-ip-country 등). EVENT_LOGGING_ENABLED · EVENT_TENANT_SALT 환경변수 lazy getter (ESM hoisting 회피). 옵트아웃 게이트 자리 (S2 컬럼 추가 후 활성).
- 신기능S1.3 — POST /api/track — Zod 검증 + auth() 추출 + cookie 의 itlog_anon_id 읽기 + IP/국가 헤더 추출 → logEvent. EVENT_LOGGING_ENABLED 미설정 시 503. /api/events 가 v2.28 r2 행사 API 라 충돌 회피로 /api/track 사용.
- 신기능S1.4 — lib/events/client.ts track(eventType, payload) — anon UUID cookie 자동 발급 (max-age 30일, SameSite=Lax) + sendBeacon 우선 (페이지 이탈 안전) + fetch fallback. usePageView() 헬퍼. 실패 silent (UI 흐름 차단 X).
- 신기능S1.5 — PageViewTracker 컴포넌트 (root layout 의 Suspense 안). usePathname + useSearchParams 변화 감지 → 자동 page_view 적재. 검색 필터 등 URL 변경도 자동 캡처.
- 신기능S1.5 — 명시 인스트루먼트 4 곳: PlaceDetailShell place_tab_click + UploadForm photo_upload (메타 + EXIF·GPS 유무 + AI 사용 여부) + SaveButton bookmark_add/remove + LikeButton like_add/remove. 임의 곳에 import + track() 한 줄. map_pan_zoom 등 빈번한 이벤트는 다음 단계.
- 신기능S1.6 — /api/cron/purge-old-ip-hash 신규 (Bearer CRON_SECRET 인증) + vercel.json 21:00 UTC (06:00 KST) 매일 cron. events.ip_hash 30일 자동 NULL — privacy-v2 §1.2 의무 이행. .env.example 에 EVENT_LOGGING_ENABLED + EVENT_TENANT_SALT 추가.
- 보안actor_hash 만 events 에 저장 — 외부 유출 시 회원 신원 역추적 불가. user_id 도 별도 컬럼 (본인 export · admin 감사 시만 조회). IP 는 sha256 hash 후 30일 NULL. 약관 v0.2 §1.2/§3.2 정확히 일치.
- 신기능이용약관·개인정보처리방침·위치기반서비스 약관 v0.2 마스터 작성 (SitePlanning/07_legal/*.md 한국어 3 종 + 영문 3 종 + 자체 검토 체크리스트, 총 1,463줄). v0.1 → v0.2 핵심 변경 10 가지: EXIF GPS 「strip 만」 → 「분석용 보존 + 다운로드 strip」 정책 변경, 행동 로그(events) 약관 명시, AI 분석(Anthropic) 위탁 명시, 회원 활동 점수 5단계 약관, 익명 집계 통계 외부 활용 사전 명시, 자동화 의사결정(GDPR Art.22) 조항, 옵트아웃 4가지, 데이터 다운로드권, GDPR 7가지 권리 영문판, 거주지·동선 추정 금지.
- 신기능/legal/{terms,privacy,location} 한국어 3 페이지 v0.2 마스터로 갱신 + /legal/en/{terms,privacy,location} 영문 3 페이지 신규 + 양 layout 에 언어 토글 (English ↔ 한국어). 마스터 .md 파일을 react-markdown 으로 직접 렌더 — 마스터/사이트 자동 동기화. typography 플러그인 의존 X — components/legal/MarkdownContent.tsx 가 다크모드/표/코드/링크 직접 스타일링.
- 개선lib/legal/load.ts 헬퍼 + web/content/legal/ 마스터 미러 폴더 + package.json 에 react-markdown ^9.0.1 + remark-gfm ^4.0.0 추가 (npm install 필요).
- 신기능S5.3 — /places/[id] 상세 페이지 (server + client) + 7 탭 컴포넌트 (PhotoTab·LandmarkPanel·CafePanel·RestaurantPanel·LodgingPanel·EventTab·ReviewTab). URL ?tab 동기화. admin isHidden ⚠ 배너.
- 신기능S5.4 — /places/new 등록 폼. LocationPicker + 50m 자동 매칭 ⚠ 카드 + 카테고리 multi-select. forceCreate=true 로 매칭 다이얼로그 우회.
- 신기능S5.5 — /events 행사 캘린더. 시간 프리셋 4 (오늘·이번주·이번달·다음달) + 9 광역 필터 + 진행중/곧/예정 그룹핑 + 포스터 카드 + 「🗺 지도」 점프.
- 신기능S5.6 — ReportPlaceModal 신고 모달 (5 유형 라디오 + 자유 설명 + 친절한 rate limit 에러 매핑 + ESC/backdrop/✕ 3 가지 닫기 + 성공 자동 닫기).
- 신기능S5.7 — admin 페이지 3 (KTO 검수 큐: 음식점 카페/맛집 분류·병합 제안·변경 감지 / 신고 큐: 폐업 highlight 자동·resolve/dismiss / Place 관리: 검색·필터·숨김 토글).
- 신기능S5.8 — middleware 레거시 redirect (env PLACE_REDIRECT_ENABLED=1 활성). /spots/[id]→/places/[id], /cafes→/places?cat=cafe 등. 비활성 시 기존 페이지 그대로 (S8 운영 마이그 후 켜기).
- 신기능S5.1 — globals.css + tailwind.config 6 카테고리 색상 토큰 (--cat-photo·cafe·restaurant·landmark·event·lodging × light/dark 12 변수). Tailwind place-* 네임스페이스로 노출 (legacy cat-* 호환 유지).
- 신기능S5.2 — lib/place/pinStyle.ts mapbox paint expression 헬퍼 (12 색 case + zoom radius + 행사 시간 filter + GeoJSON 변환). PlacePopup.tsx 핀 클릭 popup (탭 미리보기 + 진행 중 행사 자동 highlight + 「자세히」 링크).
- 신기능S5.2 — PlaceMap.tsx 통합 지도 (circle layer + 행사 ✨ symbol layer + 카테고리 토글 + bbox 250ms debounce fetch + 핀 클릭 popup createRoot 마운트). 기존 SpotsOverviewMap 와 별도 — S5.8 swap 예정.
- 신기능S4.1 공개 API 4 — GET/POST /api/places (bbox/nearby/list 3 모드 + 자동 매칭 분기 → auto_merge·admin_review·create_new), GET·PATCH·DELETE /api/places/[id] (source 기반 권한), POST /api/places/[id]/reports (rate limit + IP 추출).
- 신기능S4.2 행사 API 2 — GET /api/events (캘린더 from/to/region, 최대 365일), GET /api/events/[id] (Place include + computed displayState).
- 신기능S4.3 admin API 5 — kto-imports 큐 + 승인/거절 (PATCH ?action=approve|reject, 음식점 finalCategories 분류), place-reports 큐 + 처리 (resolve/dismiss, 폐업 의심 highlight 자동), places/[id]/hide (숨김 토글, audit 보존).
- 신기능S4.4 cron — /api/cron/kto-import 5 contentType (12·14·15·32·39) areaBasedList → kto_imports staging. ?since=YYYYMMDD 증분 (기본 어제), ?dry=1 테스트 모드. **vercel.json 활성화 X** — S6 데이터 마이그 후 swap.
- 개선기존 /api/spots, /api/landmarks, /api/cron/refresh-landmarks 변경 X — S6 마이그 후 deprecated 처리. 이중 운영 X (정확히는 신규 cron 비활성 상태).
- 신기능S2 — 운영 DB 에 places · events · kto_imports · place_reports 4 테이블 생성. PostGIS geom · search_tsv (한국어 simple) · GIN(categories TEXT[]) · GIN(메타 JSONB) · GIST(geom) · 트리거 (lat/lng→geom · title→search_tsv · updated_at) 모두 적용. prisma migrate dev drift 회피 (직접 SQL + IF NOT EXISTS 멱등 패턴). 6 페이지 회귀 0.
- 신기능S3 — lib/place/* 6 모듈 신규: types(카테고리·메타·KTO·신고·매칭 정책 상수) + query(단건·목록·근처·bbox·행사 캘린더) + permission(source 기반 권한 — KTO 메타는 cron/admin · user 메타는 작성자/admin) + match(Levenshtein·Haversine·자동 매칭·결정 분기) + import(KTO staging→promote·변경 감지·행사 분기) + report(신고·rate limit·자동 정지·admin 큐) + index(barrel).
- 개선정책 상수 박제: 6 카테고리 라벨/아이콘/토큰 키 · KTO contentType 5 종 자동 정책 (관광지·행사·숙박 자동 promote, 음식점 항상 admin 검수) · 매칭 임계값 (50m/30m, 0.95/0.90 신뢰도) · 신고 rate limit (비로그인 5/일, 로그인 30/일, dismiss 5회 → 7일 정지).
- 신기능schema.prisma 4 모델 신규: Place(통합 메인) · Event(시간 차원, places 와 1:N) · KtoImport(검수 스테이징) · PlaceReport(폐업·상호변경 신고). 6 카테고리 (사진·카페·맛집·관광지·행사·숙박) array 통합.
- 신기능User 모델 5 inverse relations (placesCreated · placesHidden · ktoImportsReviewed · placeReportsCreated · placeReportsResolved). Place ↔ KtoImport 2 inverse (ktoImportsPromoted · ktoImportsSimilar).
- 신기능db/migration-places-unification.sql 작성 — PostGIS geom + search_tsv (한국어 simple 토큰화) + GIN(categories TEXT[]) + GIN(메타 JSONB) + GIST(geom) + 트리거 (lat/lng→geom, title→search_tsv 자동 동기화) + 부분 인덱스 (published & visible). 멱등 (CREATE IF NOT EXISTS).
- 개선기존 Spot/Landmark/Photo 변경 X — S6 (데이터 마이그) 후 S8 에서 archive 예정. 이중 모델 병행 X (Phase 0 단일 통합 안).
- 개선데스크톱 사이드바 메뉴 「🔧 설정」 → 「🔔 알림 설정」 으로 이름·아이콘 변경. 가리키는 페이지(/settings/notifications)가 알림 토글 한 개뿐인데 「설정」이라는 모호한 라벨이라 사용자가 「내가 찾는 다른 설정은 어디?」 헷갈리던 문제. 향후 다른 설정 페이지가 생기면 그때 「설정」 인덱스 페이지로 일반화하는 방향.
- 버그픽스/profile/preferences — 칩(촬영 종류·피사체), 라디오(주력 기기), 저장 알림(red/green), 안내 banner(blue) 다크 색상 추가.
- 버그픽스/profile/edit — SNS 링크 추가 에러(red-700), 프로필 저장 알림(emerald/red) 다크 추가. EquipmentSection 추천 큐(cyan), 수동 추가 폼(brand), 주 사용 표시(amber 배지·★), 「수동」 배지(blue), 행 카드(amber/gray 배경) 일괄 다크 보강.
- 버그픽스/admin/users — 테스트 유저 행 배경(red), TEST·나 배지(red/blue), Role select(admin=amber), Status select(active=green / suspended=red), 삭제 버튼(red), 가드 안내 카드(blue), 「테스트 유저 만들기」 폼(brand) 다크 색상 추가.
- 버그픽스/admin/settings — 경고 안내 banner(amber), 정책 라디오 카드(amber/emerald 선택 상태), 추천 배지(amber/emerald), 저장 알림(red/green), 「변경사항 있음」 텍스트(amber) 다크 색상 추가.
- 버그픽스EquipmentProfileCard(내 장비 프로필) 다크모드 클래스 누락 fix — bg-purple-50, border-purple-200, text-purple-900 등이 light only였던 문제. dark:bg-purple-900/30, dark:border-purple-700/50, dark:text-purple-200 추가.
- 버그픽스EquipmentStatsCard(실제 사용 장비 EXIF) 일부 다크 누락 fix — 「N장 분석」 칩, 필터 안내 bar(brand/pink 톤), 폴백 안내 텍스트(amber) 다크 색상 추가.
- 개선Lightbox 하단 toolbar(작성자·좋아요·댓글) 사이즈를 상단 MetaBar와 통일 — 폰트 12px, button height 28px, padding 0 6px. 여백 ↓, 정보 밀도 ↑.
- 개선Toolbar 위치 1rem → 1.75rem 위로 띄움 — 사진과 약간 거리 두기.
- 개선투명도 75% → 55% (bg-black/0.55) + blur 8px → 4px — 사진 감상 방해 ↓. 그림자도 더 부드럽게.
- 개선ToolbarLikeButton(❤) 동일 사이즈로 통일 — height 44 → 28, fontSize 14 → 12, icon 18 → 14.
- 버그픽스Lightbox 댓글 패널에서 기존 댓글이 표시 안 되던 버그 fix. 원인: API 응답이 `{ data: [...] }` 형태인데 코드가 `data.comments`를 보고 있어서 항상 빈 배열로 fallback. 매핑 수정.
- 신기능댓글 패널 외부 click 시 자동 닫기 — backdrop overlay 추가 (`bg-black/30 + blur`). X 버튼 외에 사진 영역 클릭으로도 닫기 가능.
- 버그픽스이전 fix 무용지물이었음 — closeOnBackdropClick: false로도 작동 안 됐음. 진짜 원인: yet-another-react-lightbox의 root container가 자체 이벤트 시스템으로 click을 처리하는데, createPortal로 띄운 ActionsBar는 lightbox 외부라 click이 가로채여 작동 X.
- 버그픽스**진짜 해결**: ActionsBar를 createPortal 대신 lightbox의 `toolbar.buttons` 슬롯에 직접 통합. lightbox 내부에 렌더되니 click이 정상 작동. 작성자 Link · ❤ 좋아요 · 💬 댓글 · ✕ close 한 줄로.
- 개선디자인 유지 — `styles.toolbar` 옵션으로 toolbar를 우상단 → **중앙 하단 pill bar**로 이동 (반투명 배경 + blur + 그림자).
- 개선ToolbarLikeButton 신규 — toolbar slot용 inline 좋아요 버튼 (낙관적 업데이트, 비로그인 alert).
- 버그픽스Lightbox 안에서 좋아요·댓글·작성자 ID Link 클릭이 모두 작동하지 않던 치명적 버그 fix. 원인: yet-another-react-lightbox의 closeOnBackdropClick 옵션이 click 이벤트를 가로채서 lightbox close → 우리 ActionsBar의 모든 액션이 무효화.
- 버그픽스controller에 closeOnBackdropClick·closeOnPullDown·closeOnPullUp 모두 false 설정. 이제 사용자는 우상단 X 버튼 또는 ESC키로만 lightbox 닫음 — backdrop 클릭으로는 닫히지 않음.
- 버그픽스Lightbox 댓글 패널이 토글 안 되던 버그 fix — currentIndex 변경 감지가 동일 슬라이드에 대해서도 트리거되어 commentsOpen state가 즉시 false로 reset되던 문제. **photoId 기준 prevPhotoIdRef 비교**로 변경.
- 개선ActionsBar 좌하단·우하단 분리 → **중앙 하단 단일 pill bar**로 통합. 「@작성자 · ❤ N · 💬 N」 한 줄. 인스타식 깔끔한 디자인.
- 개선모든 클릭 이벤트에 stopPropagation 추가 — lightbox backdrop click과 충돌 방지. z-index 강화 (10005 → 99999).
- 신기능Lightbox 좌측 하단에 「@작성자 + ❤ 좋아요」 floating 액션. 좋아요는 낙관적 업데이트 + 비로그인 시 로그인 안내 토스트.
- 신기능Lightbox 우측 하단에 「💬 N」 댓글 버튼. 클릭 시 PC 우측 슬라이드 패널 (380px) / 모바일 하단 시트 (75vh)로 댓글 보기·작성 가능. **사진 위치 그대로** — 댓글 쓰고 닫으면 이어서 감상 계속.
- 신기능댓글 패널 안에 기존 CommentSection 임베드 — 답글·신고·삭제 기능 그대로. 「상세 →」 링크로 사진 상세 페이지 이동 가능.
- 개선갤러리 기본 정렬 「인기」 → 「최신」으로 변경 — 새로 올라온 사진이 즉시 노출되어 사진가들의 활동 가시성 ↑.
- 개선댓글 수는 슬라이드 변경 시 자동 동기화 (낙관적 카운트). 댓글 패널은 사진 바뀔 때 자동으로 닫힘 (다른 사진 댓글 잘못 보이지 않게).
- 개선갤러리 이름 「🖼 발견 갤러리」 → 「📷 스팟 갤러리」 — 사이트 정체성(모든 사진은 스팟에 속함)과 직관적 일치.
- 신기능카테고리 필터 8개 + 「전체」 — 「🌅 일출/일몰 · 🌌 별·은하수 · 🏔 산·풍경 · 🌊 바다·물 · 🌸 꽃·자연 · 🏛 도시·건축 · 👤 인물 · 📸 일상」. 12+12 어휘를 사용자 친화 그룹으로 통합. 모바일 가로 스와이프, PC wrap.
- 신기능검색 input 신규 — 스팟 이름·사진가 닉네임 매칭. 입력 즉시 client-side 필터링 (debounce 없이). X로 초기화.
- 개선필터·검색 결과 0개일 때 「↺ 필터 초기화」 CTA 표시 — 사용자가 갇히지 않게.
- 신기능갤러리 정렬 토글이 2탭(인기·최신) → **4탭** 확장. 「{시즌이모지} {시즌이름}」 (현재 시즌에 찍힌 사진) + 「⭐ 추천」 (좋아요·댓글·최근성 종합 점수).
- 신기능「추천」 점수 — likeCount × 2 + commentCount × 3 + 최근 30일 가중. 「시즌」 — 현재 계절 월(3~5/6~8/9~11/12~2)에 찍힌 사진만 필터링.
- 개선갤러리 Hero 강화 — h2 크기 + 시즌 칩 (그라디언트 배경 「🌸 봄 시즌」). 안내 문구도 「인기·최신·시즌·추천 4가지 시각으로」 명시.
- 개선빈 상태 강화 — 사진 0개일 때 「+ 사진 업로드 →」 CTA. 시즌 탭에 결과 0개일 때도 「이번 {시즌}에 올라온 사진이 아직 없어요」 + 다른 탭 안내.
- 개선갤러리 fetch 100 → 200장 — 시즌 필터링 후에도 충분한 사진 확보.
- 버그픽스홈 「⏱ 오늘의 빛」 4 빅카드 + 4칸 시간 카드의 모바일 텍스트 잘림 해결. 시간 폰트 모바일에서 더 작게(text-[10px]) + truncate + min-w-0 + 짧은 secondary.
- 개선달 빅카드 라벨 단순화 — 「달 · 기우는 달」 → 「기우는 달」 (이모지로 「달」 의미 충분). 은하수 secondary도 「베스트 시간」으로 짧게.
- 개선지도 헤더 「+ 새 스팟」 버튼 모바일 압축 — 모바일에서 「+ 스팟」 (3글자), PC에서 「+ 새 스팟」. 「ADMIN」 + 「로그인」 패딩도 모바일에서 축소.
- 개선「🗺 지역 필터」 + 「✨ 출사 모드」 두 행을 한 행으로 통합 — 모바일 스크롤 절약. 모바일 가로 스와이프, PC는 한 줄 wrap. 라벨도 짧게 (이모지만).
- 개선LocationPermissionBanner를 aside → 그리드 위(전체 폭)로 이동. 모바일에서도 헤더 바로 아래에 보임 — 위치 권한 발견성 ↑↑ (이전엔 지도 아래로 밀려 안 보임).
- 개선준비 중 칩 라벨 짧게: 「반영 (준비 중)」 → 「반영 (준비)」 — 모바일에서 한 화면에 더 많이 표시.
- 개선지도 검색바를 사진 캐러셀 위 → 지도 컨테이너 안 「카테고리 토글 바로 아래(top-14 left-2)」로 이동. 카테고리 + 검색이 같은 column으로 정렬돼 발견성 ↑↑.
- 개선MapAndPhotosSection에 mapOverlay prop 추가 — 지도 좌표계 안에 floating UI 배치 가능. 부모(MapInteractive)에서 검색 결과 → forcedHighlight 트리거 그대로.
- 개선MapSearchBar expanded 폭 모바일 260px / PC 320px (이전 360px) — 지도 영역 안에 안전히.
- 개선지도 검색바를 평소 작은 🔍 버튼(40x40)으로 collapse — 사진 캐러셀·핀 이름 가림 최소. 클릭 시 input 펼침 + 자동 focus. 결과 선택/외부 클릭/X 버튼으로 다시 collapse.
- 개선시간 컨텍스트 단순화 — 「다음 골든」 → 「다음 일출/일몰」 카운트다운으로. 골든·블루는 홈 「오늘의 빛」에서 확인.
- 신기능지도 위 floating 검색바 신규 — 디바운스 250ms · 스팟·태그 통합 검색 · ↑↓ 키보드 네비 · 결과 클릭 시 그 위치로 panTo + highlight.
- 신기능헤더에 「🌅 다음 골든 17:23 (3h 21m) · ☀ 12°~22° 맑음」 라이브 미니 컨텍스트 추가. 지도 보면서 출사 타이밍·날씨 즉시 확인.
- 개선/api/search 응답에 lat·lng 추가 — 지도 panTo 외에도 다른 클라이언트에서 활용 가능.
- 개선「⏱ 오늘의 빛」 4 빅카드로 복원 (날씨는 푸터 칩 그대로). 5빅카드 시도는 롤백 — 날씨는 시간 머신으로 이동.
- 신기능「⏰ 시간 머신」 결과 카드에 「☀ 날씨」 5번째 추가. 선택 날짜 ≠ 오늘이면 「오늘 기준」 자동 명시.
- 개선「🎨 둘러보기」 4개를 PC도 1줄(4x1)로. 큰 캐러셀(2x2) 제거 → CollectionMiniCard 통일. 홈 전체 길이 더 짧아짐.
- 신기능/about 대폭 보완 — 정체성 1줄(PhotoPills × 인스타 × 한국 데이터), 출사 도구 9가지, 사용 흐름 6단계, FAQ 6개, 만든 사람·신뢰 섹션.
- 신기능「⏱ 오늘의 빛」에 5번째 빅카드 「☀ 날씨」 추가 — 일출·일몰·달·은하수·날씨를 한 줄에. PC 5열, 모바일은 4 빅카드 + 날씨 가로형 별도 행.
- 개선모바일 스크롤 길이 ~30% 감소 (10 스크린 → 7 스크린).
- 개선「🛠 출사 도구」 모바일 2x2 → 4x1 가로. 카드 안에 아이콘+제목만 (설명·뱃지·CTA는 PC에서만).
- 개선「📍 내 근처」 모바일 가로 스와이프 (snap) — 3행 그리드 → 1행 가로 스크롤. 인스타·트리플 패턴.
- 개선「🎨 둘러보기」 모바일 4x1 미니 카드 (CollectionMiniCard 신규 — 정사각 + 이모지 + 짧은 라벨). PC는 기존 2x2 캐러셀 유지.
- 개선「📷 최근 사진」 모바일 4장만 (PC는 8장). 모바일 1행으로 압축.
- 개선4 빅카드·4칸 시간 모두 모바일 4열 가로 압축. 폰트·패딩 미세 축소 (가독성 유지).
- 신기능「📍 내 근처 가볼 만한 곳」 신규 — 사용자 위치 50km 반경 인기 스팟 5장. 거리 칩 + 카테고리 + 사진/좋아요 통계. 클릭 시 스팟 상세로.
- 신기능「🍁 시즌 모듈」 신규 — 봄(벚꽃)/여름(은하수)/가을(단풍)/겨울(설경·별) 자동 전환. 시즌 hero + 키워드 칩 + 추천 액션 2개 (시즌별 큐레이션·가이드).
- 신기능「⏰ 시간 머신」 인라인 신규 — 날짜 선택(오늘/내일/주말/+1주/+1개월 프리셋) → 그날 그 위치의 일출·일몰·달·은하수를 4 미니 카드로 시뮬.
- 신기능「📷 최근 사진」 인스타식 미니뷰 — 8장 작은 그리드 + 「갤러리 전체 →」 진입점. 영감 섹션 (도구 다음, 비중 작음). 인스타 베끼기 X, 사진은 어디까지나 보조.
- 개선출사 도구 그리드의 「시간 머신」 카드를 활성화 (`#time-machine` anchor) — 「곧 출시」 → 「아래로 ↓」.
- 신기능큰 타이틀 Hero 축소 → 1줄 미니 헤더로. 「📅 5월 8일 금 · 📍 서울 · 🌅 다음 저녁 골든 17:23 (3시간 21분 남음) · 봄 시즌」 라이브 카운트다운.
- 신기능「⏱ 오늘의 빛」 4 빅카드 신규 — 일출(방위)·일몰(방위)·달(위상·뜸·짐 시간)·은하수(시즌·베스트 시간·점수)를 한눈에. 위치별 라이브 데이터.
- 신기능「🛠 출사 도구」 4 카드 신규 — 5종 계산기·AI Vision·별사진 가이드·시간 머신(곧 출시). 사이트의 차별화 자산을 홈에서 즉시 발견 가능.
- 개선정체성 명확화 — 「PhotoPills(도구) × 인스타(영감) × 한국 데이터」 결합. 매일 출사 전 들어오는 페이지로.
- 신기능사진 상세 페이지의 「🖼 Fullscreen」 모드에서 같은 스팟의 다른 사진들을 좌우 화살표·키보드·휠·스와이프로 자유롭게 탐색. 갤러리감 ↑↑.
- 신기능슬라이드를 넘길 때마다 URL이 `/photos/{id}` 로 자동 동기화 — 닫아도 마지막 본 사진 페이지로 유지·공유 가능. EXIF 메타바도 사진별로 즉시 갱신.
- 개선Fullscreen 버튼 라벨에 「· N장」 표시 — 같은 스팟에 여러 사진이 있다는 신호.
- 개선사진 50장 초과 스팟은 현재 사진 기준 인접 ±25장 윈도우만 슬라이드로 로드 (페이로드 보호).
- 개선사진 상세 페이지에서 「🔍 원본 보기」 버튼 제거. 「🖼 Fullscreen」 모드가 같은 역할(원본 해상도 풀스크린 보기)을 더 풍부하게 수행 — EXIF 메타·좋아요·댓글 카운트까지 한 화면에.
- 개선Fullscreen 버튼은 우측 하단으로 이동(기존 원본 보기 자리). 단일 액션으로 인터페이스 단순화.
- 신기능사진·스팟 상세 페이지에 「❤ 좋아요」 카드 신규 — 좋아요 누른 사용자 아바타 + 닉네임 + 레벨 배지를 한눈에. 사회적 증명 + 사진가 간 상호 발견 채널.
- 신기능본인이 좋아요 눌렀으면 맨 앞에 「나」 배지로 강조. 다른 사용자 클릭 시 프로필로 자연 유입.
- 신기능최근 10명 기본 + 「펼쳐보기」 → 50명까지 확장. 좋아요 0개일 땐 「첫 번째로 좋아요 눌러보세요」 빈 상태 CTA.
- 신기능GET /api/photos/[id]/likes + GET /api/spots/[id]/likes 신규. 단일 helper(lib/likeUsers.ts) 공유 — DRY.
- 개선관리자(admin) 사용자는 amber 배지로 별도 표시. 인플루언서 효과 + 운영자 가시성.
- 신기능/spots 정렬 토글에 따라 각 스팟의 미리보기 사진도 함께 변경. 🆕 최신 → 최신 등록 사진 / 🔥 인기 → 좋아요 많은 사진 / 🌟 추천 → 추천 정렬.
- 개선getPreviewPhotosForSpots 에 sort 인자 추가. 단일 SQL 쿼리에 orderBy 만 분기 → 성능 영향 거의 없음 (~10ms). photos.spotId 인덱스 활용.
- 개선/upload 게시 완료 화면 다크 모드 가독성 fix — bg-emerald-50 dark:bg-emerald-900/30, 글씨 색상 emerald-100 명도 보강.
- 신기능홈 큐레이션 4개 카테고리 우선 노출 — 🆕 새로 추가된 스팟 · 🔥 지금 뜨는 스팟 · 📷 사진 많은 스팟 · 🌅 오늘 일몰 명소. PC 2×2 그리드, 모바일 1열 자동 분기.
- 개선각 큐레이션 카드 = 자체 캐러셀 (좌/우 화살표 + 스와이프 + dot indicator). 카드 화살표 클릭 또는 스와이프로 4장 사진 전후 이동.
- 개선미리보기 사진 해상도 ↑ — 300×300 정사각 thumb → 원본 비율 fullUrl 사용 (background-image fallback 으로 thumb 유지). aspect-[4/3] 가로형 비율로 풍경 사진 시각적 임팩트 ↑.
- 신기능/about 페이지 신규 — 「지도에서 발견 · 함께 쓰는 일지 · 빛 정보까지」 3가치 카드를 홈에서 분리. AI Vision · 출사 계산기 · 알림 시스템 등 추가 가치 정리.
- 개선홈 페이지 정리 — 3가치 카드 제거 (about 으로 이동), 하단 「소개 보기」 링크로 진입점 유지. 시간 위젯 + 일정 카드 + 큐레이션 4개 + CTA 흐름으로 단순화.
- 신기능🌌 별궤적 탭 신규 — 별이 점상으로 보일 최대 노출 시간. 500 rule(간이) + NPF rule(정밀, 픽셀 피치 기반) 동시 표시. 센서 crop factor 자동 적용.
- 신기능📐 FOV 탭 신규 — 수평·수직·대각선 시야각 + 35mm 환산 초점거리. 풍경 구도 미리보기·렌즈 선택에 활용.
- 개선센서 포맷 5종에 widthMm·heightMm·cropFactor 정보 추가. FOV·별궤적 정확도 ↑.
- 개선데스크톱 사이드바에 「🔧 설정」 메뉴 항목 신규 — /settings/notifications 진입점. 옵트아웃 페이지 발견 가능성 ↑.
- 버그픽스landmarks/[id]/images route — Prisma.InputJsonValue 캐스팅 안전화 (as unknown as).
- 버그픽스profile/sns-links POST — handle 컬럼 누락 fix (URL 마지막 segment 자동 추출).
- 버그픽스saved/route items.map — 명시 타입 제거 → Prisma select 자동 추론 사용.
- 버그픽스profile/edit · users/[id] — sns_links.url null 가드 (?? "" / ?? undefined).
- 버그픽스SpotInteractive — current.userId → current.user.id (SerializedPhoto 구조 정합).
- 버그픽스lib/map/mapbox-config — ExpressionSpecification 타입 우회 (coalesce 동적).
- 버그픽스scripts/seed-bortle — TypedArray as unknown 캐스팅.
- 개선이로써 strict TypeScript 0 에러 달성. 향후 새 코드 작성 시 깨끗한 베이스라인 확보.
- 신기능/settings/notifications 페이지 신규 — 이메일 알림 ON/OFF 토글. 저장 시 즉시 적용, 다음 cron 부터 반영.
- 신기능User.emailNotifications boolean 컬럼 추가 (default true). 가입 기본 ON, 사용자가 직접 끌 수 있음.
- 개선notify-upcoming-plans cron 이 emailNotifications=false 사용자 자동 제외 (Prisma where collection.user.emailNotifications=true).
- 개선GET·PUT /api/profile/notifications 신규 — 본인 설정 조회·갱신. 비로그인 401.
- 개선이메일 템플릿 footer 「알림 끄기」 링크 /settings/notifications 정확히 연결. 한 클릭 옵트아웃.
- 신기능데스크톱 사이드바 + 모바일 헤더에 🔔 알림 아이콘 추가. 사용자의 SavedItem.plannedAt 48시간 이내 일정 카운트를 빨간 배지로 표시. 클릭 시 /saved 이동.
- 신기능components/layout/NotificationBell 신규 — sidebar / header variant 분기. 비로그인 또는 일정 0건이면 컴포넌트 자체 숨김 (UI 깔끔).
- 개선이메일 알림(사이트 안 봤을 때) + 헤더 bell(사이트 들어왔을 때) 두 채널 시너지로 일정 놓침 방지.
- 신기능사용자가 SavedItem 에 plannedAt 으로 메모한 출사 일정이 24시간 이내면 매일 KST 20:00 자동으로 이메일 발송. 한 통에 그 사용자의 모든 임박 일정 묶음 (스팟·시간·일출·일몰·메모 포함, 모바일 친화적 HTML).
- 신기능lib/email/sender.ts 신규 — Resend SDK lazy 통합. RESEND_API_KEY · EMAIL_FROM 환경변수. 키 없으면 graceful skip (운영 안정).
- 신기능lib/email/templates/upcomingPlan.ts — 한국어 HTML + plain text. 보라·인디고 그라디언트 헤더, 「오늘」 배지 빨강, 「내일」 보라. 이메일 클라이언트 호환성을 위한 inline-style.
- 신기능/api/cron/notify-upcoming-plans 신규 — 매일 KST 20:00 (UTC 11:00) 실행. SavedItem.lastNotifiedAt 으로 중복 방지 (12시간 cooldown).
- 개선DB: saved_items.last_notified_at 컬럼 + 인덱스 추가 (cron 쿼리 최적화). 마이그 db/migration-saved-item-notified.sql 적용 필요.
- 신기능홈 페이지에 「📅 다가오는 출사 일정」 카드 신규. 사용자가 SavedItem 에 plannedAt 으로 메모한 출사 계획 중 48시간 이내 항목 1~5개 자동 노출. 비로그인 / 일정 0개 → 카드 자체 숨김.
- 신기능각 일정 카드 = 스팟 썸네일 + D-라벨(오늘·내일·날짜) + 예정 시간 + 그날의 일출·일몰 시간 + 사용자 메모. 클릭 → 스팟 상세.
- 신기능오늘 일정은 빨간 「오늘」 배지 + 강조. SunCalc 으로 그날 일출/일몰 자동 계산해서 보조 정보로 제공.
- 신기능GET /api/plans/upcoming 신규 — 사용자의 SavedItem 중 plannedAt 이 [now, now+48h] 사이인 항목 + spot 정보 + 대표 사진 + 일출·일몰 시간 응답.
- 신기능스팟 상세 사이드바 「🧮 출사 계산기」 토글 카드 신규. 탭 3개 — ⏱ 장노출(ND 필터 보정 셔터), 🔭 Hyperfocal(과초점 거리), 🎯 DOF(피사계심도). 입력 시 실시간 계산 + 마지막 입력 localStorage 자동 저장.
- 신기능센서 포맷 5종 지원 — Full Frame · APS-C(Canon 1.6x) · APS-C(Sony·Nikon·Fuji 1.5x) · Micro 4/3 · Medium Format. 센서별 Circle of Confusion 자동 적용.
- 신기능ND 필터 8종 사전 등록 — ND2~ND1000 (1~10 stop). 1/250 또는 0.004 또는 4 다양한 셔터 입력 형식 지원.
- 신기능DOF 결과 — Near·Far·총 심도·앞쪽·뒤쪽 모두 계산. 피사체가 Hyperfocal 이상이면 ∞ 표시 + 안내. 거리 단위 자동(cm·m·km).
- 개선lib/calculators 신규 — 외부 의존성 X, 표준 수식(Wikipedia/DOFmaster 기준). 클라이언트·서버 양쪽 안전. 단위 환산·표기 헬퍼 포함.
- 신기능스팟 상세 사이드바 「✨ AI 가이드 받기」 버튼 신규. 클릭 시 사진 EXIF 분포(화각·렌즈·카메라) + 시간 윈도우 + 시즌 + 지역 + 인기 해시태그 데이터를 모아 Claude Sonnet 4.6 호출 → 한국어 마크다운 출사 가이드 자동 작성.
- 신기능lib/ai/spotGuideGenerator.ts 신규 — JSON 모드 강제 + reasoning 한 줄 + body 200~400자. 비용 ~₩22/스팟 (Sonnet input $3 · output $15 / MTok).
- 신기능POST /api/spots/[id]/ai-guide-draft 신규 — 인증 필수, prisma 로 사진 통계 집계 + SunCalc 시간 + getSeasonContext 시즌 자동 결합.
- 신기능AiGuideButton 모달 — 분석 중 ✨ 애니메이션, 결과 도착 시 마크다운 본문 + reasoning + 복사·다시 생성 버튼. 60초 cooldown (남용 방어).
- 개선AI 가이드는 "등록자 가이드 0건" 상태 외에도 항상 노출 — 사용자 누구나 한 번 클릭으로 그 스팟의 출사 인사이트 즉시 확인 가능.
- 신기능스팟 맥락 추천 — 사진 업로드 폼에서 그 스팟에서 자주 쓰인 태그 우선 노출 (📍 핑크 배지). 신규 사용자가 그 스팟의 모범 답안을 자연스럽게 학습.
- 신기능지역+시즌 컨텍스트 — 스팟의 광역시·도(자동) + 현재 시즌(봄·여름·가을·겨울) 기반 추천. 부산+봄+풍경 → #벚꽃 같은 InfoTravelog만의 컨텍스트 인지 추천. 🗺 인디고(지역) + 🌸/🍁/❄ 앰버(시즌) 배지로 구분.
- 신기능AI 자동 alt-text — Photo.aiReasoning 을 사진 alt 속성에 자동 채움. 검색 엔진 노출 + 시각장애인 접근성 동시 향상. 추가 비용 X (이미 분석 시 받은 데이터).
- 개선/api/hashtags/popular 확장 — spotId·regionLvl1 옵션 추가, source 필드 (spot/region/category/global) 응답. UploadForm 칩에 source별 색상·배지 표시.
- 신기능해시태그 추천이 정적 시드 → 동적 인기 기반으로 진화. 사진 업로드 폼에서 카테고리(촬영 종류·피사체) 선택 시 그 카테고리에서 자주 쓰인 태그가 자동으로 추천 칩에 노출. 사용량 표시(숫자)로 "남들이 많이 쓰는 태그" 자연스러운 유도.
- 신기능GET /api/hashtags/popular — 카테고리 쿼리 파라미터로 인기 해시태그 조회 (5분 캐시, graceful fallback).
- 신기능Vercel Cron 추가 — 매일 04:00 KST에 hashtags.usage_count + category 자동 재계산. photo_hashtags 조인 테이블 기준 SQL 한 번에 갱신.
- 개선추천 칩 디자인 — 사용량 ≥ 1인 "핫" 태그는 진한 색상 + 카운트 표시 (예: #벚꽃 32). 사용량 0인 시드는 점선 테두리 (구분 명확). 사용자가 어떤 태그가 인기인지 한 눈에 인식.
- 개선SitePlanning/03_roadmap/AI_VISION_ROADMAP.md 신규 — AI Vision 데이터로 무엇을 할 수 있는가 9개 응용, 사용 빈도 기반 동적 추천 6단계, 연계 가능한 다른 AI 기능 10가지, PhotoPills 심도 비교 + InfoTravelog 차별화 방향, 단계별 종합 로드맵 (Phase A~E), 비용 시뮬레이션, 참고 자료 30+.
- 개선PhotoPills 비교 — 시간·계산기·3D AR 강점 따라잡기 vs 위치 큐레이션·AI·커뮤니티·한국어 차별화. 두 앱은 워크플로우 상호 보완 관계 (어디로 갈지 = InfoTravelog, 언제·어떻게 = PhotoPills).
- 개선사용 빈도 추천 진화: Phase 1 시드 → Phase 2 빈도 cron → Phase 3 위치+시즌 컨텍스트 → Phase 4 스팟 맥락 → Phase 5 개인화 → Phase 6 동의어 정규화. 각 단계 1~2주 작업.
- 개선다음 단계 후보 정리 — 시각적 유사도 검색 (CLIP+pgvector), 자동 캡션 (SEO+접근성), 콘텐츠 모더레이션, 자동 스팟 가이드 생성, 여행 코스 자동 생성, 음성 검색·오디오 가이드.
- 신기능촬영 종류 12가지 + 피사체 12가지로 분류 체계 확장. 일출·골든·일몰·블루·야경·별궤적·은하수·장노출·접사·드론·스튜디오·일상 / 풍경·도시·인물·동물·식물·음식·디저트·건축물·패션·단풍·설경·기타.
- 신기능자유 해시태그 — 사진당 최대 5개. 카테고리 선택 시 시드 추천 칩 노출 + 직접 입력 (Enter 또는 추가). 정규화된 hashtags 테이블 + photo_hashtags 조인으로 무한 확장 가능.
- 신기능AI Vision 자동 분류 — 사진 업로드 직후 Claude Haiku 4.5 가 사진을 분석해 12+12 카테고리 + 한국어 해시태그 추천. ✓ 적용 한 번에 분류 완료, ✏ 직접 입력으로 자유 수정 가능. 신뢰도 < 70% 면 검토 권장 표시.
- 개선스팟 등록 폼에서 「가능한 촬영 종류」 입력 제거. 사진 분포로 자동 결정 — 등록자 주관 편향 제거 + 입력 부담 감소.
- 개선스팟 상세 좌측 카드 재설계 — 사진 분포 기반 카드 그리드(촬영 종류 + 피사체). 각 카드 = 그 카테고리의 대표 사진(좋아요 1위) 썸네일 배경 + 카운트. 카드 클릭 = 필터, 재클릭 = 해제. 0건 카테고리는 노출 X.
- 개선스팟 상세 우측 칩 줄 제거 (좌측 카드와 중복). 헤더에 현재 필터 표시 + 「✕ 전체 보기」 만 유지.
- 개선URL 쿼리 동기화 — `?filter=sunset` 외부 공유·뒤로가기·딥링크 지원. history.replaceState 로 페이지 리로드 회피.
- 개선기존 데이터 마이그레이션 — flower → plant (꽃은 식물에 흡수), night/street → etc (사용자 직접 재분류 권장).
- 신기능홈 「⏱ 오늘의 출사 시간」 위젯이 navigator.geolocation 으로 사용자 위치 자동 감지. 거부 시 서울 디폴트. localStorage 7일 캐시.
- 신기능기상청 단기예보 API 통합 — 오늘 최저·최고 기온 + 하늘 상태 (☀/⛅/☁/🌧) 표시. 위경도 → LCC 격자 X·Y 변환 + 1시간 캐시.
- 신기능추천 컬렉션 캐러셀 — 그리드 X, 정사각형 1장 + 좌/우 swipe + dot indicator + 5초 자동 회전 (인스타 스타일). embla-carousel-react.
- 개선시간 레이블 명확화 — 「일출 전 블루 / 일출 후 골든 / 일몰 전 골든 / 일몰 후 블루」 (HomeTimeWidget + TimeCard).
- 개선lib/clientTime.ts 신규 — suncalc 기반 client-safe 시간 계산 + 광역 17개 nearest 매핑 (서울/부산/대구...).
- 신기능홈 (`/`) 에 「⏱ 오늘의 출사 시간」 위젯 추가. 일출 블루·골든·일몰 골든·블루 4칸 + 별사진 적합도 ★ + 「📅 컬렉션 캘린더」 버튼. 비로그인도 표시 — 가입 동기 부여.
- 신기능components/home/HomeTimeWidget 신규 — TimeCard 와 별도 (spotId 종속 X). 디폴트 위치 서울 (37.5665, 126.9780) 기준. 추후 사용자 위치 기반 확장 가능.
- 개선헌님 비전 「언제·어디서·어떤 빛으로」 의 「언제」 가 첫 화면에서 즉시 전달됨. 사진가 도구 → 일반인도 가치 인식 (v2.21 패러다임).
- 버그픽스/map 핀 안에 카테고리 emoji 가 안 보이던 진짜 원인 fix — Mapbox SDF text 는 「DIN Pro Bold / Arial Unicode MS Bold」 폰트라 emoji glyph 가 아예 없음. layer 의 text-field 로 emoji 를 두는 접근법은 근본적으로 안 됨.
- 개선해결: SVG <text> 안에 emoji 를 박아서 image 로 등록 — 브라우저 native emoji 폰트(Apple Color Emoji / Segoe UI Emoji / Noto Color Emoji) 가 raster 화. icon-image 만으로 droplet + emoji 동시 표시.
- 개선image ID 5종 신규 — pin-spot(📷), pin-cafe(☕), pin-rest(🍜), pin-landmark(🏛), pin-star(⭐). 각 카테고리에 정확한 emoji 가 박힌 droplet.
- 버그픽스/map 첫 진입 시 「검정+오렌지」가 적용 안 되던 race fix — useTheme mount 후 setStyle 이 같은 URL 로 다시 호출되며 style.load 가 두 번 fire 하던 race. localStorage 'itt-theme' 직접 읽어 init 단계에서 정확한 스타일로 시작 + prevIsDarkRef 로 실제 변경 시에만 setStyle.
- 버그픽스/map 핀 카테고리 emoji가 안 보이던 race fix — loadPinImages 가 동기 함수였던 탓에 layer 추가가 image 로드보다 빨라 icon-image 가 빈 채로 렌더되던 문제. Promise 기반으로 변경 후 layer 추가 전 await.
- 개선/map 하단 Mapbox 로고/저작권 제거 — attributionControl: false. 시안 D-1-d 「깔끔한 검정+오렌지」 톤 정합.
- 개선/map 「📷 사진 스팟」 토글을 사이트 로고 톤 droplet SVG 로 변경 — 지도 핀과 동일 모양. 데스크톱 필터바 + 모바일 컴팩트 헤더 + LayerMenuSheet 모두 통일.
- 버그픽스/map 첫 진입 시 「검정+오렌지」가 적용 안 되던 race fix — useTheme mount 후 setStyle 이 같은 URL 로 다시 호출되며 style.load 가 두 번 fire 하던 race. localStorage 'itt-theme' 직접 읽어 init 단계에서 정확한 스타일로 시작 + prevIsDarkRef 로 실제 변경 시에만 setStyle.
- 버그픽스/map 핀 카테고리 emoji가 안 보이던 race fix — loadPinImages 가 동기 함수였던 탓에 layer 추가가 image 로드보다 빨라 icon-image 가 빈 채로 렌더되던 문제. Promise 기반으로 변경 후 layer 추가 전 await.
- 개선/map 하단 Mapbox 로고/저작권 제거 — attributionControl: false. 시안 D-1-d 「깔끔한 검정+오렌지」 톤 정합.
- 개선/map 「📷 사진 스팟」 토글을 사이트 로고 톤 droplet SVG 로 변경 — 지도 핀과 동일 모양. 데스크톱 필터바 + 모바일 컴팩트 헤더 + LayerMenuSheet 모두 통일.
- 개선/map 단일 핀을 단순 원에서 droplet 모양 핀(사이트 로고 📍 톤)으로 변경. SVG image 4가지 색상(blue·violet·amber·teal) 사전 등록 후 Mapbox symbol layer의 icon-image로 분기.
- 개선안에 카테고리 emoji — 사진 스팟 📷 · 카페 ☕ · 맛집 🍜 · 관광지 🏛. droplet 둥근 부분 흰색 backdrop으로 emoji가 또렷이 보임.
- 개선lib/map/mapbox-config.ts: loadPinImages() 헬퍼 신규 — canvas SVG → Image → addImage 한 번에 처리. style.load 마다 호출(idempotent: hasImage 체크).
- 신기능/map 우상단에 「🗺 2D / 🏙 3D」 토글 버튼 — 클릭 시 pitch 60°로 부드럽게 기울고 3D 건물(fill-extrusion) layer 활성화. 다시 클릭하면 평면 복귀.
- 개선사이트 라이트/다크 모드 토글에 따라 지도 스타일 자동 전환 — useTheme(next-themes) hook 통합. 다크 = 「검정+오렌지」 / 라이트 = streets-v12 도시 톤. setStyle 시 모든 layer·source 자동 재구성.
- 개선라이트 모드에서는 「검정+오렌지」 layer override skip — 기본 도시 톤 유지. 3D 건물 색상도 테마별 분기 (다크 #1A2330 / 라이트 #E5E7EB).
- 개선landmarks 핀 강화 — clusterMaxZoom 14→11, clusterRadius 60→40, unclustered 7px→11px. 좁은 zoom에서도 cluster 잘 보임. viewport 1.5배 확장 fetch + limit 500.
- 신기능지도 라이브러리 Leaflet → Mapbox GL JS 전체 마이그레이션. 메인 /map 다크 모드 「검정 지면 + 오렌지 도로」 layer paint override (시안 D-1-d).
- 신기능Native Mapbox cluster — leaflet.markercluster 대신 GeoJSON source의 cluster:true 사용. spots(blue) + landmarks(teal) 별도 source. 클러스터 클릭 시 getClusterExpansionZoom + easeTo.
- 개선lib/map/mapbox-config.ts 신규 — 토큰 lazy getter + 스타일 추상화 + applyDarkOrangeRoads layer override + pinStyleFor 출사 모드별 핀 + Korea 좌표·zoom 상수.
- 개선components/map/MapboxBase.tsx 신규 — useMapbox hook + 헬퍼 (createMarkerElement, pinMarkerHtml, destinationPoint, distMeters, toLngLat). 모든 지도 컴포넌트가 공유.
- 개선마이그레이션된 컴포넌트 4개 — SpotMap (위성 미니맵 + 화각 콘 polygon) · SpotsOverviewMap (메인 /map + cluster + 다크) · LocationPicker (NewSpotForm 좌표) · GuideMapEditor (admin 가이드). 호출부 변경 0 (호환 보존).
- 개선globals.css — .leaflet-popup-* → .mapboxgl-popup-* + .mapboxgl-ctrl-group 다크 invert 처리.
- 배포백업 .leaflet.bak.tsx 4개 보존 (롤백용). Leaflet 패키지 의존성은 아직 유지 — 배포 안정 후 npm uninstall leaflet leaflet.markercluster 가능.
- 신기능scripts/seed-bortle-static.ts 신규 — NASA Earthdata 가입·GeoTIFF 다운로드 없이 한국 알려진 다크스카이 명소 50곳 hardcoded. 영양 국제밤하늘공원(Bortle 1) · 정선 만항재 · 소백산천문대 · 덕유산 · 지리산 등.
- 신기능이름 부분 일치 + 좌표 근접(5km) 매칭 알고리즘. spot.bortleScale + bortleSource('korea_static_seed_2026') + starFriendly 자동 채움.
- 개선NASA Earthdata 사이트 일시적 403/CloudFront 차단 우회 — 별사진 시스템(AstroCard·별사진 모드·다크스카이 컬렉션) 즉시 활성화 가능. 추후 NASA GeoTIFF로 교체 시 정밀도 향상.
- 신기능/guides 인덱스 + /guides/star-photography 신규 — 한국 별사진 종합 가이드 9섹션 (사전 점검·장비·세팅·구도·기법·후처리·안전법규·시즌 캘린더·추천 명소 Bortle 1~3). 다른 사진 사이트가 안 다루는 영역의 SEO 자산.
- 신기능/guides 인덱스에 8개 가이드 카드 — 별사진(활성) + 일출/반영/안개/인물/단풍/벚꽃/야경(준비 중). 각 가이드는 v2.3 P 모듈 도입 시 차례 활성화.
- 개선DesktopSidebar에 「📚 가이드」 메뉴 추가 (큐레이션·피드백 사이).
- 개선별사진 가이드 안 「🌌 다크스카이 명소 컬렉션」 cross-link — /collections/dark-sky 자동 큐레이션과 가이드 콘텐츠 통합.
- 신기능scripts/seed-bortle.ts 신규 — NASA Black Marble VIIRS GeoTIFF 읽어 모든 spots에 Bortle 1~9 등급 + starFriendly 자동 채움. radiance → Bortle 9단계 매핑(Falchi et al. 2016 단순화).
- 신기능옵션: --dry (DB 변경 X 미리보기) / --force (재시드) / --tif=PATH (파일 위치 지정). 결과 콘솔에 Bortle 분포 히스토그램 출력.
- 신기능db/data/BORTLE-README.md 신규 — NASA Earthdata 가입 → VNP46A4 다운로드 → bbox 자르기 → 시드 실행까지 단계별 가이드. 운영 Supabase 동기화 3가지 방법.
- 개선.gitignore — db/data/*.tif (큰 파일) 차단, BORTLE-README.md만 커밋.
- 배포사용자 작업: NASA Earthdata 가입 → GeoTIFF 다운로드 → npm install geotiff → npx tsx scripts/seed-bortle.ts. 시드 후 /collections/dark-sky 자동 노출 + 모든 starFriendly 스팟에 AstroCard·별사진 모드 활성화.
- 신기능/map 헤더에 「✨ 출사 모드」 행 신규 — ⭐ 별사진 / 💧 반영 / 🌫️ 안개 / 🌅 일몰 / 🌃 야경 5종 토글. 별사진(/collections/star-friendly) + 일몰(/collections/today-sunset) 즉시 활성. 나머지 3종은 P3/P5/P6 도입 시 자동 활성.
- 개선각 모드 toggle에 툴팁으로 어떤 데이터를 사용하는지 표시 — 사용자가 모드의 의미를 쉽게 이해.
- 신기능/photos/[id] 사진 상세에 「🌤 빛 컨텍스트」 카드 신규. EXIF takenAt + 스팟 좌표 → 그 시각의 태양 방위·고도·색온도(K) + 촬영 타입(일출/골든/블루/한낮/심야 등) + 그날 일출·일몰 시각 자동 표시.
- 신기능촬영 타입 자동 분류 — 일출 ±15분 / 일출 골든 / 일출 블루 / 일몰 골든 / 일몰 블루 / 사광(alt 6~15°) / 한낮 / 심야(천문박명) 8단계.
- 개선DB 캐시 우선 — Photo.sunAzimuthAtCapture·sunAltitudeAtCapture 컬럼 활용. 미저장 사진은 즉시 SunCalc 계산 (graceful fallback).
- 개선lib/landscape/light.ts.altitudeToKelvin 재활용 — 색온도 매핑 일관성 보장 (TimeCard 색온도 곡선과 같은 휴리스틱).
- 신기능/saved/[id]/calendar 신규 — 사용자 컬렉션 spots의 일출 골든·일몰 골든·은하수 시각이 월간 7×6 그리드에 자동 배치. 「내 컬렉션 12스팟 중 이번 주말 출사 가능 3곳」 같은 통합 뷰.
- 신기능월 이동(◀▶) + 「오늘로」 + 카테고리 카운트 칩(☀ 일출/🌇 일몰/⭐ 별사진). 셀당 최대 3개 표시 + 「+N」으로 더보기 표기.
- 신기능「💡 오늘 출사 가능」 추천 섹션 — 오늘의 모든 이벤트를 시각순 리스트. 클릭 시 해당 스팟으로 이동.
- 개선/saved/[id] 헤더에 「📅 캘린더 보기」 진입점 추가 — 그리드 뷰 / 캘린더 뷰 토글 형식.
- 배포다음 (B-1 알림 도입 후): iCal export + 「은하수 알람」 + 캘린더 푸시 알림.
- 신기능「별사진 모드」 풀스크린 페이지 신규 — 적색 인터페이스(#FCA5A5~#DC2626)로 야간 망막 적응 보호. 다른 사진 사이트가 안 하는 핵심 차별화. /star-mode/[spotId].
- 신기능구성 — 별사진 적합도 ★ 패널(달·은하수·광공해·구름·기온·바람) + 7단계 시간 슬라이더(일몰→블루→어둠→은하수→자정→새벽→일출, 현재 위치 마커) + 달 위상 시각화 + 권장 장비 8항목(렌즈/조리개/ISO/노출/WB/RAW/삼각대/헤드램프).
- 신기능AstroCard 하단에 「🌌 별사진 모드 풀스크린 →」 링크 — starFriendly 스팟에서 바로 진입. 「✕ 종료」 시 spots/[id]로 복귀.
- 개선「🔔 은하수 등장 알람」 버튼 (B-1 알림 시스템 도입 후 활성화 예정) + 컬렉션 저장 통합.
- 배포다음 (Phase C): NASA Black Marble Bortle 시드 → 광공해 데이터 자동 채움 → /collections/dark-sky 자동 노출. 기상청 시드 → 구름·기온·바람 메트릭 활성화.
- 개선홈에 「봄·여름·가을·겨울」 시즌 컨텍스트 칩 + 키워드 노출. 매 월 자동 분류 (3~5월=봄·6~8월=여름·9~11월=가을·12~2월=겨울). 시즌별 추천 키워드 6개 + 한 줄 설명.
- 개선홈에 「✨ 지금 추천 컬렉션」 4장 미니뷰 — 시즌 우선순위로 큐레이션 선별 (봄=trending·sunset / 여름=star-friendly·trending / 가을=trending·rating / 겨울=star-friendly). /collections 인덱스 링크.
- 신기능lib/season.ts 신규 — getCurrentSeason + getSeasonContext (시즌별 emoji·키워드·추천 슬러그·설명·색상 토큰). 추후 v2.3 P4 SEASON 시드 후 GDD 기반으로 정밀화 예정.
- 개선프로필 진입점 — /profile 라우트 신규 (자동 redirect /users/{id} 또는 /login).
- 신기능「✨ 큐레이션」 시스템 신규 — /collections 인덱스 + /collections/[slug] 상세. 사용자 컬렉션(/saved)과 분리. 사이드바에 「✨ 큐레이션」 메뉴 추가.
- 신기능초기 슬러그 8개 — 🔥 지금 뜨는 / ⭐ 평점 높은 / 📷 사진 많은 / 🆕 새로 추가된 / 🌌 다크스카이 (Bortle ≤ 3) / 🌅 오늘 일몰 명소 / 🔭 별사진 적합 / 👁 사진가 선택. 24시간마다 자동 갱신 (lazy refresh).
- 신기능DB: curated_collections 테이블 (slug PK + category + itemSnapshot JSONB). 부분 인덱스로 가시 큐레이션만 빠른 조회.
- 개선데이터 0개 큐레이션 자동 숨김 — is_visible = false. dark-sky·star-friendly는 NASA Bortle 시드 후 자동 노출.
- 신기능starFriendly 켜진 스팟에 「🌌 오늘 밤 별사진」 카드 — 일몰→시민박명→천문박명→은하수 등장→정점→새벽박명→일출 타임라인. 별사진 적합도 ★1~5 + 이유 칩. 달 위상·출/몰. Bortle 등급 표시.
- 신기능lib/astro 모듈 신규 — nightInfo (박명·달) + milkyWay (은하수 GC 적도→지평 변환, LST 직접 구현) + score (은하수+달+Bortle+구름 종합).
- 개선ONE TABLE 정책 세 번째 적용 — SpotTimeWindow.astro JSONB 컬럼. 별도 캐시 테이블 없이 starFriendly 스팟에만 채움.
- 개선Spot 모델에 광공해 컬럼 추가 — bortleScale (1~9, NASA Black Marble) / bortleSource / bortleScoredAt / starFriendly / horizonOpenness. starFriendly 부분 인덱스로 별사진 모드 핀 빠른 필터.
- 배포다음 (Phase C): NASA Black Marble VIIRS 시드 — 한국 영역 GeoTIFF 다운로드 + 모든 spots에 Bortle 자동 lookup. star_friendly = (bortle ≤ 3) 자동 채움.
- 신기능스팟 상세에 「☀️ 그림자 가이드」 카드 — 정오 그림자 배율(피사체 1m → 그림자 35cm 등) + 1:1 시각(인물 입체감) + 1:1.5 시각(풍경 황금비) + 가장 긴 그림자 시각.
- 신기능태양 정렬일 검색 페이지 (/spots/[id]/sun-alignment) — 「광화문 정면 일출은 1년 중 언제?」 같은 방위·고도 기반 날짜 검색. 16방위 프리셋 + 능선·산봉 고도 프리셋 + 허용 오차 조정.
- 신기능lib/landscape/shadow.ts 신규 — getShadowMultiplier (1/tan(altitude)) + findShadowRatioTime (이분탐색) + findSunAzimuthDates (1년 17K SunCalc 호출, ~50ms).
- 개선ONE TABLE 정책 두 번째 적용 — SpotTimeWindow.shadow JSONB 컬럼 추가. 별도 캐시 테이블 없이 같은 (spotId, date) row에 그림자 데이터만 추가.
- 배포다음 (v2.2 Astro Phase A): 별사진 lib (nightInfo + milkyWay + score) + AstroCard + Bortle 광공해 시드 (NASA Black Marble).
- 신기능TimeCard 하단에 「오늘 색온도 곡선」 미니 SVG — 일출-1h~일몰+1h 태양 고도 변화를 색온도 그라데이션 곡선으로 표시 (8000K 청색 → 3500K 오렌지). 사광 시작·반역광 한계 시각도 함께 노출.
- 신기능lib/landscape/light.ts 신규 — getLightInfo(date, lat, lng) + altitudeToKelvin (사진가 휴리스틱 7단) + findTimeWhenAlt 이분탐색 (사광 6° / 반역광 15°).
- 개선ONE TABLE 정책 첫 적용 — SpotTimeWindow.light JSONB 컬럼 추가. 별도 캐시 테이블 신설 없이 기존 (spotId, date) row에 추가 데이터만.
- 개선lib/timeWindow.ts 내부 SunCalc 호출이 lib/landscape/light.ts로 위임 — 4 윈도우 결과 100% 동일 (회귀 0). 기존 시그니처 보존.
- 배포다음 (v2.3 P2 SHADOW): 그림자 길이 + 태양 정렬일 검색 + 미니지도 태양 부채꼴 5분 트랙.
- 신기능「내 컬렉션」 (Pinterest 보드 패턴) — 마음에 드는 스팟·사진을 테마별로 모아두기. 비공개·공개 토글, 한 컬렉션 200항목 / 한 사용자 50컬렉션 한도. /saved 인덱스 페이지 + 스팟·사진에 「📅 컬렉션 저장」 버튼.
- 신기능시간 인텔리전스 카드 (TimeCard) — 일출/일몰 골든·블루 4칸 + 별사진 적합도 ★1~5 + 달 위상. suncalc 자동 계산, SpotTimeWindow 캐시 (TTL 30일). 스팟 상세 페이지 상단에 통합.
- 개선데스크톱 사이드바 — 로그인 회원에게 「📅 저장」 메뉴 노출 (/saved 바로가기). 「📤 업로드」와 「⚙ 어드민」 사이 위치.
- 신기능DB 모델 — saved_collections / saved_items / spot_time_windows + item_count 자동 갱신 트리거 + 멱등 마이그레이션 SQL (db/migration-r9a-saved.sql).
- 신기능API 4 엔드포인트 — POST/GET /api/saved (컬렉션 CRUD) + POST/GET/PATCH/DELETE /api/saved/[id] + POST/DELETE /api/saved/[id]/items. 본인만 수정·삭제, 공개 컬렉션은 누구나 조회.
- 배포다음 (R-9-d/e/f): KMA 시즌 시드 + 캘린더 뷰 (월간 그리드, 골든타임 자동 배치, iCal export) + 별사진 모드 (광공해 지수 + 야간 적색 인터페이스).
- 개선brand 팔레트 자동 분기 (D-1-a) — 라이트 모드는 파란색(#2563EB), 다크 모드는 오렌지(#EA580C)로 자동 전환. CSS 변수 RGB 채널 + tailwind config 변수 참조 방식 — 기존 컴포넌트 한 줄도 안 바꾸고 자동 적용.
- 개선지도 핀·클러스터·일러스트 색 갱신 — 더 선명한 파랑으로 변화. 사진 위 칩과 CTA 가독성 향상.
- 개선PWA theme_color 갱신 — 모바일 브라우저 상단 색이 새 brand로. 라이트·다크 모드 자동 분기.
- 신기능디자인 시안 18종 작성 (Design/ (이전 08_mockups, _to_Design/08_mockups/ 임시) — ) — 14페이지 시안 + 4 레이아웃 패턴 (시즌 테마·별사진 모드·컬렉션 캘린더·출사 동행 매칭).
- 배포신규 컴포넌트 DesktopSidebar.tsx — 좌측 72px 세로 사이드바 (hover 220px 확장). 미사용 상태로 추가 — 사용자 검토 후 swap 예정.
- 신기능「지역」 메뉴 신설 — 전국 17광역 → 시·군·구 → (도(道) 시 안의) 구·군까지 3단계 탐색. /regions 인덱스 + /regions/[광역] + /regions/[광역]/[시군구] 정적 페이지
- 신기능지역 필터 부착 — /map · /spots 헤더에 권역 탭(7) → 광역 칩(17) → 시·군·구 셀렉트, URL ?r1=&r2=&r3= 공유 가능 (예: /spots?r1=jeonbuk&r2=jeonju)
- 신기능지역 검색 자동완성 — 「전주」 「해운대」 입력 → 시·군·구 부분 일치 결과, 키보드 ↑↓ Enter 네비게이션. 모바일은 trigger 버튼 → 풀스크린 모달
- 신기능지역별 스팟 카운트 (N) — 권역 탭·광역 칩·시군구 셀렉트·검색 결과 옆에 등록 수 표시. 빈 지역 클릭 회피 + 데이터 풍부한 곳 발견성 ↑
- 신기능지도 viewport 안내 — 지도 이동 시 「🧭 현재 영역: 전북 전주시」 + 「이 지역으로 필터」 옵트인 버튼. 자동 필터링은 안 함 (사용자 선택 존중)
- 신기능광역 panTo — /map?r1=jeonbuk → 자동으로 그 광역 중심으로 panTo + zoom 조정 (광역시 11, 도(道) 8~9, 제주 10)
- 개선스팟 등록 시 좌표 기반 행정구역 자동 입력 — Kakao Local Coord2RegionCode로 region_lvl1/2/3 채움
- 신기능스팟 편집 페이지 끝에 삭제 버튼 — 본인 또는 관리자만 노출
- 신기능사진이 등록된 스팟은 삭제 차단 — 사진 먼저 모두 삭제 후 시도. 사진 0일 때만 빨간 활성 버튼 + 확인 모달
- 개선삭제 시 댓글·좋아요·신고·가이드·주차장 모두 함께 정리. AuditLog로 누가 무엇을 지웠는지 기록 (admin이 다른 사용자 스팟 지운 경우 분리 기록)
- 버그픽스다크모드에서 팝업 바깥 라운드 프레임이 흰색으로 보이던 문제 — Leaflet wrapper / tip / tip-container 모두 surface-elev1로 강제
- 버그픽스촬영종류 칩(일몰·일상 등)이 다크에서 흰 배지로 보이던 문제 — popup-chip-bg/text 변수 신설(라이트=페일블루, 다크=푸른 틴트+밝은 글씨)
- 개선팝업 inner div의 자체 background/border-radius 제거 — wrapper가 단독으로 배경 담당. wrapper-vs-inner 색차로 인한 흰 띠 원천 차단
- 개선지도 핀 클릭 팝업 다크 모드 적응 — Leaflet wrapper와 내용 모두 surface 변수 사용
- 개선촬영종류를 한글+아이콘 chip(✨ 골든 / 🌇 일몰 / ☀ 일상)으로 사진 우측에 세로 배치 — 빈 공간 활용 + 의미 즉시 파악
- 개선스팟 주소 표시 추가 (📍 전북 남원시 요천로 1447)
- 개선활성 지표 한 줄(📷 사진 N · ♡ N · ★ N) — 인기도 한눈에
- 개선사진 1장만 노출(96px) + 「📷 사진 N」 버튼으로 전체 갤러리 진입 — 시각 단순화
- 개선/api/spots GET 응답에 address·likeCount 추가
- 버그픽스다크 모드 팝업의 흰 halo 그림자 제거 + 미세한 surface-elev2 테두리로 형태 명확화
- 개선팝업 사진을 자연 비율로 표시 — 가로 사진은 가로로, 세로 사진은 세로로 (max 180×180). API 응답에 width/height 추가
- 신기능🎯 주변 스팟 반경 토글 — 5/10/20/30/50km 칩으로 검색 범위 직접 조절. 기본 20km (스팟이 적은 초기엔 넓게 시작)
- 신기능반경 선택 기억 — 한 번 30km로 바꾸면 다음 방문 때도 30km 유지 (localStorage)
- 신기능지도 위치 기억 — 마지막 본 위치로 다음 방문 시 자동 시작. 30일 지나면 만료. 처음 방문은 한국 중앙
- 개선「반경 N km 안에 스팟이 없어요」 안내 문구에 「더 넓혀보거나」 옵션 명시 — 빈 결과에서도 다음 행동 유도
- 신기능🎯 지도 중심 anchor 핀 — 지도 어디로 옮겨도 화면 정중앙에 항상 떠있는 핀. 그 위치를 기준으로 주변 스팟 자동 검색
- 신기능📍 주변 스팟 리스트 — 지도 좌측에 anchor 기준 거리순 10곳. 각 카드에 거리 라벨(예: 320m / 1.2km)
- 신기능🧭 「내 위치」 버튼 — 지도 우하단, 한 번 누르면 현재 위치로 panTo + anchor 갱신. 모바일에서 가장 빠른 사용 흐름
- 신기능자동 위치 권한 요청 — /map 첫 진입 시 위치 권한 요청 → 허용하면 현재 위치 중심으로 자동 시작 (거부하면 한국 중앙). 거부 1회 기록되면 재요청 안 함
- 신기능데스크톱: 사진 호버/클릭 → 지도 panTo → anchor 자동 그 위치로 → 그 주변 스팟 자동 표시
- 개선/api/spots/nearby 확장 — 주소·좋아요·댓글·대표사진까지 응답에 포함, limit 파라미터 추가, 최대 반경 50km 지원
- 신기능스팟 본체 편집 — 본인/관리자가 이름·주소·카테고리·촬영종류·설명 수정 (PATCH /api/spots/[id]). AuditLog 자동 기록
- 신기능스팟 상세 헤더에 ✏ 편집 버튼 (본인 또는 admin)
- 신기능「스팟」 페이지 정렬 토글 — 🌟 추천 / 🔥 인기 / 🆕 최신 + 24개씩 페이지네이션
- 신기능「스팟」 페이지 「📍 내가 등록한 스팟」 가로 스크롤 — 카드별 ✏ 편집 / 📷 사진 추가 / 📖 가이드 빠른 액션. 「+ 새 스팟」 카드는 맨 왼쪽에 항상 노출
- 신기능「스팟」 페이지 헤더 + 새 스팟 버튼 + 라벨 정리
- 신기능사진 업로드 흐름에서 「원하는 스팟이 없나요?」 안내 박스 — 새 스팟 등록 후 자동 복귀
- 개선촬영 가이드 — 「촬영 포인트」 → 「촬영 위치」 라벨 변경, 「위험·주의」 입력 제거 (기존 데이터는 backward compat)
- 버그픽스모바일에서 /map 지도가 안 보이던 문제 — 모바일에선 지도가 위로 + 최소 480px 높이, 그 아래 스팟 목록 자연 스크롤
- 버그픽스/spots 서버 에러 가드 — 어느 쿼리에서 실패해도 페이지는 살리고 친절한 안내 표시
- 신기능스팟 본체 편집 — 본인 또는 관리자가 이름·주소·카테고리·촬영종류·설명을 수정 (PATCH /api/spots/[id]). 위치는 잠금. 상태 변경은 admin 전용. AuditLog 자동
- 신기능스팟 상세에 ✏ 편집 버튼 — 본인이거나 관리자일 때 헤더에 노출
- 신기능「스팟」 페이지 정렬 토글 — 🌟 추천(취향+시즌) / 🔥 인기 / 🆕 최신 + 24개씩 페이지네이션
- 신기능「스팟」 페이지 상단에 「📍 내가 등록한 스팟」 가로 스크롤 — 카드마다 ✏ 편집 / 📷 사진 추가 / 📖 가이드 빠른 액션
- 신기능「스팟」 페이지 헤더에 + 새 스팟 버튼 (로그인 시) + 헤더 라벨 「탐색 / 피드」 → 「스팟 둘러보기」
- 신기능사진 업로드 흐름에서 「원하는 스팟이 없나요?」 안내 박스 — 새 스팟 등록 또는 GPS 자동 매칭으로 빠른 진입. 등록 후 자동으로 업로드 단계로 복귀
- 버그픽스스팟 페이지 「봄 시즌」 추천 배너 — 라이트 그라디언트 (emerald → teal) 다크 페어 추가
- 버그픽스스팟 상세 좌측 — 「같은 빛 재현」 cyan 카드, 「시각·방위」 orange/violet/indigo 카드, 「실제 사용 장비」 평균 통계 박스 다크 일괄
- 버그픽스스팟 상세 지도 컨테이너 흰 배경 다크
- 버그픽스피드백 진행 단계 표시 — 비활성 단계(접수→검토→작업→완료) 글씨/원/연결선 다크 가독성, 상태 chip(검토 중·작업 중·완료) 색상 페어
- 버그픽스EXIF 통계 「표본 신뢰도 낮음」 amber 안내 박스 다크
- 버그픽스스팟 상세 「촬영 종류」 칩 7종(일출·골든·일몰·블루·야경·별궤적·일상) 다크 가독성
- 버그픽스지도 페이지 우측 회색 영역 — 지도 로딩 중에도 다크 톤으로 표시
- 버그픽스스팟·업로드·어드민의 흰 카드 잔존 영역 다크 적용 — globals.css 공용 .card 유틸 자체에 다크 페어 베이크
- 버그픽스어드민 대시보드 — 큐 카드(스팟 검수·신고·사용자·주차장)와 통계 타일이 다크에서도 또렷하게
- 버그픽스스팟 카드 「전체 사진 보기」 버튼 글씨 가독성 — text-gray-800 누락 매핑 보강
- 버그픽스피드백 「+ 새 피드백 보내기」 점선 버튼과 운영자 답변 카드의 다크 가독성
- 버그픽스업로드 위저드 단계 표시 칩과 스팟 검색 입력창 다크 대응
- 개선내브 「변경 이력」 아이콘에 "Update" 텍스트 라벨 추가 — 다른 메뉴와 일관
- 개선다크 모드가 모든 페이지에서 자연스럽게 — 스팟·어드민·피드백·업로드·변경 이력 등 전 페이지의 배경·텍스트·테두리가 다크 모드를 정확히 따라옵니다
- 개선메뉴 정리 — 상단 헤더는 로고·검색·내 프로필만, 그 아래 가로 메뉴 바로 [지도·갤러리·스팟·피드백·업로드] 통일. 모바일·PC 모두 깔끔
- 개선메뉴 이름 정리 — 기존 「피드」를 「스팟」으로 변경(아이콘 📰→📍). 의미가 더 정확해졌습니다. 외부 북마크는 자동으로 새 주소로 이동
- 개선감상 모드(풀스크린) 단순화 — 좋아요/댓글/삭제 버튼은 사진 페이지에서, 감상 모드는 사진과 EXIF에 집중. 마우스 휠로 이전/다음 사진 전환
- 신기능내 사진 삭제 — 본인이 올린 사진을 어디서든 직접 삭제할 수 있어요. 스팟 페이지·갤러리·풀스크린 등 7곳 진입점에서 한 번에 삭제. 받은 좋아요·댓글도 함께 정리됨
- 신기능관리자 주차장 검증 — 회원이 등록한 주차장을 관리자가 검토 → ✓ 검증 시 등록자에게 +5 포인트 자동 지급. 정확한 위치 정보 등록 동기 부여
- 개선새 사진 업로드 시 썸네일 자동 보장 — 서버에서 비율 유지 webp를 직접 생성·저장. 메인 페이지·갤러리·스팟 어디서든 즉시 정상 표시
- 버그픽스갤러리 캐러셀 — 가운데 큰 사진의 정사각 깜빡임/잘림 근본 해결. 사진 본래 비율로 첫 로드부터 정확히 표시
- 개선캐러셀 5장 표시 + 무한 wrap-around — 양옆 추가 사진까지 한눈에 보이고 끝에서 처음으로 자연스럽게 순환
- 신기능오늘의 사진 5장 carousel — 오늘/어제/이번주(월)/이번달/올해 5탭, 양옆 fade 사진 클릭 회전, 무한 wrap, 모바일 스와이프
- 신기능풀스크린 감상 모드에 카메라/화각/조리개/셔터/ISO 메타 + ♡ 좋아요 토글 + 💬 N개 댓글 → 댓글로 자동 스크롤
- 신기능스팟별 추천 렌즈 자동 가이드 — 사진 EXIF 분석으로 주력 화각 + 가장 가까운 인기 렌즈군 표시 (시드 더미 마커 제거)
- 신기능주차장 안내 — 사용자가 + 추가, 다른 분들이 ▲ 추천. 1순위는 자동으로 대표. '이 스팟과 같음' 체크 한 번으로 이름·주소 자동 입력
- 신기능점수 시스템 개편 — 콘텐츠 카운트 기반 (사진/스팟/받은 좋아요/받은 댓글) + 일회성 보상(EXIF·골든·시즌·발견·피드백 등) 2-track. 콘텐츠 삭제 시 점수 자동 감소
- 신기능📊 점수 내역 페이지 — 본인 프로필에서 내 점수가 어디서 왔는지 항목별 + 최근 거래내역 50건
- 신기능피드백 반영 완료 시 작성자에게 +100 점수 자동 적립
- 신기능내 피드백 진행 단계 시각화 — 접수 → 검토 → 작업 → 완료 4단계 (본인 글에만)
- 개선발견 갤러리 — 사진 비율 정확히 표시 (가로/세로 모두 letterbox 0)
- 개선피드백 카테고리 필터 + 정렬 토글 (공감순/최신순) + 본인 비공개 글도 '내 피드백' 탭에서 보임
- 개선어드민 피드백 처리 — 카테고리 + 상태 두 필터, 각 chip에 카운트 표시
- 개선신고로 콘텐츠 처리 시 작성자 점수 자동 감소 (어뷰징 차단)
- 개선사진 업로드 안전성 — 모든 단계 에러를 친절한 메시지로 변환
- 개선어드민 점수 수동 조정 시 등급 자동 재계산
- 개선사진 dimensions DB 저장 — 첫 로드부터 정확한 비율 적용
- 배포다음 — 어드민 주차장 검증 UI + 알림 시스템 + 모바일 하단 네비 재구성
- 신기능다크 모드 — 헤더 토글, 시스템 설정 자동 따라가기 (LocalStorage 저장)
- 신기능사진 풀스크린 감상 모드 (Lightbox) — 사진 상세 좌하단 + 스팟 갤러리 상단 Viewer 버튼
- 신기능모바일 하단 네비 5칸 — 홈/지도/업로드(FAB)/피드/마이, iOS 노치 자동 대응
- 신기능홈 화면 추가 안내 — 5초 후 가벼운 카드, 나중에 누르면 7일 침묵
- 신기능사진 업로드 자동 점수 적립 — 기본 +5, EXIF/골든아워/시즌/스팟 첫 발견 보너스 자동 합산
- 신기능댓글·좋아요·스팟 등록 점수 자동 적립 — 받은 좋아요/댓글도 작성자에게, 가입 7일 미만 어뷰징 가드
- 개선브랜드 로고 새 디자인 — i 글자 + 위치 핀 (info+travel+log 어원 시각화)
- 개선빈 상태 일러스트 5종 — 사진/스팟/검색/댓글/알림. 다크 모드 자동 stroke 변환
- 개선디자인 토큰 + 공용 컴포넌트 5종 — Button/Card/Chip/Modal/EmptyState
- 개선헤더 다크모드 가독성 — 메뉴/닉네임/admin 배지/로그아웃 모두 다크 대응
- 개선스팟 등록 승인 시 등록자 점수 자동 적립 (+20)
- 개선신고 처리 — 부적절 콘텐츠 처리 시 작성자 점수 차감 자동, 거짓 신고는 무영향
- 버그픽스타입 정합성 정리 — 빌드 안전성 향상 (검색/admin/LevelBadge/OAuth 콜백 등 7건)
- 배포다음 — 발견 갤러리 페이지 + 오늘의 사진 hero (홈/지도)
- 신기능같은 빛 재현 — 올해 + 내년까지 스캔, 좌/우 화살표로 연도 전환 (스마트 디폴트)
- 신기능지도 위 동적 안내 헤더 — ☀ 태양 위치 / 📷 사진 촬영 시점 의미 + 현재 활성 상태 표시
- 개선사진 미리보기 카드 슬림화 — 지도(스팟+@nick+♡💬), 그리드(촬영종류+@nick+화각)
- 개선사진 카메라 표시 — 제조사 중복 제거(Canon Canon → Canon) + 렌즈 정보 같이 표시 (RF 28-70mm)
- 개선사진 그리드 글씨/등급 chip 사이즈 정리 — 메인 사진과 통일
- 개선시각·방위 카드 — 컴팩트 디자인, daily 모드는 기준 날짜 표시, 클릭 가능 안내 부활
- 개선기준 날짜 카드 부제목 단순화 + 좌측 컬럼 460px / 지도 250px
- 개선댓글/지도/사진 카드의 작성자 LevelChip 일관 표시
- 배포[다음 작업 청사진] 디자인 시스템 토큰 먼저 → 모바일 bottom nav + 갤러리감 + 브랜드 정체성. 7주 로드맵 수립 완료 (SITE_DESIGN 부록 H)
- 신기능시각·방위 카드의 시간(블루/일출/골든/일몰)을 클릭하면 그 시각의 태양 방향이 지도에 화살표로 표시
- 신기능지도에 🔍 크게 보기 버튼 — viewport 풀스크린 + ESC/닫기 버튼
- 신기능지도 위 안내 헤더 — ☀ 태양 위치 / 📷 사진 촬영 시점 의미 + 현재 활성 상태 표시
- 신기능지도 carousel에서 사진 클릭 시 스팟 진입과 함께 그 사진 자동 선택 (?photo=ID URL)
- 신기능원본 사진 보기 — 새창(팝업) 토글 + 팝업 안 클릭/ESC로 닫기
- 신기능테스트 계정 시스템 (admin) — 다른 계정으로 임시 전환(impersonation), isTest 라벨, 인라인 role/level/points 편집
- 신기능댓글·지도·스팟 메인 사진에 작성자 닉네임+등급 chip(LevelChip) 표시
- 신기능스팟 헤더에 등록자 표시 (이전엔 본인 닉네임 중복) — 클릭 시 프로필
- 신기능포인트 시스템 코어(Phase C Step 1) — REASON 카탈로그·awardPoints·등급 자동 산정·어뷰징 가드 helper
- 개선스팟 상세 레이아웃 대개편 — 좌측에 모든 컨텍스트(날짜·시각방위·지도·촬영종류·EXIF 통계), 우측은 사진+댓글에만 집중
- 개선촬영 종류 chip → 사진 그리드 필터로 동작 (이전엔 모드만 변경)
- 개선사진 카메라 표시 — 제조사 중복 제거(Canon Canon → Canon) + 렌즈 정보 같이 표시
- 개선사진 미리보기 카드 슬림화 — 지도(스팟+@nick+♡💬), 그리드(촬영종류+@nick+화각)
- 개선시각·방위 카드 — 골든/블루 표현 정정 + 아침/저녁 2칼럼, daily 모드는 기준 날짜 표시
- 개선세로 사진 좌우 검은 여백 제거 — 컨테이너가 이미지에 shrink-wrap
- 개선기준 날짜 카드 부제목 단순화 + 시간 클릭 안내 한 줄 hint
- 버그픽스사진 캐러셀 좌/우 화살표 안 먹는 버그 (?photo=X 진입 시 useEffect deps 충돌)
- 버그픽스지도 태양 화살표가 frame 밖으로 나가 안 보이던 문제 (fitBounds에 화살표 끝점 포함)
- 버그픽스스팟 상세에서 큰 세로 사진 시 지도가 사라지던 문제 (페이지 스크롤 복구)
- 버그픽스사진 상세 메인 사진/스팟 메인 사진의 세로 사진 위·아래 잘림
- 신기능프로필에 카메라/렌즈/삼각대/드론/액션캠/짐벌/기타 7개 카테고리 등록
- 신기능사진 업로드 시 EXIF로 장비 자동 추천 + 사용자가 추가/거절 선택
- 신기능DJI 드론 코드명 자동 친숙명 매핑 (FC8482 → DJI Mini 4 Pro 등 20개+)
- 신기능Sony α 시리즈, GoPro, Insta360 등 매핑 추가
- 신기능공개 프로필에 카테고리별 장비 카드 (제조사별 그룹 + 더보기 토글)
- 신기능사진 자동 리사이즈 (3000px / 25MB) + 원본 EXIF 보존
- 개선촬영 종류 자동 하이브리드 — 등록자 추천 외에도 자유 선택, 3장+ 누적 시 자동 합류
- 개선사용자 등급 뱃지 클릭 → 등급/포인트 정책 모달
- 개선프로필 SNS 링크 — 인스타/유튜브/X/쓰레드는 ID만 입력하면 URL 자동 생성
- 버그픽스프로필 닉네임 변경 시 헤더 즉시 반영 (DB fresh)
- 버그픽스장비 입력 input 한 글자 후 focus 잃던 버그 수정
- 버그픽스사진 카드 화각 표시 — 35mm 환산 없으면 실제 focal length로 폴백
- 배포infotravelog.com 운영 도메인 라이브 (Vercel + Supabase + AWS)
- 신기능네이버 OAuth 추가 — 카카오/구글/네이버 3종 모두 동작
- 신기능멀티 OAuth — 한 사용자가 여러 provider로 로그인 가능 (자동 계정 연결)
- 신기능회원 시스템 기초 (포인트·뱃지·SNS 링크 DB 스키마 준비)
- 신기능프로필 편집 페이지 + SNS 링크 관리 + 등급 표시
- 배포InfoTravelog 베타 사이트 런칭 — 지도 기반 사진 스팟 공유
- 신기능사진 업로드 + EXIF 자동 추출 (카메라/렌즈/화각/촬영시간/GPS)
- 신기능스팟 등록 + Kakao Local API POI 검색
- 신기능CloudFront 썸네일 자동 생성 (Lambda)
- 신기능다국어 OAuth (Google · Kakao · Naver)
안정성과 품질 강화
로그·오류 응답 보안 정리
라이트·그레이 테마 확대
공개 사이트 접근 복구
오늘도 여행 로고 v2
Prompt Lab AI 추천
Prompt Lab DB 적용
Prompt Lab 정밀화
사진강의 편집 도움말과 M2 보강
사진강의 편집 영역 복구
KTO 한방 처리 안정화
Prompt Lab Phase 1
강의 편집기 r3 보강
사진강의 M2 렌즈 보강
사진강의 슬롯 단순화
Prompt Lab 자동 분석
LessonEditor WYSIWYG 안정화
Prompt Lab 골격
사이트 비공개 전환
사진강의 편집기 확장
사진강의 실제 미리보기
사진강의 관리자 편집 보강
사진강의 예시 사진 슬롯
Admin stats entry and lab theme guard
Lab dark mode P0 보정
검증 Day 1 보정
공식 장소 점진 수집 골격
관리 위험 작업 정합
관리 Phase 2 정교화
콘텐츠 일괄 작업
사용자 관리 작업 탭
신고 우선순위 자동화
문서 권한 분류 보강
관리 시스템 골격
행사 후보 색상 연결
점수 근거와 FrameType 기준 측정 연결
장소 후보 클릭 기록 연결
계획 흐름 기록 연결
운영 기준 대시보드
빠른 계획 데이터 문구 정리
자동 코스 용어 정리
Lab 공유 배지 한국어화
Lab 공유 라벨 정리
하루 코스 칩 라벨 정리
Lab 보조 라벨 한국어화
내 출사 헤더 라벨 정리
Lab 저장 CTA 라벨 정리
빠른 계획 코스 라벨 정리
자동 코스 보완 후보 분류
Lab API handoff 라벨 정리
하루 코스 API 라벨 정리
사진 정리 API 라벨 정리
Lab 라벨 한국어 정리
Lab 저장 오류 안내
사진 정리 오류 연결
코스 시간표 기본 표시
내 후보 메시지 표시
내 후보 API 안내
내 출사 저장 표현
Lab 안내 문구 정리
매거진 초안 연결
스타일 신뢰도 표시
내 출사 저장 안내
내 출사 지표 정리
자동 코스 근거 보기
사진 정리 입력 검증
빠른 단계 API 연결
쉬어갈 곳 필터 정리
자동 코스 역할 보완
사진 정리 전달 정보
자동 코스 출발지 기준
Lab 5테마 표면 정합
오늘 조건 API 요약
오늘 점수 API 요약
찍을 곳 API 근거
쉬어갈 곳 API 근거
코스 API 근거 응답
사진 정리 API 선택 기준
사진 정리 선택 기준 보강
자동 코스 생성 근거 보강
오늘 조건·점수 좌표 메타 보강
자동 코스 시간 시뮬 정교화
쉬어갈 곳·하루 코스 요청 메타 보강
사진 정리 목적 별칭 메타 보강
찍을 곳 API 필터 투명성 보강
자동 코스 분류 별칭 보강
거리 chip 별칭 정합
KTO 카테고리 별칭 보강
쉬어갈 곳 링크 별칭 정합
하루 코스 앵커 상태 표시
쉬어갈 곳 필터 근거 표시
사진 정리 좌표 기본값 정정
사진 정리 API 후속 액션
쉬어갈 곳 문화 후보 확장
쉬어갈 곳 API 필터 정합
추천 필터 근거 표시
내 후보 만료 정리
내 후보 동기화 안내 안정화
자동 코스 안내 안정화
내 후보 안내 표시 정리
쉬어갈 곳 API 메타 보강
자동 코스 초안 비우기
코스 촬영지 우선 배치
코스 시간 기준 보강
찍을 곳 필터 보완
빠른 코스 흐름 칩 추가
하루 코스 API 거리 프로필
자동 코스 거리 흐름 표시
사진 정리 초안 응답 정리
자동 코스 근거 자동 표시
하루 코스 단계 앵커 연결
쉬어갈 곳 반경 필터 반영
찍을 곳 필터 빈 결과 보완
찍을 곳 화면 다양성 재선정
사진 정리 API 프리플라이트
하루 코스 API 후보 앵커
쉬어갈 곳 API 후보 연결
Nearby 추천 다양성 재선정
오늘 추천 후보 풀 확장
내 후보 분류 표시
쉬어갈 곳 식사 후보 분리
오늘 조건 추천 다양성
자동 코스 분류 단서
Nearby 거리 필터
Quick 장소 필터 정렬
자동 코스 KTO 연결
Nearby KTO 필터
Quick KTO 분류 다중 선택
KTO 분류 다중 선택
Lab 목적 query 구분자 보강
Quick·Plan 내비게이션 접근성 보강
Lab CTA 터치 박스 정리
Quick 목적 chip 터치 보강
Journey 탭 접근성 보강
Lab 목적 한글 alias 보강
Lab 링크 터치 보강
테마 칩 터치 기준 통일
빠른 출사 필터 터치 보강
자동 코스 시간 감각 보강
테마 자간 규칙 정리
빠른 사진 정리 검증
자동 코스 기준 힌트
자동 코스 후보 정렬 정교화
Lab Style·Journey Modern 정합
Plan Modern 시각 연결
자동 코스 복원 목적 정리
빠른 계획 API 목적 정합
자동 코스 목적 alias 보강
빠른 사진 API 이동 맥락 보강
자동 코스 후보 목적 표시
사진 업로드 위치 맥락 보존
자동 코스 식사 후보 배치 보정
빠른 코스 요약 기준 보강
빠른 사진 정리 API 검증 보강
자동 코스 시간 기준 표시
자동 코스 단계 카드 단서 보강
내 후보 카테고리 라벨 정리
자동 코스 근거에 거리 단서 추가
내 후보 메타 정보 확장
자동 코스 보완 링크 맥락 유지
Lab Plan 저장 맥락 보존
Lab Journey 저장 링크 위치 보존
Lab Journey 초기 위치 반영
Lab Style 다음 흐름 위치 보존
Quick 사진 정리 위치 흐름 보존
Plan 후보 없이도 자동 초안 만들기
Quick 공유 URL 필터 보존
Quick 쉬어갈 곳 fallback 연결 정리
Quick 장소 보조 필터 흐름 정리
Plan 자동 보완 후보 흐름 정리
Quick 쉬어갈 곳 필터 연결
Quick 장소 필터 연결
Plan 보완 후보 연결 정리
Plan 수동 틀 만들기
Quick 코스 시간 보강
Lab 위치 목적 정규화
Lab 저장 링크 정리
Lab 목적 alias 동기화
Style 목적 맥락 보강
Lab 내 출사 흐름 정리
Quick 스타일 이동 맥락 보강
Quick 사진 업로드 링크 보강
자동 코스 목적 전환 보강
Upload 내 출사 문구 정리
Upload 목적 맥락 보강
Journey 사진 추가 보강
Journey 탭 링크 보강
Style 공유 링크 보강
Quick 공유 링크 보강
Plan 공유 링크 보강
Plan 장소 링크 보강
추천 위치 링크 보강
Lab 내 후보 빈 상태 링크 보강
Lab 점수 모달 조건 링크 보강
Lab 자동 코스 보완 링크 정리
Lab 빠른 계획 연결 보강
Lab 목적 연결 보강
자동 코스 시간표 보강
내비게이션 터치 보강
Lab 피드백 입력 보강
Journey 터치·모달 보강
Lab 저장·위치 조작 보강
소프트 추천 모달 보강
내 후보 트레이 터치 보강
자동 코스 모달 사용성 보강
테마 선택 칩 터치 정리
테마 폰트 로딩 정리
Lab 상세 모달 사용성 보강
테마 속성 분리 정합 보강
Lab 코스 제안 기준 보강
Lab 사진 정리 단계 보강
Lab 쉬어갈 곳 흐름 보강
Lab 코스 수정 흐름 보강
Lab 자동 코스 기준 보강
Lab 찍을 곳 탐색 보강
KTO 카테고리 색 정리
Lab 사진 정리 시작 보강
Lab 빠른 계획 보강
KTO 음식점·문화시설 보강
사이트 테마 선택 확장
Lab Modern 화면 보정
KTO 관광지 추가 보강
Lab 장소 추천 다양성 보강
Lab 내 후보 코스 흐름 정리
KTO 관광지 데이터 보강
Lab 로그인 복귀 흐름 보강
Lab 공유 링크 목적 유지
Lab 후보 목적 검증 보강
Lab 목적 선택 흐름 정리
Lab 후보 저장 버튼 동기화
Lab 후보 링크 검증 보강
Lab 후보 종류 검증 보강
Lab 저장 안내 정리
Lab 후보 저장 데이터 정리 보강
Lab 저장 트레이 localOnly 안정화
Lab 자동 배치 후보 동기화
Lab 빠른 계획 진행 표시 보강
Lab 목적 점수 카피 정리
Lab 후보 저장 영속화
Lab 빠른 계획 후보 연결
Lab 빠른 계획 저장 트레이
Lab 빠른 계획 보강
Lab 제대로 출사 계획
Lab Modern 정밀화
빠른 출사 계획 허브
목적별 출사 점수
Lab 테마 비교
Lab 공유·UTM 추적
Lab Today base 완성
Lab Phase 2 정교화
Lab Today 추천 고도화
Lab 통계 운영 보강
Lab 베타 기반 정리
홈 베타 미리보기
Lab 잔여 보강
Lab Journey 명시 저장 흐름
Lab Today 다크 톤 정리
Lab Today 카드 가독성
Lab Style 정사각 공유 카드
Lab Journey 출사 흐름
Lab Style 공유 결과 우선
Lab Today 피드백 연결
Lab Journey 공유 카드
Lab 피드백 중복 방지
Lab 통계 API 추가
Lab 통계 Journey 반영
Lab Journey 연결 보강
Lab Today API 추가
Lab 체험 흐름 보강
Lab 3개 진입
Lab 시안 디자인 반영
출사 캘린더 날짜 선택
Lab 피드백 운영 적용
KTO 큐 상세 보강
KTO 데이터 적재 보강
운영 도구 보강
Lab 오늘 촬영 판단
SNS 공유 준비
출사 카드 카피 정리
강제 다크 회귀 보강
지역 페이지 SEO 정합화
KTO 관광지 수집 복구
사진강의 저장 복구
출사 카드 Phase 1
축제 보강 데이터 복원
출사 카드 골격
Track 1 긴급 안정화
홈 공지 폭 확장
사진강의 이미지 업로드 복구
KTO 수집 진단 보강
사진강의 본문 정리
홈·사이트 소개 재작성
FrameType 공유 이미지 캐시
출사 가이드 공유 메타 보강
출사 캘린더 삭제 동기화
해외 주소 검색 제목 보강
공개 페이지 메타 정리
지도 빈 화면 완화
도구 안내 모달 정리
모바일 가로 넘침
픽처 레코드 최소 컷
픽처 레코드 공유
FrameType 공개 설정
FrameType 인스타 카드
FrameType 프로필 저장
FrameType 카톡 공유
FrameType 최근 결과
FrameType 16 유형 맵
FrameType 비주얼 키트
FrameType 탐색 루트
FrameType 정식 문항
FrameType 결과 보강
픽처 레코드 공개 발행
FrameType 16 사진 취향 테스트
픽처 레코드 편집 발행
픽처 레코드 저널 저장
픽처 레코드 발행 준비
사진 묶음 매거진 초안
픽처 레코드 미리보기 보강
픽처 레코드 초안
프로필 트래블로그 개편
출사 세션 입력 보강
출사 세션 연결 정리
출사도구 세션 브릿지
출사 세션 관리 보강
사진·지도 다크모드 고정
출사 세션 사진 연결
출사 세션 MVP 기반
출사 도구 카피 정리
로그인 쓰기 흐름 연결
출사 도구 워크플로우 허브
Track 1 다크 가독성 점검
갤러리 다크모드 복구
전체 사이트 리뷰 대시보드
KTO 자동 수집 드립 모드
KTO 가져오기 안정화
스팟 Pioneer 기준 보정
장소 통합 검색 등록
게시글 빌드 안정화
sitemap 빌드 안정화
해외 주소 검색 우선순위 보정
사진 업로드 장소 선택 보강
v2.52 영수증 인증 세부 보강
v2.52 영수증 장소 인증 Phase 0
/upload 사진 올리기 오류 방어
/places 스팟 목록 v2 디자인 반영
지역 하위 페이지 v2 디자인 반영
홈 시즌·큐레이션 카드 재배치
홈 공지 티커 다크 가독성 보정
🌌 AR + 은하수 통합 Phase 0 — 코어 + 은하 적도 띠 (r12)
홈 시즌 카드 높이 보정
출사 도구 일반/프로 흐름 정리
출사 캘린더 계획 추가 구현
📷 AR 카메라 ON/OFF 토글 + 자세 센서 안정화 (r11)
주요 페이지 v2 목업 디자인 일괄 반영
사진 상세 v2 목업 디자인 반영
출사 모임 v2 목업 디자인 반영
AR 시각화 v2 목업 디자인 반영
출사 계산기 v2 목업 디자인 반영
출사 캘린더 v2 목업 반영
🧭 AR 미니맵 ↔ 오버레이 좌표계 정합 + 보정 안내 (r10)
AR 미니맵 확대 보기 추가 (r9)
홈페이지 v2 목업 반영 — photo-first 홈 개편
AR 디버그 HUD 센서 경로 표시 (r8)
🗺 AR 미니맵 — 2D 지도 + 3D AR 동시 시각화 (r8)
🛰 AR AbsoluteOrientationSensor 도입 (r7) — 브라우저 native quaternion 융합
🔒 AR compassType sticky lock (r6) — Samsung 디바이스 깜빡임 완전 차단
🎯 AR 「떠다님」 근본 원인 fix (r5) — 이벤트 깜빡임 차단
🛰 AR 절대 좌표 이벤트 + 디버그 HUD + 필터 보강 (r4)
🌞 AR 해 위치 +6h 오차 r3 + 📷 카메라 버튼 항상 표시
🧭 AR 해 위치 정합 fix + 📷 카메라 권한 버튼 (r2)
🌌 AR 시각화 「떠다님」 사고 fix — Phase 1
가이드 검색 정합성 정리
출사 가이드 9종 구조 통일
출사 가이드 8종 보강
출사 가이드 v2 개편
최근 작업 묶음 정리
스팟 삭제 버튼 이동
스팟 아너 보드 압축
지도·지역 v2 목업 반영
사진 업로드 등급 규정 표시
스팟 상세 목업 반영
출사 모임 만들기 화면 정리
장소 등록 화면 정리
GPS 자동 매칭 업로드 정리
업로드 등록 목업 반영
스팟마스터 점수 안내
프로필 Pioneer 섹션 추가
스팟 명예 보드 분리
다중 사진 업로드 Phase 0
스팟 마스터 운영 큐 추가
스팟 마스터 목업 반영
출사 도구 허브 목업 반영
모임 도구 URL 직접화
AR 도구 URL 직접화
물때 그래프 표시 연동
코스 라이브러리 도구화
출사 캘린더 보드 강화
출사 캘린더 베타 전환
AR 시각화 메타 정보 정리
AI 카메라 추천 베타 전환
출사도구 메타 타이틀 정리
KASI 응답 오류 판독 강화
물때 모바일 포인트 즉시조회
물때 모바일 종합조회 개선
물때 종합 조회 흐름 개선
물때 종합 카드 조회상태 강화
물때 플래너 v2 목업 디자인 반영
물때 Pro 일정 내보내기 추가
물때 Pro 브리핑 복사 추가
물때 Pro 후보 적용 흐름 추가
물때 플래너 Basic/Pro 모드 분리
물때 플래너 KASI 월령 API 판독 보강
🗺 /map 에 행사 핀 토글 추가 (축제·공연·행사 색상 구분)
Vercel Pro KTO cron 시간 한도 정합
빛 타임머신 Pro 목적별 후보 계산
빛 타임 머신 Pro 재현 목적 선택
🏷 /festivals 축제·공연·행사 자동 분류 + 카드 이미지 fallback
🗺 /festivals 레이아웃 재구성 — 시·군 페이지 동일 구조 + 3 컬럼 일정
⚡ Vercel Pro 한도 반영 — KTO 데이터 자동 수집 강화
빛 타임 머신 후보 시간 표시 보강
빛 타임 머신 빈 후보 안내
빛 타임 머신 주말 배지
빛 타임 머신 Pro 정렬
빛 타임 머신 Pro 리포트
빛 타임 머신 Pro 후보 복구
빛 타임 머신 Pro 브리핑
빛 타임 머신 Pro 재구성
🗺 /festivals 3 분류 (축제·공연·행사) + 시간 슬롯 + 시·군 grid 자동 컬럼
빛 타임 머신 상위 후보 비교
빛 타임 머신 빛 재현 전략 요약
✅ 행사 데이터 보강 카운트 정상화 (r3)
빛 타임 머신 촬영 실행 카드
빛 타임 머신 빛 매칭 설명 추가
🎯 행사 데이터 보강 카운트 정상화 (r2)
빛 타임 머신 후보 필터 강화
빛 타임 머신 후보 내보내기
빛 타임 머신 히트맵 강화
빛 타임 머신 사진 빛 재현
🎉 행사 데이터 보강이 반복되던 사고 fix
✨ AR 별 위치 정밀도 한 단계 ↑ (실제 적용)
📖 사이트 소개 v2 — 9 섹션 + 4 축 사용자 + 9 도구
🌌 AR 별자리 88개 + 정밀 좌표 변환
🌙 다크 모드 카드 그림자 한 단계 또렷
📚 모듈 페이지 끝에 「이 모듈과 연결된 사이드 코너」 자동 section
📡 사진강의 RSS feed + Open Graph 메타 강화
출사 계산기 모드 차별화
출사 계산기 브리핑 UI 개선
출사 계산기 현장 플래너 보강
📖 사진강의 admin 운영 가시성 + SEO 보강
🔍 사진강의 검색 풀 페이지 (/lessons/search)
📖 사진강의 자율 폴리시 batch — anchor 복사 + 트랙 알림 + print + cross-link 확장
📚 사진강의 cross-link blockquote 시각 보강
📖 사진강의 모바일 검색 + 본문 ↔ 사이드 코너 cross-link
❓ 사진강의 「어디서부터 시작할까?」 3 질문 진단
🔍 사진강의 검색 (Ctrl+K) — 본문 통합 검색
물때 플래너 선택일 예보 정합
📖 사진강의 「더 깊이 들어가기」 사이드 코너 8 토픽 활성화
물때 플래너 다크 모드 고정
📖 사진강의 인터랙티브 셔터·ISO 시각화 보강
물때 회원 사진 배지
📖 사진강의 편집기 — 드래그 앤 드롭 + 갤러리 + 다중 업로드
물때 회원 사진 배지
📖 사진강의 「이어보기」 카드 + reading time + 키보드 단축키
물때 즐겨찾기 복원
물때 대표 사진 고정 UI
📖 사진강의 모바일 챕터 nav + 진척률 표시
물때 대표 사진 고정 API
🌙 다크 모드 카드 그림자 한 단계 또렷하게
물때 촬영지 DB overlay 연결
물때 촬영지 DB 마이그 준비
물때 플래너 모바일 BottomSheet
물때 촬영지 운영 큐 v2.47
📖 사진강의 편집기 보강 — split-view 미리보기 + 백업 복원
📖 사진강의 본문 admin 편집기 (Option B WYSIWYG)
🌊 물때 플래너 조건 카드 v2.47 Step 1a
✨ 출사 도구에서 「별 사진 가이드」 중복 카드 제거
🎓 출사 도구 「사진 강의」 → 실제 강의 페이지로 연결
🧭 사이드바 폭 축소 + 접힘 상태 아이콘 중앙 정렬
🧭 사이드바 메뉴 정리 + 사이즈 한 단계 ↓
🌌 AR 시각화 좌표계 fix — 북극성·해·달이 하늘 쪽에서 보이도록
🔭 홈 「둘러보기」 카드에 스팟 이름·작성자 표시
🔐 로그인 상태에서 사이드바 「로그인/가입」 잘못 표시 fix
🌙 다크 모드 글씨·테두리 r3 — 한 단계 더 ↑
🌙 다크 모드 회색글 한 단계 더 ↑ + AMOLED 모드 폐기
🌗 사진 상세 · 갤러리 · 지도 라이트 모드 지원
🌙 다크 모드 가독성 보강 — 글씨·테두리·층위 동시 ↑
🎨 다크 강제 정책 정리 + 갤러리 빈 영역 fix
🛠 출사 도구 허브 12 가지로 r7 보강
🛠 출사 도구 허브 10 가지로 복구
🎉 축제 정보 풍부하게 표시 (행사 탭 v2)
🌌 AR 화면 magnum 톤 일관 정리
사이드바 도구 메뉴 정리
축제 정보 더 풍부하게
KTO 축제 빈 필드 보강
KTO 일괄 보강 남은 수 표시
KTO 일괄 보강 오류 원인 표시 개선
KTO 행사 일괄 보강 추가
축제 정보 자동 보강 확대
KTO 축제 백필 실행 안정화
KTO 검수 승인 오류 수정
KTO 축제 데이터 연결 안정화
지도 라이트 모드 정리
축제 지도 경계선 정리
홈 다크 카드 가독성 개선
축제 지도 테마 대응
축제 지도 Mapbox 전환
축제 지도 시·군 드릴다운
물때 추천지 관리 체계
🎉 축제 카드·핀 팝업 톤 정리 (검수 ★ magnum)
🔗 legacy URL → /places 통합 (308 영구 리다이렉트)
📍 위치 수정 모달 v2.0 — 모바일 confirm 깨짐 fix + 안내 가독성 ↑
📰 변경 이력 페이지 v2.0 — 종류별 필터 + Editorial 톤
🎨 디자인 시스템 v2.0 — Photo-first + Editorial 톤
📚 사진강의 (Foundations) 사이트 골격 박제
🗺 축제 지도 17 region 가시성 fix (P0 즉시)
🗺 AR W6 — Map Fallback 뷰 (자력계 없는 디바이스)
🌐 AR W5 — Dome Fallback 뷰 (카메라 없이 3D 천구)
✦ AR W4 — Constellation 별·별자리 (30 별 + 14 별자리)
🌌 AR Phase 0 후속 — 다국어 + 폴백 뷰 + 센서 융합
🌌 AR W2 후반 — Visual Calibration 의무화 (정확도 7 배 향상)
축제 지도 실제 지도화
물때 출사지 추가 확장
축제 지도 데이터 추가
축제 지도 전환 준비
생태 물때 출사지 보강
Design v2 테마 경로 보강
물때 출사지 18곳 추가
축제 지도 기반 추가
물때 출처 관리 구조
v2.41 내비게이션 정리
물때 출처 표시 확대
물때 자료 출처 고지
조위 대체 관측소 확대
조위 장애 자동 대체
물때 관측소 권역 보강
운영 안정화 4종 보강
Design v2.0 P0 코드 동기화
출사 도구 통합 + 디자인 리프레시 계획
출사 모임 코스 보상 시스템
로그인 P2022 대응
카카오 오류 재시도 보강
카카오 인앱 로그인 보강
모바일 OAuth 링크 호환
OAuth 실패 원인 추적 보강
레거시 OAuth 계정 재연결
로그인 AccessDenied 처리 개선
iOS OAuth 쿠키 호환성 보강
아이폰 로그인 안내 보강
명함·500px 리서치 저장
최근 작업 전체 저장
검색 등록 기록 저장
작업 이력 대시보드 보강
모바일 UX 작업 전체 저장
섬·포구 물때지 20곳 추가
동해·제주 물때지 20곳 추가
물때 추천지 20곳 추가
물때 추천지 14곳 추가
물때 추천지 11곳 추가
물때 추천지 26곳 추가
물때 전국권 20곳 추가
AI Vision 세부 설정
오늘의 빛 방향 선택
물때 추천지 21곳 확장
프로필 통계 박스 보강
그랜드마스터 프레임 복구
물때 추천지 6곳 추가
그랜드마스터 동적 루비
프로필 SNS 미니멀화
프로필 헤더 명암 보강
물때 계획 저장 보강
오늘의 빛 실행 계획
프로필 소개 직접 수정
프로필 SNS 아이콘화
그랜드마스터 블랙루비
물때 현장 실행 카드
창립회원 속도 완화
물때 계획 링크 복원
AI 진단 근거 표시
프로필 사진 집중 보기
오늘의 빛 지도 판단 개선
창립회원 테두리 속도 조정
확정 장비 요약 표시
장비 진단 공유 보강
등록 CTA 경로 정리
창립멤버 프레임 보정
장비 후보 정보 보강
스팟 헤더 버튼 통일
장비 후보 미리보기
창립멤버 색상 보정
장비 후보 서버 일괄 처리
창립멤버 링 애니메이션
홈 출사도구 구성 정리
오늘의 빛 앱오류 보정
창립회원 프레임 색상 속도 개선
장비 후보 일괄 확정
오늘의 빛 지도 확대
오늘의 빛 지도 추적
물때 위치 추천 강화
장비 진단 확정 링크 개선
물때 자동조회 준비
AI 장비 진단 액션 연결
물때 촬영 플래너
AI 장비 진단 요약 복사
다음 장비 방향 리포트
오늘의 빛 피크 판단표
출사 조건별 장비 체크
AI 장비 진단 MVP
오늘의 빛 추천 흐름 개선
오늘의 빛 태양달 방향 추적
오늘의 빛 프로 그래프 재정리
출사 계산기 모드 폰트 통일
오늘의 빛 모드 분리
출사 계산기 결과 카드 압축
출사 계산기 전문가 화면 압축
오늘의 빛 미세먼지 보강
출사 계산기 초보자 모드 확장
오늘의 빛 시간대별 예보 보강
오늘의 빛 출사판 보강
오늘의 빛 대시보드 오픈
출사 계산기 전문가·안내 모드 분리
출사 계산기 위치 검색 보강
출사 계산기 초보자 안내 추가
출사 계산기 메모·저장 추가
출사 계산기 프리셋 보강
출사 계산기 워크벤치 오픈
모바일 지도 메뉴 레이어 보정
브랜드 타이틀 정리
갤러리형 공유 미리보기
모바일 지도 메뉴 레이어 보정
사이트 미리보기 이미지 고정
모바일 피드 버튼 아이콘화
모바일 홈 메뉴 정리
스팟 버튼 형식 통일
스팟 버튼 표시 정리
홈 카드 노출 수 정리
사진 삭제 안정화
홈 섹션 순서 조정
모바일 보기 위치 조정
모바일 보기 다크 보정
사진 기록 출력 보강
회원용 모바일 보기 추가
사진 기록 입력 추가
창립회원 공개 표시 연결
SNS 링크 추가 오류 수정
창립회원 관리 콘솔 추가
프로필 사진 편집 추가
홈 공지 티커 흐름 보정
등급 예시 배치 조정
홈 공지 티커 추가
갤러리 감상모드 정리
등급 노출 예시 재정리
창립회원 사진 색상 보정
등급 종류 구분 표시 강화
창립회원 글레어 제거
마스터 프레임 금장 톤 복귀
한정판 창립회원 프레임 추가
마스터 계열 프레임 톤 분리
사진 태그 저장 경로 분리
등급 프레임 사진 침범 보정
등급 프레임 글레어 영역 보정
사진 태그 저장 안정화
등급 프레임 질감 통일
사진 태그 수정 장소 처리 보정
저장 컬렉션 미리보기 보정
등급 글레어 모션 예외
홈 근처 장소 탐색 개선
등급 글레어 회전 보정
사진 태그 수정 저장 보정
사진 좋아요 목록 비공개
스팟 카드 반응형 액션
회원등급 프레임 표시 보정
회원등급 프레임 연출 정리
전역 버튼 높이 강제 보정
미래 등급 프레임 미리보기 확장
사진 수정 페이지 다크모드 보정
프로필 등급 버튼 높이 정리
사진 게시글 관리·수정
등급 미리보기 프레임 깨짐 수정
등급 페이지 보상 미리보기
알림 카드 대비 개선
댓글 답글 UX 정리
관리자 프레임 분리
회원 등급 명칭 정리
프로필 등급별 아바타 프레임
KTO 자동 수집·보강 안정화
홈 피드 등급별 테두리 강화
홈 피드 작성자 등급 테두리
모바일 홈 댓글 링크 정리
모바일 홈 댓글 뒤로가기
SEO 메타데이터 보강
프로필 통계 목록 확장
홈 피드 연속 로딩
팔로우 관계와 알림 확장
프로필 팔로우 버튼 가독성
프로필 배지 순서 조정
프로필 배지 레이어 복구
회원 등급 안내 정리
AI Vision 분류 자동 적용
프로필 타이틀 배지 위치 조정
모바일 업로드 해시태그 간격 압축
모바일 업로드 해시태그 표시 정리
마스터 금가루 효과
모바일 사진 업로드 오류 대응
마스터 보석 반짝임
마스터 모션 예외
마스터 애니메이션 보정
마스터 프레임 강화
마스터 금장 글레어
회원 등급 안내 페이지
프로필 사진 집중 모드
프로필 다크 버튼 보정
프로필 탭형 정리
팔로우 DB 적용
팔로우 배포 방어
프로필 팔로우 추가
프로필 500px형 개편
KTO 가져오기 설정 추가
모바일 메뉴 밀도 조정
장소 목록 PC 화면 정리
댓글 알림 위치 이동 개선
헤더 알림 진입점 보강
홈 둘러보기 2줄 정렬
홈 시즌 카드 감성 복구
홈 카드 아이콘과 배치 정리
모바일 리뷰 배경 복원
홈 화면 정돈
알림 목록 UX 개선
지도 주변 리스트 사용성 보정
알림 수신 설정 세분화
지도 화면 목업 정합성 개선
홈 피드 지도 이동 보정
커뮤니티 알림 시스템
모바일 해시태그 표시 간소화
PC 홈 디자인 개선
홈 피드 지도 이동 수정
홈 댓글 시트 디자인 개선
좋아요 상태 표시 개선
홈 피드 배포 에러 대응
홈 피드 댓글 시트
모바일 디자인 개선 묶음 반영
모바일 홈 피드 링크 높이 보정
모바일 홈 작성자 헤더 렌더링 보정
모바일 홈 피드 상단 간격 보강
모바일 홈 피드 닉네임 위치 보정
모바일 홈 피드 헤더 고정 정렬
모바일 홈 피드 작성자 정렬 수정
모바일 장소 상세 제목 정리
모바일 사진 상세 정리
모바일 리뷰 배경 변경
모바일 지도 주변 패널 조정
모바일 리뷰 화면 정리
모바일 장소 상세 사진 정보 위치 조정
모바일 업로드 버튼 입체감 개선
모바일 장소 액션 버튼 축소
모바일 장소 상세 카드 순서 조정
모바일 홈·지도 CTA 정리
모바일 장소 상세 배치 개선
모바일 헤더 타이틀 가독성 개선
모바일 홈 피드 작성자 정렬 수정
모바일 버튼 여백 축소
모바일 리뷰 배경 정리
모바일 버튼 라운드 정리
모바일 페이지 제목 정리
모바일 하단 네비 정리
모바일 홈 피드 디테일 조정
모바일 사진 상세 헤더 개선
모바일 풀스크린 사진 개선
커뮤니티 글쓰기 추가
모바일 리뷰 2차 정리
AI Vision 사용량 제한 영속화
사진 업로드 Place 전환
AI Vision v2 상세 활용
모바일 리뷰 코멘트 1차 반영
모바일 리뷰 실기기 정합성 보강
AI Vision v2 정밀 분석
갤럭시 모바일 버튼 크기 보정
모바일 디자인 리뷰 페이지 추가
모바일 홈 피드형 전환
🧱 TypeScript 빌드 안정화
사진 해시태그 노출 위치 정리
📜 약관 v0.2 시행 안내 반영
모바일 목업 기준 UI 밀도 개선
🏷️ AI 해시태그 표시와 검색 연결
🐛 AI 출사 가이드 정확도 핫픽스
📖 v2.41 r6 — /about 보강 + /help 사용자 가이드 신규
🛠 출사 도구 r6 — 10 항목 확장 + 이름순 정렬
🔧 v2.41 r5 — 내 큐레이션·저장 페이지 에러 fix + 내 모임 위치 이동
🚀 KTO TourAPI 운영계정 활용 — 일일 import 100 → 500 행 (5 배 증량)
🗺 v2.41 r4 — 갤러리 「장소 찾기」 그룹으로 이동
🔧 v2.41 r3 fix — 내 컬렉션·저장 hub standalone (사이드바 흔들림·큐레이션 미노출 fix)
🛠 v2.41 r3 — 사이드바 단순화 (출사 도구 = 둘러보기 안 단일 메뉴)
🛠 v2.41 r2 — 사이드바 6 그룹 + 🛠 출사 도구 Hub + 올리기·등록 3 카드
🎁 v2.45 W1 — 코스 보상 시스템 (계층 보상·자작극 방지·검증 배지·영구 무료 자격)
⏰ 모임 시간 timezone fix — Vercel UTC vs KST 9h 어긋남
🌙 프로필 「내 장비」 카드 다크 fix
✎ 일정 편집 r7 — 라벨 명확화 + 잘림 fix + 슬롯 편집 + 공유 + 모임 정보 편집
📅 일정 편집 UX r6 — 세로 타임라인 + 인라인 form + 프리셋
🚀 배포 hotfix — Vercel Hobby cron 한도 (사이드바 메뉴·OG·가이드 반영)
📖 모임 host 가이드 — Step 1~6 안내
🎨 동적 OG 이미지 — 모임 SNS 공유 시 카드 자동 생성 (1200×630)
📷 photos ↔ meetup 연결 — 모임 사진 갤러리
🚨 admin alarm 통합 + 사이드바 출사 모임 메뉴
🔍 출사 모임 SEO 보강 — Open Graph + Twitter 카드 + sitemap
📈 admin/project — 24h 운영 활동 + OCR 신뢰도 섹션
🗑 retain_until cron — 만료 모임 영수증 사진 자동 정리 (PIPA)
🚀 v2.40 Phase 0 출시 준비 완료 — W6 베타 검증 9/9 PASS
📊 admin 프로젝트 대시보드 B+C — 검증 9 토글 + 박제 manifest 확장
📊 admin 프로젝트 대시보드 + 클로드 핸드오프 복사 버튼
🤝 출사 모임 W6 — 베타 검증 시나리오 박힘 (출시 준비)
🤝 출사 모임 r4 — host 제어 UI · Waitlist · 🛡 총관 분리 · 추천 배지
🤝 출사 모임 — v2.40 Phase 0 r3 통합 (admin 정책·코스 라이브러리·자동 마감)
🤝 출사 모임 — v2.40 Phase 0 W1~W5 (모집·일정·영수증·정산·참가 흐름)
📚 출사 가이드 9 종 신규 — 별사진 외 8 + 매크로
🗺 지도 시스템 완성 — lvl3 + 지역 필터 + 위치 수정
🤝 사이드바·BottomNav IA 재편 — 목적 기반 5 그룹
🤖 KTO 검수 큐 「✨ 한 방 처리」 + 음식점 휴리스틱
✨ 큐레이션 컬렉션 페이지 개선 — flat grid + 카드 미리보기
🐛 사진 미리보기·라우팅 안정화 (대규모 정정)
💄 프로필 편집 다크모드 + 회원 등급 안내 가독성
🐛 NearbySpotsList aside z-30 stacking — mapbox 가 카드 위에 떠 있던 문제
🐛 핀 popup 404 + 주변 카드 클릭 가로막힘 r2
🐛 NearbySpotsList Phase 2 통합 매칭 + KTO 클릭 안 됨 fix
💄 /upload preselected 모드 — Step 1 건너뛰기 + Place 헤더 명확
🐛 Phase 2 hidden Place 자동 복원 — 「+ 내 커뮤니티 추가」 막혔던 문제
🐛 /upload 가 ?placeId= query 못 받던 문제 fix
🚀 v2.28 Phase 2 — Place = 「회원 가공된 가치 있는 곳」 정의 좁히기
✨ 카페·맛집·숙박에도 「한국관광공사」 출처 라벨
🐛 surface 토큰 channel format 마이그 — `/95` opacity 문법 동작
💄 SiteFooter — 컴팩트 + 클릭 확장 (옵션 D) + sticky 레이아웃
🐛 미리보기 lat/lng fallback + 도구 페이지 footer 숨김 (r1, 철회됨)
💄 /places 「전체」 chip 제거 — 카테고리 single-select 강제
🐛 GalleryGrid 깨진 썸네일 fallback + 진단
🐛 지도 r3 — 토글 글씨 가독성 + 주변 스팟 미리보기 사진
🐛 지도 r2 — 관광지 토글 중복 제거 + 주변 스팟 카테고리 + 토글 다크모드
🐛 지도 — 사진 외 카테고리 토글이 안 보이던 문제 + landmark·lodging 토글 추가
🐛 Place 삭제 UI + 사진 삭제 spotId nullable 대응
💄 사진 리사이즈 3000px → 4000px + 누락 마이그 진단 SQL
🚀 v2.28 마무리 r4 — Spot/Photo 데이터 와이프 + Place-centric upload 전환
🐛 사진 업로드 — /places/new 로 만든 장소가 안 떴던 문제 fix r3 (백필 SQL 없이 동작)
✨ /places/new 검색 부활 — 네이버 POI + KTO + 영수증 OCR 자동 채움
💄 SunInfoCard (일출/일몰 시각·방위) 다크 r6 — TimeCard 와 톤 통일
💄 TimeCard·ShadowCard 다크모드 가독성 r6 — admin 페이지 톤 매칭
💄 스팟 상세 다크모드 톤 통일 r5 — TimeCard/ShadowCard/AstroCard ring 중성화 + SunPhaseColumn 다크
🐛 다크모드 추가 fix — /about · /feedback · 내장비 카드
🐛 TimeCard·ShadowCard·AstroCard 다크모드 elevation 고침
💄 페이지 폭 일관성 + 스팟 상세 layout 재배치
✨ 회차 A — Design REQ 5 적용 (토큰 + /places UX + meta)
🐛 사이드바 fix r10 — 진짜 원인: min-w-[140px] base class 가 데스크톱에도 적용
🐛 사이드바 fix r6 — sidebar-label hidden 처리가 안 먹던 진짜 원인
🐛 사이드바 폭 fix r3 — Tailwind arbitrary value → 표준 spacing token
✨ v2.38 W3-B — admin 강제 등급 부여 + 사이드바 폭 fix
✨ v2.38 W3-C — 점수 내역 페이지 등급 통합 + 변동 timeline
✨ v2.38 W2 — cron 자동 재계산 + 사이트 곳곳에 등급 표시
✨ v2.38 W1.6 — admin 이 등급 진입 점수 (cutoff) 직접 수정
✨ v2.38 W1.5 — /admin/ranking 페이지 (분포 + cutoff + dryRun·실제 적용 버튼)
✨ v2.38 Phase 1 W1 — 통합 활동 등급 (Spark·Bronze·Silver·Gold) 토대
🐛 Vercel Hobby 60s timeout fix — limit/numOfRows 안전치 + isGalleryShallow
🐛 일괄 보강 「비어있는 것만」 이 갤러리 비어있는 Place 못 잡던 사고 fix
🐛 시드 재실행이 기존 Place 갱신 안 하던 사고 fix
🌱 KTO 시드 default 값 갱신 — 「상세도 가져오기」 ON, numOfRows 50
📷 KTO 갤러리 자동 갱신 — 시드·apply 도 fetchDetailImage 통합
📷 KTO 공식 사진 갤러리 — firstimage + detailImage gallery
🐛 RestaurantPanel 표시 누락 fix — 전화·소개·메뉴·cuisine raw 코드
🔄 KTO 일괄 보강 + RestaurantPanel admin 버튼
⚙ KTO 필드 선택 페이지 — admin 이 체크박스로 노출 결정
📍 Place.address 컬럼 신규 — 위치 중심 사이트의 핵심 필드
🌐 KTO 모든 카테고리 매핑 확장 + 시드 「상세도 가져오기」 옵션
🔄 KTO 음식점 detailIntro → cafe_meta 자동 보강 (admin 트리거)
🌱 KTO 수동 시드 트리거 — admin 페이지 버튼 (cron 자동 → 수동)
🧾 v2.35 §4.11 — 영수증 「방문 증거」 + 단골 뱃지 + 본인 통계
📜 v2.35 §4.10 — 메뉴 50 개·검증자·갱신 이력·신고 시스템
🧾 영수증 OCR UI + 메뉴 등록 권한 완화 (v2.35 §4.9 Q4)
📱 모바일 사이드바 햄버거 drawer + ViewToggle 사이드바로 이동
🐛 ViewToggle — 페이지 전환 시 PC 모드가 풀리던 사고 fix
💻 모바일에서 「PC 버전으로 보기」 토글 (footer)
📋 v2.35 §4.9 W2 — MenuOcrUploader UI + Place 메뉴 commit API
🤖 v2.35 §4.9 W1 — 메뉴판·영수증 OCR API + 메뉴 신선도
☕ v2.35 Step 2 — Cafe 패널 풍부화 (창문·자리·촬영·자리 빛) + AR 베타 안내
🌌 AR Phase 0 M5 — BETA 출시 + HTTPS 검증 + 피드백 링크
🌌 AR Phase 0 M4 — 캘리브레이션 정확도 + iOS 자동재생 fallback
🌌 AR Phase 0 M2·M3 — 시간 슬라이더·태양 궤적 + 진입점 3 곳
🌌 AR Phase 0 M1 — 천체 시각화 첫 prototype (북극성·태양·달·나침반)
🐛 「사진 더 보기」 잘못된 spot URL + 갤러리 사진 크기 보정
🐛 /map 핀 잘못된 장소 + 스팟 상세 좌측 패널 컴팩트화
🐛 PhotoTab 후속 fix — 자동 사진 선택·갤러리 페이지·계산기 5종 헤더
🐛 Place 사진 탭 hydration error fix — server component 전환
📷 Place 상세 사진 탭 부활 — TimeCard·SpotInteractive 전체 통합 (v2.32 § 1)
📤 업로드 UX 강화 + 카카오 공유 + 검색 자동완성 (UX § 4 # 11·14·15·17)
🌐 SEO + footer + 약관 변경 모달 + 구조화 데이터 (UX § 4 # 23·24·28·30)
🔐 회원 탈퇴 + 데이터 다운로드 + legacy redirect 활성화 (UX § 4 # 3·6)
🔎 /search 통합 검색 — Place·태그·해시태그·사진·가이드 6 인덱스 (UX § 4 # 1)
🔄 /places 무한 스크롤 — IntersectionObserver + cursor 기반 (UX § 4 # 2)
🔐 회원 흐름 fix — 로그아웃 진입점 + 로그인 버튼 강화 + URL 보정
💄 UX 묶음 — 홈 첫 방문자 카피 · 모바일 Place 탭 · EXIF 동의 모달 · EmptyState
🚀 SEO + 운영 가시성 묶음 — sitemap·robots·OG image 자동 + admin 「오늘 처리할 일」
🔗 SNS 링크 unique 완화 + 친절 에러 — userId+platform → userId+url
📊 v2.31 단기 + B2 본인 통계 — /profile/stats 신규 (카테고리 점수·EXIF 인사이트·다녀간 지역)
🧱 Phase B — 디자인 시스템 보강 (Input·Select·Textarea + Modal v1.1)
🔐 v2.29 S2 — EXIF 풀 추출 (analytics_events 차별 자산) + 옵트아웃 4 토글 (PIPA 의무)
💄 홈 시즌 카드 라이트 모드 가독성 — 4 시즌 그라디언트 한 단계 진하게
📊 v2.29 S1 — 행동 로그 events 인프라 (append-only · 익명 hash · 5 인스트루먼트)
📜 약관 v0.2 — 한국어 + 영문판 (GDPR·CCPA) 사이트 적용
🎨 v2.28 r2 S5.3~S5.8 — Place UI 통합 (상세·등록·캘린더·신고·admin·redirect)
🎨 v2.28 r2 S5.1·S5.2 — Place 토큰 + 핀 시각화 + popup
🧱 v2.28 r2 S4 — Place API 12 endpoint (공개·행사·admin·cron)
🧱 v2.28 r2 S2·S3 — Place DB 마이그 + 도메인 로직 6 모듈
🧱 v2.28 r2 S1 — Place 통합 스키마 + 마이그 SQL 작성
💄 사이드바 — 「설정」 → 「알림 설정」 라벨 명확화
🌙 다크모드 fix — 4개 페이지 카드 색상 누락 일괄 보강
🌙 다크모드 fix — 프로필 「내 장비」 카드 배경/텍스트 누락 해결
💄 Lightbox toolbar — 사이즈·위치·투명도 다듬기 (MetaBar와 통일)
🐛 Lightbox 댓글 — 기존 댓글 표시 + 외부 클릭 닫기
🚨 Lightbox 진짜 fix — toolbar.buttons로 통합 (lightbox 내부 click 보장)
🚨 Lightbox 핫픽스 — 좋아요·댓글·작성자 링크 모두 작동 안 되던 버그
🔧 Lightbox 버그픽스 — 댓글 토글 안 되던 문제 + 중앙 하단 통합
💬 Lightbox — 좋아요·댓글 부활 + 사이드 패널 (PC) / 하단 시트 (모바일)
📷 스팟 갤러리 — 카테고리 필터 8개 + 검색 + 이름 변경
🖼 갤러리 — 정렬 4탭 (인기·최신·시즌·추천) + Hero 강화
📱 모바일 fix — 홈 「오늘의 빛」 텍스트 잘림 + 지도 헤더 버튼 압축
🧹 지도 마무리 — 필터 행 통합 + 위치 권한 배너 가시성
📍 지도 검색바 — 카테고리 토글 바로 아래로 이동
🔧 지도 다듬기 — 검색바 collapsible + 시간 컨텍스트 단순화
🗺 지도 페이지 — 검색바 + 시간 컨텍스트 + 헤더 정리
🔧 홈 다듬기 — 시간 머신에 날씨 + 둘러보기 1줄 + /about 보완
📱 홈 — 모바일 압축 + 날씨 빅카드 추가
🌍 홈 — 위치 기반 발견 + 시즌 모듈 + 시간 머신 + 최근 사진 (Phase 2+3)
🌅 홈 — 출사 어시스턴트 대시보드로 재설계 (Phase 1)
🖼 풀스크린 캐러셀 — 같은 스팟 사진을 좌우 화살표로 훑기
🧹 사진 상세 — 「원본 보기」 버튼 제거 (Fullscreen과 중복)
❤ 좋아요 카드 — 누가 좋아하는지 가시화 (사진·스팟 양쪽)
🔄 스팟 목록 미리보기 — 정렬 토글에 맞춰 동기화
🏠 홈 재정비 — 큐레이션 PC 2x2 + 고화질 미리보기 + /about 분리
🌌 계산기 5탭 확장 — 별궤적·FOV 추가 + 사이드바 「설정」 메뉴
🧹 TypeScript 9개 누적 에러 일괄 정리 — strict 빌드 통과
✉ 이메일 알림 옵트아웃 — /settings/notifications + cron 자동 제외
🔔 헤더 알림 bell — 다가오는 출사 일정 카운트 배지
📧 출사 전날 이메일 알림 — Resend + 매일 KST 20:00 cron
📅 홈 「다가오는 출사 일정」 카드 — SavedItem.plannedAt 자동 노출
🧮 출사 계산기 3종 — 장노출·Hyperfocal·DOF (PhotoPills 따라잡기)
✨ AI 출사 가이드 자동 생성 — Claude Sonnet 4.6 (Phase C)
🎯 컨텍스트 인지 추천 + 자동 alt-text (Phase B Step 1·2·3)
🔥 해시태그 사용 빈도 기반 동적 추천 + 사용량 표시 (Phase A)
📋 AI Vision 로드맵 — 데이터 활용·동적 추천·PhotoPills 비교 전략 정리
🏷 사진 분류 12+12 + 자유 해시태그 + AI Vision 자동 분류
🌍 홈 — 위치 기반 + 기상청 날씨 + 컬렉션 캐러셀 + 시간 레이블
⏱ 홈 「오늘의 출사 시간」 위젯 신규 — R-9 차별화 첫 노출
🐛 /map 핀 안 카테고리 emoji 진짜 fix — SVG 내장
🐛 /map 첫 진입 다크 + 핀 image race + Mapbox 로고 제거
🐛 /map 첫 진입 다크 + 핀 image race + Mapbox 로고 제거
📍 /map 핀을 Droplet 모양으로 — 사이트 로고 톤 통일
🗺 /map 라이트·다크 자동 전환 + 🏙 3D 보기 토글
🗺 D-1-d Mapbox 마이그레이션 완료 — 「검정+오렌지」 다크 + native cluster
🌌 Bortle 정적 시드 — NASA 우회, 한국 다크스카이 명소 50곳
📚 출사 가이드 SEO — /guides + 별사진 가이드 신규
🌌 v2.2 Phase C — NASA Bortle 시드 인프라 (사용자 다운로드 후 실행)
✨ /map 출사 모드 토글 — 별사진·일몰 활성, 반영·안개·야경 준비 중
🌤 사진 EXIF 빛 컨텍스트 — 「언제 어떤 빛으로 찍혔나」 자동 추출
📅 R-9-e — 컬렉션 캘린더 (월간 그리드 + 골든타임 자동 배치)
🌌 v2.2 Phase D — 별사진 모드 풀스크린 (망막 적응 보호)
🏠 홈 페이지 — 시즌 컨텍스트 + 큐레이션 미니뷰
✨ 큐레이션 컬렉션 — /collections 신규
🌌 v2.2 Astro Phase A — 별사진 모듈 (lib + AstroCard)
☀️ v2.3 P2 SHADOW — 그림자 가이드 + 태양 정렬일 검색
🌡 v2.3 P1 LIGHT — 색온도 곡선 + 사광·반역광 정밀화
📅 R-9-a 컬렉션·시간 인텔리전스 (시작)
🎨 디자인 리프레시 D-1 시작 — 라이트=파랑 / 다크=오렌지
🗺 지역 시스템 출시 — 「전북 → 전주시」 한눈에
스팟 삭제 기능 — 사진 0일 때만, 본인·관리자
지도 팝업 v3 — 다크모드 흰 영역 완전 제거
지도 팝업 v2 — 다크 + 한글 촬영종류 + 주소
주변 스팟 반경 토글 + 지도 위치 기억 (A-2)
지도 중심 기반 주변 스팟 탐색 (A-1)
스팟 관리/편집 + 가이드 정리 + 모바일 지도 + UX 개선
스팟 등록·관리 풀세트 + 업로드 흐름 개선
다크 모드 잔존 카드/배너/단계 표시 정리
다크 모드 잔존 영역 정리 + Update 메뉴 라벨
다크 모드 전 페이지 적용 + 메뉴 정리 + 헤더 단순화
내 사진 직접 삭제 + 주차장 검증 + 갤러리 비율 안정화
갤러리 5장 carousel + 점수 시스템 개편 + 주차장 안내 + 피드백 강화
디자인 시스템 + 모바일 + 갤러리감 — Foundation 풀세트
빛 재현 v2 (올해+내년) + 미리보기 정리 + 마스터 청사진
스팟 상세 대개편 — 시간 클릭으로 지도 태양 위치 + 풀스크린 + 작성자/등급
내 장비 시스템 + UX 정리
운영 배포 + 멀티 OAuth
초기 런칭
🛠 새 기능 제안이나 버그 제보가 있으세요?
피드백 보내기 →