brunch

[개발 그 첫 걸음-13]

True Story

by BeWrite
programming-background-with-html_23-2150038862.jpg?semt=ais_hybrid&w=740


울산 방문 이후의 일과

울산을 갔다온 이후에도 정처없이 일만 하며 보냈다. 울산 일정이 완전히 끝난 건 아니어서 진행하고 있던 일정 중간에 시간을 빼서 다시 울산에 다녀오기도 했다. 계속되는 외근으로 인해 몸도, 마음도 지칠 무렵 뜻하지 않게 코로나에 걸렸다. 불규칙한 식사 패턴과 부족한 잠 때문이었을까? 면역이 약해졌는지 코로나 걸리기 전부터 목이 아프고 몸살 기운이 있었다. 내 기억으로 울산에 출장갔을 때부터 몸이 이상했다. 부장님과 같이 방문할 당시엔 큰 문제가 없었는데 그 이후에 다시 울산에 방문하여 일정을 소화하는 과정에서 몸 상태가 좋지 않음을 느꼈다. 근처 보건소에서 코로나 검사를 받은 후 급하게 서울로 올라와 집으로 갔다. 집으로 돌아오자마자 격리 생활을 시작했다. 일주일이면 좀 나아지겠거니 싶었지만 2주 정도 지나서야 몸이 좀 괜찮아졌다. 백신도 다 맞았는데 코로나에 걸리다니... 오랜만에 쉬면서 여러 가지 생각을 했다. 문제는 쉬고 있는 기간에도 연락이 계속 오는 바람에 몇 번이고 노트북 전원을 켜서 개발과 유지보수 작업을 할 수밖에 없었다는 것이다.




그렇게 2주 정도는 집에만 있었다. 연차도 제대로 못쓰고 여기저기 출장을 다니며 개발과 유지보수의 무한 반복이 계속될 줄 알았지만 코로나로 인해 그 순환도 끝나고 말았다. 잠깐의 휴식, 이제까지 일해왔던 순간들을 돌이켜 보며 내 미래에 대해 고민했다. 노력은 많이 하고 있었지만 그에 대한 보상이 충분하지 않았고 좀 더 새로운 환경에서 일해보고 싶은 마음이 들었다. 새로운 시도와 도전, 입사 이후에 고생한 보람은 분명 있었지만 지금까지 해온 걸 바탕으로 더 많은 일들을 수행할 수 있지 않을까 하는 생각을 하며 이직에 대한 계획표를 조금씩 그려나갔다. 2주가 지나 어느 정도 몸이 회복되었다. 다시 시작된 출장 릴레이, 하지만 얼마 안 가서 일정이 변경되어 본사로 출근하게 된다. 얼마만에 본사 출근인가. 왔다갔다 하는 인생에 익숙해질 즈음에 다시 본사로 돌아와 밀린 업무들을 처리하고 있었다. 여기저기 일이 몰리다 보니 정리가 되지 않은 파일들이 있었고 이전에 마무리 하지 못한 고객의 요구사항 처리도 진행해야 했다.




그러던 어느 날, 누군가에게 연락이 왔다. 부장님이었다. 장비 15대의 인터페이스 연동을 위해 전주로 출장을 가야 한다고 전달받았다. 15대? 그동안 3대, 4대, 5대 정도는 했지만 10대 이상을 했던 적은 한 번도 없었다. 근데 15대라니... 검사 장비 15대가 각각 다른 파트의 검사장비였다면 모르지만 다행히 같은 장비였다. 하지만 일반 검사 장비가 아닌 코로나 검사 장비여서 쉽지 않음을 직감했다. 코로나 검사 장비를 연동하기 위한 인터페이스 개발은 생각보다 쉽지 않다. 검사 방식과 시약, 전산 시스템에 따라 엑셀 양식과 데이터 형식에 차이가 있는데 그에 맞는 개발 환경을 미리 세팅하지 않으면 개발과 테스트 비용이 많이 들 수밖에 없었다. 코로나 검사 연동 인터페이스 개발을 처음 해본 것은 아니었지만 내가 잘할 수 있을지에 대한 확신이 들지 않았고 어떻게 개발을 해야 할지 머릿속으로 떠올리기 시작했다.



