본문 바로가기

CS13

JWT concept모바일이나 웹의 사용자 인증을 위해 사용하는 암호화된 토큰으로,JWT 정보를 request에 담아 사용자용 정보 열람, 수정 등 개인적인 작업을 수행할 수 있게 한다. Json 형태의 데이터를 네트워크를 통해 서로 다른 장치끼리 안전하게 전송하기 위해 설계 되었다.  JWT 과정세 파트로 나뉘며, 각 파트를 .(점)으로 구분하여 aaaaa.bbbbbb.cccc 의 형식으로 표현된다.JWT는 URL에서 파라미터로 사용할 수 있도록 URL_Safe 한 Base64Url 인코딩을 사용한다. 1. header 토큰의 타입과 해시 암호화 알고리즘으로 구성되어 있다.{"alg" : "HS256","typ" : "JWT"} 2. payload 토큰에 담을 정보여기에 담은 정보의 한 조각을 claim 이라.. 2024. 5. 7.
동기화 문제 동기화? 한정적인 시스템 자원에 여러 스레드가 동시에 접근해서 사용하면 문제가 발생할 수 있다. 이 문제를 방지하기 위해 여러 스레드에게 하나의 자원에 대한 처리 권한을 주거나 순서를 조정하는 기법이다. 스레드 동기화 실행 순서의 동기화 스레드의 실행 순서를 정의하고, 이 순서를 반드시 따르도록 하는 것. 메모리 접근에 대한 동기화 실행 순서가 중요한 것이 아니라 한 순간에 하나의 스레드만 해당 자원에 접근하도록 하는 것. 동기화 기법 1. 유저 모드의 동기화 커널의 힘을 빌리지 않는 동기화 기법 성능상 이점이 있으나, 기능상의 제한점이 존재 임계 구역 기반의 동기화 임계 구역(Critical Section) 집입을 위해 크리티컬 섹션 오브젝트를 얻는다. 열쇠를 얻은 프로세스만 임계 구역에 들어갈 수 있.. 2024. 4. 23.
퀵 정렬(Quick Sort) 퀵 정렬 Quick Sort는 분할 정복 방법을 통해 주어진 배열을 정렬한다. 분할 정복 : 문제를 작은 2개의 문제로 분리하고 각각을 해결한 다음, 결과를 모아서 원래의 문제를 해결하는 전략이다. Quick Sort는 불안정 정렬에 속하며, 다른 원소와의 비교만으로 정렬을 수행하는 비교 정렬에 속한다. Merge Sort(병합 정렬)와는 달리 Quick Sort는 배열을 비균등하게 분할한다. 개념 배열 가운데서 하나의 원소를 고른다. 이렇게 고른 원소를 피벗(pivot) 이라고 한다. 피벗 앞에는 피벗보다 값이 작은 모든 원소들이 오고, 피벗 뒤에는 피벗보다 값이 큰 모든 원소들이 오도록 피벗을 기준으로 배열을 둘로 나눈다. 이렇게 배열을 둘로 나누는 것을 분할(Divide)이라고 한다. 분할을 마친 .. 2024. 4. 15.
인터럽트(interrupt) 인터럽트(interrupt) 프로세스 실행 도중에 예기치 않은 상황이 발생할 때 발생한 상황을 처리한 후 실행 중인 작업으로 복귀하는 것 하드웨어 장치가 CPU에게 어떤 사실을 알려주거나 CPU의 서비스를 요청해야 할 경우, CPU 내에 있는 인터럽트 라인을 세팅하여 인터럽트를 발생시킨다. 프로그램이 명령을 수행하기 위해서는 CPU를 할당받아야 함. CPU는 매번 프로그램 카운터가 가리고 있는 곳의 명령을 수행한 뒤, 다음 명령을 수행하기 직전에 인터럽트 라인 세팅되었는지를 체크한다. 이를 통해 인터럽트가 발생했으면 CPU는 현재 수행 중이던 프로세스를 멈추고 운영 체제의 인터럽트 처리 루틴으로 이동하여 인터럽트 처리를 수행한다. 인터럽트의 종류 1.하드웨어 인터럽트 일반적인 하드웨어 인터럽트 하드웨어 .. 2024. 4. 5.