광고 영역 (728×90)

글자수와 바이트(byte)는 다른 개념입니다. 눈에 보이는 글자 하나가 컴퓨터 내부에서 몇 byte를 차지하는지는 어떤 인코딩 방식을 사용하느냐에 따라 달라집니다. SMS 발송, 데이터베이스 저장, API 요청 시 이 차이를 모르면 예상치 못한 오류가 발생할 수 있습니다.

글자수 vs 바이트, 핵심 차이

글자수는 우리가 눈으로 세는 문자의 개수입니다. "안녕"은 2글자입니다. 반면 바이트는 컴퓨터가 그 문자를 저장하기 위해 필요한 메모리 크기입니다. "안녕"은 인코딩에 따라 4byte(EUC-KR) 또는 6byte(UTF-8)를 차지합니다.

A1 byte
11 byte
@1 byte
|
2~3 byte
2~3 byte
2~3 byte
|
😀4 byte
🎉4 byte

UTF-8 vs EUC-KR 인코딩

한글을 처리하는 대표적인 인코딩 방식은 두 가지입니다.

UTF-8 (현대 표준)
영문·숫자1 byte
한글3 byte
이모지4 byte
웹, 앱 개발의 표준. 전 세계 문자 지원.
EUC-KR (구형)
영문·숫자1 byte
한글2 byte
이모지지원 안 함
국내 레거시 시스템, SMS 발송에 사용.

SMS 발송에서 중요한 이유

국내 SMS 발송 시스템은 대부분 EUC-KR 인코딩을 기준으로 글자수를 제한합니다. 단문(SMS)은 90byte, 장문(LMS)은 2,000byte가 한도입니다.

종류byte 한도한글 기준 글자수과금
SMS (단문)90 byte약 45자저렴
LMS (장문)2,000 byte약 1,000자중간
MMS (멀티미디어)이미지 포함제한 상이비쌈

주의: SMS를 90byte 이내로 작성해도 수신자 이름 등 변수가 들어가면 초과될 수 있습니다. 발송 전 반드시 실제 내용으로 바이트를 계산하세요.

데이터베이스 저장 시 주의사항

MySQL 등 데이터베이스에서 VARCHAR(100)은 100글자가 아닌 100byte를 의미하는 경우가 있습니다. UTF-8로 설정된 DB에서 한글 100자를 저장하려면 VARCHAR(300) 이상이 필요합니다.

개발 팁: MySQL 5.5 이후부터는 utf8mb4를 사용하는 것이 권장됩니다. 이모지(4byte)까지 정상 저장되기 때문입니다. utf8 설정만으로는 이모지가 저장되지 않을 수 있습니다.

정리

  • 글자수 = 눈에 보이는 문자 개수
  • 바이트 = 실제 메모리 크기 (인코딩에 따라 다름)
  • 한글 1글자 = UTF-8에서 3byte, EUC-KR에서 2byte
  • SMS 발송은 EUC-KR 기준 90byte(약 45자) 이내
  • DB 설계 시 한글을 고려한 byte 여유 확보 필요

바이트 계산기로 직접 확인해보기

UTF-8, EUC-KR 인코딩별 바이트 수와 SMS 발송 가능 여부를 실시간으로 확인하세요

바이트 계산기 →

광고 영역 (300×250)