컴퓨터 과학이란 무엇일까?
하버드 대학교의 컴퓨터과학 입문 강좌인 CS50을 강의하신 David Malan교수님은 이렇게 표현한다
컴퓨터과학은 단지 문제를 해결하는 과정
문제를 해결한다는 것은 어떠한 입력이 있을 때 그로부터 어떠한 출력을, 그러니까 그 문제에 대한 답을 찾는 것의 중간 과정이 바로 컴퓨터 과학이라고 말한다.
이런 입출력을 표현하기 위해서는 컴퓨터가 정보를 어떻게 표현하는지 알아야 하는데, 그것이 바로 2진법이다.
일상적으로 사용하는 숫자들을 나타내는 것은 10진법이다.
예를들어 123이라는 숫자는 기호나 상형 문자일 뿐이지만 이러한 숫자에는 어떤 체계가 작동하고 있다.
이 사진을 보면 123이라는 것을 인식하는 과정이 1을 백의자리, 2를 십의자리, 3을 일의자리로 보기 때문인데, 이것은 1100 + 210 + 3*1 = 123이 된다
이것을 익숙하게 여기는 이유는 이러한 표현에 대한 약속이 있기 때문인데 이러한 표현 방법을 10진법이라고 한다.
2진법에 대해 설명해야하는데 왜 10진법을 설명하고 있냐 하면 2진법도 10진법과 매우 유사한 약속으로 이루어져 있기 때문이다.
우리는 10진법을 계산할 때 자리수에 대해 10의 거듭제곱으로 표현하였다.
비슷하게 2진법은 0,1 두가지 숫자만 있으므로 각 자리수가 2의 거듭제곱을 의미하게된다.
위 사진과 같이 각 자리수가 2의 거듭제곱꼴로 바뀐것 외에는 10진법을 표현하는 방식과 차이가 없다.
컴퓨터는 이러한 방식의 2진법을 사용하며, 이것은 전기를 켜고 끄는 방식으로 작동하는 컴퓨터에게 적합한 방법이다.
컴퓨터에는 매우 많은 트렌지스터가 있고, 0과 1을 통해 전기가 있음, 없음을 표현할 수 있다.
이런식으로 컴퓨터에서 하나의 자리수를 표현하는 단위를 비트(bit)라고 한다.
비트는 이진 숫자라는 뜻을 가진 binary digit의 줄임말이며, 0과 1, 두 가지 값만 가질 수 있는 측정 단위이다.
디지털 데이터를 여러 비트들로 나타냄으로써 두 가지 값만을 가지고도 많은 양의 정보를 저장할 수 있다.
하나의 비트만으로는 많은 양의 데이터를 나타내기에 매우 부족하다.
그렇기 때문에 비트열 이라는 것을 사용하게 된다.
예를들어 바이트(byte)라는 것은 8개의 비트가 모여 만들어진 것으로 2^8개 만큼의 서로 다른 바이트가 존재할 수 있다.
바이트가 모이면 더 큰 단위가 될 수 있으며, 다양한 데이터 단위들은 아래 사진을 참고하자
네이버 부스트코스 모두를 위한 컴퓨터 과학 (CS50 2019)
https://www.boostcourse.org/cs112/lecture/118997#