로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
Home >   >   > 

다양한 언어로 배우는 정규표현식

 [최신 엔진 구현과 이론적 배경을 배우다]
   
지은이 신야 료마, 스즈키 유스케, 타카타 켄   |   출판사 주식회사 제이펍  |   발행일 2016년 02월 29일
 
클릭하시면 큰 도서이미지를 보실 수 있습니다.
판매가 26,000원23,400원 10%
마일리지 5% 1,300원
발행일 2016-02-29
ISBN 1185890459 |  9791185890456
기타정보 번역서 | 424쪽 | 일반
예상출고일 1~2일 이내 (근무일기준)
배송비 무료배송
   
프로그래밍
종합지수 0p
   
 

한 권으로 배우는 정규표현식의 모든 것!

문자열 패턴을 간단한 식으로 기술할 수 있는 정규표현식은 문자열 처리를 포함해서 다양한 방면에서 활용되는 편리한 도구다. 그래서 이 책은 초보자도 정규표현식을 마스터할 수 있도록 ‘정규표현식이란 무엇인가?’부터 시작해서 정규표현식의 역사/구조/이론은 물론 정규표현식 처리를 위한 VM 설계 방침이나 JIT를 이용한 최적화 방법 등 정규표현식의 모든 것을 다루고 있다.


출판사 서평
최신 엔진 구현과 이론적 배경!
한 권으로 배우는 정규표현식의 모든 것!

문자열 패턴을 간단한 식으로 기술할 수 있는 정규표현식은 문자열 처리를 포함해서 다양한 방면에서 활용되는 편리한 도구다. 그래서 이 책은 초보자도 정규표현식을 마스터할 수 있도록 ‘정규표현식이란 무엇인가?’부터 시작해서 정규표현식의 역사/구조/이론은 물론 정규표현식 처리를 위한 VM 설계 방침이나 JIT를 이용한 최적화 방법 등 정규표현식의 모든 것을 다루고 있다.

정규표현식을 일상 업무에서 사용하는 프로그래머나 정규표현식을 깊이 있게 배우고자 하는 열혈 학습자, 그리고 언어 처리 관련 개발에 관심 있는 독자들은 이 한 권의 책을 통해 정규표현식의 모든 것을 배울 수 있을 것이다. 또한, 이론에 관심 있는 독자들을 위해서 정규표현식의 수학적 배경에 대해서는 별도의 부록으로 정리했다.

이 책의 특징
■ 정규표현식의 기초부터 시작해서 역사/구조/구현/이론 등 폭넓은 주제를 다룬다.
■ 자바, 파이썬, 자바스크립트, 펄, 루비 등 다양한 언어에서의 정규표현식 사용법을 다룬다.
■ 한 권의 책을 통해 정규표현식의 모든 것을 배울 수 있도록 체계적으로 기술하고 있다.
■ 각 주제에 정통한 세 명의 저자가 각자의 전문 분야를 살려 집필하였다.
■ 정규표현식을 좀 더 쉽게 작성하고 해석하는 방법뿐만 아니라 정규표현식을 자동으로 생성하는 기법도 안내한다.
■ 정규표현식을 자유자재로 다루는 데 필요한‘ 정규표현식 엔진 구조’에 대해서는 실제 코드를 사용해서 상세하게 설명하고 있다.

책속으로
초보자도 이 책을 통해 정규표현식을 마스터할 수 있도록 ‘정규표현식이란 무엇인가?’라는 기본부터 시작해서 책 전반에 걸쳐 이해하기 쉽게 설명하고자 많은 노력을 기울였다. 또한, 정규표현식의 역사/구조/이론은 물론 정규표현식 처리를 위한 VM 설계 방침이나 JIT를 이용한 최적화 방법까지 다루고 있어서, 매일 정규표현식을 업무에서 사용하는 프로그래머나 정규표현식을 깊이 있게 배우고자 하는 열혈 학습자 그리고 언어 처리 관련 개발에 관심 있는 독자들도 이 책을 즐길 수 있도록 구성했다. 이론에 관심 있는 독자들을 위해 정규표현식의 수학적 배경에 대해서는 별도의 부록으로 정리했다. _xx쪽

