본문 바로가기

clone toy projects/node_express_sns

API 서버 이해

NodeBird 앱의 REST API 서버를 만들어보겠습니다.

노드는 자바스크립트 문법을 사용하므로 웹 API 서버에서 데이터를 전달할 때 사용하는 JSON을 100% 활용하기에 좋습니다.

 

API 서버는 프론트엔드와 분리되어 운영되므로 모바일 서버로도 사용할 수 있습니다.

노드를 모바일 서버로 사용하려면 이번 장과 같이 서버를 REST API 구조로 구성하면 됩니다.


사용자 인증사용량 제한 등의 기능을 구현하여 NodeBird의 웹 API 서버를 만들어봅시다. 

이번 장을 위해 NodeBird 앱에 게시글을 다양하게 올려 두세요.

 

웹 API는 다른 웹 서비스의 기능을 사용하거나 자원을 가져올 수 있는 창구입니다.

"API를 열었다" 또는 "만들었다"라는 표현은 다른 프로그램에서 현재 기능을 사용할 수 있게 허용했음을 의미합니다.

 

다른 사람에게 정보를 제공하고 싶은 부분만 API를 열어놓고, 제공하고 싶지 않은 부분은 API를 만들지 않는 것입니다. 

또한, API를 열어놓았다 하더라도 모든 사람이 정보를 가져갈 수 있는 것이 아니라 

인증된 사용자만 일정 횟수 내에서 가져가게 제한을 둘 수도 있습니다.

위와 같은 서버에 API를 올려서 URL을 통해 접근할 수 있게 만든 것을 웹 API 서버라고 합니다.

이 장에서 만들 서버도 NodeBird의 정보를 제공하는 웹 API입니다. 

단, 정보를 모든 사람이 아니라 인증된 사용자에게만 제공할 것입니다.

여기서 "크롤링"이라는 개념을 알아두면 좋습니다. 

크롤링은 웹 사이트의 데이터를 수집하는 방법으로, 

웹 사이트가 자체적으로 제공하는 API가 없거나 API 이용에 제한이 있을 때 사용합니다. 

 

표면적으로 보이는 웹 사이트의 정보를 일정 주기로 수집해 자체적으로 가공하는 기술입니다. 

하지만 웹 사이트에서 직접 제공하는 API가 아니므로 원하는 정보를 얻지 못할 가능성이 있습니다. 

또한, 웹 사이트에서 제공하길 원치 않는 정보를 수집한다면 법적인 문제가 발생할 수도 있습니다.

서비스 제공자 입장에서도 주기적으로 크롤링을 당하면 웹 서버의 트래픽이 증가하여 서버에 무리가 가므로, 

웹 서비스를 만들 때 공개해도 되는 정보들은 API로 만들어 API를 통해 가져가게 하는 것이 좋습니다.