0
Words
0
Characters
0
No spaces
0
Lines
0
Paragraphs
0
Sentences
0 min
Reading time
Your text

Word Counter: 단어, 문자, 줄 수를 온라인으로 세기

아무 텍스트나 붙여넣으면 단어 수, 문자 수, 줄, 문단, 문장, reading time을 실시간으로 보여줍니다. 업로드 없음, 가입 없음, 어떤 것도 브라우저를 떠나지 않습니다.

이 word counter가 하는 일

브라우저 안에서 동작하는 무료 word counter입니다. 에세이, 트윗 초안, meta description, 4,000 단어짜리 블로그 글을 붙여넣으면 단어 수, 공백 포함/제외 문자 수, 줄, 문단, 문장, 그리고 추정 reading time이 실시간으로 나옵니다. 텍스트는 절대 당신의 기기를 떠나지 않습니다.

이런 흔한 작은 순간들 때문에 존재합니다. X의 280자 제한을 12자 초과했을 때, meta description이 187자라 Google이 잘라낼 게 뻔할 때, 대학 지원서에 "500 words 이내"라고 적혀 있는데 MS Word의 word count 다이얼로그가 메뉴 두 단계 아래에 묻혀 있을 때. 붙여넣고, 확인하고, 고치고, 넘어가세요.

세는 일은 보이는 것보다 흥미롭기도 합니다. word count에 관한 Wikipedia 문서는 같은 문서에 대해 MS Word, Pages, Google Docs가 약간씩 다른 숫자를 돌려준다고 지적합니다. 주로 하이픈 복합어, em dashes, 인라인 각주를 어떻게 처리하느냐에 따라 달라집니다. 우리는 어떤 규칙을 쓰는지 분명히 밝히기 때문에, 결과를 당신이 신뢰하는 에디터의 결과에 매핑할 수 있습니다.

카운트가 실제로 동작하는 방식

단어는 공백으로 나누고 빈 항목을 걸러 셉니다. MS Word, Google Docs, 대부분의 블로그 플랫폼이 내부에서 쓰는 방식과 같습니다. 빠르고, 영어, 프랑스어, 스페인어 등 공백으로 구분되는 언어에는 충분합니다. 트레이드오프는 이렇습니다. 중국어, 일본어, 한국어, 태국어의 word는 정확히 셀 수 없습니다. 이 문자체계들은 word 사이에 공백을 두지 않기 때문입니다. 모든 언어에서 명세에 맞는 단어 경계가 필요하다면 적합한 도구는 Intl.Segmenter이고, 이는 Unicode UAX #29 (Text Segmentation)의 알고리즘을 구현합니다. 입력이 그것을 필요로 해 보이면 CJK 안내를 표시합니다.

문자 수는 두 가지 방식으로 셉니다. 공백 포함 (문자열의 모든 code point) 과 공백 제외 (ASCII 공백, 탭, 줄바꿈을 제외). 어떤 숫자를 봐야 하는지는 어떤 한도를 확인하느냐에 따라 다릅니다. 페이지 제목, meta description, SMS 메시지는 공백을 셉니다. Twitter는 별도 방식이라 FAQ를 보세요. grapheme 클러스터를 이용한 가시 문자 수도 함께 표시하므로, 7 code point짜리 가족 이모지도 사람 입장에서는 한 글자로 셉니다.

줄, 문단, 문장이 패널을 채워줍니다. 줄은 줄바꿈으로 나뉩니다. 문단은 빈 줄 (연속된 하나 이상의 빈 줄) 을 기준으로 나뉩니다. 문장은 ., !, ? 뒤에 공백이 오는 위치에서 나뉩니다. 대부분의 산문에서는 맞지만, "Mr. Smith said hello"는 두 문장으로 잘못 세고 "i.e."는 새 문장의 시작으로 잘못 인식합니다. 200줄짜리 JavaScript에 들어갈 만한 신뢰할 수 있는 문장 분할기는 없습니다. 약어가 많은 텍스트라면 문장 수는 대략적인 추정으로 받아들이세요.

세 단계로 단어를 세는 방법

