배탈이 났다.몸살로 이어졌다. 결국 병원가서 링거를 맞고 주말 내내 누워 있는 과정을 통해 몸상태를 복구하였다.

이 모든 과정을 컴퓨터로 옮겨서 보자면, "트러블 슈팅"

트러블슈팅이 개발과정에서 중요한 이유는

  • 프로젝트 진행중 필수적으로 나타나는 오류와 버그에 대해 전반적인 과정을 문서화를 통해 예방.
  • 문제해결 과정을 기록,상기 -> 추후 같은 문제 발생 시 신속 대처
  • 트러블슈팅 절차를 통해 계속되는 추가 질문을 답변하고 해결책 목록을 좁혀나가는 단계를 밟아나가거나 문제 해결에 도움이 될 해결책을 즉시 구현.

⛔트러블 슈팅의 기본적인 개념

가장 단순하고 빈도 높은 원인에서 가능성을 지워가는 것

이게 핵심이다.트러블 슈팅은 제거법의 개념을 기본으로 하고있다.pc가 멈췄어요 와 같은 트러블에 대해서는 전원의 on/off 여부, 전원플러그는 콘센트에 꽂혀있는가 와 같은 인과관계에서 하나씩 가능성을 제거해나간다.

⛔트러블 슈팅 방법

1. 문제 정의

  • 문제가 되는 동작 혹은 원인 확인ex) 배탈나버림

2. 사실 수집

  • 해당 문제에 대한 정보 수집
  • 문제를 재현하는 방법 수집ex) 배탈나게 한 음식에 대한 정보 수집

3. 원인추론

  • 확인된 사실을 통해 원인 추론ex) 아 고기때문에 배탈난거같다 많이먹었거든

4. 조사방법 결정

  • 증상과 추론 원인을 기반으로 어떤 순서로 문제를 해결할지 결정
  • 보통 가능성이 높은 원인을 우선적으로 조사ex) 고기를 얼마나 먹었는지 엄마한테 물어보기로 결정

5. 조사 방법 구현

  • 앞서 결정한 내용을 토대로 문제를 조사ex) 엄마 나 얼마나 먹었어? 한 5인분?

6. 결과 관찰

  • 조사 방법을 구현하고 그 결과를 기록
  • 만약 문제가 해결되지 않았다면 4번으로 돌아감ex) 아 5인분먹으면 배탈나는구나 이제 5인분말고 4인분까지 먹어야겟다

7. 문서 작성

  • 문제를 해결한 순서를 정리해 문서화함ex) 머리에 새겨넣는다

⛔적절한 트러블 슈팅을 실현하기 위해서

예시를 쉽게 들어서 잘 대처할 수 있다고 생각이 들 수도 있지만 실제 운용 측면에서 트러블 슈팅에는 몇 가지 과제가 있어 생각처럼 운용이 되지 않는 경우도 있다.

우선순위에 따라 어떤 대응을 해야하나

  • 개발운영팀에서 우선순위가 매우낮은 트러블이라도 문제가 발생하면 바로 대처해야된다. 우선순위가 매우 낮더라도 무시하지말고 우선도가 낮은 트러블에 대해 대처방안을 수립해야된다.대처 프로세스 체계화
  • 이슈가 생겼을때 해당 이슈를 한명만 처리할 수밖에 없다면 그 한명은 업무쏠림으로 다른 업무에 무리가 갈 수가 있다. 또는 인원부족으로 신입이나 경력이 짧은 직원이 대처해야된다면 이를 어찌 해결해야될까?
  • 이러한 상황을 피하기 위해 트러블 대응 업무를 체계화하고 매뉴얼로 문서화를 하여 표준화 하는 것이 중요하다. 그렇게 하면 누구라도 동일한 대응이 가능하여 원활하게 해결, 복구가 가능하다
  • ⛔정리
  • 개인적으로 개발이라는 분야는 트러블 슈팅을 통해 실력이 급상승할 수 있다는 생각을 가지고 있다. 처음 시작할때와 프로젝트를 시작하면서 겪었던 모든 오류와 과정을 몸소 겪으며 얻은 경험과 소스와 문서를 추후 다른 프로젝트를 진행하면서 생기는 오류에 대입해볼 수도 아니면 같은 오류일때 바로바로 대처가 가능하기 때문이다.
  • 파이썬 머신러닝 프로젝트를 진행하면서 환경세팅에만 2주가 걸렸다. 난생 처음해보는 분야이기에 분명 구글에 검색한대로 따라하고 환경변수 설정하고 install하라는 모든 행동을 다했지만 안되어서 멘탈이 박살나기 직전까지 하다가 결국 해결했는데 이는 절대 잊어버릴 수가 없다.
  • 면접에서 트러블슈팅 사례를 말해달라고 하면 당황하지말고 평소 개인 토이프로젝트나 프로젝트에 대한 트러블 슈팅에 대해 잘 숙지하고 정리를 해서 점수를 얻도록 하자.

'Developer 지식' 카테고리의 다른 글

Domain  (0) 2023.04.02
Sample code in object and Instance.  (0) 2023.04.02
객체(Object)  (0) 2023.04.02
JAVA TDD  (0) 2023.04.02
API가 뭘까? (Application Programing interface)  (0) 2022.08.01

+ Recent posts