정말 답답하고 화나는 새벽입니다.

 지금 시간은 새벽 5시 40분입니다.
시험기간을 앞두고 제가 하고 있는 일은 동아리 선배님 랩의 아르바이트 입니다.

왜 이 지경에 이르렀는지 답답한 마음에 조금 적어보자면..

가장 큰 이유는 제가 하기 싫어졌다는 거겠죠.

하기 싫어진 이유는 몇가지가 있는데 그 중 하나는 원래 하려고 했던 부분보다 조금씩 조금씩 확장되어 나가게 되서 부담이 커졌다는 것입니다. 이렇게 해서 제가 한학기 동안 해야 하는 일은, 학과 공부(공부 + 레포트 + 프로젝트) + 아르바이트 + 소프트웨어 멤버십(출석 + 프로젝트 + 세미나)가 되버렸거든요. 이로 인해 받는 스트레스가 정말 장난이 아니군요. 전 하나를 하면 대충 하지 못하므로, 하지 않거나 혹은 제대로 하거나 둘 중 하나가 될 가능성이 큽니다. 대충 하느니 안하는 게 낫다고 생각하거든요(고칠 점 중 하나입니다. 대충 하는 것도 잘 해야하는데..). 그렇다고 안하면, 해야될 일을 못한다고 생각하게 되면 그건 또 그 것대로 정말 스트레스를 받습니다. 제 성격이 좀 그렇습니다-_-.. 시간 문제로 선배님이 기능을 좀 축소해주시긴 했지만 축소 부분은 축소하지 않으면 도저히 그 시간안에 할 수 없다고 판단되었기 때문에 할 수 있는 정도로 줄여주신 겁니다(말그대로 빡시게 열심히 하고 하는 도중 아무 문제없이  진행되었을 때 다 할 수 있는 정도). 엄살이라고 보기엔 정말 너무 할 일이 많군요.

두번째는 거기다가 하지 않기로 했던 부분은 예전에 짰던 색기들(죄송합니다만, 정말 욕나와요-_-)의 코드가 정말 엉망이라는 것입니다. 자기들이 만들어 놓은 변수체크도 제대로 못하는 코드에(이건 뭐 ㅂㅅ도 아니고..), indent고 뭐고 전혀 일괄성을 찾아볼 수 없는 코딩 스타일에(일단 쳐다보기가 싫어집니다), 변수 초기화를 이상한 값으로 타입 상관없이 다 때려박아놓고.. 정말 욕하고 싶은 것이 한두가지가 아닙니다. 이 시간까지 제가 자지 못하고 있는 이유의 큰 부분이 이 놈들 때문이예요. 이 놈들 코드를 디버깅하면서 프로그램을 완성해야하니 원래 추가하기로 했던 부분을 작성하는데 시간이 더 걸리는건 당연한 일입니다. 게다가 이 놈들이 짰던 코드 부분을 발표해야한다고 수정해달라고 요구를 받았는데 당장 발표라는데 안해요 할 수도 없고, 하다보니 결국은 모든 부분을 제가 맡게(원래 안하기로 했었다구요!) 되었으니.. 쩝..

세번째는 제대로 된 보상이 없었다는 겁니다. 아르바이트를 시작한 건 코드 분석부터 시작하면 12월 말? 1월초?부터 시작했는데 원래 받기로 했던 3월은 커녕 5월달에나 되서 일부가 나왔습니다. 아쉬운 소리해서 선배님한테 겨우 50만원 더 받았는데, 그래도 햄버거 가게에서 일한 정도 밖에 안되니 그동안 몇 달동안 열심히 한 게 허탈해지면서 더하기가 싫어지더군요. 거기다 동아리 선배님이니 하기 싫어도 그만 할 수도 없고.. 나중에 끝나면 잘 주겠단 말씀도 솔직히 믿음이 안가게 되더군요. 무작정 선배 얼굴만 보고 힘든일 할 수도 없고 열심히 한 일에 대한 보상마저 보장이 안되니 일은 하기 싫고.. 게다가 다른 할 일은 쌓이고 쌓였고.. 정말 하기 싫었습니다. 5월 동안 소스를 커밋한 걸 보면 이전 달들에 비해서 정말 미미한 정도입니다. 중간고사때도 이렇게 하진 않았던 것 같아요.

