ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • API와 REST API
    프로그래밍 기초 공부 2022. 9. 19. 18:01

    다섯번째로 포스팅하게 될 내용은, API와 Rest API에 대해서 입니다.

     

    [ API( Application Programming Interface ) ] 

    한 프로그램에서 다른 프로그램으로 데이터를 주고받기 위한 방법
    응용 프로그램에서 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스

     

    ex) 손님 - 점원 - 주방

     

    [ API 인증키 ]

    ex) 영화를 보기위해 영화관 자리를 검색한다. API는 예매 가능한 좌석을 보여주고 고객은 원하는 좌석을 선택 후 결제한다. 이 내역을 API가 영화사로 전달하고, 고객이 원하는 좌석에 예약이 가능한지 파악하기 위해 영화사의 데이터베이스를 읽어야한다. 그런데 모든 사람이 다 영화사의 데이터베이스를 읽을 수 있게 되면 문제가 생길 수 있어
    데이터베이스를 읽을 수 있도록 허가한 사람에게만 비밀 코드를 알려줌 그것을 API 인증키라고 한다.

     

    [ OPEN API ]

    누구나 사용할 수 있도록 공개된 API이다.
    네이버, 카카오, 구글, 정부 등 에서 수집한 공공 데이터를 Open API 형태로 제공한다.

     

    OPEN API 사용 이유

    • 개발시 시간, 비용 절감 더욱 양질의 앱을 개발 가능

     

    API를 제공하는 이유

    •   API를 통해 정보 및 기능을 제공함으로써 더 많은 이익을 얻을 수 있기 때문
      1. 로그인 정보 API 개발자의경우 사용자로 하여금 회원가입이라는 귀찮은 절차없이 앱을 사용할 수 있게 유도
      2. 제공처의 경우 홍보효과 및 로그인정보가 연동되어 함부로 회원탈퇴를 하지 못한다는 점을 이용 이탈율 감소

    현재 제공되고 있는 Open API 의 종류는 너무나도 많고 다양하고 높은 품질의 정보 및 기능을 제공함

     

    [ REST API ] 

    • REST는 클라이언트가 서버 데이터에 액세스하는 데 사용할 수 있는 GET, PUT, DELETE 등의 함수 집합을 정의
    • 클라이언트와 서버는 HTTP를 사용하여 데이터를 교환
    • 서버가 요청 간에 클라이언트 데이터를 저장하지 않음
    • REST는 Representational State Transfer의 줄임말
    • REST API 구성
      1. 자원 - URI
      2. 행위 - HTTP METHOD
      3. 표현

     

    [ REST API 특징 ]

    1. Uniform ( 유니폼 인터페이스 )

    Uniform Interface는 URI로 지정한 리소스에 대한 조작을 통일되고
    한정적인 인터페이스로 수행하는 아키텍처 스타일을 말합니다.

     

    2. Stateless ( 무상태성 ) 

    작업을 위한 상태정보를 따로 저장하고 관리하지 않음
    세션 정보나 쿠키정보를 별도로 저장하고 관리하지 않기 때문에 API 서버는 들어오는 요청만을 단순히 처리
    서비스의 자유도가 높아지고 서버에서 불필요한 정보를 관리하지 않음으로써 구현이 단순

     

    3. Cacheable ( 캐시 가능 )

    HTTP라는 기존 웹표준을 그대로 사용하기 때문에, 웹에서 사용하는 기존 인프라를 그대로 활용이 가능
    HTTP가 가진 캐싱 기능이 적용 가능
    HTTP 프로토콜 표준에서 사용하는 Last-Modified태그나 E-Tag를 이용하면 캐싱 구현이 가능

     

    4. Self - descriptiveness ( 자체 표현 구조 )

    REST API 메시지만 보고도 이를 쉽게 이해 할 수 있는 자체 표현 구조

     

    5. Client - Server 구조

    REST 서버는 API 제공, 클라이언트는 사용자 인증이나 컨텍스트(세션, 로그인 정보)등을
    직접 관리하는 구조로 각각의 역할이 확실히 구분되기 때문에 클라이언트와 서버에서 개발해야 할 내용이
    명확해지고 서로간 의존성이 줄어들게 됨
     

     

    [ REST API의 설계 가이드 ]

    • 리소스에 대한 행위는 HTTP Method(POST, GET, PUT, DELETE)로 표현
    • /(슬래시)는 계층 관계를 나타낼때 사용
    • URI 마지막 문자에 /(슬래시)를 사용하지 않음
    • URI에 _(underscore)는 사용하지 않도록 한다. 또한 영어 대문자보다는 소문자를 사용
      그리고 가독성을 위해서 긴 단어는 잘 사용하지 않음
    • URI에 파일의 확장자(예를들어 .json , .JPGE)를 포함 시키지 않음

     

     

    /* 그외 단어들

     

    쿠키: 웹사이트 접속시 접속자의 개인장치에 다운로드 되고 브라우저에 저장되는 작은 텍스트 파일

    캐시: 컴퓨터의 성능을 향상시키기 위해 사용되는 메모리

    캐싱: 이 캐시 영역으로 데이터를 가져와서 접근하는 방식

     

    */

     

    '프로그래밍 기초 공부' 카테고리의 다른 글

    git ignore란?  (1) 2022.09.23
    HTTP란?  (2) 2022.09.23
    JSON과 XML  (0) 2022.09.19
    객체 지향 프로그래밍(OOP)이란 무엇일까?  (0) 2022.09.16
    interface란  (0) 2022.09.12
Designed by Tistory.