헤드퍼스트 디자인 패턴

2005년 졸트상 서적분야에서 1위를 한 말이 필요없는 그 책! Head First Design Patterns가 드디어 번역본이 나왔습니다!
예약신청을 해 놓았었는데, 예정 출간일보다 좀 이른 8월 31일에 배송해줬군요.

아.. 받아보는 순간부터 이 산뜻한 느낌.. 한빛미디어가 갈수록 책을 이상하게 좀 싸구려티나게 만들고 있었는데, 이번엔 신경을 좀 썼군요! 표지재질, 판형, 종이질, 종이무게 모든 것이 아주 좋습니다. 원서와 비교해도 손색이 없군요~ 글꼴셋도 괜찮은 편이고, 레이아웃도 전혀 안 깨졌네요~ 딱 하나 흠을 잡자면, 사람이 쓴 것 같이 표현하는 글꼴 중에 하나가 가독성이 지나치게 안 좋은 게 하나 있어서 그걸로 되어 있는 건 좀 읽기가 힘드네요. 은진체 같이 예쁘고 읽기 좋은 글꼴을 썼으면 좋았을걸.. 🙂



© 한빛미디어, 2005.

역시 이미 다른 헤드퍼스트 씨리즈에서 어느정도 알려진 접근법이긴 하지만, 다시 한번 감탄을 할만 하군요. 🙂 앞의 꽥꽥대는 오리/로켓추진오리/고무오리 얘기는 원문에서는 모국어가 아니라 그런지 유머를 바로 느낄 수가 없었는데, 한국어로 읽다보니 너무 재미있어서 막 버스에서 깔깔대며 읽었습니다.;; -O-



© 한빛미디어, 2005.

오픈룩에서도 가끔 쓰는 방법이지만, 원래 래쓰님 홈페이지에서의 셀프 인터뷰는 독자들이 궁금해하는 부분을 한번쯤 생각해보고 설명을 해줄 수 있다는 점에서 매우 좋은 흥미로운 방식이라고 생각하고 있었습니다. 그런데, 이 책에서 각 디자인 패턴들이 의인화돼서 자기 해명도 하고 그러는 것 아주 재미있네요. 🙂 이런 부분 번역하기가 상당히 힘들었을텐데 깔끔하게 원문의 유머를 잘 살려서 번역되어있어서 정말 좋습니다!



© 한빛미디어, 2005.

이 책의 앞부분에서는 자바나 유사한 언어를 모르는 사람에게는 추천하지 않는다고 밝히고 있습니다. (그 밑에 “마케팅 팀에서는 신용카드만 있으면 살 수 있다고 합니다.”라고 깜찍하게;;)
그런데, 제가 보기에는 아무래도 객체지향언어를 쓰는 사람이라면 누구나 꼭 봐야하는 책인 것 같군요. GoF 책을 깊이 본 것은
아니지만.. 이 책을 보고 다시 본다면 순식간에 다 이해할 수 있을 것만 같은 희망을 안겨줍니다. -0-

학교가 변했다

요새 무려 거의 5년만의 복학이라 학교에 적응도 참 힘들고,
심지어 학교 건물 이름이 바뀌어서 어딘가도 못 찾는 거의
신입생이나 다름 없는 생활을 즐기고 있습니다.; 학교가 어찌나 바뀌었는지
완전 다른 학교 같아요.. 한참 선배들이 와서는 “아아.. 우리 때하고는 완전 다르네~~” 하는 얘기가 현실이 되니 참 그것 생각이
이채롭군요;;

요새는 애들이 공부만 한다
90년대만 해도 대학생은 사회적으로 놀고 먹는 계층의 표상이었는데,
이제는 공부를 어찌나 열심히들 하는지.. 학점도 엄청나게 인플레되는
추세에다가, B를 재수강하는 사람들이 이렇게 많을지 몰랐습니다.
도서관엔 개강한지 며칠 안 됐는데도 사람들이 바그르바그르하고..
수업도 3번빠지면 F라는 과목도 있고.. 엉엉..
흑흑 고학생들은 어찌 살라고.. T-T
그리고 옛날에는 수강변경 기간이 끝나는 두째주까지는 수업도
안 하고 완전 놀았는데.. 어제와 오늘 수업 첫 시간부터 2시간을
꽉꽉 채워서 강의를 하는 교수들.. 무섭;;
가장 인상 깊었던 수업은. 다다음주에 선수과목의 전범위를 포함해서 퀴즈 본다는 수업이었습니다. 으흐;

영어 강의가 늘었다
예전에는 학부에는 영어 강의가 거의 없었는데, 이제는 전공
수업은 웬만하면 다 영어 강의로 바뀌었군요.. 그래서 영어
강의를 들어갔을 때 굉장히 긴장하고 들어갔는데, 다행히도
수업 소개 하는 것와 출석 부르는 것은 한국어로 합니다. –;
컴과 수업은 어찌어찌 그래도 듣던 단어들이라 알아 듣긴 하겠는데..
생명공학 수업은 처음 듣는 단어가 많아서 도저히.. 우엑우엑.
대신에, 영어 강의는 절대평가가 되기 때문에 웬만해서는
성적은 잘 나온다는군요~ (정말일까? ;;)

