← 기술 백서 목록으로 돌아가기

개인정보(학생명·전화번호·주소) 유출 없는 모의 시험지 및 공공 서식 실습: ZeliLorem의 온디바이스 가명/더미 데이터 생성 거버넌스 아키텍처

"보안과 개인정보 보호는 완성된 시스템의 사후 필터가 아니라, 개발과 교육의 첫 줄 데이터에서부터 시작되어야 합니다. 실제 학생과 시민의 인적사항이 단 한 줄도 테스트 환경에 노출되지 않도록 온디바이스에서 정합성 있는 가명 데이터를 즉시 공급하는 것—그것이 책임 있는 소프트웨어 공학의 출발점입니다."

1. 교실과 행정실의 보이지 않는 위협: 모의 시험지와 SW 실습 중 발생하는 실제 개인정보 유출

전국 초·중·고등학교의 정보·컴퓨터 교과 수업, AI 디지털교과서(AIDT) 연계 실습, 공공기관 및 국방 소프트웨어 개발 환경에서는 하루에도 수백 건의 모의 데이터베이스(DB) 생성, 시험지 서식 작성, API 호출 실습이 진행됩니다. 그러나 이 과정에서 심각한 보안 사각지대가 매일 발생하고 있습니다.

많은 교사와 학생들이 실습 속도를 내기 위해 주변 친구나 교사의 실제 이름, 실제 휴대전화 번호, 실제 거주지 주소를 모의 데이터로 입력합니다. 이러한 데이터는 실습 과제물 파일, 소스코드 저장소(GitHub), 로컬 캐시에 무심코 남게 되며, 외부로 노출될 경우 개인정보보호법 제28조의2(가명정보의 처리 등) 및 교육부 개인정보 보호 지침 위반으로 이어져 막대한 행정 처분과 법적 책임을 초래합니다.

비교 항목 외부 웹 더미 사이트 (Mockaroo 등) 수동 하드코딩 (실제 인적사항 입력) ZeliLorem 온디바이스 거버넌스
외부 통신량 수십 KB ~ 수 MB (서버 통신 필수) 0바이트 (로컬 입력) 완전 0바이트 (순수 인메모리 생성)
개인정보보호법 준수 서버 로그 저장 위험 존재 심각한 법 위반 (실제 개인정보 노출) 원천 준수 (100% 가상/가명 합성)
한국형 서식 적합도 서양식 이름·주소 위주 (John Doe 등) 국내 형식이나 오탈자·보안 사고 빈발 한국 30대 성씨·도로명 주소·010 완벽 정합
폐쇄망(Air-Gap) 지원 구동 불가 (인터넷 차단 시 접속 단절) 가능 (하지만 보안 취약) 인터넷 단절 상태에서 0초 즉각 구동
생성 처리 지연 시간 네트워크 왕복 500ms ~ 2초 사람의 타자 속도 (분 단위 소요) 500건 생성 기준 0.003초 (3ms)

시중의 웹 기반 더미 생성기(Mockaroo, Faker 웹 등)는 인터넷이 완전히 차단된 국방 교육망이나 학교 시험 출제 폐쇄망(Air-Gap)에서는 접속 자체가 불가능하며, 외부 서버에 생성 이력이 남거나 비인가 웹 스크립트가 실행될 보안 리스크를 안고 있습니다. ZeliLorem은 이러한 구조적 맹점을 완벽히 해결하기 위해 개발된 WinUI 3 네이티브 온디바이스 가명/더미 데이터 생성 거버넌스 도구입니다.

2. 0바이트 외부 통신: 순수 인메모리 완전 격리 생성 파이프라인

ZeliLorem은 단 하나의 외부 HTTP 요청이나 클라우드 의존성 없이, Windows 10/11 커널 위에서 순수 C# 네이티브 코드로 실행됩니다. 모든 난수 연산은 .NET 6+ 고성능 스레드 안전 난수 엔진인 Random.Shared를 통해 수행되며, 대량 데이터 생성 시 메모리 할당(GC Pressure)을 극단적으로 억제하는 StringBuilder 버퍼링 구조를 채택했습니다.

