반응형

전체 글 136

장고 (djagno) Rest framework tutorial #1 데이터 가져오기 (GET)

RESTful API는 언제 사용하나? 웹 어플리케이션 간에 서버에서 데이터를 주고 받을 때 , 외부 서비스와 통합할 때( 지도, 결제처리, 메시징처리 등) , 클라이언트와 백엔드 서버간에 효율적인 통신을 구축할 때 , 다른 서버와의 통신이 필요할 때 등 RESTful API를 사용하면 데이터의 공유와 상호 작용을 효율적으로 관리하고, 서로 다른 시스템 간의 통신을 단순화할 수 있습니다. DRF (djangorestframework) 장고기반 웹 어플리케이션에서 RESTful API를 만드는 것을 도와주는 패키지 아주 간단한 API 만들어보기 1. 장고 프로젝트 생성 django-admin startproject myproject cd myproject 2. DRF 설치 pip install django..

장고 (django) 캐시 사용하기 (redis)

2023.08.31 - 장고 (django) 캐시 사용하기 (memcached) 장고 (django) 캐시 사용하기 (memcached) 데이터역량 키우는 하루하루의 기록 hanawithdata.tistory.com memcached 사용하는 방법은 이전 글 참고해주세요! 설치 및 설정 단계 1. 패키지 설치 pip install redis==4.3.4 2. settings.py 에 캐시 설정 CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.redis.RedisCache', 'LOCATION': 'redis://127.0.0.1:6379', } } 3. Redis 도커 컨테이너 실행 docker run -it --rm --name redis..

장고 (django) 캐시 사용하기 (memcached)

이전글 참고: 2023.08.30 - 메모리 계층 구조와 In-Memory DB (Redis) 특징 메모리 계층 구조와 In-Memory DB (Redis) 특징 데이터역량 키우는 하루하루의 기록 hanawithdata.tistory.com 캐시에 대해서 궁금하다면 위 글을 참고해보고 오는것을 추천합니다. 캐시 사용하는 이유 웹페이지를 동적으로 구성하면, 실시간으로 database에서 값을 불러오고 계산해야하는 경우가 있는데 트래픽이 많은 웹사이트같은 경우 처리비용이 많이 듭니다. 이때 자주 사용되는 계산 값은 db에 가지 않고 빠르게 불러오기 위해 캐시에 저장해두고 사용하면 응답속도나 비용을 효율화 할 수 있습니다. 장고에서 HTTP요청시 캐시 프레임워크가 동작하는 순서 1. 캐시에서 요청된 데이터를 ..

메모리 계층 구조와 In-Memory DB (Redis) 특징

대표적인 데이터베이스의 종류 2가지 RDB (관계형 데이터베이스) 엑셀처럼 행과 열이 존재함 SQL이라는 언어를 사용해서 접근할 수 있음 MySQL, PostgresSQL등이 있음 HDD나 SSD같은 보조기억 장치에 데이터를 저장함 NoSQL HDD나 SSD같은 보조기억 장치에 데이터를 저장 key-value의 방식으로 데이터를 저장 데이터의 형식이 정해져있지 않아 구조 변경이나 데이터 형식 변경이 쉬움 MongoDB, Elasticsearch 등이 있음 In-Memory DB Memory 같은 주 기억 장치에 데이터를 저장 NoSql에 속하는 데이터 베이스로 key-value 형식으로 데이터를 저장 (RDB에도 인메모리 db 있긴함) Memory의 특성 때문에 데이터가 휘발성이며, I/O 속도가 매우 ..

장고 (django) 클래스 기반 뷰에서 믹스인 사용하기 (mixin)

공식 문서: https://docs.djangoproject.com/en/4.1/topics/class-based-views/mixins/ Mixin 역할 재사용 가능한 기능을 클래스에 추가하여 코드를 모듈화 하고 뷰, 모델 등의 클래스에서 코드 중복을 줄이는데 사용된다. 클래스 기반 뷰에서 사용되며, 자주 사용되는 Mixin으로는 'LoginRequireMixin', 'PermissionRequireMixin', 'FormMixin' 등이 있다. 이러한 Mixin 클래스를 사용하여 로그인 요구사항, 권한 확인, 폼 처리등의 기능을 뷰에 추가할 수 있다. 사용 예시 'LoginRequireMixin' from django.contrib.auth.mixins import LoginRequiredMixin ..

