git commit 취소하기

  1. commit 취소 후, staged 상태로 working directory에 유지
    git reset --soft HEAD^ 
  1. commit 취소 후, unstaged 상태로 working directory에 유지
    git reset --mixed HEAD^  - 기본 옵션

    git reset HEAD^  - 위와 동일

    git reset HEAD~3  - 마지막 3개의 commit을 취소
  1. commit 취소 후, unstaged 상태로 working directory에서 삭제
    git reset --hard HEAD^ 

commit message 변경하기

git commit --amend

 

 

git clone -b (브랜치 이름) --single-branch (저장소 url)

 

 

 

'http://127.0.0.1:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

 

네이버 캠퍼스 핵데이 시작이 얼마 안 남았는데 기술 부채로 인한 문제가 심각하다.. 

대주제는 정해졌지만 소주제는 자유로 적혀 있어서 네이버 Open api를 사용하는 주제를 개인적으로 해보려고 했고,

프로젝트가 시작되기 전에 Vue.js를 써서 lean하게 구현해보려고 했는데, axios로 api를 호출하는 것에서 CORS 정책으로 인해 막혔다.

네이버 api는 타 사용자의 client id와 client secret 를 도용하여 api를 호출하는 것을 막기 위해 서버 프로그래밍을 통해서만 호출하도록 되어 있다.  으악

(https://developers.naver.com/forum/posts/26989)

 

그런데 프로젝트의 선택 요구사항에 nodejs server framework (express, koa) 혹은 serverless 구성을 택할 것으로 적혀있다.

말그대로 선택사항이라 지킬 필요는 없으나 이왕이면 다홍치마 아니겠는가.

문제는 나한테 서버는 django가 익숙하고, serverless라면 AWS Lambda 같은 것을 얘기하는 것 같은데, 전혀 경험이 없다.

 

방법은 다음 중에 택하면 될 듯하다.

  1. nodejs 서버 프레임워크를 공부한다. 커뮤니티는 express가 크고, koa는 기업 종속성이 낮아 미래가 밝다는 것 같다. 이 방안이라면 더 빠른 구현이 가능한 것을 택할 듯.

  2. AWS Lambda나 firebase에서 함수 기반으로 해결이 가능하다면 해당 플랫폼 사용.

  3. axios.get 의 경우에,  JSONP 이라는 것으로 해결이 된다는 얘기가 있어 가장 우선적으로 시도해볼 것임 -> html 문서의 script 태그는 보안정책에 적용되지 않는 점을 이용한 것 -> (05.15 추가) 서버 측에서 JSONP 형식을 지원해야 하는 단점이 있어 범용적으로 사용하기 어렵다.

  4. 프록시? -> (05.15 추가) 1번과 동일한 방법. 프록시 서버를 구축하는 것.

 

해커톤 시작되기 전에 빨리 공부해야지..

 

(참고: https://velog.io/@takeknowledge/%EB%A1%9C%EC%BB%AC%EC%97%90%EC%84%9C-CORS-policy-%EA%B4%80%EB%A0%A8-%EC%97%90%EB%9F%AC%EA%B0%80-%EB%B0%9C%EC%83%9D%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0-3gk4gyhreu)

'Language > JavaScript' 카테고리의 다른 글

호이스팅 (Hoisting)  (0) 2020.06.14
자바스크립트 Primitive(원시값)  (0) 2020.06.13
자바스크립트 클로저  (0) 2020.06.12
SPA란  (0) 2020.01.07



django-rest-api로 프로젝트를 진행하며 커스텀 유저 모델을 생성하고

rest_auth 라이브러리를 이용하여, 로그인과 회원가입, 로그아웃 과정을 진행하려는 참에 token 인증 관련하여 생긴 에러였다.

 

Django custom user token 이라는 검색어로 구글링을 시도하였고, 

겨우겨우 해결책을 찾았다.

 


 

해결책은 다음과 같다.

settings.py에 아래 코드를 추가해주면 오류가 뜨지 않고, 회원가입 시에 token key값이 반환되고, 로그인 시에도 해당 token key 값을 확인할 수 있다. 

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.TokenAuthentication',
    ],
}

 

 

https://www.gitignore.io/

 

프로젝트를 진행하면서, 팀원에게 자잘한 (자잘하지 않을 수도 있는) 지식을 배웠다.

 

.gitignore 이란 git으로 버전 관리를 진행하면서, 원치않는 파일을 올리지 않게끔 도와주는 도구이다.

이전까지는 필요하지 않은 파일에 대해서 하나하나 직접 작성해가며 필터링하였는데,

팀원이 gitignore.io 라는 사이트가 있다는 것을 알려주었다.

 

IDE, 언어, 운영체제 등을 tag로 입력하면 그에 맞는 .gitignore 파일을 자동으로 생성해준다.

매우 편리!

django.db.migrations.exceptions.InconsistentMigrationHistory: Migration account.0001_initial is applied before its dependency user.0001_initial on database 'default'.

 

django에서 기본으로 제공하는 user model을 쓰지 않고

커스텀 유저 모델을 설정하는 과정에서 생긴 문제였는데, 조금 헤맸다. 

 

stackoverflow를 뒤져보니

settings.py의 'django.contrib.admin' 와
urls.py의 path('admin/', admin.site.urls) 을 주석처리하고 makemigrations 및 migrate를 해주면 된다고 적혀있는데..

해보니까 역시나 잘 안된다.

 


 

해결법은

1. 해당 user model을 설정한 app의 migrations 폴더를 지우고,

2. db.sqlite3 파일 삭제

3. python manage.py makemigrations <app 이름>
4. python manage.py migrate <app 이름>

5. python manage.py createsuperuser

 

위 순서대로 실행하니, 의존성 문제 없이 잘 실행된다.

+ Recent posts