INTRODUCE PRODUCT

수학을 쉽고 의미있게 담아내는 수학교구 및 소프트웨어를 개발하여
수학문화의 대중화를 실천합니다.

Home

수학사랑 이야기

컴퓨터는 어떻게 모든 자료를 수로 나타내는가?

작성자 : 수학사랑|조회수 : 6769

따짐이: 선생님, 컴퓨터는 0과 1밖에 모른다는 것이 사실인가요?

 

선생님: 컴퓨터가 무엇을 안다 모른다 하는 말의 뜻을 정하기가 쉽지 않을 걸.  아마도 컴퓨터 내부에서 모든 자료와 명령(프로그램)이 이진수(이진법의 수)로 나타내어진다는 말이겠지.

 

따짐이: 그러니까 5라는 수는 컴퓨터 안에서는 101 처럼 들어 있다는 거죠?  0은 전기가 흐르지 않는 것이고 1은 흐르는 것이고…

 

선생님: 자료를 여기 저기로 옮길 때는 그렇게 말할 수 있지만 메인 메모리, 하드 디스크, USB 드라이브 등 각각의 장치마다 실제로 0을 어떻게 표현하고 1을 어떻게 표현하는지 하는 방법은 달라.  물론 0과 1을 저장할 수 있고 컴퓨터가 그 자료를 다시 읽어 들일 수 있다는 점에서는 같지.

 

따짐이: 그런데 실제로 컴퓨터는 십진수를 나타낼 수 있고, 계산도 할 수 있잖아요?  0과 1로만 자료를 나타낸다면서 어떻게 하는 거죠?

 

선생님: 그것은 프로그램, 즉 소프트웨어가 하는 일이야.  이진수 101 이라는 값을 받아서 화면에는 5 라는 글자를 표시하는 것이지.

 

따짐이: 5 라는 글자?  그건 수 5 와는 다른 거죠?  글자는 어떻게 이진수로 표현하죠?

 

선생님: 그것은 미리 약속을 하는 거지.  예를 들어 ‘A’ 라는 글자는 65, 그러니까 이진수 1000001 이고, ‘가’ 라는 글자는 44032, 그러니까 이진수 1010110000000000 이라는 식으로 말이야.  이런 식으로 하면 글자 ‘5’ 는 53 이니까 이진수 110101 이 되지.  그리고 각 번호에 해당하는 글자의 모양을 어딘가에(즉, 파일에) 저장해 놓았다가, 예를 들어 44032번 글자를 표시할 일이 있으면 거기서 모양을 가져다가 화면에 표시하는 것이지.

 

따짐이: 음… 그런데 글자의 모양을 파일로 저장하려면 그것도 수로 표시할 수 있어야겠군요.

 

선생님: 그렇지.  글자는 복잡하니까 삼각형을 예로 들면, (1, 2, 0), (3, 5, 1), (4, -3, 1), (-7, -2, 1) 과 같이 표현할 수 있겠지.  각각의 묶음에서 첫 번째 수는 가로 방향으로 가는 거리, 두 번째 수는 세로 방향으로 가는 거리, 세 번째 숫자는 거기로 가면서 선을 그리느냐(1) 이동만 하느냐(0)를 표시한 건데, 워드프로세서 같은 프로그램은 그 수들을 읽어다가 그 뜻에 맞게 화면에 그림을 그리면 되는 거지.  다시 말해 첫 번째 변을 그리려면 (1, 2)에 해당하는 화면상의 점에서부터 (4, 7)에 해당하는 화면상의 점까지 선을 그린다는 것이지.

 

따짐이: 그럼 선이라든지 하는 그림은 실제로 모니터에 어떻게 해서 나오는 건가요?

 

선생님: 모니터 화면은 백만 개 정도 (예를 들어 1024´768 개) 의 점들로 이루어져 있기 때문에 각 점에 어느 색을 칠할지를 소프트웨어가 결정해 주면 그래픽 카드라는 장치가 실제로 모니터에 전기 신호를 보내서 각 점의 위치에 그 색을 비춰 주게 되는 거지.

 

따짐이: 그렇다면…

 

선생님: 색을 어떻게 수로 나타내느냐고?

 

따짐이: 그렇죠.  색을 어떻게 수로 나타낼 수 있는 거죠?

 

선생님: 색은 빨강, 파랑, 초록의 세가지 색의 빛을 각각 얼마나 강하게 비추느냐로 결정되지.

 

따짐이: 그렇죠.

 

