정규표현식(Regex)은 처음 보면 외계어 같지만, 자주 쓰이는 10가지 패턴만 외워도 90%의 케이스를 처리할 수 있어요. 데이터 검증, 텍스트 추출, 일괄 치환에 강력한 도구입니다.
1. 이메일 검증
패턴: ^[\w.-]+@[\w.-]+\.\w{2,}$. 이메일 주소가 "문자 + @ + 도메인 + . + 확장자" 구조인지 확인해요. 완벽하지는 않지만 일상 사용에 충분합니다. RFC 5322 표준을 100% 만족하는 정규식은 매우 길어 실무에서는 단순화된 버전을 사용해요.
2. 휴대폰 번호 (한국)
패턴: ^01[016789]-?\d{3,4}-?\d{4}$. 010, 011, 016, 017, 018, 019로 시작하는 한국 휴대폰 번호를 검증합니다. 하이픈 유무를 모두 허용하기 위해 -?를 사용해요.
3. 한국 주민등록번호
패턴: ^\d{6}-?\d{7}$. 단순 형식만 검증하는 패턴이고, 실제 유효한 주민번호인지는 "체크섬" 알고리즘으로 추가 검증해야 해요. 또 개인정보 보호법상 주민번호 저장 자체가 제한되니 가급적 다른 식별자 사용을 권장합니다.
4. URL 검증
패턴: ^https?://[\w.-]+\.\w{2,}(/.*)?$. http 또는 https로 시작하고 도메인이 있는 URL을 검증해요. 더 엄밀한 검증이 필요하면 RFC 3986 표준 기반의 더 긴 정규식을 사용합니다. JSON 포맷터 같은 도구에서도 URL 검증이 활용돼요.
5. 비밀번호 강도
패턴: ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*]).{8,}$. 소문자, 대문자, 숫자, 특수문자가 모두 포함된 8자 이상의 비밀번호를 검증해요. "긍정형 후방 탐색" 패턴(?=...)을 사용한 고급 기법이에요.
6. 한국어 추출
패턴: [가-힣]+. 한글만 추출할 때 사용해요. "a한글b" 문자열에서 "한글"만 추출됩니다. 자모음 분리된 한글까지 매칭하려면 [가-힣ㄱ-ㅎㅏ-ㅣ]+로 확장하세요.
7. 숫자 추출
패턴: \d+ 또는 [0-9]+. 텍스트에서 숫자만 추출해요. 소수점 포함은 \d+(\.\d+)?, 음수까지 포함은 -?\d+(\.\d+)?로 확장합니다.
8. HTML 태그 제거
패턴: <[^>]+>. 모든 HTML 태그를 매칭해 빈 문자열로 치환하면 평문이 추출돼요. 단, 복잡한 중첩이나 스크립트 태그는 별도 처리해야 안전해요. 보안 목적으로는 정규식보다 DOMPurify 같은 전용 라이브러리를 권장합니다.
9. 공백 정리
패턴: \s+. 연속된 공백·탭·줄바꿈을 하나의 공백으로 압축할 때 사용해요. "hello world" → "hello world"로 정리됩니다.
10. 날짜 검증 (YYYY-MM-DD)
패턴: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$. 2025-01-15 같은 ISO 형식 날짜를 검증해요. 단순한 \d{4}-\d{2}-\d{2}는 13월 35일 같은 잘못된 날짜도 통과시키니 위 패턴을 사용하는 것이 안전해요.
정규식 디버깅 도구
복잡한 정규식은 한 번에 작성하기 어려워요. regex101.com, regexr.com 같은 도구는 정규식을 시각화해 디버깅을 돕습니다. 정규식이 잘못 작동하는 경우 한 단계씩 분리해 테스트하면 원인을 빠르게 찾을 수 있어요. 개발자 도구 가이드에서 더 많은 개발 팁을 확인하세요.


