본문 바로가기

소프트웨어

내가 겪은 가장 황당한 버그는 이것

프로그램을 이것 저것 깔아서 테스트해보고, 지우고 하는 것을 좋아한다.   이 프로그램 저 프로그램을 사용하다보면 여러가지 버그를 만나게 된다. 

가끔씩 누르면 엉뚱한 메시지가 나오는 버그는 나름 귀여운데가 있어 참아줄만한데 참아주기 힘든 버그들도 없지 않아 있다.

그 중에 첫번째가 프로그램이 비정상 종료되는 것.  문서를 몇시간 동안 작성해 두었는데 프로그램이 죽으면서 내용이 모두 날라가 버리는 경우다.  이런 경우가 발생하지 않아야하지만 이런 문제를 하나도 생기지 않는 프로그램은 거의 보지 못했다.  특히나 문서를 직접 만들어서 몇시간 동안 작업하였을 때 프로그램이 죽어 버리는 것처럼 화나는 것은 없다.  그나마 조금이나마 신경 쓴 프로그램이라면 자동 저장 파일이 있어 비정상 종료된 후 프로그램을 실행하면 복구되어 그나마 복구가 가능하다. 이렇게 복구를 시켜주는 것은 대부분 한글이나 엑셀과 같은 오피스 프로그램이다.

이보다 더 화난 건 시스템이 죽어 버리는 경우다. 2007/11/10 - [구글/마이크로소프트] - 특정 폴더에 접근하면 시스템이 죽으면서 재부팅할 때의 해결 방법 처럼 사용하다보면 갑자기 망가져 버리는데 죽으려면 지 혼자 죽지 남까지 동귀어진 시키는 이런 나쁜 놈은 없어져야한다.  이런 오류는 대부분 하드웨어 오류다. 윈도 98 때 이런 경우가 하루에 1번 정도는 겪은 것 같은데 요새는 많이 나아졌다. 하지만 비스타에서도 완전 해결이 되지 않아 사용 도중 죽는 경우를 몇번 겪었다. 이런 경우는 대부분 하드웨어와 충돌이다.

이보다 황당한 경험을 하게 만든 것은 모 CD 레코딩 프램이다. 몇년 전의 일이기 때문에 지금은 해결이 된 문제다.   특정한 조건을 만족해야하는 경우였지만 시스템을 날려 버리는 아주 황당하고 치명적인 문제였다.  CD 레코딩을 하면 임시 파일을 만들고 CD 레코딩이 끝나면 필요없는 파일이기 때문에 임시 파일을 지워준다.  임시 파일의 위치는 사용자가 임의로 정할 수 있는데 일반적인 경우야 C:\Temp나 Windows\Temp나 사용자 계정의 temp에 만드는게 기본이어서 기본 값대로만 나두면 문제가 생기지 않는다.  

사용자가 직접 지정할 수 있는데 C:\와 같이 지정해 버리는 경우도 없지 않아 있다.  별 대수롭지 않게 여기거나 실수로 지정하는 경우다.  당연히 문제도 생기지 않아야한다. 그런데 이 특정 레코딩 프로그램은 C:\가 임시 디렉터리로 알고 레코딩이 끝나면 이 디렉토리의 파일을 모두 지워버렸다.   임시 파일만 지워야하기 때문에 금방 끝나야하는데 오랬동안 하드 디스크를 읽는 소리가 들렸는데 그게 하드의 모든 파일을 지우고 있는 소리였다. C:\가 임시 디렉토리이니 그 아래에 있는 파일을 모두 쓸모 없는 파일로 인식하고 지워 버리는 고약한 일을 한 것이다. 프로그램이야 다시 설치해 버리면 되지만 지금까지 몇년 동안 작성해오던 문서들은 어떻게하란 말인가? 생각만해도 아찔한 버그다. 프로그램을 만들 때 이런 고려는 충분히해야하는데 조그만 부주의가 이리 큰 문제를 일으킨 것이다.

많은 프로그램들이 임시 작업하는 파일을 보관하기 위해 임시 디렉토리를 지정하는 경우가 많다.  혹시나 이런 황당한 버그가 남아 있을 줄 모르니 혹시 심심하다면 한번 임시 디렉터리를 C:\와 같이 한번 지정해 스릴를 느껴보시기 바란다.  이건 농담이고 하하하...     지금이야 모든 프로그램이 이런 문제가 생기지 않게 만들고 있겠지만 혹시나 이런 문제가 남아 있을 줄 모르니 임시 디렉토리 설정하는 경우가 있다면 테스트할 목적이라도 C:\나 D:\와 같이 정하여 황당한 경험을 하는 우를 겪지 않았으면 한다.