Link

우리가 사용하고 있는 리눅스 그 자체는 커널을 의미합니다. 커널이 운영체제의 핵심 부분이라는 것은 틀림없는 사실이지만, 그것만으로 운영체제의 역할을 수행할 수 있는 것은 아닙니다. 현재 사용되고 있는 GNU 시스템은 리눅스를 기반으로 한 운영체제이며 이는 리눅스를 커널로 채택한 일종의 변형된 종류의 GNU 시스템이라고 할 수 있습니다.

….

유닉스 형태의 자유 운영체제를 개발하기 위한 또하나의 프로젝트로 UC 버클리 대학의 BSD가 있습니다. BSD의 개발자들은 GNU 프로젝트와 그 개발자들에게 많은 영향을 받았지만, 실제적인 작업에 있어서는 GNU 시스템과 중복되는 부분이 없다고 볼 수 있습니다. 물론, 두 시스템 모두 서로의 프로그램을 조금씩 차용하고 있기는 하지만 전체적으로 볼 때 이들은 독립적으로 발전하고 있다고 할 수 있기 때문에 오늘날의 자유 운영체제는 크게 GNU 시스템과 BSD 시스템 두개의 영역으로 구분할 수 있습니다.

현재, 우리는 대부분의 작업에 리눅스 기반의 GNU 시스템을 이용하고 있으며 이 시스템의 사용을 많은 사람들에게 권장하고 있습니다. 그러나 리눅스를 커널과 운영체제의 이름으로 혼동해서 사용하는 지금의 경향에서 벗어나서 커널을 의미할 때는 리눅스라는 이름을, 운영체제 전체를 지칭할 때는 GNU라는 명칭을 사용해 줄 것을 간곡하게 당부하고 싶습니다.

Link

요즘 이준구 교수님의 컬럼이 너무 좋다.

고교시절 아침 7시까지 등교해 밤 11시 하교, 독서실에서 새벽 2시까지 공부하고 셔틀버스를 타고 집으로 돌아왔던, 살인적인 스케쥴을 소화했던 한 사람으로서 교수님의 지적이 무척 와닿는다. 매일 새벽 2시에 들어왔다가 7시에 나가는데 제대로 쉴 수 있을리 없다. 항상 오전엔 꾸벅꾸벅 졸아대며 결국엔 늦게 등교하는 것과 다를 바 없게 된다.

누군가 그렇게 하면 안된다고, 저녁에 일찍 들어가서 자던지 아침에 푹 쉬고 늦게 나오던지 제대로된 방법만 일러줬어도 그때처럼 바보 같은 짓을 수 년간 반복하진 않았을텐데.

우리세대 부모님들은 교육열만 충만했지 어떤게 제대로 된 교육인지 전혀 알지 못했다. 물론 지금도 그런 바보같은 일이 반복되고 있지만 적어도 나는, 내 아이들에겐 반드시 제대로 된 교육을 가르치고 싶다.

Link

데스크탑 메일 알리미는 거의 없었고 그나마 있는 것도 대부분 지메일 전용이었다. 그래서 업무 메일을 실시간으로 확인하기 위해 ‘한메일 안읽은메일 알리미’를 직접 만들었다.

Text

K-Ranker

지난 번 공개한 Curve Fitting 알고리즘을 실제 코드로 구현했다. 언어는 Java를 사용했다.

이번에는 시간이 부족해서 문서나 주석을 영어로 작성하지 못하고 사내에서 한글로 작성했던 그대로 올렸다. 사실 글로벌한 개발 생태계를 위해선 당연히 영어로 모든걸 작성하는게 옳지만 사내에서는 영어로 적다보면 한글로만 표현 가능한 독특한 명칭들 때문에 난해해지는 경우가 잦다. 예를 들어 “매출” 같은 고유 명칭을 MAECHUL이라고 할 수 없고 Sales라고 하기엔 간극이 너무 크다. 가능한 영어를 써야겠지만 난해함을 줄이기 위한 한영 혼용을 권장한다. 아울러 오픈소스로 공개할땐 당연히 모두 영어로 변환해야겠지만 시간이 많이 필요한 한계가 있어 지금처럼 한글을 그대로 내보낼땐 다소 아쉽다.

한글을 너무너무 사랑하지만 세상은 영어를 중심으로 돌아가니 참 풀기 어려운 문제다.

Text


Dennis Hong 교수님의 강연 정말 대단했고 재밌었습니다.
요 근래 경험한 최고의 강연이었습니다. 훌륭한 인사이트 많이 얻어갑니다.

Text

피보나치 수열의 마법


피보나치수열의 마법 / YTN 사이언스방송을 보다가, 중간에 아서 벤자민 교수의 얘기가 나온다. 아니나 다를까 찾아보니 작년에 TED에서 했던 강연의 일부다. 그는 수학을 ‘inspiration’ 영감을 얻는 아름다움의 관점에서 접근했고 피보나치 수열이 얼마나 아름다운지를 소개했다. 단 5분의 발표였지만 내게 강한 인상을 남겼고 한 동안 그 아름다움에서 헤어나오지 못했다.

Text

좋은 개발자에 대한 생각

취업시즌이 되면 나오는 얘기가 있다. 개발자는 처우가 안좋다느니 3D 업종이니 하는 얘기들. 그러면서 공대 기피현상이 사회문제로 등장한다. 하지만 개발자는 IT 기업에서 최고의 대우를 받는 직종이고 타 직군 대비 평균 임금도 높다. 게다가 좋아하는 일을 자유롭게 할 수 있는 만큼 이걸 3D라고 표현하는건 지나친 자조에 가깝다.

지속적으로 재미없고 힘든 일이라는 생각이 든다면 하루라도 빨리 다른 직업을 찾아보는게 좋다. 매일 야근을 해야할만큼 업무가 과중하다면 먼저 본인이 시간 관리를 효율적으로 하는지 되돌아볼 필요가 있다. 정작 주간에는 엉뚱한 일로 시간을 흘려버리는건 아닌지. 그럼에도 불구하고 하루종일 밥먹을 시간조차 부족할만큼 격무에 시달린다면 두 가지다. 정말로 일이 많거나 개발자로서 자질이 부족한 경우다. 전자는 안타까운 경우다. 하지만 더 안타까운 경우는 오히려 후자다. 아무리 처우가 좋다한들 소질이 없으면 빨리 다른 직업을 찾아보는게 맞다. 창의성이 부족한, 그저 시키는 일만 하는 친구들은 더 이상 성장할 수 없다. 본인도, 주변에서도 모두가 힘들어질 뿐이다.

나는 ‘자폐증’에 가까울 증도로 geeky한 친구를 좋아한다. 그런 친구들은 기술에 대해 집착에 가까울만큼 깊이있게 파고들며 문제를 low-level에서 해결하는 능력이 높다. 끈기가 부족하다는 단점이 있지만 ‘동기 부여’만 된다면 놀라운 생산성을 발휘한다. 좋은 매니저의 역할은 ‘동기 부여’를 잘 하는 것 뿐이다. 가치와 성취감을 부여해 줄 수 있다면 다른 사람이 몇 개월은 해야할 일을 단 몇 주만에 해결하기도 한다. 물론 팀 구성원은 다양한 인물들로 구성된 ‘조화’가 중요하고 ‘끈기’ 또한 ‘창의성’ 못지 않게 중요하다. 하지만 개발 방향을 제시하는 핵심적인 역할은 이런 geeky한 친구들의 몫임은 분명하다.

좋은 개발자는 항상 모자란다. 이미 글로벌 인재 전쟁은 시작됐다. 본인이 개발에 소질 있다는 생각이 든다면 꾸준히 정진하여 좋은 개발자가 되어라. 창의적인 개발자가 되어야 한다. 시키는 일만 잘 하는 개발자는 언젠가는 기계로 대체되겠지만 ‘창의적’인 개발자는 절대 기계가 대체할 수 없다. 오히려 좋은 개발자를 찾기 위한 수요는 앞으로 더욱 늘어날 것이다.