본문 바로가기
Python

한글 문자 수와 바이트 수가 다른 이유: 입력 제한을 확인하는 방법

by 공학텔러 2026. 9. 24.

알림 메시지, 데이터베이스 필드, 외부 API 입력값에는 문자 수가 아니라 바이트 수 제한이 걸리는 경우가 있습니다. 화면에서 보기에 50글자여도 UTF-8 기준 바이트 수는 더 클 수 있어, 한글이 많은 문장이 예상보다 빨리 제한에 닿을 수 있습니다.

문자 수와 바이트 수는 같은 숫자가 아닙니다

문자 수는 화면에서 보이는 글자 개수에 가깝습니다. 바이트 수는 그 문자가 저장·전송될 때 차지하는 크기입니다. UTF-8에서는 영문과 숫자, 한글, 이모지의 바이트 수가 서로 다를 수 있습니다.

따라서 “100자 제한”이라는 말만 듣고 문장을 줄이면 실제 조건을 놓칠 수 있습니다. 먼저 해당 서비스가 문자 수 기준인지, UTF-8 바이트 기준인지, 줄 바꿈과 공백도 포함하는지 확인해야 합니다.

제한 확인 순서

1. API 문서나 입력 화면에서 제한 단위를 확인합니다.
2. 실제 전송할 문장을 기준으로 문자 수와 바이트 수를 함께 셉니다.
3. 한글·이모지·줄 바꿈을 포함한 최종 문장을 다시 확인합니다.
4. 제한에 가까우면 핵심 문장부터 남기고, 잘린 문장이 의미를 바꾸지 않는지 검토합니다.

바로정리의 문장 정리 도구는 입력값과 정리 결과의 글자 수, UTF-8 바이트 수를 함께 보여 줍니다.

도구: https://barojungri-tools-yh.yonggoo0001.chatgpt.site/

파이썬에서 직접 확인하는 예시

python
message = "배포 일정 확인 부탁드립니다"
print(len(message))
print(len(message.encode("utf-8")))


len(message)는 파이썬 문자열의 길이를, len(message.encode("utf-8"))는 UTF-8로 바꿨을 때의 바이트 수를 보여 줍니다. 실제 서비스가 다른 인코딩이나 특수한 계산 방식을 쓰면 그 규칙을 우선해야 합니다.

정리

입력 제한 오류는 문장이 너무 길어서가 아니라, 무엇을 길이로 세는지 다르게 이해해서 생기기도 합니다. 문자 수와 바이트 수를 분리해 보고, 최종 전송값으로 확인하는 습관을 들이면 불필요한 재시도를 줄일 수 있습니다.

댓글