[FastAPI] FastAPI 입문 part2 - CRUD 어플리케이션 만들기

지난 part1에서 FastAPI를 활용해 간단한 “hello world”와 “routing”을 살펴보았다. 이번 글에서는 CRUD 기능을 수행하는 간단한 어플리케이션을 만들어보면서 FastAPI 프레임워크에 친숙해져보자.

아래의 실습 과정은 지난 part1 글에서 이어서 해보는 것이므로, 앞의 글을 먼저 읽고 따라해보면 좋겠다.

Read more

[FastAPI] FastAPI 입문 part1 - 설치/라우팅

회사에서는 그동안 데이터 파이프라인을 만들고 모델을 만드는데 열중하였다. 그리고 모델 개발이 완료되고, 이를 서비스하기 위해 다양한 방법을 고민하였다. 물론 모델 개발을 기획하기전 서비스를 어떻게 할지 구조와 계획을 세웠으나, 다양한 내부적인 이슈들이 있었다. 실시간성과 빠른 응답이 필요한 time-out 이슈, 장비의 노후화 등 여러가지 문제를 마주하였었고 이를 해결하기 위해서 자체 개발한 API가 필요하다는 것이 결론이었다.

머신러닝 모델을 서비스하고 운영하기 위해 MLOps라는 단어가 등장하였다. 다양한 회사와 플랫폼에서 MLOps를 지원하기 위해 많은 제품을 내놓고 있으나 내가 있는 환경에 딱 들어 맞는 것이 없었다. 그래서 이번 기회에 FastAPI 를 이용해 자체 API 를 만들었다. 실제 배포되어 운영되고 있는 코드는 훨씬 복잡할 수는 있겠지만 기본 뼈대와 구조는 모두 동일할 것이다. 글을 쓰는 나 역시 FastAPI를 처음 사용해본 것이기에 스터디하면서 만들었다. 그간의 삽질과 여정을 한번 정리해보면서, 나와 비슷한 고민을 하는 분들에게 조금이나마 도움이 되길 바란다.

(또한, 이 시리즈를 쓰는데 동기와 용기를 준 글또 커피드백 조원 두 분에게 감사하며 글을 써본다. Shout out to 문현규 & 박다원)

이 글은 FastAPI 의 설치와 그 입문 그리고 기초적인 라우팅까지의 내용을 담았다. 앞으로 FastAPI시리즈로 담을 것이고 시리즈 안의 글의 순서와 목차는 내가 API를 구성하면서 스터디한 순서대로 담으려고 노력할 것이다.

Read more

[Linux] screen을 사용해보자

우리가 서버에서 시간이 많이 드는 작업을 한다고 생각해보자. 필자는 모델을 학습시킨다거나 특정 어플리케이션을 빌드할 때를 예로 들 수 있겠다. (특히 최근에는 gcc를 빌드 할 때..) 해당 작업을 하면서 콘솔에 찍히는 아웃풋 모니터링 등도 함께 필요하면 특히나 서버에 붙은 연결을 유지해야할 필요가 있다. 오늘은 이 문제를 해결할 수 있는 linux의 screen을 알아보고 이 기능 외에도 다양하게 활용할 수 있는 응용 예제들도 살펴보자.

Read more

[Kubernetes] 쿠버네티스 입문

머신러닝 서비스를 개발, 배포, 운영을 시작하면서 도커에 대한 이해와 필요성을 느끼며 도입을 위해 공부를 시작했다. 도커를 공부하던 끝에 이제는 쿠버네티스를 시작해보려고한다. 그리고 올해 말에는 CKAD 도 도전해보려고 한다. Kubernetes글 시리즈에서는 Kubernetes를 처음 시작하고 공부한 내용들을 정리해보며, 시험 준비기까지 정리해보려고 한다. 시험을 실제로 도전하기전 학습하고 실습한 내용들을 정리하는 글이다보니 그 끝에 시험에 합격할지까지 관심있게 지켜봐주면 좋겠다. 시험 합격 여부와 상관없이, 이 노력과 글, 지식은 내 안에 쌓일테니 꼼꼼히 공부해보려고한다.

