하스켈 학교 강의를 준비하며

지난 3월 중순에 하스켈 학교 사이트를 열고 한달 반 정도 시간이 흘렀습니다. 하스켈 소개글을 몇 차례에 걸쳐 올렸고, 한 번의 세미나와 한 번의 해커톤 행사도 열었습니다. 첫 세미나에서는 하스켈의 정수 모나드(monad) 소개를 했었고, 첫 번째 해커톤에서는 하스켈로 Scheme 인터프리터를 만들기를 진행했습니다.

하스켈은 국내에 저변이 거의 없다고 생각했는데, 다행히 생각보다 많은 분들이 관심을 가지고 참여해 주셨습니다. 하스켈 학교는 앞으로도 2주에 한 번 세미나와 해커톤을 번갈아 진행할 예정입니다. 5월 10일에 열리는 다음 세미나는 모나드 트랜스포머 발표가 예정되어 있습니다.

하지만 세미나와 해커톤 위주로 진행을 하면서 이미 하스켈을 어느 정도 할 줄 아는 분들이 아니면 참여가 어렵다는 문제점도 알게 되었습니다.  하스켈 학교는 이미 하스켈을 사용하시는 분들의 기술 교류 모임이 아니라 좀 더 많은 분들에게 하스켈을 소개하여 하스켈의 저변을 확대하는 것이 목표입니다. 그렇기 때문에 세미나와 해커톤만으로는 한계가 있다고 느꼈고 하스켈을 좀 더 체계적으로 배울 수 있는 강의가 필요하다고 판단하였습니다.

얼마 간의 고민 끝에 하스켈 강의안을 만들었습니다. 프로그래밍 입문자도 들을 수 있도록 함수, 타입, 다형성 등 기초적인 내용부터 파서 콤비네이터, 파이프, 지퍼 등 응용까지 강의 내용에 모두 포함시켰습니다. 3시간 강의 4번, 총 12시간 강의로 구성되어 있습니다. 수업을 듣고 일주일 동안 열심히 복습하지 않으면 따라오기 힘들 정도로 조금한 빡빡한 구성이지만, 문법만 훑고 마는 단순 하스켈 소개가 아닌 하스켈의 재미를 온전히 느끼기 위해서는 필요한 내용이라고 판단했습니다.

강의안을 만들고 나서 남은 고민은 강의료였습니다. 참고로 하스켈 책은 무료로 출판하는 것이 일종의 전통입니다. 강의 교재로 사용할 Learn You a Haskell for Great GoodReal World HaskellParallel and Concurrent Programming in Haskell 는 모두 인터넷에서 무료로 읽을 수 있습니다. 아마 저자들이 저작권료를 받지 않더라도 좀 더 많은 사람들이 하스켈을 배우고 사용하길 바랬기 때문일 겁니다.

하지만 이런 전통은 예상치 못한 부작용도 낳았습니다. 최근에 나온 Haskell Book은 $59 가격으로 유료로 팔고 있는데, 많은 노력을 들여서 잘 쓴 책임에도 불구하고 단순히 책이 유료라는 사실만으로 하스켈 커뮤니티의 일각에서 비난을 받았기 때문입니다. 하스켈 책은 당연히 공짜라고 생각하는 인식이 생겼기 때문일 겁니다.

책을 집필하거나 강의를 하는 일 등 지식을 가공하고 전달하는 일은 많은 노력을 필요로 합니다. 그리고 그런 노력이 지속될 수 있으려면 그에 상응하는 정당한 대가를 치러야 한다고 생각합니다. 앞으로 하스켈 강의를 하거나 하스켈 책을 내시는 분들에게 불필요한 부담을 지우고 싶지 않은 생각도 있습니다. 학원에서 진행하는 프로그래밍 입문 수업도 1-2달에 100만원을 훌쩍 넘는데, 하스켈 강의가 무료라는 건 이상하다고도 생각했습니다.

그래서 수강료를 받기로 했습니다. 하지만 돈이 아닌 시간으로 받으려고 합니다. 하스켈 강의를 들으신 분들은 강의 시간만큼 저한테 시간을 지불하시는 것이 제가 원하는 수강료입니다. 개발자들의 시간은 소중합니다. 프로그램을 작성하여 많은 것들을 변화시킬 수 있기 때문입니다. 저는 이렇게 모은 개발자분들의 시간을 이용하여 사회적으로 혹은 기술적으로는 유용한 프로그램을 오픈소스로 같이 개발하고자 합니다.

세상에 공짜는 없습니다. 하스켈을 배우고 조금이라도 더 좋은 개발자가 되셨다면 그만큼 사회에 다시 돌려주시기 바랍니다. 작게는 동료 개발자들이 편하게 사용할 수 있는 툴을 만드는 일부터, 크게는 사회가 겪고 있는 여러 문제를 해결하고 더 나은 사회를 만드는 솔루션까지 개발자들이 할 수 있는 일은 무척 많다고 생각합니다. 20세기는 시인이 사회를 바꿨다면, 21세기는 프로그래머가 사회를 바꿀 것입니다.

한 줄 광고: 하스켈 학교 강의를 진행할 강의실을 찾고 있습니다. 50명 규모의 강의 장소 제공(접근성을 위해 강남 혹은 판교)이 가능하신 곳이 있으면 kwangyul.seo@gmail.com으로 연락 주시기 바랍니다.  (강의실은 구했습니다. 감사합니다!)