Encoding : 대상 information을 code로 변환하는 과정 또는 규칙Decoding : code로부터 원래의 information으로 얻는 과정 또는 규칙ASCII의 7bit base를 8bit로 확장한 codeANSI를 활용한 대표적 한글 code는 CP949ANSI를 한글 지원을 위해 확장한 형태로 모든 한글을 표현하진 못함.Unicode는 엄밀히 말해, code이지 encoding이 아님.Unicode 기반의 encoding은 UTF-8(가변길이) , UTF-16(가변길이) , UTF-32(고정길이) 등이 있기 때문에 사용한 encoding 방식에 따라 저장되는 byte가 달라지게 됨.ANSI , ASCII는 code에 해당하는 바이트가 그대로 저장되기 때문에 code이자 encoding으로 볼 수 있음.UTF-16 혹은 ANSI 계열의 encoding이 사용됨.UTF-8이 등장하며 단일 encoding으로 다국어가 처리가 가능해짐.UTF-8을 기본으로 사용하며 실질적인 표준이 됨.UTF-32는 고정형으로 어찌보면 가장 처리가 쉬운 방식이지만 문자 하나에 4bytes를 쓴다는 단점이 있음.UTF-8(Universal Coded Character Set+Transformation Format-8bit
한 문자를 표현하는데 1~4bytes를 사용하며 하위 1byte는ASCII와 호환.
한글의 경우, 한 글자를 나타내는데 대부분 3bytes가 사용되어 효율성이 떨어지는 편.
- 1byte만 사용하는 경우
MSB가0으로 시작- 2bytes 사용하는 경우 상위 byte는
110으로 시작, 하위 byte는10으로 시작- 3bytes 사용하는 경우 상위 byte는
1110으로, 나머지 하위 byte들은10으로 시작- 4bytes 사용하는 경우 상위 byte는
11110으로, 나머지 하위 byte들은10으로 시작
= 을 붙임단,
ASCII의 printable character들은 사실상 7bit로 그대로 전송TAB, SPACE와 QP encoding에서 사용하는 =은 예외로 각 ASCII 코드값에 =을 붙여 전송
TAB:=09,SPACE:=20,=:=3D
=로 끝남
- 1byte가 3개의 글자로 표시되므로 전부 non-ascii인 한글 글자의 UTF-8 encoding된 byte의 경우, 25문자가 한 line에 표시됨.
- 이며 soft linebreak를 더해 76글자
+, - 문자들을 사용= 문자로 padding을 하여 3의 배수로 맞춰줌.escape sequence(특별한 의미를 가진 문자)를 그냥 문자 그대로 사용하기 위해서 해당 문자의 ASCII 값을 16진수로 표현하고 이를 % 뒤에 붙여서 기재함.%를 붙여 변환됨.%와 16진수 숫자 2개로 바꾸어 처리함.Interpreter language
- line단위로 컴파일 없이 시행되는 언어
- 컴파일 없이 라인 단위 실행이 가능하기 때문에 개발단계에서 적은 양의 수정에 대한 결과 쉽게 확인 가능
Python,Java Scriptetc...
Virtual Machine
- HW의 발전으로 가능해진 것으로 마치 여러 application에서 시분할 기술을 통해 단일 OS에서 실행하는 것처럼, 여러 OS를 단일 물리적 시스템에서 시분할로 실행하는 방법
- OS는 HW에서 수행되는 instruction set이 있고 HW와 상호작용 하기 때문에 "실제 물리적 시스템의 HW에서 해당 작업을 담당하는 “Host OS" 와 "VM 내의 OS" 사이에서 VM 내 OS 요청을 Host OS가 수행할 수 있는 요청으로 변환해주는 중간자가 필요함
- 이는 일종의
interpreter라고 볼 수 있음.- 클라우드 환경을 이루는 데이터 센터에서 가장 유용하게 사용됨.
Reference:
1) https://shaeod.tistory.com/228
2) https://dsaint31.me/mkdocs_site/CE