Jetbrains 시리즈 2021.2 업그레이드 후 폰트 렌더링 문제 (IntelliJ, PyCharm, Webstorm, Goland)

Cover image: Jetbrains

최근 IntelliJ 시리즈가 야심차게 2021년 두번째 판올림인 2021.2 버전을 공개하면서 새로운 피쳐들이 많이 추가되어 업그레이드 하신 분들이 많을 것 같습니다.

특히 저에게 눈에 띄는 변경점들은

  • Gradle dependency view: 그래들 의존성을 좀 더 쉽게 눈으로 볼 수 있게 되었습니다
  • Diagrams structure view: 이제 클래스 간 의존성들을 바로 쉽게 확인할 수 있게 되었습니다.
  • Kotlin ML 자동완성: 전 업데이트에서 강력한 기능 중 하나였던 ML을 이용한 자동완성 학습 기능을 드디어 코틀린에서도 사용할 수 있게 되었습니다.
  • Scala 3, Python 2.10 서포트

하지만 기대하던 것과는 다르게 업그레이드를 하자마자 민감하신 분들은 폰트 렌더링 방식이 안 좋은 방향으로 눈에 띄게 변경된 것을 경험하셨을 것 같은데요. 저도 아래처럼 이전 버전과 최신 버전의 폰트 렌더링이 현격하게 다르고, 특히 에디터 영역에서 같은 설정인데도 가독성이 아주 낮아지는 문제가 있었습니다. 최신 버전에서 추가된 기능이 많아 하루 정도 참고 써보려고 했는데 눈이 너무 어파서 한 시간도 안되어 롤백하게 되었어요. 제가 경험했던 문제들은 아래와 같은 문제들이었습니다.

  • 폰트의 윤곽선이 흐리고 뚜렷하지 않게 렌더링 됨
  • 글자의 자간이 이전 버전보다 넓어짐

답답한 마음에 비슷한 문제를 겪는 사용자들이 없는지 찾아보니 이미 많은 분들이 Jetbrains Youtrack(이슈 트래커)에서 비슷한 논의가 이루어지고 있었습니다.

Jetbrain 측에서는 이번에 Jetbrains Runtime (Jetbrains 자바 런타임) 버전이 올라가면서 기존에 잘못 돼 있던 폰트 렌더링을 고친 것이라고 설명했는데요, 오히려 퀄리티가 떨어지면서 많은 논의와 갑론을박이 오갔습니다.

한동한 딱히 뾰족한 수가 없었는데, Jetbrain 측에서 JVM Option에 아래 옵션을 추가하는 workaround로 해결할 수 있다고 합니다. 저도 아래 옵션을 적용하고 재시작하니 이전 버전과 동일한 렌더링으로 돌아왔네요 😃

-Djava2d.font.subpixelResolution=1x1

참고로 JVM 옵션은 다음과 같은 방법으로 추가할 수 있습니다. Jetbrains 에디터를 여러개 사용하신다면 각 에디터별로 옵션을 추가해 주셔야 합니다.

P.S 제가 Java 계열의 UI와 관련된 지식은 부족해서 위 옵션에 대해 잘 아시는 분이 있다면 댓글로 알려주시면 감사하겠습니다.