PC(Personal Computer)

컴퓨터가 연결된 작은 지역 LAN(Local Area Network) LAN을 연결하는 선을 LAN선

여러 LAN을 하나로 연결해 MAN(Metropolitan Area Network)
여러 MAN을 하나로 연결해 WAN(Wide Area Network)

네트워크들을 선으로 연결하기 위해 많은 공사가 이루어 졌지만, 이 신호를 무선으로 만들기 시작하면서 3G, 4G, 5G가 나오게 되었습니다.

IT 서비스가 동작하는 방식

카카오톡을 설치할 때 일어나는 과정

스마트폰으로 앱 스토어 or 플레이스토어 등에서 카카오톡을 다운로드 받으면 가까운 기지국으로 카카오톡 설치 파일을 보내달라는 신호가 가고, 이 신호는 WAN을 따라 이동합니다. 앱스토어에서 다운로드 받는다고 하면 애플이 가지고 있는 컴퓨터로 신호가 도착하고, 그러면 애플 컴퓨터는 신호를 보낸 사용자 컴퓨터(핸드폰)로 카카오톡 설치파일을 보내 핸드폰에 카카오톡이 설치가 됩니다.

핸드폰도 일종에 작은 컴퓨터입니다!
스마트폰 안에는 컴퓨터와 똑같이 CPU, 메모리, 보조기억장치와 하드웨어를 제어하기 위한 운영체제가 있습니다.

설치된 카카오톡을 실행시키면 보조기억장치(HDD, SSD)에 카카오톡 실행파일이 저장되고, 카카오톡을 실행시키면 필요한 부분이 메모리에 올라가고 CPU가 메모리에 올라와 있는 데이터를 처리하면서 카카오톡이 실행됩니다.

카카오톡으로 데이터를 주고 받는 과정

A가 카카오톡에 올려둔 사진, 동영상들을 B가 다운로드를 하려고 할 때
B가 사진을 보내달라는 신호를 보내면 WAN을 따라 가까운 기지국으로 신호가 가고 카카오톡이 가지고 있는 컴퓨터에서 신호를 받아 B에게 사진을 전달해주면 B의 핸드폰에서 볼 수 있게 됩니다

IPv4 주소는 12자리 숫자가 마침표(.) 4개로 구분된 주소입니다.

ex) 121.32.42.193
214.123.142.12

IP 주소는 고정적이지 않고 이동하면 위치에 따라 계속 바뀝니다.

컴퓨터가 보편화 되면서 컴퓨터가 늘어날수록 많은 IP주소가 필요해졌고, 0~255 숫자만 사용할 수 있는 4 부분으로 구분된 IPv4로는 한계가 있었습니다. 그래서 최근에 나온게 숫자 구분을 4개 -> 6개 늘린 IPv6입니다.

클라이언트와 서버

카카오톡이 켜놓은 컴퓨터로 많은 카카오톡을 사용하는 사람들이 동시에 파일을 달라는 신호를 보냅니다. 그러면 카카오톡 컴퓨터는 사람들이 보낸 신호에 파일을 보내주기 위해 보조기억장치의 파일을 메모리에 올리고 CPU가 그 파일 보내게 됩니다.
하지만 신호가 몰리게 되면 메모리의 공간을 모두 쓰게 되거나, CPU가 처리할 수 있는 한계가 넘어버리면 컴퓨터는 죽습니다. 그렇게 되면 카카오톡을 사용하던 사람들은 카카오톡을 사용을 못하게 되니까 큰 문제가 발생하겠죠? 이럴때는 컴퓨터를 재시작 해야합니다.

여기서 파일을 보내 달라고 신호를 보내는 쪽을 클라이언트(Client) = 프론트엔드(Frontend)라고 합니다. 스마트폰 or 컴퓨터가 클라이언트에 해당합니다.
그리고 파일을 보내 주는 쪽을 서버(Server) = 백엔드(Backend)라고 합니다.

리눅스 운영체제

서버는 리눅스 운영체제 위에서 돌아갑니다. 서버클라이언트의 요청에 응답하는 컴퓨터입니다.
클라이언트의 요청은 다양할 수 있습니다. 로그인, 회원가입, 결제 요청 등등
컴퓨터는 사람이 코딩된 프로그램을 동작시키는 역할을 합니다.
즉, 개발자가 모든 절차를 코딩으로 해서 프로그램을 만들어 놓으면 컴퓨터는 그 절차대로 동작만 합니다.

서버는 왜 굳이 리눅스 위에서 돌리는가?

윈도우, 맥OS, iOS, 안드로이드 등 많은데…?

리누스 토발스는 리눅스(Linux)와 깃(Git)을 만든 사람입니다. 그리고 이 리눅스를 무료로 배포를 했고, 마음대로 사용자들이 수정해도 되고, 팔아도 된다고 했습니다.

리눅스 버전 중에 유명한 우분투(Ubuntu)
레드헷(Red hat) : 리눅스를 개량해서 유료로 판매하는 회사 유로로 하는 이유는
안드로이드(Android) : 구글이 리눅스 모바일 운영체제 형태로 리눅스를 개량해서 발전시킨 운영체제

과거에는 MS-DOS 라는 운영체제를 사용하였는데 이때는 컴퓨터의 명령어를 알아야지만 컴퓨터를 사용할 수 있었습니다. 하지만 애플과 마이크로소프트가 맥OS랑 윈도우를 만들면서 일반 사람들도 마우스로 쉽게 사용할 수 있게되었습니다. 그 안에 그래픽 UI(폴더, 휴지통) 붙어 있지만 서버에서는 필요없습니다. 서버는 프로그램이 24시간, 365일 안정적으로 돌아가기만 하면 됩니다.

개인 서버를 운영하기 힘든 이유

컴퓨터를 사서 거기에 운영체제를 설치하고 가정에서 24시간 365일 돌리면 전기세가 많이나옵니다.
그렇기 때문에 전력 소모가 적은 컴퓨터를 서버로 이용해야 합니다. 정전이 생길 수 있습니다. 정전이 일어나면 서버는 정지되고 이용자는 서비스를 이용할 수 없게 됩니다.
그 외 다양한 요인 예를들어 컴퓨터에 물을 쏟아서 고장이 나면 컴퓨터에 있던 모든 데이터는 복구를 할 수 없게 됩니다.

그래서 이 모든일을 대신 해주는 호스팅 업체에 맡깁니다.

국내 호스팅 업체 : Cafe 24, 가비아 등
해외 호스팅 업체 : AWS(Amazon Web Services)

느낀점

개략적으로 카카오톡같은 프로그램을 이용할 때 이루어지는 절차를 이해하기 쉬웠다. 컴퓨터 내부에 있는 CPU, 메모리, 보조기억장치들이 어떤 순서로 진행되는지 직관적으로 알 수 있었다. 리눅스를 많이 사용을 안하다보니 우분투, CentOS, 레드헷 등이 다 리눅스에 버전이라는 점을 알게 되었고, 서버에서는 그래픽 GUI같은 기능이 들어가면 전력소모를 많이 차지하기 때문에 최소한의 기능만 가지고 서버를 둬야하기 때문에 리눅스를 사용한다고 알게되었다. 리눅스에 대해서 더 많이 공부를 해야겠다.

reference

비전공자를 위한 이해할 수 있는 IT 지식