Blog

연휴와 개발 그리고 오픈소스.

June 9, 2014

연휴와 개발 그리고 오픈소스.

어이없게도 연차까지 쓴 내 올해의 마지막 연휴는 코딩과 함께 날아갔다. 그냥 하고 싶지 않았고, 캠핑이나 차를 끌고 군산이나 통영에 가는 단꿈을 꾸었지만 그냥 로또꿈보다 못한 꿈이 되었다. 

친구들과 앱을 만드는 작업, 정확히 나는 아이폰 앱을 개발하는 역할을 담당하고 있는데 연휴에는 Cocoscontrols 에 올라오는 것들을 이용해서 여러가지 뷰를 만드는 일을 하였다. 사실 직접 만드는 부분도 있지만, 좋은 컨트롤이 있다면 굳이 안쓰는 주의는 아니다. 어떤것이 더 많은 learning curve 를 가지냐에 대해서는 측정해보지 않았다. 나는 그냥 그 방식이 편하고 다른 어떤이는 다른 방식이 편할수도 있을거고. 

3일즈음 작업을 했을때 붙였던 오픈소스 컨트롤들 사이에서 문제가 발생됨을 알수 있었다. 물론  그 중에서는 직접 제작자의 github 이슈에 등록해서 해결해 달라고 요청을 하는 경우도 있지만, 한 달전쯤에도 그렇게 등록을 해서 하나의 문제를 해결했지만, 사실상 오래 걸렸다. 왜냐하면 예전에 Netty 의 개발자이신 이희승씨가 애기했던것 처럼 그 개발자도 나름의 사정이 있기 때문에 재촉해도 해당 문제만을 먼저 해결할수는 것이다. 내가 올린 이슈에 대해서 나는 재촉하지 않았지만 같은 이슈를 가진 다른 개발자가 재촉을 하였다. 그렇지만 오픈소스 개발자는 결혼준비의 이유로 그 이슈를 고치는데 약 한달이 걸렸다. 

그래서인지 연휴에 발생한 문제는 스스로 찾아 보고 고치거나 우회하는 방식을 선택하게 되었다. cocoscontrols 에 올라오는 오픈소스들은 주로 컨트롤 관련된 것들이 많고 github의 개인 개발자들이 올려놓은 것들이 많다 보니 그 개발자의 개발의도와 내가 만드는 앱에서 사용하는 의도가 안맞을때 그런 문제들이 생긴다. 

고치는 것은 어렵지 않았지만, 중요하게 깨달은 것은 오픈소스라고 해서 그리고 fork, star의 수가 많다고 해서 꼭 완벽하다거나 내 입맛에 맞는 소스는 아니라는 점이다. 우회하는것은 쉽지만 고치는 것은 완전히 다른 문제인것 같다. 그렇다고 내가 그것을 원소스에 반영하도록 pull request를 보내는 것도 아니다.(심각한 에러는 요청을 보낸다. 여기서 고치는 것은 그런 심각한 단위가 아니다.) 그럼에도 불구하고 수정해야 하는 이유는, 오픈소스를 들여다 봐야 하는 이유는 좀더 내 입맛에 맞게 수정해야 하기 때문인것 같다. 

오픈소스를 많이 사용하는 편인데, 사용하다 보면 나는 가끔은 나는 단순히 ‘조립하는 사람(Who assembled)’ 이 되는것이 아닌가 하는 생각을 자주하게된다. 이번 경험을 통해서 좀더 자주 남의 소스를, 내가 사용하는 소스를 들여다 봐야 겠다는 생각이 들었다. A라는 기능을 위해서 B오픈소스를 사용했는데 A+ 를 만들어야 한다고 다른 C오픈소스를 찾기 보다는 B를 고쳐서 A+를 만들수 있어야 하지 않을까? 하는 생각이 든다. 

이렇게 고친것에 대한 공개여부는 사실은 전적으로 개인의 취향인것 같다. 어떤것은 땜빵식으로 내 앺에서 통하는 것도 있고, 또 어떤것은 진짜 좋아서 원소스에 반영하고 싶은것도 있을것이고, 그런것이 귀찮으면 그냥 숨겨두는 경우도 있고. 뭐가 더 좋고, 뭐가 더 나쁘고 하는 건 없는것 같다. 

남의 소스를 보면서 성장한다는 애기를 많이들 선배 개발자 분들이 하시는데 어떻게 봐야 하는지 모른다면, 사용하는 소스부터 보는게 좋을것 같다. 사실 어떤 언어를 해도 세세히 다 알기는 쉽지 않은데, 어느정도 내가 쓰는 스타일에 맞춰서 개발하다 보면 그게 좋은건지 구린건지 모르는데, 다른 사람의 소스를 보면서 조금씩 나아지는것 같다. (그렇다고 나도 많이 보는건 아니다.)

그래도. 난 여전히 연휴에 개발만 하고 밥먹고 그런건 좀 아쉽고… 분한것 같다. 윽. 캠핑가서도 코딩만 했을지도 모르겠지만 말이다. 

끝.