728x90

IT 113

'keyCode' is deprecated.ts(6385)lib.dom.d.ts(14396, 8): The declaration was marked as deprecated here

Beacuse of event.keyCode is deprecated. It means we are not supposed to use that code in our project. Then how can we change code properly. Before. document.addEventListener("keyup", (e) => { if (e.keyCode == 37) { some code... } })It should be updated like this. document.addEventListener("keyup", (e) => { if (e.key == "ArrowLeft") { some code... } })Then we have one question left, how can we kn..

IT 2023.09.18

nuxt3에서 eslint 설정

1. 모듈에서 eslint 모듈 설치방법 참고해서 세팅 https://nuxt.com/modules/eslint 2. IDE 설정 참고 https://nuxt.com/docs/community/contribution#ide-setup 3. 기본 eslint configure 세팅 https://github.com/nuxt/eslint-config GitHub - nuxt/eslint-config: ESlint config used for Nuxt ESlint config used for Nuxt. Contribute to nuxt/eslint-config development by creating an account on GitHub. github.com global 함수의 경우 에러처리가 되는데, 내 ..

IT/Nuxt 2023.08.17

nuxt를 사용할때.. ssr과 csr을 잘 이해해야한다.

간단하게 이야기하자면,, CSR을 통해서만 가능한 로직이 있따면 onMounted같은 라이프사이클 훅을 사용해서 client side에서 렌더링 될수 있도록 해야한다. 예를들어 request를 요청할때 알아서 브라우저 상의 language code를 accept-language라는 header로 넣어서 보내주는데.. 이걸 ssr에서 request를 요청하게 되면 브라우저의 language code를 알수 없는 상황이기 때문에, 첫 vue app이 로드될때까지는 language code가 제대로 안넘어간다. 이 문제를 해결할수 있는 방법은 다양하겠지만.. 1. 첫 로딩시 browser 설정 언어대신에, 서비스에서 이용할 언어를 사용자가 선택하고 해당 언어 코드를 header에 심어서 보내주는 방법 2. r..

IT/Nuxt 2023.08.16

nuxt-auth/next-auth의 끔찍한 rotation refresh token 문제

nuxt-auth는 next-auth를 기반으로 만들어진 nuxt framework 진영의 인증 모듈이다. nuxt3로 넘어오면서 sidebase라는 곳에서 nuxt-auth를 개발 유지보수 중인데, 이게 next-auth를 기반으로 만들어진거라 여러모로 next-auth 도큐먼트를 살펴봐야하는 상황이 생기기도하고,, nuxt-auth에는 문제가 없더라도 next-auth 자체에 이슈가 있었더라면 원인을 찾는데로 한세월 걸릴수도 있다. 당연히 next-auth도 함께 찾아봐야되는데 뭘 기반으로 만들었는지 제대로 모르면 nuxt-auth 쪽만 살펴보고 헤매게 될 여지가 있기 때문이다. 쨋든 결론만 말하자면, next-auth에서 rotation refresh token을 구현하는데 치명적인 오류가 있다....

IT 2023.08.01

django request.user가 anonymous로만 나오는 이유?

django view를 만들때 drf에서 제공하는 APIView를 상속받지 않고 django에서 내장된 기본 View를 상속받는 경우에 drf에서 제공하는 authentication은 작동하지 않는다. drf를 항상 사용하던사람들은 아무런 의구심이 없을지 모르겠으나, drf에서 어떤식으로 authentication이 처리되는지 궁금할수 있을듯하여 실제 코드를 가져와봤다. dispatch코드가 APIView에서는 오버라이딩 된것을 확인할수 있는데, View에서는 없던 initialize_request라는 함수가 실행되는 것을 확인할 수 있다. 해당 함수에서 request를 초기화하고, 그 과정에서 authentication 처리가 정상적으로 된다. 따라서 VIew 함수를 상속한 경우에는 authentica..

IT/Django 2023.06.28

제대로된 해결 방법 - received a naive datetime while time zone support is active.

USE_TZ = False로 해버리라는 해결책이 구글링으로 검색되던데.. 이렇게 하면 tz을 꺼버리게 되는거다. 국내에서만 사용할 서비스라면 모르겠지만 그게 아니라면 나중에 timezone이 바뀌게 되는 경우 분명 문제가 생긴다. localtime을 호출하는데 tz이 바뀌어도 같은 시간이 계속나오면 문제가 될수 밖에 없다. 해결책은 get_current_timezone()으로 tzinfo를 넣어주는거다. https://stackoverflow.com/questions/18622007/runtimewarning-datetimefield-received-a-naive-datetime 아래 답변자의 답변을 참고하길 바란다. Edouard Thiel

IT/Django 2023.06.22

nuxt3 + django로 풀스택 개발 - 개발환경구축 및 front/back 통합

Nuxt3 개발환경설정 https://nuxt.com/docs/getting-started/installation Installation · Get Started with Nuxt Get started with Nuxt quickly with our online starters or start locally with your terminal. You can start playing with Nuxt 3 in your browser using our online sandboxes: Play on StackBlitzPlay on CodeSandbox Start with one of our starters and themes direct nuxt.com 튜토리얼을 따라서 잘 한다면.. Welcome to Nu..

IT/fullstack 2023.06.02

How to create Djoser custom token strategy more detail info(jwt 정보추가)

1. Make new CustomTokenStrategy inherit TokenStrategy from djoser.social.token.jwt import TokenStrategy # REf. https://stackoverflow.com/questions/65934755/django-how-do-i-return-jwt-with-custom-claim-after-user-sign-up class CustomTokenStrategy(TokenStrategy): @classmethod def obtain(cls, user): from rest_framework_simplejwt.tokens import RefreshToken refresh = RefreshToken.for_user(user) refre..

IT/Django 2023.06.01

python script에서 django model 얻는법

BASE_DIR = Path(__file__).resolve().parent syspath = str(BASE_DIR.parent.parent) - backend - backend - settings.py - myapps - sql - script.py 내 폴더 구조는 위와 같은데.. script.py에서 궁극적으로 backend.settings의 정보를 가져와서 django.setup()을 실행해줄수 있는 구조를 맞춰주면된다. 1. BASE_DIR은 sql폴더를 가르키고 있다. 2. BASE_DIR(sql폴더)을 기준으로 2번 상위 폴더로이동해야 최상위 backend 프로젝트 폴더로 이동할 수 있다. 그래서 syspath는 BASE_DIR.parent.parent를 해준것이다. 이대로 syspath변수..

IT/Django 2023.05.23
728x90