본문 바로가기

Python46

웹보안을 위해 쿠키, 세션, 해시 그리고 JWT (Django 관점) 웹 보안의 핵심: 쿠키, 세션, 해시 그리고 JWT (Django 관점)웹 애플리케이션에서 사용자 인증과 권한 부여, 그리고 사용자 경험을 관리하는 것은 매우 중요한 문제입니다. 이러한 문제를 해결하기 위해 쿠키, 세션, 해시, JWT와 같은 다양한 기술들이 사용됩니다. 이 글에서는 이러한 기술들이 무엇이고, 어떻게 작동하는지, 그리고 Django 프레임워크에서 어떻게 사용되는지 자세히 알아보겠습니다. 1. 쿠키 (Cookie): '메모장'정의: 쿠키는 웹사이트가 사용자의 웹 브라우저에 저장하는 작은 텍스트 파일입니다.역할:사용자 식별: Django는 쿠키를 사용하여 사용자를 식별할 수 있습니다. (예: 세션 ID 저장)상태 유지: Django는 사용자 설정, 테마 선택, 장바구니 정보 등을 쿠키에 저장.. 2025. 1. 17.
DRF학습전 API, RESTful API 미리보기 Django에서 DRF로, 그 전에: API와 RESTful API 미리보기Django를 통해 웹 애플리케이션 개발의 기초를 다졌다면, 이제 API 개발이라는 새로운 영역에 발을 들여놓을 차례입니다. Django REST Framework(DRF)를 본격적으로 배우기 전에, API와 RESTful API라는 개념에 대한 이해는 필수적입니다. 이번 글에서는 DRF 학습에 앞서, API와 RESTful API의 핵심 내용을 간결하게 정리해 보려고 합니다.  API (Application Programming Interface), 왜 알아야 할까요?API는 프로그램끼리 소통하는 방법입니다. Django를 사용해 웹 페이지를 만들 때는 사용자와의 상호작용에 집중했지만, API는 프로그램 간의 상호작용을 위한 것.. 2025. 1. 16.
코드컨벤션을 위한 Black 설치법 코드컨벤션,  Black으로 깔끔하게 정리하기개발을 하다 보면 코드 작성만큼이나 중요한 것이 코드 스타일을 일관성 있게 유지하는 것입니다. 특히 여러 사람이 협업하는 프로젝트에서는 코드 스타일이 통일되지 않으면 가독성이 떨어지고, 코드 리뷰에도 어려움을 겪게 됩니다. 이러한 문제를 해결하기 위해 다양한 코드 포매터들이 존재하는데, 그중에서도 Black은 파이썬 코드 스타일을 자동으로 맞춰주는 강력한 도구입니다.  Black, 왜 사용해야 할까요?시간 절약: 코드 스타일을 직접 고민하고 수정하는 시간을 줄여줍니다. Black은 PEP 8 스타일 가이드라인을 따르면서도, 코드의 가독성을 최적화하는 방식으로 코드를 자동 포맷해줍니다.일관성 유지: 프로젝트 내 모든 코드의 스타일을 일관되게 유지하여 가독성을 높.. 2025. 1. 15.
Django form활용 유효성검사 Django 폼 유효성 검사 완벽 정리Django에서 폼을 통해 사용자 입력을 처리할 때, 데이터 유효성 검증은 필수적입니다. 이를 위해 Django는 request.method와 form.is_valid()라는 기능을 제공합니다.1. HTTP 요청 구분: request.method웹 페이지는 클라이언트(사용자의 브라우저)와 서버 간의 상호작용으로 이루어집니다. 이때 클라이언트가 서버에 특정 요청을 보낼 때 HTTP 메서드를 사용합니다. Django에서 가장 흔히 사용되는 메서드는 GET과 POST입니다.GET 요청:주로 웹 페이지를 요청할 때 사용됩니다. (예: 처음 페이지 접속, 링크 클릭)GET 요청 시에는 폼 데이터가 서버로 전송되지 않습니다.POST 요청:사용자가 폼에 데이터를 입력하고 제출할 .. 2025. 1. 14.
Django 객체 추상화(모델 클래스 상속) 객체 추상화: 모델 클래스 재사용의 핵심Django 모델을 설계하다 보면 여러 모델에서 공통적으로 사용되는 속성(예: 생성 시간, 수정 시간 등)을 발견하게 됩니다. 이러한 공통 속성을 매번 각 모델에 반복해서 정의하는 것은 비효율적일 뿐만 아니라 코드의 유지보수성을 떨어뜨립니다. 이때 객체 지향 프로그래밍의 핵심 개념 중 하나인 추상화가 빛을 발합니다.상속을 이용한 코드 재사용의 한계모델 클래스를 만들 때, 공통 속성들을 별도의 클래스로 만들고 이를 다른 모델 클래스들이 상속받도록 하는 방법은 언뜻 보기에 좋은 아이디어처럼 보일 수 있습니다. 예를 들어, 다음과 같이 TimeStampModel이라는 클래스를 만들어 모든 모델에 시간 관련 속성을 추가할 수 있습니다.#models.pyfrom django.. 2025. 1. 13.
Django RDBMS 코드예시 Django 모델링: 1:1, 1:N, N:M 관계 코드 예시Django에서 데이터베이스 모델링은 핵심적인 부분입니다. 데이터를 어떻게 구조화하고 저장할지 결정하며, 이는 앱의 기능과 성능에 큰 영향을 미칩니다. 이번 글에서는 Django 모델에서 가장 흔하게 사용되는 세 가지 관계(1:1, 1:N, N:M)를 코드 예시와 함께 자세히 알아보겠습니다.1. 1:1 관계 (One-to-One Relationship)1:1 관계는 두 테이블의 레코드가 정확히 하나씩 연결되는 관계입니다. 예를 들어, 사용자(User)와 사용자 프로필(UserProfile)이 1:1 관계일 때, 각 사용자는 하나의 프로필만을 가질 수 있으며, 각 프로필은 한 명의 사용자에게만 속하게 됩니다.코드 예시:from django.db .. 2025. 1. 10.