《한국전쟁》

이 책은 사실 《도덕교육의 파시즘》을 살 때 운송료를 공짜로 해보고자 3만원 채우기 위해서 넣은 책인데;; 그 영향인지 한참을 안 읽고 쌓아뒀다가, 요즘 시험기간이라 주의가 매우 산만해져서 결국은 이 책을 다 읽고 말았습니다. –;;

이 책은 한국전쟁이 일어나기 전에 일제시대부터 한국전쟁에 영향을 줄 수 있었던 여러가지 배경들부터 전쟁 중, 휴전 협정, 정전 이후의 영향 등에 대해서 정치/국제/사회적인 분석을 하고 있습니다. 즉, 전술과 상세한 과정을 다룬 전쟁사책은 아닙니다. (저는 사실 그런 줄 알고 샀습니다. 전쟁사책을 좋아해서 -O-)

그동안 반공이데올로기가 지나치게 과장된 교육을 받아온 20대 이상의 대부분의 국민들이 잘 모를만한 내용이 책에 여러가지 설명이 되어 있습니다. 이미 학계에서는 누구나 아는 사실고 다같이 동의를 하는 사실인데도, 일반인들이 들으면 “뭣이!!”하고 놀랄 것들 말이죠.. 일부러 알려고 노력하지 않았기에, 저도 이런 중요한 사실들을 잘 몰라서 조금 더 흥미롭게 읽을 수 있었습니다.

책에서 주로 다루고 있는 주제들은 다음과 같은 것이 있습니다.

  • 한국전쟁은 왜 일어났는가?
  • 누가 전쟁을 일으켰는가?
  • 누구의 책임인가?
  • 왜 하필이면 50년 6월 25일에 일어났는가?
  • 왜 북한군은 낙동강까지 밖에 못 내려갔는가?
  • 유엔군은 왜 38선을 넘었는가?
  • 왜 압록강까지 다 가서 또 밀려 내려왔는가?
  • 과연 중공군의 인해전술은 진짜 전술인가?
  • 왜 중공군은 대전까지밖에 안 내려갔는가?
  • 51년 여름부터는 왜 전선의 변화가 별로 없는가?
  • 미국은 왜 이승만을 제거하려고 했는가?
  • 북한이 망하면 북한땅은 남한의 통제하에 들어가는가?

해방이 되었을 때 김구나 이승만을 포함한 여러 세력의
정치적인 다툼이나 국제협정의 오해, 국제정치적 미숙으로 인해
결국 남한만의 선거가 이뤄지는 등의 전쟁 전의 정치
상황은 별로 국사 교과서에서 본 적이 없는 것 같은데,
상당히 충격적이었습니다. 그리고, 소련과 중국이 전쟁에
상당히 소극적이었고 되도록이면 안 하려고 했던 것도
교과서에서는 알 수 없었던 것이지만, 당시 국제 상황으로
보면 당연한 것으로 볼 수 있다는 사실도 설명되고 있구요.

그리고 중국과 소련이 거부권이 있는 안전보장이사회 상임이사국
임에도 불구하고 유엔군이 파견될 수 있었던 것도 고등학교때
참 궁금했는데, 중국은 당시에 국민당정부가 유엔 대표였고,
소련은 중국 대표를 마오쩌뚱계열로 안 바꿔준다고 삐져서 안 나오고
시위중이었다는군요. -O- 하여간 그런 사소한(?) 몇가지 일이
뒤에 미친 영향은 정말 대단한 것이라는 것이..

그 외에도 유엔군에 참여한 많은 국가들이 자발적으로 참여한 것이라기 보다는, 미국이 참전 안 하면 마셜플랜의 원조를 안 해준다고 선언하는 바람에 참여하게 된 것을 보면 미국이 그때도 힘이 참 대단했구나 느낍니다. 또 하나, 이 책을 안 보더라도 꼭 알아둬야 할 것 하나를 꼽자면, 대한민국은 유엔에서 선거가 가능했던 지역에 한하여 정부 영향력을 인정하고 있기 때문에, 지금 현재 정부의 이북5도청은 국제법적으로는 근거가 없는 기관이고, 북한이 망해도 유엔이 먼저 들어가야 한다는군요.

