● 실시간 분석
글자 0자|공백 제외 0자|단어 0개|줄 0줄
📊

텍스트를 입력하면 실시간으로 분석됩니다

📚 텍스트 분석기란?

텍스트 분석기(Text Analyzer)는 입력된 텍스트의 다양한 통계 정보를 자동으로 계산하는 도구입니다. 글자 수, 단어 수, 문장 수, 문단 수 등을 실시간으로 분석하여 작성자가 텍스트의 길이와 구조를 쉽게 파악할 수 있도록 도와줍니다.

🎯 주요 분석 항목

  • 글자 수 - 공백 포함/제외 문자 개수
  • 단어 수 - 공백으로 구분된 단어의 개수
  • 문장 수 - 마침표, 물음표, 느낌표로 끝나는 문장 개수
  • 문단 수 - 줄바꿈으로 구분된 문단 개수
  • 읽기 시간 - 평균 읽기 속도 기준 예상 소요 시간
  • 특수문자 수 - 숫자, 기호 등의 개수

🎯 사용 사례

1. SNS 글자 수 제한 준수

각 SNS 플랫폼마다 글자 수 제한이 있습니다. 텍스트 분석기로 실시간으로 글자 수를 확인하면서 적절한 길이의 게시물을 작성할 수 있습니다.

플랫폼별 글자 수 제한:
• Twitter/X: 280자 (영문 기준, 한글은 다를 수 있음)
• Instagram 캡션: 2,200자
• Facebook 게시물: 63,206자 (권장: 40-80자)
• LinkedIn: 3,000자
• YouTube 설명: 5,000자

2. SEO 최적화

검색 엔진 최적화를 위해 메타 설명, 제목 태그, 본문 내용의 길이를 최적화해야 합니다. 권장 길이를 준수하면 검색 결과에서 더 잘 노출됩니다.

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/자)
• 일문/중문: 글자당 요금

6. 콘텐츠 작성

블로그, 뉴스 기사, 마케팅 자료 등을 작성할 때 적절한 길이를 유지하면 독자의 참여도가 높아집니다. 읽기 시간도 함께 고려하세요.

콘텐츠 유형별 권장 길이:
• 블로그 포스트: 1,500-2,500단어 (7-10분 읽기)
• 뉴스 기사: 500-800단어
• 제품 설명: 300-500단어
• 랜딩 페이지: 500-1,000단어

📊 텍스트 통계 지표 설명

1. 글자 수 (Character Count)

텍스트에 포함된 모든 문자의 개수입니다. 보통 두 가지로 구분됩니다:

  • 공백 포함: 모든 문자 (공백, 탭, 줄바꿈 포함)
  • 공백 제외: 실제 문자만 (letters, digits, punctuation)
예시: "Hello World!"
• 공백 포함: 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문장마다 문단을 나누면 가독성이 향상됩니다.
  • 모바일 고려: 모바일에서는 짧은 문장과 문단이 더 읽기 쉽습니다.
  • 읽기 시간 표시: 블로그나 뉴스 기사에 읽기 시간을 표시하면 참여도가 증가합니다.
  • 목표 설정: 작성 전 목표 단어 수를 정하고, 진행 상황을 추적하세요.

⚠️ 주의사항

  • 계산 방식 차이: 도구마다 계산 방식이 다를 수 있으니 중요한 경우 여러 도구로 확인하세요.
  • 복사-붙여넣기: 다른 곳에서 복사한 텍스트는 보이지 않는 문자가 포함될 수 있습니다.
  • 포맷 제거: 글자 수만 중요한 경우 모든 포맷을 제거한 순수 텍스트를 사용하세요.
  • 언어 혼용: 한글과 영문이 혼용된 경우 단어 수 계산이 부정확할 수 있습니다.
  • 특수 케이스: 코드, 수식, 표 등은 일반 텍스트와 다르게 처리될 수 있습니다.
  • 자동 완성: 자동 완성 기능이 있는 에디터는 글자 수가 달라질 수 있습니다.
  • 타임존: 읽기 시간은 참고용이며, 실제 독자의 읽기 속도는 매우 다양합니다.
  • 품질 > 분량: 글자 수보다 내용의 질이 더 중요합니다. 억지로 채우지 마세요.
  • 인용 처리: 인용문, 각주 등의 포함 여부를 명확히 하세요.