앞에서 본 ‘[0-9]’에서 ‘[’와 ‘]’가 특별한 의미를 지니는 메타 문자이고, 0과 9가 리터럴이다. 또한 ‘⁄d’도 특별한 의미를 지니므로 메타 문자다. 간단하게 말하면 ‘적혀 있는 그대로(문자 그대로)’ 일치되는 것이 리터럴이고, 그 외에는 메타 문자라고 생각하면 된다. _6쪽

지금까지 정규표현식은 ‘패턴을 나타내는 것’이라고 설명했다. 이번 절에서는 단순히 패턴을 나타내는 데 그치지 않고, ‘문자열이 어떤 식으로 패턴에 일치하는가’라는 정보를 가지고 문자열을 조작하는 캡처(capture)와 치환에 대해 알아보겠다. 캡처와 치환을 사용하면 1.2절에서 소개한 모든 응용 문제를 정규표현식으로 처리할 수 있다. 프로그래머들이 정규표현식을 더 편리하게 사용할 수 있도록 추가된 기능이다. _34쪽

1장에서도 약간 다뤘지만 읽기 쉬운(수정하기 쉬운) 정규표현식, 즉 유지 관리가 용이한 정규표현식은 어떻게 작성해야 할까? 대부분의 사용자에게 있어 정규표현식의 유지 관리는 중요한 문제다. 여기서는 그런 정규표현식을 작성하기 위한 비법을 소개한다. _120쪽

이번 장에서는 정규표현식의 JIT 컴파일에 대해 상세하게 다룬다. 먼저 JIT가 무엇인지 설명하고, JIT 컴파일에 의해 어떻게 고속화가 이루어지는지 살펴본다. 또한 JIT 컴파일 방법을 설명하고, 브라우저에 탑재돼 있는 정규표현식 엔진이 어떻게 고속화되고 있는지 설명한다. _249쪽

마이힐-네로드 정리를 이해하려면, 먼저 동치 관계라는 개념을 알아야 한다. ‘같다’라는 개념은 일상생활에서도 자주 사용된다. 예를 들어 ‘이름이 같다’거나 ‘종류가 같다’, ‘좋아하는 프로그래밍 언어가 같다’ 등 주변에서만 예를 들어도 끝이 없을 정도다. 여기서 말하는 ‘같다’라는 개념은 추상화가 가능하다. _346쪽

Chapter 1 [입문] 정규표현식: 메타 문자, 구문, 엔진 _ 1
1.1 정규표현식의 기본 3
1.2 문자열과 문자열 처리 8
1.3 정규표현식의 기본 3연산: 접합, 선택, 반복 16
1.4 정규표현식의 신택스 슈가 25
1.5 캡처와 치환: 정규표현식으로 문자열을 조작한다 34
1.6 정규표현식의 확장 기능: 전방 탐색/재귀/역참조 55
1.7 정규표현식 엔진의 기본 65

Chapter 2 정규표현식의 역사: 이론과 적용 관점을 모두 아우르는 _ 71
2.1 정규표현식의 기원: ‘계산’의 정형화 73
2.2 클레이니에 의한 통일 76
2.3 [적용편] 프로그래머의 친구 80
2.4 프로그래밍 언어와 정규표현식의 만남 86
2.5 최근의 정규표현식 엔진 현황 88

Chapter 3 프로그래머를 위한 고급 정규표현식: 단순한 정규표현식과 최신 엔진의 구조 비교 _ 97
3.1 단순한 정규표현식과 정규 언어 99
3.2 현대 정규표현식의 다양한 기능/구문/구현 111
3.3 읽기 쉬운 정규표현식 작성 120
3.4 현실적으로 타협하기 123

Chapter 4 DFA형 엔진: 유한 오토마타와 결정성 _ 129
4.1 정규표현식과 유한 오토마타 131
4.2 오토마타 구현 142
4.3 [구현 기술] On-the-Fly 구성법 154
4.4 DFA의 장점: 최소화와 동일성 판정 162

Chapter 5 VM형 엔진: 핵심은 ‘백트랙’ _ 167
5.1 기본적인 VM형 엔진 구현 169
5.2 실용적인 VM 구현 177
5.3 오니그모의 VM 구현 190
5.4 VM 이 외 부분 구현 211
5.6 정리 244

