개발 환경에 운영 데이터를 복사해 쓰는 관행은 편리하지만 위험합니다. 실제 고객의 이름·이메일·전화번호가 스테이징 서버, 개발자 노트북, 로그 파일로 퍼지고, 그중 하나만 유출되어도 개인정보 사고가 됩니다. 그렇다고 빈 데이터로 테스트하면 실제와 다른 문제를 놓칩니다.
이 도구는 두 가지 방향을 모두 지원합니다. 필요한 컬럼 구성을 정해 현실적인 가짜 데이터를 원하는 행 수만큼 생성하거나, 실제 CSV를 붙여넣어 컬럼별로 마스킹·해시·가짜값 대체·열 내부 섞기·컬럼 삭제를 적용해 비식별화합니다. 파일은 브라우저에서만 처리되므로 업로드되지 않습니다.
사용 방법
- 모드 선택 — 새 테스트 데이터가 필요하면 가짜 데이터 생성, 이미 가진 CSV의 개인정보를 가려야 하면 CSV 비식별화를 고릅니다.
- 생성 모드 — 컬럼 구성 — 컬럼명과 데이터 종류를 지정하고 행 수를 정합니다. 데이터 지역을 한국어로 두면 한국식 이름·주소·전화번호가, 영어로 두면 영미권 데이터가 생성됩니다. 다시 생성을 누를 때마다 새로운 값이 나옵니다.
- 비식별화 모드 — 전략 지정 — CSV를 붙여넣거나 파일을 선택하면 컬럼이 자동 감지되고, 컬럼명을 근거로 기본 전략이 추천됩니다. 이름이면 가짜값 대체, 이메일이면 마스킹, 주민번호·카드번호면 해시가 기본값입니다. 각 컬럼의 전략은 직접 바꿀 수 있습니다.
- 결과 확인 후 내려받기 — 미리보기로 상위 10행을 확인한 뒤 CSV나 JSON으로 저장합니다. CSV에는 BOM이 포함되어 엑셀에서 한글이 깨지지 않습니다.
자주 묻는 질문
업로드한 CSV가 서버로 전송되나요?
전송되지 않습니다. 파일은 브라우저의 File API로 읽어 메모리에서만 처리되고, 결과 다운로드도 브라우저가 직접 생성합니다.
이 도구가 다루는 데이터의 성격상 이 점이 가장 중요하다고 보아 처음부터 서버 없는 구조로 만들었습니다. 다만 아주 큰 파일(수십 MB 이상)은 브라우저 메모리 한계에 걸릴 수 있으니, 그런 규모라면 스크립트로 처리하는 편이 낫습니다.
마스킹과 해시 중 무엇을 써야 하나요?
목적이 다릅니다.
마스킹은 값의 일부를 별표로 가려 사람이 봐도 대략 어떤 값이었는지 형태를 알 수 있게 합니다(minjun.kim@corp.co.kr → mi**********@corp.co.kr). 화면 표시나 스크린샷용으로 적합합니다.
해시는 같은 입력이 항상 같은 출력을 내므로 원본을 알 수 없으면서도 동일 인물 여부를 판별할 수 있습니다. 조인 키나 집계 분석에 유용합니다. 다만 값의 범위가 좁으면(예: 생년월일) 전수 대입으로 역추적될 수 있으니, 이때는 비밀 솔트를 함께 해시해야 합니다.
비식별화하면 개인정보보호법을 완전히 충족하나요?
그렇게 단정할 수 없습니다. 이 도구는 실무 작업을 돕는 보조 수단이며 법적 판단을 대신하지 않습니다.
개별 컬럼을 가려도 여러 컬럼을 조합하면 특정 개인이 다시 식별되는 경우가 있습니다. 예를 들어 성별·생년월일·우편번호 세 가지만으로도 상당수의 개인이 특정된다는 연구가 잘 알려져 있습니다. 실제 규제 대상 데이터를 다룬다면 조합 재식별 위험까지 평가하고, 조직의 개인정보 담당자나 법률 자문을 거쳐 처리 방식을 확정하세요.
알아두면 좋은 개념
가명처리와 익명처리의 차이
가명처리는 추가 정보를 쓰면 다시 원래 개인을 알아낼 수 있는 상태로 만드는 것이고, 익명처리는 어떤 방법으로도 되돌릴 수 없게 만드는 것입니다. 한국 개인정보보호법은 둘을 다르게 취급합니다.
가명정보는 통계 작성, 과학적 연구, 공익적 기록 보존 목적으로 정보주체 동의 없이 처리할 수 있지만 여전히 개인정보에 준하는 안전조치가 필요합니다. 반면 익명정보는 개인정보가 아니므로 자유롭게 활용할 수 있습니다. 이 도구의 해시 전략은 매핑 테이블 없이도 동일성 판별이 가능하므로 가명처리에 가깝고, 가짜값 대체는 익명처리에 가깝습니다.
참조 무결성이 있는 목데이터 만들기
실제와 비슷한 테스트를 하려면 데이터 사이의 관계도 살아 있어야 합니다. 주문 테이블의 user_id 가 사용자 테이블에 실재하는 값이어야 조인이 동작합니다.
이 도구는 단일 테이블 생성에 초점을 맞추므로, 여러 테이블이 필요하다면 먼저 사용자 데이터를 생성해 ID 목록을 확보한 뒤, 주문 데이터의 user_id 컬럼은 생성 결과를 편집해 그 ID들로 채우는 방식이 실용적입니다. 열 내부 섞기 전략도 같은 목적으로 쓸 수 있는데, 값의 분포는 그대로 유지하면서 행 사이의 연결만 끊기 때문입니다.
CSV 다룰 때 주의할 점
CSV는 단순해 보이지만 함정이 많습니다. 값 안에 쉼표나 줄바꿈이 들어가면 큰따옴표로 감싸야 하고, 큰따옴표 자체는 두 번 반복해 이스케이프합니다. 이 도구는 파싱과 생성 모두 이 규칙을 따르는 라이브러리를 사용합니다.
한글 CSV를 엑셀에서 열 때 글자가 깨지는 문제는 인코딩 때문입니다. 엑셀은 BOM(파일 앞의 특수 바이트)이 없으면 UTF-8을 시스템 기본 인코딩으로 오해합니다. 이 도구가 내려주는 CSV에는 BOM이 포함되어 있어 더블클릭으로 열어도 정상 표시됩니다.