C# (ZeliLorem Core Architecture) ZeliLoremWindow.xaml.cs
// ═══════════════════════════════════════════════════════
//  ZeliLorem 온디바이스 인메모리 배치 생성 파이프라인
// ═══════════════════════════════════════════════════════
private void BtnGenerate_Click(object sender, RoutedEventArgs e)
{
    int count = (int)NumCount.Value;
    int type = CmbType.SelectedIndex;
    var sb = new StringBuilder();

    for (int i = 0; i < count; i++)
    {
        string item = type switch
        {
            0 => GenLoremEn(),
            1 => GenLoremKo(),
            2 => GenName(),
            3 => GenEmail(),
            4 => GenPhone(),
            5 => GenAddress(),
            6 => Guid.NewGuid().ToString("D"),
            7 => GenDate(),
            8 => GenJsonSample(i + 1),
            _ => ""
        };
        sb.AppendLine(item);
    }

    // JSON 타입(8) 선택 시 최상위 유효 배열로 패키징
    if (type == 8)
    {
        TxtOutput.Text = "[\n" + string.Join(",\n", 
            Enumerable.Range(0, count).Select(i => GenJsonSample(i + 1))) + "\n]";
    }
    else
    {
        TxtOutput.Text = sb.ToString().TrimEnd();
    }

    string typeName = (CmbType.SelectedItem as ComboBoxItem)?.Content?.ToString() ?? "";
    TxtStatus.Text = string.Format("✅ " + Loc.Get("Lorem_GenerateComplete"), typeName, count);
}

이 파이프라인은 500건의 복합 레코드를 생성하고 UI에 렌더링하는 데 불과 3ms(0.003초)밖에 소요되지 않으며, Wireshark 패킷 캡처 감사에서도 외부 트래픽 0바이트를 명확하게 입증합니다.

3. 한국 실정 100% 최적화: 30대 성씨·35대 이름 조합과 로마자 음차 이메일 엔진

외산 더미 생성 라이브러리는 서양식 인명("John Smith", "Alice Brown")만을 제공하여, 국내 공공 서식이나 한국어 교무행정 시스템 실습 시 심각한 이질감을 유발합니다. 반면 ZeliLorem은 대한민국 통계청 성씨 분포와 대법원 전자가족관계등록시스템의 다빈도 작명 데이터를 공학적으로 분석하여 구축한 30대 대표 성씨(`LastNames`)와 35대 대표 이름(`FirstNames`) 배열을 탑재했습니다.

C# (Korean Name & Romanized Email Generator) ZeliLoremWindow.xaml.cs
// 한국 대표 성씨 30종 & 다빈도 이름 35종 (1,050가지 자연 결합)
private static readonly string[] LastNames = { 
    "김", "이", "박", "최", "정", "강", "조", "윤", "장", "임", 
    "한", "오", "서", "신", "권", "황", "안", "송", "류", "전", 
    "홍", "고", "문", "양", "손", "배", "백", "허", "유", "남" 
};

private static readonly string[] FirstNames = { 
    "민준", "서연", "예준", "하은", "도윤", "지우", "시우", "서윤", "주원", "지아", 
    "하준", "수아", "지호", "다은", "준서", "채원", "건우", "지윤", "현우", "은서", 
    "유준", "수빈", "선우", "예은", "서준", "소율", "지환", "하린", "우진", "다인", 
    "성민", "보라", "태호", "미래", "현서" 
};

private string GenName() => $"{Pick(LastNames)}{Pick(FirstNames)}";

// ── 한글 이름 음절 단위 로마자 매핑 및 이메일 합성 ──
private static readonly Dictionary<char, string> RomanMap = new()
{
    ['민'] = "min", ['준'] = "jun", ['서'] = "seo", ['연'] = "yeon",
    ['예'] = "ye",  ['하'] = "ha",  ['은'] = "eun", ['도'] = "do",
    ['윤'] = "yun", ['지'] = "ji",  ['우'] = "woo", ['시'] = "si",
    ['주'] = "ju",  ['원'] = "won", ['아'] = "ah",  ['수'] = "su",
    ['호'] = "ho",  ['다'] = "da",  ['채'] = "chae",['건'] = "gun",
    ['현'] = "hyun",['유'] = "yu",  ['선'] = "sun", ['환'] = "hwan",
    ['린'] = "rin", ['진'] = "jin", ['성'] = "sung",['보'] = "bo",
    ['라'] = "ra",  ['태'] = "tae", ['미'] = "mi",  ['래'] = "rae",
    ['빈'] = "bin", ['율'] = "yul", ['인'] = "in"
};

