핀수로그
  • 비트(bit) 주세요
    2021년 11월 05일 00시 41분 16초에 업로드 된 글입니다.
    작성자: 핀수
    728x90
    반응형
     

    들어가며

    해당 글은 아래 👇 링크 강의를 수강 후 작성된 글입니다.

    [하프끝] 하루 20분 15일동안 프로그래머 배경지식 이걸로 끝내자!

     

    이지업 I 모두를 위한 IT클래스

    모두를 위한 IT교육 이지업클래스! 오프라인 전문 강의를 바탕으로 쉽게 강의를 듣고 올릴 수 있는 지식공유 플랫폼

    www.easyupclass.com

    우리는 어떻게 미국에 있는 Amy와 BTS 이야기를 나눌 수 있게 되었나

    컴퓨터(정확히는 인터넷이겠지만)로 이역만리에 있는 Amy와 친구가 되었다. (예시입니다)
    그런데 컴퓨터로 어떻게 정보를 주고 받는 걸까?

     

    지난 시간에 전자의 이동을 통해 전류가 흐르면서
    데이터를 주고 받을 수 있다고 했다.
    하지만 0과 1을 어떻게 hello 라고 읽을 수 있단 말인가

     

    그것은..
    2진수를 사람이 이해할 수 있는 부호로 변경하는 부호화(문자인코딩)을 통해 가능한 것이었다.

     

    부호화..그게 뭔데..그거 어떻게 하는건데

    데이터의 단위인 bit를 기억하는지?
    위 질문의 대답은
    "영어문자를 표현하기 위한 bit가 최소 몇개 필요한가?" 에 대한 물음으로 시작한다.
    영어 대소문자를 포함한 것과 특수기호, 숫자, 오류 검출 등
    이를 모두 표현하기 위한 최소 bit가 8bit 였다.

    그러니까
    8bit로 어떤 데이터를 받을 수 있으면, 하나의 문자를 표현할 수 있다는 것
    그리고 8bit는 1Byte 를 의미한다.

    1Byte는 논리적인 개념으로
    인간이 이해할 수 있는 최소 단위이다.

    비트(bit) 주세요

    예를 들어 8개의 bit에 다음과 같이 데이터가 들어왔다고 하자.
    이를 10진수로 바꾸면 8이 된다.

    하지만 8은 문자가 될 수 없지...그래서 나온게 ASCII 코드!

    전류를 통해 들어온 데이터를 ASCII 코드표와 비교(매핑)해
    얻은 문자를 인간이 보고 이해하는 것
    (문자가 모이면 단어가 되고 단어가 모이면 어떤 정보가 되겠쥬 → 소통(통신) 가능)

    한글은 어떻게 읽나요?

    ASCII 코드의 한계는 영어만 출력 가능하다는 점이었다.
    그렇다면 우리 한글은?!??! 쒸익

     

    한글을 표현하기 위해서는 2Byte 가 필요함 (2의 16제곱 = 65536)
    (중국은 무려 3Byte..)

    그래서 등장한 것이 유니코드이다.

    **
    한국은 원래 EUC-KR이라는 인코딩 방식을 채택해 사용중이었는데 (2Byte 체계)
    '뷁' 같은 단어는 표현할 수 없었다...옛날에는 뷁이 유행어였슴닥..ㅠ
    그래서 나온 방식이 CP949
    (둘다 파이널때 지겹도록 본 애들이었다..utf-8 포함)

     

    만약 내가 홈페이지를 만드는데 EUC-KR 로 만들었다면
    한국에서는 잘 보이지만
    다른 나라에서 내 홈페이지를 방문하면

    다 깨져서 나올 것임....UTF-8 을 사용해야한다.

     

    UTF-8은 3Byte 체계
    이 말은 3Byte 씩 끊어 읽어서 화면에 출력한다는 의미임

    🙋‍♀️ : 나도 한번 읽어봐

    이모지를 데이터베이스에 저장하려면
    utf-8 로는 안된다..4Byte 체계인 UTF8mb4 를 사용해야한다.

    오..이거 몰랐다..그동안 utf8로 만들었었는데..
    궁금해서 직접 해봤다.


    이모지를 넣고 저장을 해보았다.

    억..진짜 오류를 뱉는다.
    어떻게..지금까지 몰랐을 수 있지...? (충격

    utb8mb4로 charset를 바꿔봤음


    오.....이렇게 하나 또 배우게 되었다 ^^V..

    에필로그) 메모리

    컴퓨터의 메모리는 1Byte로 주소가 만들어져있다.

    → 하나의 주소에는 1Byte의 데이터가 들어가있음
    (통신이 한국에서 먼저 발전했다면 2Byte였지 않았을까..? 주륵..)

    728x90
    반응형

    '배경지식 > 배경지식' 카테고리의 다른 글

    환경변수  (0) 2021.11.07
    IO  (0) 2021.11.05
    다다익램  (0) 2021.11.05
    전자, 반도체, 2진수, 축전기  (0) 2021.11.05
    컴퓨터 뜯어보기 (하드웨어)  (0) 2021.11.05
    댓글