플래시 폰트 설정에 대한 고찰

  • 먼저 이 고찰은 linuxmint 환경에서 이루어졌으므로 차이가 있을 수 있습니다.

저는 세가지 언어 커뮤니티에서 활동을 합니다. 영어, 한국어, 일본어.
그렇다보니 폰트 설정에 항상 신경을 쓰게 됩니다. (아무래도 1.5배 더 신경쓰이죠)

그런데 다른 설정은 다 괜찮지만 매번 한가지 걸리는 부분이 있습니다.
바로 [b:2zyusnvs]플래시[/b:2zyusnvs]입니다.

플래시 한글표시 문제는 이미 팁이나 관련 문서가 많이 있기 때문에 해결하는데는 문제가 없습니다.
하지만 여기에 추가적으로 일본어를 표시해야하기 때문에 문제가 발생합니다.
일부 한글 폰트에는 히라가나/가타카나가 포함되어 있어서 모르시는 분들이 보기에는 괜찮지만,
알고보면 일본 전용 한자가 포함되어 있지 않아서 실제로 사용하는 것은 불가능합니다.

여하튼지간에,
이 문제를 해결하기 위해 가장 처음에는 가장 원시적인 방법을 사용하였습니다.
[b:2zyusnvs][u:2zyusnvs]방법 1. 스크립트를 사용하여 필요할 때 변환해주기[/u:2zyusnvs][/b:2zyusnvs]
하지만 이 방법은 귀찮을 뿐더러 근본적인 해결책이 되지 못합니다.

그래서 다시 폰트설정을 건드리기로 했습니다.
하지만 답을 찾지 못해 너무 답답했던 나머지 Flash Player의 바이너리를 뜯어보게 되었습니다.
거기서 찾은 깔끔한 문자열: sans
[b:2zyusnvs]결론 1) 당연하게도 플래시는 sans 폰트를 사용한다. (하드코딩)[/b:2zyusnvs]

그래서 sans 설정을 위주로 연구를 해본 결과,
[b:2zyusnvs]결론 2) 플래시는 sans 폰트 패밀리의 가장 첫 폰트만을 불러온다[/b:2zyusnvs]
는 것을 확인하였습니다.

아아, 그렇다면 일본어와 한국어를 동시에 (제대로) 지원하는 폰트를 사용하면 해결되겠군요
라고 생각했지만, 불행히도 [제가 아는 바로는] 그런 폰트는 존재하지 않습니다. orz

결국
[b:2zyusnvs][u:2zyusnvs]방법 2. fontforge를 이용하여 폰트를 병합시키기[/u:2zyusnvs][/b:2zyusnvs]
에 이릅니다.

결론부터 말씀드리자면 성공은 했습니다만, 솔직히 이 방법은 별로 추천하지 않습니다.
폰트를 병합시키는 작업이 의외로 까다로울 뿐더러, 생각보다 여러가지 이슈들이 있고,
폰트 병합 한번 하는데에도 시간이 오래 걸립니다.

그런데 여기서, 저는 충격적인 사실 한가지를 발견합니다.
[i:2zyusnvs]"어째서 영어 환경에서는 멀쩡하게 표기되는거지?"[/i:2zyusnvs]
네, 그렇습니다. 영어 환경에서는 둘 다 깔끔하게 나옵니다.
그래서 저는 /etc/fonts/conf.d/의 구성을 주목하게 되었습니다.

영어 환경과 한국어 환경의 차이는
29-language-selector-ko-kr.conf
69-language-selector-ko-kr.conf
딱 이거 두가지.

하지만 29번의 내용은 spacing이나 anti-aliasing 대한 설정 뿐입니다.
그러니까 범인은 69번! 네놈이야! :evil:

그래서 그걸 기준으로 다시 들쑤셔 본 결과, 다음의 결론을 얻게 되었습니다.
[b:2zyusnvs]결론 3) match를 써서 family에 accept, 이거 건드리면 플래시에서 제대로 안나온다.[/b:2zyusnvs]

그래서 결국 다음의 방법을 실행하기에 이르릅니다.
(* 주의: 따라하지 마십시오. 모르면서 괜히 따라했다가 설정만 꼬입니다.)
[b:2zyusnvs][u:2zyusnvs]방법 3.[/u:2zyusnvs][/b:2zyusnvs]

[code:2zyusnvs]- conf.d에서 69-language-selector-ko-kr.conf 삭제

  • 40,65 nonlatin에 사용할 폰트 추가 후, 다른 폰트는 삭제
  • 사용하지 않는 폰트는 전부 패키지를 삭제[/code:2zyusnvs]
    (여기서 다른 폰트를 삭제하는 이유는 다른 alias에 원하지 않는 폰트가 걸려들 수 있기 때문입니다.
    폰트 설정을 바꾸는게 정석이겠지만, 민감한 부분을 많이 건드리는건 좋지 않기 때문에 그냥 지우는 편이 좋습니다.)