공대 여학생들이 변했다
90년대에는 공대 여학생들은 옷차림만 봐도 대충 공대생이구나 하는 느낌을 받을 수 있게 입고 다녔습니다.;; 문과대에 있을 때 지나가는 여학생들 분위기와 공대에서의 분위기는 완전히 달라서 별로 연습하지 않아도 구분할 수 있었… 는데, 복학해 보니 이제 더이상 공대 여학생이 겉으로는 전혀 구분이 불가능해진 듯 합니다. 음~~ 아쉽군요. 저는 예전 공대풍 여학생도 좋았는데 =3=3

시설이 변했다
옛날의 그 꼬질꼬질한 온통 전자장, 전자기학 공식들로 빼곡히 채워져 있던 책상들은 없어지고 이제 깔끔하고 글자도 안 쓰이는
걸로 바뀌는가 하면.. 생활과학대에는 뭔가 미래에서 온 듯한
책상이.. 흐흐 버스카드처럼 찍는 출석 체크는 아직도 신기해요 -O-;
리모콘 딱 누르니까 천장이 드르르륵 열리면서 프로젝터가 열리는 것도 신기하고;; -O-

책값이 변했다
이제는 책값이… 으흑흑. 지금까지 4권 샀는데 합이 벌써 20만원이군요.. 우어어어어어…

학교가 많이 현대화되어서 제법 이질감이 들기는 하지만.. 뭐 사실 복학생이 가는데가 도서관 말고.. 아하하;; 곧 적응되겠죠;

토끼군 잡다

그동안 1년간 장보고 와서 남는 돈을 다 넣어 놓았던 토끼군
잡았습니다. 이놈이 이사올 때 너무 무거워서 한번 재 봤더니
거의 5.8㎏까지 살이 포동포동 쪄서~ 크크.;;

모두 정리하니까, 100원짜리가 421개, 10원짜리가 354개, 50원짜리가 165개, 500원짜리가 58개 해서 모두 8만원 정도 나왔습니다. 살이 쪽 빠진 토끼군을 보니까 애처롭군요. 토끼군~~ 다음 생에는 500원짜리로 많이 넣어줄께~

집이 대충 정리된 기념으로 사진을 올려뒀습니다. 구경가기 이히히;

GREAT CODE: 하드웨어의 이해

조엘이 C를 배우라고 하는 이유에서 가장 많이 강조한 부분은
진짜로 직접 실행되는 코드가 어떤건지 구조를 알지 못하면,
하이레벨에서 사소한 잘못된 선택으로도 치명적인 속도 저하나
프로그램 문제를 일으킬 수 있다는 그런 이유였습니다. 물론
반론은 상당히 많은 주장이지만, 그 주장에 감명을 받아서
“나도 이제 저수준 세상을 알고 싶어!”라는 사람에게 시간은
되도록 적게 들고 손쉽게 익힐 수 있는 책으로
《Write Great Code》를 서점에서 처음 봤을 때, 아 딱 그책이군! 하는
느낌이 들었습니다.

이 책은 처음에는 1권만 쓰고 반응을 보려는 듯 부제를 무지
조그맣게 썼는데, 결국 이번 달 중으로 2권이 나온다고 합니다.
1권은 “Understanding the Machine”이고 2권은 “Thinking Low-Level, Writing High-Level”입니다.
1권이 7월에 에이콘 출판사에서 번역판이 나왔습니다.
서점에서만 원서를 약간 보다가 번역판을 사서 자세히 봤습니다.
원서는 너무 비싸서 T-T..

예를 들면 파이썬에서 “0.3 더하기 0.3을 했는데 왜 0.6이 아니라
0.59999998이 나오나요.” 하는 파이썬 프로그래머는 정밀도가
요구되는 계산에서도 float타입으로 0.3을 계속 더해서 결국
천 번만 더해도 눈에 띄게 오차가 나버리는 심각한 상황을 맞기
십상입니다. IEEE-754가 어떤 것인지 얼핏이라도 알고 있는
프로그래머라면 그렇게 계산하면 당연히 오차가 누적되는 것을
알고 적절한 조치를 취했겠지만요~ 이런 문제는 우연히 하나씩
숨어있는 것이 아니라 살다보면 수도 없이 만나기 마련인데,
바로 그런 문제를 이 책의 앞쪽에서 설명하고 있습니다.
수치 표현이나 스트링 표현, 인코딩, 캐릭터셋, 비트연산,
논리게이트 같은 컴퓨터과학 전공 1~2학년에서 대체로 배우지만
정작 시험치고 숙제할 때만 쓰고, 실전에 그게 연관이 있구나
하고 연관이 잘 안 되고 뇌 여기 저기에서 따로 따로 놀고 있는 것들~

