안녕하세요. 프로그램에서 발생되는 버그의 원인이 궁금하신가보군요!
일단 게임도 그렇고 대부분의 프로그램은 버그를 가지고 있다고해도 과언이 아닐만큼, 버그는 크든 작든 프로그램에 존재할 가능성이 높습니다. 물론 정말 간단한 형태의 프로그램은 버그가 없을 수도 있겠지만, 어느정도 규모가 되는 게임이나 프로그램은 늘 버그 존재 가능성을 안고 있죠.
버그가 발생하는 이유는 다양합니다. 말씀하신대로 프로그래머의 단순 실수가 원인일 수도 있고, 프로그램 설계나 구현 시 전혀 예상치 못한 상황 전개가 될 수도 있겠습니다. 아주 간단하게 예를 들어 프로그래머가 특정 상황에서 1에서 100까지의 입력값이 들어오는 상황이라고 판단해서 프로그램을 짰는데, 의도하지 않은 120이라는 값이 갑자기 입력값으로 들어오게 되는 상황입니다. 이런 경우 프로그램은 예외상황이 발생하는 것이고, 이런 예외상황에 적절히 대처하도록 잘 처리해놓지 않았으면 프로그램이 오동작을 일으키게 되는 것입니다. 이런것들이 버그라고 할 수 있겠습니다.
프로그램은 정말 다양한 변수와 흐름에 따라 처리되는 복잡한 논리구조의 집합체입니다. 그렇기 때문에 프로그램 동작 중에 얼마든지 예상하지 못한 상황이 발생할 수 있는 것이구요. 이런 버그가 발생하면 프로그래머는 패치를 통해 수정을 하게 됩니다. 그래서 프로그램들이 버전업을 하면서 지속적으로 프로그램을 유지보수하게 되는 것이지요. 애초에 완벽하지 않은 인간이 창조해내는 프로그램인만큼 프로그램 역시 완벽할 수가 없답니다. 그래도 프로그래머라면 최대한 버그가 없는 양질의 프로그램을 만들어내기 위해 최선을 다해야겠죠?
답변 조금이나마 도움되었으면 좋겠습니다. 감사합니다.