나는 GREP을 조금씩 쓰기 시작했다.

내게 디자인은 문과적 충동에서 출발해 이공학적 세부에 도달하는 과정인 경우가 많다.

예를 들어 나는 프로그래밍을 본격적으로 공부할 만한 집중된 뇌에너지가 없다. 그렇지만 프로그래밍의 아주 작은 귀퉁이 하나는 나름 재미있게 배워가는 중인데, 바로 HTMLCSS다. 블로그를 샥샥 아름답게 돌아가게 만들려고 중학교 때 시작한 것이 지금은 간단한 코드는 줄글처럼 읽을 수 있는 정도는 되었다. 인쇄・편집디자인 위주로 작업을 해 온 나로서 웹이나 기타 디지털 쪽으로 진출해 만능 되려면 필요한 기능이라는 판단이 서서 계속 관심을 기울이고 있다.

요즘에 디자인이 내게 새롭게 문을 열어 준 프로그래밍 영역이 있는데 GREP이라는 것이다. 언제나처럼 어도비 인디자인을 이용한 인쇄물 편집작업에 열을 올리고 있는데, GREP을 잘만 사용하면 양 많은 본문에 투자하는 시간을 반의 반으로 줄일 수 있다는 것을 깨닫고 뒤늦게 인터넷 뒤져가며 배우고 있다. 지금까지는 인디자인의 본문 찾아바꾸기 기능을 썼다. 인디자인은 사실 일반인이 보면 제법 놀라움을 느끼게 할 수 있을 정도로 찾아바꾸기 기능이 (굳이 GREP이 없더라도) 무척 강력하다.

편집디자인에 조금이라도 관심이 있다면 본문이 글자로만 구성된 것이 아니라 각종 공백과 서식이 뒤섞여 있다는 것, 그런 것 역시 찾아서 바꾸면서 자동화할 수 있는 대상이라는 것부터 체감해야 한다. 예를 들어, 받은 한글이나 워드 파일에 제목은 12pt 두껍게로, 그림 설명은 9pt 진회색으로 돼 있다면 속성으로 찾아서 제목 글꼴만 바꾼다든지, 그림 설명을 전부 가운데 정렬한다든지 할 수 있다.

포토샵에서는 action(자동 실행) 기능이 쓰기 편하게 되어 있기 때문에 똑같은 작업을 여러 파일에 한다든가 할 때 유용하게 쓰는 사람들이 많지만 인디자인으로 넘어오면 action이 없기 때문에 자동화에 어려움을 느낄 수 있다. 물론 인디자인에서도 script(대본)을 이용하면 얼마든지 자동화할 수 있겠지만 본격 프로그래밍이기 때문에 예쁜 문서만 만들던 디자이너가 갑자기 시작하기엔 장벽이 높다. 그러나 인쇄물 디자인에서는 방대한 본문에 비슷한 서식을 일관된 규칙에 맞추어 적용하는 일이 주어지기 마련이므로 찾아바꾸기가 강력하다는 점은 큰 위안이다. (인디자인 뿐 아니라 쓸만한 탁상출판(DTP) 프로그램은 다 이런 기능들이 있다.)

GREP은 그렇잖아도 기특한 찾아바꾸기에 날개를 달아 준다. 원래 Unix에서 텍스트 검색을 위해 70년대에 개발된 것인데 인디자인에서는 GREP에서 사용하는 식별자 체계(정규표현식)를 그대로 가져와 좀 더 심층적으로 찾아 바꾸기를 할 수 있게 해 놓았다. 특히 임의 문자(wildcard) 검색이 거의 만능이다. 일치하는 글자, 일치하는 서식, 일치하는 공백의 종류 등으로 어쨌든 뭔가가 구체적으로 일치해야 찾을 수 있는 점이 본문으로 찾아 바꾸기의 한계라면, GREP은 특정 위치(단어의 시작, 문단의 끝 등)로 찾는 것부터 시작해서 규칙이 있는 것은 무엇이든 찾을 수 있다. 임의 문자를 0회, 1회 이상 반복하기 등의 기능이 있어 길이에 관계없이 긁어 찾기가 가능하다.

예컨데 이런 것도 자동으로 가능하다.

  • 제목 바로 뒤에 나오는 첫 문단의 첫 글자만 크게 만들어 돋보이게 하기 (drop cap)
  • 본문 중 괄호 안에 들어간 영어 원문만 폰트를 바꾸고 아래 첨자로 내리기

GREP은 원래 운영체제에서 문자열 찾는 용도로 개발된 것이라 선택자만 똑 떼어 이렇게 쓰면서 나 GREP 알아요 하기는 뭣하지만,이런 기능을 진작 알았으면 예전에도 훨씬 날개달고 작업했을 수 있다는 생각이 들어 열 올리고 있다. 부대에서 책도 만들고 문제지도 만들고 하면서 인디자인이 있었으면 30분에 끝낼 작업을 반나절씩 걸리며 하다 보니 나가면 작업가속화 기술부터 이것저것 먹어치워야겠다는 생각을 했었다. 지금껏 별 필요성을 못 느꼈던 단축타자도 익히고 있다. 자택근무의 기본은 빨리 끝내고 자는 데 있으니까.

  1. babo

    참 글을 잘 쓰시네요. 괜스레 저렇게 블로그는 이글루스의 보배요!

  2. 김괜저

    ㅜㅜ!

  3. 긁적

    Grep, Sed… 학부때 이걸로 날 새던 생각 나네요 ㅋㅋ
    참 좋은 툴들이죠. 익숙해지기 힘들다는 게 단점이지만 ^^;

  4. 김괜저

    자연스럽게 기억할 수 있는 방법이 별로 없어 무작정 외워야 할 것 같네요ㅎ

  5. 채널 2nd™

    정확하게는 — 아마도 — RegExp를 말하는 것 같습니다.

    게다가 GREP는 프로그래밍이라고 하기에는… 그냥 툴(tool)일 뿐입니다…. 툴.

    정규 검색식은 알아두면 여러 모로 편리한데, 대부분이 사람들은 그걸 잘 모르지요. (뭐, 저도 모릅니다.)

  6. 김괜저

    정규표현식을 쓴다는 게 더 정확하긴 하겠습니다. 인디자인에서는 자체적인 스크립트 언어로도 찾기가 되기 때문에 구분을 위해 좀 GREP이라고 부르는 것 같습니다. 정규표현식은 다른 데도 있으니까요.
    프로그래밍이라고 한 것은 이것이 제대로 된 언어라는 뜻이 아니라 제가 건드리는 일 중 비교적 컴퓨터공학의 영역이다 정도로 흐리게 이해하시면 될 것 같아요. 잘 쓰면 정말 유용하겠어요.

  7. qww

    정규표현식은 그 자체가 미스테리입니다.

    국제 표준을 위한 이메일 주소 인식 정규표현식

    http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html

  8. 김괜저

    악 이건

  9. 루이레이

    http://www.jetsetcom.net/images/downloads/grep_codes_and_examples_indesign_cs5.pdf

    안 쓰던 기능인데, 알아두면 혹여 유용할 지도 모르겠네요. 감사.감사. 멋져요!

  10. 김괜저

    정리 잘 돼 있네요 특히 두번째 장 예시들이 무척 유용하겠어요.

  11. .

    찾아바꾸기 기능은.. HWP 도 쓸만하죠.

  12. 김괜저

    MS보다는 나은 점이 많지만 이 글에서 얘기하는 수준의 작업은 불가능합니다.

  13. 아무개

    비공개 댓글입니다.