땅지원
땅지원's Personal blog
땅지원
전체 방문자
오늘
어제
  • 전체 (353)
    • Frontend (2)
      • React (2)
    • Backend (90)
      • Java (16)
      • Python (19)
      • Spring (23)
      • Database (21)
      • Troubleshooting (8)
    • DevOps (27)
      • ELK (13)
    • CS (40)
    • OS (2)
      • Linux (2)
    • Algorithm (95)
      • concept (18)
      • Algorithm Problem (77)
    • 인공지능 (25)
      • 인공지능 (12)
      • 연구노트 (13)
    • 수업정리 (35)
      • 임베디드 시스템 (10)
      • 데이터통신 (17)
      • Linux (8)
    • 한국정보통신학회 (5)
      • 학술대회 (4)
      • 논문지 (1)
    • 수상기록 (8)
      • 수상기록 (6)
      • 특허 (2)
    • 삼성 청년 SW 아카데미 (6)
    • 42seoul (12)
    • Toy project (3)
    • 땅's 낙서장 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 20.11.6 BB21플러스 온라인 학술대회
  • 20.10.30 한국정보통신학회 온라인 학술대회

인기 글

태그

  • D
  • I
  • ㅗ
  • E
  • 이것이 리눅스다 with Rocky Linux9

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
땅지원
CS

REST와 JSON에 대해

REST와 JSON에 대해
CS

REST와 JSON에 대해

2022. 5. 13. 20:38

REST의 등장 배경

HTTP는 GET, POST, PUT, DELETE 등의 다양한 HTTP 메소드를 지원

실제로는 서버가 각 메소드의 기본 설명을 따르지 않아도 프로그램 개발 가능

하지만 저마다 다른 방식으로 개발하면 문제가 될 수 있어 기준이 되는 아키텍처가 필요

REST(Representational State Transfer)

각 자원(Resource)에 대하여 자원의 상태에 대한 정보를 주고받는 개발 방식

자원, 행위, 표현의 형태로 데이터를 주고 받자고 약속을 한 것임

페이로드(payload) :  데이터를 전송할 때, 헤더와 메타데이터, 에러 체크 비트 등과 같은 다양한 요소들을 함께 보내어, 데이터 전송의 효율과 안정성을 높히게 되는데 이 때, 보내고자 하는 데이터 자체를 의미하는 것

ex) json에서 보면 payload는 data가 된다

{
	"status" : 
	"from": "localhost",
	"to": "http://melonicedlatte.com/chatroom/1",
	"method": "GET",
	"data":{ "message" : "There is a cutty dog!" }
}

API

프로그램이 상호작용하기 위한 인터페이스

S/W가 다른 S/W로 부터 지정된 형식으로 요청, 명령을 받을 수 있는 수단

 

REST API

REST 아키텍처를 따르는 API

HTTP 요청을 보낼 때 어떤 URI에 어떤 메소드를 사용할지 개발자들 사이에 널리 지켜지는 약속
형식이기 때문에 기술에 구애X

REST API 호출 : REST 방식을 따르고 있는 서버에 특정한 요청을 전송 하는것을 의미

 

REST 구조를 설정했으면 데이터를 주고받을 때 어떠한 형식으로 주고받을지 정해야함 => JSON

 

JSON (JavaScript Object Notation)

데이터를 주고받는데 사용하는 경량의 데이터 형식

key, value 쌍으로 이루어진 데이터 객체를 저장

import json

user = {'id' : 'jiwon',
        'password' : '1234asdf',
        'age' : 26,
        'hobby' : ['programming', 'music']
        }

json_data = json.dumps(user,indent=4)
print(json_data)
{
    "id": "jiwon",
    "password": "1234asdf",
    "age": 26,
    "hobby": [
        "programming",
        "music"
    ]
}

 

 

Ex) REST API 호출하여 회원 정보를 처리하는 예제

import requests

#REST API 경로에 접속하여 응답 데이터 받아오기(GET)
target = 'https://jsonplaceholder.typicode.com/users'
response = requests.get(url=target)

# 응답이 json 형식이여서 파이썬 객체로 변환
data = response.json()

# dictionary 형태이기 때문에 이름 정보만 꺼내기 위해 key를 name으로
name_list = []
for user in data:
    name_list.append(user['name'])
print(name_list)

 

'CS' 카테고리의 다른 글

JavaScript 기본 지식  (0) 2022.09.02
CSS 기본 지식  (0) 2022.07.05
리눅스 Git 설치 밎 사용법  (1) 2022.01.21
.gitignore을 이용하여 commit하기  (0) 2022.01.11
동시성(Concurrency)와 병렬성(Parallelism)  (0) 2021.12.28
  • REST(Representational State Transfer)
  • JSON (JavaScript Object Notation)
'CS' 카테고리의 다른 글
  • JavaScript 기본 지식
  • CSS 기본 지식
  • 리눅스 Git 설치 밎 사용법
  • .gitignore을 이용하여 commit하기
땅지원
땅지원
신입 개발자의 우당탕탕 기술 블로그

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.