fedora 32 chrome 에서 한글 자음 모음 분리되어 출력되는 문제

Hyun의 이미지

첨부 그림과 같이 chrome 브라우저에서 한글 자음, 모음이 분리되어 출력되고 있습니다.
최근 Fedora 31 에서 32 로 업그레이드를 했는데, 그 이후 증상이 보이고 있습니다.
Firefox 에서는 관련 증상이 보이지 않고, gvim, gedit 등에서도 그런 증상이 보이지 않습니다.
혹시, 어떻게 디버깅해야 할까요? 어디에 버그 리포트를 해야할까요?

text 는 다음과 같습니다.

[hyun@its-free public_html]$ cat test.html
<title>가나다라마바사</title>
감나와라뚝딱<br>
가감나와라뚝딱<br>
가나다라마바사<br>
<input type="text" value="가나다라마바사"><br>
가나다라 마바사<br>
<input type="text" value="가나다라 마바사"><br>
가나다 라마바사<br>
<input type="text" value="가나다 라마바사">
[hyun@its-free public_html]$ 

File attachments: 
첨부파일 크기
Image icon Untitled.png155.8 KB
익명 사용자의 이미지

사용하시는 입력기가 뭔가요?

Hyun의 이미지

입력기는 "IBusHangle" 을 쓰고 있는듯 보입니다만, 입력기의 문제가 아닌거 같습니다.
youtube 혹은 다른 웹페이지에서도 그런 증상이 보입니다. 브라우저 등의 한글 렌더링 문제로 보입니다..
이런 증상은 처음봐서 상당히 당황스럽네요..


나도 세벌식을 씁니다
익명 사용자의 이미지

ibus 를 사용하지 마시고 다른 입력기를 사용하시면 문제가 해결될 것으로 보입니다. 다른 입력기를 사용하려면 ibus 를 삭제해야 합니다. 그렇지 않으면 다른 입력기를 위한 환경 변수를 설정해도 설정이 적용되지 않고 ibus 가 사용되는 버그가 있습니다.
게다가 XIM 으로 ibus가 설정되어 있고 GTK_IM_MODULE 는 다른 입력기로 설정되면 말씀하신 위 현상이 발생합니다. 저 문제는 ibus 설계 불량으로 인한 버그와 chromium 의 XIM 입력 부분에 버그로 인하여 발생합니다.

익명 사용자의 이미지

지금보니까 제 설명에 오류가 있네요. 죄송합니다.
크로미엄이 gtk 입력 모듈을 사용하여 입력을 하면 문제가 발생되지 않는데 xim 으로 입력하면 그런 문제가 발생합니다. GTK_IM_MODULE 이 설정되어 있지 않거나
GTK_IM_MODULE=xim 이렇게 설정되어 있으면 그런 문제가 발생합니다.

익명 사용자의 이미지

아래 환경에서

FreeBSD 12.1-RELEASE-p3 FreeBSD 12.1-RELEASE-p3 GENERIC amd64
Version 81.0.4044.129 (Official Build) (64-bit)

GTK_IM_MODULE 환경 변수를 다르게 지정하여 각각 테스트해봤는데

GTK_IM_MODULE=xim
GTK_IM_MODULE=자작입력기

입력에 문제가 없었습니다. 크롬(크로미엄)에서 xim 으로 입력할 때, 수년전에 있던 버그는 해결된 것으로 보입니다.
말씀하신 버그는 ibus 버그 같습니다.

korean: emitting a space in an incorrect order when typing the last char with X11 applications
https://github.com/ibus/ibus/issues/1847

아마 ibus 를 삭제하고 다른 입력기를 사용하시면 문제가 해결될 것으로 보입니다.
수고하세요~~

파이썬3의 이미지

페도라쪽에 버그보고서를 제출하시면 그쪽 담당자께서
정리해서 업스트림(크롬 프로젝트)쪽으로 포워딩해줄거 같아요...

좀 더 테스트해보고 구글 크롬의 문제가 확실하다는 확신이 들때에,,,
- 운영체제/배포판 환경(자세히...)
- 구글 크롬 판번호(억수로 자세히...)
- 사용하신 입력기 정보(자세히...)

그리고 어떤 동작을 취했다... (허블나게 속 천불날정도로 자세히...)
그래서 어떤 이상한 현상이 발생했다 등등을...
정리해서 페도라팀에 보고서를 제출해봅니다.