그 뒷부분에서는 CPU, 인스트럭션, 스택, 힙, I/O를 다루고 있습니다.
물론 각각이 컴퓨터구조, 컴퓨터시스템, OS, 파일처리론 같은 과목들에서 다루는 것이기는 하지만, 학교에서 배우는 식으로 하는 게 아무래도 현업 프로그래머들에게는 너무 시간이 많이 든다는 것을 고려해 보면, 이렇게 책 하나로 다 묶어버려서 요점만 설명하는 것도 괜찮은 접근인 것 같습니다. 흐흐;;

그런데 하나 얘기를 안 할 수가 없는 것은.. 제책과 편집..
글씨는 지금까지 봤던 컴퓨터 책 중에서 가장 작고..
한 페이지에 거의 40줄씩 나오는데다가.. 편집도 상당히
90년대 초반 교학사에서 나온 컴퓨터책들처럼 되어있어서
책을 읽고 있으면 “아아 내가 공부하고 있구나” 생각이 강하게
들게 해 줍니다. 게다가 자간도 좁고 책 크기도 너무 커서
(B5 풀 사이즈) 들고다니면서 흔들리는 곳에서 보기에
아주 곤란합니다. 막 고3의 심정으로 옆에 지나가는 사람들
다 붙잡고 “나 공부하고 있어요 주르륵” 하소연이라도 해야할
것 같은..
책 값이 25000원이면서도 제책 품질이 이렇게 떨어지고
품위가 없게 나온 것은 아무래도 우리나라 출판 사정이 점점
어려워지고 있다는 뜻일까요.. -_.-;;
적어도 읽고 싶은 마음이라도 나게 만들어주면 좋겠군요..

그럼에도 불구하고 책의 내용은 다음의 사람들에게는 아주
유익할 듯 합니다.

  • 컴퓨터과학을 전공했지만 졸업하면서 책을 다 버리거나 후배들 줘버린 사람
  • 컴퓨터과학을 전공하지는 않았지만 모르는 말이 나와도 별로 두렵지 않은 사람
  • 책을 장 단위로 쪼개들고 다니면서 보기 때문에, 제책이 어떻든 신경 안 쓰는 사람
  • 회사에서 책 사라고 공지가 나왔는데 뭘 사야할 지 딱히 정해둔 것이 없는 사람

흐흐;

번역본 제책이 아쉬운 한편.. 2권 “저수준으로 생각하면서 고수준 코드를 짜기”가 기대가 됩니다. 1권을 보고 약간 아쉽다 생각이 드는 경우에는 Miguel도 추천한
Computer Architecture: A Quantitative Approach를 같이 보면 좋을 듯 합니다~

일본 LLDN (경량언어낮과밤)

한국의 대안언어축제
비슷한 성격의 일본의 축제인 LLDN 2005가 8월 27일에 있었다고 합니다. 우리도 비슷한 행사를 하고 있으니 관심을
가지고 좀 찾아보았습니다. 🙂

예산과 행사 조직

대안언어축제 초기에도 LLDN에 대한 얘기가 좀 있긴 했는데,
LLDN은 기존에 잘 꾸려진 커뮤니티들이 연합하여 하는 것이지만
대안언어축제는 유명무실한 커뮤니티들 사람들 몇몇이 임시로
모여서 하는 거라 좀 다른 면이 있습니다. 그리고 대안언어축제는
지원을 정부기관에서 했지만, LLDN은 O’Reilly Japan이나
여러 다른 출판사, 신문사, 소프트뱅크 같은 곳에서 지원을
하고 있습니다.

LLDN은 2003년부터 계속 이름이 바뀌어 왔는데,
2003년엔 LLSaturday로 토요일에 했고, 2004년에는
LLWeekend로 주말에 이틀간 했고, 올해는 LLDay&Night로 해서
낮과 늦은 밤까지 한 것 같습니다. 낮에는 아카데믹하게,
밤에는 축제적인 요소를 가미했다는군요. 대안언어축제도
1박을 하는 바람에 예산이 걷잡을 수 없이 엄청나게 불어난
것을 생각해 보면, 늦은 밤까지 해버리는 것도 괜찮은 것 같습니다. 🙂

세션 구성

LLDN의 낮 세션에는 “아카데믹”을 정말 그대로 실현하기 위해서인지
각 언어별로 1개씩 세션을 빼곡히 채워놓았습니다. awk, curl,
gauche, haskell, ml, perl, php, python, ruby, squeak 모두 10개나 되네요. 대안언어축제에 비해서 확실히 다양성이 있는게 무척 부럽습니다. 그리고, 대안언어축제에서는 언어보다는
언어 독립적인 것들을 많이 발표 세션에 배치한 반면에, LLDN은
발표 세션은 모두 각 언어별로 배정이 되어 있군요.

독특한 세션 – 낮

