궁금하면 까봐라 – 공개된 소스로 공부하기

신기술이나 새로운 프로그램들에 대해서 여러모로 공부해 보고 싶은데 해당 자료만 봐서는 애매한 부분들이 상당히 많이 있습니다. 좀 뜬구름 잡는 듯한 소리가 적힌 이론서나 툭하면 수학으로 해결해주는 멋진 알고리즘 책들을 보면 그런 생각이 들죠. 이런 걸 보면 과연 이런 건 어떻게 구현하고 어떻게 응용하는 것인가에 대해서 생각을 하게 됩니다.

반면에 이러한 신기술들이 상당히 많이 나오고 있고, 그에 따라 오픈소스 프로젝트로도 나오고 있는 소스들이 상당히 많습니다. 요즘은 좀 위상이 죽었다고는 해도 sourceforge에도 여러모로 실험적으로 만들어지거나 제대로 만들어져서 배포되고 있는 프로그램과 소스들도 상당히 많고, 요즘은 github도 상당히 많은 양의 프로젝트를 양산해 내고 있죠. 리눅스 사용자라면 패키지 관리자를 쓰지 않고 직접 소스를 받아서 컴파일해서 쓰는 사람도 있겠지만 그렇게까지 쓰는 분들이 한국에서는 현업과 연구실에서 뵙고 그 외에는 거의 뵌 적이 없던 경험도 있는데… (제가 많이 못찾은 건지 어떤 건지..ㅇㅅㅇ;;) 실제로 개발한 사람이 가끔 좀 개판인 소스로 짜서 올리는 경우도 있습니다만 그들은 그런 거 신경 안쓰고 그냥 올립니다. (이 부분은 여러모로 대단한 겁니다.) 뭐, 이러니 저러니 해서 많은 분야에서 여러 사람들이 자신들이 만든 프로그램 소스, 라이브러리 등이 상당수 개방되어 가는 분위기가 좀 있습니다. 즉, 요즘은 기존 기술의 수정을 하던 신기술 개발을 하던 소스를 공개하는 집단은 반드시 존재합니다.

그럼 여기서 잠깐 생각을 해보죠. 지금까지 있던 기술들에 대한 이론서들이 계속 나오고, 그걸 구현한 사람들이 소스를 공개한다고요?

그럼 당연히 그 소스 보고 싶단 생각 안드나요! (나만 드나?)

실제로 남들의 소스를 보는 것도 상당한 공부가 됩니다. 정말로 잘 짜여진 코드던 개판으로 짜여진 코드던 그 사람의 구현 방법이 이런 방법이었구나라는 것을 배웠다면 그걸로도 큰 것을 배운 것이기 때문이죠. (세상에서 제일 깔끔한 소스는 운영체제 소스지만 자신있게 볼 수 있는 사람이 얼마나 될까나…/먼산) 남이 짰던 코드이기 때문에 주석이나 문서 없이 보면 상당히 머리 아픈 작업이 될 수 있겠지만 그것도 익숙해지면 빨리 볼 수 있게 되더군요. (디버거를 잘 써서 빨리 보는 사람도 있겠지만, 소스 코드의 명명 규칙이 잘 정의된 코드들은 정말 빠른 시간만에 볼 수 있습니다.) 그러면서 개발이 된 부분과 개발이 필요한 부분에 대한 것도 알아보고, 그 기술의 실제 구현 방법도 알아보고, 필요하면 라이센스 정책에 맞춰서 갖다 쓰고나서 공유해도 되고….오류 찾아서 알려줘도 되고…(?!) 뭐 여러가지 방법들이 있겠군요. ㅇㅂㅇ

음… 졸려서 잠시 딴 소리로 넘어가려던 거 같긴 한데… 소스코드 까보는 건 두려운 작업일 지도 모르겠지만, 안해보셨다면 꼭 한번 해보세요. 의외로 직접 짜보는 것과는 또 다른 경험과 공부 방법을 알려줄 겁니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.