맥 자소분리 프로그램 - maeg jasobunli peulogeulaem

맥에서 작성한 한글 파일명이 깨지는 원인

맥에서 작성한 문서를 한글 제목으로 저장해서 윈도우에서 열어보면 한글이 깨져 보이는 현상을 경험한 적이 있을 텐데요. 이유는 맥과 한글에서 사용하는 한글처리 방식이 다르기 때문이라고 합니다. 한글처리 방식에는 완성형과 조합형이 있는데요. 완성형은 이미 입력된 한글 11,172자를 가져와서 한글을 표현합니다. 반면 조합형은 한글 모음과 자음을 조합해서 한글을 표현하게 됩니다.

맥은 조합형과 완성형을 모두 지원하지만 윈도우는 완성형만 지원합니다. 그래서 윈도우에서 작성된 한글 파일명은 맥에서 잘 보입니다. 하지만 맥에서 작성된 한글 파일명은 조합형으로 저장되기 때문에 윈도우에서 불러보면 깨진것처럼 보이게 됩니다. 윈도우 개발자 레이몬드 첸은 이 현상과 관련해서 원인을 밝히면서 조금 억울해 하기도 했습니다.

한글파일명 자소분리 합치는 방법

위에 맥에서 한글이 깨지는 원인에서 설명했듯이 맥에서 한글 파일명을 조합형으로 저장하기 때문에 윈도우에서 열어보면 파일명이 깨지게 됩니다. 이것을 인지한 사람들 중에는 윈도우 사용자들과 공유할 때 의식적으로 파일명을 영문으로 작성하는 경우가 있었습니다. 뭐, 영어에 익숙하다면 그렇게 틀린 방법도 아니지만 받는 사람이 영문 파일명을 보고 의아해 할 수 있습니다. (영문 파일명으로 만들어 보냈는데 오타가 나면 그것도 이상합니다)

윈도우10이나 11에서는 많이 해결된 것으로 보이지만 혹시나 그 이전 OS를 사용하는 사람들에게 한글파일명으로 저장된 파일의 자소분리 현상을 해결하는 프로그램들을 몇개 소개해 보도록 하겠습니다.

한글파일명 자소분리 합치는 프로그램 1 – 컨택트

  • 다운로드 : https://namocom.tistory.com/category/Programing/My%20OSS
  • 맥에서 한글 자소를 합쳐서 보낼 때 사용하면 좋은 프로그램
  • 설치방법 : 응용프로그램 폴더에 집어넣고 실행하면 인증되지 않은 프로그램이라는 경고 메시지가 나옵니다. 다시 응용프로그램에 들억가셔서 커맨트(Command)키를 누른채로 프로그램을 실행합니다.
  • 이제 열기를 누르면 작은 창이 나타납니다. 이 작은 창에 한글 파일명으로 작성된 파일을 끌어다 놓으면 됩니다.
  • 파일을 받을 분을 위한 작은 배려로 미리 자소 분리 현상을 해결해서 보내드리기 위해서 사용하는 프로그램입니다.

한글파일명 자소분리 합치는 프로그램 2 – nfd2c (파이썬)

맥 자소분리 프로그램 - maeg jasobunli peulogeulaem
맥에서 작성한 한글 파일명을 합쳐주는 자소결합 프로그램 nfd2c
  • 다운로드 : https://github.com/xvim64/unicode-nfd2c
  • 파이썬3가 설치된 맥에서 사용 가능합니다. (마찬가지로 윈도우에서도 작동합니다. 파이썬이니까요)
  • 설치 – pip install unicode-nfd2c
  • 사용법
    현재 작업중인 디렉토리(\.)에서 하위(-r) 디렉토리를 포함해서 분리된 한글 자소 목록을 출력합니다.
    python nfd2c.py -r .
    현재 작업중인 디렉토리(\.)에서 하위(-r) 디렉토리를 포함해서 분리된 한글 자소를 결합(-x)합니다.
    python nfd2c.py -r -x
  • 자세한 사용법은 아래 영상을 참고하세요.

마치며

맥이든 윈도우든 OS 제조회사에 따라 한글 표현 방법이 달라서 사용자들이 고생을 하고 있습니다. 이런 부분들을 해결해 주시는 개발자님들께 감사의 인사를 드려 봅니다. 또한 윈도우와 맥 두 OS 간의 한글 표현 방식이 통일되거나 혹은 호환이 되도록 변경이 되면 좋겠습니다. (이래서 맥이 싫다. 이래서 윈도우가 싫다 하는 표현들은 적절하지 않은 것 같습니다)

