문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 디버그 (문단 편집) === 버그의 유형 === 버그가 생기는 이유도 천차 만별인데 굳이 따지자면 아래와 같다. * 사람의 사소한 오타로 생기는 버그. 이 경우가 가장 흔해서(예: 콜론(:)과 세미콜론(;)) 일단 찾으면 수정이 쉽다. 코드 부분의 오타라면 문법 오류나 구문 오류로 인해 컴파일이 불가능한 경우가 많아 컴파일러나 IDE가 친절하게 프로그램이 빌드되어 실행되기 이전에 원천적으로 오류 부분을 지적해 주고 빌드를 막아버리므로 프로그래머가 곧바로 인지할 수 있기에 사실 프로그래머에게는 버그라고 부르기에도 애매한 실수 수준이다. 하지만 오타임에도 언어의 문법 상으로는 문제가 없어[* 이를테면 =와 ==은 C언어에서 전혀 다른 문법이지만 하나를 잘못 적는다고 논리적으로 문제가 발생하지 않는 경우도 많다. 단순한 숫자인 상수값 오기입도 컴파일러는 잡아내지 못한다.] 컴파일러가 오타임을 인지하지 못하고 그냥 빌드해서 프로그램이 실행되는 경우도 있는데, 이 경우는 코드를 훑어보면서 오타를 찾아야 하므로 굉장히 귀찮게 된다. * 특수한 케이스를 미처 생각 못한 논리적인 버그 소프트웨어 설계 과정에서 요구사항 또는 예외를 감안하지 않은 경우가 주로 이런 경우이다. 이렇게 되면 요구사항과 실제 구현을 대조해야 하는데, 이 과정에서 언어 불일치가 가장 큰 문제로 작용한다. 법적 또는 윤리적 결함으로 발생한 것도 이 경우에 해당하며, 설계 자체의 결함 또는 요구사항 변경 등으로 버그가 발생하기도 한다. [[당산역 마을버스 칼부림 사건]]에서 드러난 '45자 버그'가 이런 예. * 프로그램이 의존하는 [[운영체제|OS]], 또는 다른 라이브러리의 버그로 인해 발생하는 버그 소스가 공개되지 않은 것이라면 해당 기능을 우회해야만 하며, 소스가 공개되어 있다 해도 수정의 난이도 및 [[라이선스]] 문제 등을 고려해야 한다. 특히 [[RAM/주소할당 문제#s-2.4|4GB 문제]]는 대용량의 데이터를 처리할 때 큰 골칫거리로 작용한다. [[염소 시뮬레이터]]도 이것만은 해결하지 못했으며[* 염소 시뮬레이터 자체가 32비트 기반으로 작동하기에, 64비트로 새로 빌드하지 않는 이상 해결은 불가능하다.], 이건 아예 스팀 과제로 등록되어 있다. * 시스템 상의 한계로 인한 오류 하드웨어는 정상적이나, 하드웨어가 소프트웨어를 [[버틸 수가 없다|버티지 못하는 경우]]가 주로 이 경우이다. 이런 경우는 하드웨어에 최적화되지 않은 코드 작성으로 자주 발생하며, 경우에 따라서는 하드웨어 스펙을 숙지해야 할 수 있다. [[음파 크래시 버그]]가 근본적으로는 이 오류였다. 이 경우는 원인을 찾는 것은 물론, [[최적화|문제를 해결하는]] 데에도 상당한 시간이 소요된다. * 하드웨어 자체의 노후화, 고장으로 인한 오류 대표적으로 컴퓨터에 벌레 또는 먼지가 들어갔을 때 발생하며, 굳이 이 경우가 아니더라도 하드웨어의 노후화나 고장으로 인해 생기기도 한다. 이 정도면 이미 개발자가 할 수 있는 게 없어지고, 사용자가 직접 하드웨어를 점검 또는 교체해야 할 수 있다. [[버블 시스템]]이나 [[별의 커비 슈퍼 디럭스]]의 버그가 주로 이런 경우이며, 최초의 [[버그]]라 알려져 있는 Mark.II의 버그도 이것이다.[* [[그레이스 호퍼]] 항목에서 그 유명한 나방을 확인할 수 있다.] * 하드웨어 설계 문제로 인한 오류 간혹 하드웨어 설계 자체의 이상으로 버그가 발생하기도 한다. 이 경우는 설계 회사에 [[보이콧|직접 항의]]하는 것 밖에는 방법이 없으며, 물리적인 요인까지 다 고려해야 하는지라 [[공밀레|문제 해결에 최소 몇 년]]은 기다려야 할 수도 있다. 심하면 그 오류의 근본적인 원인을 제공한 기술을 포기해야 하는데, 그 비용은 당연히 천문학적으로 들게 된다. 수학적, 과학적으로 불가능한 경우에는 그냥 그 오류를 안고 가는 수 밖에 없다. 같은 하드웨어를 사용하는 모든 시스템에도 악영향이 되는지라 그 파장이 다른 오류보다 심각하며, 때문에 발견 즉시 [[봄버맨의 최후|모든 게 끝났다]] 봐도 된다. [[CPU 게이트]]가 이런 예. --사실 [[도란스]]를 내리면 된다고 [[카더라]]--저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기