Be a Cool hacker

영화 위플래쉬 후기

개발용으로 블로그를 만들긴 했지만 내 공간이니 글을 안쓰는 것보다 뭐라도 쓰는게 나을것 같애서 여러 카테고리로 리뷰를 겸할까 한다. 사실 최근에 개발보다는 다른 곳에 관심을 많이 두긴 했지.. 앞으로 뭐라도 짧게짧게 많이 쓰겠다. 스포가 있을수도 있으니 주의해서 읽자.

위플래쉬

불과 몇 분전에 영화 위플래쉬를 봤다. 사실 재즈나 드럼, 여러 음악에 대해서 지식적으로 아는건 없으나 모든 장르의 음악들을 가리지 않고 듣는 편이고 특히 재즈라는 장르를 굉장히 좋아한다. (코딩할때도 많이 듣는다.)

처음 영화는 예고편에서 보는 것처럼 예상되는 캐릭터와 시나리오로 흘러간다. 플렛쳐는 어떻게보면 ‘익숙할 수도 있는’ 캐릭터이다. 폭군이며 최고의 음악을 연주하기 위해 미친듯이 밴드 멤버들을 다그친다. 인신 공격은 기본이고 그들의 부모 욕까지 서슴치 않는다. 하지만 당연히 그의 실력은 최고다. 한 재즈 밴드의 지휘자가 아닌 리더로써 스승으로써 제 2의 ‘찰리 파커’를 찾을려고 한다. 좌절하지 않는.. 그의 캐릭터에 기시감을 느꼈다면(‘익숙할 수도 있는’) 당신은 IT 업계에 좀 관심이 있는 사람일수도 있다. 최고의 제품을 만드려고 그 사람의 감정 따위 아랑곳하지 않고 욕하며 다그치고 미친듯이 일하던 스티브 잡스(혹자는 소시오패스라고도 했다.)의 모습을 떠올릴수도 있고 서점에서 시작해 클라우드, 이제 전 세계의 유통망을 선점하려는 아마존의 제프 베조스(성격이 더럽다는 건 업계에서 이미 유명한 얘기. 플렛쳐와 생긴 것도 비슷하다..) 등 IT 업계에서 성공한 사람들의 모습이 그의 캐릭터에서 보인다.

주인공 앤드류는 드러머다. 어찌보면 영화 초반에서 보여주는 모습은 우리와 닮아있다. 드럼을 치고 최고의 음악학교에 입학했지만 밴드에서 탁월한 재능을 보이지는 않고 있었다. 하지만 플렛쳐와 우연히 만난 기회를 통해 그는 기회를 얻었고 운좋게(실력이 있었지만 플렛쳐를 만난건 운이었으니) 플렛쳐의 밴드에 조인하게 된다. 그리고 까이고 까이고 또 까이면서 자신의 한계에 부딪히며 악보를 통째로 외우고 기회를 얻어내서 메인으로 자리잡게 된다.

플렛쳐라는 캐릭터는 내가 정말 좋아하는 캐릭터이다. 자신의 기준이 있고 최고의 실력이 있는 전문가들은 항상 적이 있기 마련이다. 그 기준에서 벗어나는 사람들이 있기 때문이다. 하지만 그는 그게 중요한게 아니다. 최고의 음악을 만들기 위해서 최고의 밴드를 만들기 위해서는 어떠한 것도 감수할 수 있는 사람이다. “위플래쉬(Whiplash)”는 채찍질이라는 뜻이다. 정말 첫 씬에서부터 마지막까지 플렛쳐는 쉴새없이 앤드류에게 채찍질을 가한다. 두 사람의 긴장이 결국 폭발하는 시점에서도 그는 절대 자신에게 상처받은 영혼들에게 절대 미안하지 않다. 그렇게 다그쳐도 제 2의 ‘찰리 파커’는 좌절하지 않으니까.

이 영화에 명장면, 명대사를 하나씩 꼽자면 앤드류가 처음 플렛쳐에게 폭풍 까이고나서 진짜 스틱에 드럼에 피가 튀길 정도로 연습하는 장면일 것이다. 내 닉인 flowkater 의 flow 는 미하이 칙센트 미하이 교수의 ‘몰입(Flow)’이라는 책에서 따왔다. 무슨 일을 하든 현재, 이 순간에 몰입을 하자는 생각으로 가져왔는데 이 영화는 몰입이라는 게 뭔지 정말 확실하게 보여주는 느낌이다. 그가 몰입하는 모습에 우리도 몰입하게 된다. 영화적 기법이 가미된 이 부분이 내가 이때까지 봤던 어떤 영화보다 ‘몰입’이 뭔지 제대로 표현해주고 있다는 느낌이다.

명대사를 뽑자면 대부분 사람들이 공감할 바로 그 장면에서 한마디이다. 플렛쳐가 앤드류에게 ‘세상에서 가장 쓸데 없는 말이 그만하면 잘했어야’이. (There are no two words in the English language more harmful than good job.) 어쩌면 이 말이 나올걸 알고 있었으나 영화 초반에 보여주었던 플렛쳐와 한계를 계속 뛰어넘으려는 앤드류의 모습을 보면서 정말 뒷통수를 세게 맞은 느낌이었다. 장면, 장면이 대사 하나하나가 내가 보낸 오늘들에 반사되서 비춰지니 단순히 영화로 생각하고 가볍게 넘길 수 있는 장면이 없었던 것 같다.

현실을 살아가다 보면 우리는 항상 한계를 마주한다. 그리고 거기서 우리는 타협을 한다. 처음에 계획했던 원대한 계획들이 다 수포로 돌아가고 스스로를 설득하기에 이른다. 자기합리화. 우리가 말하는 ‘천재’가 되는 지점은 그 한계 어디서부터가 시작이지 않나 싶다. 예전에 대한민국 최고의 피겨 스케이터 김연아는 항상 이만하면 됬어 라는 생각이 들때 2% 더 연습을 한다고 했다. 그 순간 마지막 2%는 어쩌면 20%보다 더 힘든 것일수도 있다. 하지만 그녀는 그 순간 순간을, 한계를 넘으면서 피겨 스케이터 최고의 여왕이 되었다.

이 영화는 나에게 두 가지를 느끼게 해주었다. 천재가 되는 것과 리더로써 어떻게 해야할 것인가.

나는 천재가 아니다. 재능이 없다거나 능력이 없다는게 아니라 그토록 한계를 뛰어넘으면서 무언가를 몰입한 적이 없지 않은가? 그래놓고 어렵다, 힘들다, 이만하면 잘하는 거다 라고 생각하지 않았나. 분명 거기엔 그만큼의 대가가 따를 것이다. 하지만 그게 어떤 대가이든 우리는 천재, 아니 그 가까이라도 가고 싶어한다.

나는 정말 리더로써 많은 문제점을 최근에 느끼고 있었다. 그렇게 다그친적도 없었던 멤버들이 부담을 느껴 떠나기도 하고 오히려 잘해주고 있던 기존 멤버들에게 다그치고 그러지 않았나. 도대체 어떤 문제가 있는건가 사람들을 제대로 이끄려면 어떻게 해야하나.. 정말 답이 안나오는 문제들이다. 그런데 이 영화를 보면서 결국 내가 고민했던 문제들에 대해서 어느 정도 실마리를 찾을 수는 있었다. 나는 일단 정말 잘해야할 것이다. 플렛쳐는 아니더라도 그 비슷하게라도 해야할 것이다. 그리고 최고의 성과를 위해, 최고의 결과를 위해 내 스스로와 싸우고 멤버들과 싸우며 마지막 2%를 잡아야할 것이다. 그것이 나의 역할인 것 같다. 내가 그냥 여기서 만족한다면 그걸로 끝인 것이다. 플렛쳐처럼 인신공격을 한다거나 그러진 않겠지만 중요한건 최고의 성과를 내는 것에 집중해야한다는 것이다. (본질에 집중하는 것)

자기 자신에게 엄격하고 남들에게는 관대하라고 했다. 아니다. 자기 자신에게 더욱더 엄격하고 남들에게도 엄격해야 할 것이다. 그것이 최고가 되는 것이고 최고의 팀이 되는 리더의 역할일 것이다. 일단 나부터 더욱더 엄격해지자. 이만하면 괜찮다가 넘겨버린 많은 과거들을 반성하고 스스로를 벼랑으로 내몰자. 한계까지 가보자. 포기하지말고 좌절하지도 말자. 앤드류가 그랬듯이 나 또한 내가 선택한 길이니까.



난 정해진 ‘한계’를 뛰어넘게 하고 싶었어. I was there to push people beyond what’s expected of them.

그리고 난 그것이 절대적으로 필요하다고 봐. I believe that is an absolute necessity.

그러지 않으면 우린 ‘제 2의 루이 암스트롱’이나 ‘제 2의 찰리 파커’를 못본다고. Otherwise, We’re depriving the world of the next Louis Armstrong. The next Charlie Parker.

찰리 파커가 어떻게 ‘찰리 파커’가 되었는지는 말했었지? I told you about how Charlie Parker became Chrlie Parker, right?

조 존스가 던진 심벌즈를 머리에 맞고. Jo Jones threw a cymbal at his head.

찰리 파커는 젊고 능력이 있었고 Parker’s a young kid, pretty good on the sax.

연주를 맡아 했지만, 망쳐버렸지. Get up to play at a cutting session, and he fucks it up.

존스는 그의 목을 거의 자를뻔했고, and Jones nearly decapitates him for it.

찰리 파커는 비웃음 속에서 퇴장했지. And he’s laughed off-stage.

밤새도록 울었지, 하지만 다음 날 아침, Cries himself to sleep that night, but the next morning,

그가 무엇을 했던가? what does he do?




연습했지. He practises.

연습하고 연습했지. 한 가지 목표만 바라보고, And he practises and he practises with one goal in mind,

‘다시는 비웃음 당하지 않겠다’라는 일념으로 ‘Never to be laughed at again.’

1년 뒤 그는 리노로 돌아가 무대로 올라가, 그 누구도 듣지 못한 세계 최고의 독주를 선보였지 And a year later, he goes back to the Reno and he steps up on that stage, and plays the best motherfucking solo the world has ever heard.

만약 조 존스가 찰리에게 이렇게 말했다고 가정해보자고. So imagine if Jones had just said

“괜찮아 찰리, 그정도면 됐어” “Well, that’s okay, Charlie. That was all right, Good job”

그러면 찰리는 스스로 생각하겠지, ‘음, 내가 꽤 잘했군’ And then Charlie thinks to himself, ‘Well, shit, I did do a pretty good job.’

이러면 이야기는 끝나. End of story.

나한테는, 엄청난 비극이지. That, to me, is ansolute tragedy.

하지만 그것이 요즘 세상이 바라는 모습이니, 뭐. But that’s just what the world wants now.

영어에서 가장 해로운 말이 바로 ‘Good’ + ‘Job’ (그럭저럭 잘했어)야 There are no two words in the English language more harmful than ‘good job’

이 대사를 다시 읽어보니 어쩌면 마지막 그 장면도 플렛쳐의 최후의 ‘위플래쉬(채찍질)’이 아니었을까?

높은 완성도의 안드로이드 앱 개발하기- 기획, 기술, 개발 편

  JCO 후기 글을 쓰면서, 그리고 발표를 하면서 마이크로소프트웨어 잡지에 안드로이드 성능 분석 관련한 글을 기고했다고 말씀드렸습니다.

제목

  저희 글 뿐만 아니라 개발 트렌드나 도움되는 정보들이 많으니 개발자분들은 꼭 구독하시면 좋을 것 같습니다. 1월부터 저희가 높은 완성도의 안드로이드 앱 개발하기 Cerberus 프로젝트 기획, 기술, 개발 세 편으로 3월까지 기고한 글을 공유합니다.

  어떻게, 어떤 방법으로 기획하였는지, 기존의 안드로이드, 자바 기술, 저희가 개발할 때 활용한 부분까지 총망라해서 적었습니다. 참고해보시고 궁금한 사항이 있으면 질문주시면 좋겠네요.

  ps: http://goo.gl/te1b6a 에서 설문을 참여해주시면 정말 감사하겠습니다.

  자료 다운받기 http://goo.gl/0js7uR

방황하는 대학생 프로그래머에게 필요한 것..?

  사실 이 글은 소프트웨어 마에스트로 과정에 대해서 조언을 구하는 후배에게 썼던 메일 내용입니다. 다시 읽어도 졸문이지만.. 처음 시작하시는 분들에게 혹시 도움이 될까 싶어서 제 블로그에도 담아 보려합니다.

  아래는 원문입니다.

