세션과 쿠키의 작동 방식: Django에서 로그인 시, 사용자의 세션 정보는 서버의 데이터베이스에 저장됩니다. 이 세션에는 랜덤으로 생성된 세션 ID가 포함되어 있습니다. 서버는 이 세션 ID를 쿠키에 담아 브라우저로 보냅니다. 브라우저는 이 쿠키를 저장하고, 이후 동일한 도메인으로 요청을 보낼 때마다 이 쿠키를 함께 전송합니다. 도메인 기반 쿠키: 쿠키는 도메인을 기준으로 작동합니다. 특정 도메인에서 생성된 쿠키는 해당 도메인에 대한 요청 시에만 브라우저에 의해 전송됩니다. 이는 보안과 관련된 중요한 특징입니다. CORS 설정: 프론트엔드(예: React)와 백엔드(Django)가 다른 도메인 또는 포트에서 실행될 때, 백엔드에 대한 AJAX 요청을 위해 CORS_ALLOWED_ORIGINS 설정이 필..
Django는 사용자 인증 및 관리를 위해 여러 유틸리티 함수를 제공합니다. check_password, set_password, authenticate, login, logout 함수들을 예시로 들 수 있습니다. 1. check_password() 용도: 사용자의 비밀번호가 입력된 비밀번호와 일치하는지 확인합니다. 예시: from django.contrib.auth.models import User user = User.objects.get(username='myusername') if user.check_password('mypassword'): print("비밀번호가 일치합니다.") else: print("비밀번호가 일치하지 않습니다.") 2. set_password() 용도: 사용자의 비밀번호를 ..
Django Rest Framework에서 serializer에서 각 필드에 대한 validation 로직을 추가할 수 있습니다. 검증을 위한 메서드 명은 validate_필드이름 라고 작성하고 검증할 로직을 구현하면 됩니다. 예 간단한 방 정보를 다루는 예시를 통해서 사용법을 설명하겠습니다. 모델 class Room(model.Model): name = models.CharField(max_length=100) price = models.PositiveIntegerField() description = models.TextField() 시리얼라이저 class RoomSerializer(serializers.ModelSerializer): class Meta: model = Room fields = ["..
변수는 일반적으로 데이터를 저장할 수 있는 메모리 공간을 의미합니다. 다만, 파이썬에서의 변수는 C, 자바 같은 컴파일 언어에서의 변수와는 차이가 있습니다. 자바의 변수 자바를 예로 들면 자바는 변수를 선언하면서 선언된 자료형 만큼의 메모리를 확보합니다. 더 정확하게 말하면 원시 타입(Primitive Type)에 해당하는 변수(int, double, boolean 등)를 선언하면 선언된 타입만큼의 크기의 영역을 Stack 메모리에 선언합니다. 그리고 객체와 메서드 같은 참조형 타입(Reference type)은 Heap 메모리에 실질적인 데이터가 저장되고 그 데이터의 주소값이 stack 메모리에 저장되는 형태입니다. 파이썬의 변수 하지만 파이썬의 변수는 다릅니다. 파이썬에서 변수는 타입에 의해 선언되는..
deque 모듈 deque(데크, double-ended queue) 모듈은 양쪽 끝에서 삽입과 삭제가 가능한 자료구조입니다. 즉, 스택과 큐를 모드 지원하는 모듈로 Python의 collections 모듈에서 제공됩니다. deque를 사용하기 위해서는 리스트와 비슷한 형식으로 데이터를 저장해야 합니다. 기본적인 사용법 Import 방법 from collections import deque 생성 d = deque([1, 2, 3, 4]) 삽입 / 삭제 for i in range(5): deque_list.append(i) # 오른쪽 끝에 삽입 print(deque_list) # deque([0, 1, 2, 3, 4]) deque_list.pop() # 오른쪽 끝 요소 삭제 print(deque_list)..
Django 소유자 여부 확인(DRF) Room 모델이 있고, 각 방은 owner가 있습니다. 방 정보를 조회하는 API를 만들려고 하는데, 로그인한 사용자가 각 방의 owner인지 여부를 확인하려고 합니다. models.py from django.db import models from django.contrib.auth.models import User class Room(models.Model): name = models.CharField(max_length=100) owner = models.ForeignKey(User, on_delete=models.CASCADE) serializers.py from rest_framewok import serializers from .models import R..