컴퓨터 기술 분야에서 "버그"란 컴퓨터 프로그램의 코딩 오류를 의미하는 용어이다. 프로그램 사용자가 이러한 버그를 발견하기 전에 찾아 수정하는 것을 "디버깅"(debugging)이라 하며, 디버깅은 프로그램의 개발 시작 단계부터 완료될 때까지 계속해서 이루어진다. 하지만 제품이 출시된 후나 베타 테스트 기간 중에도 버그는 여전히 남아있을 수 있다. 그러나 일반적으로 프로그램 개발 절차가 잘 확립되어 있고 프로그램의 설계를 잘하면, 그것이 비록 수천, 수만 개의 명령문이 조합된 대형 프로그램이라 해도, 버그를 최소한으로 줄일 수 있다. 버그의 어원은 1944년 하버드에서 MarkⅠ 컴퓨터로 프로그램을 개발했던 최초의 프로그래머인 그레이스 호퍼에 의해 비롯되었다. 젊은 해군장교였던 호퍼는 기술자들이 MarkⅡ 컴퓨터에서 오동작을 일으킨 벌레(모기)를 꺼낸 사건을 서술했다. 에릭 레이몬드는 그의 저서인 The New Hacker's Dictionary 에서 '그 벌레(모기)가 해군에 여러 해동안 전시되었고, 지금은 스미스쏘니언 박물관에 소장되어 있다'고 하였다. 이와 같이 버그라는 용어는, 현대의 컴퓨터 이전의 진공관 컴퓨터 시대부터 산업적 또는 전기적 오동작을 의미하는데 사용되었고, 때로는 컴퓨터 하드웨어 문제를 지칭하는 것으로 사용되기도 한다. 안녕하세요. 버그(Bug)라는 말을 많이 사용하시나요? 사전적인 의미로는 우리말 '벌레', '곤충'이런 뜻일 텐데요. 버그(Bug)란? - 보통 버그는 소프트웨어나 하드웨어의 결함을 말합니다. 버그(Bug)의 유래- 그럼 도대체 왜? 버그라는 말을 붙였을까요? 2020/08/20 - [SW교육/지식창고] - 세계 최초의 컴퓨터는 무엇일까요? 위 글에서 적었듯이 최초의 컴퓨터 에니악은 18,000개의 진공관을 사용하였습니다. 위에서 보듯 진공관은 마치 전구처럼 생겼죠? 초창기 컴퓨터 개발자 중 한명인 그레이스 하퍼(Grace Murray Hopper, 1906~1992)가 운용 중이던 ‘하버드 마크 II(Harvard Mark II)’ 컴퓨터의 고장 원인을 조사하던 중, 회로 사이에 나방 한 마리가 끼어있는 것을
발견했다. 아마도 전구에 달려드는 나방처럼 진공관을 향해 돌진한 듯합니다. 그래서 나방을 제거하여 그 결함을 제거했다고 하는데요. 그때부터 버그(Bug)라는 말과 버그를 제거한다는 디버그(Debug)라는 말을 사용하게 되었다고 합니다. 디버깅(Debugging)이란? - 진공관 기판에 달라붙은 나방을 떼내 듯 버그를 찾아내서 고치는 것을 말합니다. 버그란 무엇인가? 뭐, 대부분의 프로그래머는 아는 이야기다. 하지만 우리가 말하는 '버그'란 정확히 무슨 뜻일까? 버그를 구성하는 정확한 정의는 다음과 같다. 1. 프로그램이 프로그래머의 의도에 따라 움직이지 않는다. 2. 프로그래머의 의도가 사용자의 평범하고 합리적인 기대를 충족시키지 않는다. 그래서 프로그램이 프로그래머가 의도한 작업을 하고 있는 한 프로그램이 제대로 작동한다고 보는 게 일반적이다. 때로 프로그래머가 의도한 작업이 사용자의 기대를 크게 벗어나서 문제를 일으킬 때는 버그라고 본다. 버그는 왜 발생할까? 버그는 보통 복잡성을 줄이지 못할 때 발생한다. 또 그보다는 드물지만 간단한 대상을 잘못 이해했을 때도 발생한다. 프로그래밍 언어 혹은 그 언어에 대한 설명을 잘못 해석하고 이해가 안 되어있는 상태라면, 어떻게든 잘못 사용하게 될 것이다. 코드를 복잡하게 만들수록 누군가는 그 복잡한 코드를 잘못 사용할 가능성이 높아진다. 그리고 그 '누군가'가 심지어 개발자 본인이 될 수 있다. 프로그래머라면 프로그래밍과 해당 언어에 대한 기본적인 이해를 갖춘 상태에서 미래에 자신의 코드를 볼 다른 프로그래머가 쉽게 알아볼 수 있는 코드를 쓰겠다는 책임감을 지녀야 한다. 자신에게 단순한 것이 다른 사람에게는 복잡할 수도 있다. 인용 : -심플소프트웨어- 맥스카넷 |