분류 전체보기
-
[Spring Security] 스프링 시큐리티 주요 아키텍처Dev/정리 2023. 1. 20. 19:53
아래 내용은 Core Spring Security 스프링 시큐리티 기본 API & Filter 이해를 수강 후, 정리한 내용입니다. 전체적인 Spring Security의 전체적인 아키텍처와 동작과정을 나타난 것이다. 3가지 형태의 Spring Security 동작과정을 살펴볼 것이다. 1) 사용자가 처음 인증을 시도하는 경우 2) 인증 후 자원요청하는 경우 3) 첫번째 사용자과 동일한 계정으로 로그인을 시도하는 경우 1. 사용자가 처음 인증을 시도하는 경우 1. SecurityContextPersistenceFilter SecurityContextPersistenceFilter 내부에 있는 loadContext를 이용하여 Session에 저장된 이력이 있는지 체크한다. 처음 로그인을 시도하였기 때문에 ..
-
[Python] 11053 가장 긴 증가하는 부분 수열Algorithm/백준 2023. 1. 20. 17:20
1. 문제 📚 https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 2. 입출력 예 📋 3. 알고리즘 ✅ N이 1000이기 때문에 완탐으로 하면 시간초과가 날 것이다 앞부분 수열에 따라 뒷부분 수열까지 영향을 주기 때문에 DP로 풀어야 한다! dp 를 1로 초기화해준 다음, 현재 index로 이전의 숫자와 차근차근 비교해서 증가하는 수라면 그 이전에 저장된 dp 값 + 1..
-
[Python] 15657 N과 M (8)Algorithm/백준 2023. 1. 20. 16:21
1. 문제 📚 https://www.acmicpc.net/problem/15657 15657번: N과 M (8) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 2. 입출력 예 📋 3. 알고리즘 ✅ 문제 조건 중 비내림차순이 있었기때문에 고른 수열은 비내림차순이어야 한다. 길이가 K인 수열 A가 A1 ≤ A2 ≤ ... ≤ AK-1 ≤ AK를 만족하면, 비내림차순이라고 한다. 1. 정렬을 해주었고 2. dfs 파라미터로 그 이전 값을 받아, 그 이전 값보다 큰 값들만 append 시켜주었다 4. 소스코드 💻 import sys in..
-
[Python] 1987 알파벳(dfs)Algorithm/백준 2023. 1. 19. 21:00
1. 문제 📚 https://www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 2. 입출력 예 📋 3. 알고리즘 ✅ 그래프 문제 + 백트래킹 문제이다 조건이 이미 한번 지나온 알파벳은 방문할 수 없음이므로 앞으로 나아갈 곳이 이미 지나온 알파벳이라면 뒤로 가서 다시 탐색을 해주어여한다 bfs로 count를 세어준다음, 가장 최대값을 리턴해주었다! 여기서 포인트는 재귀호출이 끝나면 다시 False로 바꿔주어 탐색을 해주어야한다 4. 소스코드 💻 impor..
-
[Python] 1759 암호 만들기Algorithm/백준 2023. 1. 18. 21:23
1. 문제 📚 https://www.acmicpc.net/problem/1759 2. 입출력 예 📋 3. 알고리즘 ✅ 백트래킹 문제이므로 조건을 제대로 봐야한댜 조건1. 중복된 문자가 없을 것 조건2. 알파벳이 암호에서 증가하는 순서대로 배열 됐을 것 조건3. 최소 한개의 모음 최소 2개의 자음 4. 소스코드 💻 처음에 실패해서 뭐지 했는데 조건3을 안따졌었다 아래는 백준 질문게시판에 있던 반례이다 input: 3 6 a e i c d z output: acd acz adz cde cdi cez ciz dez diz import sys input = sys.stdin.readline L, C = map(int, input().strip().split()) alphabet = sorted(input()...
-
[Python] 3190 뱀Algorithm/백준 2023. 1. 18. 21:15
1. 문제 📚 https://www.acmicpc.net/problem/3190 2. 입출력 예 📋 3. 알고리즘 ✅ 처음에 문제를 이해하는 데만 오래걸렸다;; 초기 시작을 (0, 0)으로 두고 1초라고 둬야한다 보기 쉽게 $을 뱀 @ 을 사과라고 뒀다 예제1을 출력해보면 time: 1 direction: Right $ . . . . . . . . . @ . . . . @ . . . . . . . . . . @ . . . . . . . . . time: 2 direction: Right . $ . . . . . . . . @ . . . . @ . . . . . . . . . . @ . . . . . . . . . time: 3 direction: Right . . $ . . . . . . . @ . . ..
-
[OS] Race ConditionComputer Science/OS 2023. 1. 17. 22:02
Race Condition 두 개 이상의 cocurrent한 프로세스(혹은 스레드)들이 하나의 자원(리소스)에 접근하기 위해 경쟁하는 상태 → 동시 접근 시 자료의 일관성을 해치는 결과가 나타남! e.g) 공유메모리를 사용하는 프로세스를 커널 내부 데이터를 접근하는 루틴들 간 (예: 커널모드 수행 중 인터럽트로 커널모드 다른 루틴 수행 시) OS에서 race condition은 언제발생하는 가? kernel 수행 중 인터럽트 발생 - 문제점: 커널모드에서 데이터를 로드하여 작업을 수행하다가 인터럽트가 발생하여 같은 데이터를 조작하는 경우 - 해결법: 커널모드에서 작업을 수행하는 동안, 인터럽트를 disable 시켜 CPU 제어권을 가져가지 못하도록 한다. Process 가 system call을 하며 k..