📊 텍스트 분석기 (Text Analyzer)
텍스트의 글자 수, 단어 수, 문장 수를 실시간으로 분석하세요. SNS 글자 수 제한, SEO 최적화, 문서 작성 시 유용한 통계 정보를 제공합니다.
텍스트를 입력하면 실시간으로 분석됩니다
📚 텍스트 분석기란?
텍스트 분석기(Text Analyzer)는 입력된 텍스트의 다양한 통계 정보를 자동으로 계산하는 도구입니다. 글자 수, 단어 수, 문장 수, 문단 수 등을 실시간으로 분석하여 작성자가 텍스트의 길이와 구조를 쉽게 파악할 수 있도록 도와줍니다.
🎯 주요 분석 항목
- 글자 수 - 공백 포함/제외 문자 개수
- 단어 수 - 공백으로 구분된 단어의 개수
- 문장 수 - 마침표, 물음표, 느낌표로 끝나는 문장 개수
- 문단 수 - 줄바꿈으로 구분된 문단 개수
- 읽기 시간 - 평균 읽기 속도 기준 예상 소요 시간
- 특수문자 수 - 숫자, 기호 등의 개수
🎯 사용 사례
1. SNS 글자 수 제한 준수
각 SNS 플랫폼마다 글자 수 제한이 있습니다. 텍스트 분석기로 실시간으로 글자 수를 확인하면서 적절한 길이의 게시물을 작성할 수 있습니다.
• Twitter/X: 280자 (영문 기준, 한글은 다를 수 있음)
• Instagram 캡션: 2,200자
• Facebook 게시물: 63,206자 (권장: 40-80자)
• LinkedIn: 3,000자
• YouTube 설명: 5,000자
2. SEO 최적화
검색 엔진 최적화를 위해 메타 설명, 제목 태그, 본문 내용의 길이를 최적화해야 합니다. 권장 길이를 준수하면 검색 결과에서 더 잘 노출됩니다.
• 제목 태그 (Title): 50-60자
• 메타 설명 (Meta Description): 150-160자
• 블로그 포스트: 최소 300단어 (1,500-2,000단어 권장)
• H1 헤딩: 20-70자
3. 학술 논문 및 리포트
대학 과제나 학술 논문은 보통 단어 수 또는 페이지 수 제한이 있습니다. 작성 중 실시간으로 단어 수를 확인하여 요구사항을 충족할 수 있습니다.
• 초록 (Abstract): 150-250단어
• 대학 에세이: 1,000-2,000단어
• 석사 논문: 15,000-50,000단어
• 박사 논문: 50,000-100,000단어
4. 번역 견적 산출
번역 비용은 보통 단어 수 또는 글자 수를 기준으로 책정됩니다. 텍스트 분석기로 정확한 단어/글자 수를 파악하여 견적을 요청할 수 있습니다.
• 영문: 단어당 요금 (예: $0.10/단어)
• 한글: 글자당 요금 (예: ₩30/자)
• 일문/중문: 글자당 요금
5. 이메일 및 메시지 작성
효과적인 이메일은 간결해야 합니다. 업무 이메일은 50-125단어가 가장 높은 응답률을 보인다는 연구 결과가 있습니다.
• 제목: 6-10단어 (모바일 고려 시 더 짧게)
• 본문: 50-125단어 (최적 응답률)
• 콜드 이메일: 50-100단어
6. 콘텐츠 작성
블로그, 뉴스 기사, 마케팅 자료 등을 작성할 때 적절한 길이를 유지하면 독자의 참여도가 높아집니다. 읽기 시간도 함께 고려하세요.
• 블로그 포스트: 1,500-2,500단어 (7-10분 읽기)
• 뉴스 기사: 500-800단어
• 제품 설명: 300-500단어
• 랜딩 페이지: 500-1,000단어
📊 텍스트 통계 지표 설명
1. 글자 수 (Character Count)
텍스트에 포함된 모든 문자의 개수입니다. 보통 두 가지로 구분됩니다:
- 공백 포함: 모든 문자 (공백, 탭, 줄바꿈 포함)
- 공백 제외: 실제 문자만 (letters, digits, punctuation)
• 공백 포함: 12자
• 공백 제외: 11자
2. 단어 수 (Word Count)
공백이나 구두점으로 구분된 단어의 개수입니다. 영문과 한글의 단어 구분 방식이 다를 수 있습니다.
- 영문: 공백으로 명확히 구분 (예: "I am happy" = 3단어)
- 한글: 띄어쓰기 기준 (예: "나는 행복해" = 2단어)
- 혼합: 언어별 규칙 적용
3. 문장 수 (Sentence Count)
마침표(.), 물음표(?), 느낌표(!)로 끝나는 문장의 개수입니다. 줄임표(...), 이니셜(Mr., Dr.) 등은 예외 처리가 필요합니다.
"안녕하세요. 반갑습니다! 어떻게 지내세요?" = 3문장
4. 문단 수 (Paragraph Count)
빈 줄(줄바꿈 2회 이상)로 구분된 문단의 개수입니다. 텍스트의 구조와 가독성을 평가하는 데 유용합니다.
5. 읽기 시간 (Reading Time)
평균 읽기 속도를 기준으로 계산한 예상 소요 시간입니다. 일반적인 읽기 속도 기준:
- 영문: 200-250 단어/분
- 한글: 300-400 자/분
- 속독: 400-700 단어/분
6. 평균 단어 길이 (Average Word Length)
단어 하나당 평균 글자 수입니다. 텍스트의 복잡도를 평가하는 지표로, 값이 클수록 어려운 단어가 많다는 의미입니다.
• 쉬운 글: 4-5자/단어
• 보통 글: 5-6자/단어
• 어려운 글: 7자 이상/단어
💻 코드 예시
JavaScript - 기본 텍스트 분석
function analyzeText(text) {
// 글자 수
const charCountWithSpaces = text.length;
const charCountWithoutSpaces = text.replace(/\s/g, '').length;
// 단어 수
const words = text.trim().split(/\s+/).filter(word => word.length > 0);
const wordCount = words.length;
// 문장 수
const sentences = text.split(/[.!?]+/).filter(s => s.trim().length > 0);
const sentenceCount = sentences.length;
// 문단 수
const paragraphs = text.split(/\n\s*\n/).filter(p => p.trim().length > 0);
const paragraphCount = paragraphs.length;
// 평균 단어 길이
const avgWordLength = words.reduce((sum, word) => sum + word.length, 0) / wordCount;
// 읽기 시간 (200 단어/분 기준)
const readingTimeMinutes = Math.ceil(wordCount / 200);
return {
charCountWithSpaces,
charCountWithoutSpaces,
wordCount,
sentenceCount,
paragraphCount,
avgWordLength: avgWordLength.toFixed(2),
readingTimeMinutes
};
}
// 사용 예시
const text = `안녕하세요. 텍스트 분석기입니다.
이 도구는 다양한 통계를 제공합니다.`;
const result = analyzeText(text);
console.log(result);
// {
// charCountWithSpaces: 54,
// charCountWithoutSpaces: 46,
// wordCount: 6,
// sentenceCount: 2,
// paragraphCount: 1,
// avgWordLength: "7.67",
// readingTimeMinutes: 1
// }Python - 고급 텍스트 분석
import re
from collections import Counter
def analyze_text(text):
# 글자 수
char_with_spaces = len(text)
char_without_spaces = len(re.sub(r'\s', '', text))
# 단어 수
words = re.findall(r'\b\w+\b', text.lower())
word_count = len(words)
# 문장 수
sentences = re.split(r'[.!?]+', text)
sentence_count = len([s for s in sentences if s.strip()])
# 문단 수
paragraphs = text.split('\n\n')
paragraph_count = len([p for p in paragraphs if p.strip()])
# 가장 빈번한 단어 (상위 5개)
word_freq = Counter(words)
top_words = word_freq.most_common(5)
# 평균 문장 길이 (단어 수)
avg_sentence_length = word_count / sentence_count if sentence_count > 0 else 0
# 평균 단어 길이
avg_word_length = sum(len(word) for word in words) / word_count if word_count > 0 else 0
# 읽기 시간 (200 단어/분)
reading_time = word_count / 200
return {
'char_with_spaces': char_with_spaces,
'char_without_spaces': char_without_spaces,
'word_count': word_count,
'sentence_count': sentence_count,
'paragraph_count': paragraph_count,
'avg_sentence_length': round(avg_sentence_length, 2),
'avg_word_length': round(avg_word_length, 2),
'reading_time_minutes': round(reading_time, 1),
'top_words': top_words
}
# 사용 예시
text = """
Text analysis is important for content creation.
It helps writers optimize their content for different platforms.
Analysis provides valuable insights.
"""
result = analyze_text(text)
print(result)React - 실시간 텍스트 분석 컴포넌트
import React, { useState, useEffect } from 'react';
function TextAnalyzer() {
const [text, setText] = useState('');
const [stats, setStats] = useState({
chars: 0,
words: 0,
sentences: 0,
paragraphs: 0
});
useEffect(() => {
const analyzeText = (input) => {
const chars = input.length;
const words = input.trim().split(/\s+/).filter(w => w.length > 0).length;
const sentences = input.split(/[.!?]+/).filter(s => s.trim().length > 0).length;
const paragraphs = input.split(/\n\s*\n/).filter(p => p.trim().length > 0).length;
setStats({ chars, words, sentences, paragraphs });
};
analyzeText(text);
}, [text]);
return (
<div>
<textarea
value={text}
onChange={(e) => setText(e.target.value)}
placeholder="텍스트를 입력하세요..."
rows={10}
cols={50}
/>
<div className="stats">
<div>글자 수: {stats.chars}</div>
<div>단어 수: {stats.words}</div>
<div>문장 수: {stats.sentences}</div>
<div>문단 수: {stats.paragraphs}</div>
<div>읽기 시간: {Math.ceil(stats.words / 200)}분</div>
</div>
</div>
);
}
export default TextAnalyzer;❓ 자주 묻는 질문 (FAQ)
Q1. 한글과 영문의 단어 수 계산 방식이 다른가요?
A. 네, 단어 구분 방식이 다릅니다:
영문:
• 공백으로 명확히 구분됨
• "I am happy" = 3단어
• 하이픈(-) 처리: "up-to-date"는 1단어 또는 3단어 (규칙에 따라 다름)
한글:
• 띄어쓰기 기준으로 구분
• "나는 행복해" = 2단어
• 띄어쓰기 오류 시 정확한 계산 어려움
혼합 텍스트:
• "나는 happy해" = 2단어로 계산 (띄어쓰기 기준)
고급 분석기는 형태소 분석을 통해 더 정확한 단어 수를 계산할 수 있습니다.
Q2. SNS 글자 수 제한은 공백 포함인가요, 제외인가요?
A. 플랫폼마다 다릅니다:
• Twitter/X: 공백 포함 (단, 이모지는 2자로 계산될 수 있음)
• Instagram: 공백 포함
• SMS (문자메시지): 공백 포함 (영문 160자, 한글 70자)
• 카카오톡: 제한 없음 (하지만 긴 메시지는 여러 개로 분할됨)
일반적으로 대부분의 플랫폼은 공백 포함으로 계산합니다. URL, 해시태그, 멘션 등은 특별히 처리되는 경우도 있습니다.
Q3. 이모지와 특수문자는 어떻게 계산되나요?
A. 인코딩 방식에 따라 다릅니다:
이모지:
• 대부분 1-2자로 계산됨
• Twitter: 2자로 계산 (이전에는 더 많이 차지함)
• 일부 복합 이모지 (👨👩👧👦)는 훨씬 많은 바이트를 차지하지만 1자로 보일 수 있음
특수문자:
• 대부분 1자로 계산
• ©, ®, ™ 등도 1자
정확한 계산이 필요하면 해당 플랫폼의 공식 계산 방식을 확인하세요.
Q4. "Dr. Smith"는 1문장인가요, 2문장인가요?
A. 1문장입니다. 하지만 단순 분석기는 2문장으로 잘못 계산할 수 있습니다.
문장 구분이 어려운 경우:
• 줄임말: Dr., Mr., Mrs., Inc., etc.
• 이니셜: A.B.C. Company
• 숫자: 3.14, $1.99
• 웹사이트: www.example.com
• 줄임표: 그래서... 결국...
해결책:
고급 분석기는 자연어 처리(NLP) 기술을 사용하여 문맥을 고려한 문장 구분을 수행합니다. 하지만 100% 정확도는 보장하기 어렵습니다.
Q5. Word와 Google Docs의 단어 수가 다른 이유는?
A. 계산 알고리즘이 조금씩 다르기 때문입니다:
차이가 나는 경우:
• 하이픈 처리: "up-to-date" (1단어 vs 3단어)
• 숫자 처리: "2024" (단어로 포함 vs 제외)
• 특수문자: 이메일, URL 등의 처리 방식
• 각주, 헤더, 푸터 포함 여부
일반적으로:
• Google Docs가 약간 더 너그러운 편
• Microsoft Word가 더 엄격한 편
• 차이는 보통 1-2% 이내
학술 논문 제출 시에는 사용한 도구를 명시하거나, 제출 플랫폼의 계산 방식을 따르세요.
Q6. 읽기 시간은 어떻게 계산되나요?
A. 평균 읽기 속도를 기반으로 계산됩니다:
일반적인 읽기 속도:
• 성인 묵독 (영문): 200-250 단어/분
• 성인 묵독 (한글): 300-400 자/분
• 속독: 400-700 단어/분
• 낭독: 150-160 단어/분
• 슬라이드 발표: 100-130 단어/분
계산 공식:
읽기 시간 (분) = 단어 수 / 평균 읽기 속도 (단어/분)
예시:
1,000 단어 글 ÷ 200 단어/분 = 5분
실제 읽기 시간은 텍스트 난이도, 독자의 배경 지식, 집중도 등에 따라 달라집니다.
💡 사용 팁
- 실시간 확인: 작성하면서 실시간으로 통계를 확인하여 목표 길이에 맞게 조절하세요.
- 플랫폼 확인: 제출할 플랫폼의 글자 수 계산 방식을 미리 확인하세요.
- 여유 공간: 제한 길이보다 5-10% 짧게 작성하면 안전합니다.
- 가독성: 단어 수만큼 중요한 것은 문장 구조와 가독성입니다.
- SEO 최적화: 블로그 포스트는 최소 300단어 이상 작성하는 것이 SEO에 유리합니다.
- 문단 나누기: 긴 글은 3-4문장마다 문단을 나누면 가독성이 향상됩니다.
- 모바일 고려: 모바일에서는 짧은 문장과 문단이 더 읽기 쉽습니다.
- 읽기 시간 표시: 블로그나 뉴스 기사에 읽기 시간을 표시하면 참여도가 증가합니다.
- 목표 설정: 작성 전 목표 단어 수를 정하고, 진행 상황을 추적하세요.
⚠️ 주의사항
- 계산 방식 차이: 도구마다 계산 방식이 다를 수 있으니 중요한 경우 여러 도구로 확인하세요.
- 복사-붙여넣기: 다른 곳에서 복사한 텍스트는 보이지 않는 문자가 포함될 수 있습니다.
- 포맷 제거: 글자 수만 중요한 경우 모든 포맷을 제거한 순수 텍스트를 사용하세요.
- 언어 혼용: 한글과 영문이 혼용된 경우 단어 수 계산이 부정확할 수 있습니다.
- 특수 케이스: 코드, 수식, 표 등은 일반 텍스트와 다르게 처리될 수 있습니다.
- 자동 완성: 자동 완성 기능이 있는 에디터는 글자 수가 달라질 수 있습니다.
- 타임존: 읽기 시간은 참고용이며, 실제 독자의 읽기 속도는 매우 다양합니다.
- 품질 > 분량: 글자 수보다 내용의 질이 더 중요합니다. 억지로 채우지 마세요.
- 인용 처리: 인용문, 각주 등의 포함 여부를 명확히 하세요.