보통 컴퓨터를 사용하는 이유는 정보를 주고 받기 위해서이다. 컴퓨터에서 정보를 얻기 위해서 우리는 구글이나, 다음, 네이버등을 이용하기 위해 인터넷 익스플로러, 크롬, 파이어폭스, 사파리, 오페라 등의 Web Browser를 사용한다.
Browser란 정보를 검색하는데 사용하는 응용 프로그램이다. 브라우저는 팀 버너스 리가 처음으로 제안을 해 만들어 졌다 (Nexus [ 구) 월드 와이드 웹(WWW)]).
우리는 이러한 Browser를 통해서 구글, 다음 등의 서버에 들어가게 된다.
Server란 정보를 내보내 주는 저장소(컴퓨터)이다. Server의 종류에는 도메인 Server, 메일 Server, 웹 Server, 이미지 Server등 다양하다. 컴퓨터에서 도메인과 관련된 정보를 주면 도메인서버, 이미지에 대한 정보만 제공하면 이미지 서버 이렇게 생각하면 될 것 같다. 구글에서 메일을 이용하고 싶다면 우리는 구글 도메인 서버에 들어가 메일 서버를 이용해 메일을 주고 받는 것이다. Server의 역할은 사용자가 정보를 요청하면 그에 대한 응답을 보내 주는 것이다. 따라서 언제든 사용자가 요청을 하면 정보를 보내줘야 하기 때문에 24시간, 연중무휴로 작동이 되야하며, 보통 고성능의 CPU, 하드드라이브, 메모리 등이 내장된 컴퓨터를 사용한다 (우리들이 사용하는 컴퓨터로도 서버역할을 할 수 있지만 일반적으로 그렇게 사용하지는 않는다.) .
구글이나 다음과 같이 크고 다양한 정보를 제공하는 경우 많은 양의 서버 컴퓨터를 사용하지만 보통 개인이나 작은 회사들의 경우 하나의 웹 Server를 이용하지 않는다. Server에 비해 정보량이 작아 굳이 하나의 서버를 이용하지 않기 때문에 하나의 웹서버에 비용을 주고 호스팅을 하는 경우가 많다. (하나의 웹서버에 수 백~수 천개의 웹이 운영되기도 한다.)
API (Application Programming Interface)는 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있는 인터페이스를 의미한다. 보통 핸드폰을 보면 API가 많은데, Server가 제공하는 정보를 보다 효율적으로 사용할 수 있도록 도와주는 프로그램을 말한다.
HTTP란 Hyper Text Transfer Protocol의 약자로 인터넷에서 데이터를 주고 받을 수 있는 프로토콜(규칙)을 의미한다. 서버에 특정 정보를 요청했을 때, 서버가 응답을 하게 되는데 응답에 대한 정보를 HTTP 메시지를 통해 보내준다. HTTP 메시지는 시작줄, 헤더, 본문으로 구성되어 있다.
시작줄은 보통 HTTP method 주소버전으로 구성이 되어있고,
헤더에는 요청에 대한 정보를 포함하고 있다 (User-Agent, Upgrade-Insecure-Requests 등).
본문은 헤더에서 한 줄을 띄고 시작이 되며, 우리가 알고 싶어하는 정보가 들어가 있는 부분이 본문이다.
Ajax 는 Asynchronous JavaScript And XML(비동기식 자바스크립트와 XML)의 약자로 JavaScript를 이용한 비동기 통신, 클라이언트와 서버간에 XML데이터를 주고받는 기술을 뜻한다. Browser가 가지고 있는 XML HttpRequest 객체를 이용해 전체 Page에서 원하는 일부 Page만을 로드하는 기법을 뜻한다.
부분만을 받아오고 전체를 응답받을 필요가 없어 빠른 데이터 전달과 불필요한 갱신을 자제할 수가 있다. 이를 통해 정보를 받는 사용자가 원하는 정보(검색어, 지도스크롤, 채팅)등을 더 빠르게 응답이 가능하다.
기본적으로 HTTP프로토콜은 클라이언트(정보를 요청하는곳)에서 서버(정보를 주는 곳)로 Request를 하고 Respone을 하면 연결이 끊기고 데이터를 갱신해야 되는데 이러면 전체를 갱신해야되서 비효율적이다. 따라서 ajax를 이용 시간, 자원을 최소화가 가능하다.
ajax 장점: 웹페이지(브라우저) 속도 향상, 서버의 처리가 완료되기 전에 처리가 가능, 일부만 보내고 받으면 되므로 코딩의 양이 줄어듬. 기존의 불가능했던 ui가 가능(제목이나 페이지 리로드 없이 수정이 가능 등)
ajax 단점: 히스토리 관리가 안된다.(상대적 보안에 취약), 연속적 데이터 요청시 서버에 부하가 증가할 수 있음. XML HttpRequest를 통해 통신을 하는 경우 사용자에게 아무런 진행정보가 주어지지 않음. 이 때문에 요청이 완료되지 않은 정보를 사용자가 잘못 인식하거나 페이지를 떠남, 오작동을 할 우려가 있음.
참고) Jquery : JavaScript만으로 ajax를 하면 코딩량이 많아지고 브라우저별 구현방법이 다르다는 단점이 있는데 jquery를 이용하면 적은 코딩량과 동일한 방법으로 대부분의 브라우저에 같은 동작이 가능하다.(HTTP GET방식과 HTTP POST방식을 모두 사용해 원격 서버로부터 데이터를 요청이 가능.) jquery는 javascript의 라이브러리 중 하나인데 자바스크립트를 좀더 사용하기 쉽게 패킹징화 해놓은 것을 말한다.
React, Front-end Library(3) (0) | 2019.11.05 |
---|---|
React, Front-end Library(1) (0) | 2019.10.29 |
Data Structure - Tree , Binary Tree, Binary Searching Tree (0) | 2019.10.29 |
Data Structure - Graph (0) | 2019.10.29 |
Data Structure - Stack, Queue, Linked List (0) | 2019.10.29 |