브라우저에서 실행되는 무료 Hemingway Editor 대안을 만들었습니다

발행: (2026년 3월 7일 PM 01:33 GMT+9)
14 분 소요
원문: Dev.to

Source: Dev.to

위 링크에 있는 전체 글을 번역하려면 해당 글의 본문을 제공해 주시겠어요?
본문을 주시면 코드 블록과 URL은 그대로 두고, 마크다운 형식과 기술 용어를 유지한 채 한국어로 번역해 드리겠습니다.

가독성 점수에 문제가 있다

대부분의 글쓰기 도구는 텍스트를 단일 공식—보통 Flesch‑Kincaid—에 대입해 하나의 숫자를 제공합니다. 그 숫자는 추정치에 불과합니다. 서로 다른 공식은 서로 다른 요소(음절 수, 단어 친숙도, 문장 길이)를 측정하며, 같은 텍스트에 대해 2–4 학년 차 정도로 일관되지 않게 결과를 내놓습니다.

저는 여러 공식을 사용하고, 텍스트를 서버에 업로드하지 않고 브라우저에서 실행되며, 하나 이상의 지표를 제공하는 도구가 필요했습니다. 그런 도구를 찾지 못해 직접 만들었습니다. 전면 고지: 저는 ProseScore와 이를 구동하는 textlens npm 패키지의 제작자입니다.

단일 공식 문제

Hemingway Editor는 작가들 사이에서 가장 인기 있는 가독성 도구입니다. 복잡한 문장을 강조하고 학년 수준을 제시합니다. 내부적으로는 하나의 가독성 공식을 사용합니다.

왜 하나의 공식만으로는 부족한가

다음 문장을 살펴보세요:

“The oncologist discussed the prognosis with the patient.”

  • Flesch‑Kincaid는 문장이 짧고(8단어, 한 절) 구조가 단순하기 때문에 낮은 학년 수준을 부여합니다.
  • Dale‑Chall—3,000개의 일반 영어 단어 목록과 대조해 단어를 검사하는 공식—은 oncologistprognosis를 익숙하지 않은 어휘로 표시합니다.

문장은 구조적으로 명확하지만 이해하려면 분야 지식이 필요합니다. 단일 공식은 구조적 복잡성 어휘 난이도를 동시에 포착할 수 없습니다.

8가지 주요 가독성 공식 각각은 서로 다른 입력값을 사용합니다:

공식측정 내용
Flesch‑Kincaid단어당 음절 수, 문장당 단어 수
Gunning Fog3음절 이상 단어 비율
SMOG다중음절 단어 수(100 % 이해도 예측)
Coleman‑Liau단어당 문자 수(음절 계산 없음)
ARI문자당 단어 수, 문장당 단어 수
Dale‑Chall3,000단어 목록과 비교한 단어 친숙도
Linsear Write쉬운 단어와 어려운 단어 비율
Flesch Reading EaseFK와 동일한 입력값 사용, 다른 척도(0–100)

8개 모두를 실행하고 학년 수준을 출력하는 7개의 평균을 내면 합의 학년을 얻을 수 있습니다. 합의 점수는 개별 공식의 특이점을 완화해 줍니다. 예를 들어 여섯 개 공식이 8학년을, 하나가 13학년을 제시한다면, 이상치는 특이한 요소를 측정하고 있는 것이며 평균은 이를 반영합니다.

현재 도구에서 부족한 점은 무엇인가

  • 프라이버시. 대부분의 가독성 도구는 텍스트를 처리하기 위해 서버로 전송합니다. 초안 블로그 포스트에는 괜찮지만, 법률 계약서, 내부 메모, 환자 건강 기록 등에는 문제가 됩니다. 텍스트는 사용자의 기기에 머물러야 합니다.
  • 가독성 그 이상. 학년 수준은 텍스트가 얼마나 읽기 어려운지 알려주지만, 어조가 적절한지, 어떤 키워드가 주를 이루는지, 검색 엔진에 맞게 구조화되어 있는지는 알려주지 않습니다. 작가와 편집자는 이러한 신호를 하나의 도구에서 함께 필요로 합니다.
  • 가격. Hemingway Editor는 플랜에 따라 $8–$170 / month을 청구합니다. Grammarly는 $12 / month부터 시작합니다. 이 도구들은 문법 검사와 가독성을 함께 제공하는데, 이는 일부 사용자에게는 합리적입니다. 하지만 가독성 분석만 원한다면 과도한 비용을 지불하게 됩니다.

ProseScore 작동 방식

ProseScore는 웹 애플리케이션입니다. 텍스트를 붙여넣거나(또는 파일을 업로드하면) 다음을 반환합니다:

  • 8가지 가독성 점수와 합의 등급 수준
  • 감성 분석 (긍정/부정/중립 및 신뢰도)
  • 키워드 추출 (빈도와 관련성에 따른 상위 용어)
  • SEO 점수 (키워드 밀도, 헤딩 구조, 메타 평가)
  • 기본 통계 (단어 수, 문장 수, 단락 수, 읽는 시간)

가격

TierPriceFeatures
Free$0Flesch‑Kincaid, 단어/문장/단락 수, 읽는 시간
Pro$3.99 / month or $19.99 lifetime모든 8가지 공식, 합의 등급, 감성 분석, 키워드, SEO 등

모든 작업은 브라우저에서 실행됩니다. 텍스트가 페이지를 떠나지 않습니다. 콘텐츠를 처리하는 백엔드가 없습니다. 분석 엔진은 페이지가 열릴 때 로드되는 JavaScript 번들입니다.

