성능
- 완성형 한글 판정과 초·중·종성 분해를 공통 저수준 함수로 합쳐 속성 조회, 문자열 분해, 표준 발음과 로마자 표기의 중복 Unicode 계산을 제거했습니다.
- 조사 선택의 일반 NFC 경로에서는 문자열 정규화와 Unicode category 탐색을 건너뛰며, 종성을 한 번만 계산합니다. 숫자 독음 결과는 최대 256개까지 캐시합니다.
- Windows, CPython 3.11의 로컬 마이크로벤치마크에서
josa_pick은 약 59만에서 277만 ops/s,josa는 약 57만에서 254만 ops/s,has_batchim은 약 64만에서 334만 ops/s로 개선됐습니다. 런타임과 장비에 따라 결과는 달라집니다. python scripts/benchmark_josa.py로 같은 정적 한글 입력을 반복해 현재 환경의 결과를 확인할 수 있습니다.
새 API와 호환성
can_be_jungsung()을 추가했습니다.ㅘ와 분해된ㅗㅏ를 모두 허용합니다.can_be_jongsung()이ㄳ와 분해된ㄱㅅ을 모두 허용합니다.- 문자열 전체에서 자모를 모으는
extract_chosung(),extract_jungsung(),extract_jongsung()을 추가했습니다. 기존get_*함수는 한 음절 속성 API로 그대로 유지됩니다. - 영문 대문자 약어의 한국어 독음을 이용해
RAM은,URL로,API가처럼 조사를 고릅니다. standardize_pronunciation(..., hard_conversion=False)로 된소리되기를 끌 수 있습니다.explain=True와 함께 사용할 수 있습니다.
정확성과 검증
숱하다 → 수타다,옷한벌 → 오탄벌,학여울 → 항녀울,서울역 → 서울력을 호환 회귀 사례로 추가했고서울역의 ㄹ 첨가를 수정했습니다.- NFC, NFD, compatibility Jamo, 합성·분해 겹자모, 공백과 비한글 보존, 약어와 문장부호를 테스트합니다.
Python 호환성
- Python 3.14를 완전 지원 범위에 추가하고 필수 CI 테스트 대상으로 지정했습니다.
- Python 3.15 프리릴리스는 별도의 실패 허용 CI에서 선행 검증합니다. 정식 출시 전까지는 PyPI의 공식 지원 버전으로 표시하지 않습니다.
- v1.4.x의 최소 버전은 Python 3.8로 유지합니다. v1.5부터 Python 3.11 이상으로 변경하는 이유와 이전 환경의 설치 방법은 v1.5 마이그레이션에 정리했습니다.