경우에 따라 이런 피드백도 받습니다 (아주 가끔요)
"아 그거요 그 얼마전에 문제점 패치해서 새판 출시 했어요~ 새 판 쓰세요~~~"

그러합니다... 그냥 적어보네요;;;

[우분투 18.04 파여폭스 나비에서 적었어요~]

익명 사용자의 이미지

버그 보고해도 소용없을 겁니다. 아마 ibus를 페도라를 만든 회사인 레드햇에서 만들은 거 같습니다. Gnome에 많은 기여를 하는 회사가 레드햇이고 Gnome에 ibus 가 통합되어 있습니다. ibus 문제는 포기하고 다른 입력기를 사용하시는게 답입니다. 해당 크로미엄 버그는 이미 오래전에 리포트가 된 걸로 알고 있고 그 문제를 피해가려면 GTK_IM_MODULE=uim 이런식으로 다른 입력기가 사용되도록 설정하면 피할 수 있습니다. 그러나 페도라는 그렇게 설정해도 잘 안 먹힐거에요.

세벌의 이미지

서로 자기 문제 아니라고 주장하다가 소통하면서 해결책을 찾아갈 거 같은데요?

리눅스에서 한글이 가끔 이상하게 입력되는 문제는 잊을 만 하면 나타나네요...

익명 사용자의 이미지

ibus 버그가 확실한데, ibus 측에서는 자기네 버그 아니라고 발뺌했었습니다. 2015년 제가 상세 버그 리프트를 제출하기 전까지 말이죠.
https://github.com/ibus/ibus/issues/1282
그 버그가 아직까지도 해결이 되지 않은 상태입니다.
과거 MS윈도우가 인터넷익스플로러를 끼어파는게 많은 비판을 받았는데,
마찬가지 행태가 오픈소스 세계에서도 일어납니다.
저 문제는 버그 리포트하고 패치를 제공해도 해결될 수 없는 문제라는 걸 이미 과거에 깨달았습니다.
리눅스 한글 문제는 각 오픈소스 프로젝트 주체들의 이해관계 때문에 해결이 되지 않는 것이라(앞으로도 해결되지 않을 것이라) 저는 그렇게 판단하고 있습니다.
그래서 dasom(nimf)를 만들게 된 거죠.
https://cogniti-works.blogspot.com/2018/07/nimf-1.html

Hyun의 이미지

입력기 문제로 comment 가 계속 달리는데,,, 입력기 문제가 아닌듯 합니다. 제가 만들지 않은 다른 웹페이지에서도 그런 증상이 보입니다.
다음 첨부와 같이 "가격비교" 가 "가ㄱㅕㄱㅂㅣ" 와 같이 출력됩니다.
이건 한글 입력기가 아닌 한글 렌더링 쪽 문제 아닌가요?

댓글 첨부 파일: 
첨부파일 크기
Image icon Untitled2.png83.35 KB

나도 세벌식을 씁니다
익명 사용자의 이미지

렌더링 문제가 아니라 입력기 문제가 맞을 겁니다. ibus 를 삭제하시고 nimf 를 설치하시면 어느게 버그인지 확실하게 알 수 있습니다. 렌더링이라는게 뭐냐면, 폰트 파일에 glyph 라는게 있고 그게 좌표, 베지어 곡선 등으로 이루어져 있습니다. 그걸 LCD 화면 픽셀에 맞게 그려주는데 그걸 래스터라이징이라고 합니다. 그래서 렌더링 문제가 아닙니다. 간혹 droid 라는 폰트에 문제 있어서 그런 문제가 발생하기도 하는데, 위 그림은 그런 문제가 아니고, 위 버그는 ibus 를 사용하면 겪는 여러 버그 중의 하나입니다.

chahoolee의 이미지

한글 입력은 하지도 않았는데 무슨 무턱대고 ibus 버그인지.

익명 사용자의 이미지

아... 저는 맨위에 글을 잘못 이해했습니다.

[hyun@its-free public_html]$ cat test.html
<title>가나다라마바사</title>
감나와라뚝딱<br>
가감나와라뚝딱<br>
가나다라마바사<br>
<input type="text" value="가나다라마바사"><br>
가나다라 마바사<br>
<input type="text" value="가나다라 마바사"><br>
가나다 라마바사<br>
<input type="text" value="가나다 라마바사">

