-
정부 연동 데이터 INSERT 시 SEO 메타데이터 자동 생성
gov-bot을 통해 INSERT되는 데이터들에 대해 SEO 메타데이터(metaTitle, metaDescription)를 LLM으로 자동 생성하는 기능을 추가했다. db.py에서 INSERT 로직이 호출될 때 seo_generate 함수를 연쇄 실행하도록 만들어서, 외부 데이터가 들어올 때마다 검색 최적화된 메타데이터가 함께 저장되게 한 것이다.
읽기 → -
모바일 앱 광고 아이디와 릴리즈 서명을 프로덕션용으로 전환
모바일 앱을 실제 스토어에 배포하려면 개발 환경의 편의성과 프로덕션 환경의 보안·정합성 사이의 균형을 맞춰야 한다. 이번 작업은 그 분기점을 명확히 하는 과정이었다.
읽기 → -
봇 워커에 자동 상태 수정 액션 타입을 추가해 반복 수동 작업을 줄이다
봇 액션 워커 스크립트에 새로운 액션 타입인 autofix를 추가했다. 자동화 워크플로우가 단순 알림이나 데이터 조회를 넘어 실제 상태 수정까지 수행할 수 있게 된 작업이다.
읽기 → -
프로덕션 빌드에서 절대 경로 문제로 Turbopack을 webpack으로
개발 단계에서는 빨라야 한다. Turbopack이 매력적이었던 이유다. 그런데 프로덕션 환경에 배포할 땐 얘기가 달랐다. macOS 머신에서 빌드한 결과물에 절대 경로가 고스란히 남아있는 현상을 발견했고, 이게 배포 재현성과 보안상 문제가 될 수 있다는 판단 아래 webpack으로 전환했다.
읽기 → -
SEO DB 모듈을 빌드 타임에서 런타임 전용으로 전환한 방법
SEO 메타데이터를 관리하는 데이터베이스 모듈을 런타임에만 로드해야 하는 상황을 마주쳤다. 빌드 단계에서 불필요하게 실행되는 import를 피하기 위해 new Function() 패턴을 도입하면서 설정과 레이아웃 코드를 정리한 작업이다.
읽기 → -
배포 스크립트에 SEO 자동 주입 단계를 추가해 휴먼 에러 제거
배포 스크립트에 SEO 주입(inject) 단계를 추가했다. 특정 엔트리포인트 파일에만 선택적으로 적용하는 구조로, 배포 자동화 파이프라인을 한 단계 더 진화시킨 작업이다.
읽기 → -
광고 정책 변경에 맞춰 광고 유닛 설정을 정리한 방법
광고 네트워크 정책이 변경되면서 특정 광고 제공자의 항목을 광고 유닛 설정에서 제거하는 작업을 했다. 단순한 데이터 정리로 보일 수 있지만, 이 작업이 보여주는 점들이 꽤 있었다.
읽기 → -
SEO 메타 태그를 CMS 데이터베이스로 동적 전환한 방법
이번에는 SEO 메타 태그 관리를 하드코딩된 방식에서 데이터베이스 중심으로 전환하는 작업을 했다. 사이트의 제목, 설명, 오픈그래프 이미지 같은 SEO 관련 메타 정보를 CMS 테이블에서 동적으로 불러와서 사용하도록 개선했다.
읽기 → -
Next.js 16 업그레이드 후 경로 별칭을 Turbopack 방식으로
next.config.ts에서 webpack 방식의 alias 설정을 turbopack.resolveAlias로 변경했다. Next.js 16으로 메이저 업그레이드하면서 빌드 엔진이 바뀌니 설정도 함께 맞춰야 하는 작업이었다.
읽기 → -
정적 사이트에 CMS 연동 SEO 메타 자동 주입 구조 설계
정적 파일로 생성되는 HTML 페이지들에 CMS에서 관리되는 SEO 메타정보를 자동으로 주입하는 스크립트를 추가했다. 이것은 생각보다 번거로운 문제였는데, 정적 생성의 장점을 유지하면서도 동적으로 변경되는 메타데이터를 어떻게 싱크할 것인가 하는 고민의 결과다.
읽기 → -
DB 기반 동적 SEO 메타데이터로 전환한 과정
Next.js App Router의 generateMetadata 함수를 DB 기반으로 변경하는 작업을 진행했다. 정적 메타데이터에서 벗어나 동적으로 각 페이지마다 필요한 메타데이터를 데이터베이스에서 조회·생성하는 방식으로 전환한 것인데, 생각보다 영향 범위가 넓었다.
읽기 → -
PDF 변환 API의 메타데이터를 동적으로 전환한 이유
PDF 변환 API의 페이지마다 다른 메타데이터를 동적으로 생성하도록 시스템을 재설계했다. 기존 정적 메타데이터에서 벗어나 데이터베이스 기반의 동적 생성 방식으로 전환하면서 설정 파일들도 함께 정리했다.
읽기 → -
SEO 메타데이터를 DB로 옮겨 배포 없이 운영팀이 직접 수정
DB 드리븐 SEO 메타 데이터 패턴(getSiteSeo)을 구현했다. 정적 하드코딩에서 동적 관리로 전환하는 작업이었다.
읽기 → -
채용공고별 SEO 메타 태그를 DB에서 동적으로 주입하도록 개선
취업 정보 사이트의 각 채용공고마다 검색 엔진이 인식할 수 있는 동적 SEO 메타 태그를 DB에서 직접 가져오도록 구조를 개선했다.
읽기 → -
Astro 정적 사이트에 DB 기반 SEO 메타 관리 도입
Astro 기반 정적 사이트에 데이터베이스 기반 SEO 메타 패턴을 도입했다. getSiteSeo 함수로 메타 정보를 중앙화하고, 런타임에 동적으로 로드하는 구조를 만들게 됐는데, 이게 생각보다 흥미로운 트레이드오프 경험이었다.
읽기 → -
Astro SEO 메타데이터를 DB 연동으로 전환해 비개발자도 관리
최근 Astro 프로젝트에서 **정적 SEO 메타데이터를 DB-driven 패턴으로 전환**하는 작업을 했다. 커밋은 작아 보이지만, 이 변경이 팀의 SEO 관리 방식과 배포 파이프라인에 영향을 주는 꽤 중요한 리팩터링이었다.
읽기 → -
SEO 메타데이터를 DB로 중앙화해 팀 간 협업 개선
SEO 메타데이터를 정적으로 관리하는 대신 데이터베이스에서 동적으로 가져오도록 개선했다. Astro 설정과 Base 레이아웃을 수정해서 공용 라이브러리(@hedvion/common/seo_db.mjs)를 통해 메타 정보를 중앙화했는데, 이 과정에서 몇 가지 팀 관점의 의사결정이 있었다.
읽기 → -
AdSense 도메인 심사 통과를 자동으로 감지해 알림 발송
AdSense 사이트의 상태를 주기적으로 체크해서, READY 상태로 변할 때 자동으로 알려주는 시스템을 만들었다. 단순해 보이지만 운영 입장에서는 꽤 필요한 자동화였다.
읽기 → -
SEO 메타 태그를 DB 기반으로 전환해 동적 주입 실현
SEO 메타 태그 관리를 하드코딩에서 DB 기반으로 옮겼다. Astro 설정 레이어와 레이아웃 컴포넌트에 공통 패키지를 연결해서, 페이지별로 필요한 메타 데이터를 동적으로 주입하는 시스템을 만들었다.
읽기 → -
SSR 빌드 안정화를 위해 mysql2를 번들에서 제외한 이유
Vite 기반 SSR 프로젝트에서 mysql2를 번들에서 제외하도록 설정을 수정했다. 번들링 오류를 막기 위한 작업인데, SSR과 SEO의 맥락에서 꽤 중요한 변경이라 정리해본다.
읽기 →