SRT를 타고 도착한 울산
부장님의 호출을 받은 후 나는 울산에 있는 한 병원으로 가기 위해 울산 방향으로 가는 SRT를 예약했다. 태어나서 울산에 가는 것도, SRT를 타는 것도 처음이었다. KTX도 출장가면서 처음 타봤다. SRT를 타기 위해 수서역으로 갔고 근처에서 아침을 먹었다. 8시 차였던 것으로 기억하는데 시간이 좀 여유가 있어서 광장 근처에 위치한 티비를 보면서 잠깐 대기하는 시간을 가졌다. 출발하기 10분 전에 SRT를 탔는데 처음 보는 광경에 뭔가 낯설게 느껴졌다. 하지만 그 낯선 느낌은 곧바로 사라졌다. 출발 전 흘러나오는 피아노 음악이 긴장된 마음에 안정감을 주는 듯 했다.열차는 출발했고 나는 그동안 밀린 잠을 잤다. 시간이 좀 지났을까, 눈을 떠보니 조선소가 보이기 시작했다. 아 이제 거의 다 왔다는 것을 직감했다. 울산(통도사)까지는 2시간 정도 걸렸는데 다행히 무사히 도착했고 목적지로 가기 위해 택시를 탔다.
목적지는 도착했는데 일을 할 수가 없다…
병원에는 무사히 도착했고 담당자 분이 계신 진단검사실로 향했다. 이번 작업은 기존에 사용 중인 검사 장비가 추가로 1대 더 들어오는 작업이었다. 나는 추가된 장비의 인터페이스 연동 작업을 지원하기 위해 투입된 것이다. 추가적으로 부장님께서 원격 지원을 통해 내가 하는 작업에 대한 모니터링을 해주셨다. 처음 방문해서 바로 작업을 하는 줄 알았는데 변수가 발생했다. 이 작업은 사실 나 혼자서는 할 수 없는 작업이었다. 장비업체와 같이 작업을 하기로 예정되어 있었는데 정작 장비업체 담당자들이 오전 일정에 문제가 생겨서 오후 늦게나 방문한다는 얘기를 들었다. 하… 오전에 빨리 끝내고 서울로 올라가려고 했는데 완전히 일정이 틀어진 것이다. 이 작업 말고는 병원에서 특별히 할 수 있는 작업은 없었다. 어쩔 수 없이 점심을 먹고 오후 늦게까지 대기할 수밖에 없었다. 내가 작업할 장비는 코로나 검사에 사용하는 장비라서 진단검사실이 아닌 격리된 공간에 장비가 추가될 예정이었다. 기존 장비도 그 곳에서 사용 중이어서 장비업체가 오기 전까지는 코로나 검사실이 아닌 진단검사실에서 대기했다. 그렇게 오후 5시 정도 지났을까… 담당자 분께 연락이 왔고 나는 급하게 코로나 검사실로 갔다. 빨리 끝내고 철수해야지 하는 마음으로 차근차근 작업을 진행했다. 작업에 앞서 부장님께 연락을 드렸고 원격 지원을 해주셨다. 잘 끝날 줄 알았지만 생각보다 쉽게 끝나지 않았다. 그 장비는 내가 다뤄본 적이 없는 장비였다. 경험이 많이 부족했던 내가 그 장비와 연동하는 인터페이스를 제대로 알았을리가 없다. 물론 부장님께서 작업을 어떻게 해야 하는지 전달을 해주셨지만 막상 현장에 와서는 뭘 어떻게 해야 할지 망설였고 식은 땀이 엄청나게 나기 시작했다…
참… 지금 생각하면 답답했다. 당시 그 장비는 소켓 통신 방식을 사용하는 장비였는데 IP와 Port 정보만 잘 확인해서 인터페이스 쪽에 적용만 해주면 되는 것이었다. 문제는 장비와 인터페이스가 어떻게 작동하는지에 대한 전반적인 흐름을 알지 못하고 정보만 알았기에 이게 대체 뭘 설정해야 하고 어디서부터 어떻게 손을 대야 하는지에 대한 감이 없었다. 답답해하시는 부장님께 뭐라 드릴 말씀이 없었다. 그러다가 어느 순간 정상적으로 동작하는 모습을 확인하고서야 무사히 철수할 수 있었다. 원래 그때 좀 더 빨리 끝내면 SRT를 타고 서울로 올라갈 수 있었는데 시간이 지체되어 결국 비행기를 탈 수밖에 없었다.
쏟아지는 폭우, 흔들리는 기체
6시 40분쯤에 병원에서 나왔다. 그때가 7월 말이었는데 비가 억수로 쏟아졌다. 울산 전 지역에 폭우가 내리고 있었다. 허허… 이러다가 서울로 못 올라가는 것이 아닐까 하는 걱정이 밀려왔다. 택시를 타고 울산 공항으로 갔다. 비행기는 9시에 출발할 예정이어서 공항 근처에 있는 카페에 들렀다. 커피와 빵으로 저녁을 대신하고 이륙 30분 전에 비행기를 탔다. 기상 상황이 좋지 않은 상황에서 비행기를 타보는 것도 생전 처음이었다. 요즘 비행기 사고 때문에 안전 불감증이 전염병처럼 번지고 있는데 그 당시만 해도 비행기 사고가 잘 나지 않아서 나는 특별히 신경쓰지 않고 무사히 도착할 수 있다고 생각했다.
비행기는 이륙하고 내 몸은 하늘로 떠올랐다. 그런데 기체가 생각보다 많이 흔들려서 살짝 당황했다. 비만 많이 내리는 게 아니라 바람도 많이 불었다. 덜컹 덜컹 거리는 소리가 곳곳에서 들렸다. 기내에는 울음소리도 들렸는데 아이가 겁이 나서 무섭다는 얘기를 하며 울고 있었다. 나는 두려운 것보다 멀미가 나서 죽을 지경이었다. 기체가 심하게 흔들리니 이거는 바다에 떠 있는 배와 다를 바가 없었다. 그렇게 40분 가까이 기체가 흔들렸다. 김포공항에 무사히 도착했다는 기장의 얘기를 듣고 나니 금세 긴장이 풀렸고 집에 돌아갈 수 있다는 확신을 가졌다. 무사히 공항에 도착했다는 것만으로도 감사하고 또 감사했다. 비바람이 몰아치는 밤 그리고 예상치 못한 대기 시간과 잘 풀리지 않았던 작업, 울산에 대한 나의 첫 기억은 그렇게 내 머릿속에 자리 잡았다.
끝나지 않은 여름, 개발은 언제 하는 겨?!
그때 나는 개발 작업보다는 부수적인 작업들을 많이 했다. 하지만 그 작업들도 결국 개발과 관련된 것이었다. 개발을 잘하려면 전반적인 장비와 인터페이스의 흐름을 알아야 했기 때문에 작은 일이라 할지라도 결코 단순한 게 없었다. 그때 나는 개발을 잘하려면 시스템을 어느 정도 알고 있어야 한다는 사실을 알았다. 단순히 코딩만 잘해가지고는 고객의 요구사항을 제대로 반영할 수 없다는 것을 개발을 하면서 알게 되었다. 뭐든지 경험이 중요하다. 현장에서 직접 하는 개발과 나 혼자서 하는 개발은 엄연한 차이가 있다. 즉, 고객과 다른 이해관계자가 있다는 것이다. 수습 기간이 끝나고 여름 내내 그렇게 부수적인 작업들 위주로 진행했었다. 물론 개발을 아예 하지 않은 것은 아니었다. 틈틈이 시간날 때마다 회사 프로그램에 대한 개발 공부를 했고 어떻게 하면 고객의 요구사항을 제대로 반영할 수 있는지, 그리고 해당 사이트 전산을 어떻게 하면 잘 연동시킬 수 있는지에 대해서도 하나하나 알아가며 역량을 쌓는 데 집중했다.
만만치 않았던 실사 작업, 이건 대체…
8월이 되었다. 나와 동기는 의료재단을 방문하여 현재 사용중인 장비와 인터페이스가 무엇인지에 관하여 실사 작업을 해야 한다는 내용을 전달받았다. 그 의료재단은 이름만 밝히면 누구나 다 아는 그런 의료재단이었다. 규모도 컸고 그만큼 사용하는 장비와 인터페이스도 어마어마하게 많았다. 우리 둘만 간 것은 아니었다. 과장님도 같이 방문하여 이 작업을 같이 진행했다. 여기는 아무나 들어갈 수 없는 곳이어서 방문 목적과 업무 내용을 프론트에 작성을 해야 했고 담당자 분이 직접 정문 앞에 나와서 인도를 받아야만 들어갈 수 있었다. 들어가는 데 시간은 좀 걸렸지만 담당자 분께서 바로 나와주셨고 무사히 검사실에 들어갈 수 있었다. 검사실이 한 층에만 있는 게 아니라 여러 층에 있었기 때문에 결코 만만치 않은 작업이었다. 아무래도 검사만 전문으로 하는 곳이다 보니 다양한 검사장비들을 많이 볼 수 있었다. 동기와 나는 이 때 어디서 부터 어떻게 손을 대야 할지 망설였고 또 망설였다. 그래도 어떻게든 이 실사 작업을 잘 마무리하기 위해 최선을 다했다.
1층이 끝나고… 2층이 끝나고… 점심을 먹기 위해 밖으로 나갔다. 의료재단 근처에는 식당이 없었기 때문에 차로 이동을 해야 했다. 점심은 돈까스와 메밀국수였는데 생각보다 맛이 괜찮았다. 점심을 먹고 실사 작업을 다시 진행했다. 그렇게 실사 작업을 진행하고 나니 저녁 6시가 되었다. 그전에 팀장님과 실사를 몇 번 다니기는 했지만 이번 작업은 또 새롭게 느껴졌다. 이게 사이트마다 담당자의 성격도 다르고 사용하는 검사장비도 다른데다가 연동 방식과 전산시스템이 다르다 보니 실사를 할 때마다 뭔가 새롭게 느껴졌다. 이후 실사 작업을 나갈 때도 마찬가지였다. 복잡하게 얽혀 있는 실타래를 하나하나 풀어나간다는 느낌이라고 해야 할까. 아무튼 그렇게 실사 작업은 끝이 났다.
본격적인 인터페이스 개발의 신호탄을 쏘다
회사에 입사한지도 6개월이 지나갈 무렵 나는 현장에서 개발 업무를 하기 시작했다. 개발은 결코 쉽지 않았다. 하나를 이해하면 다른 하나를 이해해야 하고 뭔가 이해됐다 싶으면 또 다시 이해 안 되는 게 생기고… 뭐 업무의 본질이라는 게 하나를 알고 나면 또 하나를 더 알아야 한다고는 하지만 유독 IT 분야는 그게 심한 것 같다. 그만큼 확장 속도가 빠르고 변화가 심하기 때문에 유동적으로 움직이지 않으면 제자리에 머물러 있을 수밖에 없는 듯 하다. 어쨌든 나는 새로 추가되는 장비의 인터페이스를 개발해야 한다는 부장님의 연락을 받고 해당 사이트로 이동했다. 처음에는 동기랑 같이 방문하여 작업을 했다. 그 당시에는 동기가 나보다 훨씬 더 개발을 잘했다. 동기는 이전에 다른 회사에서 개발을 하고 온 친구인데 반해 나는 현업에서 개발을 해본 적이 없는 쌩초짜였다. 개발을 잘 모르는 상태에서 어떤 것부터 손을 대야 할지 참으로 난감했다. 이건 느껴본 사람이라면 분명히 알 것이다. 처음에 개발을 잘 몰라서 누군가한테 물어보지만 정작 그 내용이 이해가 되지 않아 계속 인터넷에서 찾아보거나 다른 개발자 코드를 참고하는 등 온갖 노력을 다해보지만 쉽게 문제가 해결되지 않을 때의 그 답답함. 그래도 그런 시행착오가 있었기 때문에 지금까지 올 수 있지 않았나 싶다.
아무튼 나와 동기는 그 사이트에서 밤늦게까지 작업했다. 이게 사이트마다 사용하는 회사의 인터페이스 버전이 달라서 이전 사이트의 개발 경험을 바탕으로 개발을 했다가는 낭패를 보는 경우가 종종 있었다. 이번 케이스가 그러했다. 테스트를 실패하고 또 실패했다. 그래도 밥은 배불리 먹어야 했기에 근처 백반집에서 제육볶음을 먹었다(나중에 가보니 그 백반집 없어졌다). 밥을 먹고 우리 둘은 작업을 계속 했다. 하지만 동기가 다른 일정으로 인해 다음 날 다른 곳으로 출장을 갔고 결국 나 혼자서 작업을 해야 했다.
이 작업에 대해 간단히 설명하자면 혈액 검사 장비와 연동하는 인터페이스를 개발하여 QC 검사와 일반 검사 데이터가 의료병원시스템과 연동될 수 있도록 해주는 작업이다. 그렇기 때문에 검사 항목에 대한 데이터 수치 형식과 데이터베이스에 대한 이해가 어느 정도 필요하다. 이 당시만 해도 나는 IT 지식을 복합적으로 활용하는 방법에 대해 거의 알지 못했다. 사실 순서를 지켜가며 하나하나 디버깅하면서 적당히 선배님들께 물어보면 어렵지 않은 내용이었는데 그때는 그렇게 행동을 안 하고 혼자서 끙끙 고민했다. 하지만 한편으로는 그렇게 고민하는 과정이 있어야 문제 해결 능력이 향상되기 때문에 너무 물어보는 것도 문제가 될 수 있다. 질문을 하더라도 왜 문제가 발생하고 그 문제를 해결하기 위해 어떻게 조치를 취했는지에 대한 내용도 구체적으로 설명을 할 수 있어야 바람직한 질문이라고 생각한다.
결국 다음 날 나 혼자서 출근을 했다. 과연 이 작업 제대로 마무리 될 수 있을까?
>> 7화에서 계속됩니다.