전체 글

ETC/네트워크 보안

네트워크 보안 Ch.7 Authorization

홍익대학교 이윤규 교수님의 네트워크 보안 강의 (2022)를 정리했습니다. 접근제어 (Access control)의 두가지 개념 인증 (Authentication) 사용자의 identification을 확인해서 접속을 허용함 (아이디/패스워드, 생체 인증) 인가 (Authorization) 인증 된 이후, 특정 동작을 할 수 있게끔 권한을 부여함.(특정 리소스에 접근할 수 있는 권한을 부여함) 인가의 예시) 카카오,네이버 통합 로그인 트위터 계정으로 twitpic 사용하는 경우 (트위픽이 나의 트위터의 계정을 사용할 수 있게 권한을 줌) 네이버 카페의 회원등급 구글 드라이브의 접근 제한 OAuth 2.0 인가를 위해 사용하는 프레임워크 한 애플리케이션에서, 다른 애플리케이션에 어떤 리소스, 데이터 혹은 ..

알고리즘/개념 정리

동적계획법 (Dynamic Programming) - (4) 지그재그 문제

신찬수 교수님의 알고리즘 동적계획법 - zigzag 문제 영상을 정리했습니다. 수열 [1,7,4,9,2,5] 가 있을 때, 이를 지그재그 수열이라고 한다. 크기가 큰 것과 작은 것이 번갈아 나오는 수열을 지그재그 수열이라고 한다. 수열 [1,5,3,2,7] 은 3 다음의 원소가 3보다 작은 2 이기 때문에 지그재그 수열이 아니다. 수열이 주어졌을 때, n개를 뽑아서 지그재그 수열을 만든다. 예를 들어, [3,2,0,7,1,4,5,8,3]에선 [2,7,1,4,3]을 뽑아서 길이가 5인 지그재그 수열을 만들 수 있다. 만들 수 있는 지그재그 수열 중, 가장 길이가 긴 지그재그 수열을 구하는 것이 문제이다. 수열 [3,-1,2, 5, 7, 4, 5, 9, 8]에서, 5 (인덱스 6) 로 끝나는 지그재그 수열 ..

알고리즘/개념 정리

동적계획법 (Dynamic Programming) - (3) 최장 공통 부분수열(LCS)

신찬수 교수님의 알고리즘 동적계획법 - LCS 문제 영상을 정리했습니다. 동적계획법의 순서 다시 정리 ! 1. 해를 분석 후 부문제로 분할 2. 부문제의 해로 큰 문제의 해를 표현(점화식) 3. 적당한 순서로 DP table을 채우기 4. DP table에서 원문제의 해를 계산하고 알고리즘의 정당성 증명 LCS(Longest Common Subsequence) 문제 주어진 수열에서 일부 원소(문자)를 지웠을 때 남은 수열(문자열)을 부분 수열이라고 한다. 주의할 것은 원래 수열에서 연속하지 않아도 된다는 것이다. 영어 대문자로 구성된 X, Y 문자열이 주어진다. X = ABCDDAB Y = BDCABA 이때 ABCDDAB에서 부분 수열이라고 하면 ABCDDAB의 CDD와 같이 연속으로 이어진 것만 가능하..

알고리즘/개념 정리

동적계획법 (Dynamic Programming) - (2) 최대구간합

신찬수 교수님의 알고리즘 동적계획법 -예제 문제 - 최대구간합 1 영상을 정리했습니다. 최대구간합 문제 : 4가지 풀이법 n개의 정수 리스트가 주어졌을 때, 연속되는 숫자의 합이 최대가 되는 구간을 구하는 문제 A = [1, -1, 3, -4, 5, -4, 6, -2] 첫 번째 방법 : 브루트 포스 문제의 정답은 A[i] + ... + A[j]가 된다. (i = r: return A[l] m = (l+r)//2 L = max_interval(A, l, m) R = max_interval(A, m+1, r) # M 계산 # for loop를 통해서 구한다.O(N)의 시간이 걸린다. # M 계산 부분 (코드 생략) return max(L, M, R) L과 R을 구하는 과정은 각각 T(A의 원소수/2), M을..

알고리즘/개념 정리

동적계획법 (Dynamic Programming) - (1) 소개

신찬수 교수님의 알고리즘 - 동적계획법 소개 영상을 정리했습니다. 동적계획법 (Dynamic Programming) - 소개 n까지의 수의 합을 구하는 경우 sum(n) = sum(n-1) + n (단, sum(1) = 1) 위처럼 함수를 재귀호출해서 사용해서 구할 수 있다. 이때 만약 sum 값이 S라는 배열에 저장된다면 아래와 같은 코드가 된다. S[n] = S[n-1] + n (단, S[1] = 1) 첫 번째의 경우는 재귀호출을 사용하는 경우로 분할정복 방법이고, 두 번째 경우는 값을 배열에 저장해 재사용하는 경우로 동적계획법이다. 분할정복은 어떤 문제를 계속해서 작은 문제로 쪼갠 뒤, 작은 문제의 답을 통해 원 문제의 해답을 얻는 방법이다. 분할정복의 경우 분할된 각각의 작은 문제들이 중복이 없지..

CS/운영체제

운영체제 CH1. 1.1 운영체제란?

홍익대학교 김선일 교수님의 운영체제 강의 (2021)를 정리했습니다. 교재 - MODERN OPERATING SYSTEMS Fourth Edition ANDREW S. TANENBAUM 운영체제란? 하드웨어와 어플리케이션 사이에 있는 소프트웨어 기본적으로 컴퓨터 시스템에서 어플리케이션이 실행된다는 것은 컴퓨터 시스템이 하드웨어를 사용한다는 것이다. 운영체제는 어플리케이션이 하드웨어에 접근하기 위한 인터페이스와 서비스를 제공한다. 따라서 운영체제는 하드웨어에 접근할 수 있다. (일반 어플리케이션은 접근할 수 없다.) 어플리케이션이 하드웨어에 접근하기 위해선 운영체제를 호출해야한다. (System call) CPU는 기본적으로 두가지 모드로 동작한다. 커널모드 : 모든 하드웨어에 접근할 수 있고, 모든 명령..

디우닝
antifragile