본문 바로가기
살아가기

APIDesign

by 공펄양 2020. 11. 18.

API Design과 Logacy Modernization

1. What is an API?

  • Legacy ? 기능 중심의 콘크리트 시스템
  • API ? Application Program Interface. 소프트웨어간의 정보를 교환하는 공유 경계
  • Legacy Modernization ? Legacy System의 새로운 가치 창출 (재사용성 향상, 의존성 제거)2. What is API Business?
  • API Economy : API가 조직의 수익성에 긍정적인 영향을 미칠수 있는 방식을 설명하는 일반적인 용어
    • API가 조직의 수익성에 긍정적 인 영향을 미칠 수 있도록 느슨한 연결 필요
  • Mashup : 각종 컨텐츠와 서비스를 융합하여 새로운 웹서비스를 만드는 것3. API Styles
  • Local API : Backend에서 서비스 또는 데이터를 요청하는 Frontend에 기능적 API를 제공하는 OS API의 기본적 형태
  • Program API : 다른 서버에서 원격 프로그램 실행을 기반으로 하는 API
  • Web API : HTTP/HTTPS와 같은 웹 프로토콜을 사용하여 요청을 보내고, 응답을 받음
    • 종류 : SOAP, REST, JavaScript, XML-RPC, JSON-RPC 등
    • 호출 절차 비교 
    • SOAP : Simple Object Access Protocol
    • 일반적으로 널리 알려지 Http, Https, SMTP 등을 통해 XML기반의 메시지를 컴퓨터 네트워크 상에 교환하는 프로토콜이다. 보통의 경우 RPC(Remote Procedure Call) 패턴이다.
  • SOAP과 REST의 차이
    • SOAP Client는 서버와 밀접하게 연결된 사용자 정의 데스크탑 어플리케이션처럼 작동한다. 엄격한 규칙이 있고, 한쪽이 변경되면 모든 것이 깨짐
  • Main types of Web APIs
    • Open API : Public API. 외부에서 제약없이 호출할 수 있도록 공개된 API
    • Partner API : Customer API. 라이센스, 권한 등이 별도로 필요
    • Internal API : Private API. 기업 내부 시스템에서만 사용
    • Composite API : 복수의 마이크로 서비스 또는 API를 동시에 호출하는 방식으로 처리 속도를 높일 수 있음4. What is REST
  • REST란? 웹의 장점을 최대한 활용할 수 있는 아키텍쳐(로이 토마스 피딩)
  • REST의 6가지 규칙
    • Uniform : URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍쳐 스타일을 표현한 것
    • Stateless : 작업을 위한 상태 정보를 따로 저장하지 않음
    • Cachable : 캐시 가능
    • Self-descriptiveness : 메시지만 보고 이해할 수 있도록 자체 표현 구조
    • Client-Server 구조
    • Hierarchical : 계층형 구조
  • REST Maturity Model
    • 성숙도 모델 : 0~3 Level의 4단계로 구분 (첨부 이미지1)  
    •  Level 0 : 단순히 Plain Old Xml을 주고받는 RPC 스타일 시스템에 불과함 - Level 1 : HTTP 응답 코드 미활용, HTML Command를 CRUD로 표현하지 않음 - Level 2 : HTTP Method인 GET, POST, PUT, DELETE를 사용 Status Code도 담겨 반환, Cache 가능 - Level 3 : API 서비스의 모든 종착점을 최초 진입점 URI를 통해 Hypertext Link 형태로 제공 ## 5. API Design Approach
  • API First Design : 설계/개발 전에 API부터 먼저 설계 개발한다.
  • API Design 3원칙
    • User가 어떻게 API를 사용할 것이라는 취지에서 Design한다.
    • API는 기능 위주의 설계를 한다.
    • 표준화된 방식으로 관리하고, 문서는 지속적으로 업데이트한다.
  • Verbs VS Nouns
    • 리소스를 정의할때 동사보다는 명사를 사용한다.
    • 단수보다 복수 명사를 사용한다.
    • Use HTTP Status Code
      상태 코드 명칭 설명
      200 Success 서버가 요청을 제대로 처리했다는 뜻
      400 Bad Request 요청의 구문을 인식하지 못함
      401 Unauthorized API 인증, 인가 실패(로그인 필요)
      404 Not Found 리소스(페이지)를 찾을 수 없음
      500 Internal Server Error 서버 에러 발생시
    • (첨부 이미지2)  

6. API Implementation

  • HTTP Method : 총 9가지 중 REST API에서는 4가지만 주로 사용
    • GET
    • POST
    • PUT
    • DELETE

7. Securing and Monetization APIs

  • 인증 : 시스템 접근 시, 등록된 사용자인지 여부를 확인하는 것. 로그인
  • 인가 : 인증 후 사용자에게 권한을 부여하는 것과 제한하는 것. 사용자 등급
  • OAuth : OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다.

첨부 이미지1
첨부 이미지2

 

 

ca-pub-6353035494785498

'살아가기' 카테고리의 다른 글

[TED] 나는 왜 내 편이 아닌가 - 브레네 브라운  (0) 2020.06.19