> wecode 프로젝트 초기 세팅

yeeun lee·2020년 5월 7일
3

1. conda env 설정

프로젝트를 위한 conda 가상 환경을 만들고, python 3.7 & django를 설치한다.
로그인 회원 가입 암호화를 위한 bcrypt & Pyjwt, 데이터베이스 사용을 위한 mysqlclient까지 깔면 완료. 하다가 필요한 것은 중간중간 설치해주자.

conda create -n myenv python=3.7 django
pip install bcrypt
pip install Pyjwt
brew install mysql

2. git 관련 설정

local-remote repo 연결

부트캠프에서 특정 사이트를 클론하는 프로젝트를 하고 있기 때문에, readme 파일이 포함되어 있는 master file을 pull해야 한다.

작업을 시작하기 전에 미리 pull을 해놓고, 원격 repo와 버전을 맞춘다음 진행하는 것이 편하다. 우선 해당 repo를 local과 연결하고, master를 pull해오면 master branch가 업데이트 된다.

git remote add origin <repo_url>
git pull origin master 

브랜치 생성

이후 내가 할 작업에 대해서는 master가 아닌 branch에서 작업 후 머지될 예정이기 때문에 별도의 브랜치를 생성한 뒤에 checkout 한다.

git branch feature/blah
git checkout feature/blah

git ignore 설정

github에 올릴 때, secret key를 가지고 있는 보안 파일들은 push 대상에서 무시되어야 한다. 링크에 들어가 내 컴퓨터 설정과 쓰고 있는 언어인 macOS, python, django, vim을 클릭하면 파일을 만들어준다.

  • gitignore는 dotfile이고, 만들기 전에 touch command를 해줘야 한다.
  • 만든 파일의 마지막에는 보안 파일도 추가해주어야 되는 점을 잊지 말자.
touch .gitignore 
vi .gitignore 

3. root > settings.py

주석 처리

프로젝트에서 쓰지 않을 앱은 주석처리 한다.

corsheaders

cors에 대한 처리를 원활하게 해줄 플러그인을 설치하고, settings.py 에서 installed_apps와 middleware에 추가한다.

pip install django-cors-headers

INSTALLED_APPS = [
...
		'django.contrib.staticfiles',
		
]
MIDDLEWARE = [
	...
		'corsheaders.middleware.CorsMiddleware',
	...
]

그 다음 허용할 값을 정의한다.

##CORS
CORS_ORIGIN_ALLOW_ALL=True
CORS_ALLOW_CREDENTIALS = True

CORS_ALLOW_METHODS = (
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
)

CORS_ALLOW_HEADERS = (
    'accept',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
#만약 허용해야할 추가적인 헤더키가 있다면?(사용자정의 키) 여기에 추가하면 된다.
)

시간 설정

처음 앱을 만들고 들어가면 timezone이 다르게 설정되어 있다 (미국이었던 것 같은데 기억이 잘 안 난다)

time_zone을 'Asia/seoul'로 바꾸면 된다.

4. my_settings

settings.py 설정이 거의 마무리 되어간다. root app의 settings.py에는 secret_key, databases, allowed_host와 같이 중요한 정보가 담겨 있다.

요 정보가 외부에 노출되지 않게 하기 위해 별도 파일을 만들어서 관리한다.
my_settings 파일에 아래 코드를 옮겨주고 root app settings.py에서는 다음와 같이 수정한다.

#
touch my_settings.py
vi my_settings.py

# root app settings.py 
import my_settings

DATABASES = my_settings.DATABASES
SECRET_KEY = my_sesttings.SECRET['secret']
ALLOWED_HOST = my_settings.ALLOWED_HOST
#my_settings file 
DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'database_name_you_created_in_mysql',
        'USER': 'root',
        'PASSWORD': 'your_password',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

SECRET = {
        'secret':'secret_key_in_your_settings.py',
}

ALLOWED_HOST = []

5. requirements.txt

git에서 누군가 프로젝트를 내려 받을 때, 파일을 실행하기 위해 필요한 것들을 모두 저장해 한 번에 다운받을 수 있게끔 한다.

pip freeze는 내가 다운받은 것들을 보여주는 명령어인데, 그 리스트를 고대로 txt file로 저장한다.

pip freeze > requirements.txt 

6. mysql 연결

mysql에 database를 만들고, my_settings databases에 동일한 이름을 넣으면 (비밀번호도 동일해야 함), makemigrations > migrate가 정상적으로 되었을 때 데이터베이스 연동이 이상 없이 되는 것을 알 수 있다.

만약 처음 다운 받는다면, 아래 명령어를 통해 mysql 관련 초기 세팅을 설정할 수 있다. 설정하는 내용은 비밀번호와 접속과 관련된 중요한 정보이기 때문에 신중히 선택해야 한다.

mysql.server start
mysql_secure_installation
profile
이사간 블로그: yenilee.github.io

0개의 댓글