Base64 인코딩은 8비트 이상의 이진 데이터
를 ASCII 문자로 변환
하는 인코딩 방식입니다. 이 방식은 주로 이메일이나 HTTP 요청 등에서 바이너리 데이터를 전송해야 할 때 사용됩니다. 이유는 다음과 같습니다.
ASCII 문자로 변환하면 데이터를 안전하게 전송
할 수 있습니다.
2진(bit) 데이터는 일반적으로 8비트 이상으로 직접 전송하면 데이터가 손실될 수 있습니다.
Base64는 8비트 이상의 2진 데이터를 안전하게 ASCII 문자로 변환하여 전송합니다.
Base64의 64는 64비트를 의미하지 않습니다. 여기에서 "64"는 Base64 인코딩 방식에서 사용되는 문자 집합의 크기를 나타냅니다. Base64는 데이터를 6비트씩 잘라서 총 64개의 문자(영문 대소문자, 숫자 0-9, 그리고 +와 /)로 표현하는 방식을 의미합니다.
💥 짜르는 방식
2진(bit) 데이터를 6bit씩 자른 뒤, base64 색인표에 따라 치환하여 ASCII 문자열로 바꿔줍니다. 그런데 그냥 ASCII 문자열이 아니라, ASCII 중제어문자와 일부 특수문자를 제외
한 64개의 안전한 출력문자만 사용하여 바꿉니다.
binary data를 바로 ASCII 인코딩을 하면 문제가 발생할 수 있기 때문에, base64 인코딩을 한다.
문자열로 변환하면 더 많은 응용 프로그램에서 사용할 수 있습니다.
이진 데이터를 직접 전송하는 것은 어렵기 때문에, 문자열로 변환하여 전송하는 것이 더 쉽습니다.
또한, Base64로 인코딩된 문자열은 문자열로 다루기 쉽기 때문에, 다양한 응용 프로그램에서 사용될 수 있습니다.
데이터 크기도 줄일 수 있습니다.
Base64로 인코딩하면 데이터 크기가 약 33%
정도 줄어듭니다. 이는 이진 데이터를 문자열로 변환하여 전송하는 것이 더 효율적이기 때문입니다.
URL인코딩은 퍼센트인코딩으로, url상에서 문자를 표현하기 위한 인코딩이다. 예를 들어 http://naver.com/에 query=고양이 라는 데이터를 표현하면 http://naver.com/?query=%B%A%C <-대략 이런식으로 바꾸는 처리를 말한다.
이미지와 영상은 기계어 이진수(0과 1)로 표현되며, ASCII 코드로 처리되지는 않습니다. ASCII 코드는 문자와 기호를 표현하는 데 사용되는 방식이고, 이미지나 영상은 훨씬 더 복잡한 구조를 가지고 있습니다.
이미지의 데이터 표현
이미지는 픽셀 단위로 구성됩니다. 각 픽셀은 특정 색상 정보를 나타내며, 색상은 보통 RGB(Red, Green, Blue) 모델로 표현됩니다. 예를 들어:
이미지는 파일로 저장될 때 비트맵(Bitmap), JPEG, PNG 같은 형식으로 압축되거나 처리됩니다. 이런 파일들은 픽셀 데이터를 이진수로 변환하여 저장합니다.
영상의 데이터 표현
영상은 이미지 프레임의 연속으로 이루어져 있으며, 각 프레임은 위와 같은 방식으로 픽셀 단위로 표현됩니다.
이미지/영상 파일의 저장 방식
결론적으로 이미지와 영상은 ASCII 코드보다는 바이너리 데이터, 즉 이진수로 처리되며, 디지털 세계에서는 이 값을 다양한 방식으로 해석하여 표현합니다.
스트리밍은 문자열, 이미지, 영상 등 디지털 데이터를 네트워크를 통해 실시간으로 전송하고 처리하는 기술을 의미합니다. 이진수로 표현된 데이터를 스트리밍하는 과정은 다음과 같은 방식으로 이루어집니다:
모든 디지털 데이터는 결국 0과 1로 이루어진 이진수로 변환됩니다. 예를 들어:
이진수로 변환된 데이터는 작은 단위(패킷)로 쪼개져 인터넷 프로토콜(IP)을 통해 전송됩니다.
스트리밍 과정에서는 실시간 처리가 중요합니다. 이를 위해 다음과 같은 방법이 사용됩니다:
스트리밍된 데이터는 클라이언트(사용자의 기기)에서 디코딩되어 사용자가 읽거나 재생할 수 있는 형태로 복원됩니다:
스트리밍은 실시간 데이터를 효율적으로 전달하기 위해 개발된 기술로, 현대의 인터넷 환경에서 가장 핵심적인 기술 중 하나입니다. YouTube, Netflix, Twitch 같은 플랫폼은 이 기술을 활용해 대용량 데이터(영상, 음악 등)를 빠르게 제공하고 있습니다.