단어 카운터

단어, 문자, 문장, 단락 수를 세고 읽기 시간 추정

예시 시도

0

단어

0

문자

0

문자 (공백 제외)

0

문장

0

단락

읽기 시간

말하기 시간

텍스트 입력

로컬에서 실행 · 시크릿 붙여넣기 안전

단어 카운팅이란?

단어 카운터는 텍스트에 포함된 단어, 문자, 문장, 단락의 수를 알려줍니다. 입력값을 공백 기준으로 분리하고, 패턴 기반 규칙을 적용해 문장과 단락을 감지합니다. '단어'의 정의는 언어, 문자 체계, 맥락에 따라 다릅니다. 영어에서는 공백으로 구분된 토큰이 잘 작동합니다. 한중일(CJK) 언어에서는 단어가 공백으로 구분되지 않으므로, ICU의 BreakIterator 같은 사전 기반 알고리즘으로 분절해야 합니다.

문자 수 계산에는 두 가지 일반적인 정의가 있습니다. 공백 포함과 공백 제외입니다. 전체 문자 수에는 공백, 탭, 줄바꿈 문자를 포함한 모든 Unicode 코드 포인트가 포함됩니다. 공백 제외 문자 수는 계산 전에 모든 공백을 제거하며, Twitter(현 X)의 게시물 길이 제한이나 문자당 요금을 부과하는 번역사들이 사용하는 기준입니다. 엄격한 길이 제한이 있는 시스템에 텍스트를 붙여넣을 때 이 구분이 중요합니다.

읽기 시간과 말하기 시간 추정은 단어 수를 평균 속도로 나눈 값입니다. Journal of Memory and Language에 발표된 연구(Brysbaert, 2019)에 따르면 영어 산문의 평균 묵독 속도는 분당 238단어입니다. 프레젠테이션 말하기 속도는 일반적으로 분당 130~160단어입니다. 이 평균값은 텍스트 난이도, 독자, 언어에 따라 달라지지만, 블로그 포스트, 문서, 슬라이드 덱 작성에 실용적인 기준을 제공합니다.

이 단어 카운터를 사용해야 하는 이유

텍스트를 붙여넣으면 계정 생성이나 네트워크로의 데이터 전송 없이 단어, 문자, 문장, 단락 수를 실시간으로 확인할 수 있습니다.

즉각적인 결과
입력하거나 붙여넣는 즉시 수치가 업데이트됩니다. 버튼 클릭이나 로딩 대기가 필요 없습니다. 여러 텍스트를 연속으로 테스트할 수 있습니다.
🔒
프라이버시 우선 처리
모든 계산은 JavaScript를 사용해 브라우저에서 이루어집니다. 텍스트가 기기를 벗어나지 않으며, 어떤 서버에도 저장되거나 기록되지 않습니다.
📊
7가지 지표를 한 번에
단어, 문자(공백 포함 및 제외), 문장, 단락, 읽기 시간, 말하기 시간. 한 번 붙여넣으면 필요한 모든 정보를 얻을 수 있습니다.
🌍
계정 또는 설치 불필요
페이지를 열고 바로 계산을 시작하세요. 회원가입, 브라우저 확장 프로그램, 데스크탑 앱이 필요 없습니다. 최신 브라우저가 있는 모든 기기에서 작동합니다.

단어 카운터 활용 사례

콘텐츠 작성 및 블로깅
SEO 목표에 맞게 글의 길이를 확인하세요. Google은 최소 단어 수를 강제하지 않지만, Backlinko와 Ahrefs의 연구에 따르면 경쟁 키워드에서 상위 랭킹 페이지는 평균 1,400~1,700단어입니다.
API 문서화
엔드포인트 설명을 일관되게 유지하세요. 스타일 가이드에서 각 파라미터 설명을 200자 이내로 제한한다면, 커밋 전에 여기에 텍스트를 붙여넣어 확인하세요.
학술 논문 준비
컨퍼런스 제출 및 학술지 논문에는 엄격한 단어 수 제한이 있습니다. 최대 단어 수 초과로 인한 즉각 반려를 피하려면 제출 전에 단어 수를 확인하세요.
소셜 미디어 게시물 초안 작성
Twitter/X는 280자, LinkedIn 게시물은 3,000자에서 잘리며, Meta 광고 헤드라인은 40자로 제한됩니다. 게시 전에 문자 수를 확인하세요.
DevOps 커밋 메시지
일반적인 Git 커밋 메시지 형식은 제목 줄을 50자 이내, 본문을 한 줄당 72자로 줄바꿈할 것을 권장합니다. 초안을 붙여넣어 커밋 전에 확인하세요.
번역 및 현지화
번역사는 단어 수나 문자 수 기준으로 요금을 산정합니다. 번역 에이전시에 파일을 보내기 전에 원본 텍스트의 정확한 수를 파악해 견적을 요청하고 프로젝트 비용을 추정하세요.

