1. 회사에서 엉망이 된 프로젝트 썰 푼다.

현재 회사에서 하이브리드 라이브러리를 새로 만들고 있다. 새로 만들고 있다는 것은 당연히 그 전의 라이브러리가 있다는 것이다. 그 전에 있던 라이브러리가 구려서 새로 짜느냐고 물어본다면 당연히 아니다. 딱히 만들었을 때와 지금 요건사항이 바뀌지도 않았기에 구조적으로도 충분히 활용 가능하다. 그렇다면 왜 새로 짜느냐? 사용할 수 있는 사람이 없기 때문이다.

나를 지금의 회사로 끌어들인 분이 회사에 남기고 간 유산이 몇가지가 있다. 그중 현재 현역으로 돌고 있는 녀석이 셋 있는데, 하나는 ODS 앱 (사실 현역으로 돌면 안되는 녀석이지만 일이 꼬였다.) 이다. 그리고 다른 하나는 JS로 만들어진 SPA 프레임워크와 그걸로 이루어진 문서입력기 다. 그리고 마지막 하나가 위에서 언급한 하이브리드용 APP/JS 라이브러리 다.

ODS앱은 어차피 회사에서 모바일을 하는 사람이 나밖에 없기에 그냥 혼자서 처리하고 있다. SPA프레임워크와 문서입력기는 나는 최대한 웹/서버단에 신경을 안 쓰려고 하기에 일단은 무시하는 중이다. 문제는 하이브리드용 APP/JS 다. ODS처럼 APP은 어차피 모바일 하는 사람이 나밖에 없기 때문에 그냥 혼자서 어떻게든 부여잡고 처리 중이다. 진짜 꼬인 점은 JS인데, 내가 신경을 안쓰려는 웹단에 엮인 녀석인데 사용할 수 있는 사람이 나밖에 없는 실정이다. 이쪽 일이 오면 JS연동단을 봐줄 사람이 없어서 혼자서 완전히 뒤집어 쓰는 형상인 것이다.

2. 어쩌다 일은 이렇게 꼬였을까.

하이브리드 라이브러리를 사용한 프로젝트는 2개가 있었고, 둘 다 성공적으로 완료되었다. 물론 두 프로젝트 다 내가 웹단을 맡지 않았다. 나는 최대한 웹단을 신경쓰지 않고, 앱단만 쳐줬으며 웹단을 작업한 사람들은 따로 있었다. 그런데 올해 해당 웹단을 작업한 사람들이 한명만 빼고 다 회사를 나갔다. 그런데 여기서 문제가 발생했다.

두개의 프로젝트 중 하나는 쌩으로 JS를 끌어다 썼고, 다른 하나는 RequireJS를 이용해서 비동기로 JS파일을 끌어다 쓰도록 처리하였다. 물론 쌩으로 JS를 끌어다 쓴 쪽도 바꿀려고 했지만 해당 프로젝트에서 웹단을 맡은 사람들과 높으신 분들의 반대로 바꾸지 못했고 그쪽은 그대로 나가게 되었다. 그리고 현재 남은 한 사람이 그냥 쌩으로 JS를 끌어다 쓴 쪽의 사람이다.

그리고 올해 가을 일이 터졌다. RequireJS로 작업된 쪽의 수정작업과 해당 프로젝트를 기반으로 다른 사이트의 앱을 오픈하게 된 것이다. 당연히 담당자는 나와 위에 언급한 생존자. 다른 사이트 앱은 둘째치고라도 수정작업부터 일이 위험해 보이기 시작했다. 일단 스크립트 추적부터 헤매기 시작했다. 결국 내가 스크립트를 추적해서 수정할 부분을 알려줬고, 그래도 웹은 했던 사람이라 수정을 하긴 했다. 그리고 다른 사이트의 오픈은 기존 사이트를 최대한 복사해서 사용하는 거라 다행히 큰 문제는 없이 넘어갔다.

하지만 그것과는 별개로 이번 작업은 나에게 큰 위기감으로 다가왔다. 이번처럼 기존 사이트를 기반으로 작업한다면 다행이지만, 만약 새로운 프로젝트로 새로 작업해야 된다면? 내가 다 뒤집어 써야 되는 상황인 것이다. 물론 이 문제는 이 하이브리드 라이브러리만의 문제가 아니다. SPA 라이브러리와 문서입력기 역시 회사에서 작업 가능한 사람이 두명밖에 없어서 두명이서 다 뒤집어 쓰고 있는 상황이다.

3. 라이브러리가 나쁜 것이 아니다.

여기서 이 유산들을 남기고 간 분에 대해서 한번 입을 털어보자. 새로운 기술 공부하기 좋아하고, 또 적극 적용하기 좋아하며 개발자라면 당연히 계속해서 공부해야 된다고 생각하는 사람이다. 개발자로서는 훌륭한 마인드를 가진 분이라고 개인적으로 생각하고 있다. 하지만 이분의 가장 큰 문제는 당연히 개발자들은 그래야 된다고 생각하고, 회사의 다른 사람들도 그렇게 할 것이라 믿었던 것이었다.

하지만 회사의 많은 사람들은 그렇지 않았다. 시간이 없고 바쁘다는 이유로 항상 새로운 기술들을 거부했으며, 공부하기도 거부 했다. 물론 그것들을 잘 따라온 사람들도 있었다. 소수라서 그렇지. 뭐 여기까지는 흔한 기술연구소와 실무팀의 싸움 정도로 볼 수도 있다.

진짜 문제가 되는 것은 높으신 분들은 또 그 결과물에 만족했고, 결국 그게 실제 프로젝트로 나갔다는 점이다. 그런데 그 결과물에 힘은 실리지 않았다. 거부하는 사람들에게는 받아들이기를 강요하지 않았고, 결국에는 묻히지는 않았지만 전파되지 않고 일부 사람들만 받아들인 묘한 형태가 되었다. 여기까지 가다가 결국 지친 그분은 회사를 나갔고, 유일하게 힘을 싣던 사람이 사라지니 더욱 갈라파고스화 된 기술이 되어버렸다.

4. 우민을 위한 라이브러리

그래서 나는 다른 방향으로 나갈려고 한다. 일단은 내가 만든 라이브러리를 사용하는 사람들은 멍청한 우민 으로 가정하기로 했다. 신기술을 적용해도 기술은 뒤로 숨기고, 겉으로는 최대한 간단히 몇줄이나 복붙정도로만 사용가능한 형태로 나갈려고 한다. 어차피 많은 기능을 줘봤자 제대로 사용할 사람은 적고, 오히려 뭐가 많다고 거부할 사람들이 많을 테니까.

유지보수는 내가 하거나 믿을 만한 사람에게 맡기면 되지만, 사용하는 개발자는 믿을 수가 없다. 솔직히 지금 작업하는 것도 받아들여질 지 알수가 없다. 뭐 솔직히 안 받아들여지면 그러려니 해야지. 뭘 더 어쩌겠는가.