처음 방문한 전주, 첫 날은 공복으로 시작

사실 이번에 방문하는 사이트 같은 경우 회사에서 납품을 진행한 케이스가 없다 보니 처음부터 끝까지 혼자서해당 사이트에 최적화된 개발을 진행을 해야만 했다. 이번에는 누군가와 같이 방문하여 진행을 하는 프로젝트가 아니었기에 혼자서 모든 업무들을 담당할 수밖에 없었다. 보통 일정을 잡을 때 영업팀에서 일정을 조율해주는 경우도 있지만 사실상 영업팀이나 상사에게 연락처 정보만 받고 일정 조율은 개발자가 거의 다했다. 그러다 보니 이전에 작업했던 사람들과 다른 사이트에서 만나는 경우도 종종 있었다. 아는 사람들과 만나 작업을 하면 기분이 좋았다. 이슈에 대한 배경을 잘 알고 문제해결을 같이 한 만큼 잘 통했기 때문이다. 어쨌든 전주에 방문하기 전에 인터페이스를 개발하기 위한 틀을 어느 정도 구성만 해놓고 다음날 전주로 향했다.




그날이 아마 수요일인가 그랬을 것이다. 전주역에 도착하여 택시를 타고 사이트로 이동했다. 사이트에 도착하여 검사실로 들어갔다. 검사실에 들어가니 팀장님이 계셨고 팀장님과 짧은 인사를 했다. 검사실에는 여러 장비들이 있었는데 타사의 인터페이스 UI 화면들이 눈에 들어왔다. 팀장님 말로는 이번에 인터페이스 작업 잘 마무리 되면 우리 회사의 인터페이스를 사용할 계획이라고 말씀하셨다. 개발 일정에 대하여 검사 시간이 다른 곳에 비해 빠르지 않으니 10시나 11시 쯤에 방문하여 작업을 진행하는 게 좋을 것 같다는 얘기를 전달받았다.

내가 작업해야 할 장비들이 어디에 있는지 궁금하여 팀장님께 물어봤다. 해당 검사실에는 없고 다른 건물에 위치한 검사실에 있다고 하여 곧바로 이동을 했다. 도착을 하고 보니 검사실까지는 몇 층 정도 올라가야 했는데 문이 닫혀 있어서 옆에 있는 벨을 눌렀다. 잠시 후 문이 열리고 선생님들이 마중을 나오셨다. 처음에는 선생님들과 작업자들이 나를 많이 피한다는 느낌을 받았다.




개의치 않고 내가 진행해야 하는 작업에만 집중하기로 했다. 코로나 검사실 내부로 들어갔다. 웬걸 15개 장비와 노트북이 일자진을 펼치고 있었다. 노트북 숫자는 7~8대 정도였는데 생각보다 작업이 쉽지 않겠다는 생각이 들었다. 어디서부터 어떻게 해야 할지, 뭐부터 해야 할지를 놓고 몇 시간 정도 고민했던 기억이 난다. 누구의 지원도 없이 혼자서 코로나 검사 장비 15대를 연동하는 인터페이스 개발을 해야 한다? 솔직히 감당할 수 있을지를 놓고 여러 가지 생각이 들었지만 자리를 잡고 하나하나 작업을 이어나갔다. 작업에 몰입해서 그런지 점심먹는 것도 잊어버렸다. 검사실은 사람들로 북적였다. 당시에는 코로나 검사량이 워낙 많다 보니 병리사 외에 알바생들도 많았다. 낮에 일하는 알바생, 밤에 일하는 알바생이 따로 있을 만큼 검체량이 상당했다. 메인 검사 시간이 오전보다 오후에 많았고 특히 새벽에 많았다.