텍스트 패널 하나에, 라이브 카운트 여섯 개. 설치할 것 없고, 업로드할 것 없고, 계정도 필요 없습니다.

  1. 1

    텍스트를 붙여넣거나 입력하세요

    MS Word, Google Docs, 메일 클라이언트, SMS 초안, CMS 에디터에서 붙여넣으세요. 또는 Upload를 눌러 .txt.md 파일을 불러오세요. Sample 버튼은 카운터가 움직이는 모습을 먼저 보고 싶을 때 한 문단을 넣어줍니다. 붙여넣기는 서식을 제거하는데 그게 우리가 원하는 동작입니다. 텍스트만 카운트됩니다.

  2. 2

    카운트가 실시간으로 갱신되는 걸 보세요

    입력하거나 편집할 때마다 각 카운트가 갱신됩니다. 단어, 공백 포함 문자, 공백 제외 문자, 줄, 문단, 문장, reading time이 한 번에 보입니다. reading time 추정은 일반 산문에 대해 230 words per minute을 사용합니다. 공백 기반 단어 카운트가 입력을 과소평가할 때 알려주는 CJK 감지기도 있습니다.

  3. 3

    텍스트 또는 카운트를 복사하세요

    Copy를 눌러 정리된 텍스트를 클립보드로 가져가거나, 카운트 칩으로 특정 숫자를 복사하세요. Download는 텍스트를 .txt로 저장합니다. 다른 카운트 규칙 (예: 하이픈 복합어를 한 단어로 처리) 이 필요하면 입력을 손보면 카운트가 갱신됩니다. 서버에서 설정할 것은 없습니다.

word counter가 적합한 도구가 되는 상황

X (Twitter) 280자 제한 맞추기

스레드를 작성 중인데 두 번째 트윗이 312자입니다. 농담을 잃지 않고 줄여야 합니다. 트윗을 여기 붙여넣고 character count를 보면서 280 이하로 잘라내세요. X는 URL을 길이와 상관없이 23자로, 이모지를 2자로 카운트합니다. 그래서 단순한 character count는 남은 여유를 약간 적게 보여줍니다. Twitter 가중치에 대해서는 FAQ를 참고하세요.

학술 에세이나 대학 지원서의 word 제한

500 단어 자기소개서, 4,000 단어 문학 에세이, 학회 250 단어 초록. 대부분 기관은 공백으로 구분된 토큰을 한 단어로 세고, 하이픈 복합어도 한 단어로 봅니다. 우리가 보고하는 방식과 같습니다. Common App 에세이 제한은 650 단어이고 그들은 엄격합니다. 그들의 카운터와 10 단어 차이가 나는 도구는 제출과 거절을 가르는 차이입니다.

SEO meta description과 페이지 제목

Google은 페이지 제목을 약 60자에서 자르고, 모바일에서는 더 일찍 자르기도 합니다. meta description은 약 160자에서 잘립니다. 둘 다 공백 포함 문자 수입니다. 초안을 여기 붙이고 카운터를 보면서 중요한 키워드가 잘림 지점 앞에 오도록 다시 쓰세요. Open Graph 제목과 Twitter card 설명에도 같은 규칙이 적용됩니다.

SMS와 푸시 알림 문자 예산

표준 SMS는 7비트 GSM 인코딩에서 160자이고, GSM 외 문자 (예: 이모지나 곡선 따옴표) 가 들어가면 세그먼트당 70자로 떨어집니다. iOS 푸시 알림은 잠금 화면 미리보기에서 약 178자에서 잘립니다. 텍스트가 159자면 SMS 한 통에 들어가지만 161자면 두 통으로 나뉘는데, 카운터는 그 경계가 정확히 어디인지 알려줍니다.

블로그 글의 reading time 추정

Medium이나 Substack 같은 블로그 플랫폼은 글 상단에 reading time 추정치를 표시합니다. 표준 계산은 단어 수를 230 (일반 산문에 대한 일반적인 성인 독서 속도) 으로 나눠 올림하는 방식입니다. 코드 블록이나 수식이 있는 기술 콘텐츠는 더 느려서 약 100 words per minute이라, 엔지니어링 글에서는 추정이 후하게 나옵니다. 1,200 단어짜리 how-to는 대략 5분 정도의 읽기 분량입니다.

편집 전후의 word count 비교

1,400 단어 초안을 썼는데 요청은 1,000 단어 미만입니다. 원본을 붙이고 줄인 버전을 두 번째 탭에 붙이면 얼마나 잘라냈는지 그대로 보입니다. 카운트 차이뿐 아니라 어떤 문장이 옮겨졌고 어떤 문장이 다시 쓰였는지 좌우 diff로 보고 싶다면 우리 compare-text 도구가 그 케이스를 처리합니다. 두 지표가 모두 필요할 때 짝지어 쓰세요.

