인간 vs. AI 정규표현식 문제 풀이 대결
도서+사은품 또는 도서+사은품+교보Only(교보굿즈)
15,000원 미만 시 2,500원 배송비 부과
20,000원 미만 시 2,500원 배송비 부과
15,000원 미만 시 2,500원 배송비 부과
1Box 기준 : 도서 10권
로그아웃 : '서울시 종로구 종로1' 주소 기준
이달의 꽃과 함께 책을 받아보세요!
1권 구매 시 결제 단계에서 적용 가능합니다.
해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
패키지
북카드
키워드 Pick
키워드 Pick 안내
관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.
AI는 하루가 다르게 발전하고 있고, 앞으로도 계속해 개선되고 지금보다 더 다양한 분야에서 활용될 것이다. 이미 수백만 명의 개발자가 ChatGPT, 코파일럿, 바드 등으로 대표되는 AI 코딩 어시스턴트로 코드를 작성하면서 도움을 받고 있다. 매우 인간적인 응답과 완성도를 보면 AI의 한계가 보이지 않아 충격적이기까지 하다. 그렇다면 AI는 인간보다 훌륭하고 완벽하게 코드를 작성하는 것일까?
이 책은 현재 가장 인기 있는 도구인 ChatGPT와 코파일럿, 그리고 인간의 대결이라는 매우 흥미로운 방식을 선택했다. 24개의 정규표현식 문제를 인간과 ChatGPT, 코파일럿은 어떻게 해결하는지 보여준다. 정규표현식의 특징을 더 영리하게 활용한 것은 인간일까, 기계일까? 더 간단하고 우아한 코드를 작성하는 것은 어느 쪽일까?
때로는 우리를 매우 놀라게 하고, 때로는 우리에게 실망감을 안겨주는 ChatGPT와 코파일럿의 제안을 통해 AI 코딩 어시스턴트의 기능과 한계를 이해할 수 있다. 또한, 이 과정을 통해 올바른 결과를 이끌어내기 위한 생산적인 프롬프트 작성법 및 상호작용하는 방법, AI 코딩 어시스턴트의 제안과 인간의 생각을 현명하게 취합하는 방법을 배울 수 있다. 이 책을 덮을 때쯤이면 정규표현식을 이해할 수 있게 되는 것은 물론 똑똑하게 AI 코딩 어시스턴트를 활용해 좀 더 완벽한 코드를 완성할 수 있게 될 것이다.
작가정보
(David Mertz)
머신러닝 및 과학 컴퓨팅 분야에서 개발자와 데이터 과학자를 교육하는 KDM Training의 창업자다. 아나콘다의 데이터 과학 훈련 프로그램을 만들었으며 고급 과정을 가르쳤다. 심층 신경망이 등장하면서 로봇 오버로드(지능을 갖춘 미래형 로봇)를 훈련시키는 쪽으로 분야를 옮겼다.
D.E. 쇼 리서치(D.E. Shaw Research)에서 8년간 일했으며, 6년간 파이썬 소프트웨어 재단의 이사를 역임했다. 현재 상표위원회와 Scientific Python Working Group의 공동 의장을 맡고 있다. 2000년대에 작성한 〈Charming Python(매력적인 파이썬)〉과 〈XML Matters(XML 문제)〉는 파이썬 분야에서 가장 많이 읽힌 글이다.
저서로 《데이터 과학 효율을 높이는 데이터 클리닉》(에이콘출판사), 《The Puzzling Quirks of Regular Expressions》이 있다.
대학 졸업 후 소프트웨어 엔지니어, 소프트웨어 품질 엔지니어, 애자일 코치 등 다양한 부문에서 소프트웨어 개발에 참여했다. 재미있는 일, 나와 조직이 성장하고 성과를 내도록 돕는 일에 보람을 느껴 2019년부터 번역을 시작했다. 저서로 《코드 품질 시각화의 정석》(지앤선)이 있고, 옮긴 책은 《아트 오브 셸 원라이너 160제》(제이펍), 《추천 시스템 입문》(한빛미디어), 《타입스크립트, 리액트, Next.js로 배우는 실전 웹 애플리케이션 개발》(위키북스), 《애자일 개발의 기술(2/e)》(에이콘출판사) 등 다수다.
목차
- 옮긴이 머리말 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
퍼즐 08 고급 도미노 49
유니코드의 코드 포인트로서 매치하는 도미노들을 식별하라 49
[저자 생각] 다이어그램에 관한 생각은 항상 즐겁다 51
[AI 생각] 얼마나 많은 독자가 튜링 테스트를 통과할 수 있을까? 51
퍼즐 09 센서 아트 54
상태 시퀀스에서 유효하게 인코딩된 신호들만 식별하라 54
[저자 생각] 매치 패턴이 존재한다면 찾아라 56
[AI 생각] 내 마음은 움직이고 있어. 나는 느낄 수 있어 57
CHAPTER 4 정규표현식을 사용해서 함수 생성하기 61
퍼즐 10 str.count() 재구현하기 63
정규표현식을 사용해 str.count()와 등가인 함수를 작성하라 63
[저자 생각] 정규표현식으로 어떻게 하위 문자열의 출현을 셀 수 있을까? 64
[AI 생각] 특별한 기계 64
퍼즐 11 str.count() 재구현하기(더욱 엄격하게) 67
숫자 변수를 사용하지 않고 str.count()에 해당하는 함수를 작성하라 67
[저자 생각] 주어진 제약을 만족하는 파이썬 함수를 작성하라 68
[AI 생각] HORAR의 전쟁 70
퍼즐 12 함수 이름 찾기 72
함수에 일반적인 이름이 아닌 의미 있는 이름을 지어라 72
[저자 생각] 코드는 처음 작성되었을 때보다 훨씬 더 많이 읽힌다 73
[AI 생각] 컴퓨터 과학에는 두 가지 어려운 문제가 있다 73
퍼즐 13 포커 플레이 1 74
앞으로 나올 퍼즐을 위해 적절하게 정규표현식을 사용하는 기능을 만들어라 74
[저자 생각] 함수들은 프로그램 규모가 클수록 도움이 된다 75
[AI 생각] 그는 내 포커페이스를 읽을 수 없다 76
퍼즐 14 포커 플레이 2 82
스트레이트 또는 플러시 카드 패를 식별하라 82
[저자 생각] 천 리 길도 한 걸음부터 82
[AI 생각] 불공평한 일에서 인간을 보호하는 사회 84
퍼즐 15 포커 플레이 3 88
포커 카드 패를 포 카드와 매치하라 88
[저자 생각] 이길 수 없다면 속이고 또 속여라 89
[AI 생각] 언젠가는 기계들도 숫자를 셀 수 있을 것이다 89
퍼즐 16 포커 플레이 4 91
포커 카드 패를 풀 하우스와 매치하라 91
[저자 생각] 불운을 감수하고 베팅해야 할 수도 있다 92
[AI 생각] 자유 의지는 공짜가 아니다 93
퍼즐 17 포커 플레이 5 96
포커 카드 패에서 트리플, 투 페어, 원 페어를 매치하라 96
[저자 생각] 3은 2보다 크지만 4보다 작다 97
[AI 생각] 2까지 세기 99
CHAPTER 5 쉽고, 어렵고, 불가능한 작업들 103
퍼즐 18 같은 카운트 식별하기 105
시작과 끝 기호의 균형을 맞추어라 105
[저자 생각] 수평적 사고가 답을 찾는 데 도움이 될 수 있다 105
[AI 생각] 여기 용들이 있다 106
퍼즐 19 단어가 중복되기 전에 매치하기 108
전체 문자열 안에서 중복되지 않는 초기 접두사를 매치하라 108
[저자 생각] 요구 사항을 만족시킬 패턴을 찾아라 109
[AI 생각] 촘스키 위계의 딥페이크 110
퍼즐 20 IPv4 주소 테스팅하기 113
IPv4 주소 형식을 실용적으로 매치하라 113
[저자 생각] 이 문제에 대해 정규표현식이 충분히 강력한지 질문하라 114
[AI 생각] 나는 기계가 되고 싶어 115
퍼즐 21 숫자 시퀀스 매치하기 117
연속해서 두 배가 되는 숫자를 나타내는 시퀀스를 매치하라 117
[저자 생각] 해결책이 될 수 없는 것을 배제하라 118
[AI 생각] 밀과 체스보드 119
퍼즐 22 피보나치 수 매치하기 122
피보나치 수를 나타내는 문자열을 매치하라 122
[저자 생각] 황금비 나선은 우아하게 피보나치 수를 일반화한다 123
[AI 생각] 자연의 프랙털 기하학 124
퍼즐 23 소수 매치하기 127
소수 시퀀스의 초기 유한 접두사를 나타내는 문자열을 매치하라 127
[저자 생각] 정수론의 기본 정리를 존중하라 128
[AI 생각] 상식과 비상식 129
퍼즐 24 상대 소수 매치하기 131
상대 소수(서로소)의 시퀀스를 나타내는 문자열을 매치하라 131
[저자 생각] 참과 거짓은 사람의 생각에 따라 결정된다 132
[AI 생각] 아침 식사 전에 불가능한 여섯 가지 일들 133
마치며 135
APPENDIX A 정규표현식 사용 방법 137
01 정규표현식을 사용하는 도구는 무엇인가? 140
02 초급: 텍스트의 패턴 매치하기 141
03 중급: 텍스트의 패턴 매치하기 149
04 고급: 정규표현식 확장 157
APPENDIX B 엔딩 크레디트 165
정규표현식 주요 패턴 171
찾아보기 173
추천사
-
현재 AI 코딩 어시스턴트들은 프로그래밍의 수행 방식에 변화를 주고 있다. 만약 정규표현식을 알고 있다면 당장 이 책을 읽고 AI 코딩 어시스턴트에 대한 모든 것을 배우기 바란다. 정규표현식을 몰라도 이 책을 통해 AI 코딩 어시스턴트로 학습하는 방법을 경험해보기를 바란다.
책 속으로
정규표현식은 작은 부분 사이에서 꽤 귀찮은 종속 구조를 갖기 때문에 AI 코딩 어시스턴트가 단위 기능을 생산적으로(그리고 정확하게) 생성하는 것은 큰 도전 과제다. 이 책은 여러 줄에 걸쳐 작성되는 함수 정의가 아닌 한 줄로 작성되는 단일한 정규표현식에 주목한다. AI 의도를 이해하는 것은 인간 프로그래머의 명확하지 않은 의도와 얽혀 있으며, 특히 AI 코딩 어시스턴트의 활용성과 한계를 이해하는 데 매우 유용한 시각을 제공한다. (8쪽)
ChatGPT는 프롬프트를 조금 수정하면 굉장히 좋은 코드를 생성한다. 코파일럿에서는 합리적인 프롬프트를 작성해도 플레이스홀더(placeholder) 함수만 생성된다. 물론 필자가 제시한 주석을 반복하여 더 나은 결과를 얻을 수도 있지만 이번 퍼즐에서는 ChatGPT가 제공하는 ‘세션 기억을 통한 상호 대화’ 스타일의 장점이 빛을 발한다. (32쪽)
프로그래밍 세계에 돌고 도는 농담이 있다. “컴퓨터 과학에는 두 가지 어려운 문제가 있다. 캐시 무효화(cache invalidation), 이름 짓기(naming things), 그리고 오프바이원 오류(off-by-one error)다.” AI 코딩 어시스턴트는 이름 짓기에 도전했지만 아직 인간의 능력을 넘어서지는 못했다. AI 코딩 어시스턴트가 이름 짓기를 잘 수행했다고 언급한 다른 개발자들의 글도 읽어봤지만 결과는 뒤죽박죽이었다. (73쪽)
여러 가지 방법으로 패턴을 수정해 일반적인 아이디어를 매치시킬 수도 있다(아마도 해당 클래스에서는 공백도 제외하는 것이 좋을 것이다). AI 코딩 어시스턴트의 제안을 무조건 믿어서는 안 되며, 건강하게 의심해야 한다. 제안된 코드 안에는 좋은 아이디어가 있겠지만 무엇을 수용하고 결정할 것인지는 여전히 인간 프로그래머의 몫이다. (102쪽)
정규표현식을 작성하는 과정에서 가장 쉽게 저지르는 실수는 너무 많은 것을 매치시킨다는 점이다. 수량자를 사용할 때 매치를 마치는 지점까지 모든 것(올바른 종류의 것)을 매치시키고 싶겠지만, *, + 또는 숫자 수량자를 사용할 때는 찾고자 하는 마지막 부분이 관심을 가진 행보다 나중에 발생할 수도 있다는 점을 잊어서는 안 된다. (152쪽)
기본정보
ISBN | 9791192987392 | ||
---|---|---|---|
발행(출시)일자 | 2023년 10월 05일 | ||
쪽수 | 200쪽 | ||
크기 |
189 * 245
* 15
mm
/ 623 g
|
||
총권수 | 1권 | ||
원서(번역서)명/저자명 | Regular Expression Puzzles and AI Coding Assistants/David, Mertz |
Klover 리뷰 (7)
구매 후 리뷰 작성 시, e교환권 200원 적립
문장수집 (0)
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
판매가 5,000원 미만 상품의 경우 리워드 지급 대상에서 제외됩니다. (2024년 9월 30일부터 적용)
구매 후 리뷰 작성 시, e교환권 100원 적립
개발하면서 정규표현식을 종종 쓸 일이 있는데 필요할 때 마다 잠깐 들여다 보고 시간이 지나면 다시 까먹곤 합니다. 정규표현식을 한번쯤 제대로 공부해보고 싶다고 생각하고 있었는데, 마침 이 책이 눈에 들어왔네요 :-)
정규표현식을 ChatGPT와 함께 풀어보며 정규표현식도 이해하고 개발할 때 ChatGPT 활용법도 익힐 수 있겠다고 생각이 들었습니다.
실습환경
평소 개발서적을 고를 때 핸즈온을 제공하는 책을 좋아하는데요. 이론만 익히다보면 지루하기도 하고 잘 기억이 되지 않는데, 실습이 있으면 이론을 몸소 확인하고 재미도 있어 좋습니다.
다만, 실습환경 구성이 어렵거나 실습 코드가 책에서 제시한 대로 동작하지 않으면 중간에 포기하기 쉬운데요.
이 책은 실습환경을 갖추기가 너무나 좋습니다. 가장 심플하게는 "브라우저"만 있으면 됩니다 ;-)
저는 크롬 브라우저에서 왼쪽에는 구글코랩, 오른쪽에는 ChatGPT를 열어놓고 실습을 진행하였습니다. 책을 읽으면서 바로바로 코드를 작성하고 실행할 수 있고, ChatGPT와 대화를 주고 받으면서 재미나게 공부할 수 있습니다.
학습 방법
APPENDIX A 의 "정규표현식 사용 방법" 부터 읽고 퍼즐을 시작하면 좋습니다.
9페이지에서 저자는 "이 책을 읽는 방법"을 안내하고 있는데요
- "퍼즐 설명" 을 읽고 "나의 생각" (풀이)를 고민해 보라고 얘기합니다. 그리고,
- "저자 생각" 과 비교해 보면서 저자와 나 사이에 놓친 것이 있는지 살펴보라고 합니다. (풀이)에 대한 완벽한 이해를 바탕으로
- "AI 생각" 을 살펴보라고 합니다. AI 가 내놓은 결과의 옳고 그름 보다 더 다양한 교훈을 얻을 수 있다고 말합니다.
회사에서도 개발할 때 Copilot 을 활용하는 사례가 많아 지고 있는데요. AI 가 코딩을 함으로써 개발자를 대체하는 것이 아니라 개발자가 AI 의 결과물을 해석하고 잘 판단하여 더 나은 코드와 혁신을 이끌어 내야 합니다.
그렇게 되기 위해서 AI 와 협력하는 방법을 잘 익혀야 합니다.
이 책의 실습코드 작성과 실행은 어렵지 않으며, 천천히 고민해 보면서 다양하게 코드를 수정하고 바로 확인할 수 있어 좋습니다. ChatGPT 에게도 저자의 가이드대로 프롬프트를 통해 코드 작성을 시켜보고 ChatGPT가 제시한 코드를 실행하여 결과를 비교해 봅니다.
끝으로 ...
퍼즐은 24개로 챕터 2, 3, 4, 5장에 토픽별로 나뉘어 있으며 뒤로 갈수록 어렵습니다.
서평기간이 있어서 급하게 읽었습니다만, 한번 읽고 그만인 내용이 아니라 "고민하는 과정이 중요한 내용"을 다루고 있어서 한 문제 한 문제 시간을 가지고 천천히 다시 고민해 보려고 합니다.
요약
- 개발하면서 정규표현식은 잊을만 하면 한번씩 사용하게 된다
- 그런 정규표현식을 한번쯤 제대로 공부해 보고 싶다고 생각을 했다
- 이 책은 정규표현식을 AI와 대결하며 풀어본다는 기발하고 재미난 발상으로 다가왔다
- 정규표현식을 chatGPT 와 함께 풀어보며 정규표현식도 이해하고 chatGPT 활용법도 익힐 수 있는 책이다
책의 부록에는 정규표현식에 대한 간단한 설명도 포함되어 있지만, 책의 내용을 잘 따라오고 싶다면 이 책을 펼치기 전에 정규표현식의 기본적인 사용 방법을 익히고 오시는 것을 추천드립니다. 정규표현식에 익숙해진 후 이 책을 다시 읽으면, 더 큰 통찰을 얻을 수 있습니다.
이런 활용하는것에 대한 공부로 적절하다.
Notepad++ 에서 간단하게 샘플 만들어서 눈으로 검증하며 공부했는데
아주 재미있게 진행했다.
정규표현식이 처음이라면 추천하지 않지만, 어느정도 정규표현식을 직접 만들어보고 사용해봤다면 재밌게 진도를 나갈수 있다 생각한다.
AI 툴로 프롬프팅 내용까지 기재하여 프롬프팅을 개선해나가며 나오는 응답들까지도 설명을 해주고있어, AI 툴에 대하여 무조건적인 신뢰는 금물이라는것을 직접 증명한다.
AI 툴이 뱉어낸 결과도 완벽하지 않기때문에 이것도 평가해가며 읽는것도 흥미있게 지나갈 수 있다.
그런 의미에서 이 책은 정말 흥미롭습니다. 책 한 권이 모두 정규표현식에 대한 내용 뿐입니다. 그만큼 자세하고 다양한 기능에 대해서 다룹니다. 덕분에 책을 읽으면서 알지 못했던 새로운 기능에 대해서도 정말 많이 알게 되었습니다.
또 다른 흥미로운 점은 바로 AI와의 문제 풀이를 비교하며 저자의 논리가 전개된다는 점입니다. 저자는 정규표현식을 활용하여 해결할 수 있는 문제를 정의하고, 자신의 생각을 바탕으로 코드를 작성합니다. 그리고 ChatGPT와 코파일럿에게 이 문제의 풀이를 요청합니다. 결과를 자신의 코드와 비교하면서, 저자와 AI가 작성한 코드를 비교하면서 장단점을 짚어 설명합니다.
AI가 복잡한 정규 표현식 문제까지 풀 수 있다는 점에 놀랐고, 정규표현식과 AI의 개념을 재미있게 결합한 저자의 창의력에도 놀랐습니다. 책 전반에 걸쳐 복잡한 내용을 내내 다루면 몰입도가 떨어질 텐데, 참신한 접근법으로 독자의 흥미를 적절히 유발하는 내용 구성이 재미있습니다.
정규표현식을 아예 모른다면 어려울 수도 있지만, 후반부에 정규표현식의 기본적인 개념을 다루는 부분이 수록되어있습니다. 이를 통해 개념을 점검하거나 새롭게 익히고, 천천히 책의 내용을 따라가다보면 누구나 정규표현식의 즐거움을 누릴 수 있을 것입니다. 다만 구성을 조금 바꾸어 입문자의 진입장벽을 조금 낮추는 것도 좋은 방법이 아니었을까 하는 생각이 들긴 했습니다.
제이펍의 공식 도서 소개글에서는 "이 책을 덮을 때쯤이면 정규표현식을 이해할 수 있게 되는 것은 물론, 똑똑하게 AI 코딩 어시스턴트를 활용해 조금 더 완벽한 코드를 완성할 수 있게 될 거예요!"라고 이 책을 소개합니다. 이 책에서 얻어갈 수 있는 두 가지를 잘 반영한 멘트라고 생각합니다. 이 책은 단순히 정규표현식에 대한 지식 뿐만 아니라, 어떻게 하면 AI에게 좋은 프롬프트를 입력하고, 내가 의도한 결과를 내놓게 할 수 있을까에 대한 인사이트도 얻어갈 수 있는 유익한 도서였습니다.
정규식은 정확히 작성하기에 규칙이 조금 복잡도가 있는 편이여서, 사람이 설명한 것을 AI가 이해하고 정규식을 얼마나 잘 작성하는 가에 대한 책이라고도 볼 수 있다. AI가 좋은 답을 줄 때도 있고, 필요한 정규식과 조금 거리가 있는 답을 줄 때도 있다.
현재는 ChatGPT가 가장 정확도가 높은 편이 아닌가 생각이 드는데, 앞으로 ChatGPT5와 같은 더욱 거대한 모델이 계속해서 나온다면 (엄청난 하드웨어와 전기세와 데이터를 필요로 하겠지만) 계속해서 사람들이 원하는 문제 해결에 필요한 답을 빠르게 찾는 시대가 좀 더 다가오지 않을까 생각이 든다.
이 글은 해당 출판사로 부터 책을 증정받아 작성되었습니다.
정규표현식을 직접 짜기보다는 인터넷에 검색해서 얻은 결과를
정규식을 테스트할 수 있는 사이트에 테스트하며 하나씩 실험해보곤 하셨을거라 생각됩니다.
하지만
요즘은 이메일 정규표현식 알려줘 라고 치면 바로 표현식을 물어오는 AI들이 많이 생겨서 참 편해졌다고 느끼셨으리라 생각합니다. (물론 저도 그렇습니다)
책은 각 퍼즐마다 저자 생각, AI 생각 (코파일럿, ChatGPT)로 해설하는데
AI 두개의 응답이 조금씩 상이한게 흥미로웠습니다.
가끔 GPT한테 내가 만든 함수의 이름을 지어달라고 한 적이 있었는데
이 저자도 함수 이름을 물어본게 정말 짧게 나왔지만 기억에 남는 이유가
진짜 저렇게 지어준다고? 하며 GPT에 같은 코드를 넣고 돌려보았습니다.
GPT는 저에게 has_repeated_prefix 라는 이름을 부여해줬는데 그새 학습한건지[?]
저자의 예제에서 has_만 빠진 이름이라 적잖이 놀랐었었습니다.
이 책에서 포커에 정규표현식을 적용하여 풀어낸 부분이 있었는데
사실 포커 게임을 하기만 했지 이곳에도 정규표현식으로 풀어낼 수 있다는걸 이 책을 보며 처음 알게되었습니다.
포커 라는게 비교적 친근한 주제이기도 하고요!
책의 마지막 부분에 정규식 사용방법이 나오는데요.
간단한 패턴 매칭부터 전/후방 타입 어서션이라던지
심지어 정규 표현식의 가독성을 높이는 법에 대해서도 나와있습니다.
그냥 복붙해서 사용하고 주석으로 정리했던 제 자신을 반성하게되는.. 계기가 되었습니다.
해당 책의 방법으로 정규식을 정돈[?] 해놓는다면 다른 사람이 보아도 이해가 용이한 정규식이 될것이라 생각합니다.
꼭 프로그래밍 고수가 아니더라도
AI가 내놓은 답변과 해당 답안에 대한저자의 코멘트가 궁금한 사람이나
두 AI가 수학적 사고를 요하는 질문을 던졌을때 답변이 어떻게 달렸을지 궁금하거나
이제 막 프로그래밍에 입문한 사람이라면 한번쯤 읽어볼만한 책이라고 생각합니다.
끝으로 저는 웹 개발을 하고있는 사람이지만
AI가 얼마나 발전했는지, 그리고 정규표현식으로도 이렇게 AI와 한판 붙을 수 있구나[?]를 느낄 수 있었습니다.
※ 제이펍으로부터 도서를 지원받아 작성된 리뷰입니다.