발표 세션을 제외하고 독특한 포맷의 세션을 보자면, LLDN의
대표적인 두가지 “체제 대결”과 “너라면 어떻게 쓰겠니?”가 있네요.
“체제 대결”에서는 RoR, Kahua, Sledge 세가지 웹 프레임워크의
전문가들이 나와서 발표를 하고서 사회자의 진행으로 열띤 토론을
하는 것 같습니다. 대안언어축제에서도 사실은 원래 이런 걸
해 보고 싶었는데, 사람이 모자라다보니 못한게 좀 아쉽네요..
그리고, “너라면 어떻게 쓰겠니?”는 각 언어의 참가자들이
하나씩 규정연기와 자유연기 중 선택 또는 둘 다 시연을 하게되는데,
관중이나 다른 참가자들이 “너라면!” 상황에서 구현한 것을
서로 비교해보는 정말 살떨리게 재미있을 것 같은 세션일 것 같습니다. 🙂

독특한 세션 – 밤

그리고, 축제의 자리인 Night에서는 “안돼 자랑”, “데모 자랑”, “선물 대회”가 있는데,
“안돼 자랑”에서는 보통 금지되어 있는 흑마법들을 이렇게도 할 수 있다!
하면서 “으아아아~ 안돼~~~” 하는 거라고 합니다. 다른 언어 유져들에게는 숨겨온것들은 자진해서 얘기하자는 거라는군요.. (설명해 주신 미쓰님 감사!) 그리고, “데모 자랑”에서는 백문이불여일견으로 자기가 자기 언어나 툴킷/프레임워크에서 자랑하고 싶은 것을 나와서 보여주고 다른 사람들이 “우와~~” 해주는 행사라고 합니다.
역시 재미있을 것 같습니다. 하아~

대안언어축제와는..

LLDN은 대안언어축제와 매우 유사한 주제를 다루고 있음에도 불구하고
매우 다른 형식과 규모, 조직성을 갖고 있다는 점에서 서로 배우거나 가르쳐줄 것이 많은 사이인 것 같네요. 대안언어축제의 코드레이스, 야외활동, 로제타카드는 정말 자랑할 만 한데요.. ^^
그리고, 아무래도 LLDN은 사람 수가 너무 많고 장소가 강의용 장소라서 페어나 실습은 크게 못해보는 것 같네요.

LLDN 홈페이지에 올라와 있는 블로그 트랙백을 보면 참가자들 수십명이 자기 블로그에 글을 쓰고 트랙백 보내는 걸 보면 참 부럽습니다. 우리도 내년엔! 우후훗.;

하나 희망적인 것은 LLDN은 참가자가 수백명인데 여성참가자가 한명도 없었다는군요.. (그래서 그런지 LLDN 홈페이지를 보면 페이지 마다 의미없는 여성 모델이 나오는 이미지 컷이 -_-;;)


(그런데, LLDN 블로그 소프트웨어가 OpenLook과 같은 coreblog라서 매우 반갑습니다. 크크 _-_)

PyPy 0.7.0 릴리스

멋지구리 파이썬 해커들이 파이썬으로 만드는 파이썬
PyPy
0.7.0이
릴리스
되었습니다.

그동안은 뜨는데 몇십분이 걸리고 그랬는데, 이제는 인내력이
별로 없는 사람도 어느 정도는 해 볼 수 있을 정도는 됐군요. 🙂

릴리스 노트에서도 밝히듯이 어디까지나 연구목적의 프로젝트이기
때문에, 너무 성능을 진지하게 받아들이면 안 되겠지만.. 🙂
언젠가는 더 나을지도 모를일~ 한동안 구체적으로 보지는 못했지만
이번 릴리스에서 특이한 점은. Armin이
“C로 구현된 두번째 파이썬을 소개합니다.”라고 PyPy를 소개했다는 점~
자세히 보니까, LLVM(Low-Level Virtual Machine)이란 것이
새로 도입되었는데, 기존의 CPython이 VM과 런타임, 표준 라이브러리가
혼란스럽게 섞여있는 반면에, PyPy에서 LLVM을 백엔드로 선택하는
경우에는 VM만을 저수준으로 격리해서 C로 구현된 것을 돌리고,
런타임과 표준 라이브러리, 컴파일러 등은 파이썬으로 만든 것을
돌릴 생각인 것 같군요.

유럽연합의 지원을 충분히 받으면서 재미있는 프로젝트를 하고
있는 것 같아서, 무척 부럽습니다. 🙂 기대가 되는군요!

실용주의 프로그래머


그동안 김창준님의 글을 보다보면, 유난히 많이 언급되는
책 중의 하나가 바로 이 《The Pragmatic Programmer》였습니다.
책 제목에서도 모르는 단어가 나오는 것에(어휘력이 짧다 –;)
멋있게 뭔가 단정적으로 제목이 달려 있어서 인용문을 유심히
보지 않더라도 풍겨나오는 포쓰에 압도를 당해서 아직 읽어보지
못하고 있었습니다. (^^) 그런데, 얼마전에 드디어 한국어
번역판이 깔끔하게 나왔군요~

