Web Architecture 란?
이제는 삶에서 없으면 안될만큼 아주 중요한 부분을 차지하고 있는 것이 바로 인터넷이다. 처음에는 인터넷에 연결이 되기만 하면 둥둥 떠있는 것처럼 원하는 곳으로 헤엄치며 다니면서 원하는 정보를 보고 듣고 가져올 수 있을 거라고 생각했다. 아주 추상적인 생각이다. 이번 블로그에서는 이러한 일을 가능하게 만들어 주는 구성요소에 대해 간략히 알아보자.
Application Programming Interface(API)
어떤 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
*인터페이스: 서로 다른 두개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면
Client (=== Browser)
사용자가 보기 좋게, 편하게 만들어 주는 어플리케이션
Server
클라이언트의 요청을 받아서 요청을 적합하게 처리하는 어플리케이션
HTTP
클라이언트와 서버가 소통하기 위한 규칙을 정해 놓은 것
HTTP 장점
클라이언트와 서버 간에 요청의 제한 없이 정보를 저장하거나 하지 않기 때문에 무한히 요청하고 응답할 수 있다.
eg) Siri
HTTP 단점
저장을 하지 않는 다는것이 단점이다. 그래서 요청은 항상 독립적인 요청이다.
Client는 HTTP를 통해서 Server가 이해할 수 있는 언어로 명령을 요청하고,
Server는 HTTP를 통해서 Client가 이해할 수 있는 언어로 응답해준다.
Asyncronous Javascript and XML(AJAX)
비동기적으로 작동하는 자바스크립트를 이렇게 부른다. 하나의 개념이라고 생각하면 쉽다. AJAX의 장점은 전체를 새로고침 하지 않고 필요한 부분만을 업데이트 할 수 있다.
fetch
fetch는 ajax를 구현하는 여러방식 중에 하나
fetch( url )
.then(response => response.json())
.then(result => console.log(result))
.catch(error => console.log(error));
// json 구조의 data
웹 서비스는 위의 구성요소를 활용하여 사용자들이 여러 정보를 주고 받는 일련의 방식/형태
'Programming > JavaScript tips' 카테고리의 다른 글
React.js_리액트 (0) | 2019.08.05 |
---|---|
setTimeout() && setInterval() 자바스크립트 (0) | 2019.08.04 |
[Algorithms]N-queens (Chess Puzzle) (0) | 2019.08.02 |
Prototype? __proto__? constructor? (0) | 2019.07.29 |
if(object[key] !== undefined) VS for(let key in object) VS Object.hasOwnProperty(key) : 누가 더 빠를까? (0) | 2019.07.28 |