[Tech 033] Google Cloud APIs를 통한 효율적이고 안정적인 애플리케이션 구성

앞선 영상에서 Google Cloud APIs를 이해하기 위하여 간단하게 API와 REST API에 대하여 설명 드렸습니다.
이번 포스팅에서는 주로 사용하는 API 스타일(REST API, SOAP API) 설명 및 비교와 OAuth2.0에 대하여 자세하게 알아보겠습니다.

REST API(Representational State Transfer API)

  • 정의
    – REST는 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미하며, REST의 특징을 기반으로 서비스 API를 구현한 것이 REST API입니다.
  • 특징
    – 어떤 자원에 CRUD(Create, Read, Update, Delete) 연산을 수행하기 위해 URI로 GET, POST 등의 방식(Method)을 사용하여 요청을 보내며,
    요청을 위한 자원은 특정한 형태로 표현됩니다.
  • 장점
    – REST API 메시지를 읽는 것 만으로도 메시지가 의도하는 바를 명확하게 파악할 수 있습니다.
    – 특정 메소드의 세부적인 표현 문구를 JSON, XML 등 다양한 언어를 이용하여 작성할 수 있다는 장점이 있습니다.
  • 단점
    – HTTP 메소드만을 사용하여 URI를 표현하여 메소드 형태가 제한적입니다.
    – 표준이 존재하지 않아 관리의 어려움이 존재하며, 좋은 API 디자인 가이드가 존재하지 않습니다.

SOAP API(Simple Object Access Protocol API)

  • 정의
    – 일반적으로 널리 알려진 HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜입니다.
  • 특징
    – XML이 플랫폼에 종속적이지 않기 때문에 이기종간의 통신이 가능하다는 장점이 있어서 이러한 A장치와 B장치를 연결하는 네트워크를 구성할 때 주로 사용
  • 장점
    – Proxy와 방화벽에 구애 받지 않고 쉽게 통신 가능
    – 플랫폼과 프로그래밍 언어에 독립적
    – 웹서비스를 제공하기 위한 표준(WSDL, UDDI, WS-*)이 잘 정립되어 있음
    – 에러 처리에 대한 내용이 기본으로 내장
    – 분산 환경에 적합
  • 단점
    – 복잡한 구조로 인한 오버헤드가 있으며, REST에 비해 무겁고 느림
    개발 난이도가 높아 개발 환경의 지원이 필요

REST API vs SOAP API 비교

REST API와 SOAP API의 차이점 비교해보겠습니다.

OAuth2.0이란?

  • 정의
    – OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는
    공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이 있습니다.
  • 사용 이유
    – 연동되는 외부 웹 어플리케이션에서 Facebook 및 카카오 등이 제공하는 기능을 간편하게 사용할 수 있다는 장점이 있습니다.
    예를 들어, 외부 웹 어플리케이션에 Google로 로그인하면 API를 통해 연동된 계정의 Google Calendar 정보를 가져와 사용자에게 보여줄 수 있습니다.

OAuth2.0 구성 요소

  • 정의
    – OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는
    공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이 있습니다.
  • 사용 이유
    – 연동되는 외부 웹 어플리케이션에서 Facebook 및 카카오 등이 제공하는 기능을 간편하게 사용할 수 있다는 장점이 있습니다.
    예를 들어, 외부 웹 어플리케이션에 Google로 로그인하면 API를 통해 연동된 계정의 Google Calendar 정보를 가져와 사용자에게 보여줄 수 있습니다.

OAuth2.0 인증 방식

OAuth2.0의 Protocol 흐름과 인증에 대한 4가지 유형이 존재합니다.
  • Authorization Code
    – 코드를 이용한 인증 방식이며 다른 방식에 비하여 보안성이 높아 주로 사용되는 방식입니다.
  • Implicit
    – Authorization Code 방식에서 코드를 통해 인증하는 부분을 뺀 방식입니다.
  • Resource Owner Password Credentials
    – Resource Owner에서 ID, PWD를 전달받아 Resource Server에 인증하는 방식입니다.
    (신뢰할 수 있는 Client에서 사용)
  • Client Credentials
    – Resource Owner가 사용자가 아닌 Client 자체일 때 사용되는 방식입니다.
Google Cloud APIs가 신뢰적인 인증 방식을 통하여 안전하게 사용되는지에 대하여 알아보았습니다.

이진규 (Jinkyu Lee)

Cloocus

Google Cloud APIs를 활용하여 효율적이고 안정적인 Application 구성에 도움이 필요하시다면, Cloocus와 함께 시작해보세요 😊