개발
코드 / 아키텍처 / 디버깅
-
장례 도메인 레이아웃의 광고 슬롯 구조화와 법적 고지 문구 개선
레이아웃 파일 하나에 광고 슬롯 마크업 정리 + 법적 고지 문구를 도메인에 맞게 교체하는 작업을 했다.
읽기 → -
Flutter Web 검색 노출과 소셜 공유 미리보기 개선
Flutter Web 프로젝트의 index.html에 SEO 메타 태그를 추가했다.
읽기 → -
Thymeleaf SEO 메타 태그를 fragment로 통합해 일관성 확보
Thymeleaf SEO fragment를 새로 만들었다. 사내 서비스의 HTML <head> 메타 정보가 여기저기 흩어져 있어서 한 번에 정리가 필요했던 작업.
읽기 → -
SEO 컴포넌트 분리와 사이트 상수 단일화로 메타 관리 구조 정비
표준 SEO 컴포넌트를 별도 파일로 분리하고, 사이트 전역 상수를 consts.ts로 뽑아낸 작업이다.
읽기 → -
게임 허브 SNS 공유 미리보기가 드디어 뜨게 됐다
게임 허브 페이지에 OG/트위터 카드 메타를 달았다. index.html 한 파일 수정이지만, 이게 SNS 공유 경험 전체를 바꾸는 작업이라 가볍게 보기 어렵다.
읽기 → -
어드민 전 페이지에 로딩·에러 상태 화면 추가
어드민 UI 전반에 로딩/에러/빈 상태를 한 번에 정비했다.
읽기 → -
어드민에 다크모드 토큰 시스템과 모바일 사이드바 도입
다크모드 토큰 시스템과 모바일 햄버거 사이드바를 한 번에 붙인 커밋이었다.
읽기 → -
관리자 로그인에 TOTP 2단계 인증 추가
관리자 로그인에 TOTP 기반 2FA를 얹었다. credentials 인증 위에 OTP 레이어를 추가하는 작업이라 미들웨어 흐름까지 손을 댔고, 결과적으로 파일 수는 많지 않았지만 인증 흐름 전체를 다시 그려야 하는 작업이었음.
읽기 → -
토큰 버전 관리로 세션 만료 정책과 강제 로그아웃 도입
세션 만료 정책과 강제 로그아웃 인프라를 한 번에 묶어서 배포했다.
읽기 → -
어드민 핵심 페이지 UI를 shadcn 컴포넌트로 일관되게 통일한 과정
어드민 핵심 페이지들 전반에 걸쳐 shadcn/ui 컴포넌트를 일관되게 적용하는 리팩토링 작업을 했다.
읽기 → -
리치 텍스트 에디터 HTML 저장 시 XSS 취약점 수정
TipTap 에디터에서 입력된 HTML을 그대로 DB에 저장하고 있었다는 걸 코드 리뷰 중에 뒤늦게 확인했다.
읽기 → -
어드민 UI에 페이지 헤더 공통 컴포넌트 도입
어드민 UI 전반에 PageHeader 컴포넌트를 만들어서 붙이는 작업을 했다. 커밋 하나짜리 작업이지만, 팀 입장에서는 꽤 의미 있는 시발점이었다.
읽기 → -
어드민 쓰기 액션 전반에 감사 로그 확장
어드민 영역 전반의 쓰기 작업에 감사 로그를 확장한 작업이다.
읽기 → -
어드민 헤더 컴포넌트 제거로 레이아웃 구조 일원화
죽은 컴포넌트를 걷어냈다. AdminHeader.tsx 하나짜리 변경이지만, 이게 왜 오래 살아남았는지를 되짚어보는 게 더 중요하다.
읽기 → -
API 호출 제한 로직을 미들웨어로 통합해 중복 제거
API rate limit 미들웨어를 범용으로 뽑아냈다.
읽기 → -
프론트엔드 보안 응답 헤더 일괄 적용으로 XSS·클릭재킹 방어 강화
보안 응답 헤더를 next.config.mjs에 박아 넣은 이유
읽기 → -
어드민 광고 유닛 폼 공용화와 recharts 차트 도입
운영 화면 전반에 걸친 polish 작업과 공용 컴포넌트 정리, 그리고 recharts 도입까지 한 스프린트에 몰아서 처리했다.
읽기 → -
광고 슬롯 시각화와 어드민 UI 전면 개선
한 번에 꽤 많은 걸 쏟아냈다. 보안 패치, UI 라이브러리 교체, 운영 대시보드 개선, 광고 UX까지 — 커밋 하나에 담기엔 묵직한 범위였다.
읽기 → -
analyses 페이지에 모본 광고 슬롯 연동 추가
analyses 페이지에 광고 유닛을 붙이는 작업을 했다. fetchAdUnits로 광고 데이터를 서버에서 가져오고, MobonSlot 컴포넌트를 실제 페이지에 박아 넣는 흐름이었다.
읽기 → -
블로그 배포 스크립트에 IndexNow 색인 알림 자동화
블로그 배포 스크립트에 IndexNow ping 단계를 끼워 넣었다.
읽기 →