Clojure로 뭔가를 만들어보겠다고 덤비면서 공부하는 내용들을 정리해보려고 한다. 누군가에게는 도움이 될지도 모르니까. 적어도 내게는 도움이 될거다.
최근에는 페이스북, 구글+, 트위터 등의 SNS와 미디엄, 브런치, 텀블러 등의 좀더 단순화된 블로깅 서비스들이 많아서 블로그는 한물 간것 같지만, 그래도 뭔가를 정리해보려면 블로그가 제일 만만한 것 같다.
----
새로운 언어로 뭔가를 해보자고 덤비면 좀 막막하다.
Clojure와의 첫만남을 살펴보면... 한참 Ruby, Erlang 등이 유행처럼 알려지고 책들도 한두권씩 나오던 그때 번역서를 하나 보다 만 것이 첫 만남이었다. 아마도 2010년 전후?... SICP라는 책을 공부하겠다고 덤비면서 Scheme(나중에 Racket)을 알게 되었고, Clojure는 Scheme의 JVM 버전 정도인가? 하는 느낌만 남아 있었다.
하지만 Rich Hickey (Clojure를 만든 아저씨)의 발표는 재미있어서 Clojure는 공부 안하면서 이 아저씩의 발표는 줄곧 봐 왔었다. 그 중에는 도저히 무슨 얘기인지 알아먹기 힘든 이야기들도 많았지만 Clojure에 대한 이야기는 그런데로 알아들을만 했다. Clojure 만의 설계 철학이랄까, 아니면 Lisp하는 사람들의 우쭐거림(?)이 뭔가 있어 보이기도 했고 말이지. (특히 매크로! 멋있지 않나?)
그러다가 ClojureScript 개발자인 David Nolen 도 레이더에 잡혀서 이 아저씨의 동영상도 많이 봤다. 자기가 어떻게 공부했는지, 공부하는데 그치지 않고 그것들을 어떻게 실제로 구현해보고 실험해봤는지, 그 결과가 어떻게 Core.async 혹은 Core.match 등에 녹아들었는지 등의 발표들은 보는 것만으로 즐거웠다. 아마, ClojureScript 발표는 JS컨퍼런스 어딘가의 발표에서 본것이었을거고, 원래 Clojure에 막연히 가져왔던 로망과 맞물려서 굉장히 맘에 들었던 모양이다.
SICP만 보고나서 Clojure를 접했던 처음과, 그동안 동영상도 많이 보고 Haskell/Scala 등으로 함수형 프로그래밍도 어느정도 익히고 나서 보는 지금은 분명 다른 느낌일거라 기대한다.
(이미 2~3주 작업을 해 오면서 '많이 다름'을 절실히 느끼고 있다. -.-;;)
---
이제 정말 '시작하기'를 어떻게 했나 돌아보자.
새로운 언어를 시작할 때마다 대개 비슷한데, 난 먼저 초간단 책(이미 책이 나와있다면..)을 하나 스르륵 훑어보는 것으로 시작한다. Clojure의 경우엔 비교적 최근에 나온 Living Clojure 라는 책을 골라서 말그대로 초스피드 대충대충 훑어봤다. 뭐 직접 짜보려 덤비면 기초적인 함수 하나도 몰라서 일일이 구글링 해야 하는 수준이지만, 그래도 뭐가 있구나를 빨리 파악해둬야 하니까..
그런 다음으로 고른 책은 Reactive Clojure Programming 이란 제목이다. 이건 최근에 Rx에 관심이 많았던 것이 반영된 결과다. Rx를 이용하여 Asynchronous/Event-based programming을 어떻게 하나 보여주고, 이걸 다시 Core.async로 어떻게 하는지 비교하여 보여준다. 이 책을 읽으면서는 Clojure 코드가 어떤식으로 만들어지는지, 혹은 다른 라이브러리를 가져다 쓸때 어떤 식이 되는지에 포커스를 두었다.
(팀 계정으로 safaribooksonline을 이용할 수 있으니 얼마나 다행인가!)
1, 2주 정도 지나면서 그나마 기본적인 lein 명령어나 프로젝트 구성, 프로그램 구성이 눈에 들어오고, 코드도 (구글링의 도움을 받아) 읽을 수 있게 되면서 Korean Clojure User Group (구글 그룹스)에 기웃거리기 시작했다. Korean Lisper에서 분리되어 2015년 생겨난 그룹인데, 눈팅만 해오다 관심가는 글에 답글도 달기 시작했다. 사람들이 Clojure로 뭘 하는지, 뭘 어려워 하는지 등을 아는 것도 도움이 되니까!
지난주부터 시작한 것은 Clojure 팟캐스트 듣기! 물론 Clojure 관련 동영상 시청은 줄곧 하고 있는데, 팟캐스트도 듣기 시작했다. 걸으면서 동영상 보다보니 나중에 눈이 초점도 잘 안맞고 간혹 스크린캐스트의 글자들이 너무 작아서 넥서스6 풀스크린으로 봐도 잘 안보이는 등의 문제도 있어서 팟캐스트도 도전하기로 한 것. Clojure 뒤에 있는 Cognitect라는 곳에서 팟캐스트를 하고 있길래 그거 하나 듣고, 또 오늘은 MostlyLazy라는 팟캐스트를 하나 들었다. 역시 발표나 스크린캐스트에 비해서 초대손님 불러다가 자기네들끼리 떠들고 하는 팟캐스트는 영어의 장벽이 더 느껴졌다. ㅠ.ㅠ
그리고 마지막으로... 이렇게 블로깅까지 시작하게 된 것!
시작!
최근에는 페이스북, 구글+, 트위터 등의 SNS와 미디엄, 브런치, 텀블러 등의 좀더 단순화된 블로깅 서비스들이 많아서 블로그는 한물 간것 같지만, 그래도 뭔가를 정리해보려면 블로그가 제일 만만한 것 같다.
----
새로운 언어로 뭔가를 해보자고 덤비면 좀 막막하다.
Clojure와의 첫만남을 살펴보면... 한참 Ruby, Erlang 등이 유행처럼 알려지고 책들도 한두권씩 나오던 그때 번역서를 하나 보다 만 것이 첫 만남이었다. 아마도 2010년 전후?... SICP라는 책을 공부하겠다고 덤비면서 Scheme(나중에 Racket)을 알게 되었고, Clojure는 Scheme의 JVM 버전 정도인가? 하는 느낌만 남아 있었다.
하지만 Rich Hickey (Clojure를 만든 아저씨)의 발표는 재미있어서 Clojure는 공부 안하면서 이 아저씩의 발표는 줄곧 봐 왔었다. 그 중에는 도저히 무슨 얘기인지 알아먹기 힘든 이야기들도 많았지만 Clojure에 대한 이야기는 그런데로 알아들을만 했다. Clojure 만의 설계 철학이랄까, 아니면 Lisp하는 사람들의 우쭐거림(?)이 뭔가 있어 보이기도 했고 말이지. (특히 매크로! 멋있지 않나?)
그러다가 ClojureScript 개발자인 David Nolen 도 레이더에 잡혀서 이 아저씨의 동영상도 많이 봤다. 자기가 어떻게 공부했는지, 공부하는데 그치지 않고 그것들을 어떻게 실제로 구현해보고 실험해봤는지, 그 결과가 어떻게 Core.async 혹은 Core.match 등에 녹아들었는지 등의 발표들은 보는 것만으로 즐거웠다. 아마, ClojureScript 발표는 JS컨퍼런스 어딘가의 발표에서 본것이었을거고, 원래 Clojure에 막연히 가져왔던 로망과 맞물려서 굉장히 맘에 들었던 모양이다.
SICP만 보고나서 Clojure를 접했던 처음과, 그동안 동영상도 많이 보고 Haskell/Scala 등으로 함수형 프로그래밍도 어느정도 익히고 나서 보는 지금은 분명 다른 느낌일거라 기대한다.
(이미 2~3주 작업을 해 오면서 '많이 다름'을 절실히 느끼고 있다. -.-;;)
---
이제 정말 '시작하기'를 어떻게 했나 돌아보자.
새로운 언어를 시작할 때마다 대개 비슷한데, 난 먼저 초간단 책(이미 책이 나와있다면..)을 하나 스르륵 훑어보는 것으로 시작한다. Clojure의 경우엔 비교적 최근에 나온 Living Clojure 라는 책을 골라서 말그대로 초스피드 대충대충 훑어봤다. 뭐 직접 짜보려 덤비면 기초적인 함수 하나도 몰라서 일일이 구글링 해야 하는 수준이지만, 그래도 뭐가 있구나를 빨리 파악해둬야 하니까..
그런 다음으로 고른 책은 Reactive Clojure Programming 이란 제목이다. 이건 최근에 Rx에 관심이 많았던 것이 반영된 결과다. Rx를 이용하여 Asynchronous/Event-based programming을 어떻게 하나 보여주고, 이걸 다시 Core.async로 어떻게 하는지 비교하여 보여준다. 이 책을 읽으면서는 Clojure 코드가 어떤식으로 만들어지는지, 혹은 다른 라이브러리를 가져다 쓸때 어떤 식이 되는지에 포커스를 두었다.
(팀 계정으로 safaribooksonline을 이용할 수 있으니 얼마나 다행인가!)
1, 2주 정도 지나면서 그나마 기본적인 lein 명령어나 프로젝트 구성, 프로그램 구성이 눈에 들어오고, 코드도 (구글링의 도움을 받아) 읽을 수 있게 되면서 Korean Clojure User Group (구글 그룹스)에 기웃거리기 시작했다. Korean Lisper에서 분리되어 2015년 생겨난 그룹인데, 눈팅만 해오다 관심가는 글에 답글도 달기 시작했다. 사람들이 Clojure로 뭘 하는지, 뭘 어려워 하는지 등을 아는 것도 도움이 되니까!
지난주부터 시작한 것은 Clojure 팟캐스트 듣기! 물론 Clojure 관련 동영상 시청은 줄곧 하고 있는데, 팟캐스트도 듣기 시작했다. 걸으면서 동영상 보다보니 나중에 눈이 초점도 잘 안맞고 간혹 스크린캐스트의 글자들이 너무 작아서 넥서스6 풀스크린으로 봐도 잘 안보이는 등의 문제도 있어서 팟캐스트도 도전하기로 한 것. Clojure 뒤에 있는 Cognitect라는 곳에서 팟캐스트를 하고 있길래 그거 하나 듣고, 또 오늘은 MostlyLazy라는 팟캐스트를 하나 들었다. 역시 발표나 스크린캐스트에 비해서 초대손님 불러다가 자기네들끼리 떠들고 하는 팟캐스트는 영어의 장벽이 더 느껴졌다. ㅠ.ㅠ
그리고 마지막으로... 이렇게 블로깅까지 시작하게 된 것!
시작!
댓글 없음:
댓글 쓰기