API

심채운·2022년 7월 17일
0

cs

목록 보기
12/15

API

API는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 출처 - 위키백과

인터페이스 Interface

인터페이스는 컴퓨터 시스템끼리 정보를 교환하는 공유경계를 의미한다, 터치 스크린과 같은 일부 컴퓨터 하드웨어 장치들은 인터페이스를 통해 데이터를 송수신 할 수 있으며, 마우스나 마이크로 폰과 같은 장치들은 오직 시스템에 데이터를 전송만 하는 인터페이스를 제공한다.

Application Programing Interface이며 어떠한 응용프로그램에서 데이터를 주고 받기 위한 방법을 의미한다. 어떠한 특정 사이트에서 특정 데이터를 공유할 경우 어떠한 방식으로 정보를 요청해야하는지, 어떠한 데이터를 제공 받을 수 있을지에 대한 규격들을 API라고 한다.

사용하는 방법과, 용도에 따라 오픈API, 비공개API정보가 있다. 오픈API는 누구나 쉽게 접근하여 정보를 공유하게 위해 만들어진 규격이며, 비공개API는 권한이 있는 일부 사용자들에게만 정보를 제공하기 위해 만들어진 규격이다.

자료포멧은 어떠한 정보를 제공할때 어떤 포멧으로 제공하는지에 대한 내용이다. ex) XML, JSON

API의 역할

REST API

REST(Representational State Transfer)는 네트워크를 통해서 컴퓨터들끼리 통신할 수 있게 해주는 아키텍처 스타일DL다. REST API는 인터넷 식별자(URI)와 HTTP 프로토콜을 기반으로 합니다. REST는 HTTP 프로토콜 덕분에 ‘단순함’이 핵심이라고 할 수 있다. 데이터 포맷으로는 브라우저 간 호환성이 좋은 제이슨(JSON)을 사용한다.REST는 웹에 최적화되어 있고, 데이터 포맷이 JSON이기 때문에 브라우저들 간에 호환성이 좋다. 또한, 그 성능과 확장성이 뛰어난 것으로도 알려져 있다.
출처 - REST API, SOAP API

대형 플랫폼들이 오픈API를 제공하는 이유 :

페이스북, 네이버, 카카오 등 이러한 대형플랫폼들이 대부분 간편 로그인 API정보를 제공한다. 간편로그인API의 목적은 누구나 사용하고 있는 대형 플랫폼의 가입정보를 공유함으로써 사용자들이 여러 사이트에 가입하지 않고 간편하게 회원가입을 할 수 있도록 설계 목적이다.
만일 사용자가 대형 플랫폼을 탈퇴하려면 그동안 간편로그인으로 가입한 수많은 사이트 또한 탈퇴하게 된다. 즉 간편로그인 기능을 제공함으로써 플랫폼 이탈율을 줄일 수 있기 때문에 대형플랫폼들은 간편로그인 기능을 제공하는 것이다.

JWT

웹 상에서 정보를 Json형태로 주고 받기 위해 표준규약에 따라 생성한 암호화된 토큰이다

JWT(Json Web Token)란 Json 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token이다. 쉽게 말해 클라와 서버가 서로 통신할때 필요한 권한을 위해 사용하는 Token이다. JWT는 토큰 자체를 정보로 사용하는 Self-Contained 방식으로 정보를 안전하게 전달한다. 주로 회원 인증이나 정보 전달에 사용되는 JWT는 아래의 로직을 따라서 처리된다고 한다.

JWT 구성요소

헤더, 페이로드, 서명 으로 나뉘어져 있다.

  • 헤더 Header
    어떠한 알고리즘으로 암호화 할 것인지, 어떠한 토큰을 사용할 것인지에 대한 정보 기입
  • 페이로드 Payload
    전달할려는 클레임( 사용자id 및 특정 데이터들)이 기입. 페이로드는 내용을 수정이 가능해 더 많은 정보들을 추가할 수 있지만 노출과 수정이 가능하기 때문에 최소한의 정보만 기입
    ex) 아이디, 비밀번호 등
  • 서명 Signature
    헤더와 정보를 합쳐 발급해준 서버가 지정한 secret key로 암호화해 토큰을 변조하기 어렵게 만든다.
    만약 누군가 페이로드의 정보를 조작해 수정하면 페이로드에는 조작된 정보가 들어있지만, 서명에서는 수정되기 전의 페이로드 내용을 기반으로 이미 암호화가 되어있는 결과가 저장되어있어 페이로드와 다른 결과값 출력.

동작원리


토큰기반 인증박식은 사용자의 인증이 완료된 이후에 토큰을 발급한다. 클라는 발급받은 토큰을 저장하고 서버에 요청 할 때마다 해당 토큰을 서버에 함께 전달한다 그러고 서버는 토큰을 검증하고 응답해주는 방식으로 작동한다.

profile
불가능, 그것은 사실이 아니라 하나의 의견일 뿐이다. - 무하마드 알리

0개의 댓글