검수요청.png검수요청.png

버그

해시넷
theraker (토론 | 기여)님의 2020년 8월 13일 (목) 09:55 판 (개요)
이동: 둘러보기, 검색

버그(bug)는 프로그램 상의 결함에 의해 하드웨어소프트웨어가 오작동하는 현상이다.[1]

개요

 컴퓨터 기술 분야에서 버그란 컴퓨터 프로그램의 코딩 오류를 의미하는 용어이다. 프로그램 사용자가 이러한 버그를 발견하기 전에 찾아 수정하는 것을 디버깅(debugging)이라 하며, 디버깅은 프로그램의 개발 시작 단계부터 완료될 때까지 계속해서 이루어진다. 하지만 제품이 출시된 후나 베타 테스트 기간 중에도 버그는 여전히 남아있을 수 있으나 일반적으로 프로그램 개발 절차가 잘 확립되어 있고 프로그램의 설계를 잘하면 그것이 비록 수천, 수만 개의 명령문이 조합된 대형 프로그램이라 해도 버그를 최소한으로 줄일 수 있다. 버그의 어원은 1944년 하버드에서 MarkⅠ 컴퓨터로 프로그램을 개발했던 최초의 프로그래머인 그레이스 호퍼에 의해 비롯되었고, 젊은 해군장교였던 호퍼는 기술자들이 MarkⅡ 컴퓨터에서 오동작을 일으킨 벌레(모기)를 꺼낸 사건을 서술했다. 에릭 레이몬드는 그의 저서인 The New Hacker's Dictionary 에서 '그 벌레(모기)가 해군에 여러 해동안 전시되었고, 지금은 스미스소니언 박물관에 소장되어 있다'고 하였다. 이와 같이 버그라는 용어는 현대의 컴퓨터 이전의 진공관 컴퓨터 시대부터 산업적 또는 전기적 오동작을 의미하는데 사용되었고, 때로는 컴퓨터 하드웨어 문제를 지칭하는 것으로 사용되기도 한다.[2] 버그의 결과로 다양한 문제가 발생할 수 있다. 몇몇 버그는 프로그램의 동작에 조그마한 영향을 줄 뿐이며, 오랜 시간 동안 발견되지 않고 남아 있을 수 있다. 이보다 더 심각한 버그는 프로그램의 실행이 중단되거나 강제 종료되는 문제를 일으킬 수 있고, 어떠한 버그는 보안 문제를 발생시킬 수도 있다. 예를 들어, 악의적인 사용자는 자주 발생하는 버그인 버퍼 오버플로를 사용해서 원래는 허락되지 않은 일을 할 수 있다. 버그는 다양한 형태로, 또 다양한 정도로 프로그램의 사용자들에게 불편함 등의 영향을 미칠 수 있다. 몇몇 버그들은 프로그램의 기능에 미미한 영향만 미치는데, 이 때문에 오랫동안 사용자들이 이들을 발견하지 못하는 경우도 있다. 하지만 심각한 버그들은 프로그램이 전혀 작동하지 못하는 상태가 되게 하여 사용자들에게 큰 불편을 주기도 한다. 한편, 보안 버그들은 나쁜 의도를 가진 사용자들에 의하여 악용되어 시스템의 불법적인 권한을 획득할 수 있는 수단이 되기도 한다.[3]

종류

소프트웨어 버그

  • 소프트웨어 버그(software bug) : 소프트웨어가 예상하지 못한 잘못된 결과를 내거나, 오류가 발생하거나, 착오나 오작동이 발생하는 등의 문제를 뜻한다. 프로그램의 소스 코드나 설계 과정에서의 오류 때문에 발생한다.

역사적 사례

최초의 버그

Bug.jpg[4]

1945년 9월 9일 Mark.II 컴퓨터의 회로에 나방이 들어가 합선을 일으킨 것을 코볼의 발명자인 그레이스 호퍼가 발견한 인류 역사상 최초의 버그이다. 이 나방은 나중에 미국 해군에서 여러 해 동안 전시했다고 한다. 현재는 스미소니언 박물관이 소장 중이다.

게임에서의 버그

각주

  1. hokey,〈버그란 무엇인가 - 버그에 대한 고찰〉, 2019-03-01
  2. terms,〈버그〉, 1999-06-21
  3. 위키백과,〈[1] 소프트웨어 버그〉
  4. 나무위키,〈버그

참고자료

같이 보기

  검수요청.png검수요청.png 이 버그 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.