반응형
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,'*')
방식을 가장 많이 사용합니다.
반응형
'정 보 교 환' 카테고리의 다른 글
| CA/B vs CA 완벽 정리 (2026 최신) (0) | 2026.05.06 |
|---|---|
| 🔐 SSL/TLS 완벽 가이드 (2026 최신) (0) | 2026.05.06 |
| Oracle 테이블스페이스, 테이블, 인덱스 구조 완전 정리 – Tablespace / Table / Index 관계와 설계 전략 (0) | 2026.03.13 |
| GNU GPL 라이선스 완전 정리 – GNU, FSF, GPL, Copyleft의 의미와 오픈소스 철학 (0) | 2026.03.12 |
| AI PC 시대 개막 – NPU CPU 경쟁 (Intel vs AMD vs Qualcomm) (0) | 2026.03.12 |