본문 바로가기
Develop/Node.js

서버(Server)가 필요한 이유

by 라이프레이서 2021. 2. 28.

목차

    반응형

    API(Application programming interface)

    프로그램을 쉽게 제작할 수 있게 미리 만들어 놓은 도구 모음으로 생각하면 쉽다.

    예 ) 안드로이드 앱 개발자는 안드로이드 앱 API를 이용하여 버튼, 텍스트뷰 등을 쉽게 만들 수 있다.

    width: 100dp와 같이 가로 : 100dp라는 수치만 줬는데, API 내부에서는 이를 해석하고 계산하여 컴퓨터 화면상에 그 크기만큼 띄울 수 있는 복잡한 계산과정을 거치게 되는 것이다.

    안드로이드 앱에 있어서는 안드로이드 API를 이용하여 개발한다는 것은 알았다.

    이제 다음과 같은 경우를 생각해보자.

    - 안드로이드 기기 A와 아이폰 유저 B가 채팅을 주고 받고 싶은데 어떻게 해야 할까?

    - 인터넷에서 데이터를 가져와 보여주는 것은 어떻게 할 수 있을까?

    이는 서버가 존재하기에 가능한 것이다.

    이쯤이면 서버가 스마트폰 내부의 정보가 아닌, 외부에서 필요한 정보들을 담고 있는 존재라고 생각해볼 수 있을 것이다.

    위에서 예시로 든 안드로이드 기기를 이용하여 티스토리 블로그 창을 띄운다고 생각해보자.

    이 떄 안드로이드 기기는 클라이언트이며, 티스토리 블로그에 대한 요청을 받아 정보를 전달해주는 역할을 하는 것을 서버라고 한다.

    클라이언트 : 다른 곳에 있는 단말에 데이터를 달라고 요청하는 프로그램

    서버 : 다른 곳에서 요청받은 명령을 처리해 주는 프로그램

     

    그럼 서버와 클라이언트는 어떻게 데이터를 주고 받는 것일까?

    둘 사이에는 네트워크 카드가 존재하기 때문에 통신이 가능하다.

    네트워크 카드를 가진 서로 다른 두 개의 단말 사이에 통신을 위해서는 포트를 지정하여 그 포트로 요청을 받을 수 있다.

    0~65535중 하나를 지정해서 사용하며, 각 포트 영역은 다음과 같다.

    0~1023 : 잘 알려진 포트 - 안드로이드, IOS, 윈도우 등의 OS

    1025 ~ 49151 : 등록된 포트 - 대부분의 서버 개발에서 이용하는 포트

    49152 ~ 65535 : 동적 포트

     

    웹 서버 : 웹 브라우저에 접속하는 서버를 말하며, HTTP 프로토콜을 사용한다.

    프로토콜이란 데이터를 서로 어떤 형태로 주고 받을 것인지를 정한 것이다. (데이터의 형태라고 생각하면 편하다)

    Ajax : (Asynchronous Javascript And XML) - 웹 서버에서 웹 문서를 받아오는 것이 아니라 데이터만 받아오기 위한 방법과 기술을 말한다. 이렇게 하면 웹 문서를 매번 가져오지 않고 필요한 데이터만 가져온 후 화면을 부분적으로 갱신할 수 있기 떄문에 화면 처리 속도가 빨라지는 장점이 있다.

     

    반응형