시스템에서 발생하는 복잡한 문제들을 종합적으로 진단해 해결하는 것, 한 마디로 그냥 문제 해결이라고 생각하면 된다. 다만 여러 단계를 통해 문제가 발생하게 된 원인을 정확하게 규명하고 진단한다는 점에서 시스템의 개선과 보완에 있어 매우 중요하다고 할 수 있다.
문제의 원인은 여러 가지가 있을 수 있고, 볼륨이 큰 시스템에서 발생하는 것일수록 그 가짓수가 늘어난다. 트러블슈팅은 이러한 문제의 원인이 될 수 있는 것들을 가능성이 높은 순으로 하나씩 제거하는 방법이다. 때문에 마구잡이로 원인을 대입해 실험해보는 것보다 더 체계적으로 문제를 해결할 수 있고, 같은 문제가 재발할 가능성을 낮출 수 있다. 또한 이러한 과정이 쌓이면 개발 메뉴얼을 개선할 수 있다. 대략적인 진행 순서는 다음과 같다.
- 문제 정의
- 문제가 되는 동작 확인
- 사실 수집
- 해당 문제에 대한 정보 수집
- 문제를 재현하는 방법도 수집
- 원인 추론
- 확인된 사실을 통해 원인 추론
- 조사방법 결정
- 증상과 추론 원인을 기반으로 어떤 순서로 문제를 해결할지 결정.
- 보통 가능성이 높은 원인을 우선적으로 조사
- 조사 방법 구현
- 앞서 결정한 내용을 토대로 문제를 조사
- 결과 관찰
- 조사 방법을 구현하고 그 결과를 기록.
- 만약 문제가 해결되지 않았다면 4번으로 돌아감.
- 문서 작성
- 문제를 해결한 순서를 정리해 문서화함
'What is □?' 카테고리의 다른 글
13_데이터 레이크(Data Lake)란 무엇인가? (0) | 2021.05.12 |
---|---|
12_A/B 테스트란 무엇인가? (0) | 2021.05.12 |
10_리팩토링(Refactoring)이란 무엇인가? (0) | 2021.04.20 |
09_트래픽(Traffic)이란 무엇인가? (0) | 2021.04.20 |
08. 모바일 웹이란 무엇인가? (0) | 2021.04.15 |