항해99/cs 스터디자료

한 권으로 읽는 컴퓨터 구조와 프로그래밍 -2022.01.22.SAT

<zinny/> 2022. 1. 21. 18:06
728x90
인코딩(encoding)은 정보의 형태나 형식을 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 위해서 다른 형태나 형식으로 변환하는 처리 혹은 그 처리 방식을 말한다.

 

문자를 사용한 수 표현

 

1️⃣  출력 가능하게 변경한 인코딩 (= 쿼티드 프린터블 인코딩/ QP인코딩)

 

📌 특징

   -  8비트 데이터를 7비트 데이터만 지원하는 통신경로를 통해 송수신 하기 위한 인코딩 방법 

   -  전자우편 첨부를 처리하기 위해  만들어짐 

   - = 다음에 바이트의 각 니블을 표현하는 16진 숫자 2개를 추가시켜서 8비트 값을 표현 한다

   - =를 표현하려면 =3D를 사용해야 한다. (아스키 코드 표 확인)

 

📌 규칙

- 줄의 맨 끝에 탭과 공백의 문자가 온다면 각각 =09와 =20으로 표현해야 한다

- 인코딩된 데이터는 한줄이 76자를 넘을수 없다 

- 맨 뒤가 =로 끝나면 가짜 줄바꿈을 뜻하고 , 디코딩 할때는 = 를 제거하고 해석한다. 

 

 

 


2️⃣ 베이스 64 인코딩

Base64는 Binary Data를 텍스트로 변경하는 인코딩 방식중 하나로 바이너리 데이터를 문자 코드에 영향을 받지 않는 공통 64개의 ASCII 영역의 문자들로 이루어진 문자열로 변경합니다.
(글자 그대로 64진법이란 뜻으로 ASCII 문자가 128개가 되지 않기 때문에 ASCII 문자로 표현할 수 있는 최대의 진법)
Binary Data 는 컴퓨터가 바로 알아볼 수 있는 2진 데이터 

📌 특징

-  인터넷 전자 우편 첨부파일 전송에 많이 사용 

- 3바이트 데이터 (24비트) 를 6비트 덩어리로 나누고 각 덩어리의 6비트값에 출력가능한 문자를 할당해 표현

-  베이스64 코딩을 거친 결과물은 원본보다 대략 4/3 정도 크기가 늘어나게 되며, 보통 의미없어 보이는 문자열이 나열된 형태

- 3바이트 조합을 4바이트 조합으로 변환 가능

- 원본데이터의 길이가 3바이트의 배수라는 보장이 없어 패딩 문자를 도입 

   : 2바이트(16비트)가 남으면 끝에 = , 1바이트(8비트)가 남으면 끝에 ==

 

 

 


3️⃣ URL 인코딩 (= 퍼센트 인코딩)

URL에 문자를 표현하는 문자 인코딩 방식으로. 몇몇 문자를 제외한 값은 옥텟(8비트) 단위로 묶어서, 16진수 값으로 인코딩 한다. 

📌 특징

-  % 뒤에 어떤 문자의 16진 표현을 덧붙이는 방식

- URL로 사용할 수 없는 문자(특수문자, 예약문자, 훈민정음)들을 사용할 수 있도록 인코딩 해주는 것 입니다.

 

📌 왜 사용?

-  HTTP GET 요청에서 쿼리스트링(파라미터)에 한글 또는 ASCII에 정의되지 않은 문자가 포함될 

- 쿼리스트링에 들어간 value가 예약어로서 동작하지 않게 하기 위해

 

 

 


색을 표현하는 방법

컴퓨터 모니터는 빨간색 , 녹색, 파란색 광선을 섞어서 색을 만들어 내며 이런 색 표현법은 RGB색 모델이라고 부른다. 

1️⃣  컬러큐브

📌 특징

-  각 축은 주(primary)색을 표현

- 값이 0이면 그에 해당하는 주 색의 빛을 끈다는 뜻( =빛이 가장 약하다)

- 값이 1이면 그에 해당하는 주 색의 빛을 최대밝기로 킨다는 뜻 (=빛이 가장 강하다)

- 가산시스템  (빛을 혼합해 색을 표현하는 방식)

 

📌 아쉬운 점

- 컴퓨터는 24비트 단위 계산이 불가능 (실제로 24비트에 해당하는 이름이 없음)

-24비트에 가장 가까운 표준 크기인 32비트(워드)에 색을 넣어 처리

- 색을 표현할 때마다 사용하지 않은 8개의 비트를 사용하기 위해 나온 투명도

 


2️⃣ 투명도 추가 (rgba)

📌 더프와 포터의 투명도 색구현 

-  각 픽셀에 알파라는 투명도의 값을 추가함

- 알파는 0이상 1이하인 값 (0이면 완전 투명, 1은 완전 불투명)

- 부동소수점을 사용하지 않아서 1~255까지의 값을 알파로 사용하고, 사용하지 않은 8비트를 활용


3️⃣ 색 인코딩

웹 페이지는 주로 사람이 읽을수 있는 문자의 시퀀스로 이루어지는 텍스트를 표현하기 때문에 텍스트를 사용해 색을 표현할 방법이 필요 

📌 특징

- 웹에서는 색을 16진 트리플렛으로 표현 

- #뒤에 여섯자리 16진 숫자를 추가해 #rrggbb로 표현

- rr 은 빨강 gg는 녹색 bb는 파랑색의 값 

 

 

 

 

 


📍출처~

https://ko.wikipedia.org/wiki/%EB%B2%A0%EC%9D%B4%EC%8A%A464

 

베이스64 - 위키백과, 우리 모두의 백과사전

컴퓨터 분야에서 쓰이는 Base 64 (베이스 육십사)란 8비트 이진 데이터(예를 들어 실행 파일이나, ZIP 파일 등)를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자

ko.wikipedia.org

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=j880825&logNo=221231640609 

 

[Percent Encoding] 왜 때문에 URL Encoding?

1루수가 누구야? 누구 1루수! 1루수가 누구냐고 1루수 이름이 누구라고. - 'who's on first' < "The ac...

blog.naver.com

 

728x90