우당탕탕 비전공자 개발자로 살아남기
드디어 내가 만든 프로그램이 어느정도 구색이 맞추어져가서, 내가 만든 부분과, 실제 서비스가 되는 부분의 통신부를 만들었다. 물론 이 과정에서 백엔드 개발자, 프론트엔드 개발자 분과 소통하는 것이 쉽지 않았다. 그분들이 나쁜 사람들이었다는게 아니라, 어떤 결과를 원하는 것인지 도통 머리속에 그려지지가 않았다. 그분들이 자연스럽게 쓰는 개발자 언어들이 나에게는 외계어 같이 들려왔고, 내 기준에는 알아들었다고 생각해서 구현해가면, 그분들이 원했던 결과가 아니었던적이 수두룩 했다.
우여곡절 끝에, 초기 결과가 나와서, 이제는 서버와 연결해서 테스트를 하기로 했다. 이제 어떠한 오류도 없이 정상적으로 나오는 것을 확인해서, 담당 이사님이 적어도 48시간 정도를 지켜보면서 메모리가 어떻게 증가하는지, 누수되는 구간은 없는지 확인해보자고 하셨다. 나는 당당하게 알겠다고 대답했다.
그런데 이게 왠걸, 다른 개발자들이 들으면 상상도 못할 실수를 내가 하게 되었다. 나는 당연히 컴퓨터를 켜두고 집에 가면 정상적으로 작동하고 있겠다 라고 생각했는데, 내가 집에 가있는 동안 컴퓨터는 스스로 꺼졌다가 켜지는 동작을 수행하게 되었고, 내가 켜두었던 프로세스는 당연히 꺼져 있었다. 나는 그당시에 백그라운드로 프로세스를 돌린다는 뜻을 몰랐고 (컴퓨터가 꺼지더라도 돌아가도록 하는 동작), 당연히 내가 명령을 내린 프로세스는 종료 될 수 밖에 없었다.
나와 함께 일하던 백엔드 개발자분은 너무 어이없어 하면서, 백그라운드 명령어의 존재에 대해서 알려주었다. 그분도 내가 얼마나 어이없었겠는가. 개발자라는 놈이 백그라운드라는 것도 모르다니 하면서 말이다.
나는 어쩔도리가 없었다.
그냥 오늘도 하나 배웠다 하면서 집으로 돌아가는 수 밖에.
그 이후로 나는 내 프로그램이 48시간 이상 비정상 종료 되지 않고 작동되었기 때문에, 나는 이제 내가 만든 프로그램에서 더이상 내가 해줄 수 있는게 없다고 생각했다. 말그대로 손을 떼면 된다고 생각했다. 하지만 더 어마무시한 디버깅이라는 프로세스가 나를 기다리고 있었다.
내 프로그램에 입력되는 데이터에는 수많은 예외처리 과정이 필요했고, 나의 예상을 벗어나는 데이터들도 존재했다. 그리고 내 알고리즘이 처리해야 하는 시나리오 중에 내 예상 범위 밖에 케이스들도 존재했고, 그런 데이터들이 들어오는 날에는 비정상적으로 종료되는 때가 존재했다.
그럴때마다 백엔드, 프론트엔드 개발자분들이 내 자리에 와서 농담 반 진담 반의 말들을 하기 시작했다. 프로그램이 죽으면 나도 죽는 날이 되는 기분이었다. ^^*
그러다 결국에는 이렇게 사는 삶을 지내게 되었다. 퇴근 하는 순간에도 프로그램이 꺼질까 두렵고, 출근하는 지하철에서도 프로그램이 꺼졌을까 무서웠고, 그리고 잠이 드는 순간에도 프로그램이 꺼질까 무서워서 원격으로 접속한 화면을 머리맡에 켜두고 잠드는 삶을 시작했다.
그러다보니, 내가 왜이렇게 내가 만든 프로젝트에 자신감이 없는가 싶은 생각이 들었다.
그래서 이렇게는 더이상 살수 없다는 생각에 프로그램을 처음부터 다시 뜯어보기 시작했다. 오류가 나오는 구간을 찾을때 까지 다시 처음부터 테스트를 한다는 마음가짐으로 다시 보았다. 그리고 에러 케이스를 찾을때 까지 집에 가지 않아야지 하는 마음으로 살았다.
그러다보니 결국 프로그램이 더이상 비정상적으로 종료되지 않는 것을 확인했고, 무엇보다도 내가 만든 프로젝트에 대한 자신감이 생겼다.
이제는 모니터를 더이상 옆에 두고 잠들지 않는 삶을 살 수 있게 된 것이다.
이렇게 개발자가 되어갔다.