brunch

You can make anything
by writing

C.S.Lewis

by 선명이와 지덕이 Oct 29. 2023

버그(Bug) 잡기

컴퓨터 용어 중에 '소프트웨어 버그(Software bug)'라는 단어가 있다. 이 단어를 소프트웨어 개발자나 운영자들은 보통 줄여서 '버그'라고 부른다. 이 단어는 컴퓨터 프로그램 상의 결함에 의해 소프트웨어가 예상하지 못한 잘못된 결과를 내거나 오류나 오작동이 발생하는 현상을 말한다. 본래 이 단어의 뜻은 벌레인데, 1947년부터 컴퓨터 용어로 자리 잡은 것으로 알려져 있다.

 

컴퓨터 프로그램 개발자와 운영자가 하는 작업 중에 버그를 올바르게 수정해야 하는 일은 상당히 중요하다. 왜냐하면 버그의 결과로 다양한 문제가 발생할 수 있기 때문이다. 경미한 버그는 컴퓨터 프로그램 동작에 약한 영향을 주고 오랜 시간 동안 발견되지 않고 남아 있을 수 있지만, 심각한 버그는 컴퓨터 프로그램 실행이 중단되거나 강제 종료되는 문제를 일으킬 수 있다. 

 

1999년 말에 IT업계에 중요한 이슈 중의 하나는 밀레니엄 버그(Millennium bug, Y2K bug) 문제가 발생하지 않도록 하는 것이었다. 밀레니엄 버그는 1999년 12월 31일에서 2000년 1월 1일로 넘어갈 때 날짜나 시각을 다루는 과정에서 오류가 일어날 수 있는 문제로 전 세계적으로 화두가 되었다.


내가 근무했던 대기업 A회사의 IT실에서도 밀레니엄 버그 문제가 초미의 관심사였다. A회사는 컴퓨터시스템으로 IBM 서버와 메인프레임이 설치되어 있었으며, 재고, 생산, 재무, 인사, 구매업무 등에 COBOL, PL/I로 개발된 소프트웨어가 운영되고 있었다. 또한, 일부 업무시스템으로 Visual Basic으로 개발된 소프트웨어가 운영되고 있었다.


컴퓨터 프로그램 속에는 논리적인 흐름이 전개되는데, 이때까지 연도가 2자리로 구현되어 있어서 2000년이 되면 문제가 발생할 수 있었다. 예를 들면 연도가 4자리이면 1999년 다음에 2000년으로 인식되어 문제가 없는데 2자리이면 99년 다음에 00년으로 인식되어 문제가 생긴다. 이러한 것을 수정하기 위해 연도를 2자리에서 4자리로 수정하고 반영해야 했다. IT실 직원들은 프로그램들을 수정하였다. 다행히 2000년 1월 1일이 되었을 때 별다른 문제가 발생하지 않았다.   




2000년대 초, B회사 IT실에서 근무할 때도 버그를 수정하는 일이 중요했다. B회사는 전사적 자원관리를 위해 ERP(Enterprise Resource Planning) 패키지인 SAP을 도입했다. SAP은 인사, 원가, 재무, 생산, 영업 등의 모듈로 구성된 소프트웨어이다. 이와는 별개로 생산라인에는 MES(Manufacturing Execution System, 생산관리시스템)를 도입했다. MES는 Visual Basic이라는 개발툴로 구현된 소프트웨어인데 IT실 직원들이 운영했다. 


우리 파트는 다른 회사 개발팀에서 만들어 인수받은 MES 프로그램을 운영하게 되었는데 회사 사정상 인수인계를 제대로 받지 못했다. 생산라인 흐름과 프로그램 소스의 내용을 파악하는 것이 쉽지 않았다. 공장 전체에 걸쳐 있는 생산라인에 적용되는 프로그램이기 때문에 오류가 발생하지 않아야 했다. 회사는 새롭게 MES를 구축하여 적용하는 것이었다. 


운영 초기에 생산라인에서 이것저것이 안된다고 전화가 빗발쳤다. 심지어 생산라인의 업무가 중단되어 멈춰서는 경우도 있었다. 생산 현장을 제대로 이해하지 못한 것과 프로그램상의 버그를 올바르게 수정하지 않고 운영한 것이 문제였던 것이다. 결국 직원 한 명을 본사로부터 지원받았고 시스템이 안정화되기까지 수개월간 시간이 소요되었다.


컴퓨터 프로그램 개발자와 운영자들은 버그를 올바르게 수정하는 일을 '버그를 잡는다'라고 표현한다. 이들은 오늘도 회사 현장에서 자신에게 맡겨진 컴퓨터 프로그램의 이상 유무를 확인하거나 버그 잡기에 여념이 없을 것이다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari