전각과 반각, 무엇이 다른가요
전각(全角)은 한글·한자 한 글자와 같은 정사각형 칸을 차지하도록 만든 영문·숫자·기호이고, 반각(半角)은 그 절반 너비로 표시되는 일반 ASCII 문자입니다. 겉모습은 폭만 다르게 보이지만 컴퓨터에는 서로 완전히 다른 문자입니다. 전각 'A'는 U+FF21, 반각 'A'는 U+0041로 코드가 달라서, 단순 문자열 비교나 찾기 기능에서는 반각 A로 전각 A가 들어 있는 문서를 찾지 못하고, 입력 양식이 "영문과 숫자만 허용"하는 경우 전각 문자는 오류로 거부되기도 합니다. 일본어·중국어 문서를 복사했거나, 옛 한글 문서와 일부 공공기관 서식, PDF에서 긁어낸 텍스트에서 이런 문자가 섞여 들어오는 일이 흔합니다. 이 도구는 그런 텍스트를 한쪽 형태로 통일해 주는 변환기이며, 모든 처리는 이 페이지 안의 스크립트가 입력창의 문자열만 대상으로 수행합니다.
변환 원리: 코드에 0xFEE0을 더하고 뺀다
유니코드의 "Halfwidth and Fullwidth Forms" 블록은 ASCII의 눈에 보이는 문자 94개(U+0021~U+007E)를 U+FF01부터 같은 순서로 복제해 두었습니다. 그래서 반각 → 전각은 코드에 FEE0(십진수 65248)를 더하고, 전각 → 반각은 그만큼 빼면 됩니다. 공백만 예외로, 반각 공백은 U+0020이고 전각 공백(U+3000)은 별도 코드라 규칙과 따로 처리합니다.
| 구분 | 개수 | 반각 코드 범위 | 전각 코드 범위 |
|---|---|---|---|
| 대문자 A-Z | 26 | U+0041~U+005A | U+FF21~U+FF3A |
| 소문자 a-z | 26 | U+0061~U+007A | U+FF41~U+FF5A |
| 숫자 0-9 | 10 | U+0030~U+0039 | U+FF10~U+FF19 |
| 기호·문장부호 전체 (!부터 ~까지) | 94 | U+0021~U+007E | U+FF01~U+FF5E |
| 반각 | 반각 코드 | 전각 | 전각 코드 |
|---|---|---|---|
| A | U+0041 | A | U+FF21 |
| z | U+007A | z | U+FF5A |
| 7 | U+0037 | 7 | U+FF17 |
| ! | U+0021 | ! | U+FF01 |
| ( | U+0028 | ( | U+FF08 |
| ~ | U+007E | ~ | U+FF5E |
| @ | U+0040 | @ | U+FF20 |
위 표의 수치는 페이지를 만들 때 코드로 직접 계산한 값입니다. 기호 94자 범위 안에 영문 대소문자 52자와 숫자 10자가 모두 들어 있어, 별도 표 없이 하나의 덧셈 규칙으로 처리됩니다.
이 도구가 바꾸는 문자와 바꾸지 않는 문자
바꾸는 문자는 U+FF01~U+FF5E(전각 영문·숫자·기호), 전각 공백 U+3000, 그리고 아래 표의 전각 통화·부호 7종입니다. 이 7종은 반각 대응 문자가 ASCII가 아니라 U+00A2 같은 별도 위치에 있어 규칙과 따로 매핑해 처리합니다. 반대 방향(반각 → 전각)에서는 ASCII 94자와 공백, 그리고 아래 7종의 반각 형태를 바꿉니다.
| 이름 | 전각 | 전각 코드 | 반각 | 반각 코드 |
|---|---|---|---|---|
| 센트 기호 | ¢ | U+FFE0 | ¢ | U+00A2 |
| 파운드 기호 | £ | U+FFE1 | £ | U+00A3 |
| 부정 기호 | ¬ | U+FFE2 | ¬ | U+00AC |
| 윗줄(마크론) |  ̄ | U+FFE3 | ¯ | U+00AF |
| 끊어진 세로선 | ¦ | U+FFE4 | ¦ | U+00A6 |
| 엔/위안 기호 | ¥ | U+FFE5 | ¥ | U+00A5 |
| 원화 기호 | ₩ | U+FFE6 | ₩ | U+20A9 |
반면 반각 가타카나(アイウ, U+FF71~)와 반각 한글 자모(ᄀ, U+FFA1~)는 같은 블록에 있지만 이 도구의 변환 대상이 아닙니다. 반각 가타카나는 전각 가타카나(ア, U+30A2)와 단순한 덧셈 관계가 아니며, 탁점(ガ)은 문자 두 개가 한 글자로 합쳐져야 하기 때문입니다. 필요하다면 자바스크립트의 normalize('NFKC')가 이를 처리하는데, 'ガ'(2코드)가 'ガ'(1코드)로 바뀌고 '㈜'가 '(주)'로 풀리는 것처럼 호환 문자 전반을 한꺼번에 바꾸기 때문에 의도하지 않은 변화까지 생길 수 있어 이 도구는 쓰지 않았습니다. 물결표도 주의하세요. 전각 물결 '~'(U+FF5E)는 반각 '~'로 바뀌지만, 한국어 문서에 자주 보이는 파동 대시 '〜'(U+301C)는 전각 형태 블록 바깥이라 그대로 남습니다.
검산한 변환 예시
- 예시 1. 입력 'Hello 123!' → 결과 'Hello 123!'. 공백(U+3000)과 느낌표(U+FF01)까지 한 번에 바뀝니다.
- 예시 2. 입력 '주문번호:AB-1234' → 결과 '주문번호:AB-1234'. 한글은 그대로 두고 전각 콜론, 영문, 전각 하이픈(-, U+FF0D)과 숫자만 바뀝니다. 하이픈이 전각이면 전화번호·품번 검색이 어긋나는 대표적인 원인입니다.
- 예시 3. 입력 'ABC123'(6자)은 UTF-8로 18바이트이지만 변환 결과 'ABC123'는 6바이트입니다. 글자 수는 같아도 바이트 길이가 정확히 3배 차이 나므로, 바이트 단위로 길이를 제한하는 시스템에서 차이가 납니다.
실제로 마주치는 문자열 네 가지
전각 문자가 문제를 일으키는 곳은 대개 식별자와 숫자입니다. 아래 표는 흔히 겪는 네 종류의 문자열을 이 도구의 전각 → 반각 규칙과 똑같이 빌드 시 변환한 결과입니다. 글자 수는 유니코드 문자 단위이고, 바이트는 UTF-8로 인코딩했을 때의 길이입니다. 마지막 칸은 결과를 반각 → 전각으로 되돌렸을 때 원문과 똑같아지는지를 확인한 값입니다.
| 종류 | 변환 전 | 변환 후 | 글자 수 | 바이트(전→후) | 되돌리면 원문과 같음 |
|---|---|---|---|---|---|
| 전화번호 | 010-1234-5678 | 010-1234-5678 | 13 | 39→13 | 예 |
| 이메일 | hong@example.com | [email protected] | 16 | 48→16 | 예 |
| 금액 | ¥1,200 | ¥1,200 | 6 | 18→7 | 예 |
| 파일명 | 보고서_v2(최종).xlsx | 보고서_v2(최종).xlsx | 15 | 45→25 | 예 |
전화번호와 이메일은 모든 글자가 전각이어서 바이트가 정확히 3분의 1로 줄어듭니다. 반면 파일명처럼 한글이 섞여 있으면 한글 음절은 바뀌지 않으므로 줄어드는 폭이 작습니다. 금액 예시에서 엔·위안 기호 '¥'(U+FFE5)는 반각 '¥'(U+00A5)로 바뀌는데, 이 문자는 ASCII 범위 밖이라 0xFEE0 규칙이 아니라 별도 대응표로 처리됩니다. 그래서 이 한 글자의 바이트는 3에서 2로 줄어, 3에서 1로 줄어드는 숫자·쉼표와 폭이 다릅니다.
문자 종류별 저장 길이
글자 수 제한이 있는 입력란에서 전각 문자가 예상보다 많은 공간을 차지하는 이유는 인코딩 때문입니다. 같은 'A'라도 반각은 1바이트, 전각은 3바이트입니다. 시스템이 글자 수가 아니라 바이트 수를 기준으로 제한하거나(예: UTF-8 기준 길이 제한), 자바스크립트의 문자열 길이(UTF-16 코드 단위)를 쓰는지에 따라 같은 문자열도 다르게 계산됩니다.
| 문자 | UTF-8 바이트 | UTF-16 코드 단위 |
|---|---|---|
| 반각 영문·숫자 (A, 7) | 1 | 1 |
| 전각 영문·숫자 (A, 7) | 3 | 1 |
| 한글 음절 (가) | 3 | 1 |
| 이모지 (😀) | 4 | 2 |
이모지는 UTF-16에서 코드 단위 2개로 세어지기 때문에 자바스크립트의 length와 사람 눈에 보이는 글자 수가 어긋납니다. 이 도구가 보여 주는 '전체 N자'는 코드 포인트 단위(Array.from)로 세므로 이모지를 1자로 계산하며, 결합 문자나 이모지 조합(가족 이모지 등)은 눈에 보이는 한 글자도 여러 자로 셀 수 있습니다.
이 도구의 동작 세부 규칙
- 줄바꿈·탭은 그대로: 코드가 0x0A, 0x09처럼 U+0021 미만이라 어느 방향에서도 바뀌지 않습니다. 여러 줄을 붙여 넣어도 줄 구조는 유지됩니다.
- 반각 → 전각의 공백: 일반 공백 하나하나가 전각 공백(U+3000)으로 바뀌고 '변환된 문자 수'에도 포함됩니다. 공백이 많은 문장에서는 변환 수가 글자 수에 가깝게 나올 수 있습니다.
- 탭을 바꾸면 결과 칸이 비워짐: 방향을 바꾸면 결과와 안내 문구는 지워지지만 입력창의 내용은 남습니다. 같은 텍스트를 반대 방향으로 다시 변환해 보려면 입력창을 비우지 않아도 됩니다.
- 빈 입력: 입력이 비어 있으면 '변환할 텍스트를 먼저 입력해 주세요.'가 표시되고 결과 칸이 비워집니다.
- 변환 수 0: 이미 원하는 형태이거나 대상 범위 밖의 문자만 있으면 '변환된 문자가 없습니다' 안내가 나옵니다. 이는 오류가 아니라 바꿀 것이 없다는 뜻입니다.
- 되돌림 가능성: 지원 범위 안의 문자는 전각 → 반각 → 전각으로 왕복해도 원문이 유지됩니다. 단, 반각 가타카나나 파동 대시처럼 범위 밖 문자는 양쪽 모두 그대로입니다.
상황별 사용 시나리오
고객 명부 정리(가상). 접수 창구에서 일본어 입력기로 받은 연락처 120건 중 일부가 전각 숫자로 저장되어, 전화번호 중복 검사가 같은 번호를 서로 다른 값으로 취급한다고 가정해 봅시다. 전각 → 반각으로 한 번에 통일한 뒤 중복 검사를 돌리면 이 문제가 사라집니다. 이때 하이픈이 전각 '-'(U+FF0D)인 것과 하이픈 대신 긴 줄표 '−'(U+2212)가 쓰인 것은 다른 문제이므로, 변환 후에도 일치하지 않는다면 유니코드 문자 정보 도구로 문제 문자의 코드를 확인하세요.
엑셀 조회 오류 진단(가상). 품번 열의 'AB-1234'와 조회 키 'AB-1234'가 화면에서는 비슷해 보여도 일치하지 않을 때, 이 도구로 한쪽을 변환해 보고 비로소 같아지면 원인이 전각 문자였다는 뜻입니다. 변환해도 달라지는 부분이 없다면 앞뒤 공백이나 보이지 않는 문자 같은 다른 원인을 의심하세요.
세로쓰기·포스터 디자인. 반대로 짧은 영문 단어를 한글 글자 폭에 맞춰 나란히 세우고 싶을 때는 반각 → 전각이 쓸모 있습니다. 'SALE 2026'을 전각으로 바꾸면 모든 글자가 정사각형 칸에 놓여 한글 간판 문구와 정렬이 맞습니다. 다만 이렇게 만든 텍스트는 검색이나 복사 시 다른 문자열로 취급되므로 본문이 아닌 장식용으로만 쓰세요.
흔한 실수와 한계
- 눈으로는 구분이 어렵습니다. 글꼴에 따라 전각 영문이 반각처럼 보이기도 합니다. 의심스러우면 변환 후 글자 수와 '변환된 문자 수'를 확인하세요.
- 모두 반각으로 바꾸면 안 되는 글입니다. 일본어·중국어 문장 속의 전각 괄호와 구두점(()、。)은 그 언어에서 정상 표기입니다. 이 도구의 전각 → 반각은 이들 중 U+FF01~U+FF5E에 속하는 괄호, 느낌표, 물음표, 콜론 등을 바꾸고 '、'·'。'(U+3001, U+3002)는 건드리지 않습니다.
- 이모지와 한글은 그대로입니다. 한글 음절은 전각·반각 구분이 없는 문자입니다.
- 반각 → 전각은 주의해서 쓰세요. 코드, URL, 이메일에 쓰면 동작하지 않는 문자열이 됩니다. 세로쓰기 디자인이나 폭 맞춤용 표기처럼 목적이 분명할 때만 사용하세요.
결과 활용법
검색 데이터 정리가 목적이라면 전각 → 반각 후 텍스트 공백·줄바꿈 정리기로 남은 공백을 정리하고, 영문 대소문자까지 통일하려면 대소문자 변환기를 이어서 쓰세요. 변환 전후에 어떤 부분이 달라졌는지 확인하려면 텍스트 비교 도구가 편리합니다. 엑셀에서 셀 값이 일치하지 않는 문제를 만났다면 먼저 이 도구로 해당 값을 변환해 같아지는지 확인해 보는 것이 빠른 진단법입니다.
자주 묻는 질문
한글도 전각·반각 구분이 있나요?
완성형 한글 음절(가~힣)은 구분이 없어 변환 대상이 아닙니다. 다만 유니코드에는 반각 한글 자모(U+FFA0~U+FFDC 영역)가 따로 있으며 이 도구는 그 문자를 변환하지 않습니다.
붙여넣은 텍스트에 전각·반각이 섞여 있으면 어떻게 되나요?
"전각 → 반각"을 선택하면 전각 문자만 반각으로 바뀌고 이미 반각인 문자는 그대로입니다. 반대 방향도 마찬가지이므로 섞인 텍스트를 한 번에 한쪽으로 통일할 수 있습니다.
변환한 텍스트가 서버로 전송되나요?
이 페이지의 변환·복사 스크립트에는 입력값을 외부로 보내는 코드가 없고, 변환은 브라우저 안에서 문자열 연산으로만 이루어집니다. 복사 버튼도 브라우저의 클립보드 기능만 사용합니다.
전각 공백은 왜 일반 공백으로 바뀌나요?
전각 공백(U+3000)은 일반 공백(U+0020)과 다른 문자여서 단어 구분, 공백 제거, 정렬 결과를 어긋나게 합니다. 전각 → 반각에서는 이를 한 칸 공백으로 바꾸고, 반각 → 전각에서는 반대로 바꿉니다.
NFKC 정규화와 이 도구의 차이는 무엇인가요?
NFKC는 전각 영문뿐 아니라 ①→1, ㈜→(주), 합자 문자 등 모든 호환 문자를 풀어 줍니다. 이 도구는 전각·반각 형태 블록만 정해진 규칙으로 바꾸어 결과를 예측하기 쉽도록 했습니다.
전각 숫자는 계산에 쓸 수 없나요?
대부분의 프로그램에서 전각 숫자 '123'은 숫자가 아니라 문자열로 취급되어 합계나 정렬에 쓰기 어렵습니다. 반각으로 바꾼 뒤 사용하세요. 일부 소프트웨어는 입력 단계에서 자동으로 바꿔 주기도 하지만 보편적인 동작은 아니므로 데이터 정리 때는 직접 변환해 두는 편이 안전합니다.
변환 후 글자 수가 줄어들거나 늘어날 수 있나요?
이 도구의 변환은 문자 하나를 문자 하나로 바꾸므로 글자 수는 변하지 않습니다. 달라지는 것은 바이트 길이입니다. 글자 수가 달라지는 것은 NFKC 정규화처럼 'ガ'를 'ガ'로 합치거나 '㈜'를 '(주)'로 푸는 경우이며, 이 도구는 그런 처리를 하지 않습니다.
복사 버튼을 눌렀는데 붙여넣기가 안 됩니다.
결과 칸이 비어 있으면 복사할 내용이 없습니다. 먼저 '변환하기'를 누르세요. 브라우저가 클립보드 접근을 막은 환경이라면 결과 칸을 직접 선택해 복사하세요.
전각 문자를 직접 입력하려면 어떻게 하나요?
일본어 입력기의 전각 영숫자 모드처럼 입력기 설정에서 전각 입력을 켜는 방법이 있고, 가장 간단한 방법은 이 도구의 반각 → 전각 탭에 평범하게 입력해 변환하는 것입니다.