이 책은 실용적인 프로그래머가 일반적인 다른 프로그래머들에
비해서 어떤 것이 다른가에 대한 설명이 주를 이루는데,
아무래도 프로그래머가 원래는 실용적인 사람이어야 하는 만큼
스타일 문제, 문제 접근법, 아키텍처 디자인, 코드 제너레이션이나 빌드 자동화 같은 개발 기법, 효율적인 코딩을 위한 테크닉,
리팩터링, 테스트 방법 등 골고루에 대해서 얘기를 하고 있습니다.
즉, 학교에서는-안-가르쳐-주지만-회사에서는-필요한 류의
것들을 많이 알려주고 있습니다.

물론, 그런 류의 책도 이미 상당히 많이 나와 있는 편이지만
이 책이 돋보일 수 있는 이유는 아무래도 프로그래머의 일생을
기준으로 한 조언을 해주는 것 때문이 아닌가 싶네요.
학교에서는-안-가르쳐-주지만-회사에서는-필요한 책들도 대체로
이런건-몰랐지 류로 열심히 놀래켜 주는 것으로 그냥 끝맺는
경우가 많은데, 이 책에서는 프로그래머가 프로그래머로 계속
살아가는데 있어서 프로그래밍에서 보람을 얻고, 프로그래밍에
대해서 꾸준히 열정을 갖고 있을 수 있는 실제적인 방법들을
소개하고 있습니다. 그렇다고 직접적으로 “매일 아침 동쪽 하늘에
절을 하고 프로그래밍신에게 어쩌고저쩌고~” 이런 거는 아니고
고인 물을 깨끗히 하기
위해 매년 한가지씩 새로운 언어를 배워라.. 라던지 텍스트 처리에
좋은 언어를 배워서 프로그래밍과 디버깅이 지겹지 않도록 하라
이런 조언들이 있어서,
늘 하는 일인데 프로그래밍이 지겹고 싫어질 때
내가 그래서 지겨웠구나 하고 깨닫게 될 수 있는 좋은 책입니다. 🙂

GUI의 장점은 WYSIWYG(What You See Is What You Get), 즉 여러분이 보는 것이 여러분이 얻는 것이라는 것이다. 단점은 WYSIAYG(What You See Is All You Get), 즉 여러분이 보는 것이 얻는 전부라는 것이다.
실용주의 프로그래머, p. 139

명세서가 안심용 담요 역할을 해서 개발자들이 코드 작성이라는 무서운 세상으로부터 보호받는 기간이 길어질수록 진짜 코드 작성단계로 옮겨가기는 더욱 힘들어진다. 이런 명세의 순환에 빠지지 말라. 언젠가는 코딩을 시작해야 하기 때문이다! 여러분 팀이 따뜻하고 편안한 명세서 속에 푹 싸여있는 것을 보거든, 밖으로 끄집어내라. 프로토타이핑을 해보거나, 예광탄 개발을 고려해보자.
실용주의 프로그래머, p. 344

참, 그리고 한빛미디어에서 놓쳐서는 안될 그 책!
《Head First Design Patterns》 번역판을 예약판매하는군요.
요새 좋은 책이 번역이 많이 돼서 참 좋습니다~

그나저나 요새 서점에 놀러가면, 컴퓨터 프로그래밍 쪽 서가에
앉아서 책 보는 사람들의 성비가 늘 거의 1:1에 가깝던데..
요새 무슨 일이 있는 걸까요? ;;;; -0-

대안언어축제를 마치고

사진 중 일부는 박영창씨가 촬영한 것입니다.

2달 전쯤에 블로그에 그냥 버스타고 왔다갔다 하던 꿈을 올렸던
“기민한 언어의 날”
행사가 드디어 현실이 되었습니다.
“대안언어축제”라는 이름으로
8월 20일,21일 양일간 강원도 홍천에 있는 대명비발디파크에서
열렸습니다. “뭔가 하긴 했구나!” 생각이 들어서 참 다행입니다. 🙂

기획/준비 단계

대안언어축제의 첫준비는 6월 23일 강남역에서 있었습니다.
당시에 관심을 보여주신 10분이 모여서 행사의 이름을 정하고,
어떤 형식의 행사가 될지, 내용은 어떤 것을 다룰지, 목적은
어떤 것인지, 행사날짜 등을 정했습니다. (놀랍게도 첫번째
모임에서 날짜가 확정이 되어버렸지요!)

그 이후로는 초기의 “통사” 그룹 분들이 다들 바쁘신데다, 리더격을
정하지 않다보니 제대로 굴러가지 않아서 몇번 만남이 띄엄띄엄
있었습니다. 그래서 결국은 7월말까지 거의 결정된 것 없이
시간이 지나가게 되었는데, 그때
자원봉사자들을 뽑기 시작하면서
자봉분들의 활발한 준비로 장소와 준비물 등이 진행되기 시작하였습니다.
그러나 장소는 여러가지 문제때문에
행사 11일 전에서야 결정이 되었고, 아무래도 이런 형식의 행사가
처음이다보니 시간이 많이 걸려서 행사 직전까지 자봉들은
거의 매일 회의를 해야 할 정도로 바쁘게 준비되었습니다.

