TIL💡(277)
-
[컴퓨터구조] RISC, CISC 차이
중앙 처리 장치(CPU)는 두 가지가 있다. → RISC, CISC CISC의 단점을 처리하기 위해 RISC가 세상에 나왔다. CISC(Complex Instruction Set Computer) 연산에 처리되는 복잡한 명령어들을 수백 개 이상 탑재하고 있는 프로세서 ex) Intel x86 CISC는 말그대로 복잡한 명령어 집합을 갖는 CPU 아키텍처이다. 명령어가 복잡하기 때문에 명령어를 해석하는 데 시간이 오래 걸리며, 명령어 해석에 필요한 회로도 복잡하다. 명령어가 가변 길이이기 때문에 병렬처리도 불가능하다. 복잡한 명령은 발열이 날 수 있으므로 휴대폰에 사용 불가하다. 설계가 복잡하나 복합적인 명령으로 인해 프로그래밍 작업이 간단해진다. 다양한 주소 지정 모드를 사용한다. RISC 프로세서에 비..
2022.09.30 -
[Network] JWT란
저번에 공부했는데, 안 써보니까 또 까먹어서 다시 정리해본다! - JWT = JSON Web Token - 두 개체에서 JSON 객체를 사용하여 가볍고 자가 수용적인 (self-contained) 방식으로 정보를 안전성있게 전달해준다. - 수많은 프로그래밍 언어에서 지원된다. - 자가 수용적이다. 즉 필요한 모든 정보를 자체적으로 지녀 독립적이다. JWT 시스템에서 발급된 토큰은 토큰에 대한 기본 정보와 전달할 정보(ex. 로그인 시스템에서는 유저 정보) 그리고 토큰이 검증됐다는 것을 증명해주는 signature를 포함한다. - 쉽게 전달될 수 있다. JWT는 자가수용적이므로 두 개체 사이에서 손쉽게 전달될 수 있다. 웹서버의 경우 HTTP의 헤더에 넣어서 전달할 수 있고, URL의 파라미터로 전달할 수..
2022.09.30 -
[자료구조] B-트리, B+트리
앞서 살펴본 AVL 트리는 이진 탐색 트리이나, 이제 살펴볼 트리들은 nonbinary tree이다. 스택 오버플로우에 의하면 AVL 트리는 인메모리 시에 랜덤 액세스가 상대적으로 cost가 적어 유용하지만, 디스크에 저장되는 경우에는 B-Tree가 유용하다고 한다. AVL 트리는 기본적으로 많은 양의 데이터를 저장하는 용도는 아니다. 그래서 데이터베이스에서 주로 인덱스 시에 B 트리를 활용하는 것인가... (FYI. 해시테이블이 인덱스로 쓰일 수 있으나, 주로 등호 연산만 가능하고, 부등호 표현은 불가능하기 때문에 비효율적이다.) B트리는 2개 이상의 child를 가질 수 있기 때문에 용량이 상대적으로 방대한 편이다. B-트리는 탐색 성능을 높이기 위해 균형 있게 높이를 유지하는 Balanced Tre..
2022.09.30 -
[암호화] TLS(Transport Layer Security)
TLS는 어떻게 작동합니까? 웹사이트나 응용 프로그램이 TLS를 사용하기 위해서는 원본 서버에 TLS 인증서가 설치되어 있어야 한다. 인증 기관(CA)이 도메인을 소유한 사람 혹은 비즈니스(회사)에게 TLS 인증서를 발행한다. 인증서는 서버의 공개키와 더불어 누가 도메인 소유자인지에 대한 중요한 정보를 포함하여, 이 두 가지는 모두 서버의 신원을 확인하는 데 중요하다. TLS 연결은 TLS Handshake로 알려진 일련의 순서를 사용하여 초기화된다. TLS Handshake 동안 사용자 장치와 웹 서버는 다음과 같은 일을 수행한다. - 사용할 TLS 버전 지정 - 사용할 암호 제품군 결정 - 서버의 TLS 인증서를 사용해 서버의 신원 인증 - Handshake가 완료된 후 키 간의 메시지를 암호화하기 ..
2022.09.30 -
[OS] Interrupt(인터럽트)
- 주변 장치 및 입출력 장치는 CPU나 메모리와 달리 인터럽트(Interrupt)라는 매커니즘을 통해 관리 - 주변 장치들을 CPU의 서비스가 필요한 경우에 신호를 발생시켜 서비스를 요청한다. 이 때 발생시키는 신호를 인터럽트라 한다. - CPU는 평소에 CPU 스케줄링에 따라 자신에게 주어진 작업을 수행하고 있다가 인터럽트가 발생하면 하던 일을 잠시 멈추고 인터럽트에 의한 요청 서비스를 수행한다. - 인터럽트는 요청하는 장치와 발생 상황에 따라 다양한 종류가 있기 때문에 OS는 인터럽트 종류마다 서로 다른 인터럽트 처리 루틴을 갖는다. 인터럽트 처리 루틴이란 인터럽트가 발생했을 때 해주어야 할 작업을 정의한 프로그램 코드를 말한다. 이는 OS 커널 내에 존재하는 코드로, CPU 스케줄링, 메모리 관리..
2022.09.30 -
[암호화] SSL의 지원하는 기술
SSL은 디지털 증명서로 통신 상대가 진짜인지 아닌지를 확인한다. 따라서 SSL 서버에는 반드시 디지털 증명서를 install해야 한다. 참고로 이는 현재 사용 중인 TLS 암호화의 전신이다. 이들은 긴밀히 연계되어 있어 두 용어가 혼합되어 사용되는 경우가 많습니다. TLS를 아직 SSL이라 부르기도 하고, SSL의 인지도가 높으므로, ‘SSL/TLS 암호화’라 부르는 경우도 있다. [증명서 install 절차] 1. 관리자는 서버 SW에서 비밀키와 공개키를 작성 후 공개키를 CSR(Certificate Sigining Request, 증명서 서명 요청)과 인증국(CA, Certificate Authority)이라는 제 3의 기관에 제출하고, 비밀키는 소중히 보관한다. 2. 인증국은 여신 판단 후 CSR..
2022.09.30