관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

소프트웨어 2 - 데이터 형태와 처리 본문

알고리즘 및 자료 관리/컴퓨터 구조 & 운영체제

소프트웨어 2 - 데이터 형태와 처리

huenuri 2024. 10. 14. 06:24

마지막 단원을 학습해 보겠다.


 

 

 

 

이론 2 - 데이터 형태와 처리

 

 

입력과 출력 중간 단계에서 소프트웨어 명령에 따라 데이터를 처리한다. 소프트웨어의 처음과 중간, 끝에서 모두 데이터를 다룬다. 우리는 input과 output 데이터를 표현할 방법을 찾아야 한다. 데이터에는 어떤 종류가 있는지, 각각의 데이터 타입을 컴퓨터는 어떻게 인식하는지 알아보겠다.

 

 

 

 

컴퓨터가 효율적이고 에러 없이 정보를 받아들이기 위해서는 데이터 타입을 나누어 주는 것이 중요하다. 쉽게 떠올릴 수 있는 데이터는 숫자와 문자가 있고, 이미지도 데이터의 한 종류이다. 이미지가 여러 장 모인 것이 비디오이다. 영상 출력을 위해서는 스피커를 사운드 출력도 가능해야 한다. 

사용자가 입력하고 볼 수 있는 데이터의 종류는 많다. 이러한 데이터는 컴퓨터에서 0과 1의 나열로 저장된다. 0과 1의 패턴을 분석해서 다시 텍스트, 이미지, 비디오, 사운드 타입으로 우리에게 출력해 준다. 

컴퓨터가 어떻게 0과 1만으로 처리할 수 있는지 알기 위해서는 작고 귀여운 트랜지스터에 대해 먼저 알아야 한다.

 

 

 

지금 컴퓨터가 해내는 놀라운 일들은 모두 이 트랜지스터에서 시작된다. 사실 컴퓨터는 이름에서 알 수 있듯 계산하는 기계이다. 그저 수학적인 연산으로 영상을 편집하고 이메일을 보내는 기능을 가능하게 한다. 연산에 사용되는 트랜지스터는 스위치를 켜거나 끄는 역할밖에 하지 못한다. 1은 켜진 것을, 0은 꺼진 것을 의미한다.

이렇게 트랜지스터가 켜고 끄는 것을 반복하면서 데이터 타입을 0과 1의 나열로 바꾸어 저장한다. 하나의 트랜지스터는 오직 두 개의 신호만 전달할 수 있다. 하지만 트랜지스터가 여러 개 모여있고 순서가 정해져 있다면 이야기가 달라진다. 

 

 

트랜지스터 2개가 모이면 4개의 신호, 4개가 모이면 16개의 신호를 표현할 수 있다. 트랜지스터 하나가 추가될 때마다 표현할 수 있는 신호는 기하급수적으로 늘어난다. 최근 출시된 CPU에는 50억 개 이상의 트랜지스터가 들어간다. 엄청 많은 신호를 엄청난 속도로 표현해 낼 수 있게 되었다. 

 

트랜지스터가 껐다 켜짐 외에도 더 많은 상태를 가질 수 있다면 더 적은 수의 트랜지스터로 더 많은 정보를 처리할 수 있지 않을까 의문이 들 수도 있다. 예를 들어 전압의 세기에 따라 다른 결과값을 내는 것이다. 하지만 이렇게 되면 하나의 트랜지스터가 해야 하는 일이 너무 복잡해진다. 2.5 볼트가 들어오면 어떤 값을 출력해야 하는지 헷갈릴 수도 있다. 두 개의 상태만 처리하는 것이 오류의 최소화와 효율성 면에서 훨씬 좋다.

 

 

 

 

0과 1의 상태만 표시하는 것을 binary 이진법이라고 한다. 이진법의 Binary Digit를 줄여서 비트라고 부른다. 컴퓨터의 발전에 따라 비트의 수를 아주 많이 늘릴 필요가 있었다.

 

 

 

 

이렇게 8개의 비트가 사용되면 바이트, 킬로바이트는 1024바이트를 사용한다. 그리고 이 8개의 숫자를 문자로 표현한다. 

 

 

 

 

 

이미지는 픽셀로 이루어져 있다. 각 픽셀마다 색을 표현하면서 전체적인 이미지를 만든다. 이미지를 저장하기 위해 각 픽셀의 위치와 그 위치의 색 정보만 가지고 있으면 된다. 한 가지 색을 표현하기 위해서는 24개의 비트가 필요하다. 이 3가지 색으로 모든 색을 표현할 수 있기 때문이다.

빨강, 초록, 파랑이 각각 들어가는 정도를 1바이트씩 저장한다. 이미지 파일은 각각의 픽셀이 갖고 있는 RGB의 값들을 많은 비트수를 사용해 저장해야 하기 때문에 텍스트 파일보다 용량이 커진다.

 

이렇게 비디오, 텍스트 등 컴퓨터로 처리하는 모든 정보는 컴퓨터로 매핑할 수 있고 아주 많은 수의 0과 1로 컴퓨터에 저장되고 복원하는 것을 반복한다.


 

 

 

 

퀴즈 3 - 단위

 

 

 


 

 

 

 

퀴즈 4 - 트랜지스터

 

 

 


 

 

 

학습을 마치고

이렇게 해서 오늘 새벽 4시 반부터 2시간 동안 컴퓨터 사이언스 공부를 마쳤다. 대략적인 기초 지식은 얻게 된 셈이다. 나머지 더 깊이 있는 공부는 책을 통해 학습해보려고 한다. 오늘 새벽의 첫 강의는 듣고 공부를 진행하려 했으나 그럴 시간이 없어서 수학 공부를 하고 아침 운동을 하려고 한다.

오늘부터 새로운 한 주가 시작되어 정말 기쁘다.