텍스트 지표 참고

이 도구가 보고하는 각 지표에는 구체적인 정의가 있습니다. 아래 표는 각 지표의 계산 방식을 보여줍니다.

지표계산 방식예시
WordsSequences separated by whitespace"hello world" → 2
CharactersAll characters including spaces"hi there" → 8
Characters (no spaces)Letters, digits, punctuation only"hi there" → 7
SentencesSegments ending with . ? or !"Hi. Bye!" → 2
ParagraphsText blocks separated by blank lines"A\n\nB" → 2
Reading timeWord count ÷ 238 wpm (silent reading avg)1 000 words → ~4.2 min
Speaking timeWord count ÷ 150 wpm (presentation pace)1 000 words → ~6.7 min

단어 수 vs. 문자 수

이 두 지표는 서로 다른 질문에 답합니다. 잘못된 지표를 선택하면 제출 거절이나 레이아웃 문제가 발생할 수 있습니다.

단어 수
공백으로 구분된 토큰의 수를 측정합니다. 에세이, 기사, 책 원고의 표준 지표입니다. 대부분의 학술지, 블로그 플랫폼, 프리랜서 계약에서 길이를 단어 수로 정의합니다. 언어 의존적인 지표입니다. 영어 500단어 단락은 독일어로 번역하면 700단어, 중국어로는 300자가 될 수 있습니다.
문자 수
개별 문자(Unicode 코드 포인트)의 수를 측정합니다. 소셜 미디어 제한(Twitter: 280자), SMS 메시지(GSM-7 기준 160바이트), UI 문자열, 단어 경계가 없는 CJK 텍스트의 표준 지표입니다. 플랫폼에서 '문자 제한'이라고 할 때는 보통 바이트가 아닌 코드 포인트를 의미합니다. 대리 쌍(이모지, 일부 CJK)은 플랫폼에 따라 1 또는 2로 계산될 수 있습니다.

코드 예시

다양한 언어로 단어와 문자 수를 프로그래밍 방식으로 계산하는 방법입니다. 각 예시는 일관된 비교를 위해 동일한 입력 문자열을 처리합니다.

JavaScript
// Word count — split on whitespace, filter empty strings
const text = 'Hello  world!  How are you?'
const words = text.trim().split(/\s+/).filter(Boolean)
console.log(words.length) // → 5

// Character count
console.log(text.length)                          // → 27 (with spaces)
console.log(text.replace(/\s/g, '').length)       // → 22 (without spaces)

// Sentence count — split on sentence-ending punctuation
const sentences = text.split(/[.!?]+/).filter(s => s.trim().length > 0)
console.log(sentences.length) // → 2

// Reading time estimate (238 wpm average)
const readingMin = words.length / 238
console.log(Math.ceil(readingMin)) // → 1 min
Python
import re

text = 'Hello  world!  How are you?'

# Word count
words = text.split()
print(len(words))  # → 5

# Character counts
print(len(text))                              # → 27 (with spaces)
print(len(text.replace(' ', '')))             # → 22 (without spaces)

# Sentence count
sentences = [s for s in re.split(r'[.!?]+', text) if s.strip()]
print(len(sentences))  # → 2

# Paragraph count
multiline = """First paragraph.

Second paragraph."""
paragraphs = [p for p in multiline.split('\n\n') if p.strip()]
print(len(paragraphs))  # → 2
Go
package main

import (
	"fmt"
	"strings"
	"unicode"
)

func main() {
	text := "Hello  world!  How are you?"

	// Word count
	words := strings.Fields(text)
	fmt.Println(len(words)) // → 5

	// Character count (rune-aware for Unicode)
	fmt.Println(len([]rune(text))) // → 27

	// Characters without spaces
	noSpaces := strings.Map(func(r rune) rune {
		if unicode.IsSpace(r) {
			return -1
		}
		return r
	}, text)
	fmt.Println(len([]rune(noSpaces))) // → 22
}
CLI (bash)
# Word count
echo "Hello world" | wc -w
# → 2