이 책을 보면서 이승만에 대해 느낀 점이 참 남베트남 대통령들하고 닮았다는 점입니다;; 미군만 믿고 북침을 하겠다고 막 설치지를 않나, 정전협정 하는데에도 얼마나 죽던 북한 끝까지 밀어야 속이 후련하다고 협정에 결국 조인을 안 해서 휴전협정서에 남한측 대리인의 싸인이 안 되어있다고 합니다. -O- 전쟁 중에 전선에 있는 부대들 병력을 빼서 국회를 장악하고 계엄령을 내리는가 하면.. 《베트남 10000일의 전쟁》을 읽었을 때 남베트남 정부의 어이없음을 골고루 갖춘 게.. 지금은 한국이 그래도 그 정도는 아니라서 다행이다하는 생각이 들었습니다;

이 책은 한국전쟁과 관련된 여러 다큐멘터리에 고문역할도 하고 학부 교양 강의도 하신 교수님이 쓰신 것이라, 일반인도 쉽게 읽을 수 있게 쓰여진 책입니다. 그럼에도 불구하고 굉장히 객관적인 논조를 유지하려고 세심한 배려를 하고 있어서, 읽는 사람이 편견을 가지지 않고 자기가 진실을 판단할 수 있도록 도움을 주고 있습니다. 즉, 자신의 논점을 직접적으로 노출하는 것이 아니라, 학계의 여러 연구자료와 가설들과 논박들을 골고루 소개하는 점에서 신경을 많이 썼구나 하는 느낌을 받을 수 있었습니다.

좌우합작운동은 우리에게 또 하나 중요한 교훈을 남겼다. 사회 지도자는 중요한 시기에는 죽어서는 안 된다는 것이다. 그는 한 개인이 아니라 공인이기 때문이다. 좌우합작운동을 실패에 이르게 한 것은 바로 여운형이라는 한 지도자의 죽음이었다.
책 p.111

파이썬 3000의 bytes 타입

파이썬 3000에서 모든 클래스의 new style class 화 이외에 가장 큰 대공사급인 bytes 타입이 엊그제 들어왔습니다.

이제 bytes 타입이 완료가 되면, str이 unicode로 바뀌고, unicode는 없어집니다. (!) 물론 bytes 타입에서는 str에서 제공하던 islower, toupper 같은 문자열 메쏘드는 제공되지 않습니다.

^^; 자바나 .NET 기반으로 쓰시던 분들께는 익숙한 상황으로
가는 것이겠지만, C 프로그래머들은 이제 난감하게 되었네요.
으흐흐.. 입문자들에게 장벽이 되지 않도록 이해하기
쉬운 모양으로 발전하면 좋겠습니다.

변하지 않는 것

많은 것이 달라진 듯 보이지만, 실제로는 대부분이 그대로인 법입니다.
MBC드라마 《궁》에서 혜경궁이 황후에게 서로의 처지가 바뀌었다고 하자, 황후가

날이면 날마다 새로운 것이 쏟아져 나오는 세상인 것 같지만, 사실은 별로 그런 것 같지는 않습니다.
강유원의 재미없는 철학 이야기 2006년 4월 22일 방송

사람은 뭔가를 볼 때, 항상 변한 것을 주목하게 됩니다. 끊임없이 엄청나게 많이 들어오는 양의 정보를 효율적으로 처리하기 위한 방법으로 항상 눈은 자기도 모르게 움직이는 물체에 초점을 맞춥니다.

소스의 변경사항을 메일링 리스트 같은 것으로 볼 때에도 항상 무엇이 바뀌었나를 받습니다. 그러나, 그 소스 일부가 바뀌는 도중에도 대부분의 나머지 다른 소스는 바뀌지 않은 상태로 있고, 바뀌어야 하지만 바뀌지 않은 부분과, 원래 있었던 문제점은 알아챌 수 없습니다.

