본문 바로가기

Study/Django18

[Django] Locust를 활용한 부하 테스트(Load Testing) 이번 포스팅에서는 Locust를 활용하여 Django 프로젝트에 대해 부하 테스트를 하는 방법에 대해 소개해보려 합니다!부하 테스트(Load Testing)란?한 마디로, 부하 테스트란 아래 질문에 대한 테스트입니다.시스템에 임계점의 부하가 계속될 때 문제가 없는가? 목적 : 시스템의 신뢰도와 성능을 측정Locust란?Locust는 오픈 소스 부하 테스트 도구로, 파이썬 언어로 테스트 시나리오를 간편하게 작성할 수 있습니다.쉽게 말해, 내가 만든 서버에 수많은 사용자들이 동시에 들어올 때 어떤 일이 벌어지는지를 확인하는 도구입니다! 구체적인 내용은 아래 공식 문서를 참고해주세요~!https://locust.io/ Locust.ioAn open source load testing tool. Define u.. 2024. 11. 8.
[Django] REST API를 이용하여 게시판 기능 구현하기 (with Postman) 웹 애플리케이션에서 가장 흔하게 사용되는 기능 중 하나가 바로 게시판이죠!  사용자가 게시글을 작성하고, 읽고, 수정하고, 삭제할 수 있는 이러한 CRUD(Create, Read, Update, Delete) 기능은 웹 개발의 기본입니다.  이번 포스팅에서는 Django의 강력한 기능 중 하나인 Django REST Framework(DRF)를 활용하여 REST API 기반의 게시판 기능을 구현하는 방법을 다룰 것입니다.   또한, API의 테스트와 검증을 위해 Postman이라는 API 테스트 도구를 사용해, 실시간으로 API를 호출하고 결과를 확인하는 과정도 함께 살펴보겠습니다!프로젝트 준비Postman 설치하기https://www.postman.com/downloads/ Download Postma.. 2024. 10. 23.
[Django] Django에서 올바르게 404 not found 에러 응답하기 클라이언트가 어떠한 요청을 보냈을 때, 요청한 데이터가 DB에 존재하지 않는 경우 django는 404 Not Found 에러를 발생시킵니다. 그러나 코드 작성 방식에 따라, 위와 같은 상황에 404 응답이 아닌 500 응답을 발생시키는 경우가 있습니다.500 상태 코드는 서버 오류를 의미하므로, 명확한 에러 응답이 아니며, 사용자에게 혼란을 줄 수 있습니다. 이번 포스팅에서 이 문제를 해결하기 위해 Django에서 404 응답을 올바르게 처리하는 방법을 살펴보겠습니다.Django Shortcuts functionDjango는 개발자의 편의를 위해 몇 가지 유용한 shortcuts 함수들을 제공합니다.render()redirect()get_object_or_404()get_list_or_404()이름을 .. 2024. 10. 17.
[Django] Django seed로 테스트 데이터 자동 생성하는 법 django로 개발할 때, 테스트 데이터가 필요할 때가 있습니다.이 때 손수 하나하나 넣어주는 건 시간적으로 매우 비효율적이죠. 그럴 때 쓸 수 있는 테스트 데이터 자동 생성 라이브러리!django-seed를 소개합니다~!Django-seed 사용 방법1. 터미널에서 django-seed 설치하기pip install django-seed 2. psycopg2도 함께 설치하기pip install psycopg2django-seed만 설치하고 테스트 데이터 생성을 시도하면, 아래와 같은 에러가 발생 3. settings.py의 INSTALLED_APPS에 등록하기# settings.pyINSTALLED_APPS = [ ..., 'django_seed', ...,] 4. 테스트 데이터 만들기p.. 2024. 10. 16.
[Django] Django로 CRUD를 구현해보자 C.R.U.D란 Create, Read, Update, Delete를 의미하는 약어입니다. 이번 포스트에서는 Django로 CRUD를 구현하는 과정을 A-Z까지 정리해보겠습니다!초기 환경 설정1. 가상 환경 설치$ python -m venv venv$ source venv/Scripts/activate  2. django 설치$ pip install django# 패키지 설치 후 requirements.txt에 기록$ pip freeze > requirements.txt 3. crud 프로젝트 생성$ django-admin startproject crud . 4. article 앱 생성 및 등록$ python manage.py startapp articlessettings.py의 INSTALLED_APP.. 2024. 9. 28.
[Django] Django에서 이미지 파일 업로드 및 제공, 수정 기능 추가하기 본 포스트는 Django에서 이미지 파일을 사용자로부터 업로드 받고, 업로드 받은 파일을 사용자에게 제공 및 수정하는 기능을 추가하는 방법을 정리한 것입니다. 그 과정을 순서대로 알아봅시다!사전 준비 사항1. settings.py에 MEDIA_ROOT, MEDIA_URL 설정MEDIA_ROOT : 미디어 파일들이 위치하는 디렉토리의 절대 경로MEDIA_URL : MEDIA_ROOT에서 제공되는 미디어 파일에 대한 주소를 생성# settings.pyMEDIA_ROOT = BASE_DIR / 'media'MEDIA_URL = 'media/' 2. 작성한 MEDIA_ROOT와 MEDIA_URL에 대한 URL 지정업로드 된 파일의 URL == settings.MEDIA_URLMEDIA_URL을 통해 참조하는 파.. 2024. 9. 28.
[Django] Django에서 만난 에러 모음 Django를 다루다보면 다양한 에러를 마주하게 됩니다.제가 만난 에러는 어떤 것들이 있고, 무엇이 문제였는지 알아보겠습니다!에러 종류NoReverseMatchURL 태그 잘못 썼을 때 (오타 가능성)제일 많이 나오는 가장 괴로운 에러.. 대부분 오타가 이유입니다 ㅠㅠOperationalErrormigrate 안 했을 때ValueErrorview 함수 return 빠뜨렸을 때ModelForm 클래스 안에서 Meta를 meta로 오타 냈을 때TypeErrorpk 인자를 안 받았을 때Article.objects.get으로 안 받고 request.POST.get으로 받았을 때TemplateDoesNotExistreturn render(request, 'restaurants/detail.html', contex.. 2024. 9. 27.
[Django] django-html에서 자동 완성이 안될 때 해결법 어느 순간 django-html에서 자동 완성이 안되는 현상이 발생했습니다.이 경우, 어떻게 해결할 수 있는지 공유해보려합니다!해결 방법1. File -> Preferences -> Settings를 들어갑니다.  2. 검색창에 "emmet include"를 검색합니다. 3. Emmet: Include Languages 부분에 Item으로 django-html이 있는지 확인합니다. django-html이 없다면, 아래와 같이 추가합니다. 2024. 9. 24.