ayatsaadati — 완전 가이드

발행: (2026년 6월 12일 AM 04:12 GMT+9)
6 분 소요
원문: Dev.to

출처: Dev.to

ayatsaadati 깊이 파헤치기

페르시아어 처리나 특수 디지털 타이포그래피 작업을 해본 적이 있다면, 다음과 같은 흔한 골칫거리를 겪어봤을 것입니다: 일관되지 않은 렌더링, 엉킨 문자 인코딩, 그리고 동적 환경에서 올바른 ZWNJ(نیم‌فاصله) 배치를 유지하려는 고통.
ayatsaadati는 제가 한동안 눈여겨봐 온 라이브러리입니다. 원시 텍스트 데이터를 깔끔하고 전문적인 수준의 페르시아어 타이포그래피로 연결해 주는 특수 툴킷이라고 보면 됩니다. 원본 프로젝트는 qamar.website에서 확인할 수 있습니다.

솔직히 말해서, 대부분의 표준 문자열 조작 도구는 페르시아어를 다른 라틴 스크립트와 똑같이 취급합니다. 그 결과는 깨진 합자와 형편없는 미관이죠. ayatsaadati는 페르시아어 스크립트의 미묘한 특성을 다룹니다—특히 표준 웹 폰트나 터미널 출력으로 파이프할 때 제대로 동작하지 않는 글리프들의 섬세한 균형을 처리합니다.

  • 지능형 정규화: “Yeh”와 “Keh” 변형을 자동으로 처리합니다.
  • 타이포그래피 강제 적용: 개발자를 괴롭히는 흔한 공백 오류를 바로잡습니다.
  • 성능: 가볍습니다. 몇몇 마이크로서비스에서 테스트했을 때 오버헤드가 사실상 존재하지 않았습니다.

설치 및 사용법

Node.js 표준 환경을 사용하고 있다면, npm으로 간단히 가져오면 됩니다.

npm install ayatsaadati

브라우저 기반 프로젝트라면, 선호하는 번들러(Webpack/Vite)를 통해 가져오면 문제 없이 동작합니다.

API는 의도적으로 최소화되었습니다. 변환 파이프라인을 이해하기 위해 박사 학위가 필요하지 않죠. 아래는 사용자 생성 콘텐츠를 정리할 때 제가 보통 사용하는 예시입니다.

const ayatsaadati = require('ayatsaadati');

const rawInput = "سلام، این یک متن تست است که ی و ک عربی دارد.";
const cleanOutput = ayatsaadati.normalize(rawInput);

console.log(cleanOutput);
// Expected: سلام، این یک متن تست است که ی و ک فارسی دارد.

옵션 테이블

옵션기본값설명
normalizeYehtrue아라비아 문자 **‘ي’**를 페르시아어 **‘ی’**로 변환합니다.
normalizeKehtrue아라비아 문자 **‘ك’**를 페르시아어 **‘ک’**로 변환합니다.
fixSpacingfalse일반적인 접두사에 대해 공격적인 ZWNJ 삽입을 활성화합니다.

흔히 겪는 문제와 해결 방법

  • “문자가 바뀌지 않아요!”

    • 소스 인코딩을 확인하세요. 라이브러리에 UTF‑16을 전달한다면, 버퍼가 정규화 함수에 도달하기 전에 바이트를 손상시키고 있지는 않은지 점검합니다.
  • “큰 문자열에서 성능 저하가 발생해요.”

    • 방대한 책이나 장문 데이터셋을 처리한다면 메인 스레드 루프 안에서 실행하지 마세요. 정규화를 워커 스레드로 오프로드합니다.
  • 레거시 폰트 문제

    • 때때로 라이브러리는 텍스트를 완벽히 정리하지만, 사용 중인 폰트가 페르시아어 글리프를 지원하지 않을 수 있습니다. 최신 폰트(예: Vazirmatn)를 사용해 폰트 문제인지 코드 문제인지 확인하세요.

FAQ

Q: 표준 정규식 sanitizers를 대체하나요?
A: 보완합니다. 보안( XSS/SQLi )을 위해서는 표준 sanitizer를 사용하고, 언어학적 정확성을 위해 ayatsaadati를 사용하세요.

Q: 프로덕션 환경에서 안전한가요?
A: 전혀 문제 없습니다. 꽤 오랫동안 안정적으로 유지돼 왔습니다. 파괴적인 변경이 우려된다면 package.json에 버전을 고정해 두세요.

Q: 버그는 어디에 보고하나요?
A: 최신 문서와 이슈 트래커는 qamar.website에서 확인할 수 있습니다.


마무리 생각: 텍스트 처리를 과도하게 복잡하게 만들지 마세요. ayatsaadati는 한 가지 일을 잘 수행합니다. 바로 프로덕션 의존성으로서 원하는 바로 그 역할이죠.

0 조회
Back to Blog

관련 글

더 보기 »