Programming/Project Log

[가계부 만들기] Backend - Initialize

minarae7 2023. 3. 4. 23:32
728x90
반응형

Backend 프로그램을 만들기 위해서 우선 프로그램을 초기화해야 한다. 여기서는 Python 기반의  fastapi를 웹 프레임워크로 사용할 것이며 ORM을 사용하기 위해서 sqlalchemy 라이브러리를 사용할 것이다.
프로젝트는 Backend와 Frontend로 분리해서 개발할 것이지만 어쨌든 같은 디렉토리 안에서 작업하는 것이 개발이 용이할 것이라고 판단하여 account-book 디렉토리를 생성하고 그 하단에 Backend와 Frontend 디렉토리를 생성할 것이다.
다음과 명령어를 통해서 프로젝트 디렉토리를 생성한다.

% mkdir account-book
% cd account-book
% poetry new backend

여기서는 프로젝트 의존성 관리를 위해서 poetry를 사용하였으며 이에 대한 설명은 아래 포스트에서 작성하였다.

[Python] Mac에서 개발 환경 구축

이직을 하면서 회사에서 Backend 언어로 Python을 기반으로 fastapi를 사용하게 되었다. Python으로 Object detection을 위한 모델 학습하는 코드는 작성해보았지만 웹서비스를 만들어보기는 처음이다. 예전

minarae.com

이제 backend 디렉토리로 이동해서 개발에 필요한 라이브러리들을 의존성에 주입한다.

% cd backend
% poetry add fastapi sqlalchemy "uvicorn[standard]"

우선 fastapi와 이를 실행하기 위한 uvicorn을 설치하고 ORM을 위해서 sqlalchemy를 같이 설치해준다.
여기까지 되었으면 backend 디렉토리 하단에서 파일 리스트를 조회해보면 다음과 같이 보인다.

backend 디렉토리 밑에 backend라는 디렉토리가 다시 생성된다. 여기서는 하단의 backend를 app이라고 이름을 변경한다. 그리고 app 디렉토리 하단에 main.py 파일을 생성하고 다음의 코드를 입력한다.

from fastapi import FastAPI

app = FastAPI(title="account-book-api")

@app.get("/")
async def main():
    return {"message": "Hello World"}

일단 간단한 프로그램 코드를 입력하여서 프로그램이 정상적으로 작동되는지 확인할 것이다.
디렉토리 이름을 변경하고 main.py 파일을 생성하고 나면 아래와 같은 파일 구성이 된다.

이제 프로그램을 구동할 준비가 되었다. 다음 명령어를 입력해서 프로그램을 구동해보자.

% uvicorn app.main:app --reload

이렇게 프로그램을 실행시키면 뒤에 붙은 옵션 reload에 의해서 프로그램 코드가 변경될 때마다 자동으로 코드를 reload 하여서 변경된 코드를 반영해준다.
이제 브라우저로 가서 http://127.0.0.1:8000 주소를 입력하면 다음과 같이 프로그램이 구동되는 것을 확인할 수 있다.

공식 문서에서 확인할 수 있는 것과 같이 http://127.0.0.1:8000/docs 와 http://127.0.0.1:8000/redoc이 동작하는 것도 같이 확인할 수 있다.

이렇게 해서 프로젝트의 초기 셋팅을 완료하였다.
이제 코드를 입력하기 시작할 것이다. 다음 문서에서는 데이터베이스를 연동하고 앞에서 설계한 테이블을 ORM으로 코드와 연결하는 과정을 기술할 것이다.
fastapi는 공식 문서가 잘 되어 있어서 공식 문서만 잘 습득하여서 개발을 시작하는데는 무리가 없다.

728x90
반응형