일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- react
- 자바스크립트
- 엔퀸즈
- JS
- 초보
- method
- 연습
- 해커톤
- this
- JavaScript
- Instantiation Patterns
- ftech
- 공부
- 리액트
- 일상
- 코딩
- 개발
- 코드스테이츠
- underscores
- DOM
- underbar
- array
- 취업
- 포스기
- vscode
- 알고리즘
- grpahQL
- nqueens
- 제일어려워
- 클라이언트
- Today
- Total
analogcoding
Interact with Server - what is Web Architecture 본문
Web Architecture
웹 서비스는 크게 서버와 클라이언트 (DB)로 구성된다.
웹 서비스 아키텍처는 크데 3가지의 구조로 나누어져있다.
브라우저 위에서 클라이언트가 구동하고 서버에 클라이언트가 무언가를 요청하면 서버가 데이터베이스에서 요청한 것을 찾는다.
Client
네트워크를 통하여 서버라는 다른 컴퓨터 시스템 상의 원격 서비스에 접속할 수 있는 응용 프로그램이나 서비스를 말한다.
(서비스를 사용하는 사용자 혹은 사용자의 단말기를 칭하기도 한다.)
브라우저
HTML, JS , CSS 등 각 언어로 작성한 코드를 2진수만 알아 들을 수 있는 컴퓨터가 알아볼 수 있게 하는 역할을 가지고 있다.
ajax
(Asynchronous Javscript and XML)
에이잭스는 비동기적인 웹의 제작을 위해 아래와 같은 조합을 이용하는 웹 개발 기법이다.
(표현 정보를 위한 HTML 과 CSS 와 동적인 화면 출력 및 표시 정보와의 상호작용을 위한 DOM , JAVASCRIPT 등 함께 사용할 수 있는
기술의 묶음을 칭한다.)
AJAX 의 특성.
이전 웹 서버는 요청된 내용에 따라서 데이터를 가공하여 새로운 웹 페이지를 작성하고 응답으로 되돌려준다. 이때 최초에 폼을 가지고 있던
페이지와 사용자가 이 폼을 채워 결과물로서 되돌려 받은 페이지는 일반적으로 유사한 내용을 가지고 있는 경우가 많다.
결과적으로 중복되는 HTML 코드를 다시 한번 전송을 받음으로써 많은 대역폭을 낭비하게 된다.
대역폭의 낭비는 금전적 손실을 야기할 수 있으며 사용자와 대화(상호 반응)하는 서비스를 만들기 어렵게도 한다.
반면에 Ajax 애플리케이션은 필요한 데이터만을 웹서버에 요청해서 받은 후 클라이언트에서 데이터에 대한 처리를 할 수 있다.
웹서버에서 전적으로 처리되던 데이터 처리의 일부분이 클라이언트 쪽에서 처리 되므로 웹 브라우저와 웹 서버 사이에 교환되는
데이터량과 웹서버의 데이터 처리량도 줄어들기 때문에 애플리케이션의 응답성이 좋아진다. 또한 웹서버의 데이터 처리에 대한 부하를
줄여주는 일이 요청을 주는 수많은 컴퓨터에 대해서 일어나기 때문에 전체적인 웹 서버 처리량도 줄어들게 된다.
장점
- 페이지 이동없이 고속으로 화면을 전환할 수 있다.
- 서버 처리를 기다리지 않고, 비동기 요청이 가능하다.
- 수신하는 데이터 양을 줄일 수 있고, 클라이언트에게 처리를 위임할 수도 있다.
단점
- Ajax를 쓸 수 없는 브라우저에 대한 문제가 있다.
- HTTP 클라이언트의 기능이 한정되어 있다.
- 페이지 이동없는 통신으로 인한 보안상의 문제.
- 지원하는 Charset이 한정되어 있다.
- 스크립트로 작성되므로 디버깅이 용이하지 않다.
- 요청을 남발하면 역으로 서버 부하가 늘 수 있음.
서버
서버(server)는 클라이언트에게 네트워크를 통해 서비스하는 컴퓨터를 의미한다. 인터넷도 수많은 서버들이 거미줄처럼 얽혀서 형성된 것이다. 홈페이지를 운영하려면 서버가 반드시 필요하며, 보통 어느정도 규모가 있는 기관에서는 데이터베이스, 웹 어플리케이션 서버 등등에 방화벽,라우터 등이 붙어 네트워크를 형성한다.
API
(Application Programming Interface)
API 는 응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.
주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다.
HTTP
(HyperText Transfer Protocol)
www상에서 정보를 주고받을 수 있는 프로토콜이다. 주로 HTML 문서를 주고받는 데에 쓰인다.
HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다. 예를 들면, 클라이언트인 웹 브라우저가 HTTP를 통하여 서버로부터 웹페이지나 그림 정보를 요청하면, 서버는 이 요청에 응답하여 필요한 정보를 해당 사용자에게 전달하게 된다. 이 정보가 모니터와 같은 출력 장치를 통해 사용자에게 나타나는 것이다.
주로 HTML 문서를 주고받는 데에 쓰인다.
작동방식은 클라이언트가 Request 를 서버에 보내면 서버에서 Response 를 다시 클라이언트에게 보낸다.
Request Response 모두 같은 구성으로 Header 와 Body 로 나누어져있다.
Header : 어디서? 무엇을? 어떻게?
Body : Method
특징: 한 번의 한 요청만 수행 , 모든 요청에 대해 독립적이다.
'Be well coding > Learn more' 카테고리의 다른 글
React start (0) | 2019.06.11 |
---|---|
N-Queens (0) | 2019.06.10 |
Object.create() & Class & Super Method (0) | 2019.06.03 |
Inheritance Patterns (0) | 2019.06.03 |
Data structure - part.2 (0) | 2019.05.29 |