문자열이 중간에 잘림
가장 흔한 실수입니다. 메신저나 문서에서 복사할 때 끝부분이 잘리면 디코딩이 실패합니다. 결과 복사 버튼으로 통째로 복사하고, 붙여넣은 뒤 길이를 대조하는 습관이 필요합니다. 실수 사례를 기록하세요. 언제, 무엇이, 왜 잘못됐는지 적는 겁니다. 기록이 쌓이면 패턴이 보입니다. 패턴을 알면 예방할 수 있습니다. 기록은 1분이면 됩니다. 기록이 최고의 교재입니다.
특히 수만 자가 넘는 긴 문자열은 화면에 다 보이지 않아 잘림을 알아채기 어렵습니다. 민감 정보는 암호화 도구를 쓰고, Base64는 전달 형식용으로만 쓰세요. 이미 인코딩된 문자열을 또 인코딩하거나, 원본 텍스트를 디코딩하려 드는 실수가 있습니다. 작업 전 '지금 하려는 게 인코딩인지 디코딩인지'를 한 번 확인하세요.
이중 인코딩은 은근히 흔한 실수입니다. 이미 인코딩된 문자열을 또 인코딩하면 길이가 1.3배씩 불어나고, 디코딩 한 번으로는 원문이 안 나옵니다. '디코딩했는데 또 인코딩된 것 같아요'라는 증상이 바로 이것입니다. 의심되면 한 번 더 디코딩해 보세요.
공백·줄바꿈 섞임
반대로 이중 디코딩도 있습니다. 원문을 디코딩하려다 오류가 나면, 애초에 인코딩된 값이 아니었을 가능성이 큽니다. 입력값의 정체부터 확인하세요. 복사 과정에서 앞뒤 공백이나 중간 줄바꿈이 섞이면 디코더가 거부합니다. 붙여넣기 전에 문자열을 순수 텍스트 편집기에 거쳐 한 줄로 정리하세요.
워드프로세서의 자동 서식이 따옴표나 하이픈을 바꾸는 경우도 있으니, 경유 편집기는 메모장류를 권장합니다. 워드에서 복사한 텍스트의 스마트 따옴표도 비슷한 문제를 일으킵니다. 순수 텍스트 편집기를 경유하면 대부분 해결됩니다.
메신저 미리보기가 문자열을 자르는 경우도 있습니다. 길게 눌러 복사했는데 실제로는 앞부분만 복사되는 앱이 있습니다. 디코딩이 실패하면 복사된 길이를 원본과 비교해 보세요. 특히 모바일 메신저에서 자주 일어납니다.
암호화로 오해
PC 메신저도 안전하지 않습니다. 일부는 긴 메시지를 자동으로 접어서 뒷부분을 잘라냅니다. '원본 보기'나 '전체 복사' 기능을 쓰세요. 한글 텍스트가 깨진다면 인코딩·디코딩 과정의 문자 인코딩이 다른 경우입니다. UTF-8로 통일하면 대부분 해결됩니다.
Base64로 '암호화했다'고 생각하고 비밀번호나 개인정보를 그대로 공유하는 실수가 있습니다. Base64는 누구나 풀 수 있는 인코딩이라 보안 효과가 전혀 없습니다. DB 컬럼 길이가 모자라 문자열이 잘린 사례도 있습니다. 복원이 안 돼 원본을 다시 요청했습니다. 컬럼은 원본의 2배로 잡는 게 안전합니다. 여유가 최고의 보험입니다.
BOM(바이트 순서 표시)이 숨어 있는 경우도 있습니다. 메모장에서 UTF-8로 저장한 파일의 맨 앞에는 보이지 않는 3바이트가 붙습니다. 이를 그대로 인코딩하면 결과 앞부분에 이상한 문자가 생깁니다. 의심되면 헥스 에디터로 확인하거나, 앞부분을 잘라내고 다시 시도해 보세요.
인코딩·디코딩 방향 혼동
시간 촉박할 때 탭을 잘못 눌러 반대 작업을 하는 실수가 잦습니다. 인코딩해야 하는데 디코딩 탭에서 작업하면 오류만 반복됩니다. 결과가 이상하면 깊게 파기 전에 탭부터 확인하는 것이 시간 절약입니다.
실제 사고 사례: 토큰을 Base64로 인코딩해 URL에 실어 보냈다가 로그에 그대로 남았습니다. 누구나 디코딩할 수 있는 값이었습니다. 토큰은 즉시 폐기하고 재발급했습니다. 인코딩은 보호가 아닙니다.
또 다른 사례: 줄바꿈이 포함된 문자열을 그대로 디코딩하려다 실패를 반복했습니다. 이메일에서 복사한 값이라 76자마다 개행이 있었습니다. 정제 후 한 번에 성공했습니다. 입력 정제가 먼저입니다.
문자 인코딩 불일치
이미지를 data URI로 넣었다가 페이지가 느려진 사례도 있습니다. 2MB 이미지를 본문에 박아 넣은 겁니다. 2.7MB 문자열이 매번 다운로드됐습니다. 작은 이미지만 내장하라는 교훈을 얻었습니다.
긴 인코딩 문자열을 옮길 때는 메모장에 먼저 붙여넣어 줄바꿈을 정리하는 게 안전합니다. 인코딩은 보호가 아닙니다.
정제 후 한 번에 성공했습니다. 입력 정제가 먼저입니다.
자주 묻는 질문
디코딩이 안 될 때 가장 먼저 확인할 것은?
문자열이 통째로 복사됐는지, 앞뒤 공백이나 줄바꿈이 섞이지 않았는지 확인하세요. 10건 중 8건은 여기서 해결됩니다.
인코딩된 비밀번호를 공유해도 되나요?
안 됩니다. Base64는 암호화가 아니라 누구나 디코딩할 수 있습니다. 절대 공유하지 마세요.
같은 입력인데 결과가 다르게 나와요.
입력에 보이지 않는 문자(공백, BOM 등)가 섞였을 가능성이 큽니다. 순수 텍스트 편집기에 붙여넣어 확인해 보세요.