2016년 10월 30일 일요일

드디어 탈고

작년 8월부터 쓰기 시작한 책을 드디어 탈고했다. 1년 3개월 걸렸군. 한 번 해봐서 쉬울줄 알았는데 첫 번째 책을 쓸 때보다 더 후달린 듯. 주제는 정규표현식이다.
정규표현식은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다 – 위키백과

학습 의욕을 뚝 떨어트리는 설명이 아닐 수 없다. 일단 '정규표현식'이란 단어가 주는 어감부터 너무 딱딱하고 고리타분하다. '빅데이터'와 같은 멋진 이름 없을까? 매직표현식? 스마트표현식? 파워표현식? 이름만 잘 지었어도 정규표현식의 저변이 훨씬 더 넓어졌을 테고, 그랬으면 이런 책을 써봐야겠다는 생각도 안 했을 텐데!

친구가 술 한 잔 하다가 돈도 안 되는 책을 왜 쓰냐며, 유명해지고 싶은 거냐고 물었다. 뭐 그런 마음도 조금은 있다. 유명해지면 똥을 싸도 박수를 쳐준다는데, 설득이 좀 쉬워지지 않을까? 그리고 담배값 정도는 벌 수 있다고(..)

무엇보다 가장 큰 이유는 혼자 해봐야 힘만 들고 할 수 있는 일도 많지 않아서이다. 첫 번째 책 'IDS와 보안관제의 완성'을 쓴 이유는 같은 목표를 공유하고, 실행에 옮길 동료를 찾아보고 싶어서였다.

두 번째 책을 쓴 이유도 비슷. 첫 번째 책을 쓰고 나서 오랫동안 관여해왔던 보안관제 현장의 로그 분석 수준을 높일 수 있는 기회를 얻었으나 동료를 찾기가 힘들었다.

물론 기존 체계에서 벗어나기 힘든 환경, 종래의 책임에 매여 있는 환경에서 새로운 시도는 새로운 책임만 하나 늘어나는 것에 불과할 뿐인 환경 탓도 컸지만 (로그 분석 수준을 극적으로 높여주는) 정규표현식에 익숙한 엔지니어 역시 절대 부족했다.

결과적으로 보안 장비의 정확도 개선이 성과로 인정받기 어려운 분위기 속에서 눈치 봐가며 1년여 동안 업무를 진행한 결과는 로그 분석 범위의 기존 대비 50% 확대. (그러나 여전히 전체 범위의 반에도 미치지 못하는 상황) 나름의 방법론이 실행 가능함을 확인했기에 후회는 없다.

대신 정규표현식에 익숙한 사람들과 같이 일해보고 싶다는 생각은 더 뚜렷해졌다. 물론 실제 정규표현식에 능숙한 이들은 많다. 하지만 그들이 애써 쌓은 기반을 버리고 정보보안, 특히 보안관제 분야로 올 가능성은 낮은 게 현실. 보안관제 분야의 발전을 바라는 이들에게 정규표현식을 쉽게 접할 수 있는 책이 필요하다는 생각이 들었다.

사실 관련 책이 좀 있는데 주로 프로그래밍 분야의 활용을 목적으로 한 책이 많다. 다 읽어본 소감은 전반적으로 어렵다는 거. 물론 머리가 나빠서

두꺼운 책은 복잡해서 어렵고, 얇은 책은 간단해서 어렵고, 뭐 그랬던 것 같다. 특이하게 '인디자인을 위한 GREP'은 출판 업무를 위한 정규표현식 활용서인데 그나마 좀 쉽다.

[ 국내서 ]
  • 자바스크립트 정규표현식 (ITC, 2010)
  • 인디자인을 위한 GREP (안그라픽스, 2015)

[ 번역서 ]
  • 정규표현식 완전 해부와 실습 (한빛미디어, 2003)
  • 손에 잡히는 정규표현식 (인사이트, 2009)
  • 한 권으로 끝내는 정규표현식 (한빛미디어, 2010)
  • 처음 시작하는 정규표현식 (한빛미디어, 2013)
  • 다양한 언어로 배우는 정규표현식 (제이펍, 2016)

로그 분석만을 위한 정규표현식 활용서를 쓰고 싶었다. 그래서 기능이나 원리의 나열에 그치지 않고 로그 분석에 효과적인 사례 소개에 중점을 뒀으며, 특히 로그 분석을 데이터 분석 수준으로 끌어올리는 데 결정적인 역할을 수행하는 정규표현식을 보여주려고 했다.

최대한 쉽게 이해할 수 있는 책을 쓰려다 보니 (그림 없이 설명할 능력이 안 돼서) 그림만 700개가 넘는 그림책이 돼버렸는데, 이런 의도가 독자들에게 잘 전달됐으면 좋겠다.

이제 그림이랑 색인 정리하고, 출판사 교정만 넘기면 되는구나. 설마 저번처럼 서너 달씩 걸리지는 않겠지?-_- 그런데 이것도 내성이 생기는지 4년 전만큼 기쁘다거나 하지는 않는 것 같다. 그냥 이제 겨우 끝났구나 싶은 정도. 그리고 철호야 고맙다. 네 덕에 팔자에도 없는 책을 두 권이나 썼어.

[ 목차 ]
1부 : 정규표현식 기초
 1장 소개
  1.1 정규표현식이란?
  1.2 정규표현식 엔진
  1.3 선수 지식
  1.4 요약

 2장 메타 문자
  2.1 수정자
  2.2 검사 범위가 지정된 메타 문자
  2.3 수량자
  2.4 검사 범위를 지정할 수 있는 메타 문자
  2.5 검사 위치 지정 메타 문자
  2.6 요약

 3장 응용 기초
  3.1 검사 방식
  3.2 단어 검사
  3.3 숫자 검사
  3.4 이메일 주소 및 URL 검사
  3.5 IP 주소 검사
  3.6 앵커 문자와 길이 검사
  3.7 요약

2부 : 정규표현식 심화
 4장 알고 보면 쉬운 개념들
  4.1 백트래킹
  4.2 백트래킹 제거
  4.3 전/후방탐색과 수량자
  4.4 기타
  4.5 요약

 5장 성능
  5.1 수량자
  5.2 캡쳐 그룹
  5.3 앵커 문자
  5.4 OR 연산
  5.5 전/후방탐색
  5.6 요약

 6장 응용 심화
  6.1 로그와 친해지기
  6.2 Secure 로그 분석
  6.3 웹 요청 트래픽 분석
  6.4 웹 요청 트래픽 분석 심화

댓글 없음:

댓글 쓰기

크리에이티브 커먼즈 라이선스