뱅
뱅크샐러드
March 13, 20201회
매출 손실을 줄여주는 외부링크 관제 Bot, 'URL Checker' 개발기

간단 소개
뱅크샐러드의 외부 링크 관제 봇 'URL Checker' 개발을 통해 제휴사 페이지 장애로 인한 매출 손실을 줄이고 사용자 경험을 개선한 과정을 담고 있습니다.
AI Summary
- URL Checker 개발 배경
- 뱅크샐러드는 제휴사 상품 상세 페이지 URL을 관리, Webview로 제공.
- 제휴사 페이지 장애 시 뱅크샐러드 서비스 장애로 인식되는 문제 발생.
- 매출 손실을 막고 사용자 경험을 보호하기 위해 URL Checker 프로젝트 시작.
- 문제 해결 과정 및 결과
- Puppeteer를 이용해 제휴사 페이지 접근, 초기 HTML 소스 코드 스냅샷과 비교했으나 잦은 오탐 발생.
- 이미지 비교 방식으로 변경, Resemble.js를 이용해 변경률 50% 이상 시 장애로 판단.
- GitHub Actions에서 CronJob으로 주기적 모니터링, Slack으로 장애 알림.
- 잦은 오류 발생으로 운영 환경을 EC2로 변경 후 Kubernetes CronJob으로 재변경, 안정성 확보.
- 향후 계획 및 효과
- Playwright를 도입하여 iOS 환경까지 지원 확대 예정.
- 운영팀의 제휴 상품 페이지 동작 여부 확인 시간 단축 및 장애 인지 시간 단축 효과.
Next Feeds

새로 입사한 개발자가 프로젝트에 기여하는 방법 한 가지
신규 개발자가 코딩 스타일 가이드 준수 및 코드 품질 개선을 통해 프로젝트에 기여하고 팀 성장에 기여하는 방법을 제시합니다.
코딩 스타일CheckStylePull Request코드 컨벤션팀 성장
2020. 3. 9.
컬리

DevOps 엔지니어의 Redis Test 분투기 - Part 1
Redis 도입 후 발생한 장애 원인 분석 및 성능 테스트를 통해 Redis 사용 시 고려사항과 개선 방향을 제시합니다.
Redis테스트성능사이징캐싱
2020. 3. 4.
컬리

Database Driven Development에서 진짜 DDD로의 선회 -1-
Database Driven Development에서 DDD로 전환하며 겪은 오해와 깨달음, 그리고 실천 과정에서의 경험을 공유합니다.
DDD도메인 주도 설계이벤트 스토밍몹 프로그래밍클린 코드
2020. 3. 1.
컬리

하루에 1000번 배포하는 조직 되기
뱅크샐러드는 배포 프로세스 개선을 통해 배포 횟수를 4배 증가시키고, 개발자들이 배포를 두려워하지 않는 문화를 구축했습니다.
배포CI/CDGitHub ActionsMSAChatOps
2020. 2. 29.
뱅크샐러드

프로덕션 환경에서 사용하는 golang과 gRPC
뱅크샐러드의 gRPC 도입 및 활용 경험 공유: protobuf 기반 API 관리, 기존 서비스 호환성 확보, 옵저버빌리티 구축 노하우.
gRPCGolangProtobuf마이크로서비스Observability
2020. 2. 27.
뱅크샐러드

잘못 작성된 람다 코드를 삭제하기까지의 여정
가독성이 떨어지는 람다 코드를 리팩토링하여 가독성을 높이고 유지보수성을 개선한 경험 공유.
람다식리팩토링가독성Optional레거시 코드
2020. 2. 26.
컬리