환경 설정 - likelion-syu/syu_clubs_api GitHub Wiki
개발환경
Docker 소개
안녕하세요.
이번 개발에는 Docker를 써보기로 해봤습니다. Docker는 현재 서버 사이드에서 굉장히 각광을 받는 기술인데요. Container라는 가상환경을 생성하여 어떤 Os(Linux, Windows, Mac)에서도 그리고 어떤 환경 설정등에도 상관없이 Container라는 가상 환경 속에서 모든 유저에게 같은 환경을 제공합니다.
따라서 어떤 곳에서나 같은 환경으로 개발, 테스트, 서비스를 제공할 수 있게 됩니다. 이제 Docker를 사용하기 위한 환경 설정을 알려드리도록 하겠습니다.
Docker 설정
-
아래 링크를 통해 다운로드 페이지로 이동합니다. https://hub.docker.com/search?q=&type=edition&offering=community&sort=updated_at&order=desc
-
각자 os에 따라 Docker를 다운 받습니다.
-
터미널에서
docker version
을 입력하여 Docker가 제대로 설치되었는지 확인합니다. -
프로젝트에 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부터 가상환경 서비스를 제공하기 때문에...그치만 학교에서 무료로 업그레이드할 수 있는걸...)을 들었습니다. 초기부터 도커를 사용하든 안하는 상관없이 구동되도록 서버 설정을 해놨기 때문에 도커를 사용하지 않을 때 서버 설정을 어떻게 해야하는지 알려드리도록 하겠습니다. 하지만 이는 도커와 같이 같은 환경을 제공하는 것이 아닌 각자의 컴퓨터에서 각각의 환경에 따라 서버를 구동함으로 도커 환경이 아닌 곳에서 나오는 부가적으로 발생하는 오류에 대해서는 설정을 도와드릴 수 없다는 점을 미리 알려 드립니다.
-
git clone
을 통해 서버 관련 파일들을 받습니다.https://dl.google.com/cloudsql/cloud_sql_proxy_x64.exegit clone https://github.com/likelion-syu/syu_clubs_api.git
-
git clone
을 받은 폴더 안에secure
폴더를 생성합니다.
- 슬랙에 올려둔
syuClubs-secure.json
,mysql.cnf
,env.py
를 secure폴더에 넣습니다.
- 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
명령어를 통해 프록시를 실행할 수 있게 합니다. 이후 내용은 링크를 참조 해주세요.
-
다운 받은
cloud_sql_proxy.exe
를 secure폴더에 옮겨 줍니다. -
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
로 확장자를 바꾸어 줍니다.
-
proxy.bat
파일을 실행 했을 때Listening on 127.0.0.1:5000 for syu-clubs:asia-northeast3:syu-clubs-db
,Ready for new connections
내용이 나오게 된다면 제대로 프록시 서버가 실행이 된 것입니다. -
프록시 서버를 키고 난 후 장고 서버를 실행해 줍니다.
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탭에 가게 되면 현재 스테이트를 확인할수 있고 시간여행기능을 제공합니다.