본문 바로가기

macOS Safari에서 타이핑이 심각하게 느려지는 문제

기술적인 이야기/맥 2020. 2. 22.
반응형

어느 날부터 맥(macOS)의 사파리(Safari) 웹 브라우저에서 글자를 타이핑하면 버벅거리는 일명 렉(lag) 현상이 나타났습니다. 사파리는 크롬을 견제하려고 일부러 자주 사용하는 브라우저인데 이 문제 때문에 상당히 곤란해서 크롬을 쓸 정도였습니다. 이 글은 이 문제를 해결하는 삽질기를 정리하고 있습니다.

문제

딱히 내용과는 관계 없는 이미지

정확한 증상은 사파리 내부 웹킷에 표시되는 웹 페이지의 텍스트 필드에서만 발생합니다. 여기에 한글이든 영문이든 관계없이 텍스트를 입력하면 1~2글자 정도까진 괜찮다가 더 치기 시작하면 버벅거리며 멈추고 잠시 후 렉이 풀립니다. 그리고 입력을 시작하면 또 렉이 발생합니다. 거기다 타이핑이 길어질수록 렉이 더욱 심해집니다.

하지만 사파리의 주소표시줄에서 글자를 입력할 때는 이런 현상이 없습니다. 그냥 잘 됩니다.

그리고 다른 앱들도 별 문제없었습니다. 유독 사파리 내부에서만 이런 현상이 나타났습니다.

삽질

이 문제를 해결하기 위해 별의별 짓을 다 해 봤습니다. 사파리의 캐시를 다 날리거나 탭을 초기화시키는 것은 도움이 안 되었습니다. 세이프 모드 부팅도 의미가 없었고, PRAM, SMC 소거 등도 무의미했습니다. 사파리에 띄워둔 보물(?) 같은 탭들을 몽땅 다 날려먹었음에도 해결이 되지 않아 좀 화가 나기도 했었지요.

하여간 위의 조치들로는 해결은 안 되었습니다. 이렇게 제법 시간이 흐르고 크롬을 주력으로 사용하는 사태까지 오고야 맙니다.

그러다 이제부터 살짝 반전이 시작됩니다.

지푸라기라도 잡는 심정으로 활성 상태 보기(Activity Monitor) 앱을 띄워놓고 해당 증상을 재현해 봤습니다. 특이하게도 위 증상을 발생시키면 ReportCrash 라는 프로세스가 상위에 갑자기 나타나기 시작했습니다. 비슷하게 터미널에서 top으로 확인해도 동일한 이름의 프로세스가 나타났습니다.

ReportCrash라는 힌트를 하나 얻었습니다. 이름만 봐서는 뭔가가 죽었을 때 기록 남기는 그 창을 띄우는 녀석(?) 같네요. 근데 왜 아무 창도 안 뜨는지는 잘 모르겠네요. 어쨌든 사파리 내부에서 타이핑을 하면 뭔가가 죽는다는 심증이 듭니다.

이제 다음 단계로 나아가기 위해 더 정확한 정보가 필요합니다. 힌트가 될까 싶어 Console.app을 열어 봤더니 ReportCrash의 로그가 남아 있었습니다. 아래와 같은 내용으로 말이지요.

당시 Console.app의 상황을 캡쳐한 내용

Parsing corpse data for process OpenSpell [pid 1150]

시체 데이터를 파싱한다? 이게 뭔 소리야 검색해봐도 별 이야기가 없습니다. 아아 포기해야 할까요?

그러다 OpenSpell의 'Spell'이라는 이름에 갑자기 눈길이 갔습니다. Spell이라면 마법 주문? 그럴리는 없겠죠. 혹시 문법 체크? 오타는 misspell이라고 쓰지요.

즉 위 메시지는 문법 체크 기능과 깊게 관련되어 있다고 보였습니다.

