- 공유 링크 만들기
- X
- 이메일
- 기타 앱
이 글의 목적은 한글(Hancom 한글) 문서에서 하이픈(-)이나 유니코드 하이픈류 문자 때문에 발생하는 단어 나눔 오류를 체계적으로 진단하고 재발 방지까지 포함한 실무형 해결 절차를 제공하는 것이다.
1. 현상 정의와 영향
문단 양쪽 맞춤, 줄 바꿈 규칙, 글꼴 특성, 유니코드 하이픈 변형 문자 등이 상호작용할 때 다음과 같은 오류가 발생한다.
- 줄 끝에서 하이픈이 중복되어 보이거나 사라지는 현상이다.
- 하이픈 앞 또는 뒤에서 비정상적인 줄 바꿈이 발생한다.
- 영문 복합어(예: role-based, state-of-the-art)가 임의 위치에서 끊기거나 한쪽에 몰린다.
- 소프트 하이픈(조건부 하이픈)이 화면에서는 안 보이다가 PDF/인쇄에 표시되는 현상이다.
- URL, 파일경로, 모델명과 같은 비분절 문자열에서 비의도적 줄 바꿈이 발생한다.
2. 하이픈 관련 유니코드와 동작 차이
한글 문서에서 하이픈으로 보이는 문자가 반드시 ASCII 하이픈(-, U+002D)만은 아니다. 입력 경로나 붙여넣기 출처에 따라 다양한 코드 포인트가 섞인다. 아래 표로 구분한다.
| 문자 | 코드 포인트 | 명칭 | 주요 용도 | 줄 바꿈 행동(일반적) | 문제 사례 |
|---|---|---|---|---|---|
| - | U+002D | Hyphen-Minus | 일반 하이픈/마이너스 | 양쪽에서 줄 바꿈 허용 가능 | 중복 표시, URL 분절 |
| - | U+2011 | Non-Breaking Hyphen | 끊기면 안 되는 복합어 | 줄 바꿈 금지 | 강제 미분절로 과도한 공백 발생 |
| – | U+2013 | En Dash | 범위 표기 | 양쪽에서 줄 바꿈 가능 | 하이픈으로 오용 시 간격 불일치 |
| — | U+2014 | Em Dash | 삽입 구절 구분 | 주로 주변 불분절 | 여백 과대, 줄 끝 매달림 |
| | U+00AD | Soft Hyphen | 조건부 분단 기호 | 줄 끝에서만 표시 | 붙여넣기 시 숨은 문자 잔존 |
| ﹣ | U+FE63 | Small Hyphen-Minus | 호환용 | 불명확 | 폰트 교체 시 사라짐 |
3. 원인 진단 절차(체크리스트)
3.1 입력 문자 정규성 검사
- 문제 구간을 드래그하여 상태표시나 문자표에서 코드 포인트를 확인한다.
- 붙여넣기 출처가 웹, PDF, 워드프로세서, CAD, ERP 등인지 기록한다.
- 같은 모양의 하이픈이 다른 코드 포인트로 섞여 있는지 샘플 3~5개를 점검한다.
3.2 문단·글자 모양과 줄 바꿈 규칙 점검
- 문단 정렬 방식(양쪽, 왼쪽, 맞춤형)을 확인한다.
- 한글의 영문 단어 단위 줄 바꿈 옵션, 특수문자 줄 바꿈 허용 옵션을 확인한다.
- 자간·장평·커닝이 95% 이하 또는 105% 이상으로 과도하지 않은지 확인한다.
- 단축키·자동 교정 기능이 하이픈을 다른 문자로 치환하지 않는지 확인한다.
3.3 글꼴 및 출력 경로 점검
- 현재 글꼴이 해당 하이픈 코드 포인트의 글리프를 지원하는지 확인한다.
- PDF 변환기, 프린터 드라이버별로 미리보기 차이가 있는지 비교한다.
- 폰트 임베딩 설정을 켜고 껐을 때 차이를 확인한다.
4. 해결 전략(근본 원인별)
4.1 섞인 하이픈 문자 단일화
문서 전체에서 하이픈 코드를 통일하면 예측 가능성이 급상승한다. 다음 치환 규칙을 적용한다.
- 일반 복합어: U+002D로 통일한다.
- 끊기면 안 되는 고유명·모델명: U+2011로 통일한다.
- 조건부 분단이 필요한 길고 복잡한 합성어: 필요한 지점에만 U+00AD를 삽입한다.
정규화용 검색·바꾸기 패턴 예시는 다음과 같다.
1) En Dash→하이픈 통일 찾기: \u2013 바꾸기: -
Em Dash→En Dash 또는 하이픈 통일
찾기: \u2014
바꾸기: -
호환용 Small Hyphen 제거
찾기: \uFE63
바꾸기: -
비분절 하이픈 강제 적용(변경 대상만 범위 선택)
찾기: 모델명A-123 또는 정규식 (?:A|B|C)-\d{3,}
바꾸기: U+2011 삽입 (비분절 하이픈)
4.2 문단·줄 바꿈 규칙 최적화
양쪽 맞춤 상태에서 영문과 하이픈이 많은 텍스트는 자간 조정과 줄 바꿈 허용 규칙이 충돌하기 쉽다. 실무 권장값은 다음과 같다.
- 자간 98~102% 범위 유지 권장이다.
- 장평 98~100% 범위 유지 권장이다.
- 영문 단어 단위 줄 바꿈 허용을 켜고, 특수문자 기준 줄 바꿈은 하이픈만 허용한다.
- URL과 코드 블록은 문단 스타일을 별도로 만들어 왼쪽 정렬로 분리한다.
4.3 글꼴 전략
하이픈 관련 글리프가 균일한 범용 글꼴을 우선 선택한다. 특정 브랜드폰트는 U+2011을 미지원하기도 한다. 문제가 재현될 때는 다음을 시행한다.
- 같은 계열의 대체 글꼴 2~3개로 시연 비교한다.
- PDF 변환 시 폰트 임베딩을 활성화한다.
- 프린터 드라이버의 글꼴 대체 옵션을 비활성화한다.
4.4 붙여넣기 정제
웹·PDF·디자인툴에서 복사한 텍스트에는 U+2011, U+00AD가 자주 섞인다. 붙여넣기 직후 다음 정제를 수행한다.
붙여넣기 정제 4단계: 1) 형식 없는 텍스트로 붙여넣기 2) 전체 선택 후 하이픈류 정규화(2~3가지 패턴 치환) 3) 문단 스타일 재적용 4) URL, 모델명 구간만 비분절 하이픈(U+2011)로 재치환 5. 사용 시나리오별 처방
5.1 기술문서·사양서
- 모델명, 규격명은 비분절 하이픈(U+2011)로 통일한다.
- 수식·코드·경로는 왼쪽 정렬, 고정폭 글꼴, 줄 바꿈 금지 영역을 적용한다.
- 도표 캡션의 하이픈은 U+002D로 통일하고 캡션 스타일에서 자간을 100%로 고정한다.
5.2 보고서·마케팅 문서
- 문단은 양쪽 맞춤을 사용하되 하이픈 밀도가 높은 단락은 왼쪽 정렬로 예외 처리한다.
- 소프트 하이픈은 제목·머리말에서 금지한다.
- 인라인 영문 복합어는 2~3개 이하로 제한하고 긴 합성어는 재구성한다.
5.3 URL·파일경로·코드 스니펫
자동 줄 바꿈이 치명적이면 다음 기법을 사용한다.
- 공백 대신 비분절 공백(U+00A0) 또는 단어 결합자(U+2060)를 최소 범위에 적용한다.
- 문단 스타일에서 특수문자 기준 줄 바꿈을 해제한다.
- 표 셀 내부에서는 셀 폭을 늘리거나 축약형을 사용한다.
6. 스타일 템플릿 구축
재발 방지를 위해 문서 시작 템플릿에 하이픈 대응 스타일을 미리 정의한다.
| 스타일명 | 용도 | 정렬 | 자간/장평 | 줄 바꿈 규칙 | 비고 |
|---|---|---|---|---|---|
| Body-Justified | 일반 본문 | 양쪽 | 100%/100% | 하이픈 허용, 기타 특수문자 금지 | 영문 단어 단위 허용 |
| Body-Left | 하이픈 밀집 단락 | 왼쪽 | 100%/100% | 특수문자 줄 바꿈 해제 | URL 포함 |
| Caption | 도표 캡션 | 왼쪽 | 100%/100% | 하이픈만 허용 | 숫자 자폭 고정 |
| Code | 코드·경로 | 왼쪽 | 100%/100% | 줄 바꿈 금지 | 고정폭 글꼴 |
7. 배치 정규화 워크플로
대량 문서를 일괄 정리할 때의 권장 순서는 아래와 같다.
배치 정규화 6단계: 1) 백업본 생성 2) 하이픈류 문자 스캔(샘플링 5개 문서) 3) 전역 치환(En Dash/Em Dash → -) 4) 모델명 목록 기반 비분절 하이픈 재적용 5) 스타일 재적용 및 미리보기 검수 6) PDF 변환 테스트(임베딩 ON/OFF 비교) 8. 출력 단계 품질 점검
8.1 화면·PDF·인쇄 교차검증
- 문제 단락 3곳을 북마크하여 화면·PDF·인쇄를 동일 구간으로 비교한다.
- PDF 변환기는 2가지 이상으로 교차 확인한다.
- 프린터 드라이버의 글꼴 대체, 그래픽 처리 옵션을 각각 켜고 꺼서 비교한다.
8.2 회귀 테스트 체크리스트
| 항목 | 합격 기준 | 불합격 예시 |
|---|---|---|
| 중복 하이픈 | 줄 끝에서 1개만 표시 | -- 로 중복 노출 |
| 사라진 하이픈 | 줄 바꿈 후에도 단어 의미 보존 | rolebased로 합쳐짐 |
| 잘못된 분절 | 의미 단위 유지 | state-of-the- / art |
| URL 분절 | 링크 단위 미분절 | https:// 예외적 분절 |
9. 문제 유형별 빠른 처방
9.1 줄 끝 하이픈 중복 표시
- 조건부 하이픈(U+00AD)과 일반 하이픈(U+002D)이 중복되었을 가능성이 높다.
- U+00AD 전역 검색 후 삭제하고 필요한 위치에만 다시 삽입한다.
9.2 하이픈이 사라짐
- 폰트가 해당 코드 포인트를 미지원하거나 PDF 변환에서 합성된 가능성이 있다.
- 동일 문장에 다른 글꼴을 적용해 확인하고 폰트 임베딩을 활성화한다.
9.3 영문 복합어 비의도 분절
- 핵심 합성어의 하이픈을 U+2011로 일괄 치환한다.
- 문단을 왼쪽 정렬로 예외 처리하거나 자간 자동 조정을 끈다.
9.4 URL·경로가 끊김
- URL 전용 스타일(Code)로 분리하고 줄 바꿈 금지 옵션을 적용한다.
- 필요 시 소구간에 단어 결합자(U+2060)를 삽입한다.
10. 팀·문서 차원의 표준 운영
- 템플릿에 하이픈 처리 원칙을 주석으로 포함한다.
- 모델명·제품군 사전을 팀 저장소에서 관리하고 릴리스마다 업데이트한다.
- PDF 변환기와 프린터 드라이버 버전을 문서 하단에 기록한다.
- 신입 사용자 교육 자료에 U+2011, U+00AD 개념과 적용 예를 포함한다.
11. 실무 예제
11.1 제품명 비분절 처리 스니펫
예: WAYFIX-MSDS-2000 절차: 1) "WAYFIX-MSDS-2000" 전체 검색 2) 하이픈을 U+2011(Non-Breaking Hyphen)로 치환 3) 문단 스타일 Body-Justified 적용 유지 4) PDF 미리보기에서 줄 끝 매달림 여부 확인 11.2 조건부 하이픈으로 가독성 향상
예: state-of-the-art 절차: 1) 기본 하이픈은 U+002D 유지 2) "state-of-the-" 다음 "art" 앞에 U+00AD 삽입 금지(불필요) 3) 대신 문단 왼쪽 정렬 예외 또는 자간 100% 고정 11.3 URL 보호
예: https://docs.example.com/role-based-access 절차: 1) 문단 스타일 Code 적용(왼쪽 정렬, 줄 바꿈 금지) 2) 꼭 필요한 경우 "role-based"의 하이픈만 U+2011로 치환 3) 프린터 드라이버에서 글꼴 대체 해제 12. 점검 자동화 아이디어
대량 문서에서는 수동 검수가 누락될 수 있다. 다음 규칙으로 반자동 점검을 구성한다.
- 정규표현식
[A-Za-z0-9]+-[A-Za-z0-9]+패턴을 스캔해 후보 목록을 만든다. - 모델명 사전과 교집합인 경우 자동으로 U+2011로 치환한다.
- URL 스키마(https://)가 포함된 줄은 줄 바꿈 금지 스타일을 자동 적용한다.
13. 최종 점검 체크리스트
- 문서 내 하이픈 코드 통일 여부 확인한다.
- 모델명·규격명 비분절 처리 적용 여부 확인한다.
- URL·경로·코드 블록 스타일 분리 여부 확인한다.
- PDF·인쇄에서 동일한 시각 결과를 재현하는지 확인한다.
- 템플릿과 사전 업데이트 내역을 문서에 기록한다.
FAQ
하이픈이 많은 단락에서 양쪽 맞춤을 유지하고 싶다. 어떻게 세팅하나?
자간·장평을 100%로 고정하고 특수문자 줄 바꿈 허용 중 하이픈만 허용한다. 분절이 잦은 복합어는 U+2011로 비분절 처리한다. 그래도 들쭉날쭉하면 해당 단락만 왼쪽 정렬 예외로 처리한다.
소프트 하이픈이 PDF에서 보인다. 원인과 대책은 무엇인가?
U+00AD는 줄 끝에서만 표시되어야 하지만 변환기 설정에 따라 표시될 수 있다. 불필요한 U+00AD를 전역 제거하고 필요한 위치에만 최소 삽입한다. 변환기 옵션에서 하이픈 표시 규칙을 점검한다.
폰트 임베딩을 켜도 하이픈이 사라진다.
폰트가 해당 코드 포인트 글리프를 포함하지 않거나 대체 글꼴이 개입되었을 수 있다. 다른 범용 글꼴로 교체해 보고, 프린터 드라이버의 글꼴 대체 기능을 비활성화한다.
붙여넣기 시 하이픈류가 섞이는 것을 예방할 수 있나?
형식 없는 텍스트로 붙여넣기 후 즉시 정규화 치환을 수행한다. 반복 문서라면 매크로 또는 스크립트로 3~4개의 규칙을 자동화한다.
URL이 꼭 줄 바꿈되어야 할 때는?
표 폭을 넓히거나, 슬래시(/) 기준으로만 줄 바꿈을 허용하는 규칙을 적용한다. 중요한 구간은 U+2060 단어 결합자를 국소적으로 삽입한다.