3주동안 어찌어찌 구현해서 따라가야 한다는 생각에 막막했지만 항상 배운다는 자세를 가지고 시작 보려고 합니다.
Mission 1 은 - 프로젝트 시작에 있어서 초기 셋팅을 합니다.(django, git)
Mission 2 : 회원가입 구현하기
Mission 3 : 로그인 구현하기
개발 작업을 위해 가상환경을 만들어서 westagram 프로젝트를 시작하려고 합니다.
conda create -n '가상환경 이름'
pip install django(장고 설치)
pip instatll django-cors-header
pip install mysqlinstall
CORS-headers : 브라우저가 리소스로드를 허용해야하는 원본 이외의 다른 원본을 서버가 나타낼 수 있도록 하는 HTTP 헤더 기반 매커니즘
westagram으로 만들었다.
django project 생성하기!!!
django-admin startproject westagram
그 전에 중요한 건 git을 통해 멘토님과 프로젝트를 진행해야 하기 때문에 터미널에 git을 만들어 야 한다.
wecode 부트캠프를 시작하고 들어간 wecode github에서 git clone을 받아서 가상환경에 설치 했다.
conda activate westagram - westagram이라는 가상환경을 실해서 base -> westagram 으로 변경 된것을 볼 수 있다.
그 후 git clone을 통해 westagram-backend/폴더를 만들었다. westagram-backend 이름을 가진 repository 에 프로젝트를 올리기 위해서 이다.(local repository, remote repository - TIL33 git, github에 정리되어있다.)
현재 나는 git master라고 표시되어 있는 것으로 볼수있다. (현재 root 상태) 하지만 이 상태에서 'django-admin startproject westagram'을 시작하게 되면 원래 가지고 있던 repository에 변동이 일어나기 때문에 다수가 프로젝트를 진행하는데 있어서 어려움을 겪게 된다. 그래서 branch 라는 나만의 공간을 만들어 준다.
git branch '만들고자 하는 branch명'
단순히 git branch만 적게 된다면 만든 branch 들을 볼수 있다.
이런식으로 master와 내가만든 branch feature/dongguenLEE 가 있다. 그 앞에 있는 * 표시는 현재 있는 branch라고 표시해주는 것이다. branch를 변경해주는 실행어는 git switch or checkout이 있다.
이제 가상환경 설정도 끝났고 git branch도 변경이 완료 됬으므로 진짜 project를 시작할수 있다.
student -> 17th -> team1 들어간 뒤 mkdir로 내 이름을 가진 폴더를 만들고 그 하위에 westagram 이라는 프로젝트를 시작했다.
https://velog.io/@eagle5424/TIL-34-django-1
https://velog.io/@eagle5424/TIL-34-django-2
https://velog.io/@eagle5424/TIL-39-django-%ED%9D%90%EB%A6%84-%EB%B3%B4%EC%B6%A9-Westagram
(Mission3까지 완성한 모습)
이제 개발을 위한 기본 셋팅을 할 차례 이다.
ALLOWED_HOST : 이말은 접근을 허용하는 HOST를 적어주는 곳이다. []표시로 보아 리스트 형식으로 적을수 있다. 즉 다수의 접근을 허용할 수 있다. 만약 아무것도 적어주지 않는다면 django는 127.0.0.1:8000 이라는 기본포트와 localhost만을 자동으로 인식한다. 하지만 나중의 FE들과의 통신연결을 위해 모든 허용을 허용하는 string 타입의 '*'을 적어준다.
INSTALLED_APPS : 사용하는 앱들에 대해서 적어주는 곳이다. 하지만 관리자와 관련된 admin과 로그인 구현과 관련된 auth는 사용하지 않을 것이기 때문에 주석 처리를 해준다.
corsheaders, User : 이 두 앱은 기본적으로 적혀있는 것이 아닌 내가 직접 추가한 내용이다. User는 내가만든 APP의 이름이다 여기에 정의해 주지 않으면 APP이 구동되지 않는다. 그리고 corsheaders는 다른 도메인과의 통신을 허용하기 위해 만들어준 APP이다.
이 두가지 역시 True 설정을 해줘야지 다른 도메인과의 통신이 원활히 이루어 진다.
cors_orign_allow_all = 모든 사이트들 간 HTTP 요청 허용
corst_allow_credentials = 쿠키가 HTTP 전송간 허용
HTTP로 구현해야할 Delete, get, post, patch를 사용하기 위해 추가 한다.
Django App에서 CORS 메커니즘을 적용하기위해 Response Header에 CORS Header를 추가한 내용들이다.
https://velog.io/@eagle5424/TIL-35-Http - HTTP 작성한 내용입니다.
검색 창에 보면 django, python linux 가 적혀있듯이 이렇게 적어주면 파일이 나온다 궁금하면 직접해보시길 바란다^^ 나온 내용들을 복사해서 gitignore에 복사해주고, my_settings 역시 넣어준다.
그리고 my_settings에 넣어줄 내용은 SECRET_KEY와 함께 DATABASE도 넣어주었다.
DATABASE 에는 mysql을 연결할 ENGIN과, USER, PASSWORD(데이터베이스 패스워드), HOST, PORT, NAME(데이터베이스 이름)가 있기 때문에 이 또한 인터넷에 노출되면 위험하기 때믄에 my_settings에 넣어준다.
기존에 있던 내용은 다 지워버리면 된다.!!!
오해 하지 말았으면 하는게 이것을 지운다고 해서 필요없는 것이 아니라 API 통신을 하기위한 여러가지 방법중 기존에 있는 내용을 사용하지 않기 때문에 지워준 것이지 쓸모가 없다는 이야기가 아니기 때문에 오해하지 말자!!!