선생님: 그래서 각각의 색에 대해 하나도 안 비추는 것을 0, 가장 세게 비추는 것을, 예를 들어 255 라고 하고 빨강, 파랑, 초록의 순서로 (127, 32, 92) 와 같이 표현하는 거야.  이런 묶음이 모니터 화면의 각 점(픽셀)에 대해 있는 거지.  즉, 화면을 표시하기 위해 약 삼백만 개의 수가 필요하다는 말이 되지.  물론, 화면이 더 크거나, 빨강, 파랑, 초록의 밝기를 더 세밀하게 조절한다면 더 많은 정보가 있어야 하겠고.

 

따짐이: 그러니까, 2+3 을 계산해서 5 를 화면에 표시하기 위해서는, 일단 그 계산을 하고, 그 결과, 그러니까 이진수 0101 을 보고 글자 ‘5’에 해당하는 이진수 110101 이라는 수를, 글자 모양이 저장되어 있는 파일에서 찾아서 그 모양을 그릴 수 있는 수들을 가져 온 다음, 그것을 보고 화면의 어느 점에 어느 색을 칠할 것인지를 결정하고, 그 각 점에 대한 색을 빨강, 파랑, 초록에 대한 밝기를 나타내는 수로 바꾸어 그래픽 카드에 보내야 한다는 것이군요…  아이고 숨차.

 

선생님: 그래.  그런 간단한 일을 할 때도 실제로 컴퓨터 안에서 일어나는 것은 아주 복잡한 일들이야.  하지만 그런 과정들을 완전히 자동적으로 할 수 있게 장치들이 만들어져 있어서 사람은 그것을 의식할 필요가 거의 없지.  어쨌든 컴퓨터나 휴대폰, MP3 플레이어 같은 디지털 기계들의 내부에서는 모든 것을 이진수로 저장하고 처리한다는 것은 사실이야.  최초로 사진을 찍거나 녹음을 할 때, 최종적으로 사람에게 보이거나 들려 줄 때 정도에만 아날로그적인 신호를 처리하게 되지.

 

따짐이: 맞다, MP3 이야기가 나와서 말인데요,  소리는 또 어떻게 이진수로 나타내나요?

 

선생님: 소리는 공기가 빽빽해졌다 엷어졌다 하는 것이지.

 

따짐이: 어째 과학 시간 같네요.

 

선생님: 그래서 소리가 없는 상태보다 얼마나 빽빽한지 엷은지, 다시 말해 공기의 압력을 재어서 수로 나타낼 수 있어.  CD 플레이어나 MP3 플레이어, 컴퓨터 속의 사운드 카드라는 장치는 그 수들을 받아서 전기의 강약으로 바꾸어서 스피커에 보낼 수 있고.

 

따짐이: 그렇긴 하지만 그 수가 계속 변하는 것 아닌가요?  그래야 음악이 표현되잖아요.

 

선생님: 바로 그렇지.  그래서 1초에, 예를 들어 44100 번 공기의 압력을 재어서 그 수를 모두 기록하는 거야.  1초에 44100 개의 수가 필요하다는 것이지.  물론, 더 음질을 좋게 하기 위해 더 자주 재면 더 많은 수가 필요하고.

 

따짐이: 왜 하필 44100 인가요?

소리샘플링 

선생님: 사람이 느낄 수 있는 가장 높은 소리는 1초에 20000번 정도 진동하는 것인데, 소리에 의해 공기가 진동하는 것보다 두 배 이상의 횟수로 압력을 재어야 음을 제대로 표현할 수 있기 때문이야.

 

따짐이: 어쨌든, 1초에 44100 개의 수가 필요하다면 3분짜리 음악을 저장하려면…

 

선생님: 파일 크기가 엄청 커지겠지. 그래서 음악을 저장할 때는 수학적인 계산을 통해 압축을 하는 일이 많은데, 그 방법 중 하나가 MP3 라는 거지.  사람이 느끼기 어려운 범위에서 어느 정도 원래의 음을 왜곡하는 대신 음악을 저장하는 데 필요한 용량을 줄이게 되어 있는데, 용량은 줄어드는 대신 저장된 정보에서 다시 음악을 살려 내려면 역시 복잡한 계산을 해야 하지.

 

따짐이: 글자, 그림, 색, 소리까지, 정말 수로 나타낼 수 있네요.  각각 거기에 맞는 과학적 지식을 이용해서, 서로 다른 방법으로…


우편번호 검색 close