를 입력을 정확히 했는데 글자가 뒤바뀌고, 띄어쓰기를 하지 않았는데 띄어쓰기가 되었다는 걸로 오해했습니다. ㅎㅎ
그래서 Droid Sans Fallback 폰트 문제라고 스크릿샷도 넣고 재설명하였습니다.
Droid Sans Fallback 를 fontforge 로 열어봤는데, "속(c18d)" 등의 여러 한글 글리프가 없었습니다. gsub, gpos 등의 정보도 없던거 같던데, https://github.com/fonttools/fonttools 로 정보를 뽑아보면 뭐가 문제인지 파악이 가능하겠지만, google-droid-sans-fonts 패키지를 삭제하시면 문제가 해결될거에요. 수고하세요~~
cogniti3의 이미지

제가 원글을 잘못 이해했고, ibus 에 글자 순서 바뀌는 버그, 띄어쓰기 버그가 있었기 때문에 오해했습니다. 그래서 스크린샷 남겨서 상세 설명을 드렸습니다.
https://kldp.org/comment/636319#comment-636319
애꿎게 ibus 욕해서 죄송합니다.
Droid Sans Fallback 폰트는 일반적인 폰트랑은 다른 폰트입니다. ttx 로 폰트 데이터를 뽑아볼 필요는 없을 거 같고, google-droid-sans-fonts 패키지를 삭제하시면 문제가 해결될 겁니다. 감사합니다.

파이썬3의 이미지

쓰시는 글꼴(서체)도 포함시켜봅니다... 모든 가능성을 열어두는게 좋을거 같아요~

꾸벅,,,

[크롬북에서 적었어요~]

Hyun의 이미지

폰트 바꿔보니 정상 출력되는게 있긴 한데요,,,
혹시 어떤 폰트 파일이 문제를 일으켰는지 확인할 방법 있을까요?

댓글 첨부 파일: 
첨부파일 크기
Image icon Untitled3.png82.8 KB

나도 세벌식을 씁니다
익명 사용자의 이미지

Droid Sans Fallback 이라는 폰트에 한글 버그가 있는 것으로 알고 있습니다.

https://github.com/Dailyscat/Issue-Archive/blob/master/1909%20Linux%EC%97%90%EC%84%9C%20VScode%20%ED%95%9C%EA%B8%80%20%EA%B9%A8%EC%A7%90%20%EC%97%90%EB%9F%AC.md

libreoffice 에서 그 폰트를 지정하고 글을 써보면 글자가 이상하게 나올 겁니다. 같은 글에 다른 폰트를 지정하면 정상으로 나올 거고요... 아직도 그 버그가 그대로인지는 모르겠네요. 이거는 한글 입력 버그나 렌더링 버그가 아닌 그냥 폰트 버그로 추정됩니다.

익명 사용자의 이미지

https://koji.fedoraproject.org/koji/buildinfo?buildID=1472696
google-droid-sans-fonts-20200215-3.fc32.noarch.rpm 파일 압축 풀면
DroidSansFallbackFull.ttf 파일이 있습니다. DroidSansFallbackFull.ttf 파일만 설치해서 libreoffice 로 테스트해보니 폰트 버그 같네요.
한글 글자는 똑같이 "가속도"입니다. 그게 폰트에 따라서 다르게 나옵니다.

따라서 google-droid-sans-fonts 패키지를 삭제하시면 문제가 해결될 거 같네요

댓글 첨부 파일: 
첨부파일 크기
Image icon droid-sans-fallback-full.png39.8 KB
익명 사용자의 이미지

일반적인 리눅스 데스크탑에서는 이 폰트를 쓰면 안 됩니다.

버그라고 해야 되나 기능이라고 해야 되나. 처음에는 DroidSansFallback이 Android에서 맨 처음에 쓰이는 한글 폰트였고 한글 글리프가 다 있었는데요. 나눔고딕 폰트를 디폴트로 사용하기 시작하면서 사이즈가 큰 한글 음절 부분을 지워버렸습니다. 그걸 가져다가 한글 폰트로 쓰려니 이상하죠.

Yi Soo An@Google의 이미지

조금 번거로우시겠지만 KDE 판을 가상머신에서 설치하시고 똑같은 문제가 발생하는지 확인해보시는게 좋을거 같네요. 똑같으면 크롬 업스트림에 리포팅하시면 될거 같습니다.

---------------
Happy Hacking!

익명 사용자의 이미지

입력기 얘기는 할 필요가 없어보이구요. 원본 HTML 파일이 없어서 확실히 모르겠는데 한글을 음절 코드로 안 쓰신 것 같습니다.

