본문 바로가기

PYTHON

Rest API, Flask, python 속도 향상법

Rest API

API(Application Programming Interface)는 응용 프로그램에서 사용할 수 있도록,

운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.

주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다.

파이썬의 함수나 클래스 같은 기능들 하나하나가 일종의 API이다.

 

Rest(Representational State Transfer)란 자원(Resource)의 표현(Representation)에 의한 정보전달이다.

예를들면, 파이썬의 list나 dictionary 등(자원)을 json 파일의 형태(표현)으로 전달하는 것이다.

즉, Rest API란 Rest의 특징을 지키면서 API를 제공하는 것이다.

 

Rest의 구성요소

자원(Resource) : URI

인터넷 주소와 같은 형식

 

행위 : HTTP 메소드

GET / POST / PUT / DELETE

 

표현 : Representation of Resource

JSON, XML, RSS 등

# API
# Rest API
import requests as req
import json
result = req.get('https://s.pstatic.net/static/newsstand/2020/logo/light/0604/015.png') # 네트워크 창에서 헤더에 보면 요청URL을 통해서 확인 가능하다.
print(result) # <Response [200]>
print(result.json) # <bound method Response.json of <Response [200]>>

 

Flask
Flask는 파이썬으로 작성된 웹 프레임워크이다.
import requests as req
from flask import Flask

app = Flask(__name__)

@app.route("/get", methods = ['GET']) # methods를 통해서 HTTP 메소드 확인
def hello():
 return 'hello' # hello 출력

if __name__ == "__main__":
 app.run(debug = True, port=8080) # http://127.0.0.1:8080/ # port변경 가능

 

python 속도 향상법
똑같은 for문으로 compile 했을 때
일반 python은 92.53초 걸리고, pypy는 3.42초 정도로 상당히 빠르다.
그렇기에 기본 파이썬 인터프리터를 사용하지 않고 pypy3 JIT Complier를 이용한다.
import time
start=time.time()
count = 0
for i in range(10000):
	for j in range(100000):
		count += 1
print(time.time()-start) # 총 걸리는 시간
# time.sleep(1000)