행사 전날 선발대 활동

행사 전날인 8월 19일에 미리 가서 행사 준비를 하는 선발대A팀과
진흥원지원부분인 간식과 문구류를 사서 가는 선발대B팀이
출발했습니다. 자봉, 통사, 발표자와 진흥원에서 지원해주시는
이재경씨를 합해서 모두 12명이었습니다.

비발디파크에 도착해보니 참 바깥 경관이 좋아서, 뭔가 컨퍼런스만 하고 있기에는 아깝다는 생각이 좀 들더군요. 크.. 하여간, 얼른 준비 숙소가 있던 오크동 8층에 짐을 풀고, 준비를 시작했습니다. 불과 하루밖에 남지 않았는데 준비가 안 된 것이 많아서 여러모로 불안했는데, 작은 인덱스 카드에 작업을 나눠서 하다보니 사람이 많아서 생각보다 금방금방 끝나더군요. 🙂

저녁엔 본 행사장인 에메럴드룸으로 옮겨서 다음날 개회식에서 쓸
대안언어 도미노를 만들었습니다. 많은 분들이 여러개의 언어로 열심히 만드셔서, 저는 그냥 awk만 만들었습니다. 너무 짧아서 뻘쭘;; _-_

행사 첫날 13:40 – 개회식

드디어 행사 첫날이 되었고, 막판 개회식 준비로 다들 여념이 없었습니다. 역시 바쁘면 안 되는게 많아서.. 도미노는 제대로 안 굴러가는데 막 서울에서는 차가 하나도 안 막혀서 30분 일찍 도착한다고 하니 참 애가 타더군요. 므흐..

막상 주자분들은 일찍 오시는데, 네트워크 설치하는 업체에서는 팔당댐에서 차가 막혀서 3시간째 못오고 있다고 하고.. 그런데 세션이 있는 작은 방들에서는 네트워크 필요한 세션들이 다들 첫번째 세션으로 잡혀있고.. 거의 패닉 상태에 갈 무렵, 30분 정도 지체가 돼서 네트워크 업체가 드디어 도착해서 세팅을 하고 간신히 시작을 했습니다. 원래 주자분들을 도착하자마자 숙소로 안내할 예정이었지만 그마저도 비발디파크측에서 이전 체크아웃 시간이 늦어서 3시는 돼야 들어갈 수 있다고 그러고.. 행사 초기에는 일정 변경이 굉장히 심각했지만, 그래도 별 탈없이 지나갔습니다. ^^;

행사 첫날 15:00 – 첫 번째 멀티트랙 세션

제가 맡은 발표세션인 “동적 네임스페이스”는 별로 이름부터 크게 재미있어 보이지 않는 주제로, 아무래도 썰렁하지 않을까 생각하고 조마조마 세팅을 마치고 기다리고 있었습니다. 흐흐. 처음에 딱 2분이 들어오시고 한 5분동안 썰렁~해서 으하하하 웃으며 있었는데, 알고보니 일정이 쭉 밀려서 늦게 시작한다고 하더군요. 흐흐 그래서 작은 방이 꽉 차게 많은 분들이 오셔서 조금 부담이 되었습니다. ^^; 그런데, 준비를 크게 많이 못해서 그런지 참 설명이 여러모로 꼬여서 고생을 많이 했습니다. 전에도 몇번 리허설을 꼭 해야지 생각을 했는데 이번에도 리허설 안하고 그냥 했다가 낭패를 –;

다행히도 이번 축제에서는 발표 세션에서 발표의 비중을 크게 줄이고 대부분을 페어 실습으로 하는 방향으로 미리 발표자 논의에서 정해두었기 때문에 끝 30분정도를 그냥 실습으로 슬쩍.. 흐흐.. 주자분들이 생각했던 것보다 훨씬 파이썬을 많이 하고 계시고, 파이썬을 안 하는 분들도 쉽게 적응하시는 것 같아서 무척 즐거웠습니다. 🙂

행사 첫날 16:30 – 두 번째 멀티트랙 세션

그 다음에는 두 번째 멀티트랙 세션으로 Ajax와 Esoteric Langauge를 했습니다. 저는 퍼즐릿님이 진행하신 Esoteric쪽에
참가를 했는데, 처음으로 한글로 하는 난해한 프로그래밍 언어 “아희”로 프로그램을 하느라 아주 쏙 빠져서 한참을 “밯맣희”이런 코드를 입으로도 읽고 손으로도 치고 하면서 즐거워했습니다.
거의 20명 넘는 분들이 다같이 “아희”코드를 짜면서 으아아아~~
하고 있는 것을 옆에서 보고 있으려니 정말 재미있었습니다.;;

행사 첫날 20:00 – 코드레이스/코드챌린지/마인드스톰

