Study/IT 이야기

서버는 왜 필요할까?

AC 2019. 3. 6. 15:16




최근에 안드로이드나 아이오에스(IOS) 기반의 모바일 앱을 만드는 개발자는 서버에 대한 지식이 전혀 없는 상태로 웹 서버나 채팅 서버를 만들기도 한다. 이런 경우라도 본 포스팅을 보고 서버에 대한 지식을 익힌다면 필요했던 서버 기능을 대부분 문제없이 만들 수 있을 것으로 예상한다.


물론 예상이다 ㅎㅎㅎㅎ



그렇다면 노드가 무엇인지 배우기 전에 서버가 무엇이며, 어떤 종류의 서버가 있는지 알고 보자.



우리는 PC나 스마트폰에서 여러 가지 프로그램(Program)을 사용한다. 이 프로그램을 애플리케이션(Applicastion)이라고 부르며, 스마트폰에서는 앱(App)이라고도 부른다. PC에서 동작하는 프로그램중 대표적인 것이 파워포인트, 워드, 엑셀과 같은 문서 프로그램인데

이런 프로그램은 사용법만 익혀도 충분하다.


하지만, PC나 스마트폰에서 동작하는 프로그램을 직접 만들어보고 싶다면 API(Applicastion Programming Interface)를 알아야 한다.


API란 프로그램을 쉽게 제작할 수 있게 미리 만들어 놓은 것들의 모음이라고 할 수 있다. 예를 들면, 윈도우(Window)라는 PC용 운영체제(OS)에서 동작하는 프로그램을 쉽게 만들 수 있도록 윈도우용 API가 제공된다. 윈도우용 API에는 PC화면에 버튼처럼 보이는 것들을 미리 만들어 넣어두었기 때문에 간단한 코드 몇 줄로도 버튼을 만들 수가 있는 것이다.



스마트폰의 경우에도 안드로이드 OS나 아이폰용 OS를 위한 API가 이싿. 이렇게 우리는 운영체제의 API를 이용해서 하나의 단말 기기(Device)에서 동작하는 프로그램을 만들게 된다.



▲API를 사용해 만든, 하나의 단말에서 독립적으로 실행되는 프로그램



요즘에는 인터넷을 이용해서 다른 장소에 있는 데이터를 가져와 보여주는 경우가 많다. 인터넷 익스플로러나 크롬 웹 브라우저를 열고 구글이나 네이버 같은 포털 사이트에 접속하는 것도 웹 브라우저라는 프로그램이 인터넷을 사용해서 웹 서버에 웹 문서를 달라고 요청할 수 있기 때문에 가능한 것이다.


우리들이 프로그램을 만들 때에도 인터넷을 이용해서 다른 곳의 데이터를 가져와 보여주거나 다른 곳에서 보내온 데이터를 우리들 컴퓨터에 저장하는 경우가 많이 생긴다. 이렇게 다른 곳에 있는 단말에 데이터를 달라고 요청하는 프로그램을 클라이언트(Client), 다른 곳에서 요청하는 명령을 처리해 주는 프로그램을 서버(Server)라고 한다.






우리들이 만든 프로그램을 인터넷에 연결하기 위해서는 단말에 네트워크 카드(Network Card 또는 Ethernet Card)가 있어야 한다.


요즘에는 유선 인터넷뿐만 아니라 무선 인터넷을 사용하는 경우가 너무나 많아서 단말에는 와이파이(Wifi)나 3G/LTE로 인터넷에 접속할 수 있는 네트워크 카드가 들어가 있다.


두 개의 서로 다른 단말에 모두 네트워크 카드가 들어 있다면 한 쪽은 클라이언트, 다른 한쪽은 서버 역할을 할 수 있다. 


이 때 서버는 포트(Port)를 지정하여 그 포트로 요청을 받을 수 있다. 


하나의 단말에서 사용할 수 있는 포트는 보통 0~65535 중 하나를 지정해서 사용하는데 각 포트 영역은 다음과 같이 구분된다.




포트란? <- 클릭



서버를 만들어 실행하면 지정된 퐤트에서 클라이언트로부터 요청을 받아 처리하게 된다.

또한 많은 경우에 서버는 DB(데이터베이스)에 연결할 수 있도록 구성되기 때문에 클라이언트에서 보내온 데이터를 저장하거나


저장된 데이터를 조회한 후 클라이언트에 보내준다. 서버 중에서 우리들이 많이 사용하는 웹 브라우저에서


접속하는 서버를 웹 서버라고 하며, HTTP 프로토콜을 사용한다.



여기에서 프로토콜(Prptocol)이란 데이터를 서로 어떤 형태로 주고받을 것인지를 정한 것으로, 간단하게 데이터의 형태라고 생각하면 이해하기가 쉽다. 따라서 HTTP란 이넡넷상에서 데이터를 어떻게 주고받으면 되는지를 정의해 둔 것이고, 모든 웹브라우저가 이 방식을 따른다고 할 수 이싿. 웹 브라우저에서 HTTP로 요청한 데이터를 받은 웹 서버는 피룡한 작업을 수행한 후 HTTP로 응답을 보낸다.


웹 브라우저에서 볼 수 있는 웹 문서는 보통 HTML과 CSS, 그리고 자바스크립트를 이용해서 만들어 둔 것이다.



웹 브라우저가 웹 서버로부터 데이터를 전달받으면 웹 브라우저 화면에 웹 문서를 띄우게 되는데,

이 웹 문서가 클라이언트 프로그램의 역할을 하게 된다. 따라서 한번 화면에 띄운 웹 문서는 필요할 때 마다 웹 서버로 또 다른 웹 문서를 요청하여 받아온다.



▲ 웹 브라우저에서 웹 서버에 요청하여 웹 문서를 가져오는 경우


스마트폰과 같은 모바일 단말에서는 웹 문서를 웹 서버가 아닌 단말 내부에 저장해 두었다가 화면에 띄운 후 웹 서버로 필요한 데이터만 요청하는 방식을 사용하기도 한다. 이때 에이잭스(Ajax) 방식으로 데이터만 받아오는 경우가 많다.


이렇게 하면 매번 웹 문서를 가져오지 않고 필요한 데이터만 가져온 후 화면을 부분적으로 갱신(Refresh)할 수 있기 때문에 화면 처리 속도가 빨라지는 장점이 생긴다.



인터넷 환경에서 가장 많이 사용하는 서버가 웹 브라우저에서 접속하는 웹 서버이다.


서버는 이정도로 포스팅을 마칩니다. 뿅!



LIST