SICP는 Structure and Interpretation of Computer Programs 의 약자다. 마법사 책(wizard book)으로도 알려져 있으며, 한때(지금도?) MIT에서 1학년들에게 가르쳤다고 한다. 해커를 동경하거나, 이미 해커이거나, 해커가 되어가고 있는 사람들이라면 LISP의 한 방언인 Scheme의 존재는 알고 있을테고, scheme을 언급할 때 함께 튀어나올 수 밖에 없는 책으로 해커 문화와 뗄 수 없을 것 같... 다고 마음대로 생각한다.
유명세에 비해서 완독한 사람은 생각보다 많지 않은데, 책의 난이도가 - 혹은 읽는데 드는 잉여력이 - 꽤 높기 때문이다. 프로그래밍 스킬과는 별도로 체계적이고 논리적인 사고, 적절한 추상화 능력, 2차 이상의 Higher order 를 상상할 수 있는 능력 그리고 어느 정도의 하드웨어 지식을 요구한다. 거꾸로, 이 책에서 주려는 것이 저런 능력이기 때문에 잉여력만 충분하면 읽으며 깨달아가도 된다. 이런 경우까지 고려하여 이 책을 읽기 위한 최소한의 요구사항은 끈기와 Scheme 코드를 돌려볼 수 있는 환경이다.
책은 총 5개의 챕터로 구성되어 있으며, 각각
1. Building abstractions with procedures
2. Building abstractions with data
3. Modularity, Objects and State
4. Metalinguistic abstraction
5. Computing with register machines
이런 제목을 가지고 있다. 각 챕터에 대한 간략한 소개를 하자면,
1장:
스킴의 기본적인 문법부터 시작한다. 프로시져-그러니까, 그냥 함수라고 하자-를 만들고 사용하는 연습을 주로 한다. 만들어진 프로시져 여러개를 조합해서 Compound procedure 를 만들면서 Building block을 쌓는게 이런거구나 느껴보게 된다. 그리고 장 말미에 Procedure 를 만드는 Procedure 를 만드는 Procedure ... 같은 Higher order procedure 의 맛을 좀 보게 된다.
2장:
1장의 연결이라는 느낌이다. 1장에서 다룬 프로시져 사이를 넘나드는 "데이터"를 조명한다. 그리고, 프로시져와 데이터를 엮어 인터페이스의 생성 - 즉 추상화 배리어가 어떤 의미를 가지는지에 대해서 구구절절 설명하고 실습하게 된다. 그리고 Data-directed programming 이라는 짓을 하게 되는데, 이 부분은 Object-oriented 쪽의 정수와 맞닿아 있다. 거의 타입 시스템과 Message-passing 시스템을 직접 구현해 올리게 되는 (꽤) 놀라운 체험을 하게 된다.
3장:
1, 2장까지의 Scheme 은 순수한 함수형 언어였다. 모든 프로시저는 referential transparency 를 가지고 있었다. 여기부턴 안그렇다. 시간에 따라 변화하는 상태가 등장하기 시작하며 머리가 조금 아파지기 시작한다. 기초적인 concurrency 에 대한 개념, 따라오는 문제, 이런 문제를 다루는 방법 등에 대해 맛을 볼 수 있다. (미친듯한 회로 시뮬레이션-_-) 그리고 3장 마지막에 나오는 stream - 사실 3장의 핵심은 이거다. Stream이 무엇인가? 어떻게 동작하는가? 에 대한 설명을 하며 다음 장에 본격적으로 등장할 Lazy evaluation 을 준비시킨다.
4장:
책의 주제가 슬슬 드러나기(난이도가 급상승하기) 시작하는 곳이다. 책 표지에 왜 Apply-Eval 이 있을까? 에 대한 답이 시작된다. 우리는 스킴으로 스킴 코드를 실행시키는 인터프리터를 만들게 된다. 그 와중에 깨알같은 최적화들이 나오게 되고, 일반적인 인터프리터나 컴파일러가 이런 짓을 하겠구나 - 싶은 영감을 좀 얻을 수도 있다. 특히, Evaluator 를 만들고 여기에 Lazy-evaluation 을 적용시키는 작업을 직접 해보면, 꽤 많은 걸 느껴볼 수 있게 된다. 앞에서 주구장창 이야기했던 추상화의 소중함이랄까 ... 그리고, 뒤쪽 두 개의 소챕터는 amb로 설명되는 nondeterministic computing과, logic programming이 어떻게 구현될 수 있는지 맛보기를 보여준다. (STREAM!) 텍스트가 아이디어->구체화->코드, 의 과정을 설명하고 있는데 읽고 나면 간단해 보이지만, 책을 덮고 직접 그 길을 따라가 보면 이 책을 쓴 사람들이 얼마나 미친 내공의 소유자들인지 깨닫게 된다. ...
5장:
4장에서 우리는 소프트웨어 세상의 끝을 보았다. 4장에서 코드를 실행시키는 코드를(Metacircular) 만들었으니까... 이제 한 단계 아래로 내려간다. Higher order이기 때문에 주의해서 읽어야 한다. 우리는 일반적인 가상의 기계어를 정의한 후에, 이 기계어를 시뮬레이션 하는 스킴 코드를 만들고, 이 기계어로 스킴 실행기를 만들어서, 기계어로 만들어진 스킴 실행기에 스킴 코드를 넣어 실행하는 시뮬레이션을 한다. 그리고 나서, 이번엔 실행기가 아니라 스킴 코드를 우리가 정의한 기계어로 컴파일하는 컴파일러를 만든다. 인터프리터와 컴파일러가 어떻게 다른지, 컴파일러가 만든 코드가 인터프리터에 비해 어떤 최적화를 더 할 수 있어서 빠른건지를 이해할 수 있게 된다. 연습문제들이 앞 3, 4 장에서 만들었던 유틸리티 코드를 많이 재사용하기 때문에 앞 장을 대강 읽었거나 문제를 하나도 안풀고 그냥 넘어왔다면 5장에서 능욕당하게 된다.
텍스트와 함께 많은 수의 연습문제들이 배치되어 있는데, 이 책을 제대로 읽은 사람들이 하나같이 "연습문제를 풀어보지 않으면 읽었다고 말할 수 없다"고 이야기한다는 점에 주목할 필요가 있다. 위에서 말한 완독이라는 표현은, 연습문제를 풀어보았다 - 라고 말할 정도를 뜻한다. 참고로 나는 모든 문제를 풀어본 상태는 아니고, 모든 문제에 대해 풀이를 시도해본 정도이다. 몇몇 난이도가 미친듯한(혹은 잉여력 스카우터를 폭발시킬듯한) 문제를 제외하고는 대부분 풀긴 했다. ... 사실 연습문제를 풀지 않으면, 끝까지 읽는게 불가능할지도 모르겠다. 이런 부분이 많지는 않지만, 앞쪽 연습문제에서 다룬 내용을 뒤쪽 텍스트에서 당연하다는 듯이 사용하고 있으니까.
나같은 경우에는, 연습문제를 풀면서 많이 배웠다. 진짜로, 많이. 원래 훌륭한 사람이라면 나만큼 많이 배울게 없을수도 있긴 하다. 어쨌거나 텍스트만 읽을 때 보다 연습문제까지 풀었을 때에 얻을 수 있는게 훠어어얼씬 많다는 것은 확실하다.
이 책을 읽을, 연습문제를 풀 사람들에게 줄 만한 조언은,
1. 1장, 2장은 뒤쪽을 위한 몸풀기다. 여기서 어려움을 느끼면 곤란하기 때문에, 책을 읽으며 순서대로 문제를 풀려는 생각은 버리고 책을 빠르게 여러번 읽으며 내용을 씹어먹으며 연습문제를 푸는게 좋을 것 같다.
2. 3장부터는 바로 실행해보기 귀찮거나 어려운 녀석들이 등장한다. 특히 stream 관련해서 텍스트에 있는 내용이나 연습문제를 돌려보기가 까다로운 경우가 있다. 일단, 스트림 관련 코드가 나오면 sicp 홈페이지에서 코드를 구하던가 아니면 문제는 스킵하고 텍스트에 있는 코드를 먼저 입력해서 "실행해볼 수 있는" 환경을 만든 후에 문제를 푸는게 좋다. 실행 환경을 먼저 만드는 것은, 이 후 책 끝까지 언제나 중요하다.
3. 일단 풀어보거나, 혹은 구체적인 접근 방법을 떠올리기 전에 다른 사람의 풀이를 보지 않는다.
4. 삽질 기록을 어딘가(연습장이나 위키, 그 외 어디라도) 정리해 가기를 강추. 코드도 함께 남기면 나중에 앞 장의 코드나 풀이 기록이 필요할 때(4장부터는 앞쪽을 다시 읽어보게 되는 경우가 많다) 큰 도움이 된다. 나중에 앞을 다시 봤는데 기억이 안나고 기록도 없으면 책을 다시 읽고, 연습문제를 다시 풀어야 할지도 모른다.
5. 직접 만들어도 되고 있는 것을 써도 되는데, 테스트 코드 작성을 추천. 1, 2, 3장까지는 특히나 엄청나게 매우매우 유용하다. 나는 컴키드님 자작 테스트 툴을 썼는데 큰 도움이 되었다. 4장 이후로는 테스트가 곤란한 것들이 많아서 유명무실 ...
6. Pencil & Paper 를 항상 가까이에.
특히 실행 환경 구성이 꽤 시간을 많이 잡아먹고, 우리를 지치게 하는 부분이다. SICP와 함께 자주 거론되는 책으로 HTDP(How To Design Programs)가 있는데, 이 책 저자들은 SICP를 타산지석 삼아서 - 실제로 SICP의 악명으로부터 HTDP가 나왔다고도 한다 - HTDP에서는 테스트해볼 수 있는 환경 구축에 신경을 매우 많이 썼다. 심지어 SICP 연습문제 풀이에도 MIT Scheme 보다 Dr.Racket(PLT Scheme) 이 더 나을 정도.
SICP를 씹어먹고 나면 CS, 혹은 프로그래밍 세계에서 자주 나오는 여러가지 개념들에 대해 보다 깊은 이해를 할 수 있게 된다. 왜냐, 거의 대부분의 주제를 (기초적인 수준이지만) from scratch 로 삽을 떠 보기 때문에 ...
몇 년째 SICP를 읽고 문제를 풀고 있다고 하면 재귀나, 고차함수 같은거 실제 필드에서는 쓸일 없는데 알아서 뭐하냐, 라는 태클이 간간히 들어오기도 했다. 여기에 대해 답을 하자면 재귀, 고차함수 이런게 실제로 프로덕션 코드에 쓰이는 일이 있는지 없는지 나야 잘 모르지만, 그게 중요한 게 아니다. 중요한 것은 생각의 도구/단위를 얻는 것이다. GOF 디자인 패턴 책에 설명된 패턴 중 상당수가, 함수가 1차 객체인 많은 언어들에서는 큰 의미가 없어진다. 언어의 패러다임을 이해하고 적절한 개념을 갖추고 있는 일반적인 개발자에게는 너무 당연한 스킬이라서. 자바에서 몇백 라인에 걸쳐 십수개의 클래스를 정의해가며 구현한 패턴들이 파이썬이나 루비, 루아 혹은 스킴에서는 단 몇 줄로(가끔은 One-liner)해결되는 경우가 꽤나 많다.
적절한 개념을 탑재하고 있으면, 적절한 개념이 지원되는 언어로 적절한 코드를 만들 수 있다. 그 개념이 자연스럽게 지원되지 않는 언어라면, 그 개념을 흉내내는 바탕을 깔(배운 용어를 써보자면, 추상화 단계를 만들) 수 있다. 이런 삽질들이 모여서 새 언어가 만들어지고, 기존 언어의 스펙이 확장되고, 여러가지 프레임웍들이 생겨나는 것이다.
문법을 알고 있는 아무 언어나 골라서, 이 언어로 쓰여진 규모 있는 오픈 소스 프로젝트의 저장소를 하나 받아와보자. 언어의 문법을 알고 있는 사람이라면 누구나 이 코드를 읽을 수 있다. 하지만 언어의 문법을 알아도 1년동안 이 프로젝트의 코드베이스를 이해하지 못하는 사람이 있는 반면, 몇 시간이면 대강의 구조를 파악하고 재미삼아 코드 수정까지 하는 사람이 있다. 코드 한 줄 한 줄이 모여 만들어내는 보다 큰 논리단위의 구성을 읽는 능력의 차이인데, 다른 말로 일반적으로 쓰이는 추상화 블럭들을 읽어내는 능력이다. 한 권의 책 치고, SICP가 커버하는 프로그래밍의 핵심 블럭들은 굉장히 넓은 범위에 분포되어 있으며, 아마 자주 쓰이는 대부분의 개념에 대해 맛을 볼 수 있으리라 생각한다.
SICP를 읽으면 뭘 할 수 있게 되요? 혹은 어떤 내공이 쌓여요? 라고 묻는다면, 간단하게 이렇게 대답하련다. 코드 말고 프로젝트 단위의 읽고 쓰기를 위한 내공을 조금 얻을 수 있다고. 물론, 이 책 말고 다른 곳에서도 얻을 수 있다. 얻어야 하는 것이 무엇이건 간에 도달하는 방법은 여러가지일 수 있다는게 이 책의 중요 포인트 아니던가.
확실히 SICP보다는 좀 더 상냥한 책이다. SICP를 읽으며 항상 아쉬웠던 부분인 "코드를 실행해 볼 수가 없어!" 라는 포인트를 정확하게 짚어내어 공략했다. 언어에 따라가는 Dr. Racket 이라는 개발 환경에서 Teach-pack 이라는 개념으로 대부분의 예제/문제 코드를 GUI 까지 있는 상황에서 실행해볼 수 있다. 그리고 다루는 주제들이 SICP보다 훨씬 평이하다. SICP에서 Newton method, Fixed-point 이런걸 보며 떡실신한 사람이 꽤 있는데(그 중 1인), 여기서는 비슷한 곳에서(책의 백분위 위치로 볼때) 숫자 맞추기 게임 정도의 예를 사용한다.
당연하다면 당연한데, 단점으로는 too verbose, too slow 라는 느낌. 열심히 공부해야지! 하며 불타오르지 않는... 다지만, 그건 SICP 를 몇년째 계속 보고 있어서 그렇게 느껴지는걸지도 모르겠다. ㅠㅠ
밀당같은거 하지 말고 입문자를 확실히 잡기 위해서라면 HTDP 를 먼저 읽게 하는게 나을 것 같다는 생각이 든다.
뭐랄까, 경시대회나 올림피아드를 준비하고 싶어? 그럼 SICP를 보렴. 내신/수능 성적을 위한거라면 HTDP 를 보렴. 이런 느낌이랄까? 절반 이상 읽고 나면 SICP 와 다시 한번 비교하는 글을 써 봐야지.
이제 4년차다. 슈레인은 뭐 그리 느리냐고 줄창 까대지만, 흔들리지 않고 꿋꿋하고 느긋하고 여유있게 나가고 있다. 본래 우리 스터디의 수장이신 지아님의 뜻이 널럴하고 오래가는 스터디 아니었던가!
대강 훑어서 읽은 걸로는 수십번을 읽었고, 문제를 풀면서 뒤적뒤적, 앞에 했던거 기억이 안나서 돌아가 다시보기, 뒤에 나오는걸 미리 가져다 쓴다고 하면 뒤에 가서 보고 오기 ...
이제 5.1장을 막 덮었다. 괄호 범벅인 코드로 어셈코드와 이걸 해석하는 어셈블러, 레지스터 머신을 만들고 있으니 기분이 묘해진다.
여기까지 모든 문제를 다 푼 건 아니다. 내맘대로 스킵한 것도 있고, 풀고 정리하지 않은 것도 있긴 하지만 - 적어도 모든 문제를 다 읽었다고는 말할 수 있다. 풀지 못했거나, 잘못된 풀이를 내놓았더라도 문제가 무엇을 물어보는지, 무엇을 알아야 풀 수 있는지, 내가 어떤 시도를 했었는지에 대해서는 말할 수 있다는 정도?
아무래도 여름 즈음에는 일단 끝까지 다 볼 것 같다. (이후엔 HTDP를 좀 볼까 ... 생각중)
그러니 이제 슬슬 회고: 이 책이 나를 어떻게 바꿨는지, 내가 SICP를 읽으면서 어떤 성장을 했는지, 혹은 문제를 푸나 안푸나 별 차이 없었을지 - 에 대해서 정리 준비를 해야 하는데, 잘 모르겠다. 으앍 ㅋ 가장 크게 느껴지는건 꾸준히 공부하는 습관을 들인거, 스터디 멤버(대표적으로 지아대장님을 비롯한 컴키드님, 지송님, 솔리드원님, 야라님, 그리고 스쳐지나가셨던 모든 분들 + 옆 스터디(응?) 멤버들 ㅋㅋㅋ)들과 친해진 거 두가지인데, 사실 얘네들은 SICP와는 직접적인 관계가 없으니까 빼고 ... ... ...
분명 내가 몇년이나 질질 끌면서 이 책을 읽고 문제를 깨작거린 이유가 있을텐데, 이걸 깔끔하게 정리해야 한다. 그래야 다른 사람한테 추천할 수 있겠지?
지난 일요일, 친구 Y와 송년 모임 겸 내년 스터디(?) 계획을 위해 수원에서 티타임을 가졌다. 수원역 어딘가(...)에서 커피를 한잔 했고, 그 전에 북스리브로(그러니까, 서점)에서 책 구경을 잠시 했다. Y가 책을 보는 동안, 나는 뭐 재밌는거 없나 - 하는 기분으로 평소 내가 읽고 싶었던 책들이 있는 곳에 가서 책 구경을 했다.
일리움, 푸코의 진자, 해저 2만리, 은하수를 여행하는 히치하이커를 위한 안내서, 전날의 섬, 걸리버 여행기, 이상한 나라의 앨리스 - 이런 책들이 어딘가에 있었고 ... 그 와중에 ...
전도서에 바치는 장미
가 있었다. 이 책은 ... 로저 젤라즈니의 중/단편의 모음이며, "전도서에 바치는 장미" 라는 타이틀은, 수록 작품 중 말도 안되는(과학 소설이라기엔...) SF(Super Fantasy?) 중편의 제목이다.
... 그리고 디군이,
산다
친구에게 준다
산다
친구에게 준다
산다
친구에게 준다
...
이런 반복을 꽤나 많이 했던 책이기도 하다. 그리고 어느 순간부터 양장본(그러니까 - 하드커버)이 없어져서 나를 슬픔에 빠뜨린 책이기도 하고. 최소한 다섯권 이상은 샀던 것 같다. ... 가물가물해서 기억이 잘 안나지만. 잘 뒤져보면 군대에 있던 시절 영문 텍스트를 구해서 중/단편 몇개를 통째로 프린트해둔 철도 집 어딘가에 있을듯(화이올리를 사랑한 남자/The man who loved faioli, 는 거의 외울정도). 이랬던 그녀(그책?)가!
나름 하드커버로 이쁜 표지를 가지고 책장에 떠억하니 꽂혀있는거다. 우왕~ 그래서, 아마 누군가에게 다시 줘 버릴지도 모르겠지만, 한권 또 사버렸다. 그리고 집에 오는 길에, 전철에 앉아 수록된 첫번째 소설(중편인가 단편인가...) "12월의 열쇠" 를 다시 읽었다.
좋아하는 음악을 몇달 내내 틀어놓고 사는 느낌이 이런걸까. 로저 젤라즈니의 글들은, 장편과 중/단/장(손바닥!)편들이 문체/정서가 매우 다른데 - 나는 그렇게 생각 -, 나는 이런 짧은 글들에서 뿜어져 나오는 젤라즈니님의 감수성이 좋다.
안드로이드 어플리케이션은 각 리눅스 프로세스 하나+JVM 을 가지고 그 위에 올라간다. 어플리케이션이라고 해도 그저 프로세스일 뿐이다. 사용자가 느끼는 어플리케이션과는 단위가 약간 다르다. 앞으로는 안드로이드 어플리케이션은 그냥 컴포넌트라고 부르기로 하자. 컴포넌트는 4가지 종류가 있는데,
얘네들이다. Activity는 화면을 가진 페이지 하나-정도의 개념이고, Service는 화면 없이 돌아가는 프로세스이다. 예를 들어 간단한 게임을 만든다고 할 때, 게임 플레이가 진행되는 화면이 하나의 Activity, 열심히 배경음악을 연주하는 보이지 않는 프로세스가 Service. 이렇게 하나의 어플리케이션은 여러개의 컴포넌트로 구성된다.
Broadcast receiver는 시스템 이벤트, notification 등을 받는 녀석. Content provider는 내장 SQLite 에 접근하기 위한 녀석이다. 실제 테스트/연습용 프로그램들에서는 Activity, Service 두개를 자세히 보면서 시작하면 될 듯.
Intent는 컴포넌트들 사이를 오가며 정보를 전달하는 일종의 사자(Messenger) 이다.
사용자가 느끼는 어플리케이션 단위는, 여러개의 Activity가 Stack 으로 구성된 TASK 라고 볼 수 있다. Task 는 4가지 종류가 있는데,
Standard, SingleTop, SingleInstance, SingleTask
이런 아이들이 있다. 별도로 지정하지 않으면 Standard. 각 태스크 타입마다 태스크의 Activity가 들어가고 나오는 동작이 조금씩 다르자. 자세한건 문서 참조.
-----
회고: 좋았던거, 안좋았던거, 다음에 할거
D: 코드를 보면서 문서를 읽어서 좋았다. 와~ 코드를 써가면서 문서를 읽으면 좋을텐데 ... 오늘 읽은걸 다 돌려보셍
Y: 생각보다 영어공부를 많이했다. 우 ~ 클래스 실체를 확인을 못한게 아쉽. Overview를 보고 백그라운드 음악을 돌려보고싶음.
오랜만에, 정말 오랜만에 코딩도장 모임에 다녀왔습니다. 오늘은 책 소개도, 코딩 모임도 아닌 회고 모임이었는데요... 사실 애자일 회고를 제대로 읽어본 적이 없는데,
애자일 회고를 읽어오시면 좋습니다
라는 공지글을 보고, 사람들이 책을 읽고 올테니 가서 쪽쪽 빨아먹자! 라는 생각을 번뜩 하고는 후다닥 참석한다고 손을 들었습니다. ... 네, 네, 제가 원래 이렇게 삽니다. 흐흐흐흐 ~
모임에는 열명 내외의 분들이 참석해 주셨습니다. (열 한...명?) 전에 봤던 분도, 첨 보는 분도 섞여 있었네요. 기억력이 나빠서 담에 볼때 기억 할 수 있을런지... 약 30분 정도의 뜸들이기 시간을 가진 후에 코딩도장 관장, 아샬님이 고고싱 하셨습니다.
- 회고 준비: 각자 소개, 느낌, 왜 나왔는지에 대한 이야기
- 자료 수집: 모임(or 모임 밖이어도...)에서 있었던 일들, 느낀것 정리
- 통찰: 수집된 자료를 정리, 분류. 5-Whys - 다섯 단계의 "왜?" 라는 물음을 통해 근원으로의 여행을 ...
- 무엇을: 전 단계에서 얻은 "이유"에 대해서, 해법/대응을 서로에게 묻고 답함
- 마무리: 누군가에게 감사, 궁금한거 하나, 무엇을 실천할까 골라골라 ~
정도의 순서로 진행이 되었습니다. 주사위의 등장이라던가, 5-Whys 의 시도 같은 것은 왠지 임팩트가 있었습니다. 앞으로도 한동안 계속 떠오를 듯. 하지만, 시간의 부족으로 보다 심도있는 대화를 나누지 못한 것은 좀 아쉬웠습니다. 더욱이 시간의 부족이 모임을 예정보다 늦게 시작하게 되어서 - 의 영향도 있기 때문에 좀 더 아쉽네요. - 제가 마지막에 던진 궁금한거? 에 대한 대답은 왜 항상 늦게 시작할까? 였습니다. ;-)
개인적으로 나왔던 실천강령(???) 중 마음에 들었던 것, 혹은 그럴싸한데? 라고 생각했던 것은,
역시 대장이신 지아님과 컴키드님, GSong님, 솔리드원님, 꼬니님, 그리고 저 D군 이렇게 여섯명이 모였습니다. 지아님, 컴키드님과는 좀 일찍 만나서 점심을 같이 먹었고, 다른 분들은 토즈로 바로 오셨네요. 사보텐이 좀 비쌌습니다. ... 만 카드깡 와중에 500원 정도의 수익을 냈습니다. 꺄핫 >_< ... (하지만 나중에 ...)
그리고 2시부터 토즈에서 모임이 시작되었습니다.
체크인, 월간회고 따위는 패쓰. 오늘의 하이라이트는 컴키드님의 "유닛테스트, 하지 않겠는가?" 라는 발표였습니다. 컴키드님 Presentation 에 소질이 좀 있으신듯. 내용도 내용이지만, PPT 한장 한장이 참 인상깊었습니다. ;-) 발표자료는 여기에 있습니다.
그리고 발표 와중에 나왔던 TDD, Unit test등에 대한 쌓였던 이야기들이 참 흥미로웠습니다. 사실 저도 TDD로 일컬어지는 이야기들에 대한 거부감이 없는건 아니었는데 ... =_= 이번 기회를 통해서, 내가 무얼 모르는 것인지를 알 수 있었습니다. 유익한 시간이었어요.
좀 아쉬웠던건, 이렇게 떠들만한 떡밥이 훌륭하게 던져졌는데 두시간밖에 시간이 없어서 ... 라고 하지만, 사실 던킨으로 이동해서 떠들 수 있었기 때문에 나쁜건 아니었어요. 오히려 발표타임과 떠드는 타임이 나뉜게 좋을지도 모르겠군요. ;-)
아, 아, 지난 9월 27일(토요일) SICP 스터디 모임의 9월 정기모임에 다녀왔습니다. ... 8월 모임이 없었기에 두달만의 회동이었죠.
7월 모임에서 미쳤던 D군이 Map/Reduce에 대한 발표를 하겠습니다, 라고 질러버려서 덜덜덜 떨던 시간들... 본래대로라면 8월 모임에서 발표를 했어야 하는데, 훌렁 건너뛰고 9월 모임에서 하게 되었습니다. ... 하지만, 이바닥의 생리가 그렇듯이 준비 기간은 의미 없고, 발표 전 2-3일 정도 후다닥 준비해서 결국 날림으로 해치웠습니다. 두달간의 부담을 이틀만에 후딱 털어내버리고 뻔뻔하게 웃음짓고 있는 D군. - 그래서 체크인 단어가 뻔뻔 이었습니다 >_</ 아쉽게도 개인적으로 쓰던 위키가 죽어버려서(SenA RIP) 자료가 없군효. 언넝 다른곳 어딘가에 둥지를 틀고 위키를 다시 올려야겠습니다. ㅠㅠ
참석자는 대장이신 지아님과, 자주 보던 컴키드님, 솔리드원님, 그리고 저 D군 - 이 올드페이스(늙어보인다는 뜻 아님!)였고, 뉴페이스로 8con님, Yarra님, 신글님이 오셨네요. - Yarra님 블로그 찾으려 스토킹중... >_<
토론 주제를 즉석에서 정해서 뭔가 깔쌈한게(하나 있긴 했지만 비밀) 별로 없었던게 좀 아쉬웠습니다.
최근 읽은 책
* 공부하세요?
테크트리
이야기들이 나왔습니다. 사실 이날 교보문고에 3번... -_-; 갔는데(어쩌다 보니), 세번째는 모임 이후였지요. 모임에서 나왔던 책들을 몇 찾아볼 수 있었습니다. 컴키드님이 말씀하셨던 독서법에 대한 책이 베스트 셀러 근처에 있더군효.
그리고 여기에 [언제|왜|어디서|어떻게|누가?|무엇을] 공부하세요? 에 대한 답을 각 한문장씩으로 정리합니다. ;-)
언제? 보통 아침 회사일 시작 하기 전 한시간 정도. 혹은 주말에 약속 없을때. 밤에는 공부 안한다.. =_=
왜? 내가 아는 세상을 넓히는 것은 여행과 마찬가지이다. 난 죽을때까지 새로운 땅을 밟아가련다.
어디서? 차 한잔이 손에 잡히는 곳. 평일에는 아무도 오지 않은 새벽의 회사에서, 주말에는 던킨/커피빈/스타벅스 같은곳에 짱박혀서.
어떻게? 평일 아침에는 보통 코딩도장의 문제를 풀거나, 찾아봐야 해 - 라고 적어두었던 것들을 좀 찾아보고 정리하거나, 위키에 제목만 달아놓은 문서를 계속 써나가거나. 주말에는 보통 짱박혀서 연필과 종이를 손에 쥐고 책을 읽는다.
누가? - 음, D군은 보통 혼자 공부한다.
무엇을?한시간 이내의 코딩문제는 보통 UVA, TopCoder스타일의 문제 - 요즘에는 코딩도장 문제 - 를 해본다. 책은 SICP, Introduction to IR 정도를 읽고 있다. (G.E.B. 는 읽는다고 하기 쫌 뭐하지) 전공 이외의 공부로는 일본어를 하는 척만 하다가 좀 본격적으로 시작해보려고 준비중.
그리고 테크트리에 대한건... 사실 애매하죠. 답도 애매했습니다. 좀 안습... :'(
이후에 어딘가에 있는 커피볶는 집에 짱박혀서 이런저런 수다를 떨다가 제가 사람들을 낚아서 데리고 나왔습니다. ;; 신글님이 이런 저런 질문들을 하셨는데, 제가 평소 가지고 있던 고민들이랑 비슷한 물음들을 많이 던지셔서 인상깊었습니다.
... 이후에는, 위에 이야기한대로 교보문고에 잠시 들렀습죠. 거기서부터 몸이 좀 안좋아서 뻗었슴둥. ㅠㅠ
... 밖에 없다. =_= 그 외에도 할 수 있는건 많겠지만, 기본적으로 그 외에는 별 관심이 없기 때문에 ... ;; 본래 구입 목적이 스타벅스나 던킨에 짱박혀서(여름엔 시원하고 겨울엔 따뜻한!) 공부하는것 아니었는가.
해서 초큼 생각을 해보니, 난 스터디모임 정모같은데 가지 않으면 어딜 가서도 무선랜을 쓸 필요가 별로 없다. -_-; 배터리 아깝게시리(사실 블루투스도 그닥...) ... 그래서 SICP 온라인 북을 그냥 오프라인에 저장해놓고, PLT Scheme을 설치하기로 결정.
여기서 완전 감동.
ScrapBook이라는 플러그인이 있다. 예전 WebZip이나 기타 다른 프로그램이 하던 일을 해주는데(Static page를 로컬에 저장) 링크까지 쫓아가서 착실하게 저장해 주신다. 나처럼 정적 페이지를 주로 보는 사람이 쓰기에는 좀 짱인듯. >_<=b 설치는 이걸로...
... 그리하야 ...
오늘 전철에서 초큼 오래(한 40분?) 앉아있게 되어서 한번 꺼내놓고 읽던걸 계속 읽어 보았는데. . . 이건 소감.
바람이는 LCD가 상당히 밝다. 전에 쓰던 놋북(물론 지금도 쓴다 - Dell Latitude D630)의 최대 밝기가 바람이 70% 정도밖데 되지 않는다. ... 최대 밝기로 하니 눈이 부시다. -_-; 전철에서는 20%~30% 정도 밝기만으로도 충분했다.
무선랜/블루투스/스피커 Off. 화면밝기 30% 정도로 쓰니 두시간 쓰고도 배터리가 20%정도 남는다. 음... 동영상도 안보고, 무선랜도 거의 안쓰는 나에게는 3셀이면 충분할듯.
배터리 부분은 초큼 고려가 필요한데, 용도에 따라 큰 차이가 생길 수 있기 때문이다. 이동중 동영상을 보고 싶다면 3셀은 쥐쥐. ... 6셀로 가야한다... 지만, 10인치 놋북인 관계로 기차나 버스에서 앉지 않고서는 쓸수가 없다. 이동+동영상 조합이라면 PMP를 쓰는게 오히려 나을거고... 어딘가에 짱박혀서 -> 무선랜(or Wibro?)으로 웹서핑을 하거나 동영상을 보고 싶다면? 3셀로는 절대 못한다 -> 6셀이나 어댑터가 필요.
나같은 경우는 분홍이를 한번 꺼내서 약 1-2시간 정도를 널럴하게(SICP 페이지 띄워놓고 읽다가, PLT Scheme으로 코드 쓰고... 만든 코드는 저녁에 집에 와서 SenA로 커밋) 쓰고 다시 가방에 넣는 사용 패턴을 가지고 있으므로 3셀이 이상적이다.
... 게다가, 곧 가방에 어댑터 대신 외장배터리가 들어갈 예정. 바람이를 꺼내서 쓰다가, 가방에 넣으면서 외장배터리에 연결해서 외배->3셀 로 충전 고고싱. 다시 꺼내쓰고, 가방에 넣으면서 충전 고고싱... 패턴.
처음부터 그랬지만, SICP 스터디 모임의 정모는 SICP를 읽느라 지친 개발자들이 잠시 쉴 수 있도록 여유를 제공하는 자리이므로 절대 SICP 에 대해서 토론하지는 않습니다. 이번에도 역시 마찬가지였네요.
체크인 - 초심, 패닉 등등 여러가지 나왔습니다. 전 그냥 "우쭐우쭐" 이었네요. 지난 한달은 나름 열심히 문제를 풀었다지요. 발표, 토론 - 제가 최근에 삽질하면서 했던 생각인 Statement, Expression은 뭐가 다른건가? 를 잠시 이야기했습니다. 그리고 책 이야기들을 했어요. 저는 할말이 없어서 SICP! 라고 한번 외쳐 주었습니다.
배운뇨자가 되신 지아님을 보며, 저도 책도 좀 보고 공부도 좀 하고 배운총각이 되어야겠다고 생각했습니다. ;-)
여튼, 그렇게 짧은(실제로 짧았습니다) 토즈에서의 모임을 마치고 (무늬만) 북카페인 나무그늘로 이동해서 수다를 떨었습니다. 하야로비님의 게임 이야기들이 재미있었어요. ... 개발자 모임과 오덕 모임은 0.96 정도의 상관도가 있는 것 같습니다. ;-) 이야기를 해보니 우리나라에서의 게임 개발은 누구나 한번쯤은 생각해보거나 거쳐가는 관문... 혹은 테크타다 보면 반드시 들르는 곳 - 정도 된다는 느낌을 받았네요. ^^
그리고 저는 후다닥 soonoh님과 종각으로 떳습니다. soonoh님이 모임에서는 이야기가 별로 없으셨는데, 버스를 타고 가면서 회사 이야기를 좀 들었습니다. 재미있는(혹은 배울만한게 많은?) 회사에 계신 것 같아요. 다음에 더 흥미로운 이야기들을 들을 수 있을 것 같습니다. 모두 기대 ;-)
---
여기부턴, SICP와 상관 없지만, 전 그날 소백산맥을 마신 듯 합니다... :'( 쿨록쿨록
아래 있는 SICP 스터디 6월 모임 - 에서 솔리드원님의 소개로 코딩도장의 오프라인 모임에 참석했습니다. 모임 이름은 코딩도장이었지만, 제가 참석한 모임은 "책 소개" 모임이었네요. 순수문학도 있고, 수학 관련된 녀석도 있고, 메타-사고에 관한 책도 있었습니다.
저까지 포함해서 다섯명이었는데, 도장의 관장님 한분(아샬님)과 엔에스알, Pod, SolidOne님이 참석하셨습니다. 아샬님은 제일 마지막에 오셨는데, 다른 분들이 롸커같다고 이야기해서 어떨까 했었는데 딱 오시니 아, 그렇군 이라는 생각이 들더군요. ;-)
모임에서도 이야기 했지만, 물 흐르듯이 스르륵~ 자연스럽게 진행되어서 참 좋았습니다. 관장님의 능력이겠지요. 크게 세션을 나누면 책에 대한 이야기와 모임의 방향에 대한 이야기, 두 개가 되겠습니다.
책: 각자 읽은 책을 보여주고 설명하고 공유한 다음, 많은 사람의 관심을 얻은 녀석에 대해 좀더 in-depth로 까보는 ... 의도였지만, 시간이 꽤 많은데다가 읽지 않은 상태로 추천(?)된 책이 있어서 모든 책을 돌아가면서 이야기했습니다. 저는 준비되지 않은 관계로 넘어갈...리가 없으니, 그나마 가장 최근에 읽었던 리만가설을 꺼냈습니다. ... 읽긴 읽었는데 리뷰조차 쓰지 못하고 있는 고로 한번 더 읽어야 하는 책이지요. :'(
아샬님: 아이디어 머신, 효과적인 문제해결 - 두권 모두 Meta-Thinking 이라는 범주로 넣고 싶군요.
솔리드원님: 수학으로 생각한다 - 수학 교양서와 전공서의 중간쯤에 있는 듯 합니다. ... 아 전투요정 유키카제도 있었습니다. ... 이거 나올줄은 몰랐다능 -0-/
엔에스알님: 익스트림 프로그래밍 Explained, 국경의 남쪽 태양의 서쪽, 스키니 비치 - Extreme programming은 읽어봤던 책인데, 역시 다른 분들이 읽고 하는 이야기를 들으니 새로운걸 깨닫게 됩니다. 역시 돌멩이는 부딪쳐야 불꽃이 튀나봅니다. 국경의 남쪽 태양의 서쪽에 대해서는 하루키와 류씨의 책에 대한 이야기들이 나왔습니다. ... 상실에 대한 이야기가 인상깊군요. 스키니 비치는 그냥 패스했습니다. >_</
Pod님: 컨버전스 컬쳐 - ... 잘 모르겠어염 ㅠ_ㅠ 아직 별 느낌이 없었습니다. Hybrid와 Convergence가 뭐가 다를까요? 라는 의문이 생겼습니다.
D-goon: 리만가설 - ... 저 스스로 떡실신.
대충 이렇게 정리할 수 있겠군요. 다른 분들의 지식을 훔치는 풍요로운 시간이었습니다. 그리고, 두번재 세션에서는 모임에 대한 이야기를 했습니다. 왠지 써놓고 보니 그 전타임에 뛰었던 SICP 스터디 모임에서와 비슷한 느낌이 드는군요. ;-)
모임의 방향: 사실 저는 이 오프모임이 처음이었기 때문에, 할 수 있는 말이 별로 없... 었습니다만, 그래도 왠지 어색하지 않아 이런 저런 이야기를 꺼낼 수 있어 좋았습니다. 앞으로 오프 모임이 활성화 될 조짐이 있는데, 저도 가보고 싶... - 긴 합니다만, 시간과 위치가 안좋으면 낭패... =_=a
몇 가지로 느낌을 정리하자면,
Proactive members
다양성에 대한 갈망
깊이에의 추구
이런 것이 인상깊습니다.
... 일단 온라인에서 코딩 문제를 풀다가 적당한 때와 장소를 기다려 보면 되지 않을까 합니다. ;-)
실제로 문제 풀이는 지지부진하지만(핑계는 있습니다만... 없는 무덤이 어디 있겠습니까 -_-;) 그래도 나름 Heartbeat을 유지하고 있는 구글 그룹스의 SICP 스터디 모임의 6월 정모에 다녀왔습니다. 5월에 정모를 하지 못해서, 6월 정모를 좀 일찍 하고 5+6월 합동 오프 모임이라고 볼 수 있습니다. 장소는 강남 토즈, 선발대들은 오무토토마토에서 점심을 함께 먹으며 지난 모임때의 쿠폰 사건(ㅠ_ㅠ)과, 최근의 촛불 정국에 대한 이야기들을 나누었습니다. ^^
일단, 모임의 참석자는 지아님, D군(The Me!), 솔리드원님, 꼬니님, gsong님 이었고, 컴키드님이 중간에 난입(?) 하셔서 자리를 빛내 주셨습니다. ;-)
흐름은 체크인 -> 월간회고 -> 발표(The Me! 가 LaTeX에 대해 짧게 설명했습니다) -> 자유토론, 이었습니다. 간단하게 각 단계에서의 임팩트를 짚고 넘어가도록 하겠습니다.
체크인: 모두 오늘의 각오(?)랄까, 한 Word, 혹은 Phrase로 표현하며 운을 떼는 것입니다. 다른 분들이 백지, 내려놓자, 가능성, 촛불 등의 멋있는 단어들을 선택하시는 와중에, 저 역시 있어 보이기 위해 용자를 택했습니다. 이렇게 공부도 지지부진하고, 다른 분들에게 자극적인걸 던져주지도 못하며 정체되어 있는 안타까운 상황을 어떻게 뚫고 나갈 것인가 - 를 생각하다 떠오른 단어입니다.
다시 한번 밑줄 쫙 - 뚫고 나갈 것인가 - 에서 그래 이거다! 라는게 떠올랐습니다. 여기서 아하! 떠오르지 않으신다면 천원돌파 그렌라간을 한번 보실 것을 강권합니다. 어디서 구해야 할지 모르겠다 싶으시면 저를 찌르셔도 됩니다. ;-) ... 여튼! 공부도 용자처럼 해야 합니다. 그것이 우리 SICP단(?)의 방식입니다! 좌절과 나태로 점철된 스터디의 역사에 바람구멍을 뚫어놓을 용자! ... +_+ 비록 하루짜리 열정이라도 말입니다. ;-)
월간회고: 모두모두 이제 미안하고 또 미안하다 못해 미안하지조차 않게 되어버린 경지에 이르러 있었습니다. 좀 가슴아프기도 하지만, 이런 문제의식의 공유가 이 후 자유토론의 씨앗이 되었던 것 같습니다. 그리고 들어보니 모두들 훌륭한 핑계(?)가 있었단 말이지요. 대장이신 지아님이 "우리는 공부 (강제로) 권하는 사회가 되지 말자" 라는 비전을 제시했고, 대부분이 따라가기로 했으니 그닥 큰 문제는 되지 않는 것 같습니다. 공부는 스스로 하는거지요. ... (추가하자면, 위에 말했듯 용자처럼 스스로!)
발표: 제가 약 30분 정도 LaTeX 사용에 대해서 이야기를 했습니다. 발표라고는 했지만 그냥 위키 페이지 띄워놓고 간단하게 설명하면서 터미널에서 latex 문서를 만들고 pdf 파일로 뽑아내는 과정을 보여드린 것 뿐이었습니다. 제가 일단 latex에 익숙하지 않아서 핵심을 제대로 짚어줄 수 없어서 좀 안타까웠습니다. 최근 인터뷰 보러 다니느라 정신줄을 놓고 있다가 준비를 제대로 못해서 ... =_=
그래서, 다음달에 반성하는 의미로 발표를 하나 더 하기로 했습니다만, 좀 애매합니다. 이건 자유토론과 연관되는 것이니 뒤로 패스.
자유토론: 스터디 모임의 방향성, Goal 에 대한 이야기들이 많이 나왔습니다. 큰 줄기 몇개를 챙겨보면,
대화가 필요하다. 어떤 종류의 소통이던 간에, 대화가 있어야 모임에 피가 흐른다.
누가 "저 모임에 가면 뭘 얻을 수 있니?" 라고 물었을 때, 대답할 것이 있어야 한다.
고기동성을 위해 모임 내에서 Sub-모임이 나타나 공대 만들어 사냥하고 다니는 것도 좋다.
스터디+문제풀이 외에 프로젝트라던가, 공부를 도와줄 수 있는 프로그램 구성을 만들어봤으면?
이런 것들이(더 많았습니다...) 있었습니다. 무얼 할지 정확하게 정해지지는 않았지만, 저 네번째 것 - 스터디+문제풀이 이외의 코드 작성 - 에 대하여 "제가 할께요. 알아서 페이지 만들어서 뭔가 정리해 나가고, 다음달에 발표해 보겠습니다." 라고 발언해 버렸습니다. ... 용자라는 단어 때문일까요, 한 5분정도 엄청 Proactive member가 되었었는데 딱 그 5분에 삘받아서 손들어 버렸습니다... ㄷㄷㄷ 이제 발언에 책임을 지기 위해 한동안 고생좀 해야 할 것 같습니다. ... =_=
다음달 모임은 7월 중순이나 말 정도로 예상되는데요 ... 그 전까지 뭔가 가시적인, 혹은 가시적이지는 않아도 우쭐댈 정도는 되는 결과가 나오길 바랍니다.
그리고 모임 후에, 저는 솔리드원님을 따라서 광화문 쪽에 있다는 다른 (어둠의 비밀결사같은 느낌을 주었던) 모임에 갔었는데 ... 이곳도 대단히 흥미로운 경험이 되어서, 후기를 별도로 작성해야 할 것 같습니다.
오무토 토마토에서 오므라이스를 먹고 강남 토즈로 이동 후 이야기를 시작했습니다. 순서는 이야기꺼리 하나씩 적어내기 -> 체크인 -> 4월 회고 -> 컴키드님의 마인드맵 발표 -> 이야기꺼리 하나 잡아서 토론 -> 다음 이야기꺼리 잡아서 토론 -> 장소이동(어딜까요? ㅎㅎ) 후 연습문제 1.19 풀어보기, 였습니다.
지난 모임때와 같은 장소, 같은 시간이었지만 사람이 절반으로 줄어서 실제로 한명 한명이 떠들었던 시간은 훨씬 길어졌습니다. 영양가 있는 이야기는 아닌 것 같았지만, 그래도 뭔가 많이 떠들었다는게 만족스럽네요. 으히히~ 지난번엔 한마디씩 두바퀴 도니까 그냥 시간이 다 되어버려서 좀 아쉬웠단 말이죠... =_=a
각 과정에 대해 한마디씩만 정리하면,
체크인에서는 대부분(?)의 분들이 공부 못해서 미안해 - 라며 죄책감에 시달리는 모습을 보여주셨습니다. 4월 회고에서는 공부하면서 느낀것+어려웠던 것 들에 대한 이야기가 좀 나왔습니다. 마인드맵 발표에서는 툴의 사용법, 생각을 정리하는 방법(흩어놓은 후 묶는다) 등에 대한 이야기가 있었습니다. 토론꺼리 하나 - Top-down, Bottom-up 방식의 차이, 사고의 방향에 대해 이야기가 나왔습니다. 해결해야하는 과제가 있을때 양쪽을 왔다갔다 하게 된다는 이야기도 했군요. - 이때쯤 명명님이 가셨던 것 같습니다.(가물가물) 토론꺼리 둘 - 훌륭한 사람이 되려면? 지금보다 나은 사람이 되려면? 어찌해야 하는가, 에 대한 이야기들이 있었습니다. - 이걸 마치고 솔리드원님이 가셨군요. 그 후 노닥거리면서, 회사이야기들이 좀 나오다가, 연습문제 1.19를 한번 풀어보고 나서 남은 세명이 빠이빠이 ~
평소에 듣기 힘든 이야기들이 많이 나와서 좋았습니다. 사실 이런 이야기 할 기회가 흔한건 아니거든요. ;-)
그리고... 정말 오랜만에 블로그에 글을 씁니다. 일단 월욜만 지나고 나면 한숨을 돌릴 수 있을테니, 빨리 그날이 지나길... (이라지만 월욜 이후에는 지구에 없을지도 ㅠㅠ)
추가: 다음 정모(5월)때 D군이 latex 사용법에 대해 발표합니다. ;-) 우어어어 ~~~
SICP를 프린트해서 보다가... 최근에서야 책을! 샀다. 그리고 이번엔 좀 제대로 문제를 모두 풀어서 정리하겠노라! 라고 생각하던 차에... 검색하다 SICP 스터디 모임이라는 그룹을 발견해서 후딱 가입했다. 모르는게 있으면 물어봐야지 ~ 라고 생각했었는데, 왠걸 그 모임도 이제 막 시작한거였다. ... 뭐, 생각해보니 더 좋다. 함께 풀어가는게 어찌 즐겁지 않겠는가? ;-)
그리고, 지난 토요일 아기다리 고기다리 던 대망의 첫 정모가 있었다. 원랜 바로 후기를 썼어야 하지만 회사에서 좀 바빠서 치이다 보니 제대로 정리도 못하고 오늘에서야 ... 지아님 죄송해요 ㅠ_ㅠ
에 대한 이야기를 했다. ... 사실, 업계에 진짜로 나온지는 채 몇 달이 되지 않기 때문에 나와 다른 곳에서 프로그래밍을 하고 있는 사람을 만나본 일이 별로 없어서 기대 만빵이었다. 자바를 다룬다는 분, 임베디드(우왕>_<=b)쪽 일을 하신다는 분이 계셨고... 웹 쪽도 있었던 듯? 체크인때도 한 이야기지만, 웹에서 보던 사람들이 NPC가 아니라 정말로 세상에 존재하는 사람들이라는게 참 신기하다. 새로운 사람들과의 만남은 항상 (즐거운 것 만은 아니고 괴로울 뿐인 것 또한 아니지만) 짜릿하다.
일단 첫 모임은 자기 소개라던가 그룹 사용법 등 일반적인 이야기들이 주가 되었는데 ... 다음 모임에서는 뭔가 주제나 문제를 잡아서 이야기를 하게 된다고 한다. 히히, 약간 기대 >_</
삼천포로 빠지면 어쩌나 걱정도 좀 했었는데, 지아님이 잘 이끌어 주셔서 알찬 시간이 되었던 듯 하다. 아쉬운 것은 카메라....
ㅠ_ㅠ 와 3시간이 너무 짧았다는 것. 그리고 마우스와 키보드 USB 케이블을 들고가지 않았던 것 반성합니다... ㅠ_ㅠ
아아... 약발을 바로 받았어야 하는데 회사 일로 흐름이 끊겨서 좀 걱정이다. ... 일단 오늘까진 놀고 내일부터 다시 달려봐야지. ...
그동안 ... 그냥 인쇄해서 보던 문서(...)하나를 결국 책으로 사버렸음. 뒤져보면 꽤 이래저래 사연이 많은데 ...
계기 1. 문화상품권이 갑자기 들어왔다. 계기 2. 내가 알고 있던 가격보다 훨씬 싼 물건(!)이 떳다.
SICP는 뭐, 다 알겠지만, Structure and Interpretation of Computer Programs 의 줄임말이다. MIT에서 컴퓨터 처음 배우는 애들한테 읽게 시킨다는 것으로 유명하며, 수많은 초보 공학도들을 돌고래에게 무릎꿇게 만들었다고도 한다... -_-; 번역서는 최근에서야 나왔고(무려 ht**w*** 님이 번역에 참여하셨다니?), 저게 미친듯이 읽고 싶었을 당시에는 돈이(군인이었다) 없어서 부대 물품을 좀 ... 해서 인쇄해서 봤었다. 최근엔 회사에서 한번 더 인쇄해버렸는데 ... 그래도 책으로 사서 책장에 좀 꽂아두고 싶은 녀석이라 이번 기회를 잘 노렸지! 히히 ~
교보문고에서 SICP 2/E, HardCover가 3만5천원에 뜬 것을 약 10분쯤 전에 확인. 바로 질렀음. 이해는 못하겠지만 동일한 책(SICP 2/E, HardCover 이면 똑같은거 아닌가? ISBN-10 넘버도 확인했음. 같더라)이 정가 9만얼마에 할인가 7만 얼마로 있던데 ... -_-;
뭐, 대강 한번 읽고 연습문제도 (거의) 풀어보긴 했지만, 그래도 Wizard 한 녀석 정도 서가에 키우는것도 좋을듯 하다. 일단 간지 좔좔 - >_<v 그나저나, 읽는 속도보다 책을 사는 속도가 더 빨라서 낭패다. 주말에 좀 달려야 할듯.
- 하지만 안타까운 것은, 인터넷 교보문고는 문화상품권 결제를 지원하지 않는다. ... 는 것과, 기왕 사는 김에 하면서 Amazon에서 "The Complete Peanuts" 를 검색해서 장바구니에 지금 넣어버렸다는거... 당연히 아마존도 상품권 못씀. 결국 상품권은 기스 하나 없이 그대로 ... ㅠㅠ
P.S. 책 표지 이미지는 인사이트(http://www.insightbook.co.kr/)에서 가져왔음. (죄송, 무단...;) 얼마전 JCO에서 경품으로 받았던 책(사랑하지 않으면 떠나라! - 다 읽고 리뷰 ㄱㄱ)도 이제보니 인사이트다. 출판사명 기억해두겠음.
타케미치 선생님과 안녕안녕~ 하고 두번째 단계로 왔다. 1단계 과정의 시험 담당이었던, 그 분! 첨엔 남자여서 (괜히) 실망... 했었는데, 사... 사람이...! 너무 재밌다! 으허허허, 요번 한달도 즐겁겠구나. 뭐, 수업이 조금씩 어려워져 가는건 당연한거니 그냥 그러려니 하고 패스.
같이 수업을 듣는 KKY님과 KRH님이랑도 꽤 친해졌다. 음, 뭐 나이도 비슷하고 수업도 거의 반년 가까이 같이 들었으니... 그리고 역시나 1단계에서 같이 올라온 사람들, 외부에서 날아온 학생, 2단계 다시 듣는 사람 - 하여 여러 경로를 통해 사람들이 모였다. 몇몇 분들은 (죄송하지만) 좀 버벅이는게 보이고, 유학을 준비한다는 그녀(일본사람인줄 알았다 .. ;;)를 필두로 꽤나 유창한 일본어를 구사하는 분들도 있었다. 나는 대략 중간정도 되는것 같네... 열심히 해야지.
... 만, 매일 학교에 올라와서 삽질하고 있으니 따라가기 참 힘들것 같다. 지금까지는 아침에 일찍 가서 30분이라도 예습하고 저녁에도 꼭 복습하고 그랬는데, 이제는 그럴 시간이 없으니. 정말 "수업시간에 열심히 했어요." 모드로 가야할듯.