옮긴이 머리말 x
베타리더 후기 xi
지은이·옮긴이 소개 xiv
시작하며 xvi
감사의 글 xviii
이 책에 대하여 xix
표지에 대하여 xxii
CHAPTER 1 이 책이 다루는 범위 1
01 정규표현식에 관해 4
02 프로그래밍 기계의 등장 5
03 의도적인 소프트웨어 개발 8
CHAPTER 2 수량자와 특별한 하위 패턴들 11
퍼즐 01 와일드카드 스코프 13
x로 시작하고 y로 끝나는 모든 단어를 매치하라 13
[저자 생각] 각 패턴은 무엇과 매치하는가? 14
[AI 생각] CodingNet 17
퍼즐 02 단어와 시퀀스 18
일부 단어들이 x로 시작하지 않더라도 매치하라 18
[저자 생각] 무엇이 단어 경계를 결정하는지 생각하라 19
[AI 생각] 트랜스포머 19
퍼즐 03 Endpoint 클래스 21
같은 문자 클래스의 시작과 끝이 다른 단어를 매치하라 21
[저자 생각] 정규표현식을 다듬어서 우리가 원하는 것과 매치하자 22
[AI 생각] 친구들은 전기로 움직이는가? 22
퍼즐 04 구성 포맷 26
정규표현식을 사용해서 구성 포맷을 파싱하라 26
[저자 생각] 형태는 경계선을 가진다는 것을 기억하라 27
[AI 생각] 사이버다인 볼트 노트 27
퍼즐 05 사람의 유전자 29
텔로미어로 끝나는 DNA 인코딩 시퀀스를 식별하라 29
[저자 생각] 분자생물학의 중심 원리를 기억하라 31
[AI 생각] 안드로이드는 전기양의 꿈을 꾸는가? 32
CHAPTER 3 함정과 톱니바퀴 속 모래 37
퍼즐 06 치명적인 백트래킹 39
정규표현식을 사용해 메시지 프로토콜을 빠르게 검증하라 39
[저자 생각] 파국을 피하기 위해 노력하라 41
[AI 생각] 기술적 특이점 43
퍼즐 07 도미노 플레이하기 45
ASCII로 표현되어 매치된 도미노들을 식별하라 45
[저자 생각] 첫 번째 생각보다 효율적인 방법을 시도하라 46
[AI 생각] 막대기와 돌멩이를 사용하는 전쟁 47
퍼즐
수수께끼 같은 정규표현식을 인간과 ChatGPT, 코파일럿이 함께 풀어본다
정규표현식은 문자열 검색, 추출, 치환 등 문자열 처리에 활용되는 형식 언어로, 많은 프로그래머와 개발자는 필수적으로 사용하지만 적용하는 데 어려움을 겪기도 한다. 하지만 대부분 프로그래밍 언어가 정규표현식을 지원할 정도로 실용성이 높을 뿐만 아니라 간단하며 강력하다. 인터넷에서 가장 오랜 시간 읽힌 정규표현식 튜토리얼을 작성한 저자는 매우 신선한 관점으로 정규표현식에 접근한다. 수많은 프로그래머의 손이 되어주고 있는 AI 코딩 어시스턴트의 활용이다.
AI는 하루가 다르게 발전하고 있고, 앞으로도 계속해 개선되고 지금보다 더 다양한 분야에서 활용될 것이다. 이미 수백만 명의 개발자가 ChatGPT, 코파일럿, 바드 등으로 대표되는 AI 코딩 어시스턴트로 코드를 작성하면서 도움을 받고 있다. 매우 인간적인 응답과 완성도를 보면 AI의 한계가 보이지 않아 충격적이기까지 하다. 그렇다면 AI는 인간보다 훌륭하고 완벽하게 코드를 작성하는 것일까?
이 책은 현재 가장 인기 있는 도구인 ChatGPT와 코파일럿, 그리고 인간의 대결이라는 매우 흥미로운 방식을 선택했다. 24개의 정규표현식 문제를 인간과 ChatGPT, 코파일럿은 어떻게 해결하는지 보여준다. 정규표현식의 특징을 더 영리하게 활용한 것은 인간일까, 기계일까? 더 간단하고 우아한 코드를 작성하는 것은 어느 쪽일까?
때로는 우리를 매우 놀라게 하고, 때로는 우리에게 실망감을 안겨주는 ChatGPT와 코파일럿의 제안을 통해 AI 코딩 어시스턴트의 기능과 한계를 이해할 수 있다. 또한, 이 과정을 통해 올바른 결과를 이끌어내기 위한 생산적인 프롬프트 작성법 및 상호작용하는 방법, AI 코딩 어시스턴트의 제안과 인간의 생각을 현명하게 취합하는 방법을 배울 수 있다. 이 책을 덮을 때쯤이면 정규표현식을 이해할 수 있게 되는 것은 물론 똑똑하게 AI 코딩 어시스턴트를 활용해 좀 더 완벽한 코드를 완성할 수 있게 될 것이다.