서론
기술 스택
프로젝트 초기 설정
이전에 진행했던 팀프로젝트에서 REST API를 완성했음에도 팀원들 간 의사소통과 분업과 관련된 문제가 발생해 별다른 결과물을 남기지 못한 경험이 있습니다.
이와 비슷한 문제가 재발하는 것을 방지하기 위해 백엔드를 담당했다고 이와 관련된 것만을 공부하는 것 대신, 문제 해결과 협업 능력을 기르기 위해 프런트엔드를 경험해볼 필요성을 느꼈습니다.
따라서 이번 프로젝트에서는 템플릿 엔진을 사용하지 않고 프런트엔드와 백엔드 모두 직접 구현해 채용공고를 쉽게 일정에 추가할 수 있는 일정관리 웹서비스 - PlanTo
를 개발해보겠습니다.
사용자가 일정(To-do)을 옮길 때의 모션을 구현하기 위해 프런트엔드는 Typescript와 React.js를 사용하며, 일부 기능을 서버 사이드 렌더링하기 위해 Next.js 프레임워크를 활용해 개발할 예정입니다.
Django와 DRF를 사용해 REST API를 구현하고, DB는 PostgreSQL을 사용하며, 향후에 서비스를 배포한다면 Docker와 AWS를 활용할 예정입니다.
poetry: requirements.txt로 라이브러리를 관리했을 때 의존성 관련 문제를 해결하는 데 어려움을 겪어서 poetry로 대체
mypy: Python의 동적 타입으로 인해 발생할 수 있는 문제를 방지하고자 타입 제약 추가
django-filter: 사용자가 일정을 검색(필터링)할 수 있는 기능 구현
django-extensions: runserver_plus, shell_plus, create_command 등 유용한 기능 제공
drf-spectacular: DRF로 개발한 REST API 자동 문서화
Python 3.11.4
pyenv install 3.11.4
로 Python 설치 시도 시 에러 발생xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
xcode-select --install
명령어로 CommandLineTools를 설치해 해결 가능pyenv global 3.11.4
로 로컬 Python 버전 설정프로젝트 생성
poetry 라이브러리를 사용해 프로젝트 생성 및 의존성 관리
curl -sSL https://install.python-poetry.org | python3 -
을 사용해 poetry 설치 시도 시 에러 발생urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)>
export PATH=/opt/homebrew/bin:$PATH
로 경로 설정해 해결poetry new project_name
: 프로젝트 생성
poetry shell
: vscode 터미널에서 해당 명령어로 가상환경 실행
.gitignore 작성
라이브러리 추가
poetry add django
위와 같이 pyproject.toml 파일의 [tool.poetry.dependencies]에 django가 추가됨
이때 poetry.lock이라는 프로젝트의 의존성을 관리하는 역할을 하는 파일이 함께 생성되는데, 의존성을 맞추기 위해 github에 commit해야하므로 .gitignore에 걸려있지 않은지 확인해야 함
poetry add djangorestframework
poetry add mypy
poetry add django-filter
poetry add django-extensions
poetry add drf-spectacular
django-admin startproject project_name
: django 프로젝트 생성