구글 애널리틱스(Google Analytics) 입문자라면 정규 표현식 또는 정규식(Regular Expression;Regex)을 종종 접하게 됩니다. 특정 데이터를 수집할 때마다 정규 표현식을 입력해야 하지만 정작 어떻게 써야 할지 몰라 난감한 경우가 있을 겁니다. 이번 포스트에서는 정규 표현식이란 무엇이고 구글 애널리틱스에서 어떻게 사용해야 하는지 알아보겠습니다.
정규 표현식은 특정한 규칙을 가지고 있는 문자열을 표현하는 수식입니다. 예를 구글 애널리틱스에서 https로 시작하면서 co.kr이나 co.jp 페이지에 대한 데이터만 수집하려 한다면, 가장 단순한 방법의 하나는 우선 https를 가진 URL을 분류한 다음, co.kr과 co.jp를 나누어 수집하는 것입니다.
이는 여러 절차를 요구할뿐더러 실제 애널리틱스 필터에서는 이러한 여러 조건을 동시에 적용할 수 없습니다. 그러나 정규표현식( ^https.*co.(kr|jp) )을 이용하여 아래와 같이 설정을 하면 한 번에 원하는 데이터를 수집할 수 있습니다.
이러한 이점 때문에 정규 표현식은 많은 텍스트 에디터와 프로그래밍 언어에서 문자열의 검색과 치환을 위해 사용되고 있습니다.
그렇다면 구글 애널리틱스에서 정규 표현식을 어떻게 활용할 수 있을까요? 우선 구글 애널리틱스에서 정규표현식이 사용 가능한 영역은 보기 필터, 목표, 세그먼트, 잠재고객, 콘텐츠 그룹, 채널 그룹 등입니다.
여기서 정규 표현식을 제대로 활용하려면 정규 표현식의 구성요소를 숙지하고 원하는 문자열을 정확히 찾는 식을 만들 수 있어야 합니다. 정규 표현식의 구성 요소는 다양한 종류가 있지만, 이번 포스트에서는 구글에서 제시하는 내용을 중심으로 알아보겠습니다.
정규 표현식을 구성하는 주요 요소는 아래와 같은 와일드카드, 앵커, 그룹, 이스케이프입니다.
. | 글자, 숫자 또는 기호 등의 단일 문자와 일치 | 1.은 10, 1A와 일치1.1은 111, 1A1과 일치 |
더 알아보기 |
? | 앞의 문자와 0 또는 1회 일치 | 10?은 1, 10과 일치 |
더 알아보기 |
+ | 앞의 문자와 1회 이상 일치 | 10+는 10, 100과 일치 |
더 알아보기 |
* | 앞의 문자와 0회 이상 일치 | 1*는 1, 10과 일치 |
더 알아보기 |
| | OR 일치 작성
표현식의 끝 부분에 사용하지 않음 |
1|10는 1, 10과 일치 |
더 알아보기 |
^ | 문자열 앞 부분의 인접 문자와 일치
*[ ] 안에서는 괄호 안 문자의 제외를 의미 |
^10은 10, 100, 10x와 일치^10은 110, 110x와 일치 안 함 [^정규표현식]은”정”,”규”, “표”, “현”, “식”과일치 안 함 |
더 알아보기 |
$ | 문자열 끝 부분의 인접 문자와 일치 | 10$은 110, 1010과 일치10$은 100, 10x와 일치 안 함 |
더 알아보기 |
( ) | 문자열에서 같은 순서로 포함된 문자와 일치
또한 기타 표현식을 그룹화하는 데 사용됨 |
(10)은 10, 101, 1011과 일치([0-9]|[a-z])은 모든 숫자 또는 소문자와 일치 |
더 알아보기 |
[ ] | 문자열에서 순서에 상관없이 포함된 문자와 일치 | [10]은 012, 123, 202, 120, 210과 일치 |
더 알아보기 |
– | 대괄호 안에 문자 범위를 만들면 문자열에서 모두 일치 | [0-9]는 0~9의 모든 숫자와 일치 | 더 알아보기 |
\ | 인접 문자는 정규 표현식 메타 문자가 아닌 문자 그대로 해석함 | \.은 인접한 점이 와일드 카드가 아닌 마침표 또는 소수점으로 해석
216\.239\.32\.34는 |
위에서 정규 표현식의 구성 요소를 살펴보았으니, 이를 이용하여 정규 표현식을 만들어보겠습니다. 예를 들어 아래 5개의 페이지 URL 중 4번 페이지에 대한 조회수만 추적하는 식을 만들어 봅니다.
1) http://www.example.com
2) https://www.example.com/+
3) https://www.example.com/blog/seo-contact/?
4) https://www.example.com/blog/contact/?
5) https://www.example.com/blog/?
Regex: ^https.*
2) https://www.example.com/+
3) https://www.example.com/blog/seo-contact/?
4) https://www.example.com/blog/contact/?
5) https://www.example.com/blog/?
Regex: ^https.*\?$
3) https://www.example.com/blog/seo-contact/?
4) https://www.example.com/blog/contact/?
5) https://www.example.com/blog/?
Regex: ^https.*contact/\?$
3) https://www.example.com/blog/seo-contact/?
4) https://www.example.com/blog/contact/?
Regex: ^https.*[^-]contact/\?$
4) https://www.example.com/blog/contact/?
이상으로 정규 표현식을 이용하여 웹주소를 필터링하는 방법을 살펴봤습니다. 정규 표현식을 이용하면 이러한 웹주소 필터링 외에도 많은 곳에서 활용할 수 있으며 기본적인 정규 표현식 외에도 다른 식을 숙지하면 더욱 다양하고 세부적인 데이터를 필터링하고 활용할 수 있습니다.