한글 사용자 사전 손상 해결 방법: 증상 진단부터 복구·예방까지 완벽 가이드

이 글의 목적은 한글(HWP) 사용자 사전 손상으로 인해 맞춤법 검사와 자동고침, 사용자 단어 등록 기능이 비정상 동작할 때 원인 진단, 데이터 백업, 안전한 복구 절차, 재발 방지 방법을 현장에서 바로 적용할 수 있도록 체계적으로 정리하는 것이다.

1. 문제 개요와 빠른 체크리스트

1.1 흔한 증상

  • 사용자 사전에 추가한 단어가 더 이상 인식되지 않는다.
  • 맞춤법 검사 시 사용자 등록 단어가 모두 오류로 표시된다.
  • 한글 실행 시 “사전 파일을 불러올 수 없습니다”와 유사한 경고가 뜬다.
  • 사용자 사전 관리 창이 비어 있거나 저장 버튼이 동작하지 않는다.
  • 단체 배포 환경에서 다수 PC에서 동시 발생한다.
주의 : 증상이 간헐적이라도 즉시 백업부터 수행해야 한다. 파일 열기만으로도 손상이 진행될 수 있다.

1.2 3분 복구 로드맵

  1. 사용자 사전 및 설정 폴더 전체 백업을 만든다.
  2. 손상 여부를 검사한다(파일 크기 0B, 비정상 인코딩, 잘못된 확장자).
  3. 임시 복구: 캐시 삭제 후 예비 사전 또는 직전 백업으로 교체한다.
  4. 근본 복구: 새 사용자 사전을 생성하고 살아있는 단어만 분리·정제하여 재구성한다.
  5. 재발 방지: 버전 고정, 동기화 예외, 주기 백업·무결성 점검을 자동화한다.

2. 사용자 사전 구조와 저장 위치

사용자 사전은 한글 맞춤법 엔진이 로딩하는 사용자 정의 단어 목록 파일 집합으로, OS 사용자 프로필 하위 또는 공용 데이터 경로에 저장된다. 배포 옵션과 버전에 따라 경로가 달라질 수 있다.

환경기본 경로 예시비고
Windows 단일 사용자 %APPDATA%\HNC\Hwp\DIC\ 로밍 프로필 경로이다.
Windows 다중 사용자 %LOCALAPPDATA%\HNC\Hwp\DIC\ 로컬 프로필 선호 배포에서 사용한다.
공용 설치 또는 정책 배포 %PROGRAMDATA%\HNC\Hwp\DIC\ 읽기 전용 정책으로 잠겨 있을 수 있다.
휴대용/포터블 배포 설치폴더\Hwp\DIC\ 동기화 도구 제외가 필요하다.

폴더 내부에는 사용자 정의 사전 파일(예: UserDic.udc), 인덱스·캐시 파일, 언어별 보조 파일이 존재한다. 파일명 접두어와 확장자는 배포본에 따라 다르나, 사용자 정의 사전은 텍스트 기반 또는 바이너리 사전 포맷을 사용한다.

주의 : 일부 배포에서는 로밍 경로와 로컬 경로가 동시에 존재한다. 타임스탬프가 최신인 폴더만 신뢰하지 말고 실제 참조 경로를 한글 환경설정에서 확인한다.

3. 손상 원인과 진단 절차

3.1 주요 원인

  • 동기화 도구(클라우드 드라이브, 백업 클라이언트)의 파일 잠금 충돌로 인한 쓰기 중단이다.
  • 예기치 않은 종료(전원 차단, 강제 프로세스 종료)로 인한 트랜잭션 미완료이다.
  • 버전 불일치 환경에서의 파일 호환성 문제이다.
  • 보안 제품의 실시간 검사 개입으로 인한 부분 기록이다.
  • 디스크 손상, 파일 시스템 오류, 인코딩 깨짐이다.

3.2 필수 체크 항목

항목점검 방법판단 기준
파일 크기 속성에서 크기 확인 0B 또는 비정상적으로 작으면 손상 가능성이 높다.
인코딩 메모장/에디터로 열어 한글 가독성 확인 깨진 문자(□□□□) 다수면 손상이다.
타임스탬프 최근 저장 시간 비교 작업 시각과 불일치하거나 미래·과거 비정상값이면 의심한다.
동시 열림 동기화 아이콘 상태·백업 로그 확인 업로드 중/충돌 표시가 있으면 쓰기 중단 가능성이 있다.
권한 보안 탭에서 사용자 쓰기 권한 확인 쓰기 금지 또는 상속 차단이면 저장 실패가 반복된다.

3.3 빠른 무결성 점검 명령