Chapter 6 정규표현식 엔진의 3대 기술 동향: JIT 컴파일, 고정 문자열 탐색, 비트 병렬 _ 245
6.1 JIT 컴파일: 자바스크립트와 정규표현식 엔진의 고속화 247
6.2 고정 문자열 탐색을 이용한 고속화 257
6.3 비트 병렬 기법을 이용한 일치 266

Chapter 7 정규표현식의 함정: 백트랙 증가, 일치 동작의 차이 _ 275
7.1 백트랙 증가에 의한 성능 저하와 해결책 276
7.2 일치에 대한 고찰 289
7.3 각기 다른 정규표현식 엔진 간의 동작 차이 296

Chapter 8 정규표현식을 넘어서: 작성하지 않기, 해석하기, 적합하지 않은 구문 알기_ 307
8.1 정규표현식 자동 생성 308
8.2 복잡한 정규표현식의 해석 314
8.3 구문 해석의 세계: 정규표현식보다 표현력이 높은 문법 사용하기 323

Appendix 부록 _ 335
A.1 정규와 비정규의 벽: 정규표현식의 수학적 배경 336
A.2 정규성의 매력: 정규 언어의 진보된 수학적 배경 358

찾아보기 388


신야 료마(新屋良磨)
도쿄공업 대학교에서 수리 및 계산학을 전공 중인 박사 과정 학생이다. 학부 4학년부터 정규표현식의 매력에 빠져서 연구를 시작했다. 세계에서 가장 빠른 grep 개발, 정규표현식을 사용한 문자열 압축 응용을 연구했으며, 지금은 정규 언어의 고향이라고 할 수 있는 프랑스 파리에서 정규표현식의 수리 구조를 연구하고 있다. 특히, 언어, 대수, 논리 사이의 상관관계와 정규표현식의 합리적 해석에 관심이 많다.

스즈키 유스케(鈴木勇介)
게이오키주크 대학교에서 개방환경과학을 전공 중인 박사 과정 학생이다. 자바스크립트로 프로그래밍을 시작했으며, 브라우저나 자바스크립트 엔진 자체에 관심이 많다. 사양을 엄격하게 만족하는 자바스크립트 엔진을 개발했으며, WebKit 커미터로 CSS JIT 개발, WebKit 및 JavaScriptCore 개발에 공헌했다. 현재는 GPU 가상화를 연구하고 있다. 시스템 소프트웨어나 컴파일러에 관심이 있어서 최근에는 C++에 많은 시간을 투자하고 있다.

타카타 켄(高田謙)
반도체 회사에 근무 중인 임베디드 프로그래머다. 2006년쯤에 당시 사용하고 있던 편집기에서 정규표현식의 후방 참조 기능이 없다는 것을 알았고, 오니구루마 엔진 및 BREGEXP.DLL을 사용해서 bregojing.dll을 만들기 시작했다. 이후 펄P(erl)에 ∖K 등의 새로운 정규표현식이 도입된 것을 알고 오니구무마에도 도입될 것을 기대했지만 좌절하고, 결국 2011년에 새로운 엔진인 오니그모를 만들었다. 최근에는 오니그모보다 Vim 배치(batch) 작성을 더 많이 하고 있다.
등록된 서평이 없습니다.
스캇 오크스...
브루스 댕,...
니시오 히로...
 
전체평균(0)
회원평점   회원서평수 0
주식회사 제이펍 출판사의 신간
그림으로 공부하는 IT 인프라 구조
야마자키 야스시/김완섭 저
23,400원
(10%↓+5%)
 
파이썬으로 배우는 게임 개발: 실전편
히로세 츠요시/김연수 저
27,000원
(10%↓+5%)
 
실무에 바로 쓰는 일잘러의 보고서 작성법
김마라 저
16,200원
(10%↓+5%)
 
심층 강화학습 인 액션
류광/류광 저
27,000원
(10%↓+5%)
 
프로그래머를 위한 파이썬
황반석/황반석 저
22,500원
(10%↓+5%)
 
이메일주소수집거부