Source:

기술 스택

ProseScore는 제가 텍스트 분석을 위해 만든 오픈‑소스 npm 패키지 textlens 위에 구축되었습니다. textlens는 의존성이 없으며 8가지 가독성 공식, 감성 분석, 키워드 추출, SEO 점수를 TypeScript로 구현합니다.

웹 앱에서는 textlensIIFE(Immediately Invoked Function Expression) 형태로 번들링하여 window.textlens에 연결합니다.

  • 페이지 크기: ~46 KB
  • textlens 엔진 번들: ~145 KB
  • 전체 용량: 200 KB 이하 — 프레임워크 없이, 런타임 빌드 단계도 없습니다.

아키텍처 다이어그램

User pastes text

JavaScript calls textlens.readability(text)

textlens.sentiment(text)

textlens.keywords(text)

textlens.seo(text, { keyword })

Results rendered to DOM

Nothing leaves the browser

모든 분석은 메인 스레드에서 동기적으로 수행됩니다. 일반적인 블로그 포스트와 기사(10 000단어 이하)의 경우 분석이 50 ms 이하에 완료됩니다. Web Worker는 필요하지 않습니다.

왜 IIFE를 ESM 대신 사용하나요

textlens는 Node.js와 번들러 사용자를 위해 ESM 및 CommonJS 빌드를 제공합니다. 빌드 단계가 없는 독립형 웹 앱의 경우, IIFE가 실용적인 선택입니다: <script> 태그 하나, 전역 하나, 모듈‑해석 오버헤드가 없습니다. 브라우저는 첫 로드 후 이를 캐시합니다.

합의 점수 구현

합의 등급은 7개의 공식 출력값을 평균합니다 (Flesch Reading Ease는 등급 수준이 아닌 0–100 척도를 사용하므로 제외합니다). 각 공식은 등급을 반환하며, 합의 등급은 이들의 산술 평균을 소수점 한 자리까지 반올림한 값입니다.

import { readability } from 'textlens';

const result = readability(sampleText);
console.log(result.consensusGrade);
// e.g., 8.3 (average of FK, Fog, SMOG, CLI, ARI, DC, LW)

이는 학술적인 가독성 연구에서 사용되는 동일한 접근 방식입니다. 어느 하나의 공식이 “옳다”고 할 수 없습니다. 합의 등급은 개별 점수보다 다양한 텍스트 유형에 걸쳐 더 안정적입니다.

개인정보 보호

모든 처리는 client‑side에서 이루어집니다. 초기 페이지 로드 이후 네트워크 요청이 전혀 없으므로 텍스트가 기기 밖으로 나가지 않습니다. 이는 법률 계약서, 내부 메모, 환자 건강 기록과 같은 민감한 문서에 ProseScore를 적합하게 만듭니다.

Architecture

ProseScore는 사용자 데이터를 전혀 수집하지 않습니다. 분석 스크립트도 없고, 트래킹 픽셀도 없으며, localStorage에 저장되는 Pro‑license 토큰을 제외하고는 쿠키도 없습니다. 사용자가 붙여넣는 텍스트는 네트워크 요청을 전혀 거치지 않습니다.

Pro 라이선스 검증은 서명된 JWT를 통해 이루어집니다. Stripe를 통해 구매하면 사용자는 라이선스 키를 받습니다. 앱은 로컬에서 키 구조를 검증한 뒤, 키가 유효한지 확인하기 위해 Cloudflare Worker에 일회성 검증 호출을 합니다. 검증이 끝나면 토큰은 localStorage에 저장되고, 이후 앱은 완전히 오프라인 상태로 동작합니다.

이것은 개인정보 보호 정책에 대한 주장​이 아니라, 아키텍처상의 제약입니다. 앱에는 텍스트 입력을 받는 엔드포인트가 없으므로, 텍스트가 전송될 곳이 없습니다.

Dark mode

Hemingway Editor에는 다크 모드가 없습니다. 사소해 보일 수 있지만, 야간에 작업하거나 어두운 인터페이스를 선호하는 작가들은 최소 2019년부터 이를 요구해 왔습니다.

ProseScore는 라이트와 다크 테마를 모두 지원하며, 버튼으로 전환할 수 있습니다. 선호 설정은 localStorage에 지속됩니다.

대상 독자

ProseScore는 텍스트를 작성하고 문법 도구에 구독하지 않으면서도 가독성을 이해하고자 하는 모든 사람을 위한 도구입니다.

  • 기술 작가 – 목표 등급 수준에 맞춰 문서 검토
  • 콘텐츠 마케터 – 블로그 게시물의 가독성과 SEO 최적화
  • 헬스케어 커뮤니케이터 – 환자 자료가 문해력 지침을 충족하는지 확인 (SMOG가 여기서 표준)
  • 개발자 – 문법 제안 없이 원시 수치만 필요할 때

문법 검사가 필요하다면 ProseScore는 적합하지 않습니다. 이 도구는 텍스트 분석이라는 한 가지 작업만 수행하며, 대안보다 더 깊이 있게 수행합니다.

사용해 보기

ProseScore가 에서 라이브로 제공됩니다. 무료 티어에서는 다음을 제공합니다:

  • Flesch‑Kincaid 점수
  • 단어 수
  • 읽는 시간

기본 엔진의 소스 코드는 GitHub에 있습니다: .

읽기 난이도 점수를 자체 프로젝트에 통합하고 싶다면, textlens 패키지가 npm에 의존성 없이 제공됩니다: .

0 조회
Back to Blog

관련 글

더 보기 »