ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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라이브러리에서 가장 많이 사용되는 필요기능을 모은 것이다.


Designed by Tistory.