|
다양한 예외사항이 담겨있어 책의 내용은 풍부한 편이다. 하지만, 책 제목과 다르게 이 한권으로 정규표현식을 끝낼 수 없을 것 같다. 처음부터 너무 어려운 것을 설명하고 딱딱한 번역투가 많아 다 읽는 것이 쉽지 않다. 1. 쉬운 것부터 설명하지 않는다. 이 책은 case by case로 정규표현식을 설명한다. 예를들면, 특정 문제 상황을 설명하고 그것을 해결하기 위한 정규식을 설명한다. 2번째 문제의 제목이 "비인쇄 문자에 일치" 이다. "07, 1B, 0A, 0D"와 같은 제어 문자를 정규식으로 잡아내는 것인데, 난 이것을 왜 2번째에 설명하는지 모르겠다. 아직 '*'나 '+'같이 기본적인것들도 설명 안했는데 비인쇄 문자 검출이 왠말인가..? 2. 글이 너무 많다. 정규표현식은 정규표현식 적용에 따른 결과가 명확하다. 하여, 설명이 이렇게 많이 필요한지는 잘 모르겠다. 3. 글 투가 이해를 시키려 한다기 보다는, 정보를 나열하는것에 그치고 있다. .NET, JavaScript, PCRE, Perl, Python, Ruby에서 <\b>는 <\w>에 일치되는 한 문자와 <\W>에 일치되는 한 문자 사이에서 일치되고, <\B>는 항상 <\w>에 일치되는 두 문자 사이나 <\W>에 일치되는 두 문자 사이에서 일치된다. 책 내용 중 일부인데, 잘 이해 되는가..? 난 몇번을 반복 읽어봐도 잘 모르겠다.책 내용은 아주 좋고 방대해서 Reference용으로 사용하기 좋다. 하지만, 정규식을 차근차근 공부하고 싶다던가, 정말 한권으로 정규식을 배우고싶다면 이 책은 비추이다. |
|
드디어 손에 잡게 되었네요. 정규표현식.ㅎ 책을 받아 보면 엄청 두껍다는 걸 알게 됩니다. 책 이름에서 소개 하듯이 한 권으로 끝내려면 이정도는 되어야죠.ㅎ 목차만 해도 두장 반이 할애 되어 있습니다. 책을 본 뒤 언제라도 쉽게 다시 찾아 보고 싶은 것을 찾아 볼 수 있게 직관적으로 인덱싱 되어 있기 때문이죠. 책을 열면 가장 먼저 정규표현식이 무엇이고 어떤 경우에 사용하면 좋을지에 대해 소개 하고 있습니다. 그리고 테스트 할 수 있는 툴 및 웹도 소개 하고 있습니다. 본인의 경우에 http://regex.larsolavtorvik.com 에서 javascript 를 많이 이용했습니다. 3장에서부터 8장까지 정규표현식을 응용한 것들에 대한 소개가 있으며 2장에서는 정규표현식 사용을 위한 기본기를 닦는 과정이라고 할 수 있습니다. 따라서 정규표현식에 대해 어느정도 지식이 있으면 2장은 건너뛰고 바로 3장부터 필요한 것만 봐도 될 것 같습니다. 모든 설명은 '질답'형식으로 되어 있습니다. 가장 먼저 문제를 제시하고 해결책을 보여줍니다. 다음으로 토의 후 응용이 나옵니다. 두께가 말해주듯이 상당히 많은 부분에 대해 소개가 됩니다. 다만 책의 앞부분에 '정규표현식의 가장 기초적인 사항까지도 이 책에선 일일이 설명하기 때문에 독자는 아무런 사전지식도 필요치 않다.' 라는 표현이 나오는데, 사실 저로서는 조금 힘이 들었던 것이 사실입니다. 2장을 따라하며 어느 정도 익숙해 지긴 했지만 2장을 시작하기 전에 메타문자등 기본적인 것들을 어느 정도 정리 해주고 시작했으면 조금 더 편하게 볼 수 있었겠다 하는 아쉬움이 남았습니다. 그리고 이 책의 장점이자 단점이라고도 말할수 있을 것 같은 점은 '지나치게 세세하다'라는 것입니다. 예로 하나 들자면 3장에서 나오는 '대상 문자열과 일치 되는지 검사, 대상 문자열과 완전히 일치되는지 검사, 일치 텍스트 가져 오기, 일치부 지점과 길이 알아내기, 일치 텍스트의 일부분 가져오기.' 등 이후에도 종종 나오는 예제들에 대해 합칠 수 있는 부분들은 합친다거나 어느정도 응용이 가능한 부분은 굳이 설명을 안했더라도 괜찮지 않았을까 하는 생각이 들었습니다.
2장을 웹에서 어느정도 연습하고 3장 부터 .net 환경에서 샘플 소스 짜며 따라 했는데 결과를 바로바로 확인 할 수 있어 더욱 흥미를 느낄 수 있었습니다. |
|
정규표현식이란 무엇인가?라는 궁금증을 자아내게 한 책은 바로 '한권으로 끝내는 정규표현식'이라는 책으로 이 책에서 말하는 정규표현식은 각종 현대적 애플리케이션과 프로그래밍 언어에서 사용할 수 있는 특수한 텍스트 패턴을 말한다. 대다수의 사람들이 별 생각 안하고 웹사이트등에서 사용했던 그 입력폼을 만들기 위해서 더 큰 범위의 텍스트 내에서 특정 패턴과 일치하는 텍스트를 찾아내거나 일치하는지 여부를 검사하는등의 작업을 용이하게 해준다.
한빛출판사에서 나온 정규표현식이라는 책은 여덟 가지 프래그래밍 언어별 완벽 해설이라는 소제목이 붙은 책으로 정규표현식이 과연 무엇인가를 알고 싶으신 분들은 서점에서 역자 서문과 목차만 봐도 쉽게 알 수 있다.
이 책은 초반부에 유용한 각종 툴과 사용에 필요한 기초를 심어줄 수 있는 기본적인 내용이 설명되어 있고 중반부부터 후반부까지는 하나하나 프로그래밍하면서 필요했던 다양한 내용들을 담고 있다. 컴퓨터에서 텍스트를 조작하거나 추출하는 업무에 종사하는 사람이 정규표현식을 알아두면 상당한 시간을 절약할 수 있다고 보여진다.
한권으로 끝내는 정규표현식
한국사람들이 한권으로 끝내는것을 얼마나 좋아하는가는 알려면 서점에 출판된 책들만 보아도 쉽게 알 수 있다. 이 책의 제목은 Regular Expression!s Cookbook이지만 한권으로 끝낸다는 말이 붙음으로서 저거 한권만 있으면 다할 수 있겠구나란 기대감을 가지게 된다.
전반부에서는 기본 기술이나 정규표현식을 사용하기 위한 프로그래밍의 기본을 알려주고 있는데 본격적인 활용은 4장에서 8장까지 그 내용을 자세히 정리해주고 있다.
특히 이 책은 여덟까지 언어로 다양하게 적용하게 할 수 있어서 활용성이 높은데 수많은 문서의 내부를 검색하는 사람, 텍스트 편집기에서 텍스트를 조작하는 사람, 텍스트 검색이나 조작이 필요한 소프트웨어를 개발하는 사람 모두에게 유용한 도구로 초급보다는 중급 수준에 걸맞는 책으로 보여진다. 물론 초급도 향후 활용하기에 따라 작업속도를 상당히 줄여줄 수 있는 책이라는 판단이 들긴 한다
상당히 많은 정보를 담고 있는데 일정 표기 규정에 따라서 일관적으로 기술하고 있다. 정규표현식 (단독적인 정규표현식이나 애플리케이션의 검색 박스 안에 입력할 때의 정규표현식을 나타낸다. 정규표현식에 들어있는 빈칸은 공백 무시 모드를 제외하고는 회색 원형으로 표시된다), 치환 텍스트 (정규표현식 일치부가 검색 치환 과정에서 치환될 텍스트를 의미한다. 치환 텍스트 사이의 공백은 회색 원형으로 표시된다), 일치 텍스트 (대상 텍스트에서 정규표현식과 일치하는 부분을 표시한다), 이외에 생략부호, 개행문자, 엔터로 모든것을 설명하고 있다.
결국에는 텍스트 검색이긴 하지만 결국 제대로된 데이터를 추출하기 위한 방법을 알려주고 있는데 이메일주소, 날짜, 시간 나라별 우편번호, 주민번호, 사회보장번호, 단어, 행, 특수문자를 제외 혹은 포함한 검색, 숫자, URL, 경로, 인터넷 주소의 유효성이나 경로 추출, 마크업과 데이터의 상호 변환을 다루고 있다.
웹에서 주류 마크업 언어와 파일형식 HTML, XHTML, XML, CSV, INI를 다룰때 흔히 부딪치게 되는 정규표현식 문제는 본인도 자주 찾아보게 될것 같다.
중간만 펴보아도 개발자에게 유용한지 금방 눈치챌 수 있는 정규표현식이라는 책은 다양한 예제와 더불어 상당량의 일반화된 정보를 집대성해서 명쾌하게 해결해주는 책이라는 생각이 드는 좋은책 |
|
이벤트를 통해 만나게 된 책이지만 개발시 없어서는 안될 책이다. 요즘 바쁜 업무로 인해 정신 없었는데 프로젝트 진행하면서 이책을 통해 많은 도움을 얻게 되었다.
8개의 다양한 언어별 예제를 보면 얼마나 독자들을 배려했는지 알수 있다.
각 언어별로 사용되는 정규표현식의 차이점들을 상세하게 설명해주는 것은 센스도 발휘한다.
그동안 알듯말듯 힘든 정규표현식을 업무에 적용하기 위해 많은 검색으로 시간을 낭비했는데 이젠 그럴 필요가 없어졌다.
옆에 두고 필요할때 레퍼런스처럼 사용할 수 있기 때문이다.
아직도 개발시 정규표현식때문에 힘들어하거나 아니면 정규표현식 적용을 안하고 있는 사람이 있다면 적극 추천해주고 싶다.
이메일, 전화번호, 우편번호, 이름, 사업자 번호등 각종 케이스별 예제를 보여주고 있다.
이책과 함께 정규표현식의 두려움에서 벗어나 마음껏 요리하길 빈다. |
|
책의 내용은 다양한 언어에 대한 예제로 보여주고 있다. 즉, C#, JAVA, JavaScript, Perl, PHP, Python, Ruby, VB.net 등 여러가지 언어에 대한 예제를 보여주고 있다. 책은 600 페이지 분량이지만 첫장부터 마지막장까지 한번에 쭉 읽어 내려가기에는 좀 내공이 많이 필요한 책인듯 싶다.CookBook인지라 그때 그때 찾아보면 더욱 빛이 나는 책으로 보인다. |
|
벌써 한빛리더스 1기 마지막 리뷰네요 ^-^
시간도 참 빨리 흘러갑니다. 그리고 저의 게으름 아닌 게으름도 무르익어 가고 있네요 ㅎ
사실 이 책을 다 읽은지 3주가 되었는데 육아에 야근에 마감기한까지 넘긴 이 시점에 이렇게
리뷰를 작성하고 있습니다. 반성이 좀 필요하겠습니다~
자아 이번에 읽은 도서는 [한 권으로 끝내는 정규표현식] 입니다.
정규식이라 하면 보통 어렵다, 이해할 수 없다, 저게 뭐지 하고는 벽을 쌓는 경우가 꽤 많은데요
이게 응용하면 정말 편리한 프로그래밍을 할 수 있도록 도와주는 큰 무기가 될 수 있는 것 같습니다.
솔직히 저도 정규식을 몰랐습니다. 진작부터 책을 읽고 공부하려고 했는데 이게 막상
서점에서 책을 펴보면 아~~~~~ 어디 먼나라 이야기네, 책이 암호록 적혀있네 이러면서
말이죠. 이 책이라고 암호로 적혀있는것이 아닌건 아니지만 적어도 Cookbook의 컨셉에
맞게 설명이 잘 되어 있다는 겁니다. 이 암호는 이렇게 쓰는거고 이런 경우에 이렇게 도움이
된다는 레퍼런스 격의 설명도 알차게 들어 있지요.
덕분에 읽는데 별 무리 없이 술술 볼 수가 있었습니다. 하지만 그렇다고 해서 두려움이 싹
가셨다던가, 전부 이해를 했다는 것은 아닙니다만. 그래도 그동안 두려워하던 영역에 대해서
한걸음 내딛었다는데 마음이 후련하네요.
에~ 감상은 일단 여기까지 하고 책의 내용을 보면요. 챕터 별로 차근차근히 정규식의 이해도를
높여 갈 수 있도록 단계식으로 구성된 것 같습니다. 처음에 정규식의 기본에 대해서 배우고
그 다음엔 이제 실제 프로그래밍에서 쓰이는 것들, 문자처리, 형식검사 등등 내용은 참 알차게
들어있고요. 제가 제일 좋아했던 부분은 역시 첫번째 챕터인 정규식의 기본 부분입니다. 제가
모르고 있는 것이니 당연히 기초 부분이 잘 설명되어 있어야 하는데 만드는 방법, 자동화 툴,
테스트 도구 등 생각보다 세세한 부분까지 잘 설명해 주고 있습니다. 실제로 툴들을 조금 사용해
보았더니 뭐 생각보다 어렵진 않더라구요 ^-^ 물론 편의도구에 의존하기 전에 정확한 사용법에
대한 공부는 필수겠지만요.
정규식에 대해서 알고자 하는 학생, 현업 개발자 누구라도 이 책과 함께면 쉽게 시작할 수 있을
것 같구요 정규식에 익숙하신 분들도 툴에 대한 소개부분과 뒤쪽에 실제 사용하는 표현들에 대한
부분은 많은 도움이 될 것 같습니다.
|
|
정규표현식은 이런저런 프로젝트를 하면서 조금씩 접하고 있었지만,
정독할 시간이 부족한 경우라면 필요할 때마다 레퍼런스로 활용을 해도 괜찮다.
|
|
정규표현식에 대해 말하자면, 요상한 기호와 숫자를 버무려 괴상하게 보이기 십상이기 때문에, 조금 가까이 하기 힘든면이 있다. 반면에 굳이 개발자가 아니더라도 '?'나 '*'등의 의미는 아는 사람이 많을 정도로 여러분야에 퍼져 있기도 한 것이 정규표현식이다. 이 정규표현식의 장점은 노가다를 줄여준다는데 있다. 즉 모른다고 큰 불편을 겪는 것은 아니지만, 조금만 사용할 줄 알면 각종 노가다를 손쉽게 해낼 수 있다. 또 컴파일러 파서를 정의하는데는 거의 필수적으로 사용되기도 한다. 특히 야근 많이 하는 개발자 입장에서는 일손을 줄여줄 수 있는 중요한 툴이기 때문에, 반드시 익혀야한다.
정규 표현식 관련해서는 책이 별로 많지 않은데, 이전에 동 출판사에서 나온 "정규표현식 완전 해부"와 상당히 얇아 보이는 "손에 잡히는 정규표현식" 그리고 이 책 정도인것 같다. 이 책의 저자는 정규표현식을 전문적으로 연구하고 있으며, 관련 상용툴도 만들어 배포하고 있다. 그래서 단순히 연구에 그친 것이 아닌 실무적인 능력도 기대할 수 있다. 폭넓은 정규표현식의 경험을 바탕으로 여러 언어에서 사용되는 정규표현식을 언어별로 정리하고 있다는 것이 이 책의 가장 큰 특징이다. 단 책 전반부에서 상용 툴을 홍보하는 듯한 뉘앙스가 살짝 거슬리긴 한다. 기존에 한 환경에서 적용되는 정규표현식이 다른 환경에서는 먹히지 않는 경우가 있었는데, 책을 읽고 보니 정규표현식이 각 환경 별로 지원되는 부분이 서로 달랐기 때문인듯 하다..
여하튼 정규표현식은 개발자의 일손을 줄여줄 수 있는 유익한 툴 인것 같다. 책을 통달해서 깊게 연구하기까진 않더라도 일부 유용한 구문만 사용해도 충분히 효과가 있으리라 본다.
|
|
기존에 나와 있던 '정규표현식 완전 해부와 실습' 책이 현재는 절판되어 구하기도 힘들고 약간은 오래된 정보를 담고 있는데 반해 이 책은 나온지 채 한달 정도 밖에 되지 않아 따끈따끈하고 최신정보와 함께 여러 언어들의 차이점 까지 기술하고 있다. Cookbook 이라는 이름답게 요리레시피처럼 책을 보면서 실무에 바로 적용하기에는 이 책이 낫지만 정규표현식을 좀 더 심화학습하기에는 위의 '실습' 책이 나을 수도 있겠다는 생각이 든다. 아직 완전 1독하진 못했지만 번역상태도 좋은 듯.
무엇보다 정규표현식에 대한 책이 부족한 이 시점에 가뭄에 단비 같은 책인지라 감히 추천하고 싶다. |
|
한 권으로 끝내는... 이런 제목의 책은 왠지 믿음이 가지 않았다. 그러나 이 책은 이러한 조금은 오만한 제목이 왠지 더 어울린다. 8가지 프로그래밍 언어 (Perl,.net, java, javascript, Python, ruby,VB.net,PCRE)의 정규 표현식을 다루고 있으니 말이다.
정규 표현식 하면 내가 생각할 수 있는 한계는 웹 프로그래밍에서 입력값을 검증하기 위한 javascript정도였다. 이렇게 다양한 언어에서 사용할 수 있는 지에 별 관심도 없었고 잘 사용하지 않았다. 웹프로그래밍이란 끝없는 삽질로만 결실을 만들 수 있다고 생각했다.
하지만 이 책을 통해 조금 더 똑똑하고 영악하게 일해야겠다는 생각을 했다. ^^ 기존에 10줄 심지어는 20줄을 넘기던 나의 단순 무식한 코드는 정규 표현식을 통해 단 1줄로 깔끔하게 정리할 수 있었다. 이 책에 소개되어 있는 myregexp.com의 온라인 테스터를 활용하여 개발 시간까지 단축할 수 있었다.
정규식이라는게 아는 개발자에게는 '이보다 더 좋을 수 없다' 이지만 모르는 코더에게는 육두문자일 수 밖에 없기도 하다. 그래서 유지보수 차원에서는 코드의 가독성이 떨어질 수도 있을 것 같다.
이런 경우! 이 책은 진가를 발휘한다. 백과사전식 구성으로 쉽게 필요한 부분을 찾아 볼 수 있고 웹 페이지의 링크를 걸어놓은 듯 관련 내용에 대해 페이지 및 줄수까지 명시를 해 주어 매우 편리하다. 또한 따라해보기 식의 단순한 구성이 아닌 원리를 알려주어 다양하게 응용할 수 있는 힘을 키워준다.
처음 프로그래밍을 시작하는 프로그래머가 보기에는 무리가 있어보인다. 중급이상의 개발자가 자신의 내공을 좀 더 쌓고자 한다면 책상 옆에 두고 항상 참고할 수 있는 좋을 참고서가 될 것이다.
그러나 8가지 언어에 대해 설명을 하다보니 책을 볼 때 몰입도가 조금 떨어지는 면도 있었고 상세한 예제보다는 레퍼런스식의 예제들이 나와있어서 내용이 딱딱하고 나열식으로 나와있어 필자가 추천한대로 처음부터 차분히 읽는 것은 만만치 않을 일이다.
처음 1,2,3장은 정독을 하고 이후 부분에 대해서는 필요시에 찾아보며 익히는 것이 이책을 더 잘 활용하는 방법일 것 같다.
이 책을 통해서 정규식을 이용한 똑똑한 프로그래밍에 대해 배울 수 있었고 인터넷 서핑을 통해 다른 사람이 만들어 놓은 코드들을 그대로 베끼는는 것이 아닌 내 스스로 뭔가 만들고 싶다는 열정과 정규식이라는 마술같은 도구에 호기심을 갖게되는 나를 발견할 수 있었다.
스마트하게 프로그램을 하도자 하는 중급이상의 개발자라면 꼭 한권씩 옆에 끼고 참고해야 할 책이다. |