환경 설정 - likelion-syu/syu_clubs_api GitHub Wiki

개발환경

Docker 소개

안녕하세요.

이번 개발에는 Docker를 써보기로 해봤습니다. Docker는 현재 서버 사이드에서 굉장히 각광을 받는 기술인데요. Container라는 가상환경을 생성하여 어떤 Os(Linux, Windows, Mac)에서도 그리고 어떤 환경 설정등에도 상관없이 Container라는 가상 환경 속에서 모든 유저에게 같은 환경을 제공합니다.

따라서 어떤 곳에서나 같은 환경으로 개발, 테스트, 서비스를 제공할 수 있게 됩니다. 이제 Docker를 사용하기 위한 환경 설정을 알려드리도록 하겠습니다.

Docker 설정

  1. 아래 링크를 통해 다운로드 페이지로 이동합니다. https://hub.docker.com/search?q=&type=edition&offering=community&sort=updated_at&order=desc

  2. 각자 os에 따라 Docker를 다운 받습니다.

  3. 터미널에서 docker version을 입력하여 Docker가 제대로 설치되었는지 확인합니다.

  4. 프로젝트에 Docker 사용하기

  • 4.1 Docker가 제대로 설치되었는지 확인했다면 프로젝트 폴더에 api 서버를 git clone 받습니다.
    git clone https://github.com/likelion-syu/syu_clubs_api.git
  • 4.2 서버 폴더 안에 secure폴더를 생성한 후 slack에서 syuClubs-secure.json파일과 mysql.cnf파일 그리고 env.py파일을 secure폴더 안에 넣습니다.
  • 4.3 터미널을 docker-compose.yml파일 위치에 위치하도록하고 명령어 docker-compose up --build를 합니다. 빌드가 완료되면 Docker의 Dashboard를 통해 손쉽게 container를 제어할 수 있습니다.

도커를 포함하지 않은 서버 작업 설정

안녕하세요. window 유저 분들이 도커 설치에 애를 먹고 있다는 소식(window는 pro부터 가상환경 서비스를 제공하기 때문에...그치만 학교에서 무료로 업그레이드할 수 있는걸...)을 들었습니다. 초기부터 도커를 사용하든 안하는 상관없이 구동되도록 서버 설정을 해놨기 때문에 도커를 사용하지 않을 때 서버 설정을 어떻게 해야하는지 알려드리도록 하겠습니다. 하지만 이는 도커와 같이 같은 환경을 제공하는 것이 아닌 각자의 컴퓨터에서 각각의 환경에 따라 서버를 구동함으로 도커 환경이 아닌 곳에서 나오는 부가적으로 발생하는 오류에 대해서는 설정을 도와드릴 수 없다는 점을 미리 알려 드립니다.

  1. git clone을 통해 서버 관련 파일들을 받습니다.https://dl.google.com/cloudsql/cloud_sql_proxy_x64.exe git clone https://github.com/likelion-syu/syu_clubs_api.git

  2. git clone을 받은 폴더 안에 secure폴더를 생성합니다.

  • 슬랙에 올려둔 syuClubs-secure.json, mysql.cnf, env.py를 secure폴더에 넣습니다.
  1. cloud_sql_proxy라는 것을 다운 받습니다
  • window라면 링크를 통해 cloud_sql_proxy.exe를 다운 받습니다.
  • mac이라면 curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64을 통해 파일을 다운 받습니다. chmod +x cloud_sql_proxy 명령어를 통해 프록시를 실행할 수 있게 합니다. 이후 내용은 링크를 참조 해주세요.
  1. 다운 받은 cloud_sql_proxy.exe를 secure폴더에 옮겨 줍니다.

  2. secure폴더에 proxy서버를 손쉽게 실행 할 수 있도록 .bat파일을 생성합니다.

  • secure폴더 안에 먼저 proxy.txt를 생성해 줍니다. 이름은 어떤 것이든 상관없습니다.
  • proxy.txt안에 cloud_sql_proxy -instances=syu-clubs:asia-northeast3:syu-clubs-db=tcp:5000 -credential_file=<syuClubs-secure.json파일 위치>를 넣어주세요. (파일 위치 예시: C:/Users/usr/syu_clubs/syu_clubs_api_server/secure/syuClubs-secure.json) 핵심은 텍스트 파일 안에 있는 내용입니다. 같은 내용을 쉘 스크립트에서 실행시 똑같이 작동됩니다.
  • 이후 proxy.txt파일을 proxy.bat로 확장자를 바꾸어 줍니다.
  1. proxy.bat파일을 실행 했을 때 Listening on 127.0.0.1:5000 for syu-clubs:asia-northeast3:syu-clubs-db, Ready for new connections내용이 나오게 된다면 제대로 프록시 서버가 실행이 된 것입니다.

  2. 프록시 서버를 키고 난 후 장고 서버를 실행해 줍니다.

  • python venv myvenv 가상 환경을 만들고 . myvenv/scripts/activate로 가상 환경을 실행해 줍니다.
  • 이후 pip install -r requirements.txt을 통해서 필요한 패키지들을 다운 받아 줍니다.
  • python manage.py migrate이후 python manage.py runserver를 통해 장고 서버를 실행하면 모든 세팅은 끝나게 됩니다.

서버 작업 설정

본 작업은 docker 설정을 필요로 합니다. docker 작업이 완료된 뒤에는, localhost 5000 포트로 데이터 베이스 접근을, 8000 포트로 django 서버 접근을 할 수 있습니다.

이때, 서버가 실행되는데에는 데이터 베이스 접근에 필요한 정보가 필요합니다. 이 정보는 api프로젝트 최상단에 secure라는 폴더 안에 위치해야 합니다. 해당 폴더는 깃에 업로드 되지 않도록 해두었기 때문에, slack에서 필요한 파일을 확인하시면 됩니다.

해당 작업이 설정되고나면 별도로 설정할 것은 없고 컨테이너를 켜두기만하면 알아서 반영됩니다.

redux-devtools 설정

안녕하세요. 이번 프론트에서는 state관리 패키지로 redux를 사용하기로 결정했는데요. 이 redux를 더 잘 활용하기 위해서 redux-devtool이란 것이 있습니다. 사용 방법은 간단합니다.

링크를 통해 구글 웹스토어에서 redux-devtools를 설치할 수 있습니다. 설치 이후에는 다른 개발자 도구와 같이 크롬에서 f12를 눌러서 Redux탭에 가게 되면 현재 스테이트를 확인할수 있고 시간여행기능을 제공합니다.