태양김민호의 금태양블로그

컴퓨터용어중에서 디버그(debug)라는 뜻은 무엇인가? 디벅깅(debugging), 디버거(debugger) 함께 알아보자. 본문

SOFTWARE

컴퓨터용어중에서 디버그(debug)라는 뜻은 무엇인가? 디벅깅(debugging), 디버거(debugger) 함께 알아보자.

金太陽 2014. 1. 8. 08:00

디버그 ?


프로그램의 개발 마지막 단계에서, 프로그램의 오류를 발견하고 그 원인을 밝히는 작업 또는 그 프로그램을 말합니다. 오류 수정 작업은 디버깅(debugging), 오류 수정 소프트웨어는 디버거(debugger)라고 한다.



php 개발회사, php언어제작,




코딩후 프로그램의 결함을 버그(bug)라 하는데, 그 결함 부분을 찾아내어 없애는 작업을 말한다. 일반적으로 프로그램은 작성된 단계에서 많은 버그를 지닌다. 주 요인은 프로그래머의 단순한 생각 잘못이나 예외처리의 설정 잘못 등이다. 또한 프로그램의 사양에 충실치 않은 것도 버그라 한다. 이런 버그를 내포하고 있다면 완성품이라고는 할 수 없으므로 디버그 작업을 실시하게 된다. PC용 패키지소프트의 경우 크게 3단계로 나누어 디버그를 시행한다. 첫째, 프로그래머 자체에 의한 디버그이다. 둘째, 알파 테스트. 프로그래머 이외의 내부 스탭(staff)에 의한 시험이다. 셋째, 베타 테스트. 거의 출하 단계에 있는 프로그램을 사외 협력자에 의뢰해서 시험한다. 그때까지 몰랐던 디버그가 실제 사용할 때 나타나기도 한다. 그리고 설계사양에 관해 의견을 듣는 경우도 있다.





 

 


버그(bug)는 벌레를 뜻하며, 디버그(debug)는 원래 '해충을 잡다'라는 뜻이며, 프로그램의 오류를 벌레에 비유하여 오류를 찾아 수정하는 일이라는 의미로 쓰인다. 프로그램 개발공정의 마지막 단계에서 이루어진다.

 

주로 디버그가 오류수정 프로그램과 그 작업을 통칭하는 반면

작업에 중점을 둔 어휘는 디버깅(debugging)을 쓰며, 오류수정 소프트웨어를 가리킬 때는 디버거(debugger)라는 말을 쓴다.


방법은 프로그래머가 직접 손으로 해보고 눈으로 확인하는 테이블 디버깅과 디버깅 소프트웨어를 이용하는 컴퓨터 디버깅이 있다.


테이블 디버깅은 프로그램 리스트에서 오류의 원인을 추적하는 방법으로 원시프로그램을 읽어가며 분석하는 코드리뷰(code review) 방식, 오류가 발생한 데이터를 사용하여 원시프로그램을 추적하는 워크스루(walk-through) 방식으로 나뉜다.


컴퓨터 디버깅은 프로그래머가 제공하는 각종 정보와 소프트웨어를 이용하여 누구든지 디버깅을 할 수 있는 방식이다. 여기에는 디버거 방식과 디버그행(行) 방식, 그리고 기계어 방식이 있다.


먼저 디버거 방식은 프로그램을 시험할 때 디버깅 모드로 컴파일하여 디버거 기능을 포함시켜 사용하면서 오류에 관한 각종 정보를 수집하는 방식이다. 이 방식은 원시프로그램을 수정하는 일이 없이 정보를 수집할 수 있는 장점이 있으나, 디버거에만 의존해야 하므로 정보를 수집할 수 있는 범위가 한정되어 완벽하게 디버깅할 수 없다는 단점이 있다.


디버그행 방식은 수집하고 싶은 정보를 출력하기 위한 디버깅용 명령을 미리 프로그램 곳곳에 삽입하여 실행시키는 방식으로, 프로그램이 각 지점을 정상적으로 통과하는지 확인하는 방법이다. 이 방식은 세밀한 정보수집에 유용하나 디버깅을 완료하고나서 원시프로그램을 수정해야 하는 번거로움이 있다.


기계어 방식은 정보를 수집하고자 하는 장소의 주소와 범위를 기계어 수준으로 지정하고, 운영체제의 디버깅 기능을 사용하여 정보를 수집하는 방식이다. 이 방식은 운영체제가 서비스하는 프로그램을 그대로 사용할 수 있다는 장점이 있으나, 정보수집 및 분석에 시간이 걸리는 것이 단점이다.






오류 수정. 주로 컴퓨터의 프로그램 중에 존재하는 오류를 제거하는 작업을 의미한다. 「프로그램의 버그를 취하다」로 표현된다. 긴 프로그램을 새롭게 만든 경우 등 반드시라고 해도 좋을 만큼 이곳 저곳에 버그가 존재한다.

 

이들 버그를 제거하지 않으면 그 프로그램은 도중에 실행이 정지되거나 틀린 결과가 출력되기도 한다. 디버그는 프로그램 작성중의 중요한 작업이기 때문에 디버그의 방법으로서는 자신이 작성한 프로그램을 책상 위에서 잘 고쳐보고 버그를 찾아 점검하는 데스크 디버그로부터 디버그용의 디버그 에이드(유틸리티)를 사용하여 행하는 방법 등 수없이 많다. 흔히 사용되는 디버그 에이드로서는 주기억 장치의 내용을 표시 또는 프린트하도록 하는 메모리 덤프, 특정의 기억 영역이나 레지스터의 내용을 표시하도록 하는 스냅샷 덤프, 프로그램의 실행 과정을 하나씩 표시하면서 실행해가는 트레이서 등이 있다.

 

데스크 디버그에 대하여 이러한 컴퓨터 단말로 표시하도록 하면서 디버그를 행하는 것을 콘솔(console) 디버그라 부른다. 또 디버그는 하드웨어 장치의 설계 오류를 없앤다는 의미도 담고 있다. 프로그래밍에서는 「디버그를 한다」는 것은 계산기 프로그램 또는 다른 소프트웨어에 있어서의 잘못을 검출, 추적, 삭제한다는 것을 뜻한다.


 

 

 

 

 


 



Comments