쟁점이 되는 입법 사안으로 매일같이 싸워대는 정당들도 사실은 같은 의견을 가진 것들이 더 많이 있습니다. 매일 매일 오늘은 출근길 차가 어디가 막히고 어디는 괜찮고 그러지만, 사실 전체적으로 보면 매일 막히는 곳은 막히고, 한산한 곳은 한산합니다. 무언가 잘못한 것이 있어서 벌을 받고 있는 학생도 사실은 더 많은 면에서 칭찬할 것이 있습니다.

그냥.. 시험공부하려니 딴생각만 하다가.. 변하지 않는 것이 무엇인가를 유심히 보면 깨달을 수 있는 사실들이 제법 있지 않을까 생각을 이리 저리 해 봤습니다. f'(x)=0 이더라도, f(x)≠0 이기도 하고, 심지어 F(x)는 움직이기까지 하는 것처럼 말이죠..

구글 Summer of Code 2006

작년에도 굉장한 인기를 끌었던 Google Summer of Code가 올해도 더욱 더 커진 규모로 시행될 계획이라고 합니다. 이미 FreeBSD 프로젝트나 파이썬 소프트웨어 재단같은 멘터 기관들은 내부적으로 멘터들을 모으고 프로젝트 아이디어들을 모으느라 부산하게 움직이고 있습니다.

올해도 작년과 같이 각 단위당 학생 4500달러, 멘터 500달러로 상금을 주고 둘에게 각각 구글 티셔츠를 1벌씩 준다고 합니다;; 작년에도 프로젝트들이 대다수가 성공해서 상금을 받아간 것을 보면, 올해도 결과들이 무척 기대가 됩니다. 올해는 한국에서도 많이 참가해서 커밋로그에서 많이 보게 되었으면 좋겠네요~ 5월 1일 부터 참가 접수가 시작되고, 5월 8일에 참가 접수 완료해서 5월 22일에 멘터-학생 매치가 완료된 뒤에 발표가 나서 시작한다고 합니다.

약간 좀 거시기한 것은, 6월 말까지 중간까지 진행해서 중간 보고를 하기 때문에 한국의 학사일정하고는 안 맞아서 정작 설렁설렁 다니는 학생이 아니면 일정 맞추기가 쉽지가 않긴 한데.. 흐흐.. 아쉽네요~ (저도 7월까지 빡시게 여름학기를;;;)

대안언어축제 2006 기획

작년에 대단한 반향을(스스로 생각하기엔 ㅋㅋ;;) 일으켰던 대안언어축제 2회를 올해 여름에 다시 개최하고자 하는 움직임이 일고 있습니다. 이번에는 일본의 LLDN이나 다른 컨퍼런스 들에서 얻은 새로운 아이디어들을 더 모아서, 더욱 더 신선하고 재미있는 컨퍼런스가 되면 좋겠네요. +_+

우선은, 지난 번에 대안언어축제이기는 했지만, 언어교환의 측면에서 약간 부족했던 면을 보완하기 위해서, 각 언어별 튜토리얼 세션을 공식 세션으로 넣기로 하였습니다. 언어별 튜토리얼 세션을 물론 각 언어별로 따로 따로 하면 상당히 식상하고 졸리기 때문에 비슷한 언어 몇 가지를 묶거나 전혀 다른 언어 몇 개씩을 묶어서 각 언어의 구루들이 패널로 참가하여, 비교언어학이나 인지언어학을 공부할 때처럼 각 언어의 meme을 느낄 수 있는 통합적인 튜토리얼 세션이 되면 좋겠습니다.

그리고, 참가자 간의 활발한 교류가 지난 번에는 의도대로 잘 되지가 않았는데, 아무래도 일정이 빡빡하고, 자봉과 통사들의 회고에서 행사 처음에 참가자간의 사회화를 덜 했기 때문에 그런 것 같다는 짐작을 했습니다. 그래서, 이번에는 아무래도 축제로써의 의의를 강화하기 위해서, 초기부터 교류를 활발하게 할 수 있도록 일정 진행에 여유를 많이 두고 재미있는 야외활동이나 놀이 같은 것을 많이 넣으면 좋을 것 같네요. 요새도 창준형이 재미있는 놀이를 많이 개발했다고 합니다. ^_^

