2021. 2. 17. 01:58ㆍDocument
사람과 사람이 소통하기 위해선 언어라는 도구를 이용하여 소통한다. 서로의 언어를 모를 경우 원활한 소통을 하기란 힘들다. A는 한국어만 할 줄 알고 B라는 사람은 프랑스어만 할 줄 알며 C라는 사람은 프랑스어, 한국어, 독일어를 할 줄 안다. 이 경우 C는 A와 B 둘다와 원활한 소통이 가능하지만 A와 B 서로는 원활한 소통이 힘들다. 서로의 언어에 대해서 알지 못한다면 원활한 소통이 힘들다. 이는 비단 사람과 사람의 관계에서만이 아니다. 사람과 컴퓨터가 소통하기 위해서도 언어가 필요하다. 하지만 사람의 언어와 컴퓨터의 언어는 다르다. 컴퓨터는 사람이 만들었지만 사람의 언어를 그대로 이해하지 못한다. 컴퓨터를 이해하기 위해서는 컴퓨터가 사용하는 언어를 알아야 한다.

우리는 현재 고도로 발전된 시대에 살고 있다. 앞으로 펼쳐질 미래는 점점더 발전할 것이다. 이 발전의 선봉장은 컴퓨터과학이며 컴퓨터과학 없이 더 이상의 발전을 이룩하기 힘들다. 심지어 지금 당장 컴퓨터와 관련된 모든 프로그램들이 사라진다고 생각해보자. 그렇게 되면 우리의 삶은 불편해지고 비효율적이며 혼란스러워질 것이다. 현재를 살아가며 미래로 나아가기 위해선 컴퓨터가 필수이며 이를 이해할 필요가 있다. 물론 개인이 컴퓨터 사이언스에 대해 알지 못한다고 해서 문제가 되지 않는다. 수 많은 개발자들이 인간과 컴퓨터가 소통하기 쉽게 다양한 UI를 만들어 내기 때문이다. 잘만들어진 UI를 사용하는 것은 어렵지 않다. 직관적으로 이해할 수 있고 바로 사용할 수 있다. 하지만 UI를 통해 컴퓨터와 소통한다고 해서 컴퓨터와 완전한 소통을 한다고 보기는 힘들다. 그저 만들어진 UI를 통해 소통하는 것이니, UI기능에 없는 명령을 내릴 수 없다. 컴퓨터와 소통하기 위해서는 컴퓨터 과학에 대한 이해가 필요하다.
컴퓨터 과학이란 문제 해결에 대한 학문이다. 문제 해결은 입력(input)을 전달받아 출력(output)을 만들어내는 과정이다. 그 중간에 있는 과정이 바로 컴퓨터 과학이다.

이러한 입력과 출력을 표현하기 위해선 우선 모두가 동의할 약속(표준)이 필요하다. 따라서 컴퓨터 과학의 가장 첫 번째 개념은 어떻게 표현하는지에 대한 표현 방법이다.
2진법
우리가 평소에 사용하는 숫자는 0 ~ 9로 이를 '10진법'이라고 한다. 하지만 컴퓨터에는 10진법을 사용하지 않고 오직 0과 1만을 사용한다. 이를 '2진법'이라고 한다. 컴퓨터는 0과 1로만 이루어진 2진법을 통해 글자나, 사진, 영상, 소리등을 저장할 수 있다. 2진법은 2의 제곱으로 설명할 수 있다. 1, 2, 4, 8, 16, 32, 64, 128 ... 이 숫자들을 이의 제곱근으로 표현하면 1(2의 0승), 2(2의 1승), 4(2의 2승), 8(2의 3승), 16(2의 4승), 32(2의 5승) , 64(2의 6승), 128(2의 7승) 이렇게 된다.
5를 2진법으로 나타내보면 어떻게 될까?
답은 101이다.
10진법을 2진법으로 나타낼때는 2의 제곱근의 순서를 역으로 바꾼다. (...128, 64, 32, 16, 8, 4, 2, 1) 나열된 2의 제곱값들의 합을 통해 10진법을 구하는 것이다. 필요한 숫자에는 1, 필요없는 숫자에는 0을 기입한다.
5를 구하기 위해서는 4와 1이 있으면 된다. 그럼 필요없는 숫자는 0으로 기입하고 필요한 숫자에만 1을 기입해보자
128(0) 64(0) 32(0) 16(0) 8(0) 4(1) 2(0) 1(1) → 00000101 앞에 필요 없는 0들을 없애면 101이라는 숫자가 완성된다. 101은 5를 2진법으로 표현한 것이다.
비트
컴퓨터는 2진법에서 하나의 자릿수를 표현하는 단위를 비트(bit)라고 한다. 컴퓨터는 정보를 저장하고 연산을 작업을 하기 위해서 비트라는 측정 단위를 사용한다. 비트는 0과 1, 두 가지 값만 가질 수 있다. 하지만 비트 한 개는 많은 양의 데이터를 나타내기에는 부족하다. 그렇기 때문에 여러 숫자 조합을 컴퓨터에 나타내기 위해 비트열을 사용한다.

바이트(byte)는 여덞 개의 비트가 모여 만들어진 것이다. 그렇기 때문에 하나의 바이트에는 여덜 개의 비트가 있고, 비트 하나는 0과 1로 표현되기 때문에 1바이트는 2의 8승 즉 256개의 서로 다른 조합을 나타낼 수 있다. 또한 바이트가 1,000개 모이면 킬로바이트(KB)가 되고, 1,000의 킬로바이트가 모이면 메가바이트(MB) , 1,000개의 메가바이트가 모이면 기가바이트(GB) 그리고 1,000개의 기가바이트가 모이면 테라바이트(TB)가 된다.
'Document' 카테고리의 다른 글
[컴퓨터 기초] 하드웨어 - 운영체제 - 소프트웨어란? (0) | 2021.12.08 |
---|---|
[컴퓨터 기초] 런타임(Run Time)과 컴파일타임(Compile Time) (0) | 2021.11.16 |
[JSP/Servlet 개념정리] POJO를 사용하는 이유가 뭘까 (0) | 2021.07.20 |
[JSP/Servlet 개념정리] JSTL/EL문 구동 방식 (0) | 2021.07.18 |