← 2026-02-25 목록으로

Ů̳̠̗̮̥́̉͗̍̋̔̓ͅͅI̯̰̦̰͎̾̀͑̈́͛́͋̒̐͑͐를 파괴하는 이상한 문자


핵심 요약

유니코드는 지구상의 모든 문자를 담고 있지만, 허점을 이용한 ‘잘고(Zalgo)’ 문자로 UI를 파괴하거나 비밀 메시지를 숨기는 등의 악용 사례가 발생하고 있습니다. 또한, 모양은 같지만 번호가 다른 호모글리프 문자를 이용한 피싱이나 코드 보안 위협도 존재합니다. 이러한 유니코드의 복잡성으로 인한 보안 위협과 불편함은 존재하지만, 모든 문자를 자유롭게 표현하기 위해 감수해야 하는 부분입니다.


주요 내용

유니코드의 특징과 ‘잘고(Zalgo)’

유니코드는 15만 자 이상의 지구상 모든 문자를 담고 있는 목록이며, 컴퓨터에서 문자를 다루는 표준으로 사용됩니다. 숫자, 알파벳, 이집트 문자, 마작패, 이모지, 한글, 중국 한자 등 다양한 문자를 포함하며, 특히 성조나 발음 기호와 같은 ‘non-spacing mark’는 독립적인 공간을 차지하지 않고 앞선 문자에 자동으로 결합됩니다. 이러한 유니코드의 문법적 특성을 이용하면 ‘잘고(Zalgo)’라는 문자를 통해 UI를 파괴하거나 특이한 문자열을 만들 수 있습니다.

유니코드의 투명 문자와 비밀 메시지

유니코드에는 ‘zero width joiner’와 같이 문자를 결합하거나 투명하게 만드는 특수한 문자들(투명 문자)이 존재합니다. 이를 활용하여 이모지를 합쳐 새로운 이모지를 만들거나(예: 곰 + 눈송이 = 북극곰), 문자 안에 비밀 메시지를 숨길 수 있습니다. 일부 사이트에서는 이러한 문법용 문자를 0과 1로 표현하여 데이터를 숨기기도 하며, 출력 시 투명하게 보이는 유니코드 문자를 이용해 영어 알파벳과 유사하게 메시지를 기록하는 경우도 있습니다. 이러한 기능은 ARG 게임, 블로그 워터마크, 프롬프트 인젝션 등에 활용될 수 있으며, 에이전트 사용 시 주의가 필요합니다.

유니코드 렌더링 오류와 코드 장난질

유니코드의 복잡성으로 인해 글자 렌더링 과정에서 운영체제가 멈추거나 기기가 재시작되는 현상이 발생하기도 했습니다. 과거 아이폰에서는 특정 문자로 인해 기기가 강제로 재시작되는 사례가 있었습니다. 또한, 코딩 시 유니코드의 특징을 이용한 장난질도 가능합니다.

호모글리프 문자와 보안 위협

겉보기에는 같지만 유니코드 상에서는 다른 번호를 가진 문자를 ‘호모글리프’라고 부릅니다. 예를 들어, 키릴 문자의 ‘A’와 알파벳 ‘A’는 같은 모양이지만 다른 번호를 가집니다. 이러한 호모글리프 문자를 이용하면 유명 도메인과 유사한 가짜 도메인을 만들어 피싱에 악용할 수 있습니다. 사용자가 이러한 가짜 도메인에 접속하면 공식 사이트가 아닌 악성 사이트로 이동될 수 있습니다. 백엔드 코드 작성 시에도 ‘admin’과 같이 특정 단어를 금지하는 보안 로직이 호모글리프를 이용하면 우회될 수 있어, 회원 가입 시 ID에 사용 가능한 문자를 알파벳으로 제한하는 등의 조치가 필요합니다.

Zalgo 및 투명 문자 방어 방법

‘잘고(Zalgo)’ 현상을 막기 위해 CSS의 ‘overflow’ 속성을 사용하거나, 발음 기호와 같은 특정 유니코드 문자를 정규식으로 걸러내는 방법이 있습니다. 하지만 발음 기호의 경우 여러 개가 중첩되는 다국어도 있어 무분별한 차단은 불편을 초래할 수 있습니다. 투명 문자가 문제가 될 경우, 해당 문자만 스트립(제거)하는 것이 적절할 수 있습니다.