# Character count (bytes — use wc -m for multibyte chars)
echo -n "Hello world" | wc -m
# → 11

# Line count
echo -e "line1\nline2\nline3" | wc -l
# → 3

# Count words in a file
wc -w < article.txt
# → 4230

자주 묻는 질문

단어 카운터는 '단어'를 어떻게 정의하나요?
이 도구는 텍스트를 공백(스페이스, 탭, 줄바꿈)으로 분리하고 비어 있지 않은 토큰의 수를 셉니다. 'well-known'과 같은 하이픈 결합 용어는 한 단어로 계산됩니다. 이는 영어 텍스트에서 Microsoft Word와 Google Docs의 동작과 일치합니다. CJK 언어에서는 해당 문자 체계가 단어 사이에 공백을 사용하지 않으므로 공백 분리 방식으로는 실제 단어 수보다 낮게 계산될 수 있습니다.
읽기 시간 추정이 정확한가요?
추정값은 Marc Brysbaert의 2019년 메타 분석(190개 연구 기반)에서 도출한 분당 238단어를 사용합니다. 성인이 묵독하는 영어 논픽션 산문의 좋은 평균값입니다. 코드 블록이 포함된 기술 문서는 더 느리게 읽히고(분당 150~180단어), 가벼운 블로그 콘텐츠는 더 빠르게 읽힙니다(분당 250~300단어). 이 수치를 보장이 아닌 참고 기준으로 활용하세요.
문자와 공백 제외 문자의 차이는 무엇인가요?
문자에는 텍스트의 모든 문자, 즉 글자, 숫자, 구두점, 공백, 탭, 줄바꿈이 포함됩니다. 공백 제외 문자는 계산 전에 모든 공백을 제거합니다. Twitter처럼 공백이 제한에 포함되는 플랫폼의 제한을 확인하거나, 공백이 표기 체계의 일부가 아닌 CJK 언어의 번역 요금 산정 시 '공백 제외' 수를 활용하세요.
문장은 어떻게 계산되나요?
도구는 마침표, 느낌표, 물음표로 끝나는 구간을 계산합니다. 'Dr.' 또는 'U.S.A.'와 같은 약어는 각 마침표가 일치를 유발해 수치를 부풀릴 수 있습니다. 정확한 문장 분절을 위해서는 약어, 말줄임표, 소수를 처리하도록 훈련된 모델을 적용하는 spaCy나 NLTK 같은 NLP 라이브러리를 사용하세요.
붙여넣기 없이 파일의 단어 수를 계산할 수 있나요?
이 브라우저 도구는 붙여넣은 텍스트만 처리합니다. 명령줄에서 파일의 단어 수를 계산하려면 Linux나 macOS에서 wc -w filename을 사용하세요. Windows에서는 PowerShell로 (Get-Content file.txt | Measure-Object -Word).Words를 사용할 수 있습니다. 대용량 파일이나 일괄 처리에는 명령줄 도구가 브라우저 기반 카운터보다 빠릅니다.
도구가 Unicode 문자를 올바르게 계산하나요?
네. JavaScript의 string.length는 코드 포인트가 아닌 UTF-16 코드 단위를 계산하므로, 국기처럼 여러 코드 포인트의 ZWJ 시퀀스로 구성된 단일 이모지는 예상보다 높은 문자 수를 보고할 수 있습니다. 이 도구는 브라우저의 내장 string API와 동일한 계산 방식을 사용합니다. 정밀한 문자소 클러스터 계산을 위해서는 최신 브라우저에서 사용 가능한 Intl.Segmenter API를 활용하세요.
Microsoft Word나 Google Docs의 단어 카운터와 어떻게 다른가요?
Microsoft Word와 Google Docs는 영어 단어 수에 유사한 공백 기반 분리 방식을 사용합니다. 하이픈 결합 단어, 공백 없는 em 대시, 각주나 헤더 포함 방식에서 소소한 차이가 발생할 수 있습니다. 이 도구는 메타데이터, 헤더, 각주 없이 붙여넣은 텍스트만 정확히 계산합니다. 특정 플랫폼의 수치와 정확히 일치시키려면 동일한 텍스트를 양쪽에 붙여넣어 비교하세요.