점심을 거르고 계속 작업에 매진했다. 일단 전산 연동을 해야 했기에 전산팀 담당자 분과 통화를 했다. 보통 전산팀은 6시 이전에 퇴근을 하기 때문에 그전까지 필요한 정보가 무엇이고 어떤 지원이 필요한지를 사전에 정리해놓지 않으면 안 됐다. 일단 DB를 연동할 수 있는 정보부터 얻은 다음 장비에서 받은 검사 데이터를 전산으로 넘길 수 있도록 해주는 쿼리를 작성했다. 문제는 테스트할 검체가 없다 보니 테스트 데이터를 통해 테스트를 진행할 수밖에 없다는 점이었다. 일단 검사실 선생님들에게 부탁하여 테스트 데이터들을 받았다. 테스트 데이터를 통해 성공적으로 DB에 저장되는 것까지 확인한 이후부터는 본격적으로 UI와 코로나 검사 데이터 처리에 대한 로직을 개발했다. 사실 개발하기에 앞서 요구사항들을 정리하여 해당 요구사항들에 맞게 작업을 하는 게 맞지만 생각보다 그러한 과정이 매끄럽게 이어지지 않는다. 이 부분에 대해서는 뒤에 자세히 설명을 할 것이다.




그렇게 개발 작업을 계속 진행하다 보니 날이 어두워졌다. 슬슬 저녁을 먹어야 되는 시간임에도 왠지 모르게 발이 떨어지지 않았다. 작업을 하다 보면 밥먹는 시간이 아깝다고 느껴지는 경우가 있는데 이 날이 그랬다. 밥을 먹고 작업을 하면 퇴근을 일찍하기가 힘들어서 밤늦게까지 작업을 할 수도 있다는 생각에 자꾸만 밥을 거르고 공복으로 작업을 하는 것이다. 역시 이 날도 아침, 점심, 저녁은 먹지 않았다. 일어난 이후부터 13~14시간 이상 공복상태로 작업을 했다. 특이한 점은 그렇게 배가 고프다가도 시간이 지나면 배가 고프지 않았다. 이렇게 작업을 하는 경우가 종종 있다 보니 살만 엄청 빠졌다. 먹는 것도 많이 먹지 않고 어느 정도 배부른 만큼만 먹다 보니 식욕도 많이 없었다. 그래도 뭘 좀 먹고 작업을 해야 힘이 나지 않겠느냐 라고 얘기하는 사람도 있겠지만 이 당시엔 빨리 퇴근을 하는 게 무엇보다 중요했다. 밥이야 집에 가서 먹으면 되고 작업이 끝나고 나서 먹으면 되지... 못 먹으면 물이라도 마시지 뭐... 이런 생각을 했으니 밥이 급할 이유는 없었던 것이다.


rear-view-programmer-working-all-night-long_1098-18697.jpg?semt=ais_hybrid&w=740


밤샘 작업 시작

밤늦게까지 작업은 이어졌다. 처음엔 작업에 별로 관심을 가지지 않던 선생님들도 시간이 지나면서 나에게 말을 걸어오기 시작했다. 검사실에 방문한지 8시간 넘도록 한 자리에서 계속 작업만 하고 있었으니 선생님들도 궁금했을 것이다. 중간에 화장실 갔다온 거 제외하고는 거의 한 자리에서 미동도 없이 작업에만 몰두하고 있었으니 말이다. 원래 일정은 3일이었지만 작업을 해보니 3일 안에 끝낼 수 있는 작업이 아니었다. 더군다나 요구사항들도 생각보다 많았고 전산 시스템 역시 개발자 입장에서 쉽게 개발을 할 수 있도록 구성되어 있지 않다 보니 여러모로 어려운 점이 많았다. 보통 인터페이스에서 장비로부터 검사 데이터를 받으면 전산으로 자동 전송되도록 개발을 하는 게 일반적인데 여기는 그렇지가 않았다. 전산에 데이터를 넘기기에 앞서 선생님들이 먼저 확인을 해보고 데이터를 전송하는 형태로 개발을 진행해야 했다. 잘못된 데이터가 전송되면 안 되기 때문에 그에 대한 대비를 하는 차원에서 나온 요구사항이었다.




