일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Python
- redis
- 장고
- ERD
- 티스토리챌린지
- 자료구조
- JWT
- django
- github
- 코딩테스트
- Doker
- web
- CS
- flask
- nginx
- 파이썬
- 세션(Session)
- 도커
- 연습
- docker
- Wil
- viewsets
- git
- Til
- 아티클 스터디
- SQL
- NoSQL
- 쿠키(cookie)
- 개발공부
- 오블완
- Today
- Total
목록전체 글 (135)
SteadyDrills

241122 CSRF 토큰 사이트 간 요청 위조(Cross-Site Request Forgery)를 방지하기 위해서 만들어진 것이다. 또한, CSRF 토큰은 서버가 클라이언트에게 발급하는 고유한 문자열으로 사용자가 웹 애플리케이션에서 특정 요청을 보낼 때 포함되어야 하며, 서버는 이 토큰을 검증하여 요청의 진위를 확인한다. CSRF 토큰의 특징고유성: 각 사용자 세션에 대해 고유한 토큰이 생성되며, 동일한 토큰이 다른 사용자에게 사용되지 않도록 보장한다.일회성: 일반적으로 CSRF 토큰은 매 요청마다 다르게 생성되며, 이것을 이용해 재사용 공격을 방지할 수 있습니다.서버 측 저장: 서버는 발급한 토큰을 기억하고 있어야 하며, 요청 시 클라이언트가 보낸 토큰과 비교하여 검증한다. CSRF 토큰과 세션 기..
241121 힙(Heap)힙은 완전 이진트리 구조를 가지는 비선형 자료구조로, 특정한 정렬 조건(최대 힙 또는 최소 힙)을 만족한다.이러한 힙이 사용되는 곳은 그래프 알고리즘을 구현해 네트워크 경로 최적화, 지도의 최단 경로 계산 등에 사용되기도 하고, 데이터 스트림 처리를 구현해 주식, 실시간 센서 데이터 분석에도 사용된다. 힙(Heap)의 특징완전 이진트리: 모든 레벨이 완전히 채워져 있으며, 마지막 레벨은 왼쪽부터 채워짐.정렬 조건:최대 힙: 부모 노드가 자식 노드보다 크거나 같음.최소 힙: 부모 노드가 자식 노드보다 작거나 같음.효율적인 연산: 삽입과 삭제 연산은 O(log n) 시간 복잡도를 가짐. 힙(Heap)의 장단점 장점우선순위 큐 구현에 적합하다.최대/최솟값을 빠르게 찾을 수 있다.동적 ..
2401120FBV (Function-Based View) FBV는 뷰를 함수로 정의하여 요청을 처리하는 방식이다. 간단하고 직관적인 방법으로, 소규모 애플리케이션에 적합하다. 장점단순성: 간단한 로직을 구현할 때 직관적이며 이해하기 쉽다.명시성: 요청 처리 과정이 단계별로 명확하다.빠른 프로토타이핑: 빠르게 뷰를 작성할 수 있어 초기 개발에 유리하다. 단점재사용성 부족: 복잡한 로직이 필요한 경우 코드 중복이 발생할 수 있다.확장성 제한: 기능이 증가할수록 관리가 어려워질 수 있다.코드 예시from rest_framework.decorators import api_viewfrom rest_framework.response import Responsefrom rest_framework import st..

241118JWT(JSON Web Token)JWT(JSON Web Token)는 사용자 인증 및 정보 교환을 위해 사용되는 개방형 표준이다. JWT는 주로 웹 애플리케이션에서 클라이언트와 서버 간의 인증 정보를 안전하게 전달하는 데 사용한다.JWT의 사용자 인증을 보다 간편하고 안전하게 처리하기 위해 만들어졌으며, 특히 마이크로서비스 아키텍처와 같은 분산 시스템에서의 인증 문제를 해결하고, 클라이언트와 서버 간의 정보 교환을 표준화하기 위해 도입되었다. JWT의 구조헤더(header): 토큰의 유형과 서명 알고리즘을 정의.페이로드(payload): 사용자 정보 및 클레임(claims) - (전반적인 토큰 관련 정보, 속성)을 포함.서명(signature): 헤더와 페이로드를 기반으로 비밀키로 생성..

