상세 컨텐츠

본문 제목

한 권으로 끝내는 정규표현식

Review/Book

by steve vai 2010. 11. 26. 10:25

본문


 





한 권으로 끝내는 정규표현식

2010/11/26

정규표현식이란 각종 현대적 애플리케이션과 프로그래밍 언어에 사용할 수 있는 특수한 텍스트 패턴이다.

정규표현식은 다음과 같은 용도로 사용할 수 있다

① 입력 내용이 그 텍스트 패턴에 일치하는지 여부를 검사
② 더 큰 범위의 텍스트 내에서 특정 패턴과 일치하는 텍스트를 찾아냄
③ 해당 패턴과 일치하는 텍스트를 다른 텍스트로 치환하거나 일치 텍스트의 일부를 재배치
능숙하게 정규표현식을 사용하면, 프로그램 작성과 텍스트 처리를 간소화할 수 있다.

예를 들어 어떤 문서에서 모든 이메일 주소를 추출하려면 몇십줄의 코딩이 필요하겠지만 적당한 정규표현식을 사용하면 몇 줄의 코드만 있으면 가능해진다. 또는 주민등록번호, 사업자번호 혹은 이메일을 등을 입력받을 때 제대로 된 텍스트인지 유효성 검사를 할 때도 매우 유용해 보인다.

이 책은 이런 정규표현식을 설명해주고 사용방법을 가르쳐 주는 책이다.
하지만 본인처럼 정규표현식에 대한 이해도가 적은 사람이 읽기에는 조금 어려운 책이다.


어디에다가 쓸까?

어디다가 쓸 것인지 개발자들과 같이 고민을 해봤다.

결론은 입력을 제한하고 데이터의 규칙성을 찾고 유효성 검토하는데 사용할 수 있다는 것을 알게 되었다.

여러가지의 프로그래밍 언어에서 사용이되고 ... 우리 프로젝트 팀에서는 C#이 필요하니 크게 문제 없이 사용이 될 수 있을 것 같다.

제대로된 값을 고정적으로 받아야 할 경우 ...

The Saint Maurice of Turin
The Saint Maurice of Turin by Albion Europe ApS 저작자 표시

예를 들자면, EDI 중에서 Excel로 누군가 형식에 맞추어서 수작업을 해서 보내주는 데이터의 유효성 검토를 하는데 크게 도움이 될 것 같다.

아직 네트워크는 하늘을 날고 있지만 현업의 업무는 제자리 걸음을 하거나 엑셀 정도만 쓰는 경우들이 많은데

기능을 구현을 하더라도 현실은 그렇지 못하기 때문에 ...

그렇다고, 그 많은 입력 사항들을 Check 해 볼 수 는 없는 것 아닌가라는 생각을 해봤다.

그리고, 실제로 기능 구현 상에서 발생할 수 있는 입력의 오류를 최소화 할 수 있다고 확신한다.

데이터 마이그레이션을 하는데도 자동화 프로그램을 만드는데도 충분히 사용이 가능하다고 판단을 했다.


누가 봐야 하는지?

프로젝트를 맡고 있는 PM은 개발자가 아니기 때문에 이런 판단을 내리는 것은 좀 섣부른 판단이기는 하지만 본인 생각을 할때는 단위 개발자 보다는 Evangelist의 성향이 강한 사람이 봐야 한다고 생각한다.

개발을 충분히 몇개의 정규식으로 줄여서 표현할 수 있기 때문에 개발을 하면서 고민해야 할 부분은 어느 정도 규정화해서 진행을 한다면 생산성을 담보하는데 큰 어려움이 없어 보인다.

다만, 개발자들이 반발할 수 있는 부분은

"개발성이 떨어진다.",
"아는 사람만 아는 것 아니냐?",
"나는 개발자이니 직접 구현하는데 의미가 있다.",
"개인의 Skill을 배양하는데 어려움이 있다."

이런 의견은 있지만 프로젝트를 실패하거나 개발을 실패하는 것보다 충분히 좋은 의미로 받아드릴 수 있다.

Agent [smith]
Agent [smith] by [martin] 저작자 표시비영리변경 금지

대체로 이런 생각은 80-90년대에 개발을 하는 방식이라고 생각한다.

현재는 자신이 우선 개선을 하고 남과 공유를 하고 남이 개선해 놓은 내용을 잘 정리하면서 개발을 하는 것이 개발하는 사람으로 최고의 미덕이자 조직의 효율성을 높일 수 있는 방안이다.

누구를 위해서 개발을 하는지를 잘 한번 생각해보자.

어차피 자신이라면 일을 줄이고 성과에 집중하는 것이 옳다.

그런면에서는 정규식도 하나의 좋은 방법이 될 수 있다.


정규식에는 단점은 없나?

아주 오래전에 개발에서 손을 뗀 사람으로 직원들과 책을 같이 했다.

그러면서, 느꼈던 부분은 주석 관리를 잘 해야 겠다는 생각에 일치했다.

Watch your back!
Watch your back! by Frodrig 저작자 표시비영리변경 금지

거의 암호문 같은 정규식만으로는 얻을 것이 없다.

그것을 잘 이해하고 잘 배치하고 용법을 표준화해서 정의하고 많은 사람들이 얼마나 잘 쓸 것인가를 고민하는 것이 숙제이다.

그것말고 단점이 있을까?

한 권으로 끝내는 정규표현식 - 결론

초반에 기본을 알려준다고는 하지만 그 내용이 너무 짧고 그 내용 또한 바로 이해가 되기에는 조금 어렵다고 보이기 때문이다. 정규표현식에 대한 설명이 얼마 나오지도 않았는데 갑자기 툴에 대한 설명이 들어가고 바로 예제들이 나오면서 조금은 당황스러웠다.

하지만 정규표현식에 대한 기본적인 지식이 있고 개발 과정에서 개발자의 코딩 시간을 단축시키고자 하는 독자에게는 매우 유용한 책이 될 듯하다.


Regular Expressions
Regular Expressions by Jeff Kubina 저작자 표시동일조건 변경허락

또한 다양한 언어별로 설명하고, 해당 문제에 대해서 다른 방법으로 사용할 수 있는 예제도 있기에 보다 다양한 경우에 적용할 수 있지 않을까 싶다.

다만 전형적인 ‘문제 제기 ? 해결 모색’이라는 구조를 띄우고 있는 이 책은 ‘기출문제 풀이집’ 혹은 ‘참고서’라는 느낌이 많이 드는 책이라고 할 수 있다. 우리가 참고서를 보기 위해선 교과서와 같은 기초적인 책이 필요하듯이, 이 책만으로 정규표현식을 이해하기에는 많은 무리가 있어보인다.

그래서, 정규식 활용서적이 실제 적용되는 사항을 정리된 것이 있었으면 좋겠다.

물론, 이 책에는 용법에 대해서 너무 잘 나와있지만 잘 쓰는 것만 추려도 좋을 것 같다.



관련글 더보기