개발 slecs

인증 계정 교체와 세션 정리를 스크립트로 자동화해 운영 부담 해소

목차

계정 교체와 세션 정리 자동화 스크립트를 두 개 추가해서 인증 관련 운영 작업 부담을 크게 줄였다.

배경: 장기 운영 중 누적되는 인증 문제

API 기반 자동화 시스템을 오래 운영하다 보면 피할 수 없는 문제들이 생긴다. 토큰 만료, 세션 스택, 계정 잠금 같은 것들인데, 이게 사소해 보이지만 자동 파이프라인을 중단시키는 주요 원인이 된다. 특히 우리 팀이 여러 계정을 로테이션하면서 운영해야 하는 상황이었는데, 지금까지는 이런 상황이 터질 때마다 누군가 수동으로 개입해야 했다.

5월 말쯤 이 부분을 제대로 자동화하기로 결정했다. 그냥 버티는 게 아니라 예방하고 빠르게 복구하는 체계를 만들자는 취지였다.

추가된 세 가지 스크립트의 역할

스크립트 역할 주요 이유
claude-auth-check.sh 현재 인증 상태 체크 문제 발생 전에 미리 감지
claude-relogin.sh 계정 자동 교체 한 계정에 문제 생기면 즉시 다음 계정으로 전환
claude-session-cleanup.sh 누적된 세션 정리 메모리/연결 누수 방지

claude-relogin.sh는 특히 중요했다. 이전에는 "A 계정 인증 실패 → 수동으로 B 계정으로 로그인" 이런 식으로 처리했는데, 이게 자동화되니까 파이프라인이 자체적으로 복구할 수 있게 됐다. 장애 감지 → 스크립트 실행 → 계정 전환 → 재시도, 이 흐름이 분 단위로 처리된다.

claude-session-cleanup.sh는 더 subtlety가 있다. 오래 실행 중인 시스템은 idle 세션이 쌓인다. 각 세션이 메모리를 점유하고 있고, 최악의 경우 connection pool이 가득 차서 새 요청이 들어올 수 없는 상황까지 간다. 이걸 정기적으로 정리해주면 시스템이 훨씬 안정적으로 돈다.

운영 관점에서 얻은 학습

이런 자동화 스크립트를 만들 때는 단순히 "기술적으로 구현 가능한가"를 넘어서서 운영팀이 실제로 필요로 하는 것이 무엇인가를 먼저 파악해야 한다.

우리 경우에는:
- 누가 언제 어떻게 실패했는지 추적할 수 있는 로깅
- 스크립트 실행 후 상태가 정말 복구됐는지 확인하는 검증 로직
- 너무 자주 relogin이 되거나 cleanup이 반복되면 수동 점검 필요하다는 알림 메커니즘

이 정도를 갖춰야 "자동화"라고 이름 붙일 가치가 있다. 그냥 실행만 되고 결과를 모르는 건 자동화가 아니라 블랙박스 문제 회피일 뿐이다.

코드리뷰할 때도 팀원들한테 "이 스크립트가 실패하면 어떻게 인지할 거냐", "계정 교체 실패했을 때 폴백은 뭐냐"를 꼭 물었다. 운영 자동화 특성상, 예외 상황을 얼마나 잘 정의하고 대응하느냐가 신뢰도를 결정한다.

다음 단계

지금은 쉘 스크립트 레벨이지만, 앞으로 이걸 모니터링 대시보드에 연결하거나 더 복잡한 조건 분기를 추가할 수 있을 것 같다. 예를 들어 "세션 개수가 임계값을 넘으면 자동 cleanup 트리거" 같은 식으로. 다만 당장은 수동으로 필요할 때 실행하는 수준으로도 충분히 가치가 있다. 야간 배치나 정기 점검 스케줄에 넣어서 예방적으로 돌릴 수 있으니까.


🛒 이 글과 어울리는 추천 상품

*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.

댓글 0

첫 댓글 달아줘.