QA가 서버를 죽여보니, 고객 경험이 보였다!

by DD
2개월 전
조회수 56

QA 주도의 Host Level 카오스 엔지니어링 테스트를 통해 인프라 장애 시나리오(Infrastructure Failure Scenarios)를 시뮬레이션

DB, 메시지 큐, 캐시 서버(Cache Server) 등 핵심 인프라를 대상으로 장애 발생 및 복구(Failure and Recovery)를 반복 검증

고객 경험(Customer Experience) 중심의 테스트를 통해 시스템 로그에서는 발견되지 않는 문제점(Hidden Issues)을 발굴

자동 복구 메커니즘(Automatic Recovery Mechanism) 강화, 데이터 정합성 보장 프로세스 구축 등 5가지 개선 사항(5 Key Improvements) 도출

올리브영 상품 상세 시스템 MSA 전환 프로젝트에 적용하여 서킷브레이커(Circuit Breaker) 누락 문제를 발견하고 개선

Host Level 테스트의 핵심: 인프라 장애 시뮬레이션

본문은 Application Level 테스트에 이어, Host Level 테스트가 시스템을 구성하는 인프라 자체(Infrastructure Itself)에 장애를 일으키는 실험임을 강조한다. DB, 메시지 큐, 캐시 서버 등 핵심 인프라를 대상으로 장애를 유발하고, 시스템의 복원력(Resilience)을 검증한다. 특히, 개발자가 아무리 견고한 코드를 작성해도, 실행 환경이 무너지면 서비스가 멈추는 상황을 가정한다. QA는 이러한 상황을 의도적으로 만들어 고객 경험(Customer Experience)에 미치는 영향을 파악한다. 이는 기존 Shift-Left 방식에서 벗어나 실제 프로덕션 환경의 복원력을 검증하는 Shift-Right 테스트(Shift-Right Testing)의 일환이다.

QA의 역할: 고객 관점의 장애 검증

글에 따르면, 카오스 엔지니어링(Chaos Engineering)은 이제 빅테크 기업만의 전유물이 아니다. QA는 SRE나 개발팀이 전담하던 장애 복원력 검증 영역에 직접 참여하여, AWS FIS, Gremlin과 같은 도구를 활용해 장애 시나리오를 설계하고 실행한다. 인프라 팀, 개발 팀, QA 팀의 협력을 통해, QA는 고객의 눈으로 장애를 바라보고, 시스템 관점에서는 복구가 완료되었더라도 고객 관점에서는 데이터가 꼬인 상태일 수 있는 문제를 찾아낸다. 이는 고객 중심(Customer-Centric)의 테스트 접근 방식을 보여준다. QA는 고객 시나리오 기반 기능 검증(Scenario-Based Testing)을 통해, 장애 발생 시 고객이 실제로 마주하는 화면과 관리자가 겪는 상황을 검증한다.

Host Level 테스트에서 발견된 문제점: 예상 밖의 버그

본문은 Host Level 테스트를 통해 예상치 못한 문제점들을 발견한 사례를 제시한다. 예를 들어, DB 장애 시 증정품이 빠진 채 결제가 완료되거나, 메시지 큐 장애로 인해 결제 실패 후 중복 결제가 발생하는 등, 시스템 로그에서는 발견하기 어려운 문제들을 찾아냈다. 또한, 캐시 서버 장애로 인해 검색 불가능, 카테고리 페이지 오류, 메인 화면 성능 저하 등의 문제가 발생했다. 이러한 문제들은 고객 경험(Customer Experience)에 직접적인 영향을 미치며, 시스템의 안정성을 저해하는 요인으로 작용한다. 특히, 데이터 정합성(Data Consistency) 문제와 관련된 버그는, 복구 후 데이터 유실이나 오류로 이어질 수 있어 더욱 주의가 필요하다.

Host Level 테스트 후 개선된 점: 5가지 핵심 개선

글에 따르면, Host Level 테스트를 통해 발견된 문제들을 개선하기 위해 5가지 방향으로 노력을 기울였다. 첫째, 장애 감지 및 알림 체계(Alerting System)를 구축하여 장애 발생 시 담당팀이 즉시 인지하고 대응할 수 있도록 했다. 둘째, 자동 복구 메커니즘(Automatic Recovery Mechanism)을 강화하여 서킷브레이커(Circuit Breaker)를 전면 점검하고, 장애 시 백업 경로로 자동 전환되도록 개선했다. 셋째, 데이터 정합성 보장 프로세스(Data Consistency Guarantee)를 구축하여 복구 후 데이터 유실을 방지하고, 메시지 재처리 자동화를 진행했다. 넷째, 시간 기준, 복구 기준, 우선순위 기준을 수립하여 서비스를 안정적으로 운영하기 위한 기준을 마련했다. 마지막으로, 정기 테스트 프로세스를 정착시켜 Host Level 카오스 엔지니어링 테스트를 정기적으로 수행하고 있다.

올리브영 상품 상세 시스템 MSA 전환 프로젝트: Failover 검증

본문은 Host Level 테스트 프로세스를 실제 올리브영 상품 상세 시스템 MSA 전환 프로젝트에 적용한 사례를 소개한다. 주요 목표는 DB 장애 시 백업 DB로 자동 전환되는 서킷브레이커(Circuit Breaker)의 정상 동작을 검증하는 것이었다. 테스트 결과, 상품 정보 영역에서는 서킷브레이커가 정상 동작했지만, 최대 혜택가 영역에서는 서킷브레이커가 구성되지 않아, 상품 상세 페이지가 통째로 표시되지 않는 문제가 발생했다. QA는 실제 화면을 보면서 문제를 추적했고, 개발팀과 함께 최대 혜택가 영역에 서킷브레이커가 누락되어 있다는 것을 발견했다. 이처럼 MSA 구조에서는 개별 서비스의 장애가 전체 시스템에 미치는 영향을 예측하기 어려우므로, Host Level 테스트를 통해 잠재적 문제(Potential Issues)를 사전에 발견하고 개선하는 것이 중요하다.

QA가 서버를 죽여본 이유 – Host Level 카오스 엔지니어링 테스트