Flying Mate

'지식근로자'에 해당되는 글 1건

  1. 2008/02/14 자바 개발자를 위한 레일스 (4)

예약 주문한 자바 개발자를 위한 레일스가 오늘 오전에 도착했다. 험블 프로그래머님의 번역 신공의 결과물로써 발렌타인 데이인 오늘, 초콜릿을 대신하여 많은 남성 개발자들의 가슴을 달콤하게 녹여줄 것으로 기대한다.

난 저자 소개, 저자 서문, 역자 서문, 그리고 추천사까지, 책의 차례보다 먼저 오는 부분을 항상 빠짐없이 읽는다. 대게는 이 책을 왜 읽어야 하는지에 대한 당위성과 이 책이 다루는 기술의 장점 등을 가볍게 요약하고 있어서 가볍게 읽어보면 좋다. 그런데 험블님의 역자 서문은 한 편의 칼럼이라고 생각될 정도로 깊이가 느껴진다.

'읽기 전과 읽은 후의 자신이 다르지 않으면 책을 헛읽은 것과 다름이 없다' 라는 말이 있더군요

이런 인용으로 시작하는 서문은, 지식근로자로서 개발자의 위상과 그들의 지적 능력 향상이 어떤 의미가 있는지를 언급하고, 마지막엔 번역과 반역 사이의 타협점을 어느 지점으로 잡았는지 그래서 이 책이 왜 이런 독특한(?) 형태로 나오게 되었는지에 대한 고백이 담겨있다.

내가 느끼는 지식근로자라는 단어는 정말 무거운 어휘이다. 컴퓨터 앞에서 일하는 사무직 근로자를 통째로 지식근로자라고 부르기엔 많이 아깝다. 타계한 피터드러커는 지식근로자의 정의와 그로 인한 경영 및 경쟁 환경의 변화에 대해 자신의 저서에서 지속적으로 강조하였다. 지식근로자라는 말의 이런 무게감이 험블님의 서문에는 충분히 담겨있는 것 같다.

사용자 삽입 이미지

자바 개발자를 위한 레일스


이 책의 제목은 '자바 개발자를 위한 레일스'이지만, 난 이 책을 '레일스 개발자를 위한 자바'로 읽어야겠다는 생각으로 구매했다. 물론 이 책의 타겟은 자바 개발자이고 그들이 보는 것이 훨씬 유익하리라 생각하지만, 자바를 구경만 해봤고 집중해서 배운 언어는 루비와 레일스밖에 없는 나 같은 경우도 자바와 레일스의 차이점을 보면서 자바를 그리고 레일스를 더 잘 이해할 수 있을 거라 기대했다.

메서드와 객체 정의, 제어문, 그리고 프레임워크의 구석구석에 대해 자바와 루비/레일스가 어떤 차이를 보이는지 코드를 비교해가면서 보여준다. 이 책의 타겟(자바 개발자)들은 루비 쪽을 자세히 볼 것이고, 난 초반에는 자바쪽을 자세히 보았지만 점점 루비/레일스 부분을 자세히 보게되고 자바 쪽은 궁금증을 채우는 정도로 활용하게 되었다. 이런! 루비와 레일스를 이해하기 위해 자바 코드를 같이 보는 것이 정말 도움이 된다. 이 책은 아마도 모든 개발자를 위한 책이다.

게다가 자바 부분을 아예 떼어놓고 루비와 레일스 부분만 보더라도 충분히 가치를 하는 책이다. 물론 그러다보니 다루는 내용 자체에서는 기존에 번역된 루비와 레일스 관련 서적과 부분적으로 겹칠 수 있다. 그렇다 하더라도 다루는 관점 자체가 다르고 겹치는 부분보단 그렇지 않은 부분이 훨씬 많으며 번역 과정에서 삽입된 루비 1.9와 레일스 2.0의 변경점들을 책의 흐름 안의 적합한 지점에서 다루어 주었다는 점도 좋다.

나의 경우는 최근에 계속 레일스의 edge(2.0.2버전)을 다루고 있었고, 조만간에 루비 1.9가 레일스의 베이스로 깔릴 것이기 때문에 1.9에서 주요 객체 메서드들의 동작방식이 어떻게 변하고 어떤 메서드가 추가되는지 적절한 문맥 안에서 설명해주는 것이 유용했고 앞으로도 유용할 것 같다. (아직 책의 1/4 밖에 보지 못했다)

레일스를 다루기 전에 루비와 자바의 차이를 중점적으로 다루는 부분을 100페이지 가량 보다가 마음이 급해져서 험블님이 부록에 추가하신 JRuby 설치와 활용에 대한 글과 deepblue님이 작성하신 REST 중심 개발에 대한 글을 먼저 보게 되었는데, deepblue님은 워낙 리소스 중심 개발을 추구하는 분이시고 그와 관련된 이야기도 많이 해오신지라 내용이 반갑고 익숙했다.

deepblue님이 소스코드 일독을 추천하셨던 Beast의 코드를 살펴보면서, 처음에 login과 signup이 어느 컨트롤러에 있는지 조금 헤맸던 기억이 난다. 그리고 sessions_controller가 뭐하는 물건인지 코드를 보기 전까지는 알지 못했었다. 사상의 충격이랄까, login은 sessions_controller의 create 액션을 향해 라우팅되어 있었고, singup은 users_controller의 create로 라우팅되어 있었다. 물론 logout은 sessions_controller의 destroy로.

