[FastAPI] FastAPI 입문 part2 - CRUD 어플리케이션 만들기
지난 part1에서 FastAPI를 활용해 간단한 “hello world”와 “routing”을 살펴보았다. 이번 글에서는 CRUD 기능을 수행하는 간단한 어플리케이션을 만들어보면서 FastAPI 프레임워크에 친숙해져보자.
아래의 실습 과정은 지난 part1 글에서 이어서 해보는 것이므로, 앞의 글을 먼저 읽고 따라해보면 좋겠다.
지난 part1에서 FastAPI를 활용해 간단한 “hello world”와 “routing”을 살펴보았다. 이번 글에서는 CRUD 기능을 수행하는 간단한 어플리케이션을 만들어보면서 FastAPI 프레임워크에 친숙해져보자.
아래의 실습 과정은 지난 part1 글에서 이어서 해보는 것이므로, 앞의 글을 먼저 읽고 따라해보면 좋겠다.
회사에서는 그동안 데이터 파이프라인을 만들고 모델을 만드는데 열중하였다. 그리고 모델 개발이 완료되고, 이를 서비스하기 위해 다양한 방법을 고민하였다. 물론 모델 개발을 기획하기전 서비스를 어떻게 할지 구조와 계획을 세웠으나, 다양한 내부적인 이슈들이 있었다. 실시간성과 빠른 응답이 필요한 time-out 이슈, 장비의 노후화 등 여러가지 문제를 마주하였었고 이를 해결하기 위해서 자체 개발한 API가 필요하다는 것이 결론이었다.
머신러닝 모델을 서비스하고 운영하기 위해 MLOps라는 단어가 등장하였다. 다양한 회사와 플랫폼에서 MLOps를 지원하기 위해 많은 제품을 내놓고 있으나 내가 있는 환경에 딱 들어 맞는 것이 없었다. 그래서 이번 기회에 FastAPI 를 이용해 자체 API 를 만들었다. 실제 배포되어 운영되고 있는 코드는 훨씬 복잡할 수는 있겠지만 기본 뼈대와 구조는 모두 동일할 것이다. 글을 쓰는 나 역시 FastAPI를 처음 사용해본 것이기에 스터디하면서 만들었다. 그간의 삽질과 여정을 한번 정리해보면서, 나와 비슷한 고민을 하는 분들에게 조금이나마 도움이 되길 바란다.
(또한, 이 시리즈를 쓰는데 동기와 용기를 준 글또 커피드백 조원 두 분에게 감사하며 글을 써본다. Shout out to 문현규 & 박다원)
이 글은 FastAPI 의 설치와 그 입문 그리고 기초적인 라우팅까지의 내용을 담았다. 앞으로 FastAPI시리즈로 담을 것이고 시리즈 안의 글의 순서와 목차는 내가 API를 구성하면서 스터디한 순서대로 담으려고 노력할 것이다.
우리가 서버에서 시간이 많이 드는 작업을 한다고 생각해보자. 필자는 모델을 학습시킨다거나 특정 어플리케이션을 빌드할 때를 예로 들 수 있겠다. (특히 최근에는 gcc를 빌드 할 때..) 해당 작업을 하면서 콘솔에 찍히는 아웃풋 모니터링 등도 함께 필요하면 특히나 서버에 붙은 연결을 유지해야할 필요가 있다. 오늘은 이 문제를 해결할 수 있는 linux의 screen을 알아보고 이 기능 외에도 다양하게 활용할 수 있는 응용 예제들도 살펴보자.
머신러닝 서비스를 개발, 배포, 운영을 시작하면서 도커에 대한 이해와 필요성을 느끼며 도입을 위해 공부를 시작했다. 도커를 공부하던 끝에 이제는 쿠버네티스를 시작해보려고한다. 그리고 올해 말에는 CKAD 도 도전해보려고 한다. Kubernetes글 시리즈에서는 Kubernetes를 처음 시작하고 공부한 내용들을 정리해보며, 시험 준비기까지 정리해보려고 한다. 시험을 실제로 도전하기전 학습하고 실습한 내용들을 정리하는 글이다보니 그 끝에 시험에 합격할지까지 관심있게 지켜봐주면 좋겠다. 시험 합격 여부와 상관없이, 이 노력과 글, 지식은 내 안에 쌓일테니 꼼꼼히 공부해보려고한다.
방금 전, MacOS Ventura 13.0.1로 업그레이드 하고, flutter, python 개발 중 다음 과 같은 에러 코드를 내뱉으며 잘 되던 것들이 안되기 시작했다.
간단한 git부터 시작해서, 맥 내 환경변수를 포함하는 대부분의 명령어에서 다음과 같은 에러 메시지를 보냈다. 다음 글에서 그 해결방법을 정리했다.
최근에 맥북을 사고, 새로산 맥북에 개발환경을 하나씩 셋팅하고 있다. 그러면서 오랜만에 등록하는 github token과 매번 귀찮게 비밀번호를 기입하는 것을 막기 위한 키체인 등록까지 완료하여, 이 부분을 정리해 기록한다.
이번 글에서 소개하는 github 환경 셋팅은 크게 두 단계로 나뉜다.
LightGBM GPU 버전 Install의 경우,
OpenCL 기반의 LightGBM-GPU와 CUDA 기반의 LightGBM-CUDA 버전이 있다.
리눅스 환경에서 LightGBM의 설치와 환경설정은 자칫 까다로울 수 있다. 이번 글을 통해 정리해보자.
C와 C++이 필요해, 제 머릿속 메모리의 Recall 이 필요했습니다. 요즘엔 주로 Python을 사용하다보니, C, C++ 의 기초문법과 CodeStyle을 다시 떠올려야합니다. 학생 때 열심히 공부했으나 방구석 한켠에 먼지 쌓인 열혈강의 C, C++책과 인터넷자료, 유튜브를 통해 Remind하고 공부하는 내용을 요약 정리하려고 합니다. 본 글에서는 C에 대한 내용보다 C++ 내용이 주를 이룰 예정입니다.
모든 연산자에 대한 리뷰보다는 조금 까다롭거나, 쉽게 잊을 수 있는 연산자 등을 위주로 정리하려고 합니다.