본문 바로가기
독후감

인간 vs AI 정규표현식 문제 풀이 대결

 
인간 vs. AI 정규표현식 문제 풀이 대결
이미 수백만 명의 개발자가 ChatGPT, 코파일럿, 바드 등으로 대표되는 AI 코딩 어시스턴트로 코드를 작성하면서 도움을 받고 있다. 매우 인간적인 응답과 완성도를 보면 AI의 한계가 보이지 않아 충격적이기까지 하다. 그렇다면 AI는 인간보다 훌륭하고 완벽하게 코드를 작성하는 것일까? 이 책은 현재 가장 인기 있는 도구인 ChatGPT와 코파일럿, 그리고 인간의 대결이라는 매우 흥미로운 방식을 선택했다. 24개의 정규표현식 문제를 인간과 ChatGPT, 코파일럿
저자
데이비드 메르츠
출판
제이펍
출판일
2023.10.05

 

원서는 이 책이다. 책 표지에는 Thomas Alken의 Prize Fight라는 삽화가 그려져 있다. 19세기 영국에서 인기 있는 스포츠를 그린 작품이라고 한다. 이 책은 regex를 사용해서 해결할 수 있는 문제들을 Copilot과 ChatGPT에게 질문하고 저자가 준비한 코드와 LLM들이 만든 코드를 비교하는 방식으로 이루어졌다. 책에서 ChatGPT 3.5 버전을 사용했다.

책은 총 24개의 퍼즐로 이루어져 있다. 각 퍼즐은 regex를 활용하는 문제이다. 책에는 Appendix(부록)이 있는데 책에서 활용하는 regex를 초급, 중급, 고급으로 나누어서 설명한다. 개인적으로는 이 부록을 먼저 읽고 난 다음에 책을 읽는 것이 좋다고 생각한다. 부록을 먼저 읽지 않으면 부록에 나오는 regex를 검색하면서 책을 읽어야 하는데 부록부터 읽으면 어느 정도 눈에 있는 regex가 생길 것 같다. 참고로 나의 경우 부록의 초급, 중급 부분 까지는 잘 이해가 갔으나 고급 부분은 거의 이해가 가지를 않았다. 

 

책에서 Copilot은 저자가 제시한 퍼즐들을 해결하지 못하는 경우가 많았다. ChatGPT의 경우 잘 해결할 때가 반 정도 됐었고 나머지 절반의 경우는 해결하지 못했다. 두 LLM 모두 올바르지 못한 답변을 내놓을 때에는 Python 코드를 작성해 주지 않고 주석으로 설명만 해 줄 때가 많았다. 심지어 ChatGPT의 경우 잘 작동하는 코드를 작성했음에도 불구하고 올바르지 않은 예시를 들어서 설명하는 경우도 있었다. 

 

'+', '*' , '?'가 regex에서 정확하게 어떤 역할을 하는지 조금 헷갈릴 때가 많았는데 이 책을 읽은 후에는 절대 헷갈릴 일은 없을 것 같다.

'\w'([a-zA-Z0-9_])처럼  익숙하지 않거나 '\b', positive, negative lookahead('?=', '?!'), lookbehind('? <=', '? <!')처럼 생전처음 보는 regex 구문들도 눈에 익히는 시간이었다. 저자 David Mertz는 2006년부터 2024년 7월까지 Python Software Foundation에서 근무를 하였으며, IBM, Anaconda 등의 회사에서도 근무한 경험이 있다. Python 고인물인 저자가 알려주는 regex, LLM 활용법을 알려주는 좋은 책이라고 생각한다. 아쉬운 점은 퍼즐 21 숫자 시퀀스 매치하기, 퍼즐 22 피보나치 수 매치하기, 퍼즐 23 소수 매치하기와 퍼즐 24 상대 소수 매치하기는 굳이 regex를 이용해서 풀어야 하나 싶다. 개인적으로는 조금 억지스러웠다. 번역은 IT 업계에 종사하는 분이 번역을 했으나 퀄리티가 좋지는 않다고 생각한다. 특이 영어를 잘 못하셔서 원문의 의미를 잘못 전달하는 경우가 종종 있었다. 책을 읽기 전에 저자가 이전에 쓴 책을 읽고 난 뒤에 이 책을 읽어도 좋을 것 같다. regex가 처음은 아니지만 어느 정도 익숙했다고 생각했는데 솔직히 완벽히 이해한 부분은 책의 50% 정도밖에 안 되는 것 같다. 나중에 regex, Python 지식이 조금 더 늘면 다시 봐야겠다.

 

저자는 우리가 흔히 떠올리는 프로그래머의 모습과는 달리 tattoo도 많다. ㅋㅋ 

 

'독후감' 카테고리의 다른 글

나는 LINE 개발자입니다  (2) 2024.12.22
괄호로 만든 세계  (2) 2024.12.21
AI 메이커스 인공지능 전쟁의 최전선  (0) 2024.12.06
굽기의 기술  (2) 2024.11.23
내 안에서 찾은 자유 장자  (1) 2024.11.22