:: 관리자 권한 PowerShell # 디스크 파일시스템 점검(다음 부팅 시 수행될 수 있음) chkdsk C: /scan
시스템 파일 무결성
sfc /scannow

구성요소 저장소 복구(Windows 10/11)
DISM /Online /Cleanup-Image /RestoreHealth

4. 복구 전략: 백업, 분리, 재구성

4.1 즉시 백업

:: 사용자 사전 및 설정 폴더 통째로 복사 robocopy "%APPDATA%\HNC\Hwp\DIC" "%USERPROFILE%\Desktop\HWP_DIC_BACKUP_%DATE%" /E /R:1 /W:1 /XJ 
주의 : 열려 있는 한글을 먼저 종료한 뒤 백업한다. 동기화 드라이브 내 위치라면 네트워크 해제를 고려한다.

4.2 임시 복구(서비스 연속성 확보)

  1. 한글 종료 후 캐시 파일(.idx, .tmp 등)을 삭제한다.
  2. 예비 사용자 사전 또는 과거 백업의 정상 파일을 현재 경로로 교체한다.
  3. 한글을 안전 모드 또는 기본 설정으로 실행하여 로딩을 검증한다.

4.3 근본 복구(데이터 살리기)

손상 파일에서 유효 라인을 최대한 추출하여 새로운 사용자 사전을 생성한다.

:: 텍스트 기반 사전의 살아있는 라인만 추출(가정: 줄당 1단어) # 메모장/에디터로 열어 깨지지 않은 라인을 복사하여 new_userdic.txt로 저장 # 중복 제거 powershell -NoP -C "gc new_userdic.txt | ? {$_ -and ($_ -notmatch '^\s*$')} | sort -Unique | sc new_userdic_dedup.txt"
크기 sanity check
for %f in (new_userdic_dedup.txt) do @echo %~zf bytes

한글의 사용자 사전 관리 기능에서 빈 새 사전을 만들고 가져오기new_userdic_dedup.txt를 로드한다. 가져오기 포맷 옵션이 존재한다면 구분자와 인코딩을 UTF-8로 지정한다.

4.4 호환성 문제 해결

  • 팀 내 PC의 한글 버전을 통일한다. 서로 다른 메이저 버전 간에는 사용자 사전 포맷이 다를 수 있다.
  • 32비트와 64비트 혼용 시 공용 경로가 달라질 수 있으므로 경로를 표준화한다.
  • 관리자 배포에서는 %PROGRAMDATA% 기반 읽기 전용 사전을 두고, 개인 추가분은 사용자 프로필에 분리한다.

5. 재발 방지 설계

5.1 동기화·백신 예외

  • 클라우드 동기화 도구에서 사용자 사전 폴더를 예외 처리한다.
  • 백신의 실시간 감시에서 ...Hwp\DIC\ 경로를 제외한다.
  • 프로필 리디렉션 정책 사용 시 로밍 지연으로 인한 동시 쓰기를 피한다.

5.2 버전 관리

  • 기업 환경은 한글 버전 고정 및 검증된 패치만 일괄 배포한다.
  • 사전 포맷 변경 공지 시 마이그레이션 계획을 수립한다.

5.3 주기 백업 자동화

:: 매 실행 시 증분 백업(간단 스크립트 예시) @echo off set SRC=%APPDATA%\HNC\Hwp\DIC set DST=%USERPROFILE%\Documents\HWP_DIC_ARCHIVE\%DATE:/=-% robocopy "%SRC%" "%DST%" /E /R:1 /W:1 /XJ /COPY:DAT 

작업 스케줄러에 로그인 시 1회 또는 매일 1회 실행으로 등록한다. 버전별 최소 7세대 보관 정책을 유지한다.

6. 고급 진단: 포맷 검증과 라인 정제

6.1 허용 문자 규칙

사용자 사전은 일반적으로 한글, 영문, 숫자, 하이픈 등의 제한된 문자만 허용한다. 특수문자나 탭, 컨트롤 문자는 불안정성을 유발한다.

# PowerShell: 허용 문자만 필터링(예시) $regex = '^[\p{IsHangulJamo}\p{IsHangulSyllables}A-Za-z0-9\- ]{1,100}$' gc new_userdic_dedup.txt | ? { $_ -match $regex } | sort -Unique | sc new_userdic_clean.txt 

6.2 BOM·인코딩 정규화

UTF-8 BOM 유무가 포맷 인식에 영향을 줄 수 있다. 에디터에서 UTF-8(BOM 없음)으로 저장하는 것을 권장한다.

6.3 대용량 사전 분할

