태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

도서출판 ITC

블로그 이미지
도서출판 ITC와 체온365의 블로그입니다. 031-955-4353
ITCnCHAEON365

Article Category

분류 전체보기 (220)
근간안내 (0)
ITC대학교재 (104)
IT단행본 (31)
수입원서 (10)
체온365 (12)
체온365통신 (5)
극장전이야기 (47)
고실장다이어리 (11)

Recent Comment

Recent Trackback

Calendar

«   2012/05   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Archive

  • Total61,437
  • Today56
  • Yesterday59
사용자 삽입 이미지

저자명 : 데이비드 A. 블랙(David Black)   
역자명 : 오현석  
출판사 : 도서출판 ITC  
정 가  : 28,000원  
ISBN : 978-89-90758-68-2  
원서명 : Ruby for Rails: Ruby Techniques for Rails Developers   
출간년월 : 2007 년 5 월   
페이지 : 616 쪽   
크기 : 세로 : 245, 가로 : 188, 반양장

루비온레일스의 창시자, 데이비드 하이네마이어 한슨 강력 추천!

  이제 루비온레일스의 등장으로 인해 근사한 웹 애플리케이션을 빠르고도 쉽게 만들 수 있게 되었다. 그러나 레일스 프레임워크 자체가 그렇듯이, 레일스 애플리케이션도 루비 프로그램으로 되어 있어 루비를 습득하기 전에는 레일스의 모든 능력을 끌어낼 수 없다.

  이 책, 『레일스를 위한 루비』는 레일스 개발자들에게 루비를 마스터하는 데 최고의 서적이 될 것이다. 각 장은 루비에 대한 여러분의 지식을 깊게 하고, 루비와 레일스가 어떻게 연관되어 있는지를 유용한 예제들을 통해 보여주고 있다. 여러분은 객체와 클래스를 이용한 작업에 자신감을 갖게 될 것이고, 루비의 우아하면서도 표현력 풍부한 문법을 사용하여 레일스 애플리케이션의 능력을 배가시키는 법을 배울 것이다. 그리고 레일스 자체의 디자인과 레일스의 활용법을 더 깊게 앎으로써 보다 훌륭한 레일스 개발자가 될 것이다.

  루비를 처음 접하는 사람들은 이 책에서 다루고 있는 동적인 프로그래밍 테크닉, 루비 객체와 클래스 및 데이터 구조에 대한 탐구, 그리고 깔끔하면서도 다양한 루비 및 레일스 예제 코드 등을 통해 레일스 지향의 루비의 매력에 흠뻑 빠질 것이다.

『레일스를 위한 루비』는 레일스 개발자를 위한 루비 안내서이다!

  이 책에서 다루는 주요 내용은 다음과 같다.

■ 클래스, 모듈, 그리고 객체
■ 컬렉션 처리와 필터링
■ 스트링과 정규식 조작하기
■ 레일스 소스 코드 들여다보기
■ 루비 다이내믹스
■ 더 많은 프로그래밍 개념과 테크닉들

레일스 개발자로서 루비의 기초를 확고히 한다면 다음의 4가지 이점을 받을 수 있다.
■ 애플리케이션에 있는 코드(레일스의 공통 부분도 포함)가 무엇을 하는지 알 수 있다.
■ 기존의 레일스 숙어와 테크닉으로 제한된 상태에서 할 수 있는 일(이 역시 강력하기는 하지만)보다 더 많은 일을 레일스 애플리케이션 안에서 할 수 있다.
■ 레일스 소스 코드에 익숙해짐으로써 레일스에 대한 논의에 참석할 수 있게 되고, 더 나아가서 버그 보고나 코드 패치를 제출할 수 있다.
■ 애플리케이션과 관련된 관리와 조직 업무(예를 들면 기존 코드 변환)를 처리할 강력한 도구를 가지게 된다.