이런 구조로 사고하는 것은 충분히 가능하고 충분히 즐겁지만 기우가 조금 생겼는데, 제작자의 사고방식과 사용자의 사고방식이 괴리될 수 있다는 우려이다. signup이나 login이라는 것은 오프라인에서 고객이 계약이나 등록을 하고 본인 확인 절차를 거쳤던 관습을 애플리케이션에서 개념적으로 모사한 것인데, 리소스 중심으로 사고할수록 그런 부분들을 사용자의 사고방식과 다르게 생각해야 한다.

이런 계정관리 뿐만 아니라 애플리케이션 인터페이스의 많은 부분은 오프라인의 관습 또는 습관을 추상적이고 개념적으로 차용해왔고, 그것이 또 온라인상의 관습으로 굳어져 사용자들은 그것에 익숙하기 때문에 이런 불일치가 지속되는 한 개발자는 머릿속에 두 개의 자아를 가지고 있어야 한다. 사용자로서의 자아와 설계자로서의 자아.

음악이나 동영상 플레이어에서 정지, 재생 버튼이 화면에 표시되는 것도 디바이스 버튼들의 모사의 결과물이고 이를 리소스로 생각하면 데이터 스트림을 생성하고 소멸하며 다른 기능 역시 사용자가 버튼을 누를 때의 사고방식과 다르게 설계를 하게 될 것이다. 기획자가 그 동안 중도자적 역할을 해왔지만 사실 그것은 근본적인 해결책은 아니라고 생각하는 1인이기 때문에..


로그인을 세션이라는 리소스 중심으로 처리한 Beast도 login이라는 링크 이름을 사용해 sessions/create로 은밀히 라우팅 처리를 해줘야 했다. 물론 그래서 그게 안 좋다는 이야기는 아니고 개발자가 자신의 다중인격적인 사고방식을 좀더 강화해야겠다는 생각이 들었다. '로그인' 버튼 대신 '세션 생성' 버튼을 달 정도만 아니면 되지 않겠는가. 사실 설계와 사용을 같이 고려해주는 게 그렇게 어려운 일도 아니다. 위에서 말한 것은 역시 기우이고 나 역시 REST를 좋아한다.

험블님을 직접 만나뵌 적은 없지만 블로그에 작성하시는 통찰력 있는 글이나 미투데이에 올리시는 진지한 문체의 문장 하나하나만 봐도, 매일 스스로를 개선해 나가시고 매일 뭔가를 배워나가는 분이라는 느낌이 들었다. 이 책을 읽다가 문득 깨달은 것은 이 책이 경어체로 되어 있다는 사실이었다.

평소에 블로그에도 경어체로 글을 올리시기 때문에 역자 서문의 글이 경어체라는 것도 너무 자연스러워 미처 눈치채지 못했고 그렇게 자연스럽게 책의 끝까지 경어로 되어있었다. 영어는 경어의 구분이 없기 때문에 영문 원서를 경어체로 번역하는 것은 역자의 선택이다. 혹시나 해서 이 출판사다른 책들을 펼쳐봤는데 경어체로 되어 있는 책은 이 책이 유일한 듯 하다.

이 책의 내용 뿐만 아니라 서문과 부록 그리고 책의 곳곳에 드러난 험블 프로그래머님의 생각 하나하나가 더 많은 가르침을 주는 듯 하다. 그리고 아마도 이렇게 친절하고 상세한 역자 주석을 볼 수 있는 책도 흔하지 않을 것이다. 험블하시지만 실력은 절대 험블하지 않은 초고수님의 책 초강추. 

TRACKBACK :: http://flyingmate.net/trackback/39 관련글 쓰기

댓글을 달아 주세요

  1. neos  댓글주소  수정/삭제  댓글쓰기

    저두 주문해서 내일 받아볼 수 있을 거 같은데 FlyingMate님의 글을 보니 읽어보기도 전에 구매 잘 했다는 생각이 듭니다. 벌써 내일이 기다려지네요.

    2008/02/14 21:02
    • FlyingMate  댓글주소  수정/삭제

      구매 후 배송을 기다리며 미리 뿌듯해하는 기분,
      책을 주문할 때마다 저도 자주 그런 기분을 느낍니다.
      neos님도 즐겁게 읽으셨으면 좋겠습니다.

      2008/02/15 18:29
  2. 험블  댓글주소  수정/삭제  댓글쓰기

    부족한 작업물 좋게 보아주셔서 정말 감사합니다. 극찬해주신것에 몸둘바를 모르겠네요^^;
    리소스 중심 사고관에서, 개발자가 여러관점에서 바라볼줄 알아야한다는 말씀에 깊이 공감합니다. 결국 리소스가 유기적으로 구조화되고 연결되는 것이 중요하다지면, 사용자에게 그것을 강제할 필요도 없을뿐더러, 서비스적인 측면에서 잘 녹여낼 줄 아는 능력이 점차 중요해지는것이겠구나라는 생각을 글을 통해 얻을 수 있었습니다.
    비스켓님 블로그의 좋은 글들을 통해 항상 많이 배우고 있습니다. 앞으로도 깊이있는 시야와 가르침들 많이 공유해주시길 부탁드리겠습니다 ^^

    2008/02/15 12:14
    • FlyingMate  댓글주소  수정/삭제

      좋은 책을 더 좋은 책으로 번역해 주셔서
      읽는 저야말로 훨씬 감사드립니다.
      거기다가 저의 글에 칭찬과 공감까지 해주시고^^
      앞으로도 험블님의 블로그에서 많은 지식과 관점들
      얻어 가겠습니다!

      2008/02/15 18:34

1 
Flying Mate

공지사항

카테고리

분류 전체보기 (45)
소소하지 않은 일상 (45)

믹시