앞으로도 행복한 컴퓨팅 생활 되시길 바랍니다. 유난히 덥고 유난히 비가 많이 오는 여름입니다. 모두 건강하시길 바라며 오늘 포스팅 마치도록 하겠습니다.

2020-10-12  버전: 2.0이 릴리즈 되었습니다.

2020-10-09 버전: 1.09가 릴리즈 되었습니다.

라이센스

본 애플리케이션은 오픈소스 소프트웨어(Open Source Software)입니다.
개인용 및 회사에서 사용이 가능하고 재배포 또한 가능합니다.
다만, 재배포시에 댓글로 재배포 하는 내용(URL 등)을 남겨주세요. (별도의 승인 필요없습니다.)

개요

  • 애플리케이션명: Contact
  • 버전: 1.0
  • 지원 macOS 버전: 10.11(El Capitan)
  • 설명: macOS 용 한글 자모(자음과 모음) 교정 애플리케이션입니다.
맥 자소분리 프로그램 - maeg jasobunli peulogeulaem
드래그앤드롭 하면 끝!

다운로드

Contact-v1.0.zip

3.42MB

위의 링크 혹은 깃헙(GitHub) 릴리즈 노트에서 가능합니다.

$ shasum Contact-v1.0.zip
8d4ae49af417eb37292c2c3693a35715d48e39c8        Contact-v1.0.zip

설치방법

위의 파일을 다운로드 받아서 압축을 풀고 응용 프로그램(Application)으로 드래그 하면 됩니다.

맥 자소분리 프로그램 - maeg jasobunli peulogeulaem
압축을 풀고, 응용프로그램으로 드래그앤드롭

실행

최초 실행시 팝업메뉴에서 열기(open)을 누릅니다.

맥 자소분리 프로그램 - maeg jasobunli peulogeulaem
더블클릭이 아닌 열기를 합니다.

이후 아래와 같은 알림메시지에서 "열기"를 선택합니다.

맥 자소분리 프로그램 - maeg jasobunli peulogeulaem
macOS 10.14.6 (Mojava)에서는 이렇게 나옵니다.

trouble shooting

1. 다운로드 문제

브라우저에 따라서 아래와 같이 위험 경고를 하는 경우가 있습니다.

맥 자소분리 프로그램 - maeg jasobunli peulogeulaem
Contact는 컴퓨터에 위험하지 않습니다.

해결책: 이럴 경우 윗방향을 눌러 계속을 누르면 다운로드가 가능합니다.

맥 자소분리 프로그램 - maeg jasobunli peulogeulaem

2. 인증서 서명 문제

애플리케이션에 서명을 하려면 개발자 등록을 해야합니다. 제 본업이 macOS나 iOS쪽 개발이 아니다 보니... ㅜㅜ

따라서 아래와 같이 경고가 뜰 수 있습니다.

맥 자소분리 프로그램 - maeg jasobunli peulogeulaem
Finder에서 실행하면 Finder에서 보기가 나오지 않네요.
맥 자소분리 프로그램 - maeg jasobunli peulogeulaem
Download stack에서 실행했을 경우

control 키를 누르고 애플리케이션을 선택하고 팝업 메뉴에서 "열기"를 선택합니다.

맥 자소분리 프로그램 - maeg jasobunli peulogeulaem
control을 누르고 열기를 선택합니다.

아래와 같이 "열기" 버튼이 생기면 다음부터는 그냥 사용이 가능합니다.

맥 자소분리 프로그램 - maeg jasobunli peulogeulaem
맥 자소분리 프로그램 - maeg jasobunli peulogeulaem

소스코드

소스는 모두 github에 올라와 있습니다. 내부 동작에 대해 궁금하신 분이라면 아래 링크를 확인해주세요.

- 프로젝트 경로: github.com/namhokim/cocoa_app/tree/master/Contact

추후 개발 예정 기능

1. 서브 디렉토리 탐색 기능

현재는 대상만 바꾸어주는데 여러 서브 디렉토리가 있을 경우 하위의 파일을 탐색해서 같이 바꾸어주면 여러번 반복해서 수행해야 하는 불편을 줄일 수 있을 것으로 생각합니다.

2. 변환 여부 판단 기능 추가

현재는 무조건 composed 로 바꾸도록 구현이 되어 있는데 판단할 수 있는 방법을 모색 중에 있습니다.

3. dock에 drag & drop 지원

프로그램을 실행하지 않고 dock에 드래그앤드롭을 통해 변환되도록 인터페이스를 확장하면 더 편리할 것 같습니다.

사용방법

