늘모자란, 개발 :: CJK 도표의 상자는 번역 뒤에 다시 계산해야 한다

늘모자란, 개발

한국어·중국어·일본어 라벨을 포함하는 기술 도표 생성 규칙에는 번역 다음 단계가 하나 더 필요하다. 최종 글꼴에서 라벨이 차지할 폭을 다시 계산하는 일이다. 문장이 정확해도 이 단계를 빼면 글자가 상자 밖으로 밀리고 줄바꿈 위치가 달라질 수 있다.

같은 다섯 글자인 상태:정상과 상태:정상의 렌더 폭을 비교한 도표
문자 수가 같아도 반각·전각 구두점에 따라 실제 렌더 폭은 달라진다.

번역 완료 뒤 시작되는 계산

‘상태:정상’과 ‘상태:정상’은 둘 다 다섯 글자다. 그러나 반각 콜론과 전각 콜론은 화면에서 같은 폭을 차지하지 않는다. 문자열 길이만으로 상자를 만들면 저장된 문자 수는 맞아도 실제 라벨 폭은 틀릴 수 있다. 문자권에 맞지 않는 대체 글꼴이 선택되면 같은 문제는 더 커진다.

가져올 규칙도 폭을 줄였다

검토한 변경 묶음에서는 외부 글꼴 파일과 템플릿, 릴리스 자동화까지 통째로 가져오지 않았다. 실행 환경에 이미 있는 CJK 글꼴을 문자권에 맞게 선택하는 규칙과 전각 구두점의 폭을 별도로 잡는 부분만 반영했다. 글꼴 묶음을 함께 배포하면 당장은 편하지만 라이선스, 배포 크기, 실행 환경 차이라는 새 문제가 따라오기 때문이다.

마지막 판정은 픽셀에서 한다

문자열 길이는 저장된 문자의 개수일 뿐 레이아웃 측정값이 아니다. 도표 상자는 가능하면 최종 글꼴로 렌더 폭을 확인해야 한다. 그 계산을 할 수 없다면 적어도 전각 구두점과 CJK 문자를 영문 반각 문자와 같은 폭으로 취급하지 않는 보수적인 예산이 필요하다.

규칙 묶음의 동작 테스트 9개는 통과했다. 그래도 모든 글꼴과 언어 조합의 출력이 안전하다는 뜻은 아니다. 설정 파일이 맞다고 끝내지 말고 실제로 그린 결과에서 글리프 누락, 잘림, 겹침을 확인해야 한다.

2026/09/07 14:51 2026/09/07 14:51