Programmer??

14th JCO Conference 발표 후기

  2014년이 시작되고도 3월이 되었습니다. 마지막 포스팅이 작년 10월쯤인가요. 거의 블로그를 버려두다가 이제 좀 더 자주 포스팅을 해야될 것 같습니다. 항상 좀 제대로 된 글을 써야된다는 부담감에 아예 글쓰기를 시도조차 안하는 것 같애서 그냥 제 글의 퀄리티보다는 좀 더 형식없이 자유롭게 글을 많이 쓰자로 가야될 것 같습니다.

  일단 근황은 많은 일이 있었네요. 소프트웨어 마에스트로 4th 연수생 입장으로 프로젝트를 진행하면서 무사히 2단계 합격을 해서 프로젝트를 잘 진행하고 있고 2014년도 마이크로소프트웨어 잡지에도 기고(이건 다시 포스팅할게요.)하고 2월에는 우리나라에서 가장 큰 자바 개발자 행사인 JCO에서 발표를 하기도 했습니다. 그래서 오늘은 그 발표 후기에 대해 한번 써보자! 입니다.

JCO Logo

  JCO는 “국내 자바 개발자들에게 최신 기술과 정보, 트렌드를 전달하고 함께 공유할 수 있는 장을 마련하는 단체이고, 외국 벤더와 외국 커뮤니티와의 교류를 통해서 국내 개발자들에게 최신 자바 소식을 전달해주는 역할을 수행하고 있는 단체입니다.” 라고 소개가 되고 있는데 한마디로 국내 최대 자바 개발자 커뮤니티가 아닌가 합니다.

  실제로 예전에는 JCO 컨퍼런스가 국내 개발자 행사에선 거의 유일한 큰 행사였는데 최근에 NHN에서 NHN Deview 행사, Daum 의 DevOn 등 국내 기업들의 개발자 컨퍼런스가 많이 생기고 있는 것 같습니다. 좋은 현상이죠 :)

14th JCO conference

  어쨋든 지난 2월 22일 제 14회 한국자바개발자 컨퍼런스에서 소프트웨어 마에스트로 4th Cerberus팀 저와 팀원 두 명이 발표 무대에 서게 되었습니다. 아직도 긴장하면서 발표했던 순간, 발표 후 우리 프로젝트에 많은 공감을 보여주셨던 청중 분들을 생각하면 가슴이 두근두근 뛰네요.

페르마의 마지막 정리를 읽고

페르마의 마지막 정리

“Cuius rei demonstrationem mirabilem sane detexi hanc marginis exiguitas non caperet. 나는 경이적인 방법으로 이 정리를 증명했다. 그러나 책의 여백이 너무 좁아 여기에 옮기지는 않겠다.”

페르마의 마지막 정리란,

"x^n+y^n=z^n; n이 3이상의 정수일 때, 이 방정식을 만족하는 정수해 x, y, z는 존재하지 않는다."

이다.

그러나 페르마는 이 정리를 자신의 [아리스메티카]에 코멘트하면서 “나는 경이적인 방법으로 이 정리를 증명했다. 그러나 책의 여백이 너무 좁아 여기에 옮기지는 않겠다.” 라는 발칙한(?) 말을 남겨놓았다.

이 정리를 증명하기 위해 수많은 사람들이 도전하였으나 300여년이 넘는 세월동안 그 누구도 증명하지 못하는 난제가 되었다.

사실 ‘피에르 드 페르마’는 정식 수학자가 아닌 아마추어 수학자로서 실제로 법조인 일을 하면서 취미로 수학을 했다고 한다. 그래서 페르마의 마지막 정리만 보고 그냥 단순히 페르마가 장난을 쳤다고 할 수도 있겠지만 실제로 그는 천재적인 수학 재능으로 여러 정리와 증명을 만들어냈다고 한다. 하지만 공유 정신이 없었던(오픈소스 정신이 없었던..) 그는 대충 자신이 증명했다고 생각하면 그냥 휘갈기고 넘어가는게 대부분이었다고 한다. 법조인으로써 잘 살고 있던 그에게 수학자로서 후학양성이나 지식공유는 아웃오브안중이었을거고.. 실제로 [아리스메티카]는 페르마의 아들에 의해서 완성된 책으로 페르마의 아들도 여기에 관심이 없었다면 페르마의 마지막 정리도 다른 이름이 되었거나 위의 정리가 그렇게까지 사람들에게 관심을 받지 못했을 수도 있다.

