[PlanTo # 1] 프로젝트 초기 설정

이원진·2023년 7월 4일
0

Planto

목록 보기
1/9
post-thumbnail

목차


  1. 서론

  2. 기술 스택

  3. 프로젝트 초기 설정

0. 서론


이전에 진행했던 팀프로젝트에서 REST API를 완성했음에도 팀원들 간 의사소통과 분업과 관련된 문제가 발생해 별다른 결과물을 남기지 못한 경험이 있습니다.

이와 비슷한 문제가 재발하는 것을 방지하기 위해 백엔드를 담당했다고 이와 관련된 것만을 공부하는 것 대신, 문제 해결과 협업 능력을 기르기 위해 프런트엔드를 경험해볼 필요성을 느꼈습니다.

따라서 이번 프로젝트에서는 템플릿 엔진을 사용하지 않고 프런트엔드와 백엔드 모두 직접 구현해 채용공고를 쉽게 일정에 추가할 수 있는 일정관리 웹서비스 - PlanTo를 개발해보겠습니다.

1. 기술 스택


사용자가 일정(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 자동 문서화

2. 프로젝트 초기 설정


  • Python 3.11.4

    • pyenv install 3.11.4Python 설치 시도 시 에러 발생
      xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
      • 이는 MacOS 업데이트 후 자주 발생하는 문제로, 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)>

      • 아래와 같이 python과 python3의 경로가 다르게 매핑되어 발생한 문제로, 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 프로젝트 생성

0개의 댓글