Read more

[MAC] xcrun: error: invalid active developer 에러 해결방법

방금 전, MacOS Ventura 13.0.1로 업그레이드 하고, flutter, python 개발 중 다음 과 같은 에러 코드를 내뱉으며 잘 되던 것들이 안되기 시작했다.
간단한 git부터 시작해서, 맥 내 환경변수를 포함하는 대부분의 명령어에서 다음과 같은 에러 메시지를 보냈다. 다음 글에서 그 해결방법을 정리했다.

Read more

[github] github token 설정 및 키체인 등록

최근에 맥북을 사고, 새로산 맥북에 개발환경을 하나씩 셋팅하고 있다. 그러면서 오랜만에 등록하는 github token과 매번 귀찮게 비밀번호를 기입하는 것을 막기 위한 키체인 등록까지 완료하여, 이 부분을 정리해 기록한다.

이번 글에서 소개하는 github 환경 셋팅은 크게 두 단계로 나뉜다.

  1. github token 발급
  2. macbook에 token 저장 및 git config 수정
Read more

[Linux] LightGBM GPU 버전 설치 및 환경설정

LightGBM GPU 버전 Install의 경우,
OpenCL 기반의 LightGBM-GPU와 CUDA 기반의 LightGBM-CUDA 버전이 있다.
리눅스 환경에서 LightGBM의 설치와 환경설정은 자칫 까다로울 수 있다. 이번 글을 통해 정리해보자.

Read more

[Linux] AWK 간단 정리

  • AWK 는 데이터를 다루는 사람들이라면 한번씩은 그 Command를 사용해봤을 것입니다.
  • 저는 과거 Dataframe 을 생성해 본격적인 분석 및 연구.개발 작업이 들어가기 전에, AWK 를 통해 간단한 데이터 처리를 하는 경우, Raw Data 형식을 간단하게 정제하여 Database에 적재하는 경우에 사용해 왔습니다. 이 경우, 많이 사용하는 관용적인 구문외에는 AWK 자체를 살펴볼 기회가 적었습니다.
  • 최근 사내에서 로그 데이터의 추출을 위해 AWK를 오랜만에 다시 사용하게 되면서, 잊었던 AWK문법을 다시 한 번 살펴보며, 이번 기회에 AWK의 간단 사용예제부터 AWK 문법 몇가지를 정리해보고자 합니다.
Read more

Docker, 깔끔하고 빠른 분석.연구.개발 환경 세팅

부제 : 데이터사이언티스트의 도커 사용기

docker-logo.png

  • 이번 글에서는 저를 포함하여, 도커를 처음 접하는 사람들을 위해 도커(Docker)와 도커 이미지, 도커 컨테이너의 개념에 대해 살펴봅니다.
  • 간단한 도커파일 작성 예제를 통해, 자신에게 맞는 환경 세팅을 따라 해 볼 수 있습니다.
Read more

[C++] 2.연산자(Operators)

C와 C++이 필요해, 제 머릿속 메모리의 Recall 이 필요했습니다. 요즘엔 주로 Python을 사용하다보니, C, C++ 의 기초문법과 CodeStyle을 다시 떠올려야합니다. 학생 때 열심히 공부했으나 방구석 한켠에 먼지 쌓인 열혈강의 C, C++책과 인터넷자료, 유튜브를 통해 Remind하고 공부하는 내용을 요약 정리하려고 합니다. 본 글에서는 C에 대한 내용보다 C++ 내용이 주를 이룰 예정입니다.

모든 연산자에 대한 리뷰보다는 조금 까다롭거나, 쉽게 잊을 수 있는 연산자 등을 위주로 정리하려고 합니다.

Read more