徐志赫 서지혁

OS X Quirks

12 Feb 2012

OS X는 멋진 운영체제지만, 몇 가지 신경 쓰이는 quirk들이 있다.

첫 번째 quirk. 우선 OS X에서 프로그램은 정해진 구조가 있는, 이름이 .app으로 끝나는 폴더다. 보통 이걸 알 필요는 없지만, OS X의 quirks 중 한 가지가 여기서 비롯되고, 원인을 이해하는 데 도움이 된다.

윈도우에서는 똑같은 이름을 가진 폴더 둘을 한 디렉토리에 놓으려고 하면, 폴더의 내용물을 합친다(merge). 하지만 OS X에서는 나중에 들어온 폴더가 기존에 있던 폴더를 통째로 교체(replace)한다1.

.app 폴더를 을 대체하면 프로그램이 새 버전으로 바뀌는데, 이걸 일반 디렉토리에 적용한 점은 정말 마음에 들지 않는다. 차이점을 인식하지 못하고 사용하다간 자료를 잃을 수도 있다. (나는 잃은 적이 있다).

두 번째 quirk. 파일명 정규화에 NFD(Normalization Form Canonical Decomposition)를 사용한다. 자세한 내용은 Wikipedia의 Unicode Normalization 항목을 참고하자.

이게 뭐가 문제냐면, 일단 첫가끝 자모 영역(난 이게 뭔지도 모르겠다!)이 있는 폰트가 없으면 한글이 제대로 보이지 않는다. OS X에서는 문제가 없지만, 윈도우에서 PuTTY로 OS X의 SSH 서버로 접속했을 때 한글로 된 파일 이름이 제대로 보이지 않게 되어 접근할 수가 없게 된다. 그러니 애초에 SSH를 통해 접근할 일이 있는 파일은 이름을 영어로 짓자2. OS X와 다른 운영체제 간 압축파일 내용물의 파일 이름 깨짐도 NFD 때문이다.

OS X의 검색 시스템인 Spotlight가 한글 음절 조합을 하는 중에도 검색할 수 있도록 NFD를 사용한다는 설이 가장 그럴듯한데, 이건 NFD 없이도 할 수 있는 것이다. 아무튼 까일 부분이 제일 많은 quirk이다.

세 번째 quirk. 바로 .DS_Store. 윈도우에서 웹 디자인을 해본 사람이라면 샘플 코드 아카이브를 받아 압축을 풀었는데 이 파일이 나오는 경우를 자주 보았을 것인데, 이 경우 그 코드를 작성한 사람은 맥 사용자일 가능성이 99%이다.

.DS_Store는 OS X에서 폴더에 대한 metadata(아이콘의 위치 등)를 보관하는 파일인데, 이게 폴더마다 하나씩 다 있다. *nix 계열의 시스템에서 점으로 시작하는 파일은 숨겨진 파일이기 때문에 일반인들은 대부분 눈치채지 못하지만, geek들에게는 방심했다간 소스 코드 리포지토리에 들어가 버전 관리 당해버린다든가 머리 아픈 일을 만드는 주범이다.

OS X에서 이 세 가지 quirks만 사라진다면 그나마 쓰기 편한 운영체제가 될 것이다.

  1. 사실 항상 이렇게 동작하는 건 아니고, 나중에 들어온 폴더를 옮겨서 넣을 때(move)만 이렇게 동작한다. 복사 후 붙여넣기(copy&paste) 했을 때에는 내용물이 합쳐진다. 그런데 후자는 느려서… 

  2. 파일 이름에 한글이 들어 가 있어도 tab completion은 동작하기 때문에 꼼수를 쓰는 방법도 있다.