저녁을 먹고 멀티트랙 놀이시간에 들어갔습니다. 코드레이스는
통사들이 해설과 진행을 맡고 4~5명으로 구성된 팀들이 계속
추가되는 요구조건을 만족시켜가며 순간 순간 점수를 받아서
최종적으로 점수를 많이 받는 팀이 이기는 게임이었습니다.
중간에 요구사항 변경을 팀들이 직접 발표할 수도 있고, 자기의
요구사항 변경을 10분안에 구현하지 못하는 경우의 감점 같은
여러가지 점수 제도 때문에 참가하는 팀이 재미있게 할 수
있었습니다. 또한, 스타리그 중계처럼 앞에 3명이 앉아서
각 팀의 순간순간 전황을 해설하며 얘기를 하고 있는 것도
재미있고, 앞으로도 많이 발전할 수 있는 게임이 확실합니다. 🙂
그런데, 아무래도 코드레이스를 좁은 방에서 참가자들만
있는 채로 해버려서 관중이 없어서 해설해도 공중에 하는
것이다보니 별로 말을 못해서 약간 그렇더군요. 크흐.

옆 방에서는 코드 챌린지와 마인드스톰을 했다고 합니다. 가 보지는 않아서 잘 모르겠지만.. ^^; 코드 챌린지는 여러 정보경시대회 스타일의 문제를 힌트로 해서 숨은 URL 찾기를 하는 놀이인데, 나중에 참가자들의 말을 전해 들으니, 재미있게 진행된 것 같았습니다. 🙂 상품도 좋고~ 마인드스톰에서는 원래 뭔가 만들기를 하려고 했는데, 자봉/통사 중에서도 아무도 마인드스톰을 해 본 사람도 없는데다가, CD를 빼먹고 오는 바람에 결국은 레고놀이로 했다고 합니다 흐흐;;

행사 첫날 22:00 – 양과 치타또는 늑대 놀이

밤 시간에 원래 하려고 했던 장기자랑이 아무래도 분위기를 식힐 것 같다는 판단에, 대신 치타와 양 (몇몇 팀은 늑대와 양) 놀이를 했습니다. “땀 안 흘리는 야외 놀이”를 할 예정입니다. 라는 말에 주자분들은 얼떨결에 밤에 밖에 맨손으로 나가셔서 어리둥절했지만, 규칙을 설명해 드리고 게임을 하고 있으니 막 재미있다고 계속 하자는 분도 계시고.. 🙂 프로그래머들 아니면 누가 이런 게임을 할까 싶지만 프로그래머들에게는 정말 재미있는 게임이었습니다!

행사 첫날 23:15 – OST (Open Space Technology)

첫날의 마지막으로 OST 시간을 가졌습니다. OST는 1200명까지 토론을 할 수 있는 집단 토론 기술로, 벌과 꽃의 메카니즘 같은 재미있는 것을 수용한 재미있는 방법이라고 합니다. 🙂 우선 발제자들 몇 명이 나와서 어느 자리에서 뭘 토론합니다. 하고 화이트보드에 적고 가면, 사람들이 자기가 토론하고 싶은 곳으로 가서 토론을 하다가 아무때나 다른 곳에 가고 싶을 때 여기저기 왔다갔다 하면서 토론을 하는데, 중간에도 계속 화이트보드에 새로운 주제를 낼 수 있기 때문에, 짧은 시간 안에 많은 사람들이 다양한 주제로 토론을 할 수 있습니다. 결국은 프로그래밍 언어와 기호학 , 대안언어 회사에서 쓸 수 있나 같은 주제 외에도 커피에 대한 모든 것, 한국 개발자들의 노동 조건 같은 주제까지도 재미있게 이뤄졌습니다. 🙂

행사 두째날 10:30 – 세번째 멀티트랙 세션

두째날 아침에는 세번째 멀티트랙 세션으로 김창준님의 EDSL, 승범이의 Squeak이 있었습니다. 저는 DSL(Domain Specific Langauge)가 적용이 가능한 부분에 요새 관심이 많은 터라 EDSL에 참가하였는데, Squeak도 옆에서 들려오는 승범이의 낭랑한 목소리에 아아 아쉽다 아쉽다 하면서 있었습니다. 🙂

EDSL 세션에서는 기존 언어 문법을 거의 그대로 활용하면서도 DSL의 장점을 그대로 쓸 수 있는 방법을 배웠습니다. 실습시간에는 저는 C 선행처리자를 이용한 EDSL을 해 봤는데, CJKCodecs의 ISO2022 코덱이나 multibytecodec 구현에서도 C 선행처리자로 이것저것 지저분하게 많이 해 뒀는데, EDSL 개념을 알고 구현했으면 좀 더 보기 좋은 코드가 나왔을 것 같은 생각이 들더군요~

행사 두째날 12:00 – 폐회식

