백엔드
유저챗 개인정보 마스킹 개발기
두줄요약
상담 메시지 저장 전에 개인정보를 자동 마스킹해 원문이 DB에 남지 않게 만든 사례를 다뤘습니다.정규식 오탐·성능·ReDoS 위험을 함께 고려해 저장 경로를 안전하게 통합했습니다.
핵심 내용
- 유저챗 저장 전에 개인정보를 자동 마스킹해 원문이 DB에 남지 않게 한 개발 사례
- 조회 시 마스킹 대신 저장 시 마스킹을 선택해 다운스트림 노출과 수동 삭제 부담을 줄임
- 정규식 규칙의 오탐·미탐, 규칙 충돌, 대용량 메시지 성능, ReDoS 위험을 함께 고려해 구현
문제 상황
- 상담 대화에 주민번호, 카드번호, 전화번호 같은 개인정보가 그대로 누적되는 문제
- 상담사가 수동으로 지우거나 고객사가 별도로 처리 기준을 맞춰야 하는 운영 부담
- 개인정보 유출 위험과 엔터프라이즈 도입 장벽
해결 방법
- 메시지 저장 전에 한 경로에서만 마스킹 처리하는 구조로 통합
- 마스킹 실패 시 저장도 실패하는 fail-secure 원칙 적용
- RE2 계열 엔진 도입, 메시지 길이 상한 설정, 규칙 테스트 버튼 제공
성능/운영 포인트
- 기본 규칙과 커스텀 규칙 수에 따라 마스킹 비용이 크게 달라짐
- 큰 메시지와 복잡한 정규식 조합이 최악의 지연과 공격면을 만듦
- 통과율과 비용을 함께 보고 입력 상한을 정하는 방식 채택