자소를 합칠 파일이나 디렉토리들을 파인더에서 선택해서 해당 창에 드래그앤 드롭하면 됩니다.

드래그앤드롭이 어려운 분들은 마우스를 프로그램 위에 올려두면 열기 버튼이 생기는데 이 버튼을 사용해서 선택해도 됩니다.

만들게 된 배경

macOS에는 이미 convmv 라는 명령어 도구를 이용해서 바꿀 수 있습니다.

사용을 해보니 일일이 파일명과 옵션을 쳐야하는 것이 불편했습니다.

기획은 2020년 7월에

2010년에 Windows XP를 사용할 때 한글이 풀려서 HangulJasoFixer 1.0 을 만들었습니다.

시대가 지나서 해당 프로그램이 잘 돌아가지 않는 문제가 있다는 리포팅을 받았습니다.

2019년에 해당 프로그램을 .net 으로 포팅하여 ver.2로 다시 릴리즈를 하였습니다.

Windows에서 풀려있는 자음과 모음을 합치는 것을 수동적인(passive) 방법이라면,

풀림의 원인인 macOS에서 자소를 합쳐서 다른 시스템으로 전송하는 것이 훨씬 능동적인(active) 방법이라 생각합니다.

이 생각에 대한 구체화(기획)는 2020년 7월 기획을 했는데 육아랑 업무 등으로 미루어두었습니다.

당시 프로그램의 이름을 GetTogether로 후보로 두고 있었습니다.

개발은 2020년 10월 추석연휴동안

개발기간은 2020년 10월 1일부터 10월 3일까지 3일입니다.

40시간만에 Swift로 iOS 앱 만들기라는 강좌가 있지만 macOS 앱에 대한 것은 iOS 앱에 대한 것보다 리소스가 적더군요.

본가에 추석을 보내고 있는데 애들에게 보여줄 겸 TV로 DLNA (Digital Living Network Alliance)를 통해 파일을 보여주었는데 한글이 아래와 같이 깨졌습니다.

맥 자소분리 프로그램 - maeg jasobunli peulogeulaem
EP03은 혹시나 해서 자소를 합쳐본 파일입니다.

사실 근본 원인은 masOS가 아닌 TV에 있습니다. 자음과 모음을 풀어서 표현하는 것(decomposed)에 대해 TV가 제대로 표시를 못하기 때문입니다. 유니코드에서는 정규화 형태에 대해 동등성을 가져야 한다는 스펙이 존재합니다.
하지만 TV의 펌웨어를 수정하는 것보다 파일명을 수정하는 것이 더 빨라 보였습니다.

추석 연휴 기간 여유가 있어 7월에 기획했던 프로젝트를 다시 진행해보면 어떨까 생각을 했습니다.

하지만 난 Java 백엔드 개발자인데...

저는 개발자이긴 하지만 평소 다루는 언어는 자바입니다.

macOS 용 애플리케이션은 언어도 swift 나 Objective-C 이고, Cocoa 라는 프레임워크에 대해 알아야 하고, Xcode라는 익숙하지 않은 환경이 있었습니다.

과거 하루에 거쳐 만든 코코아 앱이 있어서 추석 연휴이면 뭔가 결과물을 만들 수 있지 않을까 생각을 했습니다.

다행히 PlayGround로 동작에 대해서는 준비해놓은 코드 조각이 있어서 이것저것 찾아보면서 삽질도 하면서 만들었습니다.

DLNA 영상

맥 자소분리 프로그램 - maeg jasobunli peulogeulaem
모든 파일이 제대로 표시가 된다!
맥 자소분리 프로그램 - maeg jasobunli peulogeulaem

한글 모두 잘 나온다!

Contact 이름 유래

코로나19로 인해 사회적 거리두기(social distancing)가 생활화되고 있습니다.

이런 상황으로 접촉하지 않다라는 신조어로 언택트(untact)라는 말이 사용되고 있습니다.

맥 자소분리 프로그램 - maeg jasobunli peulogeulaem

그런데 마치 한글의 자소분리 형태가 마치 사회적 거리두기를 하는 것 같은 느낌이 들었습니다.

한글의 자음과 모음은 원래 하나로 붙어 있는 형태인데 말이죠.

(사실 iTerm에서는 Unicode normalization form을 선택하는 방법을 제공하고 있습니다.)

맥 자소분리 프로그램 - maeg jasobunli peulogeulaem
"사회적 거리두기"가 풀어져 보인다.

이 앱을 이용하면 위의 풀어져 보이는 것을 제대로 보이게 할 수 있습니다.

맥 자소분리 프로그램 - maeg jasobunli peulogeulaem