AI Briefing

뱅크샐러드, 이미지 비교 기반 외부 링크 관제 Bot 'URL Checker' 개발

·2020.03.13 09:00

핵심 내용

뱅크샐러드가 이미지 비교와 Kubernetes CronJob을 활용해 제휴사 페이지 장애를 자동 감지하는 URL Checker를 개발했다.

자세히 보기

뱅크샐러드 Engineering Foundation Front End Team은 제휴사 페이지 장애로 인한 매출 손실과 사용자 경험 저하를 방지하기 위해 외부 링크 관제 Bot **'URL Checker'**를 개발했다. 기존에는 팀원이 수동으로 제휴사 페이지를 확인해야 했으나, 이를 자동화하여 반복 업무를 줄이고 장애 인지 시간을 단축했다.

이미지 비교 기반 장애 판단 로직

초기에는 HTML 소스 코드 비교를 시도했으나, timestamp 변경이나 DOM 구조 변화로 인한 오탐지가 발생했다. 이에 따라 Puppeteer를 사용해 페이지 스크린샷을 캡처하고, 정상 상태 이미지와 현재 이미지를 비교하는 방식으로 변경했다. 이미지 비교에는 Resemble.js를 사용하며, 차이 수치가 50% 이상일 때 장애로 판단한다. 이 임계치는 Carousel 등 동적 요소가 있는 페이지에서의 오탐지를 줄이기 위해 보수적으로 설정되었다.

운영 환경 최적화와 안정성 확보

초기 운영 환경이었던 GitHub Actions 기본 서버에서는 연결 에러(ERR_CONNECTION_CLOSED 등)가 약 33% 발생했다. 이를 해결하기 위해 EC2 Runner로 변경하여 에러율을 3% 수준으로 낮췄으나, 간헐적 오류가 지속되었다. 원인 분석 결과 서버 자원 부족이 확인되어, 운영 환경을 Kubernetes CronJob으로 전환했다. 메모리 할당을 넉넉하게 설정(8Gi~16Gi)한 결과, 7일간 모니터링에서 자체 에러 0건을 기록하며 안정적으로 운영되고 있다.

성과 및 향후 계획

URL Checker 도입으로 운영팀의 제휴 상품 페이지 확인 시간은 기존 2~3시간에서 1시간 이내로 단축되었다. 또한 장애 인지 시간은 기존 2~4일에서 1일 이내로 줄었다. 향후에는 iOS 사용자 환경 확인을 위해 Playwright 도입을 검토하여 Chromium과 Webkit 두 환경을 모두 지원할 계획이다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.