네번째는 첫번째와 비슷할 수도 있는데, 무리한 계획을 실행하는 것에 더해 무리한 계획보다 늦어지게 되면 그 늦어진 것에 대한 부담이 저에게 그대로 다음번 계획 때 가중되서 돌아온다는 겁니다(사실 이건 제 성격 탓일 수도 있겠습니다). 프로그램 개발 도중에 개발 일정 수립에 대한 요구를 많이 받았는데, 일정 때마다 해야 할 일에 비해 매우 빡빡한 데드라인이 정해지곤 했는데, 이 데드라인에 맞추다보니 꽤 무리해서 수행할 수 밖에 없었습니다. 무리한 계획은 거의가 계획대로 진행되지 못하게 되는 경우가 많죠. 거의가 “이거 맞추기 너무 힘든데요.. 뭐 해봐야죠 뭐..”라고 울며 겨자먹기로 시작해서 결국은 마치려고 했던 부분까지 못하는 경우가 많았습니다. “이 기능은 꼭 들어가야해”라는 것만 넣어도 빡빡한 일정이었습니다. 한다고는 했었으니 못한거에 대해 열심히 하고서도 죄송스런 마음이 들고, 다음 번 계획 때는 이전에 못했던 부분 + 무리한 일정을 다시 세우다보니 너무 힘들어지더군요. 그래서 원래 그만하려고 했던 시기보다 계속 딜레이되고, 거기다 제 일을 넘겨받아 할 사람을 구하기 힘들다고 제가 한 부분까지만 하고 마칠거란 이야기를 듣고나서는 부가기능을 뺀 주기능은 미구현 상태로 남길 수도 없는 상황이 되어버렸으니.. 뭐.. 답답합니다.

에구.. 쓰면 쓸수록 제가 왜 이 프로젝트를 하고 있는지 모르겠네요. 지금 하는 이유는 하겠다고 약속했으니 약속한 부분까지는 마친다. 라는 마음과 동아리 선배님을 봐서 정도겠네요. 랩실 내부 사정이긴 합니다만, 선배님이 굉장히 힘들어지셨거든요. 동아리 선배님이 정말 좋은 분이고 존경하고 좋아하는 분인데, 괜히 이 일로 껄끄러워지지 않았으면 좋겠습니다.

뭐.. 그래도 어찌됐건 힘드네요.

OpenDWG 라이브러리 참고?

학교 토목과 랩의 동아리 선배의 의뢰로 프로그래밍 아르바이트를 하고 있는 중입니다.
이제 시작하는 단계인데 AutoCad 의 DWG 포멧을 읽어서 정보를 얻어달라고 하시네요.
저는 CAD 프로그램은 전혀, 하나도 다룰 줄 모릅니다;
선배님의 친구분이 그 비슷한 업무를 하셨다고 하시는데 소스포지의 자료를 참고해서 하셨다고 전해들으셨답니다. 전화상으로 거기 있는 것을 참고하면 별로 어렵지 않을 것이라고 하시더군요.

제가 지금까지 소스포지에서 찾아본 것으로는 OpenDWG 라는 DWG 포멧을 다루는 라이브러리를 사용한 프로그램이 있더군요. OpenDWG 사이트를 가보니 크게 네 종류의 멤버로 구분하고 있고 Associate member를 제외한 나머지는 비용을 내야 하는 것으로 되어 있네요.

일단 Associate member로 신청해놓았습니다만 양식을 채워서 다시 보내야할지 말아야 할지 고민이 됩니다.(다운로드 할 수 있는 양식을 채워 이메일이나 팩스로 다시 보내야만 최종 회원으로 승인됩니다.) 제가 하는 것은 아르바이트이지만 랩 내에서만 쓰이는 프로그램 같지는 않고 어느 곳의 프로그램을 제작해주는 형식이지 않을까 하는데 그렇게 되면 라이센스 문제를 피할 수 없겠죠.(Associate member는 educational이나 free형식의 사용만 가능한 것으로 이해했습니다.)

또 다른 고민으로는 과연 오픈소스 프로그램을 “참고”하는 것을 어떻게 보아야 하는 건가 하는 겁니다.(OpenDWG가 오픈소스이냐 아니냐는 일단 차치해두고라도 말이죠) 오픈소스 프로그램 코드 전체 혹은 일부를 Copy & Paste 한다면 당연히 프로그램의 라이센스에 따라야겠죠. 그렇다면 소스를 보고 이해한 후 다시 작성한다면 어떤걸까요? 소스 코드를 보고 재작성한다 하더라도 역시 머리속에서 루틴을 Copy & Paste 하는 것이나 마찬가지 아닐까요? 그렇다면 소스코드를 보는 것 만으로 라이센스에 따라야 할까요? “참고”라는 애매한 단어를 어떻게 보아야 할까요? 국내 많은 업체들이 괜찮은 오픈소스 프로젝트를 따와서 자신들의 프로그램을 만들고 상용으로 판매하고 있다고 합니다.(언젠가 MS의 DevDays에 갔다가 들은 이야기) 이 업체들은 라이센스 문제를 어떻게 이해하고 적용한 걸까요?(자신들의 소스코드를 공개하지 않으니 누가 뭐라든 증거가 없다는 식일지도..) 단지 “참고용”이었을 뿐일까요?

일단 선배형의 친구분이 어떤 프로젝트를 참고하셨는지는 아직 확실치 않습니다만, OpenDWG를 사용하셨을 확률이 높을 것 같습니다. 만약 OpenDWG를 사용해서 하자고 하시면 일단 안된다고 해야겠죠.(프로젝트 성격이 다르다면 모르겠지만요) 이리저리 찾아본 결과 DXF 파일 포멧은 공개 포멧인 것 같으니 제작방향은 일단 그 쪽으로 설정하고 이야기해 보아야겠습니다.