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는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다.
ca-pub-6353035494785498
'살아가기' 카테고리의 다른 글
[TED] 나는 왜 내 편이 아닌가 - 브레네 브라운 (0) | 2020.06.19 |
---|