대용량 사용자 사전은 로딩 지연과 충돌 위험을 높인다. 1만 라인 단위로 분할하여 다중 사전으로 관리한다.

# PowerShell: 10,000줄 단위 분할 $i=0; $n=0; gc new_userdic_clean.txt | % { if($n++ -ge 10000){$i++;$n=1}; Add-Content ("part_{0:D2}.txt" -f $i) $_ } 

7. 조직 배포 가이드

7.1 표준 폴더 구조

역할경로권한
공용 기준 사전 %PROGRAMDATA%\HNC\Hwp\DIC\Base 관리자: 쓰기, 사용자: 읽기
개인 사용자 사전 %APPDATA%\HNC\Hwp\DIC\User 사용자: 읽기/쓰기
아카이브 %USERPROFILE%\Documents\HWP_DIC_ARCHIVE 사용자: 읽기/쓰기, 백업 클라이언트: 읽기

7.2 배포·갱신 절차

  1. 공용 기준 사전은 패키지화하여 소프트웨어 배포 도구로 배포한다.
  2. 개인 사전은 마이그레이션 스크립트로 기존 데이터를 병합한다.
  3. 동기화 금지 목록에 \Hwp\DIC\ 하위 전체를 등록한다.
  4. 정기 점검 시 무결성 테스트와 라인 품질 규칙 준수를 확인한다.

8. 실패 시 대체 경로

  • 손상 수준이 심각하여 텍스트 추출이 불가하면 디스크 섹터 복구 도구로 원시 바이트를 덤프 후 문자열 검색으로 단어를 회수한다.
  • 조직 공용 기준 사전이 있다면 개인 사전은 포기하고 기준 사전에 필요한 단어만 재등록한다.
  • 이전 시스템 이미지 또는 백업에서 \Hwp\DIC\ 폴더만 복원한다.
주의 : 섹터 복구는 데이터 무결성을 더 해칠 수 있다. 원본을 이미지로 떠서 사본에서 시도한다.

9. 체크리스트와 점검 주기

점검 항목방법주기합격 기준
사전 로딩 정상 한글 시작 시 경고 없음 매일 오류 메시지 0건
백업 상태 아카이브 폴더 최신본 확인 매주 최소 7세대 유지
파일 크기/인코딩 샘플 파일 수동 점검 매월 크기 정상, UTF-8 유지
동기화 예외 동기화 설정 리뷰 분기 DIC 경로 제외 유지
버전 일관성 클라이언트 버전 수집 분기 단일 메이저 버전

10. 표준 운영 절차(SOP) 예시

1) 증상 발견 시 - 한글 종료 - DIC 폴더 즉시 백업 - 캐시·임시 파일 삭제
데이터 회수

사전 파일을 에디터로 열어 정상 라인 추출

중복 제거 및 규칙 위반 문자 필터링

새 사전 생성 후 가져오기

검증

맞춤법 검사에서 사용자 단어 인식 확인

재시작 테스트 및 경고 메시지 확인

예방 조치

동기화·백신 예외 등록

주기 백업 스케줄 설정

버전 통일 및 포맷 공지 반영

FAQ

사용자 사전 파일이 0바이트로 보인다. 복구가 가능한가?

0바이트는 내용이 완전히 사라진 상태이므로 직접 복구는 어렵다. 아카이브나 시스템 백업에서 복원하는 것이 가장 현실적이다. 향후를 대비해 증분 백업 자동화를 적용한다.

한글을 재설치하면 문제가 해결되는가?

프로그램 재설치는 사용자 사전 데이터 손상을 고치지 못한다. 데이터 파일은 별도로 유지되므로, 먼저 데이터 복구·재구성을 수행한 뒤 필요 시 재설치를 검토한다.

여러 PC에서 같은 사전을 쓰고 싶다. 공유 폴더를 써도 되는가?

동시 쓰기 충돌로 손상 위험이 크다. 읽기 전용 공용 기준 사전을 두고 개인 사전은 로컬에 유지하는 하이브리드 방식을 권장한다.

사전 파일 인코딩은 무엇이 안전한가?

UTF-8(가능하면 BOM 없음)을 권장한다. 에디터 저장 옵션에서 인코딩을 명확히 지정한다.

사전에 금지해야 할 문자가 있는가?

탭, 제어문자, 일부 특수문자는 파싱 오류를 일으킬 수 있다. 한글·영문·숫자·하이픈·공백만 사용한다.

사전이 커지면 느려진다. 어떻게 관리하나?

1만 라인 단위로 분할하여 주제별 다중 사전으로 관리한다. 불용어를 정리하고 중복을 제거한다.