핵심요약
CHM 파일을 마크다운으로 변환할 때는 단순 추출 후 병합만으로 끝나지 않는 경우가 많다. 실제 작업에서는 Windows 기본 도구인 hh.exe가 안정적으로 동작하지 않아, Python 기반 추출 방식으로 전환해 내부 HTML 파일을 안전하게 꺼낸 뒤 마크다운으로 변환하는 흐름이 더 확실했다.
이 과정에서는 CHM 내부의 HTML 문서를 개별 .md 파일로 바꾸는 것뿐 아니라, 내부 링크를 마크다운 기준으로 다시 정리하고, index.md를 시작점으로 목차 순서에 맞춘 통합본까지 만드는 것이 핵심이다.
배경
CHM 파일은 오래된 도움말 문서 형식이지만, 여전히 기술 문서나 제품 매뉴얼 형태로 남아 있는 경우가 많다. 문제는 이 파일을 바로 활용하기 어렵다는 점이다. 검색, 편집, 버전 관리, AI 도구 연동까지 고려하면 마크다운으로 변환해 두는 편이 훨씬 효율적이다.
처음에는 현재 폴더의 .chm 파일을 확인한 뒤 Windows 기본 방식으로 바로 추출을 시도할 수 있다. 하지만 CHM 파일마다 구조나 압축 방식이 달라 기본 추출기가 조용히 실패하는 경우가 있다. 따라서 실제 변환 작업에서는 추출 안정성을 먼저 확보하는 것이 중요하다.
핵심 정보 정리
1. CHM 내부 문서 구조를 먼저 확인
가장 먼저 해야 할 일은 CHM 내부에 실제로 HTML 또는 HTM 문서가 들어 있는지 확인하는 것이다. 이 구조가 확인되면 이후 변환 흐름은 비교적 명확해진다. 즉, CHM은 단순히 하나의 바이너리 파일이 아니라 여러 HTML 문서와 리소스를 묶어 둔 컨테이너로 볼 수 있다.
2. 기본 추출기가 실패하면 Python 방식으로 전환
Windows의 hh.exe -decompile는 간단해 보이지만 모든 CHM에서 안정적으로 동작하는 것은 아니다. 실제 작업에서는 이 방식이 기대만큼 결과를 주지 못할 수 있다. 이런 경우 Python용 pylibmspack을 사용하면 CHM 내부 파일을 보다 안정적으로 추출할 수 있다.
핵심은 추출 단계에서 멈추지 않고, 실패 시 바로 대체 경로를 준비하는 것이다. 이렇게 하면 특정 CHM 파일에 종속되지 않는 재실행 가능한 변환 흐름을 만들 수 있다.
3. HTML을 Markdown으로 개별 변환
추출된 HTML 문서는 markdownify와 BeautifulSoup를 조합해 .md 파일로 변환할 수 있다. 이 방식은 본문 텍스트를 마크다운 형식으로 바꾸는 데 유용하며, 문서 구조를 어느 정도 유지하면서 후속 편집이 가능한 결과물을 만들 수 있다.
이 단계의 결과물은 보통 문서별 마크다운 파일 모음이며, 원문 구조를 보존한 채 검색과 수정이 가능한 형태로 바뀐다는 장점이 있다.
4. 내부 링크를 마크다운 기준으로 수정
CHM 내부 문서는 서로 .htm 또는 .html 링크로 연결되어 있는 경우가 많다. 이 상태로는 마크다운 문서끼리 연결이 맞지 않기 때문에, 링크 대상을 .md 기준으로 자동 수정해야 한다.
이 작업을 통해 개별 문서가 끊기지 않고 이어지며, 변환 후에도 문서 탐색 흐름을 유지할 수 있다. 단순 텍스트 변환보다 링크 정리가 중요한 이유가 여기에 있다.
5. 목차 순서 기반 통합본 생성
개별 .md 파일만 만들어 두면 관리에는 도움이 되지만, 한 번에 읽기 좋은 통합 문서가 필요할 때는 추가 작업이 필요하다. 이때 index.md를 시작점으로 내부 링크를 따라가며 문서 순서를 구성하면, 실제 목차 흐름에 맞는 통합본을 만들 수 있다.
마지막으로 이렇게 연결한 결과를 하나의 파일로 합치면 Bsimogl_x64_full.md 같은 통합 문서를 만들 수 있다. 중요한 점은 단순 파일명 순 병합이 아니라, 문서의 실제 탐색 순서와 목차 구조를 기준으로 합쳐야 자연스러운 결과가 나온다는 것이다.
주의사항
hh.exe -decompile만으로 모든 CHM 파일을 처리할 수 있다고 가정하면 작업이 중간에 멈출 수 있다.- CHM 파일마다 Windows 기본 추출기가 조용히 실패할 수 있으므로, 대체 추출 방식을 준비하는 것이 안전하다.
- HTML을 마크다운으로 바꾸는 것만으로는 끝나지 않으며, 내부 링크 수정이 함께 이뤄져야 문서 활용성이 높아진다.
- 통합본은 단순 병합보다 목차 순서 기반으로 구성해야 실제 읽기 흐름이 자연스럽다.
- 재사용을 고려한다면 추출 폴더, 마크다운 폴더, 통합본 파일, 재실행 가능한 Python 스크립트까지 함께 정리하는 편이 좋다.
결론
CHM 파일을 마크다운으로 변환하는 작업은 단순 포맷 변경이 아니라, 추출 안정성 확보, HTML 문서 변환, 내부 링크 정리, 목차 기반 통합까지 포함하는 문서 재구성 작업에 가깝다. 특히 기본 추출기가 불안정할 수 있다는 점을 고려하면 Python 기반 대체 방식을 포함한 자동화 흐름을 준비하는 것이 실용적이다.
결과적으로 이 과정을 잘 정리해 두면, CHM 문서를 개별 마크다운 파일과 통합본 문서 형태로 재사용할 수 있고, 이후 검색, 편집, 배포, AI 활용까지 훨씬 수월해진다.
추천 프롬프트
현재 폴더의 CHM 파일을 찾아서 마크다운으로 변환해줘.
요구사항:
1. CHM 내부 파일을 안정적으로 추출해줘. Windows 기본 hh.exe가 실패하면 Python 라이브러리 기반 방식으로 바로 대체해줘.
2. HTML/HTM 문서를 각각 Markdown 파일로 변환해줘.
3. 내부 링크를 .htm/.html 기준에서 .md 기준으로 자동 수정해줘.
4. index 페이지와 목차 링크를 따라가며 읽기 순서 기반의 통합본 Markdown 파일도 만들어줘.
5. 결과물은 아래처럼 정리해줘.
– extracted 폴더
– markdown 폴더
– 통합본 full.md
– 재실행 가능한 Python 스크립트
6. 작업이 끝나면 변환 과정 요약과 재사용 방법도 함께 알려줘.