본문으로 건너뛰기

Apple, TrueType 힌팅 인터프리터를 Swift로 재작성

Swift Package Index Update

www.swift.org

핵심 요약

  1. Apple은 신뢰할 수 없는 입력을 처리하는 TrueType 힌팅 인터프리터를 C에서 메모리 안전한 Swift로 재작성해 Apple 플랫폼의 보안 표면을 개선했다.
  2. 새 Swift 인터프리터는 기존 C 구현을 대체했으며, 평균 실행 속도가 C 구현보다 13% 빨라졌다.
  3. 재작성한 Swift TrueType 힌팅 인터프리터의 소스 코드도 공개해 비슷한 작업을 하는 개발자가 구현 경험을 참고할 수 있도록 했다.

도입

TrueType은 웹 페이지, PDF, 운영체제와 애플리케이션에서 텍스트를 렌더링하는 데 널리 쓰이는 벡터 폰트 표준이다. Helvetica, Garamond, Monaco 같은 폰트도 TrueType 윤곽선을 기반으로 한다. 저해상도 화면에서 윤곽선을 더 충실하게 래스터화하도록 돕는 힌팅 인터프리터는 폰트 파서가 신뢰할 수 없는 데이터를 처리하기 때문에 보안상 중요한 영역이다.

상세 요약

TrueType 힌팅과 인터프리터의 역할

TrueType은 웹 페이지, PDF, 운영체제, 애플리케이션에서 텍스트를 렌더링하는 데 널리 사용되는 벡터 폰트 표준이다. Helvetica, Garamond, Monaco 같은 폰트도 TrueType 윤곽선을 기반으로 한다. TrueType 형식에는 윤곽선이 저해상도 화면에서도 충실하게 래스터화되도록 돕는 힌팅 인터프리터가 포함된다.

고해상도 화면에서는 힌팅 없이도 윤곽선만으로 선명한 타이포그래피를 구현할 수 있다. 하지만 가독성을 위해 힌팅이 필요한 TrueType 폰트가 계속 사용되고 있어 Apple은 해당 형식을 지원하고 있다.

C에서 Swift로 재작성

폰트 파서는 신뢰할 수 없는 출처의 데이터를 처리한다. 따라서 TrueType 힌팅 인터프리터는 보안상 중요한 공격 표면이 된다. Apple은 Apple 플랫폼에서 형식의 안전성을 높이기 위해 인터프리터를 C에서 메모리 안전한 Swift로 다시 작성했다. 새 구현은 2025년 가을 릴리스를 대상으로 했다.

재작성의 결과는 메모리 안전성에만 그치지 않았다. Apple이 공개한 성능 비교에서 Swift 인터프리터는 대체된 C 인터프리터보다 평균 13% 빠르게 실행됐다. 원문은 평균값을 제시하지만, 측정 환경이나 개별 작업별 성능 수치는 밝히지 않는다.

소스 코드 공개

Apple은 글과 함께 Swift로 작성한 TrueType 힌팅 인터프리터의 소스 코드도 공개했다. 공개 목적은 유사한 작업을 Swift로 진행하는 사람들이 Apple의 경험을 참고하도록 하는 것이다. 제공된 내용에는 인터프리터의 구체적인 내부 구조나 마이그레이션 단계는 포함되지 않는다.

요약하면 이번 작업은 기존 C 인터프리터를 Swift로 교체하면서 메모리 안전성을 적용하고, 평균 실행 속도에서도 13% 개선을 기록한 사례다. Apple은 대상 릴리스 시점과 성능 결과를 알렸으며 구현 소스도 공개했다.

결론

Apple은 기존 C 기반 힌팅 인터프리터를 Swift로 재작성해 메모리 안전성을 확보하는 동시에 평균 실행 속도를 13% 높였다고 밝혔다. 이 구현은 2025년 가을 릴리스를 위해 준비됐으며, 소스 코드도 공개됐다. 이 사례의 핵심은 보안에 민감한 폰트 처리 코드의 언어를 바꾸면서 성능 저하가 아니라 개선을 보고했다는 점과, 실제 구현을 외부 개발자가 확인할 수 있도록 공유했다는 점이다.