SMS 건수 계산기란?
이 도구는 작성한 문자 메시지가 몇 개의 SMS 세그먼트를 사용하는지, 어떤 방식(GSM-7 또는 UCS-2/유니코드)으로 인코딩되는지, 그리고 새 세그먼트가 추가되기까지 몇 글자가 남았는지를 알려줍니다. 통신사는 세그먼트 단위로 요금을 부과하기 때문에, 화면에 한 개로 보이는 "메시지"라도 글자 수가 한도를 넘으면 여러 건의 SMS 요금이 청구될 수 있습니다.
사용 방법
메시지를 붙여넣거나 직접 입력한 다음 인코딩 방식을 선택하세요. 자동 감지는 모든 글자가 GSM-7 문자 집합에 속하면 GSM-7을 선택하고, 그렇지 않으면 UCS-2로 전환합니다. 두 인코딩 중 하나를 강제로 지정해 요금 차이를 미리 확인할 수도 있습니다.
계산 공식 풀이
세그먼트가 하나인 메시지는 GSM-7에서 160자, UCS-2에서 70자까지 담을 수 있습니다. 이 한도를 넘으면 각 세그먼트에 연결(concatenation) 헤더가 붙어야 하므로, 세그먼트당 용량이 GSM-7은 153자, UCS-2는 67자로 줄어듭니다. 세그먼트 수는 올림(글자 수 / 세그먼트당 한도)로 계산합니다.
$$\text{Segments} = \begin{cases} 1 & L \le 160 \\[4pt] \left\lceil \dfrac{L}{153} \right\rceil & L > 160 \end{cases} \qquad L = \text{GSM-7 length of }\text{Message}$$
$$\text{Segments} = \begin{cases} 1 & L \le 70 \\[4pt] \left\lceil \dfrac{L}{67} \right\rceil & L > 70 \end{cases} \qquad L = \text{length of }\text{Message}$$
예시로 살펴보기
200자짜리 GSM-7 메시지는 단일 세그먼트 한도인 160자를 넘으므로 분할(멀티파트)이 적용됩니다. 올림(200 / 153) = 2 세그먼트가 됩니다. 총 용량은 2 × 153 = 306자이므로, 세 번째 세그먼트가 필요해지기까지 306 − 200 = 106자가 남아 있습니다.
$$\left\lceil \frac{200}{153} \right\rceil = 2$$
$$2 \times 153 = 306$$
$$306 - 200 = 106$$
자주 묻는 질문
왜 160자가 아니라 153자에서 나뉘나요? 멀티파트 메시지는 휴대폰이 조각난 메시지를 다시 합칠 수 있도록 세그먼트마다 7바이트를 헤더용으로 예약하기 때문입니다.
어떤 경우에 UCS-2 인코딩으로 바뀌나요? GSM-7 문자 집합에 없는 글자가 하나라도 들어가면 — 흔히 쓰는 이모지, 둥근 따옴표, 많은 악센트 문자 등 — 메시지 전체가 UCS-2로 전환되어 한도가 70/67자로 줄어듭니다. 참고로 한글도 GSM-7에 포함되지 않으므로, 한글 메시지는 UCS-2로 인코딩되어 세그먼트당 70자(분할 시 67자) 기준이 적용됩니다.
GSM-7 확장 문자는 요금이 더 드나요? {, }, [, ], |, ^, ~, \, € 같은 문자는 이스케이프 문자가 필요해 GSM-7에서 각각 2단위를 차지합니다.