중요한 새 릴리스를 테스트할 때 가끔은 프로덕션 환경에서 발생한 새로운 오류로 인해 놀랄 때가 있습니다. 이유가 무엇인가요? 무엇이 잘못되었을까요? 테스트 환경이 항상 기대하는 만큼 프로덕션 환경과 가까운 것은 아닙니다. 인프라 변경 사항이 문서화되지 않은 상태에서 환경에 적용되면 환경이 천천히 달라집니다.

결함을 해결하는 데는 아주 많은 시간이 걸립니다. 소프트웨어 개발자가 할 수 있는 가장 좋은 투자 중 하나는 문제를 빠르게 해결하는 방법을 배우는 것입니다.

근본 원인 분석이란 무엇입니까?

근본 원인 분석(RCA)은 문제 해결에 사용할 수 있는 특정 기술입니다. 이 기술을 사용할 때는 특정 단계를 사용하여 현재의 문제를 분석하고 문제의 주요 원인을 식별합니다. RCA의 기본적인 원칙은 문제의 근원을 무시하면서 증상을 완화하는 작업은 소용이 없다는 것입니다.

근본 원인 분석의 이점은 무엇입니까?

근본 원인 분석(RCA)은 문제 해결에 사용할 수 있는 특정 기술입니다. 이 기술을 사용할 때는 특정 단계를 사용하여 현재의 문제를 분석하고 문제의 주요 원인을 식별합니다. RCA의 기본적인 원칙은 문제의 근원을 무시하면서 증상을 완화하는 작업은 소용이 없다는 것입니다.

근본 원인 분석을 시작하려면 어떻게 해야 하나요?

문제 설명

고무 오리 접근 방식(고무 오리 디버깅)을 사용하여 문제를 단순하게 설명합니다. 무언가를 설명함으로써 생각을 정리하게 됩니다. 유명한 Q&A 사이트인 Stack Overflow의 공동 창립자 Jeff Atwood는 소프트웨어 개발자가 사이트에 새 질문을 올리는 과정에서 직접 답을 찾아 결국 실제로는 질문을 한 번도 올리지 않는 사례가 많다고 말합니다.

다음 접근 방식을 사용하여 문제를 단순하게 설명해보세요.

  1. 스택 오버플로 질문을 작성합니다. 제출하지 않아도 됩니다.
  2. 상세한 버그 보고서를 제출합니다.
  3. 동료에게 이를 설명합니다.

로그 데이터 수집(그리고 효율적으로 조사)

다음으로 문제에 대한 더 많은 데이터를 수집하고 거기에서 인사이트를 추출합니다. 여기서 충돌 로그, 애플리케이션 및 서버 로그 등 로깅 및 모니터링이 도움이 됩니다. 문제가 발생했다는 증거를 수집해야 합니다. 또한 가능하면 발생한 기간과 빈도를 찾아야 합니다.

이 모든 데이터 안에서 특정 데이터 포인트를 빠르게 찾아야 합니다. 도구를 사용하면 수집한 로그 데이터를 검색하고 분석한 후 인사이트로 바꿔 문제를 보다 빠르게 진단하고 해결하는 데 도움이 될 수 있습니다.

5개의 ‘왜’ 기법 사용

다음으로 인과적 요소, 즉 문제의 직접적인 원인을 식별합니다. 인과적 요인 1개를 식별한 후 멈추면 안 됩니다. 5개 왜 기법으로 계속 파고 들어가야 합니다. 문제의 근원에 도달할 때까지 ‘왜’를 반복적으로 묻습니다. 예를 들어 웹 사이트에 오류 500이 표시되어 있습니다.

  1. 이유가 무엇인가요? 웹 프레임워크의 라우팅 구성 요소에 작동 오류가 있습니다.
  2. 이유가 무엇인가요? 다른 구성 요소가 필요한데 그 자체에 작동 오류가 있습니다.
  3. 이유가 무엇인가요? 웹 프레임워크의 이 구성 요소에는 intl 확장자가 필요한데 이 확장자가 작동하지 않습니다.
  4. 이유가 무엇인가요? 서버 소프트웨어를 업데이트한 후 실수로 비활성화되었습니다.

물론 더 적은 단계로 근본 문제에 도달할 수 있습니다. 아니면 더 많은 단계가 필요할 수도 있습니다.

두 번째 눈

코드 검토와 마찬가지로 편견이 없는 사람을 데려와서 코드를 살피게 합니다. 시간이 흐르면 검토에 대한 기대치가 프로세스를 정비하는 데 도움이 됩니다. 문제 해결을 쌍으로 수행하면 더 좋습니다.

AWS는 근본 원인 분석을 위해 무엇을 제공하나요?

근본 원인 분석을 위한 기본적인 AWS 제품 및 서비스는 로그 데이터의 수집 및 분석을 돕기 위한 것입니다. AWS는 이 작업에 Amazon OpenSearch Service를 권장합니다.

Amazon OpenSearch Service 요금에 대해 자세히 알아보기

요금 페이지로 이동하기
구축할 준비가 되셨습니까?
Amazon OpenSearch Service 시작하기
추가 질문이 있으십니까?
문의하기