책에 쓰여 있는 IT 지식은 비전공자에겐 필요 없는 지식이다.
IT 지식을 모른다고 컴퓨터로 엑셀이나 워드 문서 작업이 불가능한 것도 아니고, 스마트폰으로 카톡을 사용할 수 없는 것도 아니다. 그럼에도 불구하고 읽는 내내 흥미로웠고 많이 배웠다.
간편하고 손쉽게 마시는 인스턴트 커피보다 직접 원두를 로스팅하고 커피콩을 갈아 즐기며 마시는 커피가 더욱 맛있는 것처럼 매일 만지며 쳐다보고 일하는 IT기기가 어떤 원리로 운영되고 작동하는지에 대한 살짝 깊은 이해는 우리가 살고 있는 IT시대를 조금은 더 이해할 수 있게 해 준다.
컴퓨터 바탕화면에서 문서를 만들기 위해 엑셀 아이콘을 클릭한다. 어떤 일이 일어날까?
컴퓨터에는 CPU(중앙처리장치), RAM(메모리) 그리고 HDD(하드디스크)와 SSD(보조기억장치)가 있다. CPU는 컴퓨터의 머리이고, 보조기억장치인 HDD와 SSD는 컴퓨터의 창고이다.
CPU는 따로 데이터를 저장하지 않기 때문에 데이터를 연산하거나 처리하려면 저장된 데이터를 CPU로 보내줘야 한다. 이때 CPU는 창고 역할을 하는 기억장치인 HDD, SSD에 신호를 보낸다.
그런데 보조기억장치라는 창고가 워낙 크기도 크고, CPU보다 속도가 매우 느리기 때문에 둘이 같이 일하게 되면 하향 평준화가 이루어지는 이유로 RAM이라는 CPU의 개인 작업 공간을 만들었다. 이제 CPU는 보조기억장치에 필요한 데이터를 그때그때 요청하지 않아도 되고, 작업이 필요한 큰 데이터 뭉치를 보조기억장치에서 RAM으로 한 번 옮겨 놓고 RAM안에서만 작업하면 된다. 가끔 RAM에 큰 데이터 뭉치만 전달해주면 되기 때문에 작업 시간을 줄일 수 있다.
엑셀 아이콘을 클릭한다는 것은 보조기억장치에 저장된 프로그램을 실행한다는 의미이고 이는 CPU가 일을 한다는 의미이다. 엑셀 아이콘을 클릭하게 되면 보조기억장치에서 실행에 필요한 데이터가 RAM으로 올라가고 이 과정이 완료되면 엑셀이 실행된다.
우리는 단지 클릭만 하면 엑셀을 사용할 수 있다!
프로그램을 실행할 때 ‘자! 이제 하드디스크의 3번 플래터에 접근해서, 엑셀 데이터를 2번 메모리 3번 구역에 올린 뒤 CPU에게 일을 시켜야지!’라고 마음먹지 않는다.
이렇게 클릭만으로 내가 원하는 프로그램을 사용할 수 있게 해주는 소프트웨어가 운영 체제 Operating System (OS)인데 대표적으로 윈도우, 맥OS, iOS, 안드로이드가 있다.
윈도우와 맥OS는 컴퓨터에서 많이 쓰이고, iOS, 안드로이드는 모바일에 특화되어 있다. 이 모든 운영 체제의 소프트웨어는 우리 대신 IT기기의 하드웨어를 관리해준다.
카카오톡이 스마트폰에 설치되는 과정은 어떨까?
우리는 스마트폰을 꺼내 앱스토어 혹은 플레이스토어에 들어가 카카오톡을 검색하고 다운로드 버튼을 누르게 되면 가까운 기지국으로 “카카오톡 설치 파일을 보내줘!”라는 신호를 보낸다.
앱스토어이기 때문에 애플이 가지고 있는 컴퓨터로 신호가 가고 애플은 카카오에서 이미 올려놓은 ‘카카오톡 설치 파일’을 스마트폰으로 보내주게 된다. 다운로드 중이라는 화면이 뜨고 잠시 뒤 카카오톡이 설치된다. 이후 앱을 클릭해 실행하면 컴퓨터의 보조기억장치 (HDD, SSD)에 카카오톡 실행 파일들이 저장되고, 카카오톡 아이콘을 누르는 순간 실행에 필요한 부분들이 RAM 위로 올라오고, CPU가 이 데이터들을 처리하며 카카오톡이 동작한다.
스마트폰, 태블릿, 데스크톱, 노트북 등은 모두가 컴퓨터이기에 모두 위와 같은 원리로 작동된다. 모두 CPU, RAM과 보조기억장치인 HDD와 SSD를 가지고 있다.
우리 스마트폰이나 컴퓨터는 계속 무엇을 달라고 요청하는 반면에 우리의 요청을 들어주고 회신해주는 회사의 컴퓨터가 있다. 이렇게 계속 달라고 하는 컴퓨터를 ‘클라이언트’라 하고, 응답을 주는 컴퓨터를 ‘서버’라 한다.
클라이언트 컴퓨터의 운영체제는 윈도우, 맥OS, iOS, 안드로이드가 있고, 서버 컴퓨터의 운영체제는 리눅스가 있다. 굳이 윈도우, 맥OS, iOS, 안드로이드를 두고 리눅스를 사용하는 이유는 리눅스가 기본적으로 ‘무료’이기 때문이다.
클라이언트 컴퓨터 프로그램을 개발하는 사람을 클라이언트 개발자라 부르고, 서버 컴퓨터 프로그램을 개발하는 사람을 서버 개발자라고 부른다.
웹 그리고 iOS와 안드로이드 기반의 애플리케이션을 통해 데스크톱(PC)과 모바일로 서비스를 제공하는 회사가 출시를 하기 위해서는 적어도 4명의 개발자가 필요하게 된다. 웹 클라이언트 개발자, iOS개발자, 안드로이드 개발자, 서버 개발자까지 총 4명이다. 4명 중 3명은 클라이언트 측의 개발자이고, 1명이 서버 측 개발자가 된다.
이렇게 클라이언트의 요청과 서버의 응답을 구분할 수 있도록 하는 체계가 바로 API이다. 클라이언트와 서버는 API를 통해 요청과 응답을 주고받는다.
API는 서버 개발자가 개발하고, 클라이언트 개발자는 그 API를 사용하게 된다. 이 정도만 알아도 IT업계 사람들이 하는 이야기를 어느 정도는 알아들을 수 있다.
그리고, IT업계에서 진리는 컴퓨터 속도가 느리고 고장 났다고 생각되면 껐다 켜는 것이다.
CPU가 처리할 수 있는 한계를 넘어버린 컴퓨터는 죽는다. 하지만, 껐다가 다시 켜면 살아난다.
위의 내용이 어렵다면 마지막 문장만 기억하면 된다. 안되면 껐다 켜자!!