word/character 카운트의 엣지 케이스

대부분의 도구가 헷갈리는 카운트 상황과 우리의 처리 방식, 주의할 점을 정리했습니다. 카운트가 이상해 보이면 답은 보통 여기 있습니다.

TopicWhat this tool does
공백 분할 vs Unicode 분할우리는 공백으로 나누는데, 빠르고 영어에서는 MS Word/Google Docs와 일치합니다. 명세에 맞는 대안은 Unicode UAX #29이며 JavaScript에서는 Intl.Segmenter로 노출됩니다. 속도보다 언어 커버리지가 중요할 때 사용하세요.
단어 사이 공백이 없는 CJK 언어중국어, 일본어, 한국어, 태국어는 word를 공백으로 나누지 않습니다. 공백 기반 카운트는 문단 하나에 대해 대략 1을 돌려줍니다. 이 언어들에서 의미 있는 지표는 character count이고, 여기에서는 그게 잘 동작합니다. 진짜 CJK word count는 Intl.Segmenter를 사용하세요.
이모지와 Unicode code point가족 이모지 👨‍👩‍👧‍👦는 한 글자처럼 보이지만 zero-width joiner로 묶인 7개의 UTF-16 code point입니다. 사람이 직관적으로 이해할 수 있는 수치를 위해 grapheme (가시 문자) 을 세고, code point는 별도로 셉니다. 따봉 위의 피부 톤 모디파이어는 grapheme로는 하나지만 code point로는 둘입니다.
Twitter / X 문자 가중치X는 각 문자에 가중치를 매깁니다. 대부분의 ASCII는 1, 이모지와 CJK는 2, URL은 길이와 무관하게 23으로 고정입니다. 우리의 character count는 원시 문자 수입니다. 사용한 이모지 하나당 280 예산에서 약 7을 빼고 생각하세요.
트윗의 URL과 @mentionsX는 모든 URL을 실제 링크 길이와 상관없이 t.co를 거쳐 23자로 압축합니다. @mentions는 글자 그대로의 길이로 카운트됩니다. 우리 카운터는 원시 길이를 보여주므로 긴 URL 두 개가 들어간 트윗은 X가 보고하는 것보다 여기서 더 길어 보입니다.
곡선 따옴표 vs 직선 따옴표"곡선" 따옴표와 "직선" 따옴표는 서로 다른 Unicode 문자이지만 각각 한 문자로 카운트됩니다. 대부분 폰트에서 비슷해 보이는데, MS Word나 Pages에서 붙여넣으면 보통 곡선 따옴표가 조용히 대체됩니다. 코드를 붙이는 거라면 먼저 직선 따옴표로 되돌리세요.
뒤따르는 공백과 빈 줄줄 끝의 공백도 여전히 문자로 카운트됩니다. 문서 끝의 줄바꿈은 한 줄로 카운트됩니다. 문단 사이의 빈 줄은 줄 합계에는 들어가지만 문단 카운트에서는 문단을 분리하는 역할을 합니다.
인코딩 (UTF-8) 과 바이트 길이"문자 제한"이라고 적힌 대부분의 API는 Unicode 문자를 의미하지만, 일부는 UTF-8 바이트를 의미합니다. UTF-8에서 이모지는 4바이트, CJK 문자는 3바이트, 악센트 있는 Latin 글자는 2바이트입니다. 제한이 바이트 단위라면 우리 character count는 적게 보고됩니다. Twitter는 유명한 중간 사례로, 바이트도 문자도 아닌 자체 가중치 방식입니다.

word counter: 자주 묻는 질문

word count와 character count의 차이는 무엇인가요?

word count는 텍스트에서 공백으로 구분된 토큰의 개수라서 "hello world"는 두 word입니다. character count는 개별 문자의 개수라서 "hello world"는 공백 포함 11자, 미포함 10자입니다. 플랫폼마다 신경 쓰는 숫자가 다릅니다. 학술 에세이는 word count, SMS와 트윗 제한은 character count, SEO title 태그도 character count를 씁니다. 카운터는 둘 다 동시에 보여주므로 상황에 맞는 것을 고를 수 있습니다.

이 도구는 정확히 어떻게 word를 세나요?

