Flask를 이용한 API server 구축 (1) - API server 정의와 구축 배경
API server를 구축하게 된 배경
패키지 정보, IP, 호스트네임 등 여러 정보를 1만대가 넘는 서버에서 수집해야 하는 상황이었습니다. 주기적으로 정보도 업데이트를 해주어야 하는 상황에서 모든 정보를 수집하기에는 서버에도 부하가 되고 불필요한 정보들도 있었기 때문에 필요한 정보들만 수집을 하고 싶었습니다. 여러 서버에 배포를 해야되는데 자꾸 각 서버에 심어놓은 코드들이 바뀌면 또 배포하는 과정을 거쳐야 하고 굉장히 번거로운 작업이 됩니다. 그래서 여러 고민과 시행착오와.. 파트장님과의 회의를 통해 API server에 찌르면 실행할 수 있는 코드를 던져주는 방식으로 진행하면 어떨까라는 결론이 났습니다.
API server란?
API는 프로그램과 프로그램을 연결해주는 매개체이고 API를 이용하면 어플리케이션에 대해 알지 못해도 정보들을 쉽게 얻어올 수 있습니다. API server는 이러한 API 규칙들이 규격화되어 있는 서버라고 생각하면 됩니다.
Flask란? 그리고 Flask를 쓰게 된 이유
Flask는 간단한 웹사이트나 간단한 API 서버를 만드는데에 특화되어 있는 python web framework입니다. Flask를 사용한 이유는 일단.. 제가 python이 익숙하다는 것이 가장 큰 이유였구요..ㅎㅎ 그리고 flask의 장점이 가볍게 배우고 사용하고 배포할 수 있는.. 그런 간단한 API server를 만들기에 최적이라는 생각때문이었어요. (엄청나게 여러 기능을 쓸 것이 아니었기 때문에..Django는 선택지에서 제외!)
Flask는 MVC(Model, View, Controller) 패턴을 사용합니다. 사용자가 URL 요청을 하면, 해당 요청이 Controller에 들어오게 됩니다. Controller는 해당 요청을 담당하는 메소드로 안내하고, 요청에 포함된 정보를 가지고 Model에 접근할 수 있습니다. Model은 데이터베이스같은 비즈니스 로직을 처리하는 일을 수행하고 Controller로 다시 돌아오구요. Controller의 메소드 처리가 끝나면 그 결과를 사용자들이 화면을 통해 볼 수 있도록 View로 이동시킵니다.
[출처]
https://justkode.tistory.com/10
https://kimcoder.tistory.com/254