분류 전체보기
-
TIL.78 JWT Token 유효시간 설정TIL 2020. 12. 26. 21:07
이전까지는 로그인시 jwt를 포함한 응답을 함께 전송하였으며 우리 서비스를 사용하는 사용자가 맞는지, 유로서비스를 이용 중인 사용자는 맞는지 등 인가를 이용해 토큰이 우리 서비스에서 발행된 토큰이 맞는지에 따라 접근권한을 부여하였다. 토큰은 만료시간을 설정해줄 수 있다. 보통 로그인후, 토큰을 생성하여 응답으로 전달해준다. 사용자의 토큰 정보는 브라우저 스토리지에 저장해놓은 상태로 로그인한 사용자가 어떠한 기능/페이지에 접근하기 위해 전체 요청이 아닌 세션ID/토큰만으로 요청을 보내 사용된다. 이때 만료시간을 설정하지 않으면 토큰이 계속 만료되어 게시물을 하나 등록하고 또 다른 게시물을 등록하고 싶을때 다시 로그인해야하는 번거로움이 발생한다. 실제로는 이전처럼 만료시간을 설정하지 않는 토큰은 사용되지 않..
-
TIL.77 List Comprehension의 속도가 빠른이유TIL 2020. 12. 24. 23:19
Python에는 Comprehension 이라는 독특한 문법이 있다. 이는 요소를 생성하는데 있어 간력하게 생성할 수 있는 방법을 제공한다. 리스트 안에 for 문, if문 등으로 지정하여 리스트를 생성하는 것을 리스트 컴프리헨션이라 하는데 TIL. 5 list 함수 응용편_3 :: muntari Log (tistory.com) 컴프리헨션(Comprehension)은 원하는 데이터를 파이썬에서 제공하는 자료구조(list, dictionary, set)에 담아 표현하려할 때 사용할 수 있는 문법으로 종류는 4가지이다. 1. List Comprehension 2. Dictionary Comprehension 3. Set Comprehension 4. Generator Comprehension 이번 프로젝트 ..
-
TIL.76 AWSTIL 2020. 12. 23. 16:51
AWS란? AWS는 Amazon Web Service의 줄임말 입니다. AWS는 소위 클라우드 서비스라고도 합니다. 클라우드 서비스는 서버 등의 인프라스트럭쳐를 필요한대로 on demand로 사용할 수 있는 서비스 입니다. 즉, 유저가 직접 서버를 구입하고 설치할 필요 없이 AWS상에서 클릭 몇번으로 서버를 구축하고 사용할 수 있습니다. 웹서비스 배포를 위한 AWS 필수 개념 AWS가 제공하는 기능들은 굉장히 방대하고 다양합니다. 그 중 일반적으로 많이 사용되는 개념과 기능들은 다음과 같습니다. EC2 Security Group RDS Load Balancer (ALB) Route 53 S3 EC2 Elastic Compute Cloud AWS 상에서 사용하는 Server. EC2 서버에 API를 배포하..
-
TIL.75 RSETfulAPITIL 2020. 12. 22. 23:30
이번 라인프렌즈 클론 프로젝트 진행간 적용하였던 RESTfulAPI에 대해 다음주 바로 진행하는 티웨이항공 클론 프로젝트간 다시 한번 사용하게될 RESTfulAPI를 간략히 스터디 용도로 정리하고 추후 세부적으로 다뤄보도록 하자 먼저, RESTful API 란? 백엔드에서 API의 엔드포인트 구조를 표현하는 방식 중 의 하나!이다. (데이터를 어떻게 주고 받을지를 URL로 표현하는것을 레스트풀 api라 이해해도 좋다!!) RESTful API vs GraphQL API GraphOL API란? GraphQL 은 Graph Query Language 의 줄임말이다. Query Language 란 무엇인가? Query Language 는 정보를 얻기 위해 보내는 질의문(Query)을 만들기 위해 사용되는 C..
-
TIL.74 삼항 연산자TIL/Python 2020. 12. 21. 22:24
프로젝트 진행 간 if문으로 가지치는 방법이 싫어 찾아봤던 삼항 연사자를 간략히 정리해보자 1. 삼항 연산자(Ternary operators) # 참인경우 값 if 조건 else 거짓인경우 값 연산 대상의 개수에 따라 연산자를 분리하면 단항 연산자, 이항 연산자, 삼항 연산자로 분리 합니다. 단항 연산자는 부호(+, -), not 등이 있으며 +, -, *, / .... 등 대부분의 연산자가 이항 연산자 입니다. 삼항 연산자는 1개가 존재 합니다. 아래와 같이 QueryString 요청에 "P"가 포함될 경우에 따라 앞의 식을 실행하지 뒤의 식을 실행할지 정하는 식으로 사용할 수 있다. # A = apple / B = banana a_name = request.GET.get('P', None) produ..
-
TIL.73 Github / Git 충돌(Conflict) 발생 해결TIL 2020. 12. 20. 23:29
Git에서 master(main)의 brach를 만들고 작업을 하다보면 pull request 시 Confilct(충돌)이 나는 경우가 있다. (또는 Github에서도 확인이 가능하다) Conflict 발생이유 내가 pull origin main을 한 후 다른 작업자가 나와 같은 라인을 수정하고, 수정한 내역을 main과 Merge할 경우 발생한다. 이때 Git 충동을 해결하는 2가지 방법이 있다고 한다. 1. Merge --> Merge로 해결을 하였다. 2. Stash --> '책갈피' 개념으로 생각, 지금의 코드를 만들어내긴 했는데 뭔가 오류가 생기게 됩니다. 하지만 그렇다고 코드를 날려버리기엔 아까울 때, 백업 및 책갈피 개념으로서 이 명령어를 쓴다고 한다. Merge 나의 로컬 master(ma..
-
TIL.72 select_related 와 prefetch_relatedTIL 2020. 12. 19. 23:37
이전 JsonResponse를 활용하여 모든 데이터를 응답으로 보내보았다. codermun-log.tistory.com/category/TIL 'TIL' 카테고리의 글 목록 성실과 기본기를 중요시하는 백엔드 개발자입니다. codermun-log.tistory.com 하지만 언급하였듯 위와 같은 코드는 전혀 개발자스럽지 못한 코드이다. Django 의 ORM을 이용하여 DB에 접근하며 내가 원하는 정보를 가져와야한다. 이때 로직을 어떻게 구성하느냐에 따라 DB에 몇 번 접근해야하는지에 대한 효율을 따져볼 수 있게 된다. 당연히, DB에 자주 접근하게 될 수록 속도는 느려지며 비효율적인 코드라 할 수 있다. 또한, Django ORM을 이용해 DB에 접근하여 Queryset objecst를 가져올때 얼마나 ..
-
TIL.71 JsonResponse 활용TIL 2020. 12. 18. 21:53
프로젝트 진행 중 확인한 내용으로 어떻게 JsonResponse 활용할 수 있는지 알아보자. JsonResponse JsonResponse(data, encoder=DjangoJSONEncoder, safe=True, json_dumps_params=None, **kwargs) HttpResponse의 subclass로, JSON-encoded response를 생성할수 있게 해 줌. 대부분의 기능은 superclass에서 상속받음 첫번째 인자로는 전달할 데이터로서 반드시 dictionary 객체여야 함. 디폴트 Content-type 헤더는 application/json임 encoder는 데이터를 serialize할 때 이용됨. json_dumps_params는 json.dumps()에 전달할 딕셔너리..