241117 RESTful 아키텍처 웹 기반 시스템을 설계하기 위한 소프트웨어 아키텍처 스타일로, "Representational State Transfer"의 약자이다.REST는 HTTP 프로토콜을 기반으로 하며, 클라이언트와 서버 간의 통신을 효율적으로 수행하는 데 중점으로 만들어졌다. 자원 기반자원은 URI(Uniform Resource Identifier)를 통해 식별된다. JSON, XML, HTML 등 다양한 형식으로 표현될 수 있으며, 클라이언트는 자원의 표현을 요청하고, 서버는 해당 표현을 반환한다.무상태성(Stateless)서버의 부하를 줄이고, 확장성을 높이기 위해, 요청은 각각 독립적으로 처리되며, 서버는 클라이언트의 상태를 기억하지 않는다. 이때 클라이언트는 필요한 모든 정보(인증,..

241115 데큐 (Deque)데큐는 Double-Ended Queue의 약자로, 양쪽 끝에서 데이터를 추가하거나 제거할 수 있는 선형 자료구조다. 즉, FIFO와 LIFO(Last In, First Out) 모두 지원할 수 있다. 배열 기반 데큐인덱스를 통한 빠른 접근이 가능하지만, 양쪽 끝에서의 삽입과 삭제를 지원하기 위해 추가적인 처리가 필요할 수 있다.양쪽 끝에서 삽입 또는 삭제 시, 요소를 이동해야 하므로 성능 저하가 발생할 수 있다.링크드 리스트 기반 데큐양쪽 끝에서의 삽입 및 삭제 모두 O(1)로 빠르며, 메모리 사용이 유연하다.링크드 리스트의 포인터로 인해 메모리 오버헤드가 발생할 수 있다. 장점양쪽 끝에서의 삽입 및 삭제가 가능하여 유연한 데이터 처리가 가능하다.스택과 큐의 기능을 모두..

241114 큐 (Queue) 저장하는 선형구조이다. FIFO(First In, First Out) 방식으로 작동하며,배열(Array) 또는 연결 리스트(Linked List)를 사용하여 구현할 수 있다. 배열을 이용한 큐 구현배열을 사용한 큐 구현은 고정된 크기를 가지며, 인덱스를 사용하여 요소를 관리한다. 배열의 크기를 초과할 경우, 큐는 오버플로우가 발생할 수 있다.연결 리스트를 이용한 큐 구현연결 리스트를 사용한 큐 구현은 동적으로 크기를 조절할 수 있으며, 노드를 추가하거나 제거하는 데 유리하다. 이 방식은 메모리 효율성이 높고, 오버플로우 문제를 피할 수 있다. 장점순서대로 데이터를 처리할 수 있어, 작업의 순서를 유지할 수 있다.멀티태스킹 시스템에서 프로세스 관리에 유용하다.단점한쪽 끝에..

2401113 소프트웨어 설계 패턴소프트웨어 설계 패턴은 소프트웨어 개발 중 자주 직면하는 문제를 해결하기 위한 유용한 솔루션이다. 이 패턴들은 소프트웨어의 구조와 유지보수성을 개선하는 데 초점을 맞추고 있으며, 설계 패턴을 잘 활용하면 효과적이고 유연한 소프트웨어를 제작할 수 있다. 생성 패턴 (Creational Patterns)생성 패턴은 객체 생성 메커니즘을 다루며, 객체의 생성 과정을 추상화하여 코드의 유연성과 재사용성을 높이는 형식이다. 싱글턴 패턴 (Singleton Pattern): 클래스의 인스턴스가 오직 하나만 존재하도록 보장.팩토리 메서드 패턴 (Factory Method Pattern): 객체 생성의 인터페이스를 정의하고, 서브클래스에서 어떤 객체를 생성할지를 결정.추상 팩토리 패턴..