본문 바로가기
CS/Common

트러블 슈팅(Trouble shooting)

by 테리는당근을좋아해 2020. 5. 24.

트러블 슈팅이란 문제가 발생했을 때 원인을 규명하고 해결하는 작업을 의미한다.

 

트러블 슈팅은 문제 정의, 사실 수집, 원인 추론, 조치 방안 작성과 구현 단계로 나뉘어 진다.

 

전공 프로젝트에서 발생했던 문제를 바탕으로 예를 들어보자

 

 

1. 문제 정의

시스템에서 발생하는 현상을 파악하고 문제를 명확히 표현, 규정하는 단계

 

이미지 자동 측정 모듈을 웹 애플리케이션과 합쳤을 때, 모듈에서 사용한 텐서플로우의 메소드를 인식하지 못하는 문제가 발생했다

 

 

2. 사실 수집

정의된 문제에 대해 대략의 점검 항목과 내용을 결정하고, 자료 수집하는 단계

 

메소드를 하나 하나 고칠 때마다 다음 메소드를 인식하지 못하고 결국에는 텐서플로우 메소드 전체를 인식하지 못한다

 

 

3. 원인 추론

수집된 자료를 바탕으로 문제의 원인을 추론하는 단계

 

모듈을 만든 python의 버전은 3.8, 텐서플로우의 버전은 2.x

웹 애플리케이션에 사용된 python의 버전은 3.7, 장고의 버전은 2.1.x

텐서 플로우와 장고의 Python 버전이 맞지 않는 것이 원인인게 아닐까?

 

 

4. 조치 방안 작성과 구현 단계

추론한 원인에 따른 조치 방안을 마련하고 구현 단계를 거쳐 문제를 해결

 

a. 장고의 python 3.7을 3.8로 업그레이드한다(X)

모듈보다 웹 애플리케이션의 크기가 더 큰데 장고를 업그레이드하고 수정하는게 맞는 것일까

또, 업그레이드 시에 다른 문제들이 연쇄적으로 발생할 수 있다

 

b. 모듈의 python 3.8을 3.7로 다운그레이드한다(X)

파이썬의 버전 자체가 안 맞는 것이 문제라면

모듈에 사용된 다른 패키지나 라이브러리의 메소드도 문제를 일으켜야 되는데 그렇지 않다

 

c. 모듈의 tensorflow버전은 2.x에서 1.x로 다운그레이드한다(O)

 

 

프로젝트는 텐서플로우 다운그레이드를 통해 문제를 해결할 수 있었다

댓글