어쨋든 이러저러해서 페르마의 마지막 정리가 탄생되어 수많은 사람들이 도전했고 자살, 정신이상, 결투 등의 좋지 않은 사이드 이펙트를 일으키며 300여년이 지나면서 풀리지 않는 문제로 남아있게 되었다.

책에서는 페르마의 이야기부터 정리가 나오게 된 배경(피타고라스의 정리부터..) 여러가지 정수론 이야기, 페르마의 마지막 정리가 증명되기까지 영향을 준 수많은 수학자, 이론 등을 설명하면서 숨가쁘게 진행되다가 드디어 이 책의 주인공인 ‘앤드루 와일스’에 의해 증명이 되는 그 순간을 극적으로 묘사한다.

수학적인 흥미를 일으키기 충분한 소재들이었고 정수론이나 현대대수학을 공부해보고 다시 한번 이 책을 읽으면 더 재밌지 않을까하는 생각이 든다.

재밌는 수학자의 이야기도 많아서 그들의 인간적인 삶과 수학 그 자체에 대해서도 이해하게 된 것 같다. ‘Numb3rs’ 미드를 보면 주인공인 찰리가 사건 해결에 수학을 응용하면서 나는 ‘아 수학을 알면 이렇게 실생활에 응용할 수 있구나.’ 라고 생각을 했는데 ‘박사가 사랑한 수식’이라는 영화를 보면 주인공인 박사가 정확히는 기억이 안나지만 이런 얘기를 한 것 같은데.. ‘수학은 수학 그 자체로 아름다운 것이다.’ 즉, 어디에 활용되고 응용되는 것이 아니라 그 수의 세계와 법칙, 논리적인 증명 등 수학 그 자체가 아름답다는 말을 해주고 있었다.

사실 우애수, 완전수 등의 얘기를 하면서 그런가보다 했는데 페르마의 마지막 정리를 읽으면서 그러한 아름다움에 대해서 미약하게나마 느낄 수 있는 계기가 된 것 같다.

이 책을 읽으면서 수학에 대한 여러 생각을 가지게 된 것도 있었지만 더 감명깊었던 건 이 페르마의 마지막 정리를 증명하는 ‘앤드루 와일즈’의 삶이었다. 그는 7년하고도 1년(첫 발표후 오류가 발견되어 1년의 시간을 오류해결을 위해 보낸다)동안 페르마의 마지막 정리 하나만을 풀기 위해 보낸다.(정확히 얘기하자면 타니야마-시무라의 추측부터 여러 수학 정리들을 함께 풀어나가면서 해결했다.) 아무하고도 교류없이 7년간의 은둔 생활을 하면서 증명을 하고 발견된 오류를 해결하기 위해 엄청난 스트레스에 시달리면서 1년을 다시 은둔 생활을 하면서 마지막까지 문제 해결의 끈을 놓지 않은 그의 모습을 보면서 여러가지를 느낄 수 있었다.

그건 정말 가치있는 삶을 살아가는 자세이기도 했다. 나의 개인적인 경험만을 들여다보아도 정말 오랜시간 단 하나에 집중했을때 거기서 정말 가치있는 결과들이 나왔었다. 요즈음 너무 이것저것 일을 벌이면서 마무리를 못하고 있는 내 모습을 보면서 다시 한번 내가 집중해야되는 것은 무엇인가에 대해서 생각하게 되는 계기가 된 것 같다.

나는 수학을 잘 못한다. 그런데 컴퓨터 공학을 하면서 순수 과학에 대한 욕심이 생겨나서 계속 공부를 하려고 했지만 학창시절 스스로 만든 장벽 때문에 도전하지 못하고 있었다. 정수론과 현대대수학 쪽 커리큘럼이 보니 이 책에서 나왔던 수학자들의 이름이 모두 보인다. 그들의 삶을 조금이나마 알고나니 뭔가 이것들이 친숙해보이는 느낌이 든다. 나도 페르마처럼 아마추어 수학자가 되어보자. 그처럼 천재적인 재능은 없지만 수학 그 자체의 아름다움을 만끽하면서 취미 생활을 영위해나가는 것도 나쁘지 않을 것 같다.

