3rd Vault · Changelog Archive
v1.x Era : Before 2.0
3rd Vault 블로그의 v1.0 ~ v1.9 시대 상세 변경 이력. 워드프레스 스니펫 기반 초기 단계부터
Blocksy 자식 테마 전환, 게임 리뷰 시스템, 다크모드 2.0, Strava Analytics, 모바일 최적화까지
─ 약 3개월간의 모든 마일스톤이 보존되어 있습니다.
PERIOD: 2026.02.01 ~ 2026.05.14
MAJOR VERSIONS: 10
ENTRIES: 50
← 릴리즈 트래커로 돌아가기
2026-05-14
뉴스룸 안정성 강화 — seen_links 영속화 및 자동 재실행
AI
`.github/workflows/daily_report.yml` — 실행 후 `seen_links.json` git 자동 커밋/push 추가
CORE
`permissions: contents: write` 추가
UI/UX
`Commit seen_links.json` 스텝 추가 (성공/실패 무관 `if: always()`)
CORE
cache 만료·리셋 시에도 repo에 최신 상태 보존
SYS
`.github/workflows/rerun_newsroom.yml` — 수동 전용 → 자동 점검 워크플로로 전환
CORE
`cron: '0 0 * * *'` (KST 09:00) 추가 — 메인 실행 2시간 후 자동 점검
SYS
당일 `YYYYmmdd_newsroom` 슬러그 WP REST API 확인 후 미발행 시에만 재실행
CORE
이미 발행됐으면 전체 스텝 skip (runner 낭비 없음)
CORE
seen_links 캐시 복구 + 커밋 스텝 통합
CORE
`Newsroom/curator2.py` — 실패 텔레그램 알림 3곳에 rerun workflow 링크 추가
AI
포스팅 실패, 공지 발행 실패, Gemini API 실패 알림에 직접 링크 포함
SYS
링크: `github.com/coolwarp/3RDVAULT/actions/workflows/rerun_newsroom.yml`
2026-05-11
뉴스룸 카드 페르소나 배지 레이아웃 수정
CORE
`curator2.py` — 배지가 가로폭 전체를 차지하는 버그 수정
CORE
`card-badge` 인라인 span → `card-badges` flex 래퍼 + `badge` pill 구조로 변경
UI/UX
CSS도 샘플(`sample_20260510_claude.html`) 기준과 동일하게 통일
2026-05-10
뉴스룸 Claude 큐레이터 실험 및 카테고리 페르소나 배지 추가
AI
실험: `Newsroom/curator_claude.py` — Claude Code CLI subprocess 방식 AI 큐레이션 프로토타입 작성
SYS
페르소나 배지, 중요도 표시, 크로스 카테고리 인사이트 블록 포함
AI
샘플 결과물 `sample_20260510_claude.html`로 보존, 현행 Gemini 시스템은 유지
CORE
로직은 추후 Personal Dashboard 등에 재활용 예정
CORE
`Newsroom/claude_migration_log.md` — 토큰 비용 비교, 미래 아키텍처 검토 문서 작성
AI
`curator2.py` — 카테고리별 페르소나 배지(룰 기반) 추가, Gemini 토큰 소모 없음
2026-05-07
라이브 서버 WP Cron 비활성화 — Admin 홈 속도 저하 대응
SYS
라이브 서버 `wp-config.php`
CORE
`define( 'DISABLE_WP_CRON', true )` 추가 — WP 기본 loopback cron 비활성화
CORE
Hostinger hPanel → Cron Jobs 2개 등록 (실제 서버 cron으로 대체)
SYS
매일 04:00 UTC (13:00 KST): `curl -s "https://3rdvault.net/wp-cron.php?doing_wp_cron" >/dev/null 2>&1`
CORE
매일 07:00 UTC (16:00 KST): 동일 명령어 (strava_backfill_streams 대응)
CORE
`/wp-admin` 홈 진입 시 cron 실행이 트리거되지 않아 응답 지연 해소
AI
Strava 자동 동기화(`strava_daily_sync`)와 스트림 백필(`strava_backfill_streams`)은 서버 cron으로 정시 실행 유지
2026-05-06
Strava 날씨 연동 기능 계획 문서 작성
CORE
`strava-personal/WEATHER_INTEGRATION_RESEARCH.md` 작성
SYS
Open-Meteo API (무료, 상업 이용 가능) 기반 날씨 데이터 연동 설계
CORE
활동 시각 기준 과거 날씨(기온·체감·강수량·바람·습도·날씨 코드) 조회 방식 정리
UI/UX
저장 전략(postmeta vs 별도 테이블), 카드 표시 UI 구성 방향 포함
2026-05-04
모바일 성능 최적화 (FCP/LCP 개선)
UI/UX
Abel 폰트 Google Fonts 외부 요청 제거 → 로컬 TTF(`fonts/abel/Abel-Regular.ttf`)로 전환
UI/UX
Pretendard 미사용 웨이트 제거 (Thin 100, ExtraLight 200) — `css/fonts.css` 정리
UI/UX
`passive-fixer.js` 헤드 블로킹 제거 → 인라인 스크립트로 전환 (`functions.php`)
CORE
홈 첫 번째 썸네일에 `fetchpriority="high"` / `loading="eager"` 주입 (LCP 개선)
2026-04-28
뉴스룸 큐레이션 RSS 처리 개선 및 스팀 뉴스피드 재편
AI
Gemini 모델 `2.5-flash` → `2.5-flash-lite`로 복구 (비용 절감)
AI
뉴스룸 큐레이션 프롬프트 개선 및 RSS 처리 전반 개선 (`Newsroom/curator2.py`)
CORE
`rerun.py` RSS summary HTML 스트리핑 및 길이 150자로 통일
CORE
스팀 게임 할인 중복 제거 제외, 당일 최신/인기 6개 선별로 변경
CORE
스팀 RSS: 루리웹 제거 → Steam 공식 뉴스 피드로 교체, UA 수정
CORE
Steam 공식 뉴스 피드 제거 (팀포트리스 도배 문제), `r/GameDeals` RSS만 사용으로 정리
UI/UX
RSS 수집 시 브라우저 User-Agent 헤더로 요청 (Reddit 403 차단 우회)
2026-04-27
curator2.py Gemini 실패 대응 강화
CORE
`Newsroom/curator2.py`
AI
메인 블록: `ai_data is None` 시 포스팅 중단 + 텔레그램 실패 알림 발송
AI
`judge_and_summarize()`: `gemini-2.5-flash` 3회 모두 503/429 일시 오류 시 `gemini-1.5-flash` 폴백 1회 시도
AI
폴백 시도 시 텔레그램 경고 발송 ("⚠️ Gemini 2.5 Flash 불안정")
CORE
`_try_model()` 내부 헬퍼로 중복 파싱 로직 통합
2026-04-24
뉴스룸 429 장애 대응 — LiteSpeed Rate Limit 및 Cloudflare 우회
UI/UX
Cloudflare rate limit 우회: nginx에 `X-Vault-Secret` 헤더 검증 → rate limit 바이패스 경로 추가
SYS
`curator2.py`, `rerun.py`, `rerun_newsroom.yml`에 `CF_BYPASS_SECRET` 헤더 추가
CORE
LiteSpeed rate limit 대응
CORE
태그 GET 요청: 건별 7회 → bulk 1회로 변경 (`/tags?search=` 방식)
SYS
WP REST API 연속 요청 간 딜레이 추가 (태그 처리 간 1초, 포스팅 전 2초)
CORE
`term_exists` 400 응답 시 응답 body에서 ID 재사용 (재생성 방지)
UI/UX
GET /tags 빈 응답(200 empty body) JSON 파싱 오류 방어 처리
CORE
공지 생성 전 10초 딜레이 추가, 빈 응답 방어 처리
CORE
뉴스룸 장기 운용 안정화 (`curator2.py`)
SYS
WP API 포스팅 실패 시 재시도 로직 추가
UI/UX
실패 시 텔레그램 상세 알림 (응답 헤더·body 포함)
CORE
태그 자동 정리 cron 등록
2026-04-23
Now 타임라인 CSS 분리 / deploy.yml 안정화 / 게임 리뷰 아카이브 수정
UI/UX
Refactor: `now-timeline` 인라인 style 블록 → `css/now-timeline.css`로 분리
SYS
`inc/now-timeline.php` 299줄 감소, 중첩 media 쿼리 버그 수정
UI/UX
`now-timeline.css` 버전을 `filemtime` 기반으로 변경 (Cloudflare 캐시 버스팅)
UI/UX
`now-timeline.css`, `lottie-player.js` 로딩을 `/now` 페이지 전용으로 제한
SYS
Fix: `deploy.yml` WP-CLI 스텝 재시도 로직 추가 (최대 3회, 30초 간격)
UI/UX
Fix: 게임 리뷰 아카이브 헤더 COL2 폭 축소 및 COL3 확장, 레벨 카드 고정 너비 조정
CORE
Fix: 게임 리뷰 아카이브 MP 게이지 기준값 20 → 80으로 변경
2026-04-22
Lottie 추가 / About 메일 주소 변경
CORE
Lottie 파일 추가 / About 페이지 메일 주소 변경
2026-04-21
게임 리뷰 아카이브 필터 및 싱글 버그 수정
SYS
Fix: 게임 리뷰 아카이브 장르 필터 `genre_2` 필드 지원 추가 (장르가 2개인 경우 필터 미작동 버그)
SYS
Fix: 게임 리뷰 아카이브 플랫폼 필터 기본값 전체 표시로 변경
CORE
Fix: 게임 리뷰 싱글 주의사항 배너 라이트 테마 배경 표시 오류 수정
2026-04-20
Strava CSS 정리 / 반응형 폭 통일 / Now 미리보기 고정 / 큐레이터 로직 변경
UI/UX
Refactor: Strava CSS Phase 1 — 미사용 클래스 284줄 제거 (`frontend-style.css` 2646줄 → 2362줄)
UI/UX
제거 대상: `strava-box-nav`, `strava-nav-*`, `strd-panel-*`, `strd-ftp-*`, `strd-pcurve-split-*`, `strd-tsb-form-label`, `strd-tsb-guide`, `strd-zone-*`, 중복 툴팁 블록 등
UI/UX
Fix: Strava 프론트엔드 전 구간 반응형 폭 통일
CORE
Fix: Now 타임라인 관리자 미리보기 폭 고정
CORE
큐레이터 스팀 게임 섹션 로직 변경
2026-04-19
공지 티커 만료 필터 버그 수정
SYS
Fix: 공지 티커 만료 필터 — `meta_query OR+NOT EXISTS` 방식이 일부 환경에서 오작동 → PHP 레벨 `array_filter`로 대체 (`inc/notice-ticker.php`)
CORE
Fix: 공지 티커 `_vault_notice_expires` 메타 저장 안되던 버그 — `register_post_meta`의 `auth_callback` 누락 (`protected` 키는 명시적 콜백 필요)
2026-04-19
Strava 분석 행 BOX5/6/7 레이아웃 대폭 개편 및 타이틀 스타일 통일
CORE
BOX5 (파워분석) 우측 W/kg + 미니 바 제거, 심박 효율(EF) 산점도 차트로 대체
SYS
`strava_get_efficiency_activity_series($days)` 신규 함수 추가 (12-analysis.php)
CORE
기간별 활동 W/bpm 목록 반환 (scatter chart용), 트랜지언트 6시간 캐시
UI/UX
JS EF 차트: Chart.js scatter + 선형 회귀 추세선, 기간 드롭다운(4주/12주) 전환 지원
CORE
`strava_get_efficiency_windows()` 집계 결과로 요약 행(현재 EF + 추세 텍스트) 표시
UI/UX
BOX6 (VO2Max) 하단에 FTP 추정 + W/kg 2열 푸터 추가
SYS
W/kg 및 FTP 정보를 BOX5에서 BOX6으로 이동, BOX2 FTP 미니 블록 제거
CORE
구성: FTP 추정값 + 20분 MMP / W/kg 값 + 카테고리 배지
UI/UX
BOX7 (PMC) 하단에 파워커브 Best Efforts 가로 나열 푸터 추가
CORE
5초/30초/1분/5분/20분 구간별 최고 파워(w, w/kg) 표시
UI/UX
분석 행 그리드 레이아웃 안정성 개선
CORE
`.strd-analysis-box` `min-width: 0` + `overflow: hidden`, `.strd-analysis-row` `align-items: start`
UI/UX
Chart.js `resizeDelay: 100`, SVG `flex-shrink: 0` 등 리사이즈 이탈 방지
SYS
스트림/활동 저장 시 `strava_eff_series_28/84` 트랜지언트 무효화 (11-db-tables.php)
CORE
BOX5/6/7 패널 타이틀을 BOX2/3/4와 동일한 눈썹+볼드 타이틀 구조로 변경
CORE
`strd-eyebrow` (orange, 8px, uppercase) + `strd-title` (16px, bold) 조합
CORE
BOX5: "Efficiency Factor" / "심박 효율 추세"
CORE
BOX6: "VO2Max Estimation" / "최대 산소 섭취량"
CORE
BOX7: "Performance Management" / "퍼포먼스 관리 차트"
2026-04-18
뉴스룸 발행 → 공지 티커 자동 연동 / 다크모드 HOME 버튼 배경 프리셋 추가
CORE
뉴스룸 발행 시 notice 카테고리 공지글 자동 생성 (Newsroom/curator2.py)
CORE
발행 성공 후 `post_newsroom_notice()` 호출 — notice 카테고리(ID 175)로 공지글 생성
CORE
slug `YYYYmmdd_newsroom_notice`로 당일 중복 방지 (기존 글 있으면 PUT 업데이트)
CORE
excerpt: "MM월 DD일, 뉴스룸 소식이 업데이트 되었습니다" → 티커에 표시
CORE
`_vault_notice_expires` 메타에 발행 시각 + 6시간 Unix timestamp 저장 → 6시간 후 자동 소멸
SYS
공지 티커 만료 필터 추가 (inc/notice-ticker.php)
CORE
`register_post_meta`로 `_vault_notice_expires` REST 등록 (Python 스크립트가 메타 쓰기 가능)
CORE
`_vault_notice_query_args()` 에 `meta_query` 추가 — 만료 메타가 있으면 현재 시각 이후인 것만, 없으면 통과 (하위 호환)
UI/UX
다크모드 제어판 사이드패널 HOME 버튼 배경 프리셋 추가
SYS
`--home-bg` / `--home-hover-bg` 변수 신규 정의 (presets-data.php)
UI/UX
dark-mode-core.css: HOME 버튼 배경 `--bg-soft` → `--home-bg`, 호버 `--h2-ribbon` → `--home-hover-bg` (폴백 유지)
UI/UX
제어판 미리보기(page-colors.php)에 HOME 버튼 배경 반영
CORE
프리셋 16개 전체에 `home_bg` / `home_hover_bg` 값 추가
2026-04-17
타임라인 관리 에디터 실시간 미리보기 패널 추가 / Lottie 파일 추가 / 기타 수정
UI/UX
타임라인 관리 에디터 폼 우측에 실시간 미리보기 패널 추가 (50:50 flex 레이아웃)
CORE
textarea 입력 즉시 `white-space: pre-line` 렌더링 결과 반영
CORE
날짜 변경 시 날짜/요일도 실시간 갱신
CORE
수정 모드 진입 시 기존 내용 초기 렌더링 지원
AI
Lottie 파일 3개 추가 (lotties/ai_cat.json, lotties/Cat scratches.json, lotties/Cat Crying emojiSticker animation.json)
UI/UX
Fix: 다크모드 제어판 토글 버튼 탭 rgba 글로우 항목 정렬 수정
CORE
rgba 행 `grid-column: 1 / -1` 제거 → 다른 항목과 동일 너비 유지
CORE
`is-rgba` 텍스트 입력박스 너비 150px → 120px 조정
UI/UX
Fix: 인용문 너비를 본문 텍스트와 동일하게 조정 (900px, style.css)
2026-04-16
다크모드 제어판 — 설정 바 UX 2차 개선 및 타이틀 박스 도입
CORE
설정 바 구조 전면 재편: 기존 카드형 그리드 → 슬림형 가로 박스 2개 + 타이틀 박스
CORE
박스 1 (Purple 알약): 기본 테마 + 야간 자동
CORE
박스 2 (Cyan 알약): Dimming + 시간 지정
UI/UX
각 박스 좌측에 Dracula 팔레트 세로 알약 색상 바로 기능 구분 표시
UI/UX
페이지 헤더(달 아이콘 + 타이틀 + 설명 문구) 제거, 타이틀 박스로 통합 (공간 절약)
CORE
타이틀 박스: "After Dark (가칭) 다크 테마 커스터마이저 V2.0" 문구, Solarized Dark 팔레트 배경
UI/UX
활성 프리셋 뱃지를 타이틀 박스 내 가로 배치
UI/UX
토글 라벨 호버 시 툴팁 표시 (4개 항목 전부)
UI/UX
CSS `::after` 방식 → JS fixed 포지션 방식으로 전환 (overflow 잘림 문제 해결)
CORE
툴팁 방향 위쪽 → 아래쪽으로 변경
UI/UX
색상 편집 행 정렬: `align-items: flex-end` 적용 — CSS var 코드와 컨트롤 하단 정렬
UI/UX
타이틀 박스 색상 프리셋 연동
AI
초기 렌더: PHP가 활성 프리셋 bg_main/text_main/text_soft/point_color 읽어 인라인 스타일 주입
UI/UX
프리셋 전환 시 JS `updateTitleBox()` 실시간 업데이트 (새로고침 불필요)
CORE
`hexLuminance()` 밝기 판별 — 라이트 프리셋 선택 시 텍스트 자동 다크 전환
UI/UX
뱃지 색상: point_color → link_entry → 기본값 순 폴백
2026-04-16
다크모드 제어판 — 이미지 Dimming 토글 추가 및 설정 바 리뉴얼
UI/UX
본문 이미지 Dimming ON/OFF 전역 토글 추가 (darkmode_img_dim_enabled 옵션)
UI/UX
시간 지정 서브 토글 추가 — 지정 시간대에만 Dimming 활성화 (darkmode_img_dim_time_enabled, start/end)
UI/UX
전역 OFF 시 PHP가 wp_head에 CSS 오버라이드 직접 출력 (FOUC 방지)
UI/UX
시간 지정 ON 시 JS가 런타임에 html.img-dim-off 클래스 제어
SYS
ajax-handler.php: darkmode_ajax_save_img_dim_settings 핸들러 추가
UI/UX
render-css.php: DARKMODE_IMG_DIM_* 변수 4개 프론트엔드 주입
SYS
WebP 업로드 재압축 방지: wp_editor_set_quality 필터에서 WebP는 100% 반환 (JPEG 92% 유지)
CORE
다크모드 제어판 설정 바 전면 리뉴얼 (dm-settings-grid 카드 시스템)
CORE
카드형 그리드 구조 도입 — 고정폭 카드 + dm-card--empty 확장 슬롯
UI/UX
헤더/바디/푸터 3단 구조, 토글 행 수평 정렬 통일
UI/UX
네오모픽 토글 제거, 심플 pill 토글(dm-toggle)로 통일
CORE
기본 테마 + 시간대 자동 다크모드를 "테마 설정" 카드 하나로 통합
UI/UX
시간 입력 number spinner 제거, 폰트 잘림 수정
2026-04-15
Doto 폰트 도입 및 게임 아카이브 UI 개선
CORE
Doto variable font 로컬 호스팅 추가 (fonts/doto/)
UI/UX
fonts.css에 Doto `@font-face` 선언 추가 (weight 100~900)
UI/UX
게임 아카이브 헤더 텍스트 전반 Doto 폰트로 교체 (제목, 섹션 레이블, 스탯 타입, 레벨 카드 등)
UI/UX
헤더 메뉴 G 항목 Doto 폰트 적용 및 weight 400 → 700 변경
SYS
ETC 슬라임 SVG 구조 개선 — 몸통 픽셀에서 눈 제거, 라이트 모드 brightness(0) 필터 적용 시 눈이 배경을 통해 보이도록 수정
2026-04-15
릴리즈로그 자동화 — changelog.md 파싱 숏코드 구현
SYS
[vault_release_tracker] 숏코드 신규 구현 — changelog.md 파싱 기반 릴리즈로그 자동 렌더링
SYS
날짜 블록 추출 파서 + 항목 태그 자동 추론 로직 작성 (inc/release-tracker.php)
CORE
버전 정의 배열 및 게이지 마커 위치 자동 계산 (버전 수 기반 균등 배분)
UI/UX
푸터 버전 표기 하드코딩 제거 — VRT_CURRENT_VERSION 상수 자동 참조로 전환
2026-04-15
GitHub 리포지토리 이름 변경
CORE
GitHub 리포지토리명 `3RDVault_V1.2` → `3RDVAULT` 변경
SYS
로컬 remote URL 업데이트 및 GitHub Actions 워크플로우 자동 반영 확인
2026-04-14
게임 아카이브 트로피 카드 모달 시스템 / 헤더 리뉴얼
UI/UX
트로피 버튼 인터랙션
기본 상태: 평면 (box-shadow 없음)
호버 시: inset 음각 그림자 + 약간 어두운 배경 전환 (다크/라이트 양쪽 대응)
rarity별 테두리 색상 힌트 (rare: 네이비, epic: 퍼플, legendary: 앰버)
UI/UX
트레이딩 카드 모달 (Phase 1)
클릭 시 280×392px 카드 팝업 (5:7 트레이딩 카드 비율)
일반 카드 (common/rare/epic): 뒤집기 애니메이션 (rotateY + scale)
legendary 카드 (만점 헌터): 가챠 연출 3단계
ESC 키: 모달 열린 상태에서 필터 초기화 방지 (모달 닫기 우선)
오버레이 외부 클릭 / ESC / 닫기 버튼으로 모달 닫기
모달 오픈 시 배경 스크롤 잠금
CORE
트로피 카드 내용 (Phase 2) — card-type 3종 혼합
game 타입: 게임 썸네일 + 제목 + 별점 오버레이
stats 타입: 4칸 통계 그리드
icon 타입: 픽셀아트 72px 확대 + glow
SYS
archive-game-review.php PHP 데이터 계산 확장
장르별/플랫폼별 최고 평점 게임 추출
10점 게임 및 전체 최고 평점 게임 추출
첫/최신 리뷰 연도, 활동 기간 계산
트로피 div에 data-trophy-card-type 및 카드 데이터 속성 주입
UI/UX
헤더 너비 1400px → 1300px (css/custom-header.css)
CORE
버전 표기 업데이트, 트로피 박스 크기 미세 조정
2026-04-14
게임 아카이브 헤더 리뉴얼 (Game-Archive-Header-Renewal 브랜치 → main 병합)
UI/UX
게임 아카이브 헤더 Phase 01 전면 리뉴얼
JS 이벤트 리스너 이중 등록 제거: archive-header.js 통합, archive.js 단일 파일로 관리
키보드 단축키 1/2/3 제거, Tab(검색 포커스) / Esc(전체 초기화) 유지
장르 필터 대소문자 정규화 (Racing/RACING 중복 제거), 완전 일치 매칭으로 교체
EXP 바 lv_pct 최솟값 보정 (max 5%)
MAIN GRID 비율 조정: STATUS 확장, SYSTEM 축소
STATUS 스탯 레이블 풀네임 표기 (Reviews, Genres, Avg Score), 숫자 세로 정렬
XP 문구 → SP로 교체
GAME ARCHIVE 타이틀 Rockstar-ExtraBold 폰트 적용
Lv 배지 청록색 글로우 스타일 추가
장르 칩 자동 줄바꿈 정렬 (스크롤 제거, align-content: flex-start)
UI/UX
게임 아카이브 헤더 Phase 02
도전과제 한국어 텍스트 복원 + 신규 트로피 2개 추가 (스팀 마니아, 평론가)
트로피 단일행 배치 (flex: 1 1 0; min-width: 0), 가로 스크롤 없음
ARCHIVE Lv. 카드 1:2 분할 레이아웃 (좌: Lv 숫자+EXP, 우: 사용 안내 텍스트)
토글 버튼 pill → 사각형(border-radius: 2px), 외부 박스 제거
SYSTEM 컬럼 확장 / MAGIC 컬럼 축소 (명작(8.0+)만 텍스트 줄바꿈 방지)
트로피 영역 모바일 반응형 수정 (2열 wrap)
플랫폼 SVG 아이콘 배경 rect 제거 (CSS filter 대응)
UI/UX
게임 아카이브 헤더 Phase 03 — 라이트 모드 대응
body:not(.dark-theme) 선택자로 전체 헤더 모노크롬 팔레트 하드코딩
시스템 정렬 버튼 이모지 제거
SVG 아이콘 라이트 모드: filter brightness(0) opacity(0.7) 적용
2026-04-14
Fix: rsync 배포 타임아웃
SYS
GitHub Actions 배포 워크플로 (.github/workflows/deploy.yml)
burnett01/rsync-deployments → nick-fields/retry 래핑 방식으로 교체
SSH 옵션: ConnectTimeout=30, ServerAliveInterval=15, ServerAliveCountMax=4
재시도: max_attempts=3, retry_wait_seconds=30, timeout_minutes=10
2026-04-14
Darkmode_2.0 브랜치
UI/UX
트로피 버튼 인터랙션
기본 상태: 평면 (box-shadow 없음)
호버 시: inset 음각 그림자 + 약간 어두운 배경 전환 (다크/라이트 양쪽 대응)
rarity별 테두리 색상 힌트 (rare: 네이비, epic: 퍼플, legendary: 앰버)
UI/UX
트레이딩 카드 모달 (Phase 1)
클릭 시 280×392px 카드 팝업 (5:7 트레이딩 카드 비율)
일반 카드 (common/rare/epic): 뒤집기 애니메이션 (rotateY + scale)
legendary 카드 (만점 헌터): 가챠 연출 3단계
ESC 키: 모달 열린 상태에서 필터 초기화 방지 (모달 닫기 우선)
오버레이 외부 클릭 / ESC / 닫기 버튼으로 모달 닫기
모달 오픈 시 배경 스크롤 잠금
CORE
트로피 카드 내용 (Phase 2) — card-type 3종 혼합
game 타입: 게임 썸네일 + 제목 + 별점 오버레이
stats 타입: 4칸 통계 그리드
icon 타입: 픽셀아트 72px 확대 + glow
SYS
archive-game-review.php PHP 데이터 계산 확장
장르별/플랫폼별 최고 평점 게임 추출
10점 게임 및 전체 최고 평점 게임 추출
첫/최신 리뷰 연도, 활동 기간 계산
트로피 div에 data-trophy-card-type 및 카드 데이터 속성 주입
2026-04-14
Darkmode_2.0 브랜치
CORE
다크모드 어드민 Phase 1 — 프리셋 기반 저장 구조 재편
실시간 미리보기(iframe/postMessage) 전면 제거
색상 설정 탭: 단일 컬럼 레이아웃으로 전환
저장 버튼 2개 분리: "프리셋에 저장"(기존 프리셋 덮어쓰기) / "새 커스텀으로 저장"(인라인 폼)
"원본으로 되돌리기": 활성 프리셋 파일 원본값으로 UI 복원
빌트인 프리셋 override 저장소 신설 (darkmode_preset_overrides 옵션)
darkmode_get_active_colors(): 활성 프리셋 기준 기본값 산출로 변경
CORE
커스텀 프리셋 저장/적용 버그 3건
동적 추가된 커스텀 칩 클릭 불가 → 이벤트 위임으로 전환
AJAX 응답 preset_name 누락 → 필드 추가
커스텀 프리셋 활성 시 darkmode_get_active_colors() 폴백 오류 → 커스텀 조회 분기 추가
CORE
탭 전환 시 프리셋 카드 상태 미동기화
syncPresetCards() 헬퍼 추가, 칩 클릭 후 프리셋 관리 탭 카드 즉시 반영
UI/UX
다크모드 어드민 Phase 2 — UX 레이아웃 리디자인
색상 목록 3열 그리드로 재편 (1400px 이하 2열, 900px 이하 1열)
rgba 값 행은 그리드 전체 너비로 표시
색상 탭, 칩, 프리셋 카드 전반 폴리싱 (간격·크기·색상 정돈)
UI/UX
다크모드 어드민 Phase 3 — 크로스 프리셋 색상 주입
각 색상 탭 헤더에 "다른 프리셋에서 가져오기" 드롭다운 추가
드롭다운 선택 → 우측 참조 사이드바에 해당 탭 색상 목록 즉시 표시
"↙ 이 탭 색상 적용" 버튼으로 confirm → 현재 탭 컬러피커 일괄 주입
레이아웃: 3컬럼 그리드로 확장 (180px 프리셋 사이드바 / 1fr 색상 패널 / 240px 참조 사이드바)
반응형: 1200px 이하 참조 사이드바 숨김(2컬럼), 960px 이하 1컬럼
탭 전환 시 참조 사이드바 초기화 + 드롭다운 리셋
2026-04-13
QnA 글 전용 h2 헤딩 컴포넌트 (.qna-h2)
CORE
기존 .entry-content h2 (다크 스트립) 완전 오버라이드 디자인
CORE
라이트 카드 배경 + 좌측 "Q" 빨간 배지 + 포인트 컬러 (#C21807) 강조선
CORE
다크모드: body.dark-theme 전역 변수 추종 (--bg-panel, --text-main)
CORE
스타일: css/single-post-components.css 섹션 13 추가
CORE
가이드: html_codes/qna-h2.html 생성
CORE
마크업: `<h2 class="qna-h2">Q : 질문 내용</h2>`
2026-04-09
본문 테이블 전용 스타일시트 외 1건
UI/UX
본문 테이블 전용 스타일시트 (css/entry-table.css)
Soft Card + 포인트 컬러 헤더 디자인 (진한 배경 + #C21807 하단선)
`--et-*` 로컬 변수 네임스페이싱, 라이트 하드코딩 / 다크모드 전역 변수 추종
마크업: `<div class="entry-table-wrap"><table class="entry-table">`
is_singular() 조건부 자동 로드 (functions.php 등록)
사용법 가이드: html_codes/table-guide.html (복사용 템플릿 3종 포함)
디자인 시안 4종 프리뷰: html_codes/table-preview.html (라이트/다크 토글 포함)
UI/UX
style.css, functions.php 구조 및 주석 정리
style.css: Theme Name 메타 상단 이동, 섹션 번호 02-15 연속 재정렬, 중복 제거 3건, 소제목 주석 형식 통일
functions.php: require_once 조건부 로드 통일, 완료 주석 2건 제거, 섹션 4(미디어 & 이미지) 신설, 명명 함수 4개 PHPDoc 추가
2026-04-08
다크모드 시간대 자동 전환 기능 외 4건
UI/UX
다크모드 시간대 자동 전환 기능 (js/dark-mode-switch.js, dark-mode/render-css.php, dark-mode/ajax-handler.php)
방문자 시간대 감지(`Intl.DateTimeFormat`) 기반 야간 자동 다크모드 — 실패 시 KST(UTC+9) 폴백
작동 조건: 서버 기본값이 라이트(다크모드 OFF)일 때 + OR 조건으로 OS 다크모드와 병행
`DARKMODE_TIME_ENABLED`, `DARKMODE_TIME_START`, `DARKMODE_TIME_END` JS 전역 변수를 `wp_head` priority-1에 인라인 주입
AJAX 핸들러 `darkmode_save_time_settings` 추가 → `darkmode_time_enabled/start/end` 옵션 저장
시간 범위가 자정을 넘는 경우(s > e) 처리 지원
UI/UX
다크모드 어드민 UI 재배치 (dark-mode/page-colors.php, dark-mode/admin.css, dark-mode/admin.js)
"방문자 기본 테마" 토글을 헤더에서 분리 → `.dm-settings-bar` 내 좌측 블록으로 이동
우측 블록: 시간대 자동 다크모드 토글 + 시작/종료 시간 입력 (`.dm-settings-divider`로 구분)
어드민 JS: 시간 토글·입력 이벤트 핸들러 추가, AJAX 저장 연동
UI/UX
구텐베르크 에디터 드롭캡 항상 표시 (inc/gutenberg-typography.php, functions.php, theme.json)
`theme.json` `settings.typography.dropCap: true` 추가 — 테마 레벨 드롭캡 기능 활성화
PHP 필터 `register_block_type_args`: `core/paragraph`의 `supports.typography.defaultControls.dropCap = true` 설정
JS 인라인 스크립트(`wp_add_inline_script('wp-blocks', ..., 'after')`): `blocks.registerBlockType` 필터로 동일 설정 — wp-blocks.js 로드 직후, 블록 등록 이전에 삽입
근거: Gutenberg `block-library.js`가 `getBlockSupport(name, "typography.defaultControls.dropCap", false)` 경로로 표시 여부를 결정함을 소스에서 직접 확인
UI/UX
커스텀 헤더 .NET 표기 방식 변경 (css/custom-header.css)
독립 박스(`.logo-dotnet`) 제거 → `VAULT::after` 가상 요소로 통합
태블릿 반응형: `.NET` 텍스트를 VAULT 뒤에 같은 크기(70px)로 인라인 배치
호버 시 가상 요소도 `--hdr-logo-red`로 변색 처리
반응형 섹션 주석 업데이트: "One-Line Logo & .NET 박스 복구" → "가상 요소를 이용한 VAULT.NET 통합"
UI/UX
커스텀 헤더 macOS 로고 정렬 미세 조정 (css/custom-header.css)
`body.os-mac .logo-3rd` translateY: 2px → 6px
`body.os-mac .logo-dotnet` translateY: 12px → 10px
2026-04-07
업로드 폴더 동기화 스크립트 (sync-3rdvault.sh) 외 2건
CORE
업로드 폴더 동기화 스크립트 (sync-3rdvault.sh)
rsync 기반 3단계 메뉴: 서버 → 창고A(백업), 창고A → LocalWP(로컬 동기화), 전체 실행
SSH 접속 정보 및 경로를 스크립트 상단 변수로 분리
UI/UX
macOS 감지 클래스 주입 (js/custom-header.js)
`navigator.platform`으로 Mac 여부 판별 → `body.os-mac` 클래스 삽입
맥/윈도우 폰트 렌더링 차이로 인한 로고 위치 불일치 보정용
UI/UX
macOS 전용 로고 정렬 보정 CSS (css/custom-header.css)
`body.os-mac` 선택자 블록 추가: 3RD·VAULT·.NET·서브카피 개별 translateY 조절 지점 주석화
2026-04-06
라이트박스 EXIF — WebP 파일 EXIF 추출 지원 추가 외 4건
SYS
라이트박스 EXIF — WebP 파일 EXIF 추출 지원 추가 (inc/lightbox-exif.php v1.0.5)
PHP `exif_read_data()`는 JPEG/TIFF만 지원해 WebP는 항상 빈 EXIF로 저장되던 문제 수정
`clb_read_webp_exif_raw()` 헬퍼 추가: RIFF/WEBP 컨테이너를 순회해 'EXIF' 청크 바이너리 추출
WebP EXIF 청크는 순수 TIFF 데이터이므로 .tif 임시 파일로 직접 전달 (JPEG 래퍼 방식 불필요)
`Exif\0\0` 프리픽스가 있을 경우 자동 제거 후 순수 TIFF만 저장
PHP 7.4 호환: union return type(`string|false`) 제거
REST 진단 엔드포인트 추가: `clb/v1/debug-webp/{id}` (관리자 전용, RIFF 청크 목록 + 파싱 결과)
REST 재처리 엔드포인트 추가: `clb/v1/reprocess/{id}` (관리자 전용, 기존 WebP 소급 적용용)
기존 JPEG 경로 변경 없음 / 기존 WebP 첨부파일은 재업로드 또는 reprocess 엔드포인트로 재처리
UI/UX
게임 리뷰 싱글 페이지 아카이브 주의사항 배너 (single-game-review.php, css/game-review.css)
`.gr-notice-banner` 블록: SVG 인포 아이콘 + 3줄 안내 텍스트 (원본 출처·주관적 견해·퍼가기 금지)
CSS 변수 기반 라이트/다크 대응
UI/UX
게임 리뷰 아카이브 카드 그리드 및 최대폭 조정 (css/game-review.css)
카드 열 수: `auto-fill minmax(200px,1fr)` → 고정 `repeat(5, 1fr)`
최대폭: 1120px → 1400px
태블릿(900px): 3열 고정 / 모바일(480px): 1열 유지
UI/UX
게임 리뷰 싱글 다크모드 이미지 디밍 제거 (css/game-review.css)
`.gr-review-gallery img` 다크모드 brightness 강제 1로 고정 (`!important`)
호버 시에도 디밍·흑백 필터 제거
UI/UX
버그 수정 — NOW 캡션박스 모바일 여백 오류 (style.css)
`.now-caption { margin-bottom: 20px }` 모바일 미디어 쿼리 내 중복 선언 삭제
2026-04-04
커스텀 헤더 로고 워드마크 디자인 세부 조정 3차 외 2건
UI/UX
커스텀 헤더 로고 워드마크 디자인 세부 조정 3차 (css/custom-header.css)
3RD/VAULT 간격: logo-right-group에 margin-left: -8px 추가 (폰트 사이드베어링 보정)
VAULT/.NET 바닥선: align-self: flex-end 명시, justify-content: flex-end 주석 보강
서브카피 우측 정렬: text-align: right + white-space: nowrap 추가
.NET CCW 회전: writing-mode: vertical-rl + transform: rotate(180deg) 조합으로 합계 CCW 90°, 회전 원리 주석 상세화
UI/UX
커스텀 헤더 로고 워드마크 디자인 세부 조정 2차 (inc/custom-header.php, css/custom-header.css)
"3RD" span 분리: logo-3-num("3", 레드 고정) + logo-rd("RD", 메인 컬러) — 이전: 전체 레드
VAULT 크기 조정: 72px → 64px (3RD 90px 대비 ~70% 비율), 서브카피 우측 정렬
.NET 박스: font-size 10px→13px, padding 확대, border-radius:2px 라운드 추가, margin-left:3px
서브카피 폰트: Rockstar-ExtraBold → Barlow Condensed 600, @import 파일 상단 추가
로고 CSS 변수에 직접 수정용 상세 주석 추가 (--hdr-logo-* 4종)
반응형 VAULT 크기 재조정: 태블릿 48px / 스마트폰 38px / 좁은스마트폰 32px
UI/UX
커스텀 헤더 로고를 HTML/CSS 워드마크 텍스트로 재구현 (inc/custom-header.php, css/custom-header.css)
기존 글리치 효과(logo-text-base / logo-text-hover / @keyframes glitch-anim*) 완전 제거
Rockstar-ExtraBold 폰트 기반 워드마크 구조로 교체
"3RD": --hdr-logo-red(#C21807), 90px 대형
"VAULT": --hdr-logo-main, 72px (라이트=검정/다크=연회색)
".NET": writing-mode:vertical-rl 세로 회전, 박스 테두리, VAULT 우측 하단 부착
"TECH / BIKE / PHOTO / BOOKS / MOBILE": 상단 소형 서브카피 (10px)
CSS 변수 추가: --hdr-logo-red, --hdr-logo-main, --hdr-logo-dotnet-fg, --hdr-logo-sub
다크모드 대응: --hdr-logo-main/#hdr-logo-dotnet-fg 반전, body.dark-theme 블록에 추가
반응형: 태블릿(1024px)/스마트폰(768px)/좁은스마트폰(430px) 로고 크기 조정 업데이트
2026-04-01
게임 리뷰 아카이브 헤더 레이아웃 재구성 v2
UI/UX
3컬럼 수평 구조: 좌측 컬럼(Party+STATUS+검색창) | 미들 컬럼(Genre Filter+Sort Order) | 우측 사이드바(Archive Lv.+OPTIONS)
UI/UX
Row 1: 타이틀(좌) + QUEST LOG(우) top-bar 유지
UI/UX
좌측 컬럼: Party → STATUS → 검색창 수직 스택, 동일 폭 맞춤
UI/UX
미들 컬럼: Genre Filter(flex:1, 2열 4행) + Sort Order(하단) — 좌측 컬럼 전체 높이와 자동 맞춤
UI/UX
우측 사이드바: Archive Lv. 뱃지(flex:1) + OPTIONS 토글 패널(하단) — 사이드바 내 수직 배치
UI/UX
하단 바: 힌트(좌) + 버전(우)만
UI/UX
.gr-hdr-main-area, .gr-hdr-left-col, .gr-hdr-mid-col 신규 클래스 추가
UI/UX
Party 카드 축소: portrait 28px→22px, padding 6px→4px, char-name 12px→11px
UI/UX
스탯 카드 축소: padding 8px→5px, stat-value 18px→15px, gap 6px→4px
UI/UX
모바일(960px 이하) flex-wrap 폴백 유지
2026-03-31
사이트 타이틀 ".NET" 색상·사이즈 차별화 외 5건
UI/UX
사이트 타이틀 ".NET" 색상·사이즈 차별화 (functions.php, style.css)
functions.php: wp_add_inline_script으로 DOMContentLoaded 시 .site-title a 내 ".NET" 텍스트를 span.site-title-tld로 감쌈
style.css: .site-title-tld { color: var(--point-color); font-size: 0.55em; vertical-align: 0.15em; }
참고: blocksy_translate_dynamic은 WP 필터가 아닌 순수 PHP 함수이므로 JS DOM 조작 방식 채택
UI/UX
게임 리뷰 아카이브 — RPG 스타일 헤더 통합 (archive-game-review.php, css/game-review.css)
기존 단순 헤더(제목+검색+필터) → RPG/게임 콘솔 스타일 헤더로 전면 교체
헤더 내 HP/MP/XP 스탯 바: 리뷰 수(HP), 장르 수(MP), 평균 평점(XP) 실시간 표시
플랫폼별 카운트 배지(Steam/Origin/Uplay/GOG), 아카이브 레벨·경험치 진행 바 추가
GOG 플랫폼 필터 추가 — 카드 data-platform/data-genre 속성 확장, PHP 분기 추가
헤더 전체 width:100vw / margin-left:calc(-50vw+50%) 로 풀와이드 레이아웃 적용
UI/UX
신규: 게임 리뷰 아카이브 JS 분리 (js/game-review-archive-header.js, js/game-review-archive.js)
game-review-archive-header.js — 헤더 이벤트 dispatch (플랫폼 토글, 정렬, 장르 필터, 토글 스위치, 검색 디바운스, 키보드 단축키 1/2/3/Tab/Esc)
game-review-archive.js — 커스텀 이벤트 수신, render() 필터링·정렬 로직 (다중 플랫폼, 장르, 평점 8+, 커버 이미지 토글)
functions.php에 두 JS 파일 enqueue 추가
UI/UX
CSS — 구 헤더 변수·스타일 제거, RPG 헤더 변수 20개 및 전체 스타일 추가 (css/game-review.css)
:root 구 --gr-hdr-* 변수 12개 제거 → RPG 변수 20개로 교체
body:not(.dark-theme) .gr-hdr-outer 라이트 오버라이드 8개 변수 추가 (경량 2모드)
GOG 플랫폼 필 스타일 추가 (--gr-pill-gog-* 3개 변수)
커버 이미지 토글 CSS 추가 (.gr-cover-hidden .gr-card-img / .gr-card-img--fallback)
UI/UX
검색창 스타일 버그 수정 (css/game-review.css)
.gr-hdr-cmd input: flex:1; min-width:0; background:transparent; outline:none; box-shadow:none 적용
검색창 내부 input이 컨테이너 밖으로 넘치던 문제 및 배경색 불일치, 포커스 아웃라인 제거
UI/UX
다크모드 단축키 뱃지(kbd) 흰색 배경 버그 수정 (css/game-review.css)
원인: Blocksy 부모 테마 main.min.css가 kbd { background: var(--theme-palette-color-6) } 전역 적용
.gr-hdr-outer kbd { background: transparent; border: none; ... } 스코프 리셋 추가
2026-03-30
now 갤러리 인터랙션 개선 및 캡션 스타일 수정 외 3건
UI/UX
now 갤러리 인터랙션 개선 및 캡션 스타일 수정 (lightbox/js/now-lightbox.js, lightbox/css/now-lightbox.css, css/now-timeline.css)
썸네일 클릭 시 라이트박스를 바로 열지 않고 상단 큰 이미지를 먼저 교체하는 방식으로 변경
갤러리별 selectedIdx로 선택 상태 추적, 트리거(큰 이미지) 클릭 시 선택된 이미지로 라이트박스 열기
.now-gallery-main에 cursor: zoom-in, img에 opacity transition 추가
갤러리 캡션 박스 border-radius 10px 적용 (메인 이미지와 동일)
UI/UX
lightbox/js/ 구버전 파일 삭제 (1~4custom-lightbox.js 4개 제거)
SYS
GitHub Actions 배포 워크플로우 정비 (.github/workflows/)
deploy.yml node.js 액션 버전 v3 → v4 업그레이드
deplay.yml 신규 작성 (배포 액션 전면 버전업), 기존 deploy.yml → deploy.yml.bak 보관
daily_report.yml 데일리 뉴스 액션 버전업, daily_report.yml.bak 추가
CORE
.gitignore 맥미니 관련 파일 및 추가 제외 항목 추가
2026-03-29
게임 리뷰 아카이브 페이지 전면 개편 외 4건
UI/UX
게임 리뷰 아카이브 페이지 전면 개편 (archive-game-review.php, css/game-review.css)
라우팅 네비게이션 페이지 레이아웃 대폭 재설계
게임 카드 그리드·헤더 구조 정리 및 CSS 전반 리팩터링
UI/UX
게임 리뷰 아카이브 타이틀 다크모드 버그 수정 (archive-game-review.php, css/game-review.css)
라우터 페이지 헤더 구조 수정 및 다크테마에서 타이틀 색상 렌더링 오류 해결
UI/UX
게임 리뷰 CSS 반응형·모바일 사이즈 조정 (css/game-review.css)
모바일 폰트 사이즈, 타이틀 사이즈, 카드 레이아웃 등 반응형 미세 조정 다수
AI
중복기사 방지 로직 변경 (.github/workflows/daily_report.yml, archive-game-review.php)
CORE
CLAUDE.md 내용 보강 및 ToDoList.md 정리
2026-03-28
다크모드 프리셋 파일 구조화 외 3건
SYS
다크모드 프리셋 파일 구조화 (dark-mode/presets-data.php → dark-mode/presets/*.php)
16개 빌트인 프리셋을 각각 독립 PHP 파일로 분리 (dark-mode/presets/ 디렉토리 신설)
presets-data.php는 각 파일을 require하는 진입점으로 경량화
dark-mode/dark-mode.7z 압축 백업 추가
CORE
다크모드 문서 다이어트 및 분리 (darkmode-apply.md, darkmode-presets.md, darkmode-variables.md)
darkmode-apply.md 대폭 경량화 (토큰 절약 목적)
darkmode-presets.md 신규 분리 — 프리셋 목록 및 색상값 별도 관리
darkmode-variables.md 신규 분리 — CSS 변수 레퍼런스 별도 관리
UI/UX
다크모드 라이브 버그 수정 (dark-mode/render-css.php)
UI/UX
게임 리뷰 아카이브 라우터 페이지 헤더·레이아웃 개선 (archive-game-review.php, css/game-review.css)
2026-03-27
게임 리뷰 아카이브 라우팅 페이지 디자인 리뉴얼 외 1건
UI/UX
게임 리뷰 아카이브 라우팅 페이지 디자인 리뉴얼 (archive-game-review.php, css/game-review.css, dark-mode/presets-data.php)
페이지 전체 레이아웃 및 카드 디자인 대규모 개편
presets-data.php에 게임 리뷰 관련 다크모드 색상값 패치 (presets-data-patch.md 작업 노트 추가)
SYS
game-review CPT 일괄 생성 스크립트 (import_game_posts.py)
steam_check.csv 읽어 WP-CLI로 game-review 포스트 일괄 생성
LocalWP Site Shell 환경 기준 (wp 명령 직접 사용, shell=True)
스킵 조건: 빈 게임명, ❌ 제외/빈칸 상태, Humble Bundle·게임독립만세·PAYDAY 2·AC4 등
이미지: game_covers/[앱ID].jpg 자동 업로드 → 썸네일 지정 / manual_*.webp는 수동 처리 예정
--dry-run 옵션으로 WP 변경 없이 사전 확인 가능
실패 항목 failed_posts.txt 기록
stdout UTF-8 + line_buffering=True 로 실시간 진행 출력
2026-03-26
게임 리뷰 검색창 다크모드 색상 교체 + 레이아웃 변경 외 3건
UI/UX
게임 리뷰 검색창 다크모드 색상 교체 + 레이아웃 변경 (archive-game-review.php, css/game-review.css)
검색 아이콘·레이블·카운트 배지 color: var(--gr-card-score-bg) → var(--gr-archive-title) (다크 모드에서 밝게)
h1 타이틀과 검색창을 .gr-archive-header flex 컨테이너로 감싸 한 행 가운데 정렬
.gr-search-section max-width 560→400px, margin/padding 제거 (flex gap 위임)
모바일에서 flex-wrap으로 수직 정렬 유지
UI/UX
게임 리뷰 아카이브 페이지 검색창 (archive-game-review.php, css/game-review.css)
h1 타이틀 아래 "SEARCH" 플로팅 레이블 + 인풋 박스 UI 삽입
상시 애니메이션: 돋보기 아이콘 2.2s 바운스(gr-icon-bounce), 레이블 3s 맥동(gr-label-pulse)
호버: scale(1.015) + 인디고 글로우 shadow + 바운스 주기 0.9s로 가속
포커스(타이핑 중): 테두리 강조 + 아이콘 애니메이션 pause
JS 인라인 필터: .gr-card-title 텍스트 실시간 매칭, 불일치 카드 .gr-hidden 처리
결과 카운트 배지(N개) 우측 표시, 결과 0건 시 "검색 결과가 없습니다." 메시지
신규 CSS 변수 없음 — 기존 --gr-* 변수 재사용으로 라이트/다크 자동 지원
UI/UX
게임 리뷰 CPT 다크모드 시스템 완전 통합 (dark-mode/presets-data.php, css/game-review.css, style.css, inc/cpt-game-review.php, functions.php)
다크모드 제어판에 '게임 리뷰' 탭 신규 추가 (`darkmode_tab_meta()`)
CSS 변수 23개 신규 정의 (`darkmode_color_meta()`): 싱글 6개(--gr-title 등) + 필 배지 6개(플랫폼·장르·연도 각 color/border) + 아카이브 카드 10개(--gr-card-score-bg 등) + 아카이브 타이틀 1개
16개 빌트인 프리셋 전체에 게임 리뷰 색상값 지정 (Hokusai Indigo~Terminal Green)
신규: `css/game-review.css` — 라이트 테마 `:root` 변수 정의. 액센트 #3B4FCC(인디고), 필 3종 각각 다른 컬러(플랫폼 인디고·장르 코랄 #D14F3A·연도 틸 #2A9D8F)
`style.css` 게임 리뷰 섹션 — 모든 하드코딩 색상을 `var(--gr-*)` 참조로 교체, 기존 `body.dark-theme .gr-pill-genre` / `body.dark-theme .gr-card-score` / `@media prefers-color-scheme` 하드코딩 오버라이드 제거
`inc/cpt-game-review.php` — 아카이브 타이틀 `wp_head` 인라인 스타일 하드코딩 블록 제거 (CSS 변수 상속으로 대체)
`functions.php` — `is_singular('game-review') || is_post_type_archive('game-review')` 조건으로 `game-review.css` enqueue 추가
UI/UX
게임 리뷰 싱글 페이지 다크 테마에서 이미지 어둡게/흑백 처리 제거 (css/game-review.css)
`body.dark-theme.single-game-review .entry-content img` 선택자로 `filter: none !important` 적용
`.gr-review-image img` 포함 — 원본 리뷰 캡처 이미지도 대상
2026-03-25
CLAUDE.md 생성 (Claude Code AI 어시스턴트 지침 파일) 외 11건
AI
CLAUDE.md 생성 (Claude Code AI 어시스턴트 지침 파일)
프로젝트 개요, 아키텍처, 개발 규칙을 Claude Code가 참조할 수 있도록 한국어로 명문화
에셋 로딩 흐름, PHP 모듈 구조, 다크모드 시스템, 페이지별 전용 에셋 등 핵심 구조 문서화
CORE
릴리즈로그.html 전면 재설계
다크 테마 대응 — CSS 변수 기반으로 배경/텍스트/보더 색상 전환 적용
레이아웃 및 콘텐츠 전면 개편
CORE
README.md 내용 추가
UI/UX
커스텀 푸터 로고 이스터에그 버튼 추가 (inc/custom-footer.php)
푸터 브랜드명 "THIRD VAULT"를 `/easter-egg-01` 링크 버튼으로 교체
호버 시 글래스 패널 효과(배경·보더·그림자) 및 translateY(-2px) 상승 애니메이션 적용
클릭(active) 시 눌리는 피드백 효과 추가
UI/UX
스트라바 달력 시간대 오류 수정 (strava-personal/includes/05-page-builder.php)
PHP `date()` → WordPress `current_time()` 교체 — UTC 기준이 아닌 서버 로컬(KST) 기준으로 오늘 날짜 계산
영향 범위: 달력 현재 연·월·일 판별 변수 전체 (오늘 강조 표시, 당월 필터링)
UI/UX
스트라바 달력 일요일 셀 시각 강조 (strava-personal/includes/05-page-builder.php, strava-personal/assets/frontend-style.css)
일요일 셀에 `cal-cell--sunday` 클래스 추가
라이딩·오늘 표시가 없는 일요일 날짜 숫자에 빨간색(#CC0000) + 굵은 폰트 적용
UI/UX
사이드 패널(왼쪽) — 뉴스 카테고리 목록 → 뉴스룸 데이터로 교체 (functions.php, js/mini-panel.js, css/single-post-components.css)
`vault_get_newsroom_panel_data()` 함수 신규 구현: 오늘 날짜의 `YYYYmmdd_newsroom` 슬러그 포스트 쿼리, 없으면 최근 뉴스룸으로 폴백
`do_blocks()` + `DOMDocument` 파싱으로 서버 사이드에서 장르별 `.news-card` 각 2개 추출
`wp_localize_script`로 JS에 전달, 장르 레이블(`fnews-genre`) 포함 그룹 렌더링
패널 헤더 "NEWS" → "NEWSROOM" + `/newsroom/` 링크로 변경
UI/UX
사이드 패널(왼쪽) 토글 + 스크롤 동시 대응 (js/mini-panel.js)
`inScrollZone` 변수 도입 — 스크롤 위치와 토글 On/Off 상태를 분리하여 독립 추적
토글 클릭 즉시 패널 표시/숨김, 스크롤로 제목 영역 이탈 시 자동 숨김 동시 작동
UI/UX
사이드 패널 왼쪽 토글 아이콘 교체 (js/mini-panel.js, css/single-post-components.css)
파란 원 배경 "L" 아이콘 → 신문 SVG 아이콘으로 교체 (`ftp-icon-news` 클래스, stroke #888)
SYS
게임 리뷰 커스텀 포스트 타입(CPT) 구현 (inc/cpt-game-review.php)
슬러그 `game-review`, 아카이브 활성화, dashicons-controller 아이콘
ACF `game_title` 필드 저장 시 `post_title` / `post_name` 자동 동기화 (`acf/save_post` priority 20, `static $is_syncing` 무한루프 방지)
`blocksy:post:reading-time:enabled` 필터로 게임 리뷰 싱글에서 리딩타임 제거
`reading-time.js` 바디 클래스 감지 추가 — `single-game-review` / `post-type-game-review` 시 조기 종료
UI/UX
게임 리뷰 싱글 템플릿 B타입 레이아웃 (single-game-review.php, style.css 섹션 30)
ACF 필드: `game_platform`, `game_year`, `genre`, `game_score`, `game_review_image`
헤더 구조: `gr-title` → `gr-meta-row`(플랫폼·장르·연도 pill + 인라인 점수) → `gr-score-bar-bg`
pill 배지(`gr-pill`, `gr-pill-genre`, `gr-pill-year`) 전역 스타일 — 싱글·아카이브 공용
CSS 변수 전면 적용: `--text-main`, `--text-soft`, `--text-muted`, `--border-main`, `--border-soft` (다크모드 프리셋 자동 대응)
점수 표시(`gr-score-num`) 및 점수 바(`gr-score-bar-fill`)도 `var(--text-main)` 통일
UI/UX
게임 리뷰 아카이브 페이지 (archive-game-review.php, style.css 섹션 31)
`auto-fill minmax(200px, 1fr)` 카드 그리드, 게임 전체 DESC 쿼리
카드 구조: 네이비 점수 패널(SCORE + 숫자 + 바) + 본문 패널(제목 + pill 배지)
IntersectionObserver 진입 애니메이션: 점수 카운트업(0→실제, 900ms, easeOutCubic) + 바 width 애니메이션 동시 실행
카운트업 완료 후 숫자 breathing 애니메이션 (딜레이·주기·휴식 모두 랜덤)
다크모드: `body.dark-theme` + `prefers-color-scheme: dark` 이중 대응 (`#0c2140`)
아카이브 타이틀(`page-title`) 다크모드 강제 흰색 — `wp_head` 훅으로 해당 페이지에만 인라인 스타일 출력
상세 changelog 기록 없음 — 프로젝트 초기 단계 (워드프레스 스니펫 기반 개발)
2026-03-23
커스텀 에러 페이지 전면 개편 외 9건
SYS
커스텀 에러 페이지(404.php) 전면 개편
터미널/글리치 컨셉의 인터랙티브 404 페이지 디자인 적용
마우스 반응형 3D 글리치 텍스트, 주기적인 스캐너 라인 애니메이션, 순차적 타이핑 효과 등 추가
CORE
About 페이지 타임라인 섹션 텍스트 강조 (about_히스토리_클로드2차.html)
"HISTORY OF I,II" 타이틀에서 "I,II" 부분에 테마 속성 액센트 컬러(`.ac`)를 적용하여 시각적 포인트 강화
SYS
특정 카테고리 홈 화면 노출 제외 (functions.php)
메인 쿼리 조건 제어(`exclude_category_from_home`)에 카테고리 ID 1번을 추가하여 홈 화면 목록에서 배제
UI/UX
커스텀 푸터 상태 메시지 업데이트 및 링크 추가 (inc/custom-footer.php)
"Work in progress" 영역을 클릭 시 `changelog.md` 업데이트 내역 페이지로 연결되도록 하이퍼링크(`.vault-footer-wip-link`) 및 호버 시각 효과 추가
CORE
ToDoList.md 차기 작업 목표 관리
완료 리스트를 정리하고 "스트라바 페이지 오늘의 날짜 표기 오류(UTC 추정)" 해결 과제를 신규 등록
UI/UX
로컬 폰트 'Rockstar-ExtraBold' 등록 및 사이트 타이틀 적용 (css/fonts.css, style.css, inc/custom-footer.php)
`Rockstar-ExtraBold.otf` 폰트 파일을 테마에 등록
헤더의 사이트 타이틀(`.site-title`) 및 커스텀 푸터의 브랜드 이름(`.vault-footer-brand-name`)에 해당 폰트 적용하여 브랜드 아이덴티티 강화
UI/UX
`vault-category-bar.css` 404 에러 해결 (functions.php)
사용되지 않는 `vault-category-bar` 관련 스타일 및 PHP 모듈 참조 코드 제거
UI/UX
About 페이지 라이트/다크 테마 분리 대응 (about-page.css, dark-mode-core.css, style.css)
`dark-mode-core.css`에 `!important`로 하드코딩된 `#0f0f10` 배경색을 `transparent`로 교체하여 라이트 테마에서 블로그 기본 배경색 추종하도록 수정
`about-page.css` 라이트 테마 변수 블록 전면 교체 — 배경 transparent, 텍스트 컬러 블로그 기본값 연동
라이트 테마 액센트 컬러를 핑크(#ff4b82)에서 네이비/인디고(#3B4FCC)로 교체 — h-tag 호버, 이메일 버튼, bio-highlight, profile-eyebrow, profile-glow 등 전체 적용
`style.css` About 페이지 h1~h4 강제 흰색(`color: #ffffff`) 선언을 `var(--about-text-primary)`로 교체하여 테마 전환 시 자동 대응
UI/UX
About 페이지 III 로고 이미지 다크 테마 반전 처리 (about-page.css)
다크 테마에서 검정 로고가 어두운 배경에 안 보이는 문제 해결
`.vault-landing-container` 컨텍스트를 추가하여 `dark-mode-core.css`의 `.entry-content img` 광역 brightness 필터에 덮어씌워지던 문제 해결
기본 상태: `brightness(0) invert(1)` 적용으로 흰색 로고 표시
호버 상태: `drop-shadow` 효과 유지하면서 반전 처리 병행
UI/UX
About 페이지 update-pulse-dot 위치 오류 수정 (about_1st_renew01.html, about-page.css)
점(dot)이 화면 왼쪽 끝에 떠있고 텍스트만 가운데 정렬되던 문제 해결
`<div class="update-pulse-dot">`을 `<p class="update-text">` 내부로 이동하여 flex 컨테이너 안에서 나란히 배치
2026-03-22
다크모드 사이드 패널 메타데이터 레이아웃 버그 해결 외 6건
UI/UX
다크모드 사이드 패널 메타데이터 레이아웃 버그 해결
'newsroom' 카테고리 등에서 텍스트가 길어질 때 메타데이터가 두 줄로 줄바꿈(flex-wrap)되는 현상 수정
UI/UX
Pretendard 폰트 로컬 호스팅 적용 (strava-personal/includes/09-frontend-assets.php)
외부 CDN(jsdelivr) 의존성을 완전히 제거하고 테마 내 로컬 폰트 파일을 사용하도록 수정하여 로딩 속도 및 오프라인 호환성 개선
SYS
다크모드 관리자 메뉴 정리 및 오류 해결 (dark-mode/admin-menu.php)
중복되는 서브메뉴("색상 설정", "프리셋 관리")를 제거하고 메인 "🌙 다크모드" 메뉴로 통합
존재하지 않는 함수를 호출하여 발생하던 `darkmode_page_presets()` 관련 치명적 오류(Fatal Error) 해결
UI/UX
포스트 메타 글쓴이 아바타 제거 (functions.php, style.css)
`blocksy:post-meta:author:avatar` 및 `get_avatar` 필터를 사용하여 모든 영역에서 글쓴이 사진 노출 차단
CSS 선택자 확장을 통해 Gravatar를 포함한 모든 아바타 이미지 요소 숨김 처리
SYS
이미지 처리 및 성능 최적화 (functions.php)
JPEG 압축 품질을 92%로 명시적 상향 조정하여 이미지 화질 개선
불필요한 이미지 크기(thumbnail, 1536px, 2048px) 생성을 비활성화하여 서버 용량 및 리소스 절약
UI/UX
커스텀 푸터 및 UI 레이블 업데이트 (inc/custom-footer.php)
푸터 내비게이션 레이블 변경: "Newsroom" → "NEWSROOM", "Strava" → "Ride or Not"
푸터 태그 리스트에 "리눅스 & AI" 항목 추가
CORE
프로젝트 가이드 및 작업 관리 문서 현행화 (README.md, ToDoList.md)
README.md 상단에 AI Assistant(Antigravity)를 위한 한국어 지침 및 작업 우선순위 확인 가이드 추가
ToDoList.md의 완료된 항목을 정리하고, NOW 타임라인의 이미지 저장 방식 개선 등 차기 작업 우선순위 재정립
2026-03-21
Now 타임라인 상단 네비게이션 숏코드화 및 디자인 리뉴얼 외 21건
UI/UX
Now 타임라인 상단 네비게이션 숏코드화 및 디자인 리뉴얼 (inc/now-timeline.php)
신규 숏코드 `[vault_now_nav]` 구현: 데이터 기반의 동적 연도/월 그리드 자동 생성
디자인 현대화: 고급스러운 글래스모피즘 효과, "NOW" 숨쉬기(Breath) 애니메이션 및 타이틀 흔들림(Shake) 효과 적용
테마 호환성 확보: `body.dark-theme` 감지를 통해 라이트/다크 모드별 최적화된 색상 자동 전환 로직 구현
연도 선택기 개선: 시작 연도를 2026년으로 조정하고, 페이지 전환(월 클릭) 시에도 선택된 연도가 유지되도록 PHP `selected()` 로직 보완
기존 `[vault_timeline]`과의 파라미터(`nm`) 연동으로 매끄러운 필터링 환경 구축
UI/UX
사이드 패널(Floating Panel) 디자인 고도화 (js/mini-panel.js, css/single-post-components.css)
내부(.floating-title-inner)에 border-radius(10px) 및 전체 테두리 적용으로 디자인 일관성 강화
시계 및 토글 버튼 영역에 입체감 있는 음각(inset) 패널 스타일 적용 (라이트 모드 한정)
타이틀 영역 가독성 개선: 글쓴이(Author) 메타 정보 삭제, 제목 text-align: justify (양끝 맞춤) 적용
다크 모드 최적화: 시각적 피로도를 줄이기 위해 다크 모드에서는 시계 영역을 음각 없이 플랫(flat)하게 변경
UI/UX
시계(Clock) 모듈 정렬 버그 해결 (css/single-post-components.css)
초(seconds) 단위가 좁은 공간에서 상하로 꺾이는 현상을 white-space: nowrap 및 flex-shrink: 0 적용으로 해결
AI
프로젝트 관리 언어 및 문서화 (brain/)
모든 할 일 목록(task.md), 실행 계획(implementation_plan.md), 완료 보고서(walkthrough.md) 및 안내 메시지를 한국어로 전환하여 관리 효율성 강화
AI
README.md에 원본 Blocksy 파일 참조 및 AI 작업 지침 추가
`orignal_blocksy_files/` 디렉토리를 테마 수정 시 기본 구조 참조용으로 명시
Antigravity AI Assistant를 위한 한글 사용 지침 명문화
UI/UX
커스텀 푸터 호환성 및 구조 개선 (inc/custom-footer.php)
출력 훅을 `wp_footer`에서 `blocksy:footer:before`로 변경하여 레이아웃 컨테이너(#main-container) 내부에 올바르게 위치하도록 수정
원본 `footer.php`와의 구조 비교를 통한 시맨틱 HTML 무결성 확보
UI/UX
다크 모드 프리셋 색상 미세 조정 (dark-mode/presets-data.php)
모든 프리셋의 `figcaption_marker_text` 색상을 고대비 또는 배경색 계열로 조정하여 가독성 강화
UI/UX
커스텀 푸터에 현재 적용된 다크 테마 프리셋 표시 배지 추가 (inc/custom-footer.php)
현재 활성화된 프리셋 키를 가져와 테마 이름을 푸터 하단에 동적으로 표시
Shimmer 효과 및 펄스 애니메이션이 적용된 세련된 배지 디자인 구현
CORE
향후 작업 관리용 `ToDoList.md` 파일 생성 (루트 폴더)
작업 시작 전 항상 이 파일을 확인하여 진행 우선순위 및 세부 사항 파악
UI/UX
다크 모드 색상 커스터마이저 확장 — 신규 색상 변수 16개 추가 (presets-data.php)
카테고리: newsroom (id=100, slug=newsroom)
이미지·캡션: figcaption 마커 배경 / 텍스트
TOC: 사이드바 목차 폰트 / 호버 / 선택 색상 (탭명 mobile → TOC 통합)
텍스트: 드롭캡 문자 색상
댓글 영역: 헤딩 / 로그인 안내 텍스트 / 링크 / 버튼 배경 / 버튼 텍스트
관리자 탭: comment 탭 신규 추가, image 탭 레이블 → '이미지 · 캡션'
UI/UX
다크 모드 색상 커스터마이저 확장 — 신규 색상 변수 5개 추가 (presets-data.php)
UI: 위젯 섹션 제목(ct-module-title) / 제목 하단 라인 / 관련글 카드 제목
UI: Blocksy 링크 초기색(--theme-link-initial-color) / 텍스트 초기색(--theme-text-color) 재정의
CORE
이미지 밝기 변수(--img-brightness) 추가 — brightness 하드코딩 제거 및 프리셋별 제어 가능
CORE
라이트 모드용 다크테마 프리셋 2종 추가 (dark-theme 활성 상태에서 적용)
Ivory Classic — 크림 화이트 배경, 골드 포인트 (써드볼트 아이덴티티 기반)
Clean White — 순수 화이트 배경, 블루 포인트 (미니멀)
UI/UX
dark-mode-core.css — 신규 변수에 대응하는 CSS 규칙 추가
newsroom 카테고리 색상 (메뉴 오염 방지를 위해 .cat-links 컨텍스트 한정)
figcaption 마커 — background-image: linear-gradient() 방식 오버라이드
사이드바 TOC 링크 색상 변수 교체 (--text-soft 하드코딩 → --sidebar-toc-link)
드롭캡, 댓글 헤딩/안내/버튼, ct-module-title, related-entry-title CSS 규칙 추가
Blocksy --theme-link-initial-color 강제 리셋 대응 (구체성 강화)
UI/UX
render-css.php — CSS 변수 출력 선택자 :root → body.dark-theme 변경
라이트 모드 전환 시 다크 변수가 전역 적용되던 문제 해결
UI/UX
custom-footer.php — filter: invert() 방식 제거, CSS 변수 기반으로 전면 교체
모든 하드코딩 색상을 var(--변수, 폴백) 형태로 통일
라이트/다크/커스텀 프리셋 전환 시 자동 반영
CORE
다크테마 프리셋 3종 추가 (컨셉 다변화)
Matcha Latte — 크림 베이지 배경, 말차 그린 포인트 (미디엄 톤, 라이트/다크 중간 감성)
Midnight Rose — 딥 버건디 블랙 배경, 로즈/핑크 포인트 (기존 다크 계열과 색감 완전 차별화)
Terminal Green — 순수 블랙 배경, 매트릭스 그린 포인트 (img_grayscale 1 + brightness 0.7 레트로 터미널 감성)
UI/UX
Now 타임라인 다크테마 라이트 프리셋 대응 (inc/now-timeline.php, css/now-timeline.css)
헤더/연도셀렉터/월그리드 — --now-text 등 로컬 변수를 커스터마이저 변수(--text-main 등)로 연결
now-day(날짜 숫자) — color: #ffffff + mix-blend-mode: difference 제거 → var(--text-main) 교체
중앙 세로선 — 동일하게 mix-blend-mode 제거 → var(--border-main) 교체
JS 인라인 color 하드코딩(#aaa, #888) → .now-date-ym / .now-date-dow 클래스 분리 후 CSS 변수 적용
UI/UX
Now 타임라인 이미지 호버 확대 기능 (css/now-timeline.css)
.now-image-box 단일 이미지 호버 시 scale(1.06) 확대 효과 추가
UI/UX
Now 타임라인 갤러리 기능 구현 (inc/now-timeline.php, css/now-timeline.css, js/now-lightbox.js)
관리자 페이지에 갤러리 추가 이미지 입력 UI 추가 (미디어 라이브러리 연동, 행 추가/삭제)
저장 시 gallery[] 배열 sanitize 처리, 기존 단일 이미지 데이터 하위 호환 유지
표시 방식: 메인 이미지(16:9) + 하단 썸네일 스트립(1:1 정사각) 구조
메인 이미지 클릭 → 라이트박스 1번 진입, 썸네일 클릭 → 해당 인덱스로 직접 진입
now-lightbox.js collectGallery() 확장 — 갤러리 그룹 단위 수집 및 groupStart/groupEnd 범위 네비게이션
라이트박스 내 카운터 그룹 내 순번 표시 (전체 갤러리 순번이 아닌 항목별 n/total)
UI/UX
커스텀 푸터 애니메이션 추가 (inc/custom-footer.php)
"Work in progress." 텍스트 — rotate + skewX 조합 wobble 애니메이션 (2.2초 주기, 좌측 기준 비틀림)
하단 안내 문구 — 커스터마이저 변수 기반 색상 순환 애니메이션 (6초 주기, 프리셋 색상 자동 추종)
AI
Newsroom 큐레이터 중복 기사 방지 (Newsroom/curator2.py, .github/workflows/daily_report.yml)
seen_links.json 캐시 파일 도입 — 포스팅한 기사 링크를 로컬에 저장, 다음 실행 시 중복 스킵
14일 초과 항목 자동 정리로 파일 크기 관리
전체 신규 기사 0건이면 포스팅 없이 조기 종료 (Gemini API 호출 생략 → 토큰 절약)
GitHub Actions 캐시(actions/cache@v4) 연동 — 매 실행마다 seen_links.json 복원/저장
if: always() 로 스크립트 실패 시에도 캐시 저장 보장
2026-03-19
Strava Personal 모듈 — 관리자 설정 페이지 UI 전면 리디자인 (v8 → v9)
UI/UX
그리드 레이아웃 재설계: 4컬럼 → 3컬럼(좌 1fr+1fr / 우 2fr) 구조로 변경
UI/UX
현재 상태 패널: 폰트 크기 전반 상향 (kk 13px, kvv 14px, Rate Limit 숫자 40px) — FHD 가독성 개선
UI/UX
Description 수집 · 자동 동기화: 토글 스위치 UI로 교체 (CSS 음각 트랙 + 양각 놉 입체 구현)
UI/UX
API 정보 입력 · 계정 연동: 컴팩트하게 축소 후 같은 행 배치, 내부 요소 바닥 레벨 정렬
UI/UX
이번 달 동기화 · 과거 월 재생성: 버튼 크기 통일, 바닥 레벨 맞춤
UI/UX
재생성 실행 버튼: 스트라바 오렌지 틴트 색상 적용
UI/UX
하단 Row4: Deco·Reserved 제거 → 가로 가이드 박스(c1–c3) + Strava Compatible 로고(c4) 배치
UI/UX
가이드 박스: 초기설정 / 수집옵션 / 동기화실행 / Rate Limit 관리 4컬럼 사용 방법 텍스트 삽입
UI/UX
Strava 로고: 기존 텍스트 로고 제거, Strava Compatible SVG로 교체 (112×52px)
UI/UX
BOX 넘버링: Step X-X 표기 → Box 01~06 순서 표기로 변경
UI/UX
박스 배치 순서 변경: API정보·계정연동(Box01·02) → Description·자동동기화(Box03·04) → 동기화·재생성(Box05·06)
UI/UX
Rate Limit 게이지: 음각 트랙(inset shadow) + 볼록 바(::after 하이라이트) 입체 스타일 적용
UI/UX
반응형 대응: ≤1100px 2컬럼 / ≤600px 1컬럼 스택
2026-03-17
'tablet-menu.js'의 활성화 클래스 로직을 개선하여 "홈" 링크가 루트 경로에서만 표시되도록 수정 외 2건
UI/UX
'tablet-menu.js'의 활성화 클래스 로직을 개선하여 "홈" 링크가 루트 경로에서만 표시되도록 수정
CORE
새로 업로드한 이미지에서 EXIF 정보(카메라, 렌즈 등)가 누락되는 문제를 해결하기 위해 추출 시점을 `wp_generate_attachment_metadata`로 변경
AI
다크 모드 프리셋 확장 (Champagne Noir 기반으로 Hokusai Indigo, Desert Dune, Edgerunners 3종 추가 및 Amethyst Night 제거)
2026-03-16
프로젝트 이력 관리를 위한 '변경사항.txt' 및 'changelog.md' 생성 외 13건
CORE
프로젝트 이력 관리를 위한 '변경사항.txt' 및 'changelog.md' 생성
CORE
백업 및 이관을 위한 Newsroom 디렉토리 복사
CORE
테마 구조를 설명하는 README.md 작성
CORE
뉴스룸 모듈의 RSS 피드 오류 수정
CORE
본문과 사이드바 사이의 간격 조정 (600px -> 570px)
UI/UX
'mini-panel.js' 시계 업데이트 로직 최적화 (성능 경고 해결)
UI/UX
'js/passive-fixer.js' 생성 및 functions.php 등록 — touchstart [Violation] 경고 억제
UI/UX
Pretendard 폰트 로컬 호스팅 전환 (cdn.jsdelivr.net CDN 제거, css/fonts.css + fonts/pretendard/ 구조)
UI/UX
'single-post-components.css' 코드 가독성 개선 (포맷팅 및 줄바꿈 적용)
UI/UX
푸터 메시지 업데이트 및 Hook 방식 적용 완료
CORE
재편된 테마 구조를 Git 저장소로 초기화 및 첫 커밋 완료
CORE
사용자 경험(UX) 개선을 위해 스트라바 제어판 위치 조정
CORE
메뉴 내비게이션 버그 수정 (일부 완료, 1개 잔여)
CORE
문서 내 식별자 문자열 불일치 수정
2026-03-15
개인 운동 데이터 시각화를 위한 Strava Personal 모듈 통합 외 3건
CORE
개인 운동 데이터 시각화를 위한 Strava Personal 모듈 통합
UI/UX
임시 스타일 조정을 위한 추가CSS_20260315.css 생성
UI/UX
요청에 따라 스트라바 대시보드 로고 크기를 1/4로 축소
UI/UX
로고 크기 조정을 위한 전용 CSS 선택자 및 속성 가이드 제공
2026-03-14
워드프레스 최신 권장 사항에 따른 테마 리팩토링 진행 외 4건
CORE
워드프레스 최신 권장 사항에 따른 테마 리팩토링 진행
CORE
다크 모드 로딩 시 깜빡임(FOUC) 방지를 위한 가드 스크립트 적용
SYS
functions.php 최적화를 통해 페이지별(메인, 개별 포스트 등) 조건부 에셋 로딩 적용
CORE
스크립트 데이터 전달 방식을 wp_localize_script로 표준화
CORE
다크 모드 전환 시의 미세한 그래픽 오류 수정
2026-03-13
워드프레스 스니펫의 네이티브 자식 테마 파일 이식 외 4건
SYS
워드프레스 스니펫의 네이티브 자식 테마 파일 이식
UI/UX
폴더 구조 정립 (inc/, css/, js/, dark-mode/)
SYS
핵심 모듈 구현 (custom-footer.php, dark-mode.php, lightbox-exif.php, now-timeline.php)
SYS
성능 향상을 위해 'Code Snippets' 플러그인 의존성을 제거하고 원시 PHP 파일로 이전
UI/UX
테마 전역에 Pretendard 폰트가 적용되도록 필터 설정 완료
2026-03-12
AI 뉴스룸 시스템 구축 — curator2.py + GitHub Actions 자동 발행 외 3건
SYS
AI 뉴스룸 큐레이션 스크립트(curator2.py) 신규 구축 — Gemini 기반 뉴스 요약·카테고리 분류
SYS
GitHub Actions daily_report.yml — 매일 자동 실행 + 워드프레스 포스트 자동 발행 연동
SYS
블로그 HTML 연동 완성 (서버 우회 헤더 포함), 큐레이션 소스 다양화
UI/UX
뉴스 카드 디자인 수정, 모바일 TOC 아이콘 위치 수정
2026-03-11
이미지 라이트박스 EXIF 구현 + 다크모드 프리셋 3종 추가 외 2건
CORE
이미지 라이트박스 구현 + EXIF 정보 추출·재배열
UI/UX
Now 페이지 이미지 라이트박스 연동
UI/UX
다크모드 프리셋 3종 추가, 토글 스위치 수정, 다크모드 시계 배경 제거
SYS
다크모드 고정 관련 로직 수정
2026-03-10
다크모드 컬러세팅04 about·카테고리 적용 + 관리자 메뉴 위치 수정
UI/UX
다크모드 컬러세팅04 — about 페이지·카테고리 대응 CSS 파일 생성
SYS
관리자 메뉴 위치 수정
2026-03-09
Now 페이지 타이틀 리뉴얼 + 시계 레이아웃 수정 외 1건
UI/UX
Now 페이지 타이틀 리뉴얼, 나우 네비게이션 수정
UI/UX
왼쪽 시계 패널 오른쪽으로 이동, 시계 배경 삭제
SYS
WP 크론잡(cron.php) 버그 수정
2026-03-08
Now 페이지 PHP 전환(now.php) + 스트라바 세팅 반응형 추가 외 1건
SYS
now.php 신규 생성 — 커스텀 페이지 빌더에서 PHP 네이티브 방식으로 전환
UI/UX
Now 페이지 리뉴얼 2차, About 페이지 h2 헤딩 속성 제거
UI/UX
스트라바 세팅 페이지 반응형 추가, 폰트 관련 CSS 미세 조정
2026-03-07
양쪽 사이드 패널 구현 — H2 헤딩 띠지·시계 패널·목차 하이라이트 외 1건
UI/UX
본문용 양쪽 사이드 패널 JS 구현 (본문용_양쪽_사이드패널.js)
UI/UX
H2 헤딩 띠지 추가, 왼쪽 시계 패널 추가
UI/UX
오른쪽 패널 목차(TOC) 하이라이트 구현
SYS
정보 크롤링 스크립트 추가 (본문패널_정보크롤링.js)
2026-03-06
모바일 메뉴 통합 + 토글 버튼 위치 변경 + rsync 배포 전환
UI/UX
모바일 메뉴 CSS 통합, 토글 버튼 위치 변경 및 디자인 수정
UI/UX
디스크립션 표시 스위치 추가
SYS
RSA 키 기반 rsync 자동 배포 적용 (deploy.yml 전환)
2026-03-05
Strava 페이지: 달력·걷기 계산 API·BOX 반응형 외 2건
CORE
05-page-builder.php 생성
UI/UX
달력 그리드 구현, 걷기 계산 API 연동 (walk 합산 로직 포함)
UI/UX
BOX1·BOX12 반응형 수정, 나우 도트 위치 조절
UI/UX
프리텐다드 CDN 모바일 확장 적용
UI/UX
로고 규정 준수, Now 본문 디자인 변경
2026-03-04
스트라바 V2 구조화 + GitHub Actions FTP 자동 배포 CI/CD 구축
CORE
스트라바 V2 구조화 버전으로 전환 — 관리자 페이지(02-admin-page.php) 구현
SYS
GitHub Actions FTP 자동 배포 CI/CD 구축 (deploy.yml)
2026-03-03
Strava 개인 연동 모듈 신규 구축 (strava_personal.php)
CORE
strava_personal.php 신규 생성 — Strava API OAuth 토큰 관리·데이터 조회 구현
SYS
Base.php 생성, README 및 프로젝트 문서 초기화
2026-03-01
[프로젝트 시작] Blocksy 자식 테마 초기 생성 + 주요 스니펫 통합 외 5건
SYS
[프로젝트 시작] Blocksy 자식 테마 초기 생성 — style.css, functions.php 구성
CORE
각주 팝업·풋노트·리딩타임 스니펫 네이티브 PHP로 통합
UI/UX
홈화면 사이드 태그 검색창 추가, 좌우 미니패널 초기 구현
SYS
Strava·Now 페이지 리다이렉트 설정, 뉴스 크롤링 스크립트 추가
SYS
폰트 가로채기 — Pretendard 로컬 폰트 전역 적용 필터 설정