Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

시작은 0부터

API, JSON 본문

카테고리 없음

API, JSON

0base 2022. 9. 26. 12:30

API(Application Programming Interface)

외부 라이브러리 연동.

응용 프로그램에서 사용할 수 있도록 운영 체제나 프로그래밍 언어가 제공하는 기능을 사용할 수 있게 제공되는 인터페이스.

 

인터페이스(Interface)

서로 다른 시스템 간에 커뮤니케이션이 가능하도록 설계한 상호 작용 방식.

소프트웨어 인터페이스

: 운영체제는 하드웨어와 접속할 수 있는 통로로써 인터페이스를 활용.

객체 지향 프로그램들의 경우 응용 프로그램 내의 오브젝트들 간의 메소드를 통해서 상호작용하는데 활용된다.

 

Web API

웹서버 또는 웹 브라우저를 위한 API.

- HTTP 서비스.

- 다양한 클라이언트에서 접근 가능하도록 설계

- 웹 환경을 통해 제공되는 데이터 CRUD 인터페이스 제공.

 

URI, URL, HTTP, HTML

URL(Uniform Resource Locator) : 자원(Resource)이 어디에 있고, 어떻게 접근할 수 있는지 (protocol)을 알려준다.

HTTP(Hyper Text Transfer Protocol) : 어떻게(규약/약속) 접근할 수 있는지

 

Hyper Text

단순한 텍스트가 아닌 원격의 텍스트. 기존의 직선(순차) 구조의 글과는 달리, 다걱적으로 정보에 접근할 수 있는 체계. 순차적 접근을 뛰어 넘는다는 의미. 일반적인 의미로는 텍스트, 이미지 등 모든 데이터를 뜻한다.

 

Hyper Link : Hyper Text를 표현하는 대표적인 텍스트 표현 방식.

단편적인 정보를 좀 더 자세히 읽어 보는 수단. 인터넷과 결합하여 HTML 의 주요 구성요소가 되었다.

 

Transfer Protocol : 전송 규약(약속)

-요청(Request) / 응답(Response) : 요청의 형식과, 응답의 형식이 있다.

-StateLess(상태가 없다) : 이 전 통신과 상관없이 매 통신마다 필요한 정보를 모두 담아서 요청.

-TCP/IP 기반

-기본 포트 80

 

Request 구조

Method : CRUD Operation

GET

: Body에 담아 보내는 정보를 기준으로 서버에서 데이터를 보내달라는 의미. 데이터를 받아 오기만 한다.

POST

: Body에 당망 보내는 정보를 기준으로 서버에서 데이터를 생성해 달라고 요청. 데이터를 생성/수정할 때 사용

DELETE

 

Header(형식)

요청할 떄 전송할 부가적인 정보들

Body(데이터)

요청할 때 어떤 정보를 담을 지에 대한 내용들

 

CRUD Operation

대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능

Create : 데이터 생성(POST)

Read : 데이터 조회(GET)

Update : 데이터 수정(PUT, PATCH)

Delete : 데이터 삭제(DELETE)

 

Responce 구조

Status Code

: 요청이 잘 처리가 되었는지 나타내는 코드

200 : 요청이 잘 처리되었을 때

 

Header(형식)

결과를 보내는 서버 정보

Body에 대한 정보

Body(데이터)

응답 데이터

HTML 등

 

URI(Uniform Rosource Identifier)

URL을 포함하는 상위 개념

[ ] : 대괄호가 있으면 반드시 들어가지 않아도 되는 것. 대괄호가 있는 부분은 반드시 넣어야하는 부분.

형식 : sheme : [//[user[:password]@[[port][/[part][/path][?quary][#fragement]

 

Sheme : 사용할 프로토콜을 뜻하며 웹에서는 http 또는 https를 사용.

User 와 Password : 데이터에 접근하기 위한 사용자의 이름과 비밀번호.

Host 와 Port : 접근할 대상(서버)의 호스트명과 포트번호

Path : 접근할 대상(서버)의 경로에 대한 상세 정보

Query : 접근할 대상에 전달하는 추가적인 정보(파라미터)

Fragment : 메인 리소스 내에 존재하는 서브 리소스에 접근할 때 이를 식별하기 위한 정보

 

REST(Representational State Transfer)

웹(HTTP&HTTPS)에 존재하는 모든 자원을 URI를 통해 명시하고, 이런 자원들의 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처.

 

 어떤 리소스의 이름을 정하고, 서로 규정하는 것?

 

REST 가 아닌 것들

RPC (Remote Procedure Call)

소켓프로그래밍

원격지에 위치한 프로그램을 로컬에 있는 프로그램처럼 호출

CORBA(Common Object Request Broker Architecture)

로컬/원격을 포괄한 프로그램 객체 간의 메소드 호출( 다양한 언어 지원)

 

특징

Server-Client(서버-클라이언트 구조)

서버에는 자원이 있고, 클라이언트에서 자원을 요청하는 구조

Stateless(무상태)

클라이언트의 Context를 서버에 저장하지 않는다.

Layered System(계층화)

서버는 비즈니스 로직 수행, 그 앞단에 사용자 인증을 하는 계층을 추가하는 식으로 구조상 유연성을 유지

Uniform Interface(인터페이스 일관성)

URI로 지정한 자원에 대한 조작을 통일되고 한정적인 인터페이스로 수행

 

REST API

OpenAPI ( 누구나 사용할 수 있도록 공개된 API : 구글 맵, 공공 데이터 등 )

대한민국 공식 데이터포털 : https://www.data.go.kr/ 

 

공공데이터 포털

국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase

www.data.go.kr

Sportify : https://www.spotify.com/kr-ko/ 

 

Listening is everything

Spotify에는 여러분이 원하는 모든 음악이 있습니다.

www.spotify.com

 

JSON 공식사이트

https://www.json.org/json-ko.html

 

JSON

JSON (JavaScript Object Notation)은 경량의 DATA-교환 형식이다. 이 형식은 사람이 읽고 쓰기에 용이하며, 기계가 분석하고 생성함에도 용이하다. JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1

www.json.org

JSON 파일 정리해서 보는 사이트

http://jsonviewer.stack.hu/

 

Online JSON Viewer

 

jsonviewer.stack.hu