네, 이제 제대로 나옵니다.
하지만 이것도 사실은 완전하지 않습니다.
무엇보다도 X서버가 폰트를 일정하게 사용하지 않기 때문에 (필요에 따라 사용하는 폰트가 변경됨)
폰트가 타이핑 중간에 바뀌거나, 고정폭이 제대로 표시가 안되는 등의 문제가 발생합니다.

그런데, 어째서 65에서는 괜찮은데 69에서는 안되느냐, 그건 사용한 문법의 차이에서 비롯됩니다.
69에서는 match 문법을 사용하지만, 65에서는 alias 문법을 사용합니다.
효과에 차이가 있다면, 69의 방식으로 지정하면 각 폰트의 우선순위가 확실하게 나뉘지만,
65의 방식으로는 선호 하는 폰트간의 우선순위가 불분명합니다. (그 불분명함 때문에 폰트가 마음대로 바뀌는 것이죠.)

여기까지가 제가 연구해본 결과입니다.
리눅스로 완전 전향한 2년 전부터 조금씩 했는데, 명확한 해결책이 나오질 않아서 좀 답답하네요.
여튼지간에 설정 수준에서 끝날 문제가 아니니 Adobe나 fontconfig쪽에 얘기를 꺼내볼 생각입니다.

추)
폰트 설정 얘기가 나와서 말인데, 기본 설정에 대해서도 관심을 좀 가져주시기 바랍니다 ;)
이제는 정말 바꿀때가 되었지요.

플래시는… 리소스를 많이 잡아먹어서… 개인적으로 쓰지 않습니다…
요즘은… HTML5 에 적응하려… 많이 노력하고 하고 있어요…

구글이 WebM 플젝을… 시작하였더군요… ^^

저도 flashblock 설치하고 나선 아주 살거 같아요
애플이 정책적인 이유로 플래쉬를 배척하는건 꼴보기 싫지만
플래쉬가 웹상에서 필요악이라는건 부정할수가 없어요

[url:2szxbvgx]http://kldp.org/node/107108[/url:2szxbvgx]

어도비는 제발 이 문제나 먼저 고쳐줬으면 좋겠습니다…
이번 10.1rc 에도 고쳐져 있지 않더군요.
바뀐게 없어요. :evil:

[quote="nike984":27vo8hn8]저도 flashblock 설치하고 나선 아주 살거 같아요
애플이 정책적인 이유로 플래쉬를 배척하는건 꼴보기 싫지만
플래쉬가 웹상에서 필요악이라는건 부정할수가 없어요[/quote:27vo8hn8]

우리나라에선 특히 웹사이트 전체가 플래시이거나, 메뉴가 플래시라서 돌아다니려면 어쩔 수 없더군요…

근데 왜 광고는 플래시로 만드는거지 -_-;

[quote="ctrl144":3othyrrc]
근데 왜 광고는 플래시로 만드는거지 -_-;[/quote:3othyrrc]
막기 편하라고요. :oops:

플래시블록 만세!

저는 유툽을 자주 보는지라… 기본적으로 쓸데없는 플래쉬는 adblock으로 막고 씁니다. 그래도 일본어 글꼴이나 확장 한자가 박스로 나오는 건 참을 수 없더군요. 본문에 쓰신 방법을 연구해 본 적이 있는데 만족할 만한 결과가 나오지 않아 때려쳤습니다. 대신 물리적으로 글꼴을 합쳐쓰는 방법으로 해결을 봤죠. 윤고딕에 영문 글꼴 Segoe UI와 일본어 글꼴 Meiryo에서 일본어 글자와 확장 한자를 모두 병합하여 만든 글꼴을 쓰고 있습니다.

[img:f7anjobu]http://i46.tinypic.com/209n30y.jpg[/img:f7anjobu]
일본어 및 한자는 Meiryo 폰트의 것을 씁니다. 아주 잘 나옵니다.

[img:f7anjobu]http://i45.tinypic.com/2d6ldm1.jpg[/img:f7anjobu]
[img:f7anjobu]http://i50.tinypic.com/1z6qlj9.png[/img:f7anjobu]
물론 많은 분들이 불편을 토로하시는 CGV 예매 화면과 다음 view 위젯에서는 글자 아랫 부분이 좀 잘립니다. 이 문제는 플래쉬 플러그인 소스를 받아 수정해서 컴파일 하면 된다고 하던데 귀찮아서 걍 쓰고 있습니다.

이 폰트를 sans serif로 매칭해 두면 우분투에서 글꼴 때문에 문제되던 것들은 말끔히 해결됩니다.

viewtopic.php?p=56951#p56951

플래시도 플래시지만, Air 기반 프로그램에서 한글의 힌팅이 퍼져 나오는 문제도…참 골치거리죠.
Adobe 개발자들은 일할 때 참…발을 잘 씀…;;