핵심 데이터 / 비교표

(본 영상에서는 구체적인 수치나 비교 데이터가 핵심적으로 제시되지 않아 생략합니다.)


타임스탬프별 핵심 포인트

| 시간 | 핵심 내용 | |—|—| | 00:00 | UI를 파괴하는 ‘잘고(Zalgo)’ 문자에 대한 소개. | | 00:20 | 유니코드의 정의와 특성 (15만 자, 표준). | | 00:40 | 유니코드에 포함된 다양한 문자 종류 (숫자, 알파벳, 이집트 문자, 마작패, 이모지, 한글, 한중일 문자, 성조/발음기호). | | 01:10 | ‘non-spacing mark’의 작동 방식 (앞 문자에 자동 결합). | | 01:30 | ‘잘고(Zalgo)’ 문자가 UI를 파괴할 수 있는 원리. | | 01:45 | 유니코드의 투명 문자: ‘zero width joiner’를 이용한 문자 결합. | | 02:10 | 이모지 결합 예시 (곰+눈송이=북극곰, 남자+프라이팬=남자 요리사). | | 02:25 | 투명 문자를 이용한 비밀 메시지 숨기기. | | 02:40 | ‘zero width space’ 등 투명 유니코드 문자를 이용한 메시지 기록. | | 02:55 | ARG 게임, 블로그 워터마크, 프롬프트 인젝션 등 활용 사례. | | 03:10 | 유니코드 렌더링 오류로 인한 OS 다운 및 기기 재시작 사례 (구형 아이폰). | | 03:30 | 코딩 시 유니코드 문자를 이용한 장난질 (동일하게 보이는 다른 문자). | | 03:45 | 호모글리프(Homoglyph)의 개념 (모양은 같으나 번호가 다른 문자). | | 04:00 | 호모글리프를 이용한 피싱 공격 사례 (유명 도메인 위조). | | 04:30 | 브라우저의 호모글리프 도메인 감지 및 퓨니코드 변환. | | 04:45 | 백엔드 코드 보안 위협 (ID 검증 우회). | | 05:10 | ‘잘고(Zalgo)’ 방어 방법 (overflow 속성, 정규식). | | 05:35 | 투명 문자 제거의 필요성. | | 05:45 | 유니코드의 복잡성으로 인한 보안 위협 및 불편함 감수 필요성. |


결론 및 시사점

본 영상은 유니코드라는 보편적인 문자 체계가 가진 기술적 특성이 어떻게 예상치 못한 보안 위협과 시스템 불안정성을 야기할 수 있는지 보여줍니다. ‘잘고(Zalgo)’ 문자를 이용한 UI 파괴, 투명 문자를 활용한 비밀 메시지 은닉, 그리고 호모글리프 문자를 통한 피싱 및 코드 보안 취약점은 유니코드의 복잡성과 허점을 악용한 사례들입니다. 이러한 문제들에 대한 방어 메커니즘이 제시되지만, 궁극적으로는 세상의 모든 문자를 자유롭게 표현하기 위해 감수해야 하는 부분으로 해석됩니다. 따라서 개발자나 보안 담당자는 유니코드의 특성을 충분히 이해하고 잠재적인 보안 위협에 대비해야 할 필요가 있습니다.


추가 학습 키워드

  1. 유니코드 인코딩 (UTF-8, UTF-16)
  2. 제로 너비 문자 (Zero-width characters)
  3. 호모글리프 공격 (Homograph attack)
  4. 프롬프트 인젝션 (Prompt Injection)
  5. 퓨니코드 (Punycode)

기본 정보

| 항목 | 내용 | |—|—| | 채널 | 코딩애플 | | 카테고리 | 프로그래밍 | | 게시일 | 2026-02-25 | | 영상 길이 | 4:39 | | 처리 엔진 | gemini-2.5-flash-lite+transcript | | 원본 영상 | YouTube에서 보기 |