1. 기초 환경 세팅
1) requirements.txt
- 배포하기 전에 설치한 정보를 별도로 저장해서 다른 사람에게 알려줘야 함. (협업 및 나 자신을 위해)
- pip freeze : 현재 가상환경 내에 설치한 모듈/프로그램을 보여줌
- pip freeze > requirements.txt : 내가 설치한 목록을 requirements.txt에 입력해 줌
- cat requiremnts.txt : 제대로 입력됐는지 확인
- 이 외에 설치 이력을 관리해 주는 히스토리인가? 하는 프로그램도 있음.
- 프론트랑 백엔드 합칠 때 CORS 에러가 많이 나오게 됨. Cross domain 이슈 때문임
- Cross domain 이슈란 보안을 위해 허용된 주소가 아닌 곳에서는 데이터 접근을 못 하게 막는 것임
- 백엔드 혼자서 작업할 때는 어차피 내 로컬 컴퓨터에서 작업하기에 동일한 IP를 사용함.
- 하지만 다른 사람이랑 공유할 때 IP가 서로 다르기 때문에 다른 IP에서도 데이터 접근을 허용해 주지 않으면 아래처럼 에러가 발생하는 것임
- 따라서 Cross domain 에러를 방지하기 위해서 cors 헤더를 설치하고, 설정을 해 줘야 함.
- 원래 도메인이 있는 상태라면 도메인만 허용하면 되는데 지금은 도메인이 없음으로 그냥 어느 정도까지는 허용을 해 줌
- 만약 추가해야 되는 헤더값이 있다면 반드시 여기에 추가해 줘야 함.
장고에서는 CORS를 해결하기위한 패키지를 제공. 아래의 명령어를 사용해 패키지를 설치
pip install django-cors-headers
설치가 완료되면 settings.py의 INSTALLED_APP과 MIDDLEWARE에 아래 정보를 추가
INSTALLED_APPS = [
...
'corsheaders'
]
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware',
]
[Cross domain 에러가 발생한 이미지]
3) .gitignore
- 다른 사람과 공유하면 안 되는 문서는 미리 예상해서 초기에 .gitignore에 넣어야 함
- 내 사용환경에 따라 어떤 문서들을 ignore해야 되는지 알려주는 사이트 : https://www.gitignore.io/
- gitignore.io에서 나의 주요한 작업환경(vim, macOS, Django, Python 등) 알려주면 gitignore 목록을 뽑아줌
- 이 내용 복사해서 .gitignore 하면 끝
- cd (해당폴더)
- touch .gitignore
- vi .gitignore 후 복사한 내용 추가
4) 보안 설정
- 환경 변수에 넣어도 되고 아니면 my_settings.py 파일을 별도로 만들어서 관리
- 데이터베이스, secret 키 등 중요정보 관리
- 이 파일은 반드시 gitignore에 포함시켜야 함
2. 서버 외부에 오픈하기
1) 프로젝트 settings.py에 외부 접속자 허용
<프로젝트 settings.py>
allowed_hosts = [’10.58.X.XX’] # 사용자 IP 추가
allowed_hosts = ['*'] # 전체 접속자 허용
2) 서버 런할 때, python manage.py runserver 0:8000
3) IP 주소 공유해 주기
안녕하세요, 위코드 10기입니다. 참고해서 블로그 작성했습니다. 소중한 정보 감사합니다.