CS(21)
-
웹 인증의 이해: 쿠키, 세션, 토큰 그리고 JWT
1. 들어가며웹 인증이란 무엇인가?웹 인증은 사용자가 누구인지 식별하고, 그 사용자에게 적절한 접근 권한을 부여하는 과정을 의미한다.이 과정은 보안의 핵심으로, 사용자가 웹 애플리케이션에 로그인하거나 특정 리소스에 접근할 때 반드시 필요하다. 웹 인증의 기본 흐름1. 사용자가 자신의 정보를 입력하여 서버에 인증 요청을 보낸다.(ex: ID, 비밀번호)2. 서버는 이 정보를 확인하여 사용자가 신뢰할 수 있는 대상인지 판단한다.3. 인증이 완료되면, 서버는 이후 요청을 처리하기 위해 인증 상태를 유지하는 메커니즘을 제공한다. 여기서 인증 상태를 유지하는 다양한 방법으로 쿠키, 세션, 토큰이 사용된다.특히 JWT와 같은 토큰 기반 인증 방식이 주목을 받고 있다. 쿠키, 세션, 토큰, JWT를 다루는 이유웹 인..
2025.01.21 -
[알고리즘] 백트래킹(Backtracking)
1. 백트래킹(Backtracking)이란?백트래킹은 완전 탐색의 한 방법으로, 가능한 모든 경우를 탐색하지만, 불필요한 경로를 조기에 배제(가지치기, Pruning)하여 효율성을 높이는 알고리즘이다.기본 아이디어: 현재 상태에서 유망하지 않은 경로를 탐색하지 않고 이전 단계로 돌아가 다른 경로를 시도특징- DFS(깊이 우선 탐색)를 기반으로 함- 가지치기 기법을 활용해 탐색 공간을 줄임장단점- 장점 - 가능한 모든 해를 탐색하므로 정확한 해를 보장 - 문제의 구조를 단순화하여 구현 가능- 단점 - 상태 공간이 클 경우, 탐색 시간이 급격히 증가 - 가지치기가 적절하지 않으면 비효율적시간 복잡도- 시간 복잡도는 문제의 상태 공간 크기에 따라 결정되며, 최악의 경우 O(b ^ d) (b는 선..
2025.01.04 -
[자료구조] List Map Set의 차이와 활용(Java)
1. List Map Set이란?Java 컬렉션 프레임워크에서 제공하는 List, Map, Set은 데이터를 저장, 관리, 처리하기 위한 기본 인터페이스이다.각 인터페이스는 서로 다른 특징과 용도로 설계되어 있으며, 상황에 따라 적합한 것을 선택해 사용할 수 있다.2. List Map Set의 차이구분ListSetMap정의순서가 있는 데이터의 집합중복을 허용하지 않는 데이터의 집합키-값(Key-Value) 쌍으로 데이터를 저장중복 허용OX키는 중복 X, 값은 중복 O순서 유지O (인덱스로 접근 가능)X (일부 구현체는 유지)X (키를 기준으로 접근 가능)대표 구현체ArrayList, LinkedListHashSet, TreeSetHashMap, TreeMap 3. List Map Set의 주요 구현제3-..
2025.01.03 -
[알고리즘] 백트래킹(Backtracking)
1. 백트래킹(Backtracking)이란?백트래킹은 결정적 문제를 해결하기 위한 알고리즘 설계 기법으로, 모든 가능한 후보 해를 체계적으로 탐색하며, 불가능한 해답일 경우 이전 단계로 돌아가 다른 경로를 탐색한다.2. 백트래킹의 특징1. 완전 탐색 기법의 일종모든 경우의 수를 탐색하지만, 불필요한 경로를 가지치기(Pruning)하여 효율성을 높인다.2. DFS(깊이 우선 탐색) 기반재귀를 활용하여 상태 공간 트리를 탐색한다.3. 가지치기(Pruning)불가능하거나 최적해가 될 가능성이 없는 경로를 조기에 배제하여 탐색 시간을 단축한다.3. 백트래킹의 동작 원리1. 현재 상태에서 가능한 모든 선택을 시도한다.2. 각 선택에 대해 재귀적으로 탐색을 수행한다.3. 조건에 부합하지 않는 경우, 이전 상태로 돌..
2024.12.28 -
[알고리즘] 동적 계획법(Dynamic Programming, DP)
1. 동적 계획법(Dynamic Programming)이란?동적 계획법은 큰 문제를 작은 문제로 나누어 푸는 분할 정복(Divide and Conquer) 기법의 일종으로, 부분 문제의 결과를 재사용하여 중복 계산을 줄이는 알고리즘 설계 기법이다.2. 동적 계획법의 특징1. 최적 부분 구조(Optimal Substructure)큰 문제의 최적해가 작은 부분 문제의 최적해로 구성된다. 2. 중복되는 부분 문제(Overlapping Subproblems)동일한 작은 문제를 여러 번 반복하여 풀게 되는 성질이 있다.이 중복 계산을 줄이기 위해 결과를 저장한다.3. 동적 계획법의 장단점장점중복 계산을 제거하여 효율성을 극대화재귀적 접근보다 명확하고 빠른 해결 가능단점상태 저장을 위한 추가 메모리 공간 필요문제..
2024.12.28 -
[알고리즘] BFS(너비 우선 탐색)와 DFS(깊이 우선 탐색)
그래프 탐색은 데이터를 구조화하고 처리하는 데 필수적인 알고리즘이다.그중 BFS(너비 우선 탐색)와 DFS(깊이 우선 탐색)는 가장 널리 사용되는 그래프 탐색 기법이다.1. BFS와 DFS란? BFS(Breadth-First Search, 너비 우선 탐색) 그래프를 탐색할 때 가까운 노드부터 차례대로 방문하는 방식큐(Queue)를 사용하여 구현 DFS(Depth-First Search, 깊이 우선 탐색)그래프를 탐색할 때 깊은 경로를 우선적으로 탐색하는 방식스택(Stack)이나 재귀를 사용하여 구현2.BFS와 DFS의 동작 원리BFS의 동작 원리1. 시작 노드를 큐에 추가하고 방문 처리한다.2. 큐에서 노드를 하나 꺼내고, 해당 노드에 연결된 모든 인접 노드를 큐에 추가하여 방문 처리한다.3. 큐가 빌 ..
2024.12.21