● 이 책의 구성

 『레일스를 위한 루비』는 4부 17개 장으로 구성되어 있다. 이 중 2부와 3부는 밀접하게 연관되어 있기 때문에 실제로는 3개의 부로 이루어져 있다고 할 수 있다.

■ 1부, “루비와 레일스의 풍경”
■ 2부, “루비의 건축 블록” 그리고 3부, “내장 클래스와 모듈”
■ 4부, “루비를 통한 레일스, 레일스를 통한 루비”

  이 책은 주제를 넓게 순차적으로 다루는 접근 방법을 취하고 있다. 1부는 루비와 레일스 프로그램 환경에 대한 개관이다. 루비에 대해 다양한 소개 자료와 함께 실제 동작하는 레일스 애플리케이션 만들기를 포함한다. 2부와 3부는 두 가지 역할을 한다. 첫째, 루비에 대한 기본 사항을 다룬다. 2부와 3부에 포함되어 있는 장들은 실제적인 루비 지침서이다. 둘째, 2부와 3부의 각 장들은 레일스와 밀접한 접점을 가진다. 예제들은 레일스 소스 코드에서뿐 아니라 실제와 (더 의미가 있는 경우에는) 가상의 레일스 애플리케이션에서 추출되었다. 이는 루비를 배우는 과정에서 루비에 대한 ‘레일스를 위한’ 관점을 제공한다. 마지막 4부에서는 1부에서 개발했던 예제 애플리케이션으로 돌아가 이 책 중반에서 배운 루비 기술을 사용하여 개선해 본다.

● 이 책의 독자대상

  직업 프로그래머뿐만 아니라 시스템 관리자, 프로젝트 관리자, 웹 디자이너, 데이터베이스 전문가, 그리고 이 밖의 컴퓨터 관련 종사자 등이 그 대상이다.

  그러나 컴퓨터와 인터넷 시스템에 대한 일반적인 기반 개념은 이해하고 있어야 한다. 예를 들면 서버가 무엇이며, 클라이언트가 무엇이고, HTML이 어떤 것인지, 셸과 커맨드 라인의 개념이 무엇인지를 알아야 한다. 또한 파일과 디렉터리 구조에 대해, CGI 기반의 폼 처리 기본을 포함하여 웹 클라이언트와 서버가 서로 어떻게 통신하는지, 그리고 데이터베이스의 기능과 목적 등을 알 필요가 있다. 마지막으로, 레일스 프레임워크에 대해 적어도 어느 정도는 알고 있어야 한다. 물론 레일스의 대가일 필요는 없다. 만약 레일스를 처음 접하는 것이라면, 이 책과 다른 정보들을 통해서 몇 가지 분야를 작업해 봄으로써 전체 그림을 그릴 수 있도록 해야 할 것이다.

● 코드 다운로드

  음악 상점 레일스 애플리케이션의 두 가지 버전의 소스 코드는 출판사의 웹 사이트인 http://www.manning.com/black에서 다운로드할 수 있다.

베타 리딩을 마치고

