Define the problem first
2년 동안 서버 개발을 node.js
로만 하다 보니 다른 언어와 프레임워크로 서버 개발을 해보고 싶었다. 새로운 환경에서 새로운 도전을 하는 건 항상 즐겁다. 개인적으로는 golang
이나 rust
로 개발해보고 싶은 생각이 있었다.
하지만 지금 해야하는 프로젝트들이 데이터 관련 일들이 좀 많아가지고, 분석부터 엔지니어링까지 python
으로 결국 개발하게 될 것 같다. 그래서 주시하고 있던 FastAPI
문서를 좀 보고, 기존에 작업된 레포들을 봤는데 pydantic
과 starlette
뿐만 아니라 swagger
도 다 한번에 wrapping되어 있어서 api server
만들기에 최적화된 느낌이다. 실제로 벤치마크 지표들을 보면 Django
나 Flask
보다 엄청나게 빠르다.
첫 술에 배 부르랴. 좋은 아키텍처와 코드를 가지기 전에 하나씩 익혀나가도록 하자. 파이썬 프로젝트를 제대로 처음 해본 입장에서 쓴 글임. node.js
와 비교 형식이 많을 수도 있다.
파이썬 패키지들은 pip를 통해서 많이 받는다. 그리고 로컬 개발은 거의 가상 환경에 의해서 개발되기 때문에 가상 환경에 따른 패키지 관리를 따로 해줘야한다. 환경 별로 requirements.txt
를 통해서 패키지들을 관리하고 설치한다. 처음 가상 환경에서 개발할 때 현재 사용하는 packages
를 파일로 떨구려면 pip freeze > requirements.txt
해서 파일로 떨군다. 반대로 클론한 프로젝트에 세팅하려면 pip install -r requirements.txt
로 한꺼번에 설치한다.
nodejs와 비교하면, package.json에 dependencies를 requirements.txt가 관리한다고 생각하면 이해하기 쉽다.
...이후에 계속
Discuss this post here.
Published: 2021-05-24