인코딩(encoding)과 디코딩(decoding)

Tony·2023년 1월 3일
0

인코딩(encoding)과 디코딩(decoding)

  • 파일에 저장된 정보의 형태를 다른 것으로 변경하는 것을 말한다
  • 특정한 데이터 포맷으로 데이터를 가공하는 것

이해를 위한 예시

오디오 : PCM -> MP3

  • PCM(Pulse Code Modulation) : 디지털 오디오의 원형

    • 단순히 아날로그 오디오를 샘플링해서 0과 1로 바꾼 원본 데이터
    • 크기가 커서 보관이나 전송에 적합하지 않다
  • MP3 : MPEG-1 Audio Layer III or MPEG-2 Audio Layer III

    • https://en.wikipedia.org/wiki/MP3
      • TODO: MPEDG-1, 2, 3가 무엇인지 알아보기
    • MP3파일은 원본 데이터를 압축하고 특정 헤더와 메타정보를 추가한 것 이다
    • 압축하면서 사람이 감지하기 어려운 주파수의 데이터는 제거하면서 데이터크기를 줄인다
  • 데이터를 가공해서 포장했으므로 이것은 MP3 포맷으로 코딩된 오디오 데이터가 된다

    • MP3 인코더
  • 이 MP3를 사용자의 기기에서 재생하기 위해서, 디코딩(decoding)이 필요하다

    • 인코딩의 역순으로 MP3데이터로부터 PCM데이터를 추출하는 것

문자 인코딩

  • 위 예시에서 처럼 음원 파일을 변환하는 인코딩 같이 여러 종류의 인코딩이 있지만 웹 개발에서 자주 접하는 문자열에 대해 알아보자

문자 인코딩이란

  • 사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 신호로 만드는 것을 말한다

문자 인코딩을 사용하는 이유

  • 각각의 다른 플랫폼에서 공통으로 사용하기 위해 약속한 문자 집합(Character set)으로 변환해서 사용하기 위해

문자 집합(Character set)

ASCII

  • American Standard Code for Information Interchange
  • ASCII는 문자집합이면서 문자열 인코딩이기도 합니다
  • 문자집합과 인코딩이 똑같은 형태이고 7비트의 고정길이를 가지고 있다
  • 컴퓨터가 발명된 영미권에서 문자를 표현하기 위해 아주 초창기에 도입된 문자집합
  • 단점 : 한글 표현이 안됨

유니코드(Unicode)

  • 세계 각국에서 각각의 언어를 지원하기 위한 문자 집합
  • 자세한 내용은 아래 참고에 있는 링크들 참조

문자 인코딩의 종류

  • 문자열 인코딩의 종류가 많이 있지만 이번엔 아래 항목들만 정리를 해보자
    • ASCII
    • UTF-8

ASCII

  • 영문, 숫자, 일부 특수 문자를 변환한 코드
  • 7bit 고정길이 인코딩
  • 영문자만 표현 가능

유니코드 관련

UTF-8

  • 1~4 byte 가변길이 인코딩
  • ASCII 인코딩과 호환성을 가짐
  • 동아시아권 문자들이 3byte로 표시

UTF-16

  • 2 or 4(byte) 고정길이 인코딩
  • 한글이 2byte로 고정

UTF-32

  • 4byte 고정길이 인코딩
  • 모든 문자가 동일하게 4byte

참고

profile
움직이는 만큼 행복해진다

0개의 댓글