안녕하세요, 코딩 마법사 여러분! 😊 오늘은 여러분의 코드를 한층 더 안전하고 세련되게 만들어줄 마법 같은 "JavaScript에서의 인코딩 처리"에 대해 이야기해볼게요. 평소에 "왜 내 데이터가 깨지지? 왜 이상한 문자가 나타나는 거야?"라고 고민했던 적 있다면, 이 글을 꼭 끝까지 읽어보세요! 🎉
🎩 인코딩이란?
먼저, "인코딩(encode)"이란 게 뭘까요? 간단히 말해서, 데이터를 특정 형식으로 변환하는 과정을 뜻해요. 예를 들어, 우리가 쓰는 한글, 영어 같은 문자들은 컴퓨터가 바로 이해하지 못해요. 그래서 이걸 컴퓨터가 알아들을 수 있는 코드로 바꿔줘야 하는데, 그게 바로 인코딩이에요!
이해가 안 된다구요? 음, 이런 거예요.
우리가 친구한테 비밀 메시지를 보낼 때 "으헤헤, 비밀 암호로 말해볼까?" 하고, "사랑해"를 "52H8" 같은 코드로 바꾸는 거랑 비슷한 거죠. 이 과정을 JavaScript에서 아주 쉽게 할 수 있답니다.
🎮 encodeURIComponent()와 encodeURI() 차이점
인코딩에는 두 가지 주요 함수가 있어요.
encodeURIComponent()와 encodeURI()예요. 이 둘은 이름부터 헷갈릴 수 있지만, 차이가 분명해요.
- encodeURIComponent()
👉 이건 URL의 모든 부분을 인코딩해요.
예를 들어, "이름=홍길동"이라는 문자열을 인코딩한다고 하면, 이 함수는 "="도, "&"도 모두 안전하게 처리해 줘요. - encodeURI()
👉 이건 URL 전체를 인코딩할 때 써요. 그러나 슬래시(/), 물음표(?), 앰퍼샌드(&) 같은 URL 구조를 나타내는 기호는 건드리지 않아요. 왜냐면, 그런 기호들은 URL 구조를 깨면 안 되니까요!
💻 간단한 예시로 이해하기
자, 직접 보면서 이해해볼까요?
const uri = "https://example.com/이름=홍길동&나이=30";
console.log(encodeURIComponent(uri));
// 출력: https%3A%2F%2Fexample.com%2F%EC%9D%B4%EB%A6%84%3D%ED%99%8D%EA%B8%B8%EB%8F%99%26%EB%82%98%EC%9D%B4%3D30
console.log(encodeURI(uri));
// 출력: https://example.com/%EC%9D%B4%EB%A6%84=%ED%99%8D%EA%B8%B8%EB%8F%99&%EB%82%98%EC%9D%B4=30
보세요!
- encodeURIComponent()는 모든 문자를 안전하게 바꿔버렸죠.
- 반면, encodeURI()는 URL 구조를 유지하면서 한글만 인코딩했어요.
🌟 base64 인코딩도 한번 해볼까요?
"근데 base64는 뭔가요?"
이건 아주 멋진 인코딩 방식이에요. 데이터를 64진법 문자로 바꿔줘요. (말만 어렵지, 사실 되게 간단해요!)
예제를 봅시다.
const text = "Hello, JavaScript World!";
const encoded = btoa(text); // 인코딩
console.log(encoded);
// 출력: SGVsbG8sIEphdmFTY3JpcHQgV29ybGQh
const decoded = atob(encoded); // 디코딩
console.log(decoded);
// 출력: Hello, JavaScript World!
btoa()는 텍스트를 base64로 인코딩하고,
atob()는 인코딩된 텍스트를 다시 디코딩해줘요.
🛠 실전에서의 활용
이제 "아, 그래서 이걸 어디다 쓰라는 건데?" 싶으시죠?
1. URL에 데이터 붙이기
encodeURIComponent()는 검색 쿼리를 만들 때 유용해요!
const query = "name=홍길동&job=개발자";
const url = `https://example.com/search?${encodeURIComponent(query)}`;
console.log(url);
// 출력: https://example.com/search?name%3D%ED%99%8D%EA%B8%B8%EB%8F%99%26job%3D%EA%B0%9C%EB%B0%9C%EC%9E%90
2. 민감한 데이터 보호
base64는 비밀번호나 토큰 같은 데이터를 숨길 때 쓸 수 있어요. (물론, 이건 암호화가 아니라 단순 변환이라 추가 보안이 필요해요!)
🦄 마무리: 인코딩은 꼭 알아야 하는 마법!
JavaScript에서의 인코딩은 생각보다 쉽죠?
데이터를 안전하게 다루고, URL 구조를 깨지 않도록 하고, 때론 예쁜 base64 코드를 만들어보는 것! 모두 인코딩 덕분이에요. 오늘 배운 내용을 꼭 연습해 보세요. "뭐야, 별거 아니네?"라는 생각이 들 거예요.
코딩은 즐겁게! 다음에도 재미난 주제로 찾아올게요.
그럼, 안녕히 계세요, 마법사 여러분! ✨
'개발 > Javascript&Jquery' 카테고리의 다른 글
[JavaScript & jQuery] Checkbox 마스터 되기 프로젝트! (1) | 2024.12.09 |
---|---|
[Javascript&JQuery] indexOf 에 대해 자세히 알아보자. 그 친구 lastIndexOf 까지^^ (0) | 2024.12.09 |
JavaScript에서 문자 숫자를 숫자로 변환하기: 마법 같은 비법 대공개! 🎩✨ (0) | 2024.12.05 |
[Javascript] 전화번호 포맷팅 하이픈(-)추가 및 제거 함수 만들어봐요! (0) | 2024.12.04 |
[JS&jQuery] Ajax 통신? Javascript 와 jQuery 사용법을 알아보자!! (2) | 2024.11.29 |
댓글