자동화 사이트 정보를 단일 출처로 통합해 일관성 확보
목차
자동화 시스템이 커질수록 설정 관리가 복잡해진다. 이번엔 hedvion 자동화의 사이트 정보를 한 곳으로 모아, 일관성을 높이는 구조로 개선했다.
SSOT가 없으면 무슨 일이 생기나
자동화가 여러 사이트나 플랫폼을 대상으로 할 때, 그 정보가 대부분 여기저기 흩어진다. 스크립트 A에선 하드코딩, 스크립트 B에선 설정 파일, 스크립트 C에선 환경변수... 이렇게 되면:
- 새 사이트를 추가할 때마다 모든 스크립트를 찾아다니며 수정
- 사이트 정보가 변경되면(URL, 인증 방식 등) 동기화 실패 가능
- "이 정보가 정말 최신인가?" 하는 불안감이 생김
- 나중에 온 팀원이 어디가 source of truth인지 알 수 없음
그래서 Single Source of Truth(SSOT) 원칙이 필요하다.
어떻게 개선했나
sites.py 라는 헬퍼 모듈을 만들어서, 모든 자동화가 참조할 수 있는 중앙 저장소를 마련했다. 여기엔:
- 사이트 정보의 정의 (메타데이터, 주소, 인증 방식 등)
- 조회 함수들 (특정 사이트 찾기, 필터링 등)
- 유효성 검사 로직
그리고 dump_sites_yaml 크론 잡을 추가했다. 정기적으로:
- sites.py 의 정보를 읽어서
- YAML 형식으로 덤프
- 다른 시스템이나 모니터링에서 참조할 수 있게
sites.py (중앙)
↓
dump_sites_yaml 크론
↓
sites.yaml (사람이 읽을 수 있는 형식, git 추적 가능)
↓
다른 자동화 스크립트들은 sites.py import 해서 데이터 사용
| 역할 | 담당 |
|---|---|
| sites.py | "무엇" — 사이트 정보의 정의, 검색, 검증 |
| dump_sites_yaml | "언제" — 크론으로 정기 실행, YAML 생성 |
| 다른 자동화 | sites.py import 해서 데이터 사용 |
이런 패턴의 장점
변경이 한 곳에서 끝난다. 새 사이트를 추가하거나 정보를 수정할 땐 sites.py만 건드리면 된다. 모든 자동화가 자동으로 최신 정보를 쓴다.
일관성 검증이 쉬워진다. YAML을 생성할 때 스키마 체크, 필수 필드 검증 등을 sites.py 에서 한 번에 처리하면, 덤프된 YAML은 항상 유효한 형태가 된다.
다른 시스템과의 연계 가능. YAML 파일이 있으면, 우리 자동화 코드 없이도 다른 팀이나 도구에서 참조할 수 있다. 대시보드 표시, 설명서 생성 등도 훨씬 간단해진다.
회고
처음엔 "그냥 필요할 때마다 수정하면 되지 않나?" 싶을 수도 있다. 특히 자동화 스크립트 몇 개뿐이면 더 그렇다. 하지만 경험상:
- 시간이 지나면 자동화는 자연스럽게 늘어난다. 그땐 이미 너무 늦다.
- 팀이 커지면 "누가 이 값을 언제 어디서 수정했는지" 추적이 어려워진다. 누군가는 결국 "왜 여기 값이 저기와 다르지?" 라고 디버깅하게 된다.
- 크론 잡으로 정기적으로 YAML을 생성하는 것도 중요하다. 단순히 코드로만 있으면 버전 관리와 히스토리 추적이 어렵다. YAML은 git에 커밋되면 언제 무엇이 바뀌었는지 한눈에 보인다.
- YAML은 자동화 코드 없이도 읽을 수 있으니, 비개발자도 내용을 검증하거나 모니터링할 수 있다는 게 생각보다 유용하다.
🛒 이 글과 어울리는 추천 상품
*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.
댓글 0
첫 댓글 달아줘.