-
API, HTTP, REST, AJAX, JSON, AJIT 간단 용어 정리웹/기본 2016. 11. 10. 22:12
이 글로 알 수 있는 것
- 웹 기술을 공부하며 흔하게 접하게 되는 용어인 API, HTTP, REST(Restful), AJAX, JSON, AJIT)에 대해 정확히 알 수 있다.
API
- API, Application Programming Interface
- 서비스 사용 설명서
- 서비스 개발할 때, 서비스를 사용하기 위한 규칙 또는 규약
- Open API
- 누구나 API를 사용하도록 공개한 API
- API를 활용한다는 것은?
- 공개된 컨텐츠로 새로운 가치를 창출할 수 있다.
- 누구나 따라 할 수 있으므로 진입장벽이 낮다.
- 정보와 서비스는 단순 조합의 차원을 넘어 자기만의 플랫폼과 색깔을 지녀야한다.
- API 활용 예 - 하우징맵
- 폴 레이드매처의 부동산 정보와 위치정보를 결합한 서비스
- 지도를 설정하는 것이 너무나 번거로워, 구글지도 위에 부동산 정보를 띄웠다.
- 하우징맵이 인기가 많아졌는데, 구글이 소송을 걸기는커녕 오히려 폴을 입사시키고 지도API를 공개했다.
- 왜 기업들이 API를 제공하는가?
- 기존 서비스의 활용도가 높아져, 서비스가 더 활성화된다.
- 서비스 활성화 -> 트래픽 증가 -> 수익 증가로 이어진다.
- 강력한 파트너를 얻게 된다. 인재 확보
- 서비스 지향적 구조를 형성하여, 유지보수와 서비스 통폐합이 용이해진다.
- 한번 API를 만들어 놓으면 기업간 제휴, 서비스 공유가 용이하다.
- 기업이 API를 제공하지 않는다면?
- 파싱 등을 하여 직접 코딩해야 한다. 만약에 기업이 웹 구조를 바꾸거나 하면 다시 코딩해야 한다.
- 인기 많은 API
- 지도 API
- 이미지 검색 API
- 플리커
- SNS기반으로 사진공유 서비스하는 사이트
- 이미지 API 사용빈도 1위
- 풍부한 컨텐츠, 이미지활용, 많은 기능, 결과 형식이 다양하다.
- 포스트버킷
- 사진, 동영상 공유서비스
- 이미지호스팅, 사진 및 동영상 공유하는 컨텐트기반 서비스
REST
- REST, Representational State Transfer
- WWW과 같은 분산하이퍼미디어시스템을 위한 SW아키텍처의 한 형식
- 즉 웹 페이지 접근에 관한 일종의 설계 방식
- Request 전달 방식과 URL을 구조적으로 표현하여 Request를 전송하기 위한 아주 간단한 인터페이스
- 간단한 예시
- GET으로 Request를 전달하면 1번 게시물을 조회할 수 있고,
- POST으로 Request를 전달하면 1번 게시물을 생성할 수 있고,
- DELETE으로 Request를 전달하면 1번 게시물을 삭제할 수 있고,
- PUT으로 Request를 전달하면 1번 게시물을 수정할 수 있다.
- 심화 공부하기
HTTP
- HTTP, Hyper Text Transfer Protocol
- 웹 사이트의 근간을 이루는 HTTP에 대해 알아보자.
- HTTP는 웹 애플리케이션 개발이 어려운 커다란 요인 중 하나이다.
- 왜 HTTP를 알아야 하는가?
- 웹 애플리케이션 프레임워크를 이용하면 HTTP통신에 대해 자세히 몰라도 어느 정도 웹 애플리케이션을 만들 수 있다.
- 하지만 개발한 애플리케이션이 의도대로 작동하지 않을 때 무엇이 원인인지 전혀 알 수 없다.
- 클라이언트와 서버
- 클라이언트는 요청Request하고, 서버는 Response한다.
- Request는 서버에 결과를 요청하는 요청문이다.
- 실제 Request와 Response 들여다보기
- 요청라인
- 메서드
- 요청의 종류를 나타낸다.
- GET, URI에서 지정한 정보를 보내달라는 의미가 된다.
- HTTP 버전
- 버전에 따라 이용할 수 있는 메서드의 종류와 요청헤더의 종류가 달라지므로 어떤 버전에 따른 요청인지 지정한다.
- 메시지 헤더
- Accept
- client가 받을 수 있는 데이터의 종류를 표시한다.
- 서버가 Accept 필드를 확인하면 불필요한 정보를 송신하지 않아도 된다.
- Accept-Language
- client가 받을 수 있는 자연 언어 종류를 나타낸다.
- 콘텐츠의 영어판, 한국어판이 있다면 이 헤더에 따라 클라이언트가 사용하는 언어에 맞는 콘텐츠를 보낼 수 있다.
- User-Agent
- 이용중인 웹 브라우저의 종류와 버전을 나타낸다.
- client의 종류에 맞춰 최적의 콘텐츠를 돌려주는데 사용된다.
- 이 필드를 확인하여 핸드폰에서 접속한 경우 핸드폰용 HTTP를 돌려준다.
- 어떤 브라우저를 사용하고 있는지 통계를 내는데 이용된다.
- Host
- 요청을 보낸 곳의 호스트명과 포트 번호를 지정한다.
- 메시지 본문
- 이 예제에서는 HTML파일을 요청했으므로 HTML파일의 내용이 그대로 들어 있다. 웹 브라우저는 이 HTML을 해석하여 화면에 표시한다.
- 만약 jpeg형식의 이미지파일을 요청했을 경우, 그 데이터가 메시지 본문에 그대로 들어간다. 데이터는 바이너리형식이므로 의미를 알 수 없는 문자열로 보인다.
- HTTP애서는 한 번에 리소스 하나를 취득한다.
- HTTP에서는 한번의 요청에 한 리소스밖에 취득하지 못하므로, 이미지가 많이 들어있는 페이지에서는 이미지의 수만큼 HTTP 요청이 발생한다.
- 파일명 생략했을 경우의 요청
- 웹사이트의 URL에서 파일명이 생략되어 있다. 웹 서버의 설정에 따라 기본문서파일을 돌려준다.(index.html 등)
- URL이 짧아져 기억하기가 쉽다.
URL, URI
- URL, Uniform Resource Locator
- 인터넷상의 주소
- 인터넷 상에 존재하는 리소스의 위치를 지정하기 위해 URL이 고안되었다.
- URI, Uniform Resource Identifier
- URL을 좀더 확장한 개념으로 URI가 고안되었다.
- URI는 URL과 URN을 포함시킨 것이다.
- URN, Uniform Resource Name
- 인터넷상에 존재하는 이름을 고유하게 식별하기 위해 준비된 것이다.
- URL은 리소스가 옮겨져 버리면 어디에 있는지 알 수 없게 된다. 인터넷에 존재하는 리소스에 통일된 이름을 정하자는 것이 URN이다.
AJAX
- AJAX, Asynchronous JavaScript and XML
- 비동기식 JS와 XML
- JS의 XML HTTP Request를 이용해 XML기반으로 비동기식 통신하는 기법
- 꼭 XML 말고 최근에는 JSON을 많이 이용한다.
- JS로 'page 새로고침' 없이도 Request를 생성해 서버로 보내고, Response를 받을 수 있게 되었다.
- 전체 Page 요소 중 한 부분이 변경된 걸 표현하려고 전체 page를 갱신하는 것이 아니라, 부분적인 요소만을 갱신한다.
- 예를 들면 블로그에서 작성 중인 글을 중간중간 보관하는 임시저장기능이 이에 해당한다.
- 물론 한 요소만을 갱신하는 방식은 'iframe'이나 'JS를 동적으로 불러오는 방식'으로도 가능하다.
- 그러나 이 두 방식인 Request를 제한적으로 다룰 수 밖에 없으므로 사용폭이 제한적이다.
- 비동기식으로, Request를 보내고 Response가 올 때까지 기다리지 않고 프로세스를 진행 가능하다.
JSON
- JSON, JavaScript Object Notation
- JS의 객체 표기법
- 기본 XML은 데이터 양이 많고, 사용방식이 번거롭다.
- JSON은 데이터 양이 줄고, 객체 접근과 문자열 객체화 방식이 용이하다.
AJIT
- AJIT, A JavaScript Integration Tool
- JS의 프레임워크. 부담없이 JS를 체계적으로 만들 수 있다.
- 액션스크립트와 문법요소가 비슷하다.
- ajit-lib.js
- AJIT프레임워크가 제공하는 작고 가벼운 라이브러리
- prototype.js, mootool, Extjs, jQuery라이브러리에서 가장 많이 사용되는 필요기능을 모은 것이다.
'웹 > 기본' 카테고리의 다른 글
[Web]웹의 탄생과 HTTP에서 요청문(request)과 응답문(response)을 알아보자. (0) 2016.12.13 Module, Library, Framework, SDK, API 간단 용어 정리 (0) 2016.11.11 Framework와 Library의 차이점은 누가 누구를 호출(call)하느냐이다 (0) 2016.11.11