1. 컴퓨터공학을 전공하면서, 컴퓨터가 바이트 단위로 동작하며, 1 byte = 8 비트 라는 것을 모르는 전공생은 거의 없을 것이다. 동시에 왜? 하필이면 8비트로 묶은 1 바이트가 단위가 되는 것일까? 하며 왜 라는 깊은 질문을 던지는 학생 역시 거의 없을 것이다. 나는 이 질문에 대한 답을 찾아가 보려고 한다.
2. 먼저 c 언어 시간에 배웠듯이 문자 타입을 저장하는 char 는 1바이트의 메모리 공간을 차지한다. 이는 곧 이런 프로그램이 만들어질 때, 몇 개의 기계어 배열을 사람의 문자 하나와 치환할 수 있을지에 대한 고민으로부터 나온 것이다. 아쉽게도 이것을 처음 만들 당시 대부분의 연구원들이 영미권 사람들이었기에(만약 중국인이 만들었다면, char 는 2바이트가 될 수도 있지 않았을까? 하하 ) 영어의 대문자와 소문자, 각종 기호들을 넣기에 충분한 수가 8비트라고 생각을 했기 때문이었다.
3. 그럼 결국 기계도, 사람이 만드는 것이기에, 기계어를 해석하기 용이하려면, 사람의 문자 단위와 기계어의 단위가 통일되는 것을 원할 것이다. (상식적인 사람이라면?) 따라서 컴퓨터의 기본 단위는 8비트 1바이트가 된 것이다.
4. 또 컴퓨터가 기억할 수 있는 가장 작은 단위는 비트 단위인데, 이 비트마다 모두 식별자를 줄 수가 없다. 그래서 식별자를 붙일 수 있을 만큼의 단위가 필요했고, 그래서 나온 것이 바로 바이트다. 라고 나는 이해를 했다.
5. 정답이 아닐지도 모르지만, 우선 이렇게 생각을 깊게 파고들고, 정답을 찾으려는 시도를 한다는 것에 주안점을 두고자 한다. 정답이 있는 문제를 푸는 건 많이 하지만, 정답이 없는 문제에 도전해 볼 수 있는 건 이런 개인 성장 시간밖에 없으니까.
'꼬리에 꼬리를 무는 코딩' 카테고리의 다른 글
M1 맥북에서 VS Code (Visual Studio Code) 에 stdc++.h 헤더 파일 include 하기 (맥북 stdc++.h 안됨) (0) | 2023.02.01 |
---|---|
2022.10.06 꼬꼬코 (0) | 2022.10.07 |
2022.10.04 꼬꼬코 (0) | 2022.10.05 |
2022.10.03 꼬꼬코 immer 라이브러리는 어떤 원리로 동작하는가? (1) | 2022.10.03 |
2022.10.02 꼬꼬코 immer 라이브러리 심화 (0) | 2022.10.03 |
댓글