책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > Ruby/Rails
· ISBN : 9788994774763
· 쪽수 : 412쪽
· 출판일 : 2014-08-29
책 소개
목차
1장. 토큰화 및 파싱
--토큰: 루비 언어를 구성하는 단어
--실험 1-1: Ripper를 이용한 루비 스크립트 토큰화하기
--파싱: 루비가 코드를 이해하는 방법
--요약
2장. 컴파일 작업
--루비 1.8에는 컴파일러가 없다
--루비 1.9와 2.0은 컴파일러를 도입한다
--루비는 간단한 스크립트를 어떻게 컴파일할까?
--블록 호출 컴파일하기
--실험 2-1: YARV 명령 표시하기
--로컬 테이블
--실험 2-2: 로컬 테이블 표시하기
--요약
3장. 루비가 코드를 실행하는 방법
--YARV의 내부 스택과 루비 스택
--실험 3-1: 루비 2.0과 1.9 대비 1.8 버전 벤치마킹하기
--루비 변수의 로컬 및 동적 접근
--실험 3-2: Special 변수 살펴보기
--요약
4장. 제어구조와 메소드 발송
--루비가 if문을 실행하는 방법
--한 스코프에서 다른 스코프로 점프하기
--실험 4-1: 루비가 내부적으로 루프를 실행하는 방법을 테스트하기
--send 명령: 루비의 가장 복잡한 제어구조
--일반적인 루비 메소드 호출하기
--내장 루비 메소드 호출하기
--실험 4-2: 루비가 키워드 인수를 실행하는 방법 살펴보기
--요약
5장. 객체와 클래스
--루비 객체의 내부구조
--실험 5-1: 새로운 인스턴스 변수를 저장하는 데 시간이 얼마나 걸리나?
--RClass 구조체의 내부에는 무엇이 존재할까?
--실험 5-2: 루비는 클래스 메소드를 어디에 저장하나?
--요약
6장. 메소드 검색과 상수 검색
--루비가 모듈을 실행하는 방법
--루비의 메소드 검색 알고리즘
--실험 6-1: include한 후에 모듈 변경하기
--상수 검색
--루비에서의 렉시컬 스코프
--실험 6-2: 루비는 어떤 상수를 가장 먼저 찾을까?
--요약
7장. 해시 테이블: 루비 내부의 일꾼
--루비의 해시 테이블
--실험 7-1: 다양한 크기의 해시로부터 값을 불러오기
--해시 테이블이 더 많은 값을 수용하기 위해서 확장하는 방법
--실험 7-2: 다양한 크기의 해시에 새로운 요소를 추가하기
--루비가 해시 함수를 실행하는 방법
--실험 7-3: 객체를 해시의 키로 사용하기
--요약
8장. 루비가 리습(LISP)으로부터 수십 년 된 아이디어를 차용한 방법
--블록: 루비 클로저
--루비의 해시 테이블
--실험 8-1: 어떤 것이 더 빠를까? while 루프 아니면 each 메소드로 블록 넘기기?
--lambda와 proc: 함수를 First-Class Citizen으로 취급하기
--실험 8-2: lambda 호출 후 로컬변수 변경하기
--요약
9장. 메타프로그래밍
--메소드를 정의하는 대체 방법
--실험 9-1: 나는 누구지? self가 렉시컬 스코프에 함께 변경되는 방법
--메타프로그래밍과 클로저: eval, instance_eval, binding
--실험 9-2: 클로저를 이용하여 메소드 정의하기
--요약
10장. JRUBY: RUBY ON THE JVM
--MRI와 JRuby로 프로그램 실행하기
--실험 10-1: JRuby의 Just-in-time 컴파일러 모니터링하기
--JRuby와 MRI에서 문자열
--실험 10-2: Copy-on-Write 퍼포먼스 측정하기
--요약
11장. RUBINIUS: 루비로 구현한 루비
--Rubinius 커널과 가상머신
--실험 11-1: MRI와 Rubinius에서 백트레이스 비교하기
--Rubinius와 MRI에서의 배열
--실험 11-2: Array#shift의 Rubinius 구현 알아보기
--요약
12장. MRI, JRuby, Rubinus의 가비지 컬렉션
--가비지 컬렉터는 세가지 문제를 해결해준다
--MRI에서의 가비지 컬렉션: Mark and Sweep
--실험 12-1: MRI 가비지 컬렉션의 작동 과정 보기
--JRuby와 Rubinius의 가비지 컬렉션
--복사 가비지 컬렉션
--세대간 가비지 컬렉션
--동시성 가비지 컬렉션
--실험 12-2: JRuby의 verbose GC 모드 사용하기
--더 읽어보기
--요약