장고 (django) get_queryset() 역할

get_queryset() 데이터베이스에서 조회된 결과를 반환하는 쿼리셋을 커스텀하는데 사용되는 메서드로 보통 클래스 기반 뷰에서 사용된다. 주로 ListView에서 보여질 리스트 항목을 필터링 또는 정렬하는데 사용된다. 예를들어 todo list를 출력할 때 로그인한 유저의 목록만 가져온다던지, 상품 관리 리스트에서 로그인한 판매자의 품목만 가져온다던지 하는 등에 유용하게 사용 된다. from django.views.generic import ListView from .model import Todo class TodoListView(ListView): model = Todo def get_queryset(self): qs = super().get_queryset() #원하는 쿼리셋 로직을 작성하여 반..

인덱스, 트랜잭션, 무결성

인덱스 테이블의 검색 속도를 향상시키기 위한 자료구조 장점: 검색 속도 향상 단점 인덱스를 저장하기 위한 추가적인 공간 필요 잘못 사용할 경우 오히려 비효율적인 검색 인덱스로 사용하면 좋은 컬럼 규모가 작지 않은 테이블 자주 inser, update, delete가 발생하지 않는 컬럼 → 자주 변경이 발생하지 않는 컬럼, 유지비용 절감 join , where, order by 에 자주 사용되는 컬럼 → 정렬, 검색, 조인에서 효율을 높일 수 있음 데이터의 중복도가 낮은 컬럼 예를 들어 검색 조건에 자주 사용되는 주문 번호, 사용자 ID, 날짜 조건 등등이 포함되는데 인덱스의 생성, 업데이트, 삭제등에 오버헤드가 발생할 수 있기 때문에 필요한 인덱스만 잘 설정하고 데이터베이스의 사용 패턴과 요구사항을 고려..

장고 (django) model multiple select choices (항목 여러개 선택하는 모델 만들기)

모델에서 선택지 필드를 만들 수 있는데, 단일 선택이 아닌 다중 선택이 가능하도록 변경한 내용을 남겨두려고 한다. https://pypi.org/project/django-multiselectfield/ django-multiselectfield Django multiple select field pypi.org 파이썬의 django-multiselectfield 패키지를 사용했다. [변경 전 코드] from django.contrib.auth.models import User from django.db import models # Create your models here. class Routine(models.Model): days_of_week = ( (0, 'Mon'), (1, 'Tue'), (2..

파이썬 딕셔너리 모듈 (defaultdict, Counter)

파이썬에서 제공하는 딕셔너리 관련해서 편리한 모듈 세가지를 알아보자 1. defaultdict 딕셔너리에서 입력되지 않은 키로 조회하는 경우 에러가 발생하는데, defaultdict로 정의하면 입력되지 않은 키로 조회할 경우 default값으로 조회된다. defaultdict( 정의하고 싶은 디폴트 값 ) import collections a = collections.defaultdict(int) a['A'] # 출력 > 0 a = collections.defaultdict(float) a['A'] # 출력 > 0.0 a = collections.defaultdict(bool) a['A'] # 출력 > False a = collections.defaultdict(str) a['A'] # 출력 > '' a..

(파이썬 자료형) 가변 객체 & 불변 객체

파이썬은 모든 것이 객체이다. 자료형 또한 객체로 되어 있는데, 크게 가변 객체와 불변 객체로 나뉜다. 클래스 설명 불변 객체 bool 부 울 o int 정수 o float 실수 o list 리스트 x tuple 튜플 o str 문자 o set 집합 x dict 딕셔너리 x 불변 객체 파이썬은 모든게 객체로 실제로 int , bool, str등의 값을 가지고 있는 객체는 변하지 않고 변수는 참조일 뿐이다. 아래 예시를 보면, 1. a는 숫자 10을 참조 2. b는 a를 참조 -> 10, a, b 모두 메모리 상의 객체 주소가 동일한 것을 알 수 있다. (+) 주의할 점 b = 12 로 재 참조했을 때, b의 주소는 숫자 12의 주소와 같아지지만 여전히 a는 10 객체주소를 참조하고 있다. 이렇게 한번 생..

반응형