개발자의 고민!!? ㅠ.ㅠ

익명 사용자의 이미지

이글은 www.webdox.co.kr에서 보고 너무나 마음에 닿는 글이라서 올립니다.
나와 같은 생각을 하고 같은 느낌을 가지는 분들이 있다는 것이 너무나 기쁨니다.
돈이 부족하고 오픈소스를 가지고 개발하는 개발자들을 위한 글이라는 것과
오픈소스 개발자들이 가지고 있는 생각을 아주 적날하게 표현한것 같습니다.
프로그래밍을 공부하고 싶은 사람이나 프로젝트를 목전에 두고 있는 개발자 모두가
고민하고 있는 것은 과연 어떤 개발 방법이 가장 적합할 것인가
하는 문제이다. 큰 범주로는 어떤 OS를 택할 것인가하는 것에서부터 작게는 어떤 에디터를 사용할 것인가에
이르기까지 고민거리는 널려있다.
문제는 개발 방향 선정 과정에서의 고민으로 그치는 것이 아니다. 우여곡절끝에 한번 개발 방향이 잡혀서
상당 기간 동안 관련 자료를 수집, 학습하고
개발을 진행시키게 되면 다른 가능성을 고려해 보기란 쉽지 않다. 리눅스에 대한 이해가 없는
직장 상사때문에 윈도우즈에서 개발을 착수해 놓고나서
중간에 리눅스로 전환한다는 것은 상상하기 어려운 일이다.
오랫동안 C/C++을 공부하여 CGI 기법을 득도했다고 해도 보다 진보된 방법들로
여겨지는 Server-side Script 방식을 새로이 공부하여 사용하기란 만만치 않은 일이다.
따라서, 개발 과정에서의 후회를 최소화하기 위해서라도, 더
나아가서는 향후 프로젝트에도 유용하게 써먹을 수 있도록 하기 위해서,
초기 개발 방향 선정에 보다 혜안을 갖고 신중을 기해야 한다.

그러나, 어떤 개발 방향이 현재의 요건과 향후의 비전을 동시에 만족시켜줄
수 있는지를 찾아내는 것도 쉽지 않다. 진보적인 방법으로 보이는 것들은
진행 상태가 베타 정도인 경우가 많고 심지어는 스펙만 있고 관련 툴을
찾기 어려울 때도 있다. 그렇다고, 막상 손에 익은 개발 방법은 뭔가 향후
비전이 없어 보이고, 벤치마크 테스트에서 새로운 개념에 비해 못 미치기도
한다. 여기저기 관련 사이트를 뒤져가면서 비교적 그럴싸한 개발 방법 몇
가지를 압축해 놓고 나서도, 조언을 해 주는 개발자마다 딱히 어떤 개발
방법이 최선이라는 답을 내 주지 못 한다. 그도 그럴 것이, 이런 저런 방법을
모두 학습하고 실제에서 다 적용시켜 본 개발자는 거의 없기 때문이다.
인터넷에 널려 있는 벤치마크 테스트 자료도 내가 알고 싶은 것만 꼭 빠져있기
일쑤고, 어쩌다 나와 있는 정말 궁금한 정보는 테스트 자료마다 다르다.
설상가상으로 좀 좋은 툴이다 싶은 것은 열심히 다운로드 받으려고 보면
트라이얼 버전이고, 상업적으로는 절대 이용하지 말란다.

현재까지의 경험들과 산더미같은 관련 자료를 바탕으로하여 기도하는 심정으로
개발 방향을 잡았다고 하자. 그것으로 해결되는가? 문제는 이제부터
시작이라고 보면 된다. 돈 싸 들고 문제를 해결하려고 하면 간단하겠지만,
오픈 소스 진영의 개발자들의 자존심으로 상업용을 쓸 수 있겠는가.
자존심은 둘째로 쳐도 돈이 없는데 어쩌겠는가. 다행히도 절망에서 건져주는
것은 어딘가에 숨어있는 자유로이 배포가능한 소프트웨어! 중요 기능을
비교적 다 갖추고 있는 그래도 쓸만한 툴이 숨어 있기 마련이다. 그러나,
반가움도 잠깐, 설치해서 운영해 보려고 하면 어딘지 찜찜하다. 개발자야
열심히 노력해서 만들었겠지만, 그 양반이 언제까지 업그레이드 해 줄지
의문이 생기기도 하고, 어딘가에 심각한 버그 있을지 알 길 없음이다. 다시
여기 저기 뒤져보다 보면 내가 찾아낸 소프트웨어가 비교적 안정적으로
여러 사람의 지지를 받고 있는 것이 확인된다. 그렇다면 역시 이것을 찾아낸
나의 혜안에 놀라게 되며 설치를 시도해 보게 된다. 이제 본격적인
문제가 발생한다. 전세계의 많은 사람들이 좋다고 지지를 보낸 소프트웨어가 왜
나의 컴퓨터에서는 설치가 안 되는 문제가 발생한단 말인가.
싼 맛에 조립한 나의 펜티엄은 역시 비지떡이었단 말인가.
나랑 설치를 같이 시작한 다른 개발자가 7000만원짜리 컴팩 서버에서
잘 돌리고 있는 모양을 보면 열이 받기까지 한다. 이틀을 고민하고 머리를
쥐어 뜯고 나니 어느 순간 꿈쩍도 않던 소프트웨어가 돌아가고 문제는
디렉토리에 쓰기 퍼미션을 안 열어 놓았기 때문이라는 사실을 깨닫게 된다.
겨우 퍼미션 따위로 이틀을! 그러나, 기쁨도 잠시, 설치만 하면 무엇하겠는가.
개발하려고 모니터 앞에 앉으면 손에 쥐게 되는 자료라고는 README나 API를
줄줄이 설명해 놓은 정도이다.
튜토리얼을 열심히 읽어도 겨우 입문 정도지 본격적인 개발에 도움이
크게 되기 어렵다. 결정적으로 그 놈의 문서들은 죄다 영어로 씌여
있는 통에 해독하는데만 해도 한숨 나온다.

이 모든 어려운 과정을 헤치고 개발에 착수해서 프로젝트가 완수될 무렵,
개발자의 가슴을 찧는 것은 더욱 진보적인 방법이 수없이 생겨나고 내가
열심히 쌓은 기술이 오래가지 못 할지도 모른다는 불안감이다.