WebToyz 가이드

UTF-8 바이트 제한을 실수 없이 확인하는 법

한글, 이모지, 특수문자가 포함된 텍스트를 API나 데이터베이스 필드에 넣기 전에 바이트 기준으로 검수하는 방법입니다.

대상: 개발자, 운영자, 데이터 입력 제한을 자주 확인하는 사용자

한 글자가 항상 1바이트는 아닙니다

영문과 숫자만 다룰 때는 글자 수와 바이트 수가 비슷하게 느껴집니다. 하지만 한글, 이모지, 일부 특수문자가 들어오면 화면에 보이는 글자 수보다 저장에 필요한 바이트가 더 커질 수 있습니다.

이 차이는 API 요청 제한, 데이터베이스 컬럼 길이, SMS 길이, 외부 서비스 validation에서 문제가 됩니다. 사용자는 짧게 썼다고 생각했는데 시스템은 제한 초과로 거절할 수 있습니다.

String Length에서 UTF-8 바이트를 같이 확인하면 이런 실패를 배포 전이나 입력 전 단계에서 줄일 수 있습니다.

검수해야 하는 대표 상황

첫째, 관리자 화면에서 제목이나 설명을 저장할 때입니다. UI는 50자라고 안내하지만 실제 백엔드는 100바이트 제한을 둘 수 있습니다.

둘째, 외부 API에 메시지나 이름을 보낼 때입니다. API 문서가 byte limit을 말하면 문자 수만 봐서는 충분하지 않습니다.

셋째, 이모지를 포함한 마케팅 문구입니다. 이모지는 시선을 끌지만 바이트와 렌더링 차이를 키우므로 중요한 필드에서는 별도 확인이 필요합니다.

줄이는 방법

바이트가 초과되면 먼저 이모지와 장식 기호를 줄입니다. 그다음 중복된 수식어를 제거하고, 의미가 겹치는 단어를 하나로 합칩니다.

한글 문장을 무리하게 영문 약어로 바꾸면 독자가 이해하기 어려울 수 있습니다. 제한을 맞추는 것보다 메시지의 정확성이 먼저이므로 핵심 정보가 유지되는지 함께 확인해야 합니다.

제한이 엄격한 시스템에는 최종 문구를 저장 전 테스트 데이터로 한 번 넣어 보는 것이 가장 안전합니다.

관련 도구