개발
코드 / 아키텍처 / 디버깅
-
블로그 서브도메인 통합과 301 리다이렉트로 URL 단절 방지
개인 블로그의 정보 아키텍처를 정리하면서 6개의 포스트를 blog.hedvion 도메인에서 www/insights 경로로 옮겼다. 이 과정에서 nginx 설정에 301 리다이렉트 규칙들을 추가해 기존 링크들이 깨지지 않도록 처리했는데, 단순해 보이는 작업이지만 안고 있는 배경과 고려사항들이 생각보다 많더라.
읽기 → -
Discord 알림을 Embed 형식으로 전환해 가시성 개선
Discord 알림 시스템의 메시지 가시성을 개선하기 위해 사이트 온보딩과 메타 체크 두 모듈의 알림을 일반 텍스트 포맷에서 discord_embed 형식으로 전환했다.
읽기 → -
22개 이커머스 사이트 메타 태그를 AI로 자동 감시한 방법
한 이커머스 서비스의 경우 여러 도메인과 런딩페이지를 동시에 운영하면서 각 사이트의 메타 태그가 검색 최적화 기준을 만족하는지 확인하는 게 점점 부담이 됐다. 손으로 하나하나 확인할 수 없는 규모가 되자, 결국 자동화된 SEO 감시 도구를 만들기로 결정했고 이게 meta-check.py다.
읽기 → -
daily-bible 모듈에 TypeScript strict 모드 타입
daily-bible 모듈의 서버 응답 처리 부분에서 TypeScript strict 모드 빌드를 통과하기 위해 res.json() 반환값의 타입을 명시적으로 캐스팅했다.
읽기 → -
SEO 모니터링 사이트 설정을 단일 모듈로 중앙화한 이유
들어가면서, 최근 한 refactor 작업으로 SEO 모니터링 시스템의 설정 관리를 다시 정리했다. _lib/gsc_submit.py와 seo-monitor/daily-report.py에 흩어져 있던 하드코딩된 SITES 목록을 sites.py 헬퍼 모듈로 통합하는 작업이었다. 작은 작업처럼 보이지만, 이 과정에서 팀 코드 관리의 질과 유지보수 비용에 대해
읽기 → -
사이트맵 포스트 URL을 ID 기반 경로로 정규화해 SEO 신호 명확화
사이트맵의 포스트 URL을 기존 /{slug}/ 형식에서 새로운 /p/{id}/ 형식으로 정규화했다. 작은 변경처럼 보이지만, SEO 관점에서는 사이트의 URL 신호를 명확히 하는 중요한 작업이었다.
읽기 → -
디스코드 리뷰 링크를 ID 기반 경로로 교체해 장기 안정성 확보
review_loop 에서 Discord 에 보내는 원문 링크의 URL 형식을 legacy slug 방식에서 새로운 ID 기반 경로(/p/{id}/)로 변경했다. 작은 수정 같지만 이 과정에서 URL 마이그레이션의 관점과 팀 도구의 안정성을 다시 생각하게 됐다.
읽기 → -
대시보드 사이트 모니터링 설정 누락 수정과 재발 방지
대시보드에서 활성 사이트를 추적하기 위해 SITE_EXPECTED_INTERVAL 사전에 누락된 항목을 추가했다. 겉보기엔 작은 수정이지만, 이런 configuration 누락이 가지는 영향과 팀 단계에서 이를 방지하는 방법을 함께 정리해본다.
읽기 → -
포스트 삽입 반복 작업을 헬퍼 스크립트로 자동화한 경험
메타 정보를 포함한 포스트를 데이터베이스에 삽입하는 반복 작업을 자동화하기 위해 헬퍼 스크립트를 만들었다. 단순한 유틸리티 추가처럼 보이지만, 팀이 운영 효율과 개발 속도를 함께 챙기는 과정이 담겨있다.
읽기 → -
CMS 게시 스크립트에 리뷰 추적 메타 자동 삽입 기능 추가
publish.sh에 cms_post 메타 행을 자동 삽입하는 로직을 추가했다. review_loop과 직접 연결되도록 한 것인데, 이게 생각보다 중요한 변화다.
읽기 → -
재고 export에 git 레포 컬럼 추가로 디버깅 추적 강화
재고 내역 export 기능에 git 레포 컬럼을 추가하고 REPO_MAP을 보강했다. 언뜻 통계 시스템에 왜 코드 저장소 정보가 필요할까 싶겠지만, 이 작은 변경에는 팀의 데이터 추적 전략이 담겨 있다.
읽기 → -
재고 현황을 구글시트로 자동 동기화한 경험
구글시트를 팀 전체의 실시간 대시보드로 만들어야 한다는 요청이 들어왔다. 그동안 재고 현황은 관리 시스템 내부 페이지에만 있었는데, PM과 마케팅팀이 별도 분석이나 리포트 작성을 위해 매번 데이터를 받아가야 하는 문제가 있었다. 그래서 서버의 실제 재고 상태를 주기적으로 구글시트로 내보내는 inventory_export.py 스크립트를 만들게 됐다.
읽기 → -
Discord 통계 대시보드의 sites 필드 분할로 1024자 제한 해결
stats-dashboard 스크립트가 통계 정보를 Discord로 전송할 때, 특정 fields가 Discord의 1024자 제한에 걸리는 문제가 있었다. 이번엔 sites 필드를 분할해서 이 이슈를 해결했다.
읽기 → -
통계 대시보드에 신규 서비스 추적을 선제적으로 추가한 이유
통계 대시보드에 새로운 서비스 추적을 추가했다. 단순한 작업처럼 보이지만, 이 안에는 서비스 확장 과정에서 관측성(observability)을 어떻게 유지할 것인지에 대한 작은 결정이 담겨 있다.
읽기 → -
운영 서버 git 백업 자동화와 로또 발행 정책 평일·주말 기준 재조정
내부 운영 서버 관리를 좀 더 체계적으로 다루기 위해 git 백업을 자동화하고, 동시에 lotto 발행 정책의 목표치를 평일/주말 기준으로 재조정하는 작업을 했다.
읽기 → -
복권 추첨 발행목표를 요일별로 동적 분기해 진도 추적 신뢰도 개선
배치 작업으로 운영되는 복권 추첨 시스템의 발행 진도를 추적하는 스크립트에서, 요일에 따라 달라지는 목표값을 반영하도록 로직을 정비했다.
읽기 → -
결제 임베드 오버레이 너비 고정
결제 플랫폼 임베드 시스템에서 오버레이 컴포넌트의 너비를 720px로 고정하고, 시트 아이템들을 클릭 가능한 버튼으로 개선했다.
읽기 → -
통계 대시보드 불필요한 추상화 걷어내 유지보수 부담 줄인 리팩토링
통계 대시보드 리팩토링을 하면서 hourly lap 블록을 제거하고 설명을 간소화했다. 겉으로는 작은 변경이지만, 이런 결정이 코드 유지보수성과 팀의 인지 부하에 미치는 영향을 정리해본다.
읽기 → -
리스너 로깅의 유니코드 인코딩 에러 수정기
listener 모듈에서 부모 fetch 작업 예외를 로깅할 때 발생하는 ASCII 인코딩 에러를 수정했다. 단순한 로깅 버그처럼 보이지만, 이 문제를 통해 Python의 인코딩 처리와 예외 안전성에 대해 다시 생각해 본 부분이 있다.
읽기 → -
통계 대시보드 vhost 매칭·시간 경계·누락 사이트 버그 수정
통계 대시보드 스크립트에 누적된 버그 3가지를 한 번에 수정했다. 얼핏 서로 다른 문제처럼 보이지만, 자세히 들여다보니 모두 데이터 수집과 집계 로직의 경계 영역에서 발생한 전형적인 함정들이었다.
읽기 →