본문 바로가기

컴퓨터 과학(CS)/기타3

직렬화, XML, JSON, YAML 직렬화(Serialization) 직렬화는 컴퓨터의 데이터 객체를 저장 매체에 저장할 수 있는 형식, 또는 네트워크를 통해 전송할 수 있는 것으로 변환하는 것을 뜻한다. 저장장치에 저장되는 데이터 또는 네트워크를 타고 다니는 데이터는 결국은 0과 1로 이루어진 디지털 데이터의 연속이다. 따라서 프로그래밍 언어에서 사용하는 변수, 구조체, 객체와 같은 데이터들을 저장장치에 저장하거나 네트워크로 전송할 때에는 여기에 적합한 형식으로 만들어 줘야 한다. 직렬화의 방식은 크게 두 가지가 있다. 1) 컴퓨터가 쉽게 이해할 수 있는 0과 1의 디지털 형식으로 된 이진(binary) 방식 2) 사람이 쉽게 읽을 수 읽는 형태로 직렬화하는 텍스트 방식 XML, JSON, YAML 같은 형식은 텍스트 형식 직렬화이고, .. 2022. 1. 26.
컴파일러, 인터프리터 차이 영문으로 쓰여진 프로그래밍 언어를 컴퓨터는 어떻게 이해할까? 컴퓨터는 0과 1의 이진수만 이해할 수 있다. 이진수로 이해한다는 것을 더 정확히 말하면 프로그램의 연산을 실행하고 처리하는 장치인 CPU에 전기가 들어오면, 전압의 강도(전압의 크기가 작으면 0, 크면 1)에 따라 0과 1의 조합에 따라 명령을 수행한다. 그럼 프로그래밍 언어로 작성된 영문 글자를 CPU가 이해할 수 있는 기계어(0과 1의 연속으로 구성된 비트 단위의 저급 언어)로 번역해줄 번역기가 필요하다. 컴파일러와 인터프리터는 둘 다 프로그래밍 언어를 기계어로 변환해주지만 차이점이 있다. 컴파일 1) 좁은 의미: 특정 프로그램 소스 코드를 기계어로 변환하는 것 2) 넓은 의미: 특정 프로그램 소스 코드를 다른 언어(혹은 형태)로 변환하는.. 2021. 12. 22.
아스키코드(ASCII), 유니코드 배경 지식 컴퓨터 내부에는 수많은 트랜지스터가 존재한는데, 트랜지스터는 전기 신호로 작동하는 스위치다. 전기 신호가 들어오면(ON) 컴퓨터는 이것을 1로 인식 전기 신호가 없으면(OFF), 컴퓨터는 이것을 0으로 인식 즉, 컴퓨터는 트랜지스터를 통해 사용자가 입력한 데이터를 0과 1로 처리하여 이해한다. 비트: 0과 1로 정보를 표현하는 최소 단위(정보를 0, 1 두 가지로 밖에 표현 불가능) 바이트(8비트): 정보를 표현하는 기본 단위 아스키코드(ASCII) 컴퓨터와 소통하기 위해서는 우리가 사용하는 문자나 기호를 숫자로 변환(인코딩)해서 알려줘야 하는 필요가 생겼다. 아스키코드는 알파벳과 숫자, 특수문자 등 128개의 문자를 0과 1의 숫자 조합으로 대응시킨 문자 인코딩 방식이다. ex. 소문자 a의.. 2021. 12. 20.