정 보 교 환

오라클 주민번호 마스킹 처리 방법

sageput 2026. 5. 7. 17:11
반응형

Oracle RPAD(), LPAD() 함수로 주민번호 * 처리하기

실무에서 오라클(Oracle) SQL을 사용하다 보면
가장 많이 사용하는 기능 중 하나가 개인정보 마스킹입니다.

특히 주민등록번호는 개인정보보호 때문에
전체를 그대로 출력하지 않고 일부만 표시하는 경우가 많습니다.

예를 들어:

900101-1234567
 

이 주민번호를 아래처럼 변경합니다.

900101-1******
 

즉,

  • 주민번호 앞자리는 유지
  • 뒷자리 7자리 중 첫 번째 숫자만 표시
  • 나머지 6자리는 * 처리

오늘은 초보자도 이해할 수 있도록
RPAD() 와 LPAD() 함수 차이점과 주민번호 마스킹 예제를 쉽게 설명해보겠습니다.


1. 주민번호 뒷자리 첫 숫자를 남기는 이유

주민번호 뒷자리 첫 숫자는 성별과 출생 세기를 의미합니다.

숫자의미
1 남성 (1900년대 출생)
2 여성 (1900년대 출생)
3 남성 (2000년대 출생)
4 여성 (2000년대 출생)

그래서 실무에서는
성별 구분 숫자는 남기고
나머지 숫자는 * 처리하는 경우가 많습니다.


2. RPAD() 함수란?

RPAD()는 문자열 오른쪽(Right)에 특정 문자를 채우는 함수입니다.


기본 문법

RPAD(문자열, 총길이, 채울문자)
 

주민번호 마스킹 예제

SELECT RPAD(SUBSTR('900101-1234567',1,8),14,'*')
FROM DUAL;
 

결과

900101-1******
 

동작 방식

앞부분:

900101-1
 

을 유지하고

오른쪽 부족한 부분을 *로 채웁니다.


3. LPAD() 함수란?

LPAD()는 문자열 왼쪽(Left)에 특정 문자를 채우는 함수입니다.


기본 문법

LPAD(문자열, 총길이, 채울문자)
 

주민번호 마스킹 예제

SELECT LPAD(SUBSTR('1234567',1,1),7,'*')
FROM DUAL;
 

결과

******1
 

동작 방식

주민번호 뒷자리 첫 숫자:

1
 

만 유지하고

왼쪽을 * 처리합니다.


4. RPAD vs LPAD 차이점 비교

함수의미채우는 방향주민번호 예제 결과
RPAD Right Padding 오른쪽 900101-1******
LPAD Left Padding 왼쪽 ******1

5. 실무에서 RPAD를 더 많이 사용하는 이유

실제 업무에서는 주민번호 앞부분을 유지하는 경우가 많습니다.

예시:

900101-1******
 

사용자가 일부 정보를 확인할 수 있으면서도
개인정보는 보호할 수 있기 때문입니다.

그래서 대부분:

  • 고객관리 시스템
  • ERP
  • 그룹웨어

등에서 RPAD() 방식이 가장 많이 사용됩니다.


6. 실무 응용 예제


전화번호 마스킹

SELECT SUBSTR(PHONE,1,3) || '****' || SUBSTR(PHONE,8,4)
FROM MEMBER;
 

결과:

010****5678
 

이름 마스킹

SELECT RPAD(SUBSTR(NAME,1,1),3,'*')
FROM MEMBER;
 

결과:

홍**
 

7. 초보자가 가장 많이 헷갈리는 부분

함수기억 방법
RPAD 오른쪽(Right)에 채움
LPAD 왼쪽(Left)에 채움

함수 이름 첫 글자만 기억해도 쉽게 구분 가능합니다.


최종 정리

  • RPAD() = 오른쪽 문자 채우기
  • LPAD() = 왼쪽 문자 채우기

그리고 주민번호 마스킹에서는 대부분:

RPAD(SUBSTR(주민번호,1,8),14,'*')
 

방식을 가장 많이 사용합니다.

반응형