목차
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) - 웹 서버에서 웹 문서를 받아오는 것이 아니라 데이터만 받아오기 위한 방법과 기술을 말한다. 이렇게 하면 웹 문서를 매번 가져오지 않고 필요한 데이터만 가져온 후 화면을 부분적으로 갱신할 수 있기 떄문에 화면 처리 속도가 빨라지는 장점이 있다.
'Develop > Node.js' 카테고리의 다른 글
Putty를 이용하여 Amazon EC2 연결하기 (0) | 2021.04.19 |
---|---|
Javascript 자료형에는 어떤 것이 있을까? (0) | 2021.04.05 |
javascript 변수 - const, let, var (0) | 2021.03.31 |
Node.js 에서 express.js 활용하여 server 구축하기 (0) | 2019.12.19 |
Node.js 설치 및 시작하기 (0) | 2019.12.19 |