본문 바로가기

Programing/My OSS

[macOS 10.11+] Contact(한글 자모 합치기 for mac)

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

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

라이센스

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

개요

  • 애플리케이션명: Contact
  • 버전: 1.0
  • 지원 macOS 버전: 10.11(El Capitan)
  • 설명: macOS 용 한글 자모(자음과 모음) 교정 애플리케이션입니다.

 

드래그앤드롭 하면 끝!

 

다운로드

Contact-v1.0.zip
3.42MB

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

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

설치방법

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

압축을 풀고, 응용프로그램으로 드래그앤드롭

실행

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

더블클릭이 아닌 열기를 합니다.

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

macOS 10.14.6 (Mojava)에서는 이렇게 나옵니다.

trouble shooting

1. 다운로드 문제

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

Contact는 컴퓨터에 위험하지 않습니다.

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

2. 인증서 서명 문제

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

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

Finder에서 실행하면 Finder에서 보기가 나오지 않네요.
Download stack에서 실행했을 경우

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

control을 누르고 열기를 선택합니다.

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

 

소스코드

소스는 모두 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)를 통해 파일을 보여주었는데 한글이 아래와 같이 깨졌습니다.

 

EP03은 혹시나 해서 자소를 합쳐본 파일입니다.

 

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

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

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

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

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

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

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

DLNA 영상

 

모든 파일이 제대로 표시가 된다!

 

한글 모두 잘 나온다!

Contact 이름 유래

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

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

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

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

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

 

"사회적 거리두기"가 풀어져 보인다.

 

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