본문 바로가기

전체 글

(1178)
[Django rest framework] 2. token / authentication 이번 포스팅의 소스는 여기에 있습니다. - python3.6, django 2.1, django-rest-framework 3.8 을 사용합니다. rest fremework는 기본적으로 템플릿 방식이 아닌, api 호출을 기반을 위주로 합니다. 또한 같은 도메인 호출도 있겠지만, 다른 도메인에서 호출하는 경우도 있습니다. 이때 해당 회원(권한)인지를 인식해야 되는 과정이 필요한데, 이를 위해 헤더에 해당 회원의 token을 포함하여 전송함으로써 서버에서는 해당 token값으로 회원을 인식합니다. 이번 포스팅에서는 DRF token 설정과 각 api에서의 auth 설정에 관한 내용이며, API 서버에 자주 사용되는 JWT(Json Web Token) 인증을 장고(django)를 사용하여 구현하려고 합니다 ..
[Django rest framework] 1. 기존 셋팅 + CRUD 이번 포스팅의 소스는 여기에 있습니다. - python3.6, django 2.1, django-rest-framework 3.8 을 사용합니다. 이번 포스팅에서는 기본 셋팅 및 간단한 모델을 생성하여, CRUD URL을 만드는것을 목표로 합니다. 1. 프로젝트 생성 및 DRF 기본 셋팅 패키지 설정을 위해 virtualenv로 관리 합니다. python 3.6 버전으로 django-env이라는 env를 생성합니다. $ sudo pip install virtualenv $ virtualenv -p python3.6 django-env $ source django-env/bin/activate env생성 및 활성화 함으로써, 전역 설치가 아닌 django-env에 패키지들이 설치되게 되어 패키지들의 버전 ..
ERROR: cannot change sequence "*****" DB postgresql에서 PK의 다음번 순서를 변경해야 하는 상황이였습니다. (참고로 MySQL 은 컬럼에 AUTO_INCREMENT 속성을 사용 합니다. sequence는 오라클과 postgresql에만 있습니다.) 테이블의 구성은 아래와 같습니다. 즉 auth_user_id_seq를 변경해야 하는 상황에서 기존 쿼리문과 같이 update으로 실행하면 아래와 같이 에러가 발생합니다. sequence는 기존 테이블 방식이 아닌 Function형태로 작동하며, 변경 또한 다르게 표현됩니다. alter sequence 시퀀시이름 restart with 변경할값; DDL 형태로 변경하면 값을 변경할수 있습니다. 단지 last_value의 값이 현재의 값이며, 해당 값을 변경하기 위해서는 "restart w..
[Django rest framework] 튜토리얼을 시작하며. 기존에 작성했던 Django rest framework의 포스팅이 너무 낮은 버전에서 구현한거라 문제가 심각하게 있었다. (물론 4년전에 한거니까 당연한 거다.) 그리고 Django REST Framework (DRF) 3.0의 tutorial만 읽고 그 동안 개발을 했었는데, DRF에서 제공하는 기능은 커녕, tutorial의 기능조차 제대로 사용하지 않고, 하나하나 모든 기능을 만들면서 시간을 낭비하고, 보기 싫은 코드를 작성하고 있었다. 그래서 이전에 작성한 포스팅은 모두 삭제 하고, 다시 글을 써 보기로 했다. 앞으로 연재할 포스팅에서는 1. 최대한 DRF의 최신 기능 및 서드 파티들을 사용하는것을 목표 2. view의 모든 기능은 viewset.modelView 를 기반하여 상속이나 재사용이 가..
fatal error: 'X11/Xlib.h' file not found /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/tk.h:78:11: fatal error: 'X11/Xlib.h' file not found # include ^~~~~~~~~~~~ 1 error generated. xcode를 재설치 했거나, 업데이트 했다면 Xlib의 링크파일이 깨졌을수도 있습니다. 이럴 경우 다시 링크파일을 생성해 줍니다. ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Hea..
Difference between the Accept and Content-Type HTTP headers https://stackoverflow.com/questions/35722586/header-parameters-accept-and-content-type-in-a-rest-context Accept 매개변수는 서버에서 전송된 클라이언트 응답에 예상되는 데이터 유형을 정의하기 때문에 응답 헤더로 사용되는 것으로 알고 있습니다. 저의 질문은 content-type에 관한 것인데, 클라이언트가 보낸 요청의 본문 형식을 정의하기 위해 content-type을 사용합니다. 항상 클라이언트 요청의 일부로 사용했기 때문에 Accept와 content-type으로 헤더를 설정하는 클라이언트 요청이 있습니다. 그리고 최근에 응답 헤더에 content-type이 정의되어 있는 프로젝트를 접하게 되었다(그래서 서버가 보낸..
프로그래머스 SQL 고득점 KIT 몇몇 문제의 답안 입니다. (다 푸시고 보세요!!) 1. group by > 입양시각 구하기 (1) SELECT hour(DATETIME) as 'hour', count(hour(DATETIME)) as 'count' from ANIMAL_OUTS GROUP BY hour( DATETIME ) HAVING hour >= 9 and hour 입양시각 구하기 (2) select b.hour, ifnull(a.count, 0) as 'count' from (SELECT hour(DATETIME) as 'hour', count(hour(DATETIME)) as 'count' from ANIMAL_OUTS GROUP BY hour( DATETIME )) as a right outer join (SELECT 0 a..
Peephole optimization 해당 문서는 https://legacy.python.org/workshops/1998-11/proceedings/papers/montanaro/montanaro.html 를 번역한 것으로, 파이썬의 버전에 따라 결과가 다를 수 있습니다. 원본 문서 python 1.5 버전으로 1998.11월에 작성되었습니다. 파이썬 코드는 간단한 방식으로 고수준 가상 머신에 의해 컴파일 됩니다. 성능을 향상시키기 위해 코드에 peephole optimizer를 적용할 수 있어야 합니다. 이 문서는 기존 바이트 컴파일러와 통합 된 Python으로 작성된 peephole optimization를 조사합니다. 일반적으로, peephole optimization는 opcode의 패턴을 찾아 더 효율적인 코드로 치환해줍니다. p..