몇년 전의 일이다. 그냥 회상차, 한국 IT 업계에서 어떤 일을 겪을 수 있나? 의 예시 중 하나로 보고 넘겨주길 바라.
그리고 원래 직장/알바? 게시판에 쓰려고 했는데 여기의 분노탭이 본문의 내 심정에 들어맞기에 올려본다.
나는 프로그래머다. 간략히 말하자면 웹사이트나 모바일 사이트, 내부 인프라 시스템 등을 만들거나 운영하는 계열이다.
모 업체에 입사했다.
중소기업이긴 하지만 나름 규모 있는 곳이라 괜찮겠거니 하고 입사했다.
두달 가량, 업무다운 업무를 안주더라.
이후, 업무를 받았다.
회사 인력이 아닌 외부고용인력(프리랜서)한테서 업무인수인계를 받았다.
물론 대충-_-ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ. 당사자도 해당 업무의 일부만 담당했었는데 전체를 어떻게 알고 있을 것이며 뭘 설명하겠나?
그렇게 인수인계를 받고 시작한 일은, 헬이었다.
뭐 하나 제대로 마무리 된 게 없는 시스템. 데이터 갯수에 비해 심각하게 느려터진 시스템. 데이터가 연동이 되어야 함에도
여기저기 합이 맞지 않는 시스템, ETC, etc...
약 두어달 간 기존 시스템 뜯어고치던 중, 기능 추가 및 수정 요청을 받고 해당 파트를 분석하던 중, 대형사태를 확인했다.
해당 시스템이 '만들다 만' 시스템이었다는 것 이다.
뿌려지는 데이터들은 가 데이터.(정식 데이터가 아닌, 데이터 유효 등을 검증하기 위해 인위적으로 기입된 데이터) 였으며
해당 기능에 대한 최초 요구사항에 대해 고객이고 우리고 아는 이가 하나도 없는, 심각한 상황이었다.
이게 어떤 상황이냐면, 고객사에서 A라는 기능을 만들어주세요, 라고 요청했고 우리 회사에서 '넹 물론이죠' 라고 한 뒤에
대충 시스템 만들다 아몰랑 하고 던져버린 뒤 가짜 데이터로 그럴싸하게 보이게끔 해놓고 덮었다는 거다.
이게 심각하지 않다고 생각한다면, '사기'라는 한마디로 설명 가능하다고 말할 수 있겠다. 기업, 아니... 고객사가 정부산하기관이라면
사태의 심각성이 이해가 될까?
그래도 어찌어찌 물어물어 파악하고, 분석하고, 만들어줬다.
사태를 알고 있던 양측, 고객사 측에서는 '너 고생했고 고마운데 니네 회사 용서못함' 이었고 회사는 '고생했다. 고객도 걍 넘어가준다디?' 였다.
현실파악 못하고 있는 회사 대신 고객사한테 열심히 애널써킹 해서 겨우겨우 넘겼다.
그리고 얼마 뒤, 또다시 대량의 기능 수정 요청을 받았고
이걸 하기 위해 고객사에 상주하며 일을 시작했다.
그 일들 중 하나를 말해보자면, 앞서 적었던 내용을 기억하려나 모르겠지만, '데이터 갯수에 비해 심각하게 느려터진 시스템' 라고 말했었는데
여기 펨코의 게시판-게시물 검색기능을 생각해보라.
전체 데이터가 1000만여개가 있고, 그 중 검색기능을 통해 1만여개의 데이터를 목록화 해서 게시판에 10개씩 보여준다.
그런데 검색 한번 하는데 7~10분이 걸리고, 그게 페이지를 이동하거나 할 때마다 항상 그렇다.
거기다 시시때때로 과부하로 인해 데이터베이스가 뻗는다면?
이게 쓰라는 건지 말라는건지 모르겠다며 화를 내도 할 말 없을 것이다.
펨코의 게시판, 그 게시물은 뭐 데이터베이스의 구조상 그리 복잡하지는 않을테니 제대로 된 비교는 아니겠지만 이해를 돕기에는 쉬울 것이다.
이런 문제를 앞에 두고, 해결할 수 있지만 해결할 수 없었다.
무슨 소리냐고? 방안은 마련되어 있지만, 어느쪽을 선택해도 리스트가 크기 때문이다.
1. 데이터베이스에 접속해 데이터를 검색, 가져오는 기능 부분을 수정해서 성능을 올리거나,
2. 데이터베이스의 데이터 구성방식(테이블, 결합방식, 인덱스, 시퀀스 등 전문용어가 나오나 설명하기 번거로워지니 뭉뚱그려 말하겠다.)을
통째로 갈아엎고 아예 새로 만들고 데이터를 이관한다.
1의 경우 이 시스템의 데이터 구성방식이 워낙 개발새발이라 어느정도 수정을 통해 성능을 올린다 해도, 그래도 '일반적으로 보기엔 성능적
결함이 매우 큰' 상태가 될 것이며
2의 경우 시스템 특성상 여기저기 다른 시스템에도 연동이 되는터라 전문가들 데려와서 몇달간 머리 싸매고 해야 할 작업이기 때문이다.
(물론 그에 따른 비용도 엄청나게 들고.)
이런 상황을 본사에 이야기 했지만 '어떻게든 해'였고, 결국 1의 방안을 택해서 7~10분 걸리던 걸 1~2분대로 줄이긴 했다.
나름 장족의 발전이지만 - 실제로 고객사 측 해당 시스템 이용자들은 매우 기뻐했다. - 일반적으로 봤을 땐 '뭐야 이 쓰레기 시스템은' 소리가
나올 정도였다.
이 문제와 함께 다른 문제들도 정리하다보니 두달여의 시간이 지났고, 다시 본사에 복귀했다.
그리고 몇일 뒤,
초대형 사고가 발생했다. 아니, 발견됐다.
특정 데이터의 관리 시스템이 매우 멍청하게 만들어져 있어서, 데이터의 왜곡이 1년여 넘게 누적이 되었음을 발견했다.
전체로 보면 산에서 바윗덩어리 하나 정도의 비중이었고 그나마도 누적되서 이 정도 크기였기에 뒤늦게 발견된 것이다.
다시 고객사에 방문하고, 현황을 확인해보니 암담하기 그지 없었다.
1년 넘게 누적된 데이터의 왜곡은 갯수만 놓고 보면 만단위를 헤아리고 있었고, 그걸 일일히 찾아 검증할 방안이 없었다.
이제사 하는 말인데 이 왜곡된 데이터는 전산회계 데이터이며 산하기관을 여럿 가진 정부기관인만큼 금액의 규모가 어마어마했으며
데이터의 갯수 또한 말도 못하게 많고, 데이터의 왜곡형식도 값이 틀리거나 누락되거나 등이었기에 도저히 답이 나오질 않았다.
데이터가 왜곡된 이유도 어처구니가 없는게 데이터의 고유값들을 따로 만들어두지 않아서 생긴 데이터오류였다.
간략히 말해 A, B, C, D, E... 등의 데이터가 있는데 각 데이터들은 이런저런 값들을 여럿 가지고 있다. 근데 이들 각각의 고유한 값들이 있어야
분류를 하는데 이 고유값들을 만들어놓지 않아서 A를 삭제했더니 A, D가 삭제되고 B를 수정했더니 B, C가 수정되는 현상이었던 것이다.
추가적인 데이터 왜곡을 막기 위해 곧바로 이 부분을 수정하였으나, 이미 왜곡된 데이터들은 도저히 답이 나오질 않았다.
사태파악 및 보고를 위해 고객사, 회사에 위 내용을 말했더니 서로 어처구니 없어 하더라. 당연하지만.
결국 고객사 측에서는 이 시스템을 처음 개발했던 팀장의 호출을 요구 했고,
팀장은 '시스템 전체의 팀장은 내가 맞지만 그 시스템은 내가 아닌 다른 사람이 담당함. 난 모름 데헷' 라는 희대의 개뻘소리를 하는 바람에
고객사와 우리 회사, 나 모두가 빡치는 사태가 발생했다.
- 이 팀장은 얼마 못가 모가지가 짤렸다. 아마 내 욕 많이 할 거 같은데 나도 이 양반 욕 많이 했으니 상관없다. -
여하간, 고객사의 검증인력과 별도로 작성, 관리하던 회계장부, 백업 데이터들의 대조, 데이터들의 교차검증 등 온갖 수단을 다 써가며
한달가량 빡세게 고생해서 어느정도 잡아냈다.
그래도 완벽하게 다 잡아내는건 무리였고 고객사측에서도 이해해줬다.
- 이 시점에서 이미 고객사측은 회사와 날 별개로 대하고 있었다. -
그리고 본사로 돌아왔다가, 얼마 안되서 또 연락이 왔다.
다행히도 이번엔 추가기능 개발 및 기존 기능의 변경(오류수정이 아닌 기능 변경이다.) 이었다.
몇주에 걸쳐 작업하던 중, 본사에서 전화가 왔다.
본사의 다른 부서의 어느 윗분이었다. 인사치례 몇마디와 용건을 전달한 후, 마지막 한마디를 전해왔다.
'니가 실력이 없어서 계속 거기 가는건 아니고?'
허허, 소송전까지 갈꺼 고객사측에 빌고 빌어 무마시킨게 두 번이고, 빅똥 싸지른거 다 치우고 있는 사람한테 저런 말을....
이대론 못다니겠다 싶어서 고객사측에 말했다.
'저 이번 일만 끝나고 회사 그만둡니다.'
오히려 고객사가 '니 맘 이해한다. 그간 고생했다.' 며 격려하더라.
이후 회사에도 말했다.
노동법에 의거해 최장 한달의 인수인계 시간이 있음에도 한달 이상 대체인력을 뽑을 시간을 주었건만 추가인력을 뽑고 있긴 한건지,
인수인계 작업을 하란건지 말란건지 별 반응이 없더라.
내가 더 조급해져서 틈만나면 닥달했더니 부서장 -> 사장을 거치며 이십여일간 퇴직을 말리더라.
연봉 천 단위로 올려주겠단 말 까지 나왔지만 거절했고, 퇴사예정일이 다가오는데 여전히 인수인계 작업은 말이 없더라.
결국 내가 그리 받았듯이 제대로 된 인수인계 문서 없이 두세장 딸랑 워드로 적은 인수인계를 빙자한 업무목록만 만들어놓고 나왔다.
이전에도, 이후에도 술자리 안주 삼기 딱 좋은 회사, 프로젝트 경험은 있지만 여기서의 1년 만큼의 밀도는 없기에 참 기억에 남는다. 우라질.