닉네임 뒤에 이모지 하나를 붙였다고 해봅시다. 딱 하나 늘었으니 괜찮겠지 싶었는데, 입력창은 글자 수 초과라고 합니다.
분명 하나인데. 입력창은 대답이 단호합니다.

닉네임 장면은 가상 상황입니다. 특정 앱의 글자 제한을 재현한 화면은 아닙니다.
한 덩어리로 보여도, 안에는 여럿일 수 있어요
가족 이모지를 보면 가족 한 묶음으로 보입니다. 그런데 안에는 사람 기호 네 개와 그 사이를 잇는 문자 세 개가 들어 있습니다.

겉에서 한 명처럼 보여도, 안까지 한 명인 것은 아니네요.
글자도 비슷합니다. 눈으로 읽는 한 덩어리와 프로그램이 세는 한 단위는 다를 수 있습니다. 모든 이모지가 여러 기호로 이루어진 것은 아닙니다. 웃는 얼굴 하나처럼 구성 기호가 하나인 경우도 있고요.[1]
같은 이모지인데, 세는 기준이 다르면
같은 가족 이모지 문자열을 두 기준으로 센 예시입니다. 앱의 닉네임 제한값을 측정한 것이 아닙니다.
그림은 하나지만, 프로그램 내부에서 사용하는 단위로 세면 이 예시처럼 다른 숫자가 나올 수 있습니다. 하나의 계산이 틀린 게 아니라, 센 대상이 다른 것입니다.[2]
그렇다고 가족 이모지는 모든 앱에서 11글자라는 뜻은 아닙니다. 어떤 단위를 제한에 쓸지는 앱마다 다릅니다. 표시 모양도 글꼴이나 지원 환경에 따라 달라질 수 있습니다.
다시 세기 전에, 입력창의 기준부터
제한을 넘겼다면 이모지를 잠시 빼보세요. 단순한 문자로 바꿔보는 것도 방법입니다. 그다음 그 앱이 보여주는 안내와 카운터를 확인합니다.
화면의 한 덩어리와 내부 구성을 구분해야 하니, 세는 기준도 나뉩니다. 다만 한 계산법이 모든 앱의 글자 제한까지 대신 정해 주지는 않습니다.
- 눈에 하나로 보여도 내부 구성은 여러 조각일 수 있습니다.
- 이모지마다 구성은 다르고, 앱마다 세는 기준도 다릅니다.
- 초과하면 이모지를 잠시 빼고 앱의 안내와 카운터를 확인합니다.
내 눈에는 한 팀. 입력창은 명단까지 세고 있었을 수 있습니다.
[1] Unicode UAX #29 — 사용자 인식 문자 묶음
[2] MDN String.length. 내부 UTF-16 코드 단위와 문자 묶음이 다를 수 있습니다. 로컬 재현: 지정 가족 문자열의 묶음 1, UTF-16 단위 11. 실행 방법은 검수 근거에 보존했습니다.
이모지 그림: Twemoji, Twitter contributors / CC BY 4.0. 크기 조정. 반응 장면은 실제 앱 오류 화면이 아닙니다.