
API
응용 프로그램에서 사용할 수 있도록 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
유형
Private API
내부 구성원만이 이용할 수 있으며 통제 권한은 기업에 있다.
Partner API
특정 비즈니스 파트너와 공유할 수 있으며, API의 품질 저하 우려 없이 부가 수익 창출이 가능하다.
Public API (Open API)
누구나 사용할 수 있는 API로 제 3자가 혁신적인 어플리케이션을 개발할 수 있다.
예시
코로나 맵은 public API의 성격을 가진 네이버 지도 API를 사용하여 선별진료소 위치, 잔여백신 예약 등 새로운 어플리케이션이 이어져 만들어지게 되었다.
사용 이유
- 개발 비용과 시간이 획기적으로 줄어들었다.
- 유지 관리가 쉽다.
- 새로운 수익 채널이 확대된다.
- 기업 내외적으로 비즈니스 활용 범위가 넓어질 수 있다.
Http 패킷
클라이언트가 서버로 요청을 했을 때 보내는 데이터
앞에 http가 붙고 인터넷을 통해 보내는 데이터 패킷이기 때문에 http라고 통칭한다.
Http 메소드
서버에 요청을 보내는 방법
GET(조회 기능)
URI에 해당하는 정보의 전송 요청을 보낸다.
POST(생성 기능)
서버가 처리할 수 있는 자료를 보낸다. 서버는 클라이언트에게 입력 데이터 수락을 응답하고 클라이언트느느 서버로 HTTP 패킷의 Body에 데이터를 넣어 전송한다.
PATCH(수정 기능)
자료를 전송해 해당 URI에 자료를 저장한다. 클라이언트는 서버로 http body에 data를 전송한다.
DELETE(삭제 기능)
URI의 정보를 삭제한다.
URI (Uniform Resource Identifier)
웹 서버의 통합 자원 식별자 자원을 나타내는 주소 하위 개념으로 URL, URI가 있다.
URL (Uniform Resource Locator)
특정 서버가 가지고 있는 리소스의 구체적인 위치가 어디인지 가리키는 역할을 한다.
따라서 이 주소를 통해 특정 지점의 위치나 파일에 접근할 수 있으며 사용자들도 URL을 통해 정보를 유추할 수 있다.
URL은 절대경로(인터넷 주소)와 상대경로(파일 시스템)으로도 구분해서 생각할 수 있다.
URL 표준 포멧
<스킴>://<사용자 지름>:<비밀번호>@<호스트>:<포트>/<경로>;<파라미터>?<질의>#<프레그먼트>
하지만 이 중 url의 가장 중요한 컴포넌트는 스킴, 호스트, 경로이다.
예시) http://www.handmadecoding.tistory.com/images/logo.gif
- http:// : 스킴(scheme), 리소스에 접근하기 위해 사용되는 프로토콜. 웹 클라이언트가 리소스에 어떻게 접근하는지 알려준다.
대표적인 스킴 종류: ftp(file transfer protocol), rtsp(real time streaming protocol, 비디오 서버), smtp(메일) 등 - www.hademadecoding.tistory.com : '나' 라는 것을 알려주는 호스트 서버의 주소. 리소스가 어디에 호스팅 되었는 지 알 수 있다.
- /images/logo.gif : 웹서버의 리소스. 실제 가지고 있는 리소스를 보여주는 경로이다.
URN (Uniform Resource Name)
URN은 이름을 리소스로 특정 하는 URI다. 영구적이고 유일성을 가진 URI이며, 접근 방법과 웹상의 위치가 표기되지 않는다.
데이터 포멧
데이터를 주고받는 과정에서 데이터를 목적에 맞게 다양한 방식으로 표현할 수 있다.
1. XML
가장 직관적이다. (html과 형식 유사)
메타 정보를 제공해서 정보 표현 이상의 효과를 가져온다..
실제 전송하는 정보보다 메타 데이터가 커질 수 있다.
단순 게임 옵션, 데이터 수정이 가능하다.
XML 특징
- 꺽쇠(<>) 사용
- 트리(Tree) 계층 구조
- 루트(Root)요소부터 시작해 여러개의 자식을 계층적으로 포함
- 유효성 검증이 가능하다
2. json
모양과 규칙이 단순해 다른 언어에서도 구현하기 쉽다.
,나 중괄호 문법에 유의해야한다.
서버 통신 REST API를 사용할 때 가장 많이 사용한다.
주석을 사용할 수 없다.
3. csv
용량이 가장 작다.
변하지 않는 많은 데이터를 전송할 때 유리하다.
데이터가 많아지면 어떤 데이터가 항목을 표시하는 지 가시화가 어렵다.
간단한 테이블 작성 이나 읽는 속도가 중요한 부분에서 사용한다.
CSV 특징
- 각 항목이나 판매 내용마다 쉼표(,)로 구분하여 기록
- 텍스트 파일로 보존하여 문서 처리기나 편집기에서 열람, 편집할 수 있음
- 데이터 오염에 대단히 취약
- 데이터 크기가 매우 작음 (JSON이 CSV에 비해 2~3배 더 크다)
API sheet
생성한 api를 설명하기 위한 일종의 설명서
작성이유
비개발자도 이해할 수 있어 개발자와 소통이 원활해진다
api 기능 조회가 쉽다.
프론트와 서버 간의 의사소통이 용이하다.
Path variable
경로를 변수로서 사용하여 데이터를 넘기는 방식
ex) /users/123 : 아이디가 123인 사용자를 가져온다.
'CS' 카테고리의 다른 글
2022 백엔드 로드맵 (0) | 2022.09.21 |
---|---|
프로그램 vs 프로세스 vs 프로세서 vs 쓰레드 (0) | 2022.07.18 |
서버 개념 키워드 (4) #URL #Domain #Redirection #DB (0) | 2022.03.26 |
서버 개념 키워드 (3) #네트워크계층 #TCP/IP #포트 #네트워크 장비 (0) | 2022.03.09 |
서버 개념 키워드 (2) #프로토콜 #SSH #HTTP와 HTTPS차이 (0) | 2022.01.09 |