폰트마다 다르다면 문제되는 폰트에 자모 코드가 들어왔을 때 음절 코드로 바꿔주는 GSUB feature가 없을 겁니다. 그런데 Noto Sans CJK 등 몇 폰트 빼고는 거의 구현이 않되어 있어요. 이걸 브라우저에서 음절 코드로 먼저 바꾸는 렌더링이 있고 폰트에 맡겨버리는 렌더링이 있는데 크로미움에서는 후자여서 그러는 게 아닐까요.

익명 사용자의 이미지

fontforge 로 폰트 파일을 열어봤는데, "속", "도"에 해당하는 글리프가 들어있지 않았습니다. "가" 글리프는 들어있습니다. 폰트 버그입니다.

세벌의 이미지

https://kldp.org/comment/636317#comment-636317

입력기 문제도 아니고, 브라우저 문제도 아니고 글꼴 문제인가 봅니다.

파이썬3의 이미지

UTF-8 시대인고로 전 구글 노토를 씁니다. 우분투 18.04 LTS 에서요.
우분투/안드로이드/크롬OS 기본 서체이기도 합니다.
개인적으로 이맥스에다가 이 구글 노토를 기본 서체로 강제 지정해서 쓰고있어요.

요즘은 UTF-8 로 다 보내기에 UTF-8 을 가장 잘 표현해주는 서체를 아무리 찾아봐도 없더군요.
유일하게 안정적으로 쓸 수 있는 서체가 구글 노토였구요 더 좋은 서체가 나올때까지는 계속 이 서체를 쓸거 같아요.

구글 노토에 대법원 사전에서 포함되지 못한 한자 47자 목록은 여기 [1] 에다 정리해두었어요.
(47자 목록을 찾는데 밑바닥 작업을 해주신 그놈 개발자 성대현님께 감사드립니다.)

파이썬3 드림

[1] https://forum.ubuntu-kr.org/viewtopic.php?f=9&t=30174&start=10#p129309

[우분투 18.04 파여폭스 나비에서 적었어요~]

Hyun의 이미지

https://bugzilla.redhat.com/show_bug.cgi?id=1833858
패키지 정보에 있는 버그 리포트 주소로 버그 리포트를 했는데, 관심 없을줄 았았는데 바로 답글이 달리네요,,


나도 세벌식을 씁니다
익명 사용자의 이미지

저는 오픈소스 안티 활동 사람인데 Hyun님과 열정적으로 버그 신경 써 주시는 분들을 보면 안티 활동에 회의감을 느낍니다. 아마 fontconfig 설정으로 커버가 될 겁니다. 저 문제는 배포판측에서 해결해야 할 문제로 보이고 버그 보고 잘 하셨습니다. 고맙습니다.

익명 사용자의 이미지

https://android.googlesource.com/platform/frameworks/base.git/+/562c45cc841681ed80d4e94515b23c28eb60eae4

> removes the Korean Hangul because we are now going to use NanumGothic for Korean

Hyun의 이미지

근데, ttf 폰트 파일은 git 에도 binary 로 올라오던데,, 따로 개발하는 툴이 있는건가요? 프로그램 처럼 소스코드가 있는것도 아닐텐데,,,


나도 세벌식을 씁니다
익명 사용자의 이미지

개발툴이 따로 있고요, .c처럼 정해진 폰트 소스코드라는게 있지는 않아요.

익명 사용자의 이미지

소프트웨어처럼은 아니지만 폰트 소스코드도 있고 빌드도 합니다. 하지만 빌드에 쓰는 툴이 일반적인 툴이 아니고 상용인 경우도 많고 보통 빌드할 필요가 없기 때문에 바이너리만 배포하는 거겠죠.

익명 사용자의 이미지

그런데 그 폰트소스라는게 .c처럼 딱히 정해져 있지 않습니다. fontforge는 .sfd 라는게 있고, ttx 는 xml 을 사용하고 그리고 상용툴은 또다른 포맷이 있습니다. 그리고, 좌표와 베지어커브를 저장한 파일을 자작 스크립트를 이용하여 ttf 를 만들기도 합니다.
그냥 ttf 파일에는 좌표와 베지어커브, 인스트럭션 등 모든 정보가 들어 있기 때문에 단순하게 생각하면 ttf 파일 자체를 소스코드로 간주할 수 있습니다.

세벌의 이미지

https://fontforge.org/en-US/
도움 될 거 같아요. 폰트 파일 만드는 도구요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.