루비 온 레일스 아키텍처 디자인

영어와 한국어에(..) 익숙치 않아 오역이 많습니다. 감안하고 읽어주시면 감사하겠습니다. 지적 또한 감사히 받겠습니다. 2011년 글인데 번역 연습도 할겸 건드려보았습니다. 당시 레일스 아키텍처 이야기라서 지금이랑 조금 다를 수 있습니다.

1. 소개

루비 온 레일스(RoR)는 Ruby 프로그래밍 언어로 작성한 오픈 소스 웹프레임워크이다. 레일스의 모든 애플리케이션은 Ruby로 작성한다. 루비 온 레일스는 생산성과 애자일(agile) 웹 개발 적용에 중점을 두고 있다.

레일스 프레임워크는 Ruby 언어의 특성을 활용한다. 유키히로 마츠모토(Yukishiro Matzumoto)는 1995년, Perl, Eiffel, Python, Smaltalk 와 그 외 다른 언어에 영향을 받아 이 언어를 디자인했다. 동적 타입, 완전한 객체 지향, 범용성을 가진 스크립트 언어 등이 그 특징이다. Ruby는 우아한 문법과 가능하면 사람이 읽기 쉽게 디자인되었는데 예를 들어 콜론(;)이 없어도 되고 메서드 인자에 괄호가 필요없다. 코드 일부는 영어 문장처럼 쉽게 읽을 수 있다.

루비 온 레일스 프레임워크는 데이터베이스 기반의 웹 애플리케이션을 위해 디자인되었다. 루비 온 레일스는 J2EE나 .NET 같은 무거운 웹 프레임워크에 대응하기 위해 만들어졌다. 개발 프로세스를 더 빠르게 만들기 위해서 루비 온 레일스는 관례(Convention)를 사용한다. 그리고 작업을 완료하기 위해서 최상의 방법으로 고려되는 가정들(여기서 이렇다면 저기서는 이럴 거 같다는 가정들)을 사용하고 이러한 관례와 가정의 사용을 장려하도록 디자인되었다. 이 관례는 설정 코드를 제거하고 생산성을 높인다. 웹 개발의 대부분의 공통된 작업들은 바로 바로 작업할 수 있도록 프레임워크에 내장되어 있다. 이메일 관리, 객체 데이터베이스 매퍼, 파일 구조, 코드 제네레이션, 구성 요소들의 네이밍과 조직하는 방법뿐만 아니라 다양한 기능들을 내장하고 있다. 이 모든 관례는 개발자에게 더 적은 코드를 쓰게 하고 애자일(agile) 애플리케이션 개발을 하도록 도와준다. 또한, 루비 온 레일스 개발자 커뮤니티에서 개발 코드에 대한 유지 보수성 및 이해도를 향상할 수 있는 팁들을 얻을 수 있다.

Ruby 와 Rails 배우고 싶을때

자칭, 타칭 만년 루비 꼴찌이지만 루비를 사랑하는 사람으로써 좀 더 많은 분들이 루비라는 언어를 쉽게 배우고 사용해보고 즐겼으면 좋겠다는 생각으로 제가 처음에 루비와 루비온레일스 웹 프레임워크를 공부하면서 봤던 자료들을 공유하고자 합니다.
그냥 개인적인 취향 문제이니 여기 자료들이 어떤 분들에게는 ‘좋은’ 자료들이 아닐 수 있다는 것을 명심하시고 특히 어떤 책을 봐서 어떻게 공부했다는 그냥 지표로 삼으시고 자신만의 방법으로 익히고 배워나가시면 됩니다. 프로그래밍 배우기 제일 좋은 방법은 만들어보는 것이니깐요.
아 또 여기에 제가 적어놨다고 해서 제가 그 책을 다 읽어봤다고 착각하시면 안됩니다. 프로그래밍 책을 ‘완독’하는 건 그렇게 효율적인 방법이 아니라는 개인적인 생각에..(사실 게을러서)