https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 접근법 최대한 다양한 종류의 폰켓몬을 가지길 원하기 때문에, 최대한 많은 종류의 폰켓몬을 포함해서 N/2마리를 선택하려 합니다. 최대로 가질 수 있는 포켓몬은 n의 길이의 //2, 그러나 중복된 경우는 가질 수 없기 떄문에 set을 통해 배열의 중복을 제거해주고 최대로 가질 수 있는 값들을 비교해줍니다 def solution(nums): answer = 0 n = len(nums)//2 num..
전체 글
읽기 쉬운 코드를 짜기 위해 노력합니다. 좋은 코드는 단순하고 이해하기 쉬워야 한다고 생각합니다.시작 날짜와 끝 날짜 데이터를 받아와서 날짜별 필터링을 하는 것은 많은 곳에서 쓰이는 방법이다 start_date = request.query_params.get('start_date') end_date = request.query_params.get('end_date') filter(created_at__range=(start_date, end_date)) 나도 이렇게 쿼리를 받아와서 filter을 걸었는데 필터링이 원하는 대로 하루가 되는 것이 아닌 end_date 전 날 까지만 되는 상황이 발생했다 그러한 이유는 받아오는 시간이 YYYY-mm-dd 이니까 뒤에 시간대를 00으로 잡아서 필터링 걸기 때문이였다. 그래서 날짜에 하루를 추가하던가 range는 include하게 잡으니까 lte, gt를 사..
Setting.py INSTALLED_APPS = [ 'rest_framework_simplejwt', ] REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework_simplejwt.authentication.JWTAuthentication', ), } SIMPLE_JWT = { 'ACCESS_TOKEN_LIFETIME': timedelta(minutes=1), 'REFRESH_TOKEN_LIFETIME': timedelta(minutes=1), 'ROTATE_REFRESH_TOKENS': False, 'BLACKLIST_AFTER_ROTATION': False, 'UPDATE_LAST_LOGIN': False, 'ALGORITHM':..
F() F()는 model field의 값, 변환된 값, 주석이 달린 열을 나타냅니다. 모델 field의 값을 참조하고 실제로 db에서 python 메모리로 가져오지 않고 이를 사용해 db 작업을 할 수 있습니다. 대신 Django는 F()를 사용해서 db 수준에서 필요한 작업을 설명하는 SQL 표현식을 생성합니다. reporter = Reporters.objects.get(name='Tintin") reporter.stories_field += 1 reporter.save() 위 코드에서 db에서 reporter.stories_field의 값을 메모리로 끌어오고 python 연산자를 이용해서 작업한 뒤 다시 개체를 db에 저장했습니다. from django.db.models improt F report..
Resouce routing을 사용하면 특정 resource controller에 대한 모든 공통 경로를 신속하게 선언할 수 있습니다. index에 대해 별도로 경로를 선언하는 대신 유용한 경로는 한 줄의 코드로 경로를 선언합니다. -Ruby on Rails Documentation Rails와 같은 일부 웹 프레임워크는 들어오는 requests를 처리하는 login에 애플리케이션의 URL을 매핑하는 방법을 자동으로 결정하는 기능을 제공합니다. REST framework는 Django에 대한 자동 URL routing을 추가하고 view logic을 URL 세트에 연결하는 간단하고 빠르며 일관된 방법을 제공합니다. Usage SimpleRouter을 사용하는 간단한 방법 from rest_frmamewo..
라우팅이 response에 사용할 controller을 결정한 후에 controller가 response를 이해하고 적절한 출력을 생성하는 일을 담당합니다. - Ruby on Rails Documentation Django REST framework를 사용하면 관련 view에 대한 논리를 ViewSet이라는 단일 클래스에 결합 할 수 있습니다. 다른 framework에서는 'Resources'나 'Controllers'와 같은 이름의 개념적으로 유사한 구현을 찾을 수 있습니다. ViewSet class는 .get()또는 .post()와 같은 method를 제공하지 않고 대신 .list() 및 .create()와 같은 actions를 제공하는 class 기반 View입니다. ViewSet의 method h..
dict를 통해서 총 갯수를 구하는 total_count를 구현 중에 문득 len()은 db히트가 더 작은데 왜 시간이 더 느릴까에 대해 고민을 하게 됬다. django는 count() 메서드를 특별한 방시긍로 최적화하고 len()을 사용하면 QuerySet을 강제로 평가해서 필요하지 않은 경우에도 전체 결과를 가져오고 count()는 SQL의 COUNT 집계 함수를 사용해서 빠르게 결과를 가져오기 떄문에 count가 더 빠르다 아래는 우리 gpt 형님의 답변입니다 두 가지 방법을 비교하여 어떤 것이 "좋다"는 것은 맥락에 따라 다를 수 있습니다. 그러나 주로 Django의 QuerySet에는 count() 메서드가 이미 내장되어 있으므로 len() 함수 대신 count() 메서드를 사용하는 것이 더 효..
Django의 generic views는 일반적인 사용 패턴에 대한 지름길로 개발했습니다. view 개발에서 발견된 특정 공통 관용구와 패턴을 취하고 이를 추상화하여 반복할 필요 없이 데이터의 공통 view를 빠르게 작성할 수 있습니다. -Django Documentation class-bassed views의 주요 이점 중 하나는 재사용 가능한 동작을 구성할 수 있습니다. REST framework는 일반적으로 사용되는 패턴을 제공하는 사전 구축된 여러 보기를 제공함으로써 이를 활용합니다. REST framework에서 제공하는 generic views를 이용하면 database models에 밀접하게 매핑되는 API views를 빠르게 구축할 수 있습니다. generic views가 API의 요구 사..