티스토리 뷰
컴퓨터의 정보저장
어떻게 컴퓨터가
숫자, 알파벳, 한글 같은 글자를 보는걸까?
컴퓨터가 정보들을 어떻게 저장하는가?
많은 사람들이 알듯이 <0과 1> 만 가지고 정보를 저장함!
사람한테 0이랑 1만 가지고 정보를 읽고쓰라카면? 개당황쓰^^;
그.래.서.
우리가 사용하는 문자들을 가지고서 각각에 대응하는 숫자를 매긴다.
예를들어~~
A = 65, B= 66 이런식으로 그러면! 숫자는 이진법으로해서 나타내는뎅
A=1000001 이렇게 표현하면된다.
그래서 요런 표와같이 사용되는 모든 글자에다가
각각 숫자를 정해서 매긴 문자열 셋을 만듬
음!
1. 사람이 문자를 입력하면!
2. 컴퓨터는 그걸가지고 이 바이너리 숫자로 저장하고
3. 사람에게 보여줄때는 저 표를 보면서 해당 글자 찾아서 => 텍스트로 바꿈!
컴퓨터가 알아볼 수 있도록 바이너리 신호로 바꿔주는거 (A=1000001 )
문자 인코딩

근디...한글 깨지고 이런거 왜일어나는것이여?
통일! 이 안되었기에..
우리~~의 꿈은~~~ 통일~~~
ASCII 아스키란?
저기~~ 위에 있는 표가 아스키!
이 아스키...문자열 셋의 일부인데 이름부터 미국발이다.
미국발이여서 알파벳 숫자등만 들어있음..
52개의 영문 알파벳 대소문자와(소문자 26+대문자 26), 10개의 숫자(0~9), 32개의 특수 문자, 그리고 하나의 공백 문자를 포함
한국인 서러워라
그래서 나라마다 문자열 셋을 만들어져서
문자열 셋의 춘추전국시대 펼쳐짐 ㅋㅋㅋㅋㅋ
문자열셋, 인코딩 방식을 안맞추면 글자가 깨져버린다.
다른나라에서 오갈때..
양쪽 쓰는 인코딩이 다름. 문제유발 흑ㅠㅠ
엥 그러면 이 전세계 문자들을 갖다가 그냥 표 한군데에 때려박자!! => 유니코드 등장
UTF-8
유니코드로 통일을 했쩌 갑자기 UTF-8은 또모야
유니코드 = 밑에 표 처럼 문자열 셋! (각 문자마다 숫자를 정해놓은 표)
UTF-8 = 인코딩 방법
예를들어...
A=1000001
이 0과1의 자리수를 얼마나 할당하느냐에따라
딱 7비트 1000001
쓸수도있고 01000001 <- 앞에 0하나 추가해서
8비트로도쓸수있고
이렇게하면 표현할 수 있는 글자수에 한계가있을 수 있응께
00000000 01000001 <= 2바이트씩 통일해서 할당할 수 있음
유니코드에 이렇게 다 숫자가 주어져있긴한데이
숫자를 또 컴에다가 어떤방식으로 0이랑 1로 집어넣느냐 =인코딩 방식 => 그 중 하나가 UTF-8
UTF-8은 Universal Coded Character Set + Transformation Format – 8-bit의 약자로, UTF- 뒤에 등장하는 숫자는 비트(bit)
어떤것을 다른 형식으로 바꿔주는것 : 인코딩
그 반대 : 디코딩
URL 인코딩? 웹사이트 주소뒤에 URL 파라미터라는걸 넣어서 서버에 인자를 보내는뎅
이렇게 뒤에 인자를 붙이는 식
이런걸 맨뒤에 붙임
스페이스가 &20으로 바뀌어서 검색창에 들어감
이걸또 메모장에 복사해보면
요렇게 텍스트로 인코딩된다는게 보인당
URL에는 아스키 코드의 문자셋만 사용할 수 있게되어있다.
때문에 스페이스나 한글 한자등등은 아스키로 치환해서 서버로 전송하도록 하는게 바로이 URL인코딩
아스키가 아닌것들 아스키로 바꿔주는 인코딩~~~
UTF-8과 UTF-16의 차이점
인코딩 방식의 차이점을 생각하면 되는군!!
- 가변 길이 인코딩
UTF-8 같은경우 문자를 1바이트에서 4바이트 까지 사용이 가능해서 모든 나라 언어 표현이 가능
가변 길이라는건 어떤 문자열인지보고 자기가 바이트사용하는걸 고른다는말
영어 a 같은 경우 1바이트로 표현 가능한데 4바이트를 전부 사용할 이유가 없자나? 이말임.
한글 같은 경우는 1바이트로 표현이 안되니까 3바이트로 표현
UTF-8에서는 한글은 3 바이트, UTF-16에서는 2 바이트를 차지
- 바이트 순서가 고정 (반면 UTF-16은 코드 그대로 바이트로 표현 가능, 바이트 순서가 다양함)
'백엔드&컴퓨터사이언스' 카테고리의 다른 글
[컴퓨터 공학] 가비지컬렉터(메모리관련) (1) | 2021.12.31 |
---|---|
[컴퓨터공학] 운영체제 (0) | 2021.12.30 |
[인증/보안] 세션 vs 토큰 JWT (0) | 2021.12.28 |
[인증/보안]https 이해하기 (0) | 2021.12.27 |
[인증/보안] 쿠키와 세션 : 사이트입장에서 접속자가 누구인지 식별할 수 있는 용도 (0) | 2021.12.27 |