스터디 1주차

정재연·2022년 1월 21일
0
* 문자를 사용한 수 표현
  - 출력 가능하게 변경한 인코딩
  - 베이스64 인코딩
  - URL 인코딩
  
* 색을 표현하는 방법
  - 투명도
  - 색 인코딩

문자를 사용한 수 표현

컴퓨터 사이의 통신이 시작 되고 부터 사람들은 더 많은 정보를 송수신하고 싶어졌다.
하지만 2진 데이터를 직접 보내는것은 생각처럼 단순 하지 않았다.

1. QP 인코딩

출력 가능하게 변경한 인코딩(Quoted-Printable encoding) 8비트 데이터를 7비트 데이터만 지원하는 통신 경로를 통해 송수신하기 위한 인코딩 방법이다.
전자우편 첨부를 처리하기 위해 만들어졌고, =XX 와 같은 모양으로 인코딩 하는 방식을 말한다.

  • 인코딩 방법
  1. = 다음에 바이트의 각 니블을 표현하는 16진 숫자 2개를 추가해 8비트값을 표현한다.

  2. = 특별한 의미를 지니기 때문에 QP 에서 =3D를 사용해야한다.
    아스키 코드 를 사용한다는 것을 알 수 있다.

    참고 아스키 코드 표

    10진수16진수문자
    613D=
  • 특징
  1. 줄을 맨 끝에 탭과 공백문자가 온다면, 이를 각각 =09, =02로 표현해야만 한다.
  2. 인코딩 데이터는 한줄이 76자를 넘을 수 없다.
  3. 맨 뒤가 =로 끝나면, 가짜 줄바꿈을 뜻하며, 수신 쪽에서 QP로 인코딩된 데이터를 디코딩할 때는 이 =를 제거하고 해석한다.
  • 단점
    아스키 코드 문자로 표현할 수 없는 문자는 한 바이트가 3바이트로 늘어난다.
    따라서 이 방식은 크기가 최대 3배로 늘어날 수 있어 효율성 면에서는 최악이라 할 수 있다.

2. 베이스64 인코딩(64진수 인코딩)

(os 상관없이 인코딩 가능..)
베이스64는 바이너리 데이터(이진법 데이터)를 아스키 코드 문자열로 바꾸것이다.
앞의 QP인코딩을 좀 더 효율적으로 쓰기 위해 나온 것이 베이스64 인코딩이다.

  • 인코딩 방법
  1. 24비트를 6비트씩 자른다.
  2. 나열된 비트들을 10진수로 변환 한다.
  3. 그에 해당하는 문자를 아래 Base64 색인표에서 찾아 치환한다.
  • 패딩 문자
    바이너리 데이터의 길이가 3바이트의 배수가 아닐 경우, 패딩문자를 사용하여 문제를 해결했다.
    바이너리 데이터가 2바이트남으면 = , 1바이트 남으면 == 를 붙여 사용.

  • 참고링크
    base64
    base64_패딩
    [Encoding]Base64

3. URL 인코딩(퍼센트 인코딩)

https://velog.io/@coco1606/%EC%8A%A4%ED%84%B0%EB%94%94-1%EC%A3%BC%EC%B0%A8URL 인코딩은 아스키 코드 문자열에 없는 영어를 제외한 외국어(한국어)와 아스키 코드에서 표현하지 않는 특수문자를 컴퓨터가 이해하기 쉽게 변경한 것!

  • 인코딩 방법
    안전하지 않은 아스키 문자를 %아스키코드의 16진수로 대체
    공백은 포함할 수 없어, + 또는 %20로 대체
    영어 제외 한 모든 외국어 인코딩
    (한글을 UTF-8 이나 EUC-KR 형태로 변형한 후에 URL로 보낸다고한다.)

    http://www.안녕.com

    위 주소는 한글이 포함되어 있어 오류가 발생할 것이다.
    이때, URL 인코딩이 필요하다.

    👇🏻👇🏻👇🏻

    http%3a%2f%2fwww.%ec%95%88%eb%85%95.com

    10 진수16진수문자
    583A:
    472F/
  • 참고 링크

색을 표현하는 방법

숫자를 사용하는 일반적인 경우 중 색의 표현이 있다.

  • 컴퓨터 그래픽스
    컴퓨터그래픽스란 픽셀(전자모눈종이)에 색을 넣어 그림을 만드는 과정입니다.
    컴퓨터는 RGB 색모델을 사용합니다.

  • 컬러 큐브 표현
    각 축은 주 색을 표현.
    0 이면 해당 주색의 빛을 끈다. (빛이 약하다, 없다)
    1 이면 해당 주색의 빛을 켠다. (빛이 가장 세다)

  • 색을 표현하는 방식
    ➀ 가산시스템
    특정 빛의 광선을 추가해서 색을 만드는 방식
    ➁ 감산시스템
    흰색 광선에 각 색에 해당하지 않은 빛을 제거 하여 색을 만드는 방식

컴퓨터에서 색을 표현할때, 24비트를 사용하여 1천만에 가까운 2의 제곱수에 해당하는 색을 표현할 수 있다.

24비트를 8비트씩 3가지 필드로 나누어 주요 색을 표현한다.
현대 컴퓨터들이 24비트 단위로 계산을 수행하도록 설계되어 있지 않았기 때문에 32비트에 색을 넣어서 처리하고 있다.
이러한 이유로 8비트가 사용되고 있지 않았다.이 비트를 낭비하지 않기 위해 새로운 요소 투명도를 도입했다.

1.투명도 추가

  • 투명도의 발견
    미국 애니메이터인 존 브레이와 얼 허드가 셀 애니메이션에 투명도를 처음 적용 했다.

셀 애니메이션은 움직이는 캐릭터를 투명한 셀룰로이드 필름 위에 그려서 정적인 배경 이미지 위에서 움직이게 할 수 있다.

컴퓨터 애니메이션도 투명도를 적용하여 여러 이미지를 하나로 합성하거나 결합 할 수 있다.

  • 투명도와 합성을 구현하는 새로운 방법
    1984년 톰 더프와 토머스 포터는 각 픽셀(pixel)에 α라는 투명도 값을 추가하는 일련의 합성 계산법식을 발명하였고, 이 방법이 표준이 되었다.

픽셀(pixel)에 추가된 α는 수학적인 0 이상 1이하인 값이다.
0은 완전히 투명하다는 뜻이고, 1은 완전히 불투명하다는 뜻이다.

합성 계산법 특징
1. 부동소수점 수를 사용하지 않아서 1 ~ 255 까지의 알파라는 투명도값을 사용
2. 미사용 되었던 8비트를 사용
3. 빨간색, 녹색, 파란색 각각의 색 값에 알파를 곱한 값을 저장

2.색 인코딩

웹 페이지는 사람이 읽을 수 있는 UTF-8 문자로 이뤄지는 텍스트를 표현하기 때문에 텍스트를 이용해 색을 표현할 방법이 필요하다.

  • 인코딩 방법
    16진 트리플렛으로 색 인코딩을 한다.

  • 16진 트리플렛
    #여섯자리의 16진수로 표현한 방식.(URL 인코딩과 비슷하게 인코딩한다.)

#rrggbb

각각 rr은 빨간색의 값, gg는 녹색의값, bb는 파란색의 값이다.

profile
코린이 개발자 :)

0개의 댓글