아주아주 짧은 글을 위한 소셜 미디어 시장의 틈새를 발견했어요. 이제 Twitter가 280자 글을 허용하면서, 빠른 소셜 미디어 소식을 원하는 사람들은 제대로 된 서비스를 받지 못하고 있어요. 그래서 직접 소셜 미디어 네트워크를 만들기로 했어요.
제품을 눈에 띄게 만들기 위해 과감한 선택을 하고, 5자 이하의 글만 허용해요. 5자를 넘는 글은 5자로 잘라야 해요.
사용자가 마음껏 자신을 표현할 수 있도록 이모지와 그 밖의 유니코드도 허용해요.
해야 할 일은 입력 문자열을 5자로 자르는 거예요.
디지털로 저장되는 텍스트는 일련의 바이트로 변환되어야 해요. 문자를 바이트로 매핑하는 방법 중 흔히 쓰이는 것은 세 가지예요.
UTF-8과 UTF-16은 둘 다 유니코드 인코딩이라서, 다음과 같은 아주 다양한 문자를 표현할 수 있어요.
UTF-8과 UTF-16은 둘 다 가변 길이 인코딩이라서, 문자마다 차지하는 공간의 크기가 달라요.
'a'라는 글자와 '😛'라는 이모지를 생각해 봐요. UTF-16에서 'a'는 2바이트를 차지하지만 '😛'는 4바이트를 차지해요.
이 연습 문제의 핵심은 유니코드 코드 유닛 대신 유니코드 문자(코드포인트)를 기준으로 설계된 API를 사용하는 거예요.
8.1 버전에서 Tcl의 문자열은 유니코드 문자를 매끄럽게 처리할 수 있었어요. 당시에는 그것이 상당히 획기적인 일이었어요. 하지만 유니코드 문자가 점점 더 많이 만들어지면서, Tcl이 그 문자를 처리하는 능력은 뒤처지게 되었어요.
Tcl의 내부 구현은 16비트 유니코드 문자만 처리할 수 있었고, 이는 처음 65,526개 문자만 다루는 범위였어요. 이 Tcl 위키 페이지, 특히 "AndroWish" 언어에 관한 논의에서 그 이유를 알 수 있어요.
Tcl 9.0은 전체 유니코드 문자 집합을 처리할 수 있는 첫 번째 버전이에요. 따라서 이 연습 문제는 Tcl 9.0 버전에서만 (쉽게) 풀 수 있어요.
Exercism에 가입하고 Tcl 트랙을 연습 문제 135개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.