인증 분리로 안전한 사이트맵 자동 제출 기능
목차
Google Search Console의 sitemap 자동 제출 기능을 새로운 도메인용으로 확장했다. 기존 시스템과 별도의 토큰으로 인증을 분리해서 구현한 작업인데, 이게 생각보다 중요한 아키텍처 결정이었다.
왜 사이트맵 자동 제출이 필요했나
검색 엔진 최적화 관점에서 보면, 새로운 컨텐츠나 사이트 구조 변경을 주기적으로 Google에 알려주는 게 중요하다. 수동으로 GSC 대시보드에 들어가서 버튼을 누르는 건 비효율적이고, 운영자 개입이 필요한 구간이 생긴다. 이런 반복 작업은 자동화의 첫 번째 후보다.
- 검색엔진이 신규/변경 페이지를 더 빠르게 발견
- 크롤 예산을 효율적으로 사용
- 수동 개입 줄이기 → 휴먼 에러 감소
- 정기적 자동화로 일관된 SEO 전략 유지
토큰 분리 설계의 배경
여기서 주목할 점은 dev.slecs token과 기존 시스템의 토큰을 따로 관리한다는 부분이다. 처음엔 "토큰 하나로 통합하면 간단하지 않을까?"라고 생각할 수 있지만, 실무에선 여러 이유로 분리하는 게 맞다.
| 항목 | 통합 토큰 | 분리된 토큰 |
|---|---|---|
| 권한 관리 | 모든 도메인에 동일 권한 | 도메인별 최소 권한 |
| 보안 노출 | 한 토큰 탈취 시 전체 영향 | 특정 도메인만 영향 |
| 운영 유연성 | 낮음 (변경 시 전체 검토) | 높음 (도메인별 독립 관리) |
| 로깅/감시 | 모든 접근이 섞임 | 도메인별 접근 추적 가능 |
토큰을 분리하면 만약 특정 도메인의 토큰이 노출되더라도 다른 서비스는 영향받지 않는다. 또한 새로운 팀원이 온보딩될 때 필요한 권한만 부여할 수 있어서 보안 관점에서 훨씬 낫다.
구현 접근
_lib/coway_gsc_submit.py 파일을 만들어서 GSC submit 로직을 라이브러리로 정리했다. 단순히 한 번쓰는 스크립트가 아니라, 여러 도메인에서 재사용할 수 있는 구조로 설계하는 게 포인트다.
# 개념적 구조 (실제 구현 제외)
class GSCSubmitter:
def __init__(self, domain, token):
self.domain = domain
self.token = token # 도메인별 독립 토큰
def submit_sitemap(self, sitemap_url):
# GSC API 호출
# 에러 핸들링
# 로깅
pass
라이브러리화의 이점:
- 다른 도메인 추가 시 기존 코드 재사용
- 토큰, 에러 처리, 재시도 로직이 한곳에 집중
- 테스트 작성이 단순화됨
- 새로운 팀원이 GSC 연동할 때 참고할 수 있는 레퍼런스
팀 리딩 관점에서의 고민
이런 작업을 할 때 나는 항상 다음을 생각한다:
1. API 설계는 사용자(다른 개발자)를 기준으로
나중에 누군가 이 코드를 쓸 텐데, 복잡한 설정은 피하고 의도가 명확한 인터페이스를 만들어야 한다. GSC API는 변하기 쉬운 외부 의존성이니 그 변화를 라이브러리 내부에 캡슐화하는 게 중요하다.
2. 운영 자동화도 코드리뷰 대상
자동화 스크립트도 프로덕션 코드만큼 신경 써야 한다. 토큰 관리, 에러 처리, 로깅이 제대로 되지 않으면 장애가 발생할 때 원인 파악이 어려워진다.
3. 인증 분리는 "나중에"가 아니라 "지금"
처음부터 다중 도메인을 염두에 두고 설계하면 나중에 도메인을 추가할 때 매끄럽다. 반대로 "일단 하나로 만들고 나중에 분리하자"고 미루면, 코드 리팩토링으로 끝나지 않고 운영 중인 토큰 마이그레이션까지 고려해야 해서 복잡해진다.
배운 점
이 작업을 통해 느낀 건, 작은 자동화 기능도 "누가 어떻게 쓸 것인가"를 먼저 설계하고 보안·운영성을 함께 고려해야 한다는 것. GSC 자동 제출 같은 건 겉으로는 "그냥 API 호출 몇 줄"처럼 보이지만, 실제로는 토큰 관리, 도메인별 격리, 에러 처리, 모니터링까지 담겨 있다. 이런 세부사항들이 누적되면서 신뢰할 수 있는 자동화 시스템이 만들어진다.
🛒 이 글과 어울리는 추천 상품
*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.
댓글 0
첫 댓글 달아줘.