앞에서 요구사항에 대해 얘기를 했지만 사실 개발자 입장에서 고객의 요구사항을 모두 수렴하여 작업을 하기란 쉽지 않다. 내가 일할 당시에는 개발자가 먼저 요구사항에 대해 얘기하지 않는 게 관례였다. 일단 어느 정도 기본 틀을 잡아놓은 다음 사용자 입장에서 인터페이스를 사용하다가 불편하거나 필요한 점이 있으면 그때그때 대응할 수 있도록 작업하는 방식이었다. 비효율적이라고 생각할지 모르지만 이렇게 작업을 하게 되면 퇴근 시간을 조금 더 앞당길 수 있다. 왜냐하면 사용자 입장에서도 내가 필요한 요구사항이 뭔지를 모르는 경우가 많고 설령 요구사항들을 미리 정리하여 개발자 쪽에 전달을 했다고 해서 모든 요구사항을 충족시킬 수 있는 개발이 100% 가능한 것은 아니기 때문이다. 일단 개발을 한다. 그리고 고객의 요청이 들어오거나 피드백이 있을 경우 요구사항에 대한 작업을 진행한다. 이번 작업도 마찬가지였다. 사실 사용자 대부분 개발과 전산에 대한 지식이 없다 보니 요구사항에 대한 내용을 전달받을 때 말도 안 되는 것들도 많다.




그렇기 때문에 무턱대고 사용자에게 필요한 요구사항이 무엇인지를 물어보면 원하는 답변을 얻지 못하는 경우들이 많다. 오히려 사용하면서 불편한 점이나 필요한 게 무엇인지를 얘기하는 경우가 많다. 인터페이스를 많이 사용해본 사용자라면 모를까 대부분 인터페이스에 대해 잘 알지 못하거나 오로지 사용 측면에서만 생각하다 보니 요구사항과 관련된 작업이 생각만큼 순조롭지 못할 때가 종종 있다. 어쨌든 코로나 15대를 연동하기 위한 인터페이스 작업 과정에서도 여러 요구사항들이 있었고 거기에 맞춰 작업을 진행했다. 작업을 하다 보니 어느샌가 담당자가 바뀌어 있었다. 알고 보니 교대 시간이 한참 지난 뒤였다. 뭐... 개의치 않고 작업을 계속했다. 그렇게 새벽 1시, 2시까지 작업을 진행했다. 교대한 선생님께서 같이 도시락이나 먹는 게 어떻겠냐고 하시기에 자리를 옮겨 밥을 먹으러 갔다. 도시락을 얻어먹을 줄은 꿈에도 몰랐지만 그래도 밥 한 끼 먹을 수 있어서 다행이었다.




밥을 먹은 후 1시간 정도 더 작업하다가 철수했다. 숙소는 이미 예약해놓았기에 택시를 타고 숙소로 이동했다. 대충 씻고 바로 침대에 누워 잠이 들었다. 그리고 다음 날 아침 9시 정도가 되어서야 기상을 했다. 아직 검사실 일정이 시작하지 않을 때여서 여유롭게 준비하고 검사실로 향했다. 첫 날의 일정, 10시간 이상의 공복 상태로 현장 파악과 개발에 몰두하며 정처없이 보냈고 둘째 날은 어떻게 보냈을까? 궁금하시면 다음 편을 확인해보시면 되겠다.


>> 14화에서 계속됩니다.



keyword
이전 12화[개발 그 첫 걸음-12]