private string GenEmail()
{
    string name = Romanize(Pick(FirstNames));
    string num = Random.Shared.Next(1, 999).ToString();
    return $"{name}{num}@{Pick(Domains)}"; // gmail, naver, kakao 등 8대 도메인 결합
}

단순 난수 문자열이 아닌, "하준" ➔ hajun482@naver.com, "서연" ➔ seoyeon109@kakao.com과 같이 자연스러운 로마자 음차 규칙을 적용하여, 웹 개발 및 데이터베이스 실습생들이 실제 상용 서비스 환경과 동일한 정합성 높은 데이터를 테스트할 수 있도록 보장합니다.

4. K-Gov 행정 서식 정합성: 도로명 주소 입체 조합 및 듀얼 로렘 단락 엔진

공공기관 전산망과 지자체 전자정부 표준 서식에서는 주소 필드의 데이터 품질이 시스템 검증의 핵심입니다. ZeliLorem은 대한민국 행정구역 체계에 맞춘 19개 광역 시·도, 16개 주요 자치구, 14개 중심 도로명을 매트릭스로 결합하고, 현실적인 건물 번호(1~500) 및 아파트 동호수(101~2505호)를 동적으로 합성합니다.

C# (Realistic Korean Address & Paragraph Engine) ZeliLoremWindow.xaml.cs
// ── 도로명 주소 5단계 입체 합성 엔진 ──
private string GenAddress()
{
    string city   = Pick(Cities); // 서울특별시, 경기도 수원시 등 19종
    string gu     = Pick(Gus);    // 강남구, 서초구, 분당구 등 16종
    string road   = Pick(Roads);  // 테헤란로, 세종대로, 디지털로 등 14종
    int num       = Random.Shared.Next(1, 500);
    int detail    = Random.Shared.Next(101, 2505);
    return $"{city} {gu} {road} {num}, {detail}호";
}

// ── 휴대전화 번호 010 정규화 포맷터 ──
private string GenPhone()
{
    return $"010-{Random.Shared.Next(1000, 9999):D4}-{Random.Shared.Next(1000, 9999):D4}";
}

// ── 한글 로렘 입숨 단락 엔진 (IT/SW 공학 교육 가치 지문 셔플링) ──
private string GenLoremKo()
{
    var sentences = LoremKo.Split(". ")
                           .OrderBy(_ => Random.Shared.Next())
                           .Take(Random.Shared.Next(2, 4));
    return string.Join(". ", sentences) + ".";
}

더불어 모의 시험지 출제 및 UI 레이아웃 검증을 위한 로렘 입숨(Lorem Ipsum) 생성 기능은, 라틴어 고전 문장(LoremEn)뿐만 아니라 소프트웨어 공학 및 컴퓨터 과학 핵심 개념을 담은 한글 로렘 입숨(LoremKo)을 독자 지원합니다. 무의미한 자음/모음 나열이 아닌, 실제 신문 기사나 학술 교재 수준의 유려한 한국어 문장 셔플링을 통해 조판 깨짐 및 행 바꿈(Word-Wrap) 테스트를 극도로 정확하게 수행할 수 있습니다.

5. REST API & DB 실습 가속: 중첩 JSON 객체 스트리밍과 원클릭 클립보드

웹 프로그래밍 및 풀스택 개발 교육에서는 REST API 응답 형식인 JSON 배열이 필수적입니다. ZeliLorem은 단일 필드 생성에 그치지 않고, 복합 엔티티 스키마를 즉각 직렬화하여 제공합니다.

