정해진 목적에 따라서 동작하는 완성된 프로그램을 개발하는 것을 요구하는 유형입니다.
완성도 높은 하나의 프로그램을 개발하며 모듈을 적절히 조합하는 능력을 요구합니다.
해커톤은 단기간에 아이디어를 제품화하는 프로젝트 이벤트입니다.
클라이언트가 요청을 보내면 서버가 응답합니다.
웹 클라이언트 : PC, 노트북, 스마트폰, 웹서버 : 워크스테이션 등
서버로 요청을 보내고 응답이 도착할 때까지 기다립니다.
서버로부터 응답을 받은 뒤에는 서버의 응답을 화면에 출력합니다.
클라이언트로부터 받은 요청을 처리해 응답을 전송합니다.
웹 서버 : 로그인 요청을 받아 아이디와 비밀번호가 정확한지 검사하고 그 결과를 응답합니다.
HTTP는 웹상에서 데이터를 주고받기 위한 프로토콜을 의미합니다.
웹 문서를 주고받는 데 사용됩니다.
모바일 앱 밑 게임 개발 등에서 특정 형식의 데이터를 주고받는 용도로도 사용됩니다.
클라이언트는 요청의 목적에 따라서 적절한 HTTP 메서드를 이용해 통신을 진행합니다.
HTTP 메서드
import requests
target = "http://google.com"
response = requests.get(url=target)
print(response.text)
# <!doctype html><html itemscope=...
HTTP는 GET, POST, PUT, DELETE 등의 다양한 HTTP 메서드를 지원합니다.
실제로는 서버가 각 메서드의 기본 설명을 따르지 않아도 프로그램을 개발할 수 있습니다.
하지만 저마다 다른 방식으로 개발하면 문제가 될 수 있어 기준이 되는 아키텍처가 필요합니다.
REST는 각 자원에 대하여 자원의 상태에 대한 정보를 주고받는 개발 방식을 의미합니다.
REST의 구성 요소
URI : https://www.example.com/users
HTTP Method : POST
Payload : {"id" : "kwon123", "password" : "1234"}
API : 프로그램이 상호작용하기 위한 인터페이스
REST API : REST 아키텍쳐를 따르는 API
REST API 호출 : REST 방식을 따르고 있는 서버에 특정한 요청을 전송
데이터를 주고받는 데 사용하는 경량의 데이터 형식
JSON 데이터는 키와 값의 쌍으로 이루어진 데이터 객체를 저장합니다.
{
"id" : "kwon123"
"password" : "1234"
}
import json
user = {
"id": "gildong"
"password": "1234"
}
# 파이썬 변수를 JSON 객체로 변환
json_data = json.dumps(user, indent = 4)
print(json_data)
import json
user = {
"id": "gildong"
"password": "1234"
}
# JSON 데이터로 변환하여 파일로 저장하기
with open("user.json", "w", encoding="utf-8") as file:
# (파일로 쓰고자하는 객체, 파일 객체)
json_data = json.dump(user, file, indent=4)
import requests
# REST API 경로에 접속하여 응답(Response) 데이터 받아오기
target = "https://jsonplaceholder.typicode.com/users"
response = requests.get(url=target)
# 응답(Response) 데이터가 JSON 형식이므로 바로 파이썬 객체로 변환
data = response.json()
# 모든 사용자 정보를 확인하여 이름 정보만 삽입
name_list = []
for user in data:
name_list.append(user['name'])
print(name_list)