제 맥은 Emacs에서 한글 맞춤법을 사용해 보려고 hunspell을 설치하고 한국어 사전도 별도로 다운로드 받아서 설치해 둔 상태입니다. 다만 꽤 오래전에 설치한 상태였습니다. 혹시 이 별도로 설치한 사전의 문제일까요? 그런데 예전에는 잘 돌아가다 왜 갑자기 문제가 생기는 걸까요?

별도로 설치해 둔 hunspell 한국어 사전 파일과 링크

약간 특별한 점이 있다면 위 스크린숏의 링크가 걸린 ko_KR이라는 이름으로 시작하는 링크가 있다는 점입니다. 원래 한국어 사전의 파일 이름은 ko이지만, 이를 확실한 로케일 명으로 표시하기 위해서 ko_KR이라는 이름으로 링크를 걸어 놓았었지요.

하여간 뭔가 이상합니다. 왜냐하면 macOS 시스템 환경설정(Preferences)에서 맞춤법 자동 수정 기능을 다 꺼 둔 상태였기 때문입니다. 따라서 한국어 사전이 있든 링크가 걸렸든 문제는 없어야 하는 것이 아닐까요?

반응형

해결

그래도 혹시나 하는 마음에 시스템 환경 설정 - 키보드 - 테스트 탭에서 맞춤법에 쓰는 사전을 '자동' 대신 'U.S. English'로 변경했습니다. 제가 별도로 설치하고 링크를 건 사전은 한국어판이니 영문판으로 바꿔서 해결이 된다면 결국 한국어 사전이 문제의 원인이 되겠지요.

맞춤법 자동 수정을 끄고 사전을 미국 영어로 설정한 키보드 환경 설정 화면

그런데...

이후 더 이상 해당 문제가 재현이 안 됩니다. 사파리에서 글자를 한글이든 영문이든 마음껏 입력해도 느려지거나 하지 않았습니다.

타이핑할 때 ReportCrash가 더 이상 뜨지 않았습니다. Console.app에도 로그가 더 이상 남지 않았습니다.

원인을 발견했고 처리했습니다.

아이고 두야.😫 아니 기뻐해야 하는 게 맞겠죠?😭

728x90

왜 갑자기 문제가 나타났을까?

오래전에 설치해 둔 사전이 왜 이제야 문제가 된 것일까요?

사실 이전에는 macOS의 언어를 영어 상위 즉 영어를 기본 언어로 쓰던 상태였습니다. 개발자다 보니 오류 메시지를 한글보다는 영어로 읽는 것이 더 익숙하고 편하기 때문에 영문 상위로 쓰고 있었지요.

그런데 영문 상위 설정은 사파리에도 적용되어서 다국어를 지원하는 사이트에서 영어가 표시되는 단점이 있었습니다. 이 단점이 최근 불편하게 느껴져서 macOS의 언어를 다시 한국어 상위로 변경했습니다.

좌측에 한국어가 영어보다 상위로 설정된 모습이 보입니다

아마도 이 시점과 사파리에서 해당 문제가 나타난 시점이 비슷한 것 같습니다.

문제를 해결했지만 이제 macOS에서 한국어 맞춤법 기능은 못 쓰겠네요? 근데 어차피 미약한 맞춤법 검사기였기에 끄고 살아도 관계는 없을 듯합니다. 나중에 맥 한국어 맞춤법 검사기가 좋아지면 그때 다시 켜 보고 시험해봐야겠습니다.😏

결론

  • 사파리의 웹킷은 맞춤법 자동수정을 꺼놔도 맞춤법 체크를 하는 듯.
  • 특징이라기 보단 버그일지도 모름.
  • 커스텀 사전 혹은 이 사전을 링크로 같은 걸 두 벌 넣어놓으면 맞춤법 검사기가 지랄하는 걸지도 모름.
  • 맥에 무리갈까봐 무서워서 더 이상 테스트 못 하겠음.
  • 이후 ko_KR 이름으로 만들어둔 링크를 삭제함.
728x90
반응형

댓글