아르바이트 몇 개를 했거나 하고 있는데, 내가 처음부터 작업을 한 것도 있지만 대부분은 이미 만들어진 것을 변형하거나 데이터 마이그레이션 작업을 하는 것이다. 자기가 만든 코드도 육개월이 지나면 보기 싫어지고 뭔가 자꾸 리팩토링 하고 싶어지거나, 싹 지우고 처음부터 다시 만들고 싶어지는게 이 바닥의 인지상정인데, 하물며 남이 여러해 전에 날림으로 만든 것이야 오죽할까. 끔찍한 비유지만, 마치 태어나자마자 개천에 버려진 기형의 아기가 끈질긴 목숨으로 살아나 성인이 되었을 때의 모습을 보는 기분이 들었다. 장담하건데, 이 코드를 만든 사람도 자기가 뭘 만들고 있는지 모르는게 분명했다. 의미없이 이 파일이 저 파일을 인클루드하고, 그런게 끊임없이 반복되었다. 물론, 그래 물론, 나도 이런 비난에서 벗어날 수는 없다. 아마 아무도 그럴 수 있는 사람은 없을 것이다.
사실 딱히 뭔가 짚고 싶은건 없다. 말 나와 봐야 똑같다. 그 얘기가 그 얘기. 뭐 좀 더 잘하자, 정도? 책임을 지자? 우습다. 누가 책임을 져. 그거 만든 개발자만의 책임도 아니다. 아무것도 모르면서 납기일만 되뇌이며 쪼는 PM이 문제인 것도 아니다. 자기가 뭘 원하는지 제대로 모르면서 어디서 주워들은 것만 가지고 이런거 가능하죠? 쉽죠? 운운하는 클라이언트 문제도, 이쯤 되면 나오는 대한민국은 원래, 하는 것의 문제도 아니다. 그런 코드들은 수도 없이 많고, 그럭저럭 돌아가고 있다. 그래, 그게 문제라면 문제다. 그럭저럭 돌아간다는 것. 소스코드는 원래 겉으로 드러나는 생산물이 아니다. 사용자(user)는 인터페이스만 본다. 심지어 게시글을 GD 라이브러리를 통해서 이미지로 구워서 보여줘도, 이쁘게만 보이면 그만이다. 그냥 보이면 된다. 돌아가는 것처럼 느껴지기만 해도 오케이. 그리고 그렇게 생각하는 동안 우리 세계는 조금씩 불안과 우연을 얼기설기 이은 지푸라기 위에서, 더 위로, 더 위태로운 그 위로 한 발 한 발 내딛는 것이다.
말 나온 김에 이번에 농협 시스템 장애도 걸고 넘어가보자. 전산시스템을 아웃소싱 했다고 하는데, 그게 그쪽 생리인지는 몰라도 금융권 시스템에 대한 완전한 지배력이 금융사 자신에게 있지 않고 외부에 있다는건 내 깜냥으로는 도무지 이해가 안된다. 그건 그냥 커뮤니티 사이트가 아니라 하루에도 수백억씩 오고가는 시스템이다. 이 바닥에선 이런 시스템을 미션 크리티컬(mission critical)한 서비스라고 부른다. 만약 문제가 생기면 한두사람 잘리는 것으로 해결되지 않는다는 의미. 아웃소싱해도 처음엔 시스템이 잘 도는 것처럼 보였으리라. 사람들 인터넷 뱅킹 하는데 문제 없고 이것저것 서비스 하는데 문제가 없으면 오케이. 그냥 그러고 넘어간 것이다. 아무도 이게 어떻게 돌아가고 왜 이렇게 돌아가고 뭐가 어디에 붙어 있으며 그건 무슨 기능을 담당하고 어쩔씨구리 저쩔씨구리 그런건 신경 안쓴거다. 그리고 기업의 입장에서는, ‘그러면 된거 아닌가?’ 했겠지. 차는 굴러가면 되고 집은 비바람을 피하면 되고 밥은 먹어서 배부르면 되고… 이런 양적 만족감에만 하악하악하고 있었다는건, 누구의 말대로 이 시스템들이 얼마나 우연의 위에서 아슬아슬하게 돌아가고 있었는지를 그대로 보여주는 것이다. 덧붙이자면, 3차 테이프 백업본 있어서 그걸로 복구하면 된다고 하는데 나 진지하게 묻고 싶다. 혹시 백업 플랜을 짜면서 그냥 데이터만 디립따 아카이빙하고 있었는건 아닌지. 가끔가다 이런 일이 벌어질 것을 대비해서, 혹시라도 누군가가 ‘백업 제대로 되고 있는지 테스트 서버에다 리스토어해서 한 번 돌려볼까?’ 하고 말해 본 적은 있는지, 그냥 궁금하다. 그냥 아카이빙만 풀어 놓으면 예전처럼 시스템 제대로 돌아갈꺼라고 믿는 그런 순진한 사람들인가, 싶다. 뭐? 열시간이면 된다고? 야 이놈들아, 내가 쪼끄만 사이트 데이터 이전하고 셋팅하고 문제되는 부분 잡고 하는 시간만 해도 그정도다. 이놈들아.
뭐 됐고. 혹시나 내 대출정보도 함께 날아가는 아쌀한 이벤트가 있을까 싶어 들어가봤더니, 그건 여전하데. 허허. 뭐 됐어. 잘 돌아가면 된거지. 안그래?