유틸리티 소개

URL 주소가 유효한지 정규표현식으로 검사하는 방법

URL 검증은 생각보다 복잡하다. http, https, 포트번호, 경로, 쿼리스트링까지 고려하면 패턴이 길어진다.

기본 URL 패턴

^https?://[a-zA-Z0-9.-]+.[a-zA-Z]{2,}(/.*)?$ 이 정도면 기본적인 URL은 잡는다. 정규표현식 테스터에서 https://example.com/path를 테스트해보자.

포트번호 포함

^https?://[a-zA-Z0-9.-]+(:[0-9]+)?(/.*)?$ 이러면 https://localhost:3000 같은 것도 통과한다.

쿼리스트링까지

^https?://[a-zA-Z0-9.-]+(:[0-9]+)?(/[^?]*)?(?.*)?$ 이러면 ?key=value 형태의 쿼리스트링도 허용. 테스터로 다양한 URL을 넣어보면 패턴이 제대로 동작하는지 확인할 수 있다.

실무에서 자주 하는 실수

정규표현식을 처음 쓸 때 가장 흔한 실수가 특수문자 이스케이프를 빼먹는 거다. 점(.)을 문자 그대로 찾으려고 했는데 아무 문자나 다 매칭되는 상황. 항상 특수문자가 있으면 이스케이프가 필요한지 확인하자.

테스트 습관 들이기

정규표현식 테스터로 패턴을 작성하기 전에 먼저 테스트하는 습관을 들이면 실수를 크게 줄일 수 있다. 예상대로 동작하는지 여러 입력으로 확인하고 나서 코드에 적용하자. 그래야 나중에 디버깅 시간을 아낄 수 있다.

정규표현식이 만능은 아니다

모든 문자열 처리를 정규표현식으로 하려고 하면 오히려 복잡해진다. 단순한 작업은 문자열 메서드로, 복잡한 파싱은 전용 라이브러리로 하는 게 나을 수 있다. 적재적소에 사용하자.

정규표현식 테스터를 적극 활용해서 다양한 패턴을 실험해보자. 실전 경험이 쌓일수록 정규표현식 작성이 수월해진다.