Space Pong 개발 환경 세팅

Space Pong 개발 환경 세팅

개포 클러스터를 기준으로 설명합니다.


구성

WSGI 레퍼런스 Structure


사전 요구사항

  • Intel CPU Mac.
  • MacOS Version = 10.15.7.
  • Docker Engine Version = v20.10.17.
    💡 클러스터의 Managed Software Center에서 Docker를 설치 후 실행합니다.

설치

  1. Space Pong 리포지토리를 git clone으로 받아주세요.
    $> git clone https://github.com/space-pong/SpacePong.git
    
  2. 프로젝트 폴더로 이동합니다.
    $> cd SpacePong/
    
  3. “make” 명령어로 웹 서버를 빌드 및 실행합니다.

    내부적으로 docker-compose.yml를 사용하여 컨테이너를 빌드 및 실행합니다.

    $> make
    
  4. 웹 브라우저에서 웹 페이지 접속
    • URL : https://localhost

개발

Frontend

  • 소스 코드 디렉토리 : frontend/srcs
    • 위의 디렉토리에 작업하신 소스 파일들 추가하시면 됩니다.
  • Frontend는 소스 파일 수정하면 웹 페이지에 바로바로 적용됩니다.
  • https://localhost 접속 시, index 페이지가 나오면 정상 동작입니다.

Backend

  • 소스 코드 디렉토리 : backend/srcs
    • 위의 디렉토리에 작업하신 소스 파일들 추가하시면 됩니다.
  • Django 사용을 위해서는 파이썬 가상 환경을 꼭 사용하셔야 합니다.
    • 파이썬 가상 환경을 사용하지 않으면, Django 설치가 되지 않아 사용이 불가능합니다. (클러스터에서만 그런듯..)
    • 파이썬 가상 환경은 아래와 같이 사용할 수 있습니다.
      1. 파이썬 가상 환경 생성
          $> python3 -m venv [가상 환경을 생성할 디렉토리]
        
      2. 생성된 파이썬 가상 환경 사용
          $> source [생성된 가상 환경 디렉토리]/bin/activate
        
    • 파이썬 가상 환경 디렉토리는 원하시는 곳에 만드시면 됩니다.
    • 가상 환경이 정상적으로 사용되면, 터미널 왼쪽에 (디렉토리명)이 나타납니다.
    • Django 작업 전에, 파이썬 가상 환경을 사용해주시기만 하면 됩니다.
    • 맨 처음 가상 환경 생성 후, 이후 부터는 .zshrc 파일에 alias를 추가해서 빠르게 가상 환경을 사용할 수 있습니다.
  • 어떤 기능이 필요하여 패키지를 설치해야하는 경우, requirements.txt 파일에 해당 패키지를 적어주시고 컨테이너를 다시 만들어주시면 됩니다.
  • Backend는 소스 파일을 수정한 경우, 컨테이너 재시작이 필요합니다. (공통 목차에서 설명)
  • http://localhost:8000 접속 시, Django 페이지가 나오면 정상 동작입니다.

공통

  • 컨테이너 초기화 후 재시작
    • make fclean 명령어 사용 후, 다시 make 하시면 됩니다.
  • Backend에 새로운 코드 적용
    • Backend는 새로운 코드를 적용하려면, 새로운 코드를 받아온 뒤 컨테이너를 재시작해야 합니다.
    • 아래 명령어를 입력하면 빠르게 컨테이너를 재시작 할 수 있습니다.
      $> docker restart spacepong-backend-1
      
      • 맨 뒤의 spacepong-backend-1docker ps 명령어의 NAMES 부분에 나오는 컨테이너 이름입니다.

중요 정보

  • Frontend -> Backend API 요청 URL을 임시로 /api/로 설정해둔 상태이며, 추후 상황에 따라 변경할 수 있습니다.
  • HTTPS를 통해 웹 페이지에 접속 가능합니다.
  • 제공되지 않는 URL 접속시, Error 페이지 대신에 index.html에 머무르도록 설정되어 있습니다. (SPA)
  • 각 컨테이너들이 정상 동작은 되지만, API 및 DB 연동 테스트는 아직 안해본 상태입니다.

Leave a comment