안녕하세요 CA&OS에 대한 두 번째 글이네요.
이번글은 데이터가 무엇인지에 대해서와 컴퓨터에서 데이터의 표현에 대해 알아보도록 하겠습니다.
데이터란 사실 혹은 어떠한 정보를 이야기합니다. 조금 풀어서 이야기 하면 컴퓨터 세상이 아닌 실제 세상에서 얻은 어떠한 현상에 대한 불연속적 사실과 대응하는 정보를 이야기합니다.
사실 Value(값)이라는 것의 기본은 Data로부터 오는 것입니다. Value의 예로는 123, 10,000₩, 이미지의 색, 음악의 톤, "문장"이 있습니다. 이렇게 예를 들어봤는데 감이 오시는 분들은 아시겠지만 여러분이 python에서 알고있는 dict의 key,value 할때 그 value가 맞습니다.
또 하나의 예를 들어보자면 kaggle에서 우울증 문제를 풀기 위해 데이터를 받고 그 데이터를 표로 표현했을 때 column이 key값이 되는 것이고 row가 value가 되는 것에서 이 value가 위에서 말한 value라는 것 입니다.
하지만 Value는 추상적이고, 해석이 가능합니다. 123는 숫자, March는 달 이라는 범주로 말이죠. 또한 같은 Value는 다르게 표현이 가능합니다. 12라는 Value가 있다고 할 때, 영어로는 Twelve, 2진수로는 1100, 16진수로는 C라는 등의 다양한 표현이 가능하다는 이야기 입니다.
이렇게 다양한 표현이 가능하기 때문에 우리는 어떤 표현이 가장 컴퓨터에 적합할지에 대해 배워야 합니다!
디지털 컴퓨터는 2진수로 표현이 됩니다. 그렇기에 0과 1로 표현을 하는 것이고 모든 것을 1(True) 아니면 0(False)로 저장합니다.
그래서 이렇게 쓰여지는 1,0의 조합에서 각각을 instance라고 하고 이 instance들의 조합을 state라고 합니다. 조금 더 여러분이 친숙한 말로 얘기하면 state에 있는 instance하나가 bit가 되는 겁니다.
앞서 얘기 했던 것 처럼 Value의 적절한 표현이 필요한데 그것이 바로 bit입니다. Value는 bit의 squence로 표현이 가능합니다. (1000001)2 = 6510 으로 표현이 가능하다는 것이죠.
그렇다면 컴퓨터는 어떻게 이 연속적인 1,0의 조합이 의미하는 것을 알 수 있을까요?
조금 웃긴 이야기이지만 컴퓨터는 알지 못합니다. 방금 까지 컴퓨터가 알 수 있는 형태로 Value를 만든다 했으면서 컴퓨터는 모른다고? 라는 생각을 하실 수 있습니다. 사실 방금 말했던 (1000001)2 = 6510에서 65는 정수, (1000001)2는 2진수를 의미합니다. 뭐 다르게도 해석이 되겠죠. 아무튼 중요한 것은 사람은 이것들을 마음대로 바꿔가며 해석이 가능합니다. 그래서 결론은 컴퓨터가 의미를 이해하는 방법은 사람이 결정하는 것이다. 이게 결론입니다.