일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Coroutine
- F객체
- database
- 백준
- dry-yasg
- Continuous Delivery
- Continuous Deployment
- Prefetch_related
- DRF
- to_attr
- nestedfunction
- 도커
- DjangoRestFramework
- Transaction
- Git
- racecondition
- django
- EC2
- DjangoCache
- QuerySet
- annotate
- CD
- aws
- testcase
- 코루틴
- Python
- CI
- aggregate
- docker
- apitestcase
- Today
- Total
목록Django (12)
BackEnd King KY

values를 이용해 annotate 조금 더 이해하고 쓰기 티스토리가 불편하실 경우, Github에서도 보실 수 있습니다. 포스팅 계기 어제 파이콘에서 SQL원리를 알고 쓰는 aggregate와 annotate 세션 시간이 있었는데(정확한 제목 기억 안남), 그 때 "내가 이걸 쓰고 있지만 이걸 조금 더 최적화에서 쓸 수 있었구나!" 라는 걸 느끼게 한 세션이었습니다. 그래서 이번에 포스팅으로 남겨, 다른 사람에게 도움이 되었으면 좋겠고 나부터 최적화된 SQL쿼리를 만들기 위해 지금보다 더 생각하며 코드를 작성해야겠다고 생각했습니다. annotate() 제 개인적으론 Group By부터 ORM으로 구현하기 까다롭다고 생각하는 레벨이라 이 부분 특히 한 번 더 포스팅하면 좋겠다고 생각이 들었습니다. 예를..

drf-yasg 저는 이전까지 API문서화의 경우, Postman을 주로 사용했었습니다. 혼자 틈틈히 FastAPI를 할 때 Swagger라는 것에 대해 알게 되었고, 지금 회사에 들어가고 나서는 swagger를 사용해서 본격적으로 사용하게 되었는데요. yasg는 Yet Another Swagger Generator의 약자로 또 다른 Swagger 생성기 라는 의미를 가지고 있습니다. 다만, drf-yasg를 사용하지 않고 직접 yaml 파일을 만들어 사용하고 있지만 drf-yasg도 알아두면 좋을 것 같아서 해보게 되었습니다. 현재 개인적으로 진행하고 있는 해당 프로젝트에서 사용하고 있으니, 더 자세한 내용이나 코드는 해당 프로젝트를 클릭하여 들어가시면 됩니다. 출처는 drf-yasg Git Repos..

DRF APITestCase Django에서 기본적으로 TestCase를 이용해 테스트를 할 수 있도록 제공하는 Unit Test가 있지만, DRF에서는 그에 상응하는(?) 기능으로 APITestCase가 있습니다. 사용해보니, Django에서 제공하는 기본적인 단위테스트와는 동일합니다. View 우선, 테스트를 하기 위해 View로직을 알아야 합니다. API는 영화리스트 조회(MovieListView), 특정 영화조회(MovieDetailView) 두 개가 있습니다. 여기선 MovieListView의 테스트 경우만 보겠습니다. MovieListView Test 영화 리스트의 경우, 위의 이미지같은 형태로 나오게 됩니다. 그러면 테스트 코드 역시, 값을 비교할 때 위와 같은 형태가 나와야 한다는 의미입니..

기본세팅이 되었으니, 채팅을 할 수 있는 방을 만들어보겠습니다. chat/templates/chat에 room.html 파일을 생성하고 코드는 아래와같이 입력합니다. {{ room_name|json_script:"room-name" }} 만든 html을 불러올 수 있게 views.py에도 로직을 짜야겠죠? views.py에 아래와 같이 입력해줍니다. def room(request, room_name): return render(request, 'chat/room.html', { 'room_name': room_name }) 그 다음, 요청을 보낼 수 있게 URL을 설정해야 합니다. from django.urls import path from . import views urlpatterns = [ path..

✔️Intro 이전 포스팅인 WSGI & ASGI에서 동기/비동기에 대해 알아봤는데, 바로 이걸 위한 빌드업이었습니다. Django Channels란, 비동기 형태의 view를 제공하며, HTTP뿐만 아니라 기간 연결이 필요한 프로토콜(WebSocket, MQTT, 챗봇 등)도 처리할 수 있습니다. 공식문서를 참고하여 한 번 구현해보겠습니다. ✔️Install 아래 명령어를 입력하여, Channels를 설치해줍니다. python -m pip install -U channels 그다음 settings.py의 INSTALLED_APPS에 channels를 추가해줍니다. INSTALLED_APPS = [ 'django.contrib.auth', ... 'channels' ] 추가되었다면, asgi.py에 ap..

✔️Cache 웹 사이트를 이용해보며 한 번쯤은 캐시라는 단어에 대해 들어보셨을 겁니다. 저 역시 개발자가 되기 이전에도 캐시에 저장한다 같은 말은 들어봤었고, 개발자가 되어 직접 사용할 일이 생겼습니다. 그래서 공부할 겸 포스팅도 진행하게 되었습니다. 캐시란 데이터나 값을 미리 복사해 놓는 임시 장소를 말합니다. 기존의 데이터에 접근하는 데 시간이 오래 걸릴 경우 값을 미리 복사해 놓으면 더 빠르게 계산이나 접근 시간을 줄여줄 수 있다는 장점이 있습니다. 이 부분은 장고 캐시 공식문서에 아래와 같이 나와 있습니다. Each time a user requests a page, the web server makes all sorts of calculations – from database queries t..

✔️ Intro Django는 비밀번호 관리를 위해 다양한 기능들을 제공합니다. 오늘은 어떻게 Django가 비밀번호를 저장하는지, 어떻게 스토리지 해싱을 구성하는지 알아보겠습니다. 그리고 해쉬화된 비밀번호와 함께 작동하는 유용한 기능들에 알아보겠습니다. 모든 출처는 공식문서입니다. ✔️ How Django stores passwords Django는 능동적인 비밀번호 저장 시스템을 제공하며, 기본적으로는 PBKDF2라는 걸 기본옵션으로 사용합니다. PBKDF2는 암호화 함수 중 하나입니다. 일단 지금은 저장 시스템 중 하나로 PBKDF2라는 걸 사용하는구나 정도로 알고 계시면 될 것 같습니다. Django auth에서 제공하는 기본적인 User 모델의 비밀번호는 아래와 같은 형태를 보입니다. $$$ ..

Intro 객체지향을 공부하실 때 다형성은 많이 들어보셨을겁니다. 이 다형성이라는 단어를 영어로 바꾸면 바로 Polymorphic이 됩니다. 정확한 단어는 phism인데, 이 부분은 유도리있게 넘기도록 하겠습니다. 하나의 객체가 여러 가지 타입을 가질 수 있다는 뜻인데, 요즘 이 부분에서 문제가 생겨서 작업에 들어갈 예정입니다. 그래서 미리 공부할 겸 포스팅하게 되었습니다. 모든 출처는 공식문서입니다. Polymorphic Start! 첫 번째로, django-polymorphic을 설치해줍니다. pip install django-polymorphic 두 번째로, settings.py의 INSTALLED_APPS에 설치한 polymorphic을 추가해줍니다. INSTALLED_APPS = [ ..., "..