인기에 힘입어 결국 독립 행사로도 치뤄진 코드레이스는 좀 더 확실한 준비와 완벽한 장비 세팅으로 매끄러운 진행이 이뤄지면 분위기를 확 띄우는 좋은 계기가 될 듯 합니다.

요새는 우리나라 개발자 커뮤니티들이 확실히 부흥기를 맞고 있는 느낌이 많이 듭니다. 대안언어축제 2회에도 많은 분들의 능동적인 참여가 있어서 세계에 수출하는(;;) 좋은 행사가 되었으면 합니다. 🙂 7,8월에 활동 할 수 있는 시간이 많으신 분들은 자봉으로 활동하시면 더욱 더 보람을 느끼실 수 있을 것 같고, 자신의 언어를 소개하고 싶은 분들도 여러 세션들을 맡아서 해 주시면 좋겠고~ 자세한 일정이나 계획은 다음에 좀 더 잡히는 대로 알려드리겠습니다.

오픈소스는 어떻게 먹고 사는가?

오늘은 두 번째로, “오픈소스는 어떻게 먹고 사는가? (podcast)“에 대해서.. 🙂 — 휴대용 mp3 플레이어가 있는 분은 오른쪽에 있는 RSS 아이콘을 눌러서 iTunes 같은 걸로 받아서 들으시면 더욱 좋습니다. -O-

오픈소스 개발자들은 주로 어떤 회사에서 일하고, 회사들은 오픈소스를 하면서 과연 어떤 방법으로 먹고 살까에 대해서 대표적인 사례들과 패턴 몇 가지를 소개해 드립니다. 자세한 내용은… (생략) -ㅇ-;;; 이거 아무래도 서투른데다가 말로 하다보니 편집이 쉽지가 않아서, 틀린 말도 있는데 그냥 남겨두게 되었네요.. 다음에 글로 깔끔하게 정리를.. 크흐;

나중에 녹음된 것을 듣다보니, 오픈소스가 꼭 열역학 제 2법칙처럼, 장시간, 큰 규모에 더욱 잘 적용이 되는 것 같은 느낌이 드는데.. 작은 규모에서는 어떻게 시작할 수 있는가를 다음 주제로 한 번 잡아 보겠습니다. ^^;

최근 얼마 간의 데이터 쌓기

예전에 회사에서 일할 때, 초당 30만건 정도 들어오는 자료의 빈도를 세서 누적 데이터를 기준으로 5분, 1시간, 1일, 1주, 1달, 1년 최다 순서로 100개 정도씩을 보여주는 루틴을 만들 일이 있었습니다. 그 때는 뭐 회사 프로젝트도 검수 기간도 다 끝나고 영 제값 못 받고 한다고 생각하는 프로젝트였기 때문에, 그냥 대충 가장 단순하게 막 구현을 했더니 오방 느려서 하드웨어빨로 버티고 있었습니다. 나중에는 각 샘플링 별로 상위 10배수를 뽑아서 나머지를 버리는 등의 튜닝을 약간 해서, 처리속도가 데이터 들어오는 것을 못 따라가는 문제를 약간 해결해야하긴 했습니다. 🙂

물론 이렇게 하면, 정확한 이산 데이터를 합해서 하기 때문에 아주 정확한 자료를 얻을 수 있다는 장점은 있지만, 통계 기간에 들어가는 샘플의 수가 워낙 많기 때문에 속도의 문제나 기간의 제한 등 여러가지 문제가 산적해 있었습니다. 특히 가장 문제는, 샘플 저장 수를 줄이기 위해서 장기간의 통계용 샘플들은 정밀도를 줄여서 5분 데이터를 모두 모아서 1시간 데이터로 만드는 등의 작업을 거치기 때문에, 업데이트가 바로바로 되지 않는 문제가 있었습니다. 그래서, 그때는 그냥 뭐 병특도 끝나가고 해서 대충 넘어 갔는데 -ㅇ-, 얼마전에 여자친구 숙제를 도와주다가, 커널에서 load average 계산하는 방법을 보고서 이것을 게시판의 “최근 뜨거운 글 100개 목록”이나, 네트워크 장비들의 “최근 다발 접속 IP 100개” 같은 통계에 쓰면 좋겠다는 생각이 들었습니다. +_+ 벌써 다른 데서는 다 쓰고 있었는지도 모르겠지만; 이렇게 되면 보통 하듯이 하루 단위로 리셋되지 않고 부드럽게 꾸준히 업데이트되기 때문에 비교적 부하를 줄이면서도 쓸만한 데이터를 얻을 수 있지 않을까 싶네요~

