식당에 가서 음식을 주문하는 상황을 가정해보자. 당신은 점원을 통해 주문할 수도 있고, 키오스크에서 직접 터치를 통해 메뉴를 선택할 수도 있다. 이 때 음식을 주문 한다는 목적
을 이루기 위해 점원 또는 키오스크라는 인터페이스
를 사용한다.
프로그램도 마찬가지이다. 당신이 다른 팀원들과 주식 가격을 받으면, 살지 팔지 결정해주는 프로그램을 만든다고 가정하자. 살지 팔지 결정(목적 3
)하려면 우선, 현재 주식 정보를 받아와야 하고(목적 1
), 그 다음 오를지 내릴지를 예측(목적 2
)해야 한다. 목적 1, 2는 다른 팀원이 구현하고 목적 3은 당신이 구현한다고 하자. 이때, 다른 팀원이 만들어놓은 목적 1, 2를 수행하는 프로그램을 어떻게 당신의 프로그램에서 활용할 수 있을까? 다른 목적을 수행하는 프로그램을 내 프로그램에서 사용할 수 있게 하는 인터페이스를 API라고 한다.
API에는 여러 종류가 있고, 그중 Web 통신의 표준으로 사용되는 것이 REST API이다. REST API를 통해 요청하는 대상을 Client (손님), 요청 받은 일을 처리하는 당사자를 Server (식당)라고 할 때, Client는 기본적으로 다음 4가지 요청을 할 수 있게 REST API를 구현해야 한다.
각각의 기능을 하는 REST Method를 POST, GET, PUT, DELETE라고 하며 python의 requests 라이브러리에 각각 post()
, get()
, put()
, delete()
로 구현되어 있다.
6.1 AutoML 을 활용한 빠른 모델링 에서 15분 후 비트코인 가격이 오를지 내릴지 예측하는 모델을 제작하고 이를 Docker image로 제작해두었다. 2.4 Docker 에서 공부했듯, docker run
을 통해 해당 image를 실행할 경우, input으로 비트코인 가격을 받으면 15분 후 증/감을 output으로 뱉는 model이 docker container 안에 있다.
pycaret library를 통해 python으로 직접 predict()를 할 수 있는데 왜 예측 모델을 굳이 Docker image화 시켰을까? 그 이유는 다음과 같다.