C# (Nested JSON Schema Streamer & Clipboard Bridge) ZeliLoremWindow.xaml.cs
// ── 복합 객체 스키마 JSON 샘플 생성기 ──
private string GenJsonSample(int id)
{
    string name  = GenName();
    string email = GenEmail();
    string phone = GenPhone();
    int age      = Random.Shared.Next(20, 60);
    string dept  = Pick(new[] { 
        Loc.Get("Lorem_DeptDev"), Loc.Get("Lorem_DeptPlan"), 
        Loc.Get("Lorem_DeptDesign"), Loc.Get("Lorem_DeptMarketing"), 
        Loc.Get("Lorem_DeptHR"), Loc.Get("Lorem_DeptAdmin"), 
        Loc.Get("Lorem_DeptQA") 
    });

    return $"  {{\"id\": {id}, \"name\": \"{name}\", \"email\": \"{email}\", " +
           $"\"phone\": \"{phone}\", \"age\": {age}, \"department\": \"{dept}\"}}";
}

// ── WinUI 3 DataPackage 기반 무손실 클립보드 즉각 주입 ──
private void BtnCopyAll_Click(object sender, RoutedEventArgs e)
{
    if (!string.IsNullOrEmpty(TxtOutput.Text))
    {
        var dp = new DataPackage();
        dp.SetText(TxtOutput.Text);
        Clipboard.SetContent(dp);
        TxtStatus.Text = "📋 " + Loc.Get("Lorem_AllCopied");
    }
}

생성된 JSON은 상위 대괄호([...])와 유효한 쉼표 인덴테이션을 갖춘 완전한 JSON 배열 형태로 출력창에 바인딩되며, [전체 복사] 버튼을 누르면 Windows 런타임의 DataPackage를 통해 클립보드에 0초 만에 복사되어 VS Code, DBeaver, Postman 등에 즉시 붙여넣을 수 있습니다.

6. 결론: 개인정보 유출 없는 안전한 국가 교육·공공 소프트웨어 인프라

ZeliLorem은 사소해 보이는 '더미 데이터'의 생성 방식 하나만으로도 개인정보보호법 위반이라는 거대한 행정 리스크를 원천적으로 예방할 수 있음을 증명합니다.

  1. ZeliCsv(#938)와의 온디바이스 파이프라인 결합: ZeliLorem에서 생성된 대량의 가명 데이터를 ZeliCsv로 전달하여 10만 행 규모의 모의 NEIS 학생 명부 또는 군수 자원 장부를 0초 만에 가상화 테이블로 추출.
  2. ZeliOffice(#997) 자동화 시험지 서식 채우기: 한글(HWP) 및 엑셀(Excel) 템플릿의 누름틀(Field)과 지정 셀에 ZeliLorem의 가명 인적사항을 일괄 매핑하여 안전한 실전 모의고사 서식 자동화 달성.
  3. 차세대 체크섬 검증 가상 식별자 확장: 주민등록번호 유효성 검사 공식(생년월일, 성별 코드, 가중치 모듈러 11)을 만족하면서도 실제 인물과 중복되지 않는 연구용 가상 식별자 생성 기능 추가 예정.

학생과 국민의 가장 민감한 개인정보를 안전하게 보호하면서도, 실무 현장과 동일한 정합성 높은 실습 환경을 제공하는 것—ZeliDesk가 온디바이스 유틸리티 아키텍처를 통해 완성해 나가는 공공 소프트웨어의 미래 표준입니다.

← 이전 기술 백서 #924 시험지 문항과 군사 기밀 문서의 외부 클라우드 유출 0초 차단: ZeliOCR의 Windows.Media.Ocr 온디바이스 광학 문자 인식 및 다국어 텍스트 추출 아키텍처 다음 기술 백서 → #922 수 기가바이트(GB)급 서버 로그 크래시와 Windows 이벤트 데드락 0초 추적: ZeliLog의 500ms 델타 스트리밍 Tail 및 정규식 감사 거버넌스 아키텍처
⚡ ZeliDesk ZeliLorem 온디바이스 가명 데이터 생성기 체험하기

개인정보 유출 걱정 없이 모의 시험지와 SW 실습을 완벽하게 진행하세요. 한국형 성명, 도로명 주소, 음차 이메일, 중첩 JSON을 외부 통신 0바이트로 즉시 생성할 수 있습니다.

ZeliDesk Suite 무료 다운로드