그래서, 그 방법이 무엇이냐!
간단히 요약해서 다음 수식으로~

커널 소스코드에서는 sys/kern/kern_synch.c 부분에 있습니다.
x가 로드이고, s가 새로 들어오는 샘플, window가 원하는 통계 기간의 샘플 수 입니다. 이렇게 하게 되면, 새로 들어오는 샘플은 1-1/exp(1/window) 의 비율로 들어가고 그 다음부터는 1/exp(1/window)가 계속 곱해져서 살짜쿵씩 사그라듭니다. 적당히 원하는 보존 기간을 지나가면 무시할 수 있을 만큼의 비율로 없어지기 때문에, 데이터 값 1개만 유지하고서도 이산형 데이터 모두를 저장하는 부담을 줄일 수 있다는 점에서 그런대로 쓸만한 방법인 것 같네요. +_+

그래서, 과연 이 놈이 진짜로는 어떻게 없어지나 그래프를 한 번 그려 봤습니다. (x 축이 축적 횟수, y축이 최종 데이터의 반영 비율, 샘플 누적 목표는 10으로 했을 때)

그래서 대략 계산해 보면, 10개까지의 데이터들의 반영 비율이 63% 정도 되고, 2배수인 20개까지의 비율의 합이 86%정도 됩니다.
정확한 데이터는 아니지만, 데이터 계산을 연속적으로 할 수 있고 연산/저장량이 많이 줄어든다는 점이 장점이겠습니다.

그런데, 커널에서는 부동소수점 연산을 피하기 때문에, 이런 계산을 좀 더 재미있는 방법으로 하고 있는데, 이것도 한 번 눈여겨 볼 만합니다. 🙂 커널 소스의 cexp라는 fixpt_t형 배열에는 exp(-1/샘플수)의 값이 미리 계산이 되어 있어서 그냥 곱하기만 하면 되게 되어있기 때문에 e 계산이나 나누기를 하지 않아도 됩니다. 그리고, 사실은 이놈이 부동소수점형이 아니라, CPU에서는 정수형으로 취급되는 고정소수점형이라는 것~ 32비트 중에서 왼쪽 21비트를 정수영역, 나머지 11비트를 소수점영역으로 쓰는데, 1<<11 * 소수 이렇게 하면 간단하게 소수점 이하라도 쉽게 변환이 되고, 덧셈 뺄셈도 생각해 보면 그냥 정수 덧셈,나눗셈 인스트럭션으로 될 것을 알 수 있습니다. 그리고, 곱셈도 가능한데 둘을 곱한 다음에 소수 영역 길이인 11비트만 오른쪽으로 시프트 해주면 고정소수점 곱하기 한 것처럼 됩니다. (물론, 손으로 써보면 쉽게 증명이 됩니다. 🙂 후배한테 자랑했더니 요새는 학교에서 이런 것도 가르쳐 준다는군요 -.-;)

뭐 하여간.. 전에 회사에서 바쁘던 와중에 검색을 할 때는 좋은 아이디어가 딱히 안 떠오르고, 검색을 해 봐도 딱히 좋은 알고리즘이 안 떠올랐는데, 계속 곱하기만 해도 줄어든다는 것을 떠올리지 못한 것은.. 아무래도 수학 공부를 안 해서일까요 -.-a 그래서 이번 학기에 공수 불끈! +_+