dynoblog — 2026년 5월 21일
# Dynoblog 대규모 리팩토링 완료: 보안, 성능, 아키텍처 전반 개선
이번 주기에 dynoblog에 대대적인 개선 작업을 진행했습니다. 70개 파일에 걸쳐 2,800+ 줄의 코드를 추가하고 770+ 줄을 정리하면서, 보안(SEC), 성능(PERF), 아키텍처(ARCH), 스타일(STYLE) 네 가지 영역을 동시에 강화했습니다. 특히 관리자 인증 강화, 오픈 리다이렉트 차단, SQL 인젝션 방어 등 **10개 이상의 보안 이슈**를 해결했고, FTS5 기반 검색 최적화, N+1 쿼리 제거, 데이터 캡핑 등으로 쿼리 성능을 개선했습니다. 동시에 ESLint 규칙을 강화하고 21개의 Server Action에 Zod 검증을 도입하면서 타입 안정성을 높였습니다.
성능 최적화에서는 `getAllPostsSlim` 함수 추가로 sitemap 생성 성능을 개선했고, `getAllTopicsByForum`을 통해 포럼 토픽 조회 시 N+1 문제를 제거했습니다. 특히 전문 검색(FTS5)을 이중 경로로 구성해 마이그레이션 과정에서도 안정성을 보장했습니다. SEO 측면에서는 JSON-LD를 SSR로 렌더링하고 네이버·구글 메타 태그를 완벽히 보강했으며, `/doc/archives` 페이지의 iframe 렌더링과 시맵·RSS 메타데이터도 동시에 복구했습니다.
흥미로운 부분은 **폰트와 UI의 세밀한 개선**입니다. Datatype 차트용 가변 폰트를 추가하고, ContentRow 컴포넌트 충돌을 해소한 후 폰트 크기별 대비 문제까지 해결했습니다. 또한 footer에 '기분'과 '포토 월' 섹션을 추가하면서 TOUCH 페이지를 보완했으며, 홈의 VOL 통계와 `/stats` 페이지의 포스트 수 불일치(4999 vs 5107)도 일관되게 정렬했습니다. 이 과정에서 AI와 협업하며 복잡한 마이그레이션 전략을 검증하고 코드 리뷰의 일관성을 유지할 수 있었습니다.