폐회식도 뭔가 대안적인 방법을 찾아보다가, 자봉단이 장시간 보리차를 마시면서 토의한 결과, 회고를 전지를 놓고 마음껏 그리고 쓰는 것으로 했습니다.
우선 테이블에 앉은 사람들이 글자로 좋았던 점과 개선되었으면 하는 점을 쓴 다음에, 다른 전지를 하나 받아서 크레파스로 말을 전혀 하지 않고 문자도 안 쓰고 그림만 가지고, 느꼈던 점과 다음 행사에 바라는 점 같은 것을 쓰는 것으로 했습니다. 그런데, 그림이 아주 기상천외한 것이 많아서, 다른 테이블 사람은 커녕 옆사람이 봐도 못알아보는 것이 많아서.. 무지 재미있었습니다. 크흐~

행사 두째날 12:30 – 점심식사, 기념촬영

토요일 점심부터 일요일 점심까지 모두 4끼를 먹은 곳은 메이플동 지하의 오리엔탈 익스프레스라는 곳이었습니다. 여기가 제법 비싸기는 하지만, 보통 게를 안 넣는 음식에다가 게를 계속 넣어줘서 인상이 깊었습니다. -ㅇ-; 마지막 점심에는 장어덮밥! 꺅~~;

되돌아보며

이번 행사는 국내에서는 전례가 없던 실험적인 포맷으로 가득 채운 행사이니 만큼 성공할 수 있을지에 대해서 무척 기대가 많았습니다. 특히, 계속 일정이 지연되면서 정작 추진은 안 하면서도 조바심나고 그랬었는데, 여러 자봉분들과 김창준님, 승범군의 헌신적인 준비로 얼마되지 않은 시간동안 큰 일을 이뤄낸 것 같아서 무척 기쁩니다.

코드레이스, 치타와 양 같이 이번에 특히 재미있었던 새로운 형식들은 앞으로 좀 더 재미있게 할 수 있을 것 같다는 확신이 들었고, 일반 세션들도 페어 실습의 비율을 계속 높이는 것으로 하품나는 지루한 발표에서 탈출할 수 있다는 것도 느꼈습니다.

로제타 카드를 이용한 활동이라던지 사람들끼리의 활동을 촉진하는 활동이 뒤에 나오기 시작해서, 앞에서 활발하게 활동하기가 힘든 분위기 였다는 점은 다음에 개선하면 좀 더 흥분되는 행사가 될 것 같습니다.

이번 축제 준비로 정말 수많은 시간과 노력을 한 통사, 자봉 여러분 정말 진심으로 감사하고 있습니다. 그리고, 주자 여러분들도 지금까지 가 본 어떤 행사보다도 열린 마음으로 능동적으로 참여해 주셔서 준비가 미흡했음에도 불구하고 축제가 성공할 수 있었던 점 한동안 잊지 못할 것 같습니다. 🙂

또한 참가비만으로는 도저히 꾸릴 수 없는 행사였기에, 재정적으로 대부분을 지원해 주셨던 한국소프트웨어진흥원과 진행에 많은 도움을 주신 이재경씨께도 참 고맙게 생각합니다. 다음에도 많은 지원 부탁드립니다.;; _-_

시간표 정도는 자동으로

복학 준비를 하면서, 어제 신촌으로 이사도 하고 준비가 착착 되어가고 있습니다~
이제 내일부터는 수강신청인데, 항상 할 때마다 과목끼리 충돌 검사도 하고, 주4를 만들려면 어떻게 해야하나 항상 고민을 하는게 참 귀찮았습니다. 그래서, 아무래도 이런 작업은 사람이 할 일이 아닌 것같아서 자동으로 선호도를 입력하면 시간표를 만들어 주는 스크립트를 하나 만들었습니다. 으흐흐~

우선 입력값으로 들어가는 것은, 후보 과목들의 기본 정보들과 각 수업의 대체 그룹 (같은 그룹에서는 1과목만 신청하게)을 CSV로 지정해서 그것을 프로그램에서 읽어옵니다. 그리고, 그 외의 정보로 따로 들어오는 것은

  • 신청 학점 (최소, 최대)
  • 주4일 선호 가중치
  • 주3일 선호 가중치
  • 학교에 있는 시간 가중치 (-로 주면 가급적이면 공강을 줄임)
  • 이른 아침 시작 가중치 (-로 주면 아침 수업을 피함)
  • 저녁 수업 가중치 (-로 주면 저녁 수업을 피함)
  • 과목별 선호도 (학점에 곱함)
  • 수업 과집중 가중치 (-로 주면 수업이 너무 많이 몰리는 것을 피함)

으흐흐 그래서 시간표를 몇 개 뽑아 봤더니 직접 손으로 짠 것보다 만족스러운 것이 몇개 나오는군요~ 수강신청 하다가 몇개 꽉 찼을 때도 대안 시간표를 쉽게 새로 생성이 가능!

CSV 파일 형식은 이런 식으로 입력합니다. (그룹,가중치…,학점 순)

소스는 snippets/aratt에 있습니다. (프로그램 이름은 Arranger for the Relaxed Assembly of TimeTable 에서 따왔습니다. -_-;) 라이선스는 언제나 그렇듯 libpng/zlib license를 적용합니다.