입력을 공백 (스페이스, 탭, 줄바꿈) 으로 나누고 비어 있지 않은 조각의 개수를 셉니다. 그래서 "fast-paced"는 한 word, "well known"은 두 word, "isn't"는 한 word입니다. 영어 산문에서는 MS Word, Google Docs와 같은 결과입니다. 트레이드오프는 중국어, 일본어, 한국어 텍스트를 정확히 처리하지 못한다는 점입니다. 이 언어들은 word 사이에 공백을 두지 않기 때문입니다. 모든 언어에서 명세에 맞는 단어 카운트가 필요하다면, 모던 브라우저는 Intl.Segmenter를 제공하며 이는 Unicode word 경계 알고리즘을 구현합니다.

reading time은 어떻게 계산되나요?

reading time은 단어 수를 230 words per minute으로 나누고 가장 가까운 분으로 올림한 값입니다. 230 wpm은 일반 산문을 읽는 성인의 합리적인 중간값입니다. 발표된 추정치는 비기술 자료에서 200~250 wpm 사이입니다. 코드 블록, 수식, 낯선 용어가 있는 기술 글쓰기는 독자를 약 50~100 wpm까지 늦추므로 엔지니어링이나 과학 콘텐츠에서는 추정이 후하게 나옵니다. 특정 독자에 맞춰 더 엄밀히 계산하고 싶다면 word count를 그들의 실제 reading speed로 나누세요.

중국어, 일본어, 한국어 텍스트를 정확히 세나요?

word는 그렇지 않습니다. CJK 언어는 word 사이에 공백을 두지 않으므로 공백 기반 word count는 어떤 CJK 문단에 대해서도 거의 1을 돌려줍니다. character count는 여전히 정확하고 (CJK 문자 하나는 한 character), 어차피 그 언어들에서 보통 신경 쓰는 지표입니다. 일본어 에세이 제한은 word가 아니라 문자 단위입니다. 진짜 CJK word count가 필요하다면, 모던 브라우저의 Intl.Segmenter API가 Unicode word 분할 알고리즘을 구현하며 CJK, 태국어, 그 밖의 공백 없는 문자체계를 정확히 처리합니다.

저장되거나 업로드되는 게 있나요?

없습니다. 카운터는 전적으로 브라우저에서 동작합니다. 어떤 것도 서버로 전송되거나, 로깅되거나, 저장되지 않습니다. 기밀 초안, 미공개 글, 세금 신고서를 붙여넣고 탭을 닫아도 남는 사본이 없습니다. 확인하려면 DevTools를 열고 Network 탭으로 전환한 다음, 입력하는 동안 지켜보세요. 카운트가 갱신될 때 외부로 나가는 요청이 없습니다. 도구는 의존성에 대해서도 투명하며, 카운트에 관여하는 코드는 당신 기기에서 동작하는 평범한 JavaScript뿐입니다.

X (Twitter)는 정말로 이모지를 2자로 세나요?

대체로 그렇습니다. X는 사용자 정의 가중치를 사용해 대부분의 기본 Latin, 숫자, 일반 구두점은 1로, 그 외 거의 모든 것 (이모지, CJK, 악센트 부호 문자) 은 280자 한도에서 2로 셉니다. 정확한 알고리즘은 그들의 counting-characters 문서에 있습니다. grapheme 클러스터가 아니라 code point 범위를 쓰므로, 깃발 이모지 (regional indicator code point 두 개) 는 실제로 4로 카운트됩니다. URL은 길이와 상관없이 23자로 특별 처리됩니다. 우리의 character count는 가중치 없는 원시 카운트입니다.

개인정보와 동작 방식

텍스트는 절대 브라우저를 떠나지 않습니다. 카운트, 분할, 렌더링이 모두 당신의 기기에서 동작합니다. 텍스트를 업로드하거나 로깅하거나 제3자 서비스를 거치게 하지 않습니다. 기밀 초안, 미공개 에세이, 그 밖의 어떤 비공개 콘텐츠를 붙여넣고 탭을 닫아도 흔적이 남지 않습니다. 확인하려면 브라우저 DevTools를 열고 Network 탭으로 전환한 뒤 입력하는 동안 지켜보세요. 외부로 나가는 요청은 없습니다. 유일한 의존성은 브라우저 자체의 JavaScript 엔진과 grapheme 카운트를 위한 선택적 Intl.Segmenter뿐입니다. 좌우 비교 텍스트 diff, case converter, 줄 정렬, 중복 줄 제거가 필요하다면 그 도구들도 한 번의 클릭으로 닿고 같은 브라우저 내 정책을 따릅니다.