이광수
Webwings@gmail.com
마이크로소프트 MVP이자 프리랜서이다. 월간 마이크로소프트웨어의 필자로도 활동하고 있으며, 패왕넷(http://www.paewang.net)을 운영하고 있다. 《알기 쉬운 마이크로소프트 ASP.NET AJAX》를 편역하였으며, 현재는 《Prototype & Scriptaculous In Action》를 번역하고 있다.

.....(중략)
저자는 루비온레일스를 사용하는 루비개발자들 혹은 앞으로 사용하려는 생각이 있는 이들에게 레일스를 위한 루비를 설명하고 있다. 루비온레일스를 잘 다루기 위해서 어떤 방법을 택하려고 하는가? 자신의 필요와 목적이 무엇인지 잘 생각해보고 신중하게 결정하기 바란다. 만약 루비 자체보다는 루비온레일스를 활용하는 데 초점을 두는 루비 입문자이고, 그에 맞는 책을 찾고 있는 독자라면 이 책을 추천한다.

하길호 kilho37@naver.com
프리랜서이며, 현재 네이버 루비썬 까페(cafe.naver.com/rubython)를 운영하고 있다.

.....(중략)
루비와 레일스에 대한 설명을 알기 쉽게 그리고 재미있게 쓰여 있어 여러분의 곁에 두어도 좋을 책이다. 베타리딩 내내 루비와 레일스의 밀월(?)하는 모습을 생생히 볼 수 있어 짜릿한 기분마저 느낄 정도였다. 저자가 의도하는 바를 그대로 옮기려는 역자의 노력도 엿보였지만 다소 직역이 있어 딱딱한 부분도 있었다. 이 책이 출간될 때는 이런 부분도 어느 정도 해결되리라고 생각된다. 이 책은 여러분에게 신선함과 기대감을 줄 것으로 믿는다.

저자 소개

데이비드 A. 블랙 _ David A. Black
  루비 커뮤니티 리더인 데이비드 A. 블랙은 매년 개최되는 국제 루비 컨퍼런스와 국제 레일스 컨퍼런스를 진행하는 루비 센트럴의 관리자이다. 데이비드는 루비의 핵심 배포자이며, 레일스에 기반한 ‘루비 변경 요청 아카이브Ruby Change Request Archie, RCRchive’를 만들고 관리하고 있다. 현재 뉴저지에 살고 있으며, 컨설턴트로 일하고 있다.

역자 소개

오현석
(enshahar@naver.com)
  오현석은 한국과학기술원(KAIST) 전산학과에서 학부 과정과 동 대학원에서 프로그래밍 언어 전공을 이수하였다. 2000년부터 다양한 분야의 SW 개발 업무에 종사하다가 현재는 (주)엠페이지의 연구소장으로 단말 관련 애플리케이션 개발 총괄 업무를 담당하고 있다.

  ‘자신의 지식을 사용해 사람들을 도우면서 즐거움과 부를 나눌 수 있는’ 사람이 되기 위해 노력하고 있으며, 장차 도널드 커누스(Donald Knuth)나 더글라스 호프스태터(Douglas R. Hofstadter)의 책처럼 많은 사람에게 도움을 줄 수 있는 책을 직접 쓰고자 하는 목표를 가지고 있다.

옮긴이 블로그 >> http://enshahar.tistory.com

***********************************************************

차례

Part 1 루비와 레일스의 풍경

Chapter 1 루비는 어떻게 동작하는가? 3
1.1 루비 프로그램 작성 방법 4
1.2 인터프리터 호출 방법 17
1.3 루비 확장 기능과 프로그래밍 라이브러리 24
1.4 루비 프로그래밍 환경의 해부 27
1.5 요약 36

Chapter 2 레일스는 어떻게 동작하는가? 39
2.1 레일스 프레임워크의 내부 40
2.2 레일스의 MVC 구현 분석 45
2.3 레일스 애플리케이션 따라하기 48
2.4 레일스 애플리케이션의 생명주기 따라가 보기 69
2.5 요약 76

Chapter 3 루비에 정통한 레일스 개발 77
3.1 여러분의 코드가 무엇을 하는지를 알기 위한 첫 번째 시도 79
3.2 루비가 더 많은 일을 하도록 하기 89
3.3 애플리케이션과 관계된 기술과 업무 달성하기 97
3.4 요약 104

Part 2 루비의 건축 블록

Chapter 4 객체와 변수 109
4.1 ‘물건’에서 객체로 110
4.2 객체의 고유 행동양식 124
4.3 필수, 선택, 그리고 디폴트 값을 갖는 인자들 129
4.4 지역 변수와 변수 대입 133
4.5 요약 138

Chapter 5 클래스로 객체 조직화하기 141
5.1 클래스와 인스턴스 142
5.2 세터 메소드 152
5.3 애트리뷰트와 attr_* 메소드들 159
5.4 클래스 메소드와 Class 클래스 163
5.5 상수 더 자세히 보기 169
5.6 상속 173
5.7 요약 179

Chapter 6 모듈과 프로그램 구성 181
6.1 모듈 생성과 사용의 기초 183
6.2 모듈, 클래스 그리고 메소드 검색 191
6.3 클래스/모듈 설계와 명명 200
6.4 요약 207

Chapter 7 디폴트 객체(self)와 범위 209
7.1 현재/디폴트 객체인 self 이해하기 211
7.2 범위 결정하기 222
7.3 메소드 액세스 규칙 232
7.4 최상위 메소드 작성하기와 사용하기 239
7.5 요약 242

Chapter 8 흐름 제어 테크닉 243
8.1 조건 코드 수행 244
8.2 루프를 이용해 동작을 반복하기 253
8.3 코드 블록, 이터레이터 그리고 yield 키워드 258
8.4 오류 처리와 예외 265
8.5 요약 271

Part 3 내장 클래스와 모듈

Chapter 9 내장 필수 요소 275
9.1 루비의 리터럴 생성자 277
9.2 편리 문법 278
9.3 수신 객체를 변경하는(혹은 변경하지 않는) 메소드 281
9.4 내장 그리고 맞춤 to_* (변환) 메소드 285
9.5 이터레이터 다시 보기 288
9.6 불린 상태, 불린 객체 그리고 nil 289
9.7 두 객체 비교하기 296
9.8 객체의 메소드 목록 얻기 299
9.9 요약 301

Chapter 10 스칼라 객체 303
10.1 스트링 다루기 304
10.2 심벌과 그 사용법 314
10.3 수 객체 318
10.4 시간과 날짜 321
10.5 요약 325

Chapter 11 컬렉션, 컨테이너 그리고 열거 가능성 327
11.1 배열과 해시의 비교 328
11.2 배열 사용하기 329
11.3 해시 345
11.4 컬렉션의 중심 : Enumerable 모듈 358
11.5 컬렉션 정렬하기 363
11.6 요약 367

Chapter 12 정규식과 정규식 기반의 스트링 연산 369
12.1 정규식이란? 370
12.2 정규식 작성하기 372
12.3 패턴 매치와 MatchData 더 자세히 보기 377
12.4 정규식 심화 테크닉 382
12.5 정규식에 자주 사용되는 메소드 391
12.6 요약 397

Chapter 13 루비 다이내믹스 399
13.1 싱글턴 클래스의 역할과 위치 401
13.2 eval 메소드들 411
13.3 호출 가능한 객체 416
13.4 콜백과 훅 426
13.5 핵심 기능 추가하기와 오버라이딩하기 433
13.6 요약 435

Part 4 루비를 통한 레일스, 레일스를 통한 루비

Chapter 14 R4RMusic 애플리케이션 세계를 (재)모델링하기 439
14.1 ActiveRecord 모델 인스턴스의 능력 추적하기 441
14.2 도메인 모델 발전시키기 449
14.3 요약 461

Chapter 15 ActiveRecord 모델을 프로그램으로 향상시키기 463
15.1 소프트 vs. 하드 모델 향상 465
15.2 모델을 소프트하게 확장하기 468
15.3 모델 기능을 하드하게 프로그램으로 확장하기 477
15.4 클래스 메소드를 사용해 모델의 기능 확장하기 494
15.5 요약 497

Chapter 16 컨트롤러와 뷰 향상시키기 499
16.1 뷰 템플릿을 위한 도우미 메소드 작성하기 501
16.2 부분 뷰 템플릿 코딩하기와 배치하기 506
16.3 메인 컨트롤러 변경하기 514
16.4 고객 가입과 로그인 통합하기 517
16.5 고객 주문 처리하기 526
16.6 동적인 코드를 통해 페이지를 개인화하기 531
16.7 요약 535

Chapter 17 레일스 소스 코드를 탐험하기 위한 테크닉 537
17.1 탐험 테크닉 1: 정보를 찾기 위해 소스 뒤적거리기 538
17.2 탐험 테크닉 2: 루비 미행하기 541
17.3 탐험 테크닉 3: 문서 참조하기 548
17.4 요약 554

Appendix 루비와 레일스 설치 및 자원들
A.1 루비와 레일스를 위한 온라인 자원들 556
A.2 루비와 레일스의 일반적인 설치 방법 557

찾아보기 561

***********************************************************

지은이의 글

  매닝(Manning) 출판사의 편집자들이 나에게 새로운 루비 책을 낼 만한 여건이 성숙되었다고 생각하는지, 그렇다면 그 책은 어떤 책이 되어야 하고, 누가 그것을 쓰는 것이 좋을지를 물어봤을 때, 난 다음과 같이 대답했다.

  “예. 레일스로 일을 시작한 사람을 위한 루비 언어 책이 필요하죠. 제가 쓰겠습니다.”

  그리고 그들도 동의했다. 난 그 기회를 기꺼이 환영했다. 2004년 가을 루비온레일스를 사용하기 시작한 이래(내가 거의 최초의 사용자였다) 나는 『레일스를 위한 루비』의 방향에서만 생각해 왔다. 레일스는 그 해 여름에 처음 릴리즈되었으며, 나는 2004년 국제 루비 컨퍼런스에서 레일스의 창시자인 데이비드 하이네마이어 한슨의 발표를 통해 그것을 배웠다.

  『레일스를 위한 루비』는 마치 ‘일반적인 루비에 반해서…’로 들리며, 레일스가 루비 사용자를 레일스 진영과 비레일스 진영으로 나누는 도구인 것처럼 들린다. 그러나 나는 다른 가능성을 보았다. 즉, 루비가 레일스 개발자를 위해 무엇을 할 수 있는지에 대해 연구가 그것이다. 나는 이런 접근 방법의 잠재력을 이해할 수 있는 좋은 위치에 있었던 점을 행운으로 여긴다.

  나는 레일스를 사용하기 이전에 거의 4년간 루비로 프로그래밍을 해왔다. 그리고 레일스를 사용하기 시작한 이후 루비에 대해 깊이 이해하고 있다는 것이 레일스 프로그래머들이 소기의 목적을 달성하는 데 얼마나 큰 도움이 되는지를 잘 알 수 있었다.

  따라서 많은 레일스 개발자들이 레일스를 사용하기 위해 루비를 배울 필요가 있는지를 자문하는 것을 보았을 때 내 머릿속에서는 경고음이 들리기 시작했다. 그리고 거기에는 다음과 같은 시사점이 있었다.

  첫째로 기초 교육을 해야 할 분명한 이유가 있었다. 왜냐하면 레일스는 루비로 작성되었으며, 레일스 애플리케이션도 루비로 씌어졌기 때문이다. 여러분이 레일스 애플리케이션을 작성한다면 이미 루비를 사용하기로 결정한 것이다. 두 번째로 레일스 개발자 사이에서 시작되고 있는 격리에 관해 무엇인가 조치가 취해져야 하고, 이는 가능한 일이라는 것이다. 사람들은 자신에 대해 레일스 애플리케이션을 실행할 수 있고 상당히 멋진 것들을 레일스 테크닉과 숙어로 해낼 수 있다고 이야기했었다. 그러나 그들은 사실상 이미 사용하고 있는 언어인 루비의 모든 능력을 끌어낼 수 있는 기회를 스스로 부정하고 있었다.

  또한 여러 포럼에서 (그리고 여러 형태로) 다음과 비슷한 많은 질문을 들었다.

  “belongs_to :customer를 쓸 줄은 아는데요, 그런데 그게 뭐예요?”

  많은 레일스 사용자는 다른 애플리케이션에서 코드를 따와서 자신의 애플리케이션을 올리고 작동하게 할 수는 있지만, 어떻게 돌아가는지를 알고 있다는 느낌은 가지지 못하기 때문에 만족스럽지 못하다고 이야기했다. 이처럼 루비의 용어로 작성된 레일스 코드를 이해하는 데 있어 어려움을 겪고 있다는 사실은 다음 수준으로 발전할 가능성이 없다는 것을 의미한다. 즉 레일스 애플리케이션의 기능을 확장하고 향상시키는 데 루비의 모든 능력을 사용할 수 없음을 의미하는 것이다.

  레일스 중심의 루비 언어 지침서가 두 가지 역할을 할 수 있다는 생각이 든다. 첫째는 루비와 레일스가 별개의 토양에서 사는 것이 아니고 완전히 열려 있는 의사소통 통로를 가지고 있으면서 기술적으로는 부모/자식인 관계라는 사실을 아직 알지 못하는 레일스 개발자들을 일깨우는 것이다. 두 번째는 레일스 진영의 사람들이 루비를 더 효율적으로 사용하는 데 방해가 되는 장벽을 깨부수는 것이다.

  이 책의 집필이 진행될수록 나의 목표는 ‘레일스 진영의 사람’이 루비를 배우는 것이 완전한 이익이 되는 윈-윈 게임임을 설명하는 방향으로 흘러 갔다. 물론 레일스가 가진 결점을 보완하기 위해서 루비를 더 배워야 한다는 건 아니다. 오히려 그 반대로 레일스는 엄청난 강점을 가지고 있다. 그 강점은 우아하고 간결하며 배우기 매우 쉬운 프로그래밍 언어로 작성되었다는 것이다. 바로 그것이 레일스 프로그래밍을 매일 매일 즐겁게 탐구해 나가는 데 큰 힘이 된다.

  따라서 이 책 『레일스를 위한 루비』는 루비 언어와 레일스 프레임워크 사이에 항상 존재해 왔고 현재도 존재하는 그 방법을 재확인하고, 그 장벽을 부수기 위해 필요한 책이다.

  나는 이 책을 저술하는 내내 많은 분들로부터 도움과 피드백, 정보와 지도를 받았다. 그럼에도 불구하고 어떤 기술적, 사실 관계의 오류가 있거나 편집에 착오가 있다면 그 책임은 전적으로 저자에게 있음을 밝힌다.

데이비드 A. 블랙


추천사

  언어는 그 자체만을 위해 배울 수는 없다. 그 언어를 가지고 어떤 문제나 과제를 해결하거나 가치 있는 것을 창조하는 것처럼 어떤 일을 하려는 구체적인 욕구가 필요하다. 그것이 내가 2003년 여름 무렵 루비를 배우게 된 계기다. 나는 웹 애플리케이션을 구축하고 싶었고, 그것은 루비를 배우기 위한 완벽한 이유가 되었다. 그 웹 애플리케이션이 베이스 캠프(Basecamp)였고, 결국 레일스의 탄생 지점이 되었다.

  나는 PHP와 자바를 사용하다가 루비를 시작했기 때문에, 루비를 처음 봤을 때 가장 멋진 루비의 특징 중 많은 부분이 오히려 이상해 보였다. 나는 “블록이 그렇게 특별한 이유가 뭐지?” 하고 생각할 만큼 루비에 대해 별로 아는 것이 없었다. 하지만 루비를 사용하고 레일스를 개발해 감에 따라 루비의 특장점을 쉽게 발견할 수 있었다. 루비는 믿을 수 없을 정도로 풍부하고 표현력이 큰 언어라서 단순히 과거에 사용했던 다른 언어의 경험과 관련해 설명하는 것만으로는 그 아름다움을 평가하기가 어렵다.

  나는 베이스 캠프를 작성하기 위해 하루 24시간 중 취침 시간을 제외한 대부분을 루비와 함께 보냈고 그런 후에야 비로소 그 언어의 특징들이 내가 그 상황에서 즉시 쓸 수 있는 바로 그 기능이라는 것을 알게 되었다. PHP나 자바를 사용했다면 내 눈을 어지럽게 했을 작업들이 루비를 사용하면서부터 단순하고, 재미있고, 심지어 아름답기까지 하다는 것을 느낄 수 있었다.

  루비 언어를 배울 때, ruby-talk 메일링 리스트의 도움을 자주 받곤 했다. 그 리스트에서 특별히 루비를 잘 알고 있고, 남들이 루비를 더 완전히 이해하도록 돕고자 하는 열망, 그리고 그럴 수 있는 능력까지도 가지고 있는 한 목소리를 보았다. 그 목소리의 주인공이 바로 이 책의 저자인 데이비드 A. 블랙이었다.

  데이비드는 분명히 루비에 대해 광범위한 지식을 가지고 있다. 그는 루비를 어떻게 사용하는지 이해하고 있을 뿐 아니라, 왜 모든 것이 지금처럼 정해졌는지 설명할 수 있다. 또한 여러분에게 퍼즐의 잃어버린 조각을 제공해서 부분 부분을 연결해 더 큰 그림을 볼 수 있도록 하고 있다. 나는 『레일스를 위한 루비』의 저자로 그보다 더 나은 사람을 상상할 수 없다. 루비에 대해 많은 것을 나에게 가르쳐 주었던 그가 이제는 그 언어를 나의 프레임워크와 함께 사용하도록 다른 사람을 돕는다는 것은 너무나도 명예로운 일이다.

  이 책은 다른 언어로부터 레일스로 옮겨 온 모든 사람이 필독해야만 하는 책이다. 레일스의 잠재력을 완전히 현실화하려면 루비를 완전히 이해해야만 한다. 그리고 데이비드는 『레일스를 위한 루비』로 여러분이 그 목표를 달성하기 위해 필요한 바로 그것을 제공하고 있다.

데이비드 하이네마이어 한슨
루비온레일스 창시자
37signals 사의 파트너

***********************************************************

역자 머리말

  루비는 1993년 2월 유키히로 마츠모토(Yukihiro Matsumoto)가 개발을 시작해 1995년 발표한 언어다. 마츠모토는 기계에 집중해서 기계가 어떤 작업을 어떻게 하면 더 빠르게 할 수 있을까를 고민하기보다 사람의 생각을 좀 더 자유롭게 표현할 수 있는 언어를 원했고, 그 결과로 간결하며 동적인 객체 지향 언어인 루비를 탄생시켰다. 루비의 철학은 간결함, 일관성, 유연성의 세 가지로 요약할 수 있다. 현재 루비 언어는 2004년 루비온레일스가 등장하면서 태풍의 핵으로 떠오르고 있다. 애자일(agile) 개발자 사이에 루비와 레일스는 하나의 유행이 되었다고 말할 수 있으며, 쟁쟁한 고수들도 그 유행에 동참하고 있고, PHP나 Java에서 레일스의 영향을 받은 웹 개발 프레임워크도 많이 생겨나고 있다. 현재 루비는 1.8.5, 레일스는 1.2.2까지 발표되어 있다.

  내가 루비 및 루비온레일스를 처음 만난 것은 2006년 봄이었다. 당시 나는 위피(WIPI)/자바 환경에서 단말용 애플리케이션 개발을 진행하는 팀을 맡아서 고군분투하고 있었으며, 팀원들의 프로그래밍 능력을 향상시키기 위한 교육용 언어를 찾는 한편, 쉽고 간단하게 프로토타이핑을 할 수 있는 팀 내 공용 도구 언어를 채택할 생각을 갖고 있었다. 이를 위해서는 간결해서 쉽게 배울 수 있으면서, 펄과 같이 시스템 스크립트 언어로 사용할 수 있으며, 자유자재로 웹 연동이 가능한 언어가 필요했다. 루비는 이런 필요에 딱 들어맞는 언어였다. 루비온레일스가 제공하는 간편하면서도 강력한 웹 애플리케이션 개발 프레임워크와 객체 지향 언어, 절차 지향 언어, 그리고 함수 언어의 특징들을 공유하고 있는 루비 언어의 조합은 이를 충족하기에 충분했다.

  2006년 중반만 해도 루비온레일스에 대한 한글 번역서가 전무했으며, 루비 커뮤니티도 그리 활성화되어 있지 않아서 제대로 된 번역서가 있었으면 하는 바람이 있었다. 그러던 중 우연찮게 도서출판 ITC의 제안을 받아 데이비드 블랙의 책을 번역할 수 있는 기회를 얻게 되었다.

  『레일스를 위한 루비』는 레일스를 이미 접한 독자를 대상으로 루비에 대해 자세히 설명하고 있다. 따라서 루비 언어에 대해 보다 자세히 이해하고, 루비 언어의 특징이 레일스에 어떻게 녹아들어 있는지를 알고 싶어하는 사람들에게 큰 도움이 되는 책이다. 단순한 라이브러리 사용법이나 문법 설명을 넘어 루비 언어의 각 구조가 어떻게 동작하는지를 자세히 설명하고 있고, 루비 언어를 이용해 레일스 애플리케이션을 어떻게 더 향상시킬 수 있는지 구체적인 예제를 통해 보여주고 있기 때문에, 루비나 레일스를 잘 모르는 프로그래머(JSP 개발자나 PHP 개발자 등)가 레일스와 루비를 접하고 이해하고자 할 때에도 좋은 가이드가 될 수 있다.

  루비나 레일스가 주는 간결함과 프로그래밍의 즐거움이 이 책을 읽는 여러분에게도 전해졌으면 좋겠다. 그리고 더 나아가 일본인인 마츠모토가 국제사회에서 널리 쓰이는 언어를 만들어낸 것처럼 우리나라 개발자 중에서도 그런 공헌을 하는 사람들이 많이 나와준다면 더할 나위 없이 기쁠 것이다.

  새로운 책을 만나는 것은 즐거운 경험이다. 또한 내가 만난 책을 다른 사람들이 쉽게 볼 수 있도록 우리나라 말로 번역하는 작업은 더욱 즐거운 경험이다. 이런 소중한 기회를 허락해 준 도서출판 ITC와 전체 번역 프로젝트 진행을 맡아 수고해 주신 장성두 실장님, 교정을 담당해 주신 신정진 님, 그리고 편집을 맡은 김수미 님에게도 감사를 드린다.

  마지막으로 번역 작업을 할 때마다 무릎 위에 올라와 체력 단련을 시켜준 예쁜 딸 혜원이와 회사 일을 하면서 번역을 진행하느라 본의 아니게 생과부를 만들었던 아내 계영에게 사랑의 마음과 함께 두 사람의 존재로 인해 늘 하나님께 감사하며 행복하다는 것을 전하고 싶다.

오현석

***********************************************************

게시물 첨부화일로 소소코드를 다운받을 수 있습니다.


***********************************************************

책 구매하러 가기





크리에이티브 커먼즈 라이선스
Creative Commons License

'IT단행본' 카테고리의 다른 글

한글판 ASP.NET 2.0 Website Programming : 문제 분석-설계-솔루션 제작  (0) 2009/02/16
퓨전 테크 그리고 퓨전 비즈 : 그 무한한 가능성  (0) 2009/02/16
레일스를 위한 루비 : 레일스 개발자를 위한 루비 테크닉  (0) 2009/02/13
임베디드 리눅스 시스템 설계와 개발  (0) 2009/02/13
제이콥 닐슨이 공개하는 웹 사용성 중심의 웹 사이트 제작론  (0) 2009/02/13
알기 쉬운 마이크로소프트 ASP.NET AJAX : Atlas에서 ASP.NET AJAX까지  (0) 2009/02/13
Trackback 0 and Comment 0
prev Prev : [1] ... : [162] : [163] : [164] : [165] : [166] : [167] : [168] : [169] : [170] ... : [220] : Next next