![[추가] CS 개념 | OAuth 2.0 에 관하여](http://i1.daumcdn.net/thumb/C120x120/?fname=https://blog.kakaocdn.net/dn/zoTXt/btsFsaOAVkF/wWFZTIJkXFbhLeX54Jg6wK/img.png)
[추가] CS 개념 | OAuth 2.0 에 관하여
OAuth 프로토콜이란 ? OAuth = Open Authorization 인증을 위한 개방형 표준 프로토콜 클라이언트를 대신하여 리소스 서버에서 제공하는 자원에 대한 접근 궈한을 위임받는 방식 클라이언트가 사용자 인증 정보를 공유하지 않고도 자원에 접근할 수 있도록 하는 인증 방법 → 사용자 입장에서는 OAuth를 사용하면 민감 정보를 굳이 입력하지 않고도 신뢰할 수 있는 서버를 토대로 로그인 처리가 되고, 서버 입장에서도 민감 정보를 굳이 직접 관리하지 않아도 되는 이점이 있다. OAuth 1.0과 2.0 차이점 OAuth 1.0과 OAuth 2.0 모두 API 보안을 위한 프로토콜이다. 1) 토큰 갱신 OAuth 1.0 에서는 토큰 갱신이 어려웠다. (Access Token 유효기간 X) OAuth..
- [스터디] CS 기술 면접 준비/[추가] CS 개념 추가 정리_2024
- · 2024. 2. 29.
13회차 데이터베이스 | DB 트랜잭션, 트랜잭션 격리 수준 관련 질문 정리
24.02.16 (금) 질문 내용 정리 트랜잭션 개념과 특징에 대해서 설명하시오. 트랜잭션 병행 처리 했을 때 발생하는 문제와 방지하기 위한 방법에 대해 설명하시오. 갱신손실 → 락킹 제어기법을 사용 Non-Repeatable Read 는 발생하지 않지만, Phantom Read는 발생하는 경우는? 그리고 각각 설명하세요. Non-Repeatable Read : 트랜잭션 내에서 같은 쿼리를 두번 실행 했는데 내용이 다른거 Phantom Read : 같은 쿼리를 두 번 실행했는데 다른 트랜잭션의 삽입 삭제로 결과가 다르게 나타나는 현상 트랜잭션 동작과정(hdd, buffer) : 물리적인 메모리 상의 동작 과정을 설명하시오. 데드락에 대해 설명, 데드락을 해결하기 위한 방법 3가지(낙관적 동시성 제어)에 ..
- [스터디] CS 기술 면접 준비/CS_데이터베이스 [DataBase]
- · 2024. 2. 16.

13회차 데이터베이스 | DB 트랜잭션, 트랜잭션 격리수준 관련 내용 정리
DB 트랙잭션과 트랙잭션 특성 4가지, DB 트랜잭션 격리수준 DB 트랜잭션 | Transaction 1) 트랜잭션 개념 (1) 트랜잭션 DBMS에서 데이터 다루는 논리적 작업 단위 여러 쿼리를 논리적으로 하나의 작업으로 묶어주는 것 DB에서 데이터 다루다가 장애 일어난 경우 → 데이터 복구 작업의 단위 DB에서 여러 트랜잭션이 동시에 같은 데이터 다룰 경우 → 동시 접근 작업들 분리하는 단위 (2) 트랜잭션 제어어 | TCL (Transaction Control Language) start transation : 트랜잭션 시작 SET TRANSACTION NAME commit : 트랜잭션 종료 COMMIT rollback : 트랜잭션 무효화 ROLLBACK {TO } //트랜잭션 전체 or 까지 무효화..
- [스터디] CS 기술 면접 준비/CS_데이터베이스 [DataBase]
- · 2024. 2. 15.
12회차 데이터베이스 | DB 인덱스(B-Tree, B+Tree, 해쉬테이블), DB 튜닝, DB 다중화 질문 정리
24.02.13 (화) 질문 내용 공유 인덱스에 대해 설명해주세요 RDBMS 에서 Hashtable 이 아닌 B+Tree 를 사용하는 이유 클러스터드 인덱스와 넌클러스터드 인덱스 비교 인덱스를 사용했을 때 유리한 경우 리플리케이션과 클러스터링 비교 DB 튜닝이 무엇인지, 각 단계 설명 관련 질문 정리 ✅ 왜 보편적으로 레드 블랙 트리 대신 B-Tree 자료 구조를 DB 인덱스로 사용하는가? RedBlack-Tree는 무조건 하나의 노드에 하나의 데이터 요소만을 저장하므로 어떠한 요소를 탐색하든 참조 포인터 접근이 필수적이다. 반면, B-Tree는 하나의 노드에 여러 개의 데이터를 저장하므로 각 노드의 데이터 요소를 탐색할 때 참조 포인터 접근 없이 배열의 성질을 이용하여 빠르게 탐색이 가능하다. 결론적으..
- [스터디] CS 기술 면접 준비/CS_데이터베이스 [DataBase]
- · 2024. 2. 13.

12회차 데이터베이스 | DB 인덱스(B-Tree, B+Tree, 해쉬테이블), DB 튜닝, DB 다중화, 내용 정리
DB 인덱스 인덱스 거는이유 인덱스에 왜 해쉬 보다 B Tree를 쓰는지? DB 튜닝 DB 다중화 (클러스터링, 리플리케이션) DB 인덱스 ⬛ DB 인덱스 1) DB 인덱스 개념 원하는 데이터를 빨리 찾기 위해 튜플(행)의 키 값에 대한 물리적 위치 기록해둔 자료구조 주로 테이블의 컬럼을 인덱스로 설정한다. cf. 인덱스가 없는 경우, 테이블의 모든 행을 FUll-Scan하게 된다. (FTS) : Full Table Scan 특정 값 탐색을 위해 모든 데이터, 테이블을 순차 탐색하며 대상을 검색한다면 시간이 오래 걸린다. O(N) → DB 데이터 조회 성능 향상 → ‘인덱스’는 데이터와 데이터 위치를 포함한 자료구조를 생성하여 데이터 탐색 시 빠른 조회를 돕는다. 2) DB 인덱스 관리 (DB 인덱스 관..
- [스터디] CS 기술 면접 준비/CS_데이터베이스 [DataBase]
- · 2024. 2. 12.
11회차 데이터베이스 | 정규화와 역정규화 관련 질문 내용 정리
24.02.06 화 나온 질문 공유정규화 개념, 장단점 설명정규화 : 데이터 일관성, 데이터 중복 최소화를 위해 한 릴레이션이 하나의 의미만 갖도록 릴레이션을 분해하는 과정장점: 데이터베이스에 조작 시 이상현상 문제 해결단점: 릴레이션의 분해로 인해 릴레이션 간의 조인 연산 많아져 질의 응답 시간 느려질 수 있음이상현상 설명이상현상 : 데이터 중복으로 인한 부작용을 말하는데, SELECT시에는 문제가 없어도 데이터 조작 (삽입/삭제/수정) 시 문제가 발생하는 것을 의미한다.1) 삽입 이상 : 튜플 삽입 시 특정 속성에 NULL입력해야 하는 현상2) 삭제 이상 : 튜플 삭제 시 같이 저장된 다른 정보까지 연쇄 삭제 현상3) 수정 이상 : 튜플 수정 시 중복된 데이터의 일부만 수정되어 데이터 일관성 훼손되는..
- [스터디] CS 기술 면접 준비/CS_데이터베이스 [DataBase]
- · 2024. 2. 7.

11회차 데이터베이스 | 정규화와 역정규화 관련 내용 정리
DB 정규화, 비정규화(역정규화) 01. 이상현상 | Anomaly 1. 이상현상의 개념 잘못 설계된 테이블에 데이터 질의 (SELECT) 할 때는 문제가 없는데, 그 외의 데이터 조작 (삽입, 삭제, 수정)을 하면 문제가 발생하는 것을 ‘이상 현상’이라고 말한다. 이상현상이란, 테이블에 튜플 1) 삽입 시 부득이하게 NULL값 입력되거나 2) 삭제 시 연쇄 삭제 현상 발생하거나 3) 수정 시 데이터 일관성 훼손되는 현상 삽입 이상 : 튜플 삽입 시 특정 속성에 해당하는 값이 없어서 NULL 입력해야 하는 현상 삭제 이상 : 튜플 삭제 시 같이 저장된 다른 정보까지 연쇄적으로 삭제되는 현상 수정 이상 : 튜플 수정 시 중복된 데이터의 일부만 수정되어 데이터 일관성 훼손되는 현상 2. 이상현상의 예시 한 ..
- [스터디] CS 기술 면접 준비/CS_데이터베이스 [DataBase]
- · 2024. 2. 5.
10회차 데이터베이스 | 데이터베이스 개요 및 쿼리 관련 질문 정리
24.02.02 (금) 나온 질문 내용 정리데이터베이스 무결성무결성 : 데이터베이스 안에서 유일성을 지키기 위해 할 조건조건개체 무결성 : 릴레이션 내 PK를 구성하는 속성은 NULL값과 중복값을 가질 수 없다.참조 무결성 : FK 값은 NULL이거나 참조테이블의 PK값이어야 한다. 키 무결성 : 한 릴레이션에 하나 이상의 키가 존재해야한다.도메인 무결성 : 속성의 값이 도메인에 속해야한다.RDBMS vs NoSQL 비교하시오.1) NoSQL : 스키마 X. 비정형 데이터. Scale out 가능 - 장점 : 스키마가 없이 Key-Value 형태로 데이터를 자유롭게 관리 O. scale-up + scale-out 가능 - 단점 : 데이터 중복 O. 중복된 데이터 변경 시 수정을 모든 컬렉션에 대해 수행...
- [스터디] CS 기술 면접 준비/CS_데이터베이스 [DataBase]
- · 2024. 2. 2.

10회차 데이터베이스 | 데이터베이스 개요 및 쿼리 내용 정리
데이터 베이스 기본 개념 쿼리 데이터 베이스 기본 개념 1) 데이터베이스 (DB) 개념 일정한 규칙으로 구조화되어 저장된 데이터의 모음 [ 데이터베이스의 특징 ] (4) 1) 실시간 접근성 실시간 처리에 대한 응답 가능 2) 지속적인 변화 데이터베이스 상태가 동적이다.즉, 새 데이터 삽입/삭제/갱신 등 항상 최신의 데이터를 유지한다. 3) 동시 공유 다수의 사용자가 동시에 같은 내용의 데이터 이용 가능 4) 내용에 따른 참조 데이터베이스에 있는 데이터 참조 시 사용자가 요구하는 데이터 내용 기준 찾음 2) 데이터베이스의 종류 (1) 관계형 데이터베이스 | RDBMS : 모든 데이터를 2차원 테이블 형태 (행과 열)로 데이터 저장하는 데이터 베이스 : 테이블 형태로 데이터 관리 : SQL 언어 사용하여 데..
- [스터디] CS 기술 면접 준비/CS_데이터베이스 [DataBase]
- · 2024. 2. 2.
8회차 운영체제 | 데드락, 동기화(뮤텍스, 세마포어) 등 질문 정리
24.01.26 나온 질문 공유 1) 뮤텍스와 스핀락이 어떤 상황에 적합한지 - 뮤텍스 : 대부분의 상황에서 뮤텍스가 더 효율적이다. - 스핀락 : 임계구역 내 작업 시간이 문맥 교환 시간보다 빠를 때는 스핀락이 더 효율적이다. 2) 데드락의 발생 조건 4가지 상호 배제/ 점유 대기/ 비 선점/ 원형 대기 3) 동기화 문제가 무엇인지 설명 동기화 문제 - 스레드가 동시에 공유자원에 대한 접근할 때, 원자적으로 수행되지 않아 일관적이지 않게 됨 4) 세마포어와 뮤텍스의 차이 세마포어 - 여러 자원에 접근 가능, 락을 건 주체가 락을 해제가능 뮤텍스 차이 - 공유자원이 한개일 때 사용 가능, 락을 건 주체 아니어도 락 해제 가능 5) 회피 기법 중 은행원 알고리즘 단점 자원 할당량을 미리 알아야하는데 미리 ..
- [스터디] CS 기술 면접 준비/CS_운영체제 [Operating System]
- · 2024. 1. 27.

8회차 운영체제 | 데드락, 동기화(뮤텍스, 세마포어) 등 내용 정리
OS 데드락 데드락 조건 4가지 동기화(뮤텍스, 세마포어, 모니터, 스핀락, 어토믹 설명) 들어가기 전 동시다발적으로 실행되는 프로세스(스레드)들은 서로 협력하며 영향을 주고받는다. 이때, 자원의 일관성을 보장하기 위해 프로세스 동기화를 고려해야 한다. 실행 문맥을 갖는 모든 대상은 동기화 대상이다. (스레드도 프로세스도 동기화 대상) 프로세스 동기화 동기화란? 여러 프로세스가 공유 자원에 동시에 접근해도 '공유 자원의 일관성'을 유지하는 것 프로세스들의 수행 시기를 맞추는 것 실행 순서를 위한 동기화와 상호 배제를 위한 동기화가 있다. 1) 실행 순서 제어: 프로세스를 올바른 순서대로 실행되도록 제어 2) 상호 배제 : 동시에 접근해서는 안 되는 자원(=공유 불가능 자원)에 하나의 프로세스만 접근하게 ..
- [스터디] CS 기술 면접 준비/CS_운영체제 [Operating System]
- · 2024. 1. 26.
7회차 운영체제 | 세그멘테이션, 페이징, 단편화 관련 질문 정리
24.01.23 질문 정리 | 24.04.12 답변 재정리 1) 페이징과 세그멘테이션 기법을 비교 - 페이징과 세그먼테이션 기법 모두 불연속적으로 메모리에 할당하는 방식인데, 고정 크기인 페이지 단위로 쪼개냐, 가변적인 세그먼트 단위로 쪼개냐 차이 - 페이징의 경우 각 프로세스를 가상 메모리에는 (고정 크기인) 페이지 단위로 쪼개고, 이를 실제 메모리의 프레임에 매핑시키는 방식으로 동작합니다. 고정 크기로 쪼개기 때문에 내부 단편화가 발생할 수 있습니다. - 세그먼테이션 기법은 각 프로세스를 논리적 단위인 (가변 크기) 세그먼트 단위로 분할하여 서로 다른 위치에 할당시킵니다. 크기가 저마다 다르고 논리적 단위로 쪼개기 때문에 외부 단편화가 발생할 수 있습니다. 2) 페이징에서 주소 변환을 할 때 TLB ..
- [스터디] CS 기술 면접 준비/CS_운영체제 [Operating System]
- · 2024. 1. 24.

7회차 운영체제 | 세그멘테이션, 페이징, 내부 단편화, 외부 단편화 내용 정리
세그멘테이션, 페이징 (내부단편화 ,외부단편화) 가상 메모리 등장 배경 📌 메인 메모리의 용량은 한정적입니다. 기존에는 프로그램 전부를 메모리에 올려 실행을 하다 보니, 물리 메모리보다 큰 용량의 프로그램을 실행할 수 없었습니다. 이러한 문제를 해결하기 위해서 가상 메모리 개념이 등장합니다. 또한, 프로세스의 모든 부분은 항상 필요한 것이 아니라서, 현재 실행에 필요한 부분만을 메모리에 올림으로써 해결하는 것입니다. → 가상 메모리 기법은 실제 메모리 크기와 프로세스가 올라갈 메모리 위치를 신경 쓰지 않고, 메모리를 이용할 수 있도록 지원하는 기술이다. 가상 메모리 ⬛ 가상 메모리 (Virtual Memory) 가상 메모리는 메모리가 실제 메모리보다 많아 보이게 하는 기술로, 어떤 프로세스가 실행될 때 ..
- [스터디] CS 기술 면접 준비/CS_운영체제 [Operating System]
- · 2024. 1. 22.
6회차 운영체제 | 메모리 구조 관련 질문 정리
24.01.19 금 질문 내용 | 24.04.04 답변 업데이트 1) 메모리 구조에서 데이터 영역는 어떤 정보가 들어가는지 설명 - BSS 영역 (Block Started by Symbol) : 명시적으로 초기화 되지 않은 XX (전역, 정적 변수들 저장됨) - Data 영역 : 명시적으로 초기화 된 OO (전역, 정적 변수들 저장됨) 2) 메모리 영역에서 런탐임에 할당되는것들 - 영역 크기/사이즈 : (런타임) 힙 | (정적) 코드, 데이터, 스택 크기 - 메모리 할당 : (런타임) 힙, 스택 | (정적) 코드, 데이터 3) 다른 메모리 영역을 (침범) 접근하려 할 때 어떤일이 발생하는가? CPU 예외 > OS 예외처리를 통해 프로세스 종료 시킨다. 인터럽트 = 하드웨어 + 소프트웨어(트랩) 트랩 - ..
- [스터디] CS 기술 면접 준비/CS_운영체제 [Operating System]
- · 2024. 1. 19.

6회차 운영체제 | 메모리 구조 관련 내용 정리
메모리구조/ 스택/ 힙/ 데이터/ 코드 영역 - 선언하면 어느쪽에 저장되는지 설명하기 메모리 계층 구조 | 기억 장치의 계층 구조 1) CPU의 레지스터 (Register) 레지스터는 CPU에 위치한 고속 메모리. CPU가 바로 사용할 수 있는 데이터 저장 CPU(Center Process Unit) | 중앙 처리 장치 : 컴퓨터에서 기억, 해석, 연산, 제어 4대 주요 기능 관활하는 컴퓨터의 대뇌 장치 CU(Control Unit) | 제어 장치 : CPU의 한 부품으로, 입출력 장치 간 통신 조율을 제어명령어 읽고 해석, 데이터 처리 위한 순서 결정 ALU (Arthmetic Logic Unit) | 산술 논리 장치 : 산술 연산, 논리 연산 계산하는 디지털 회로 2) 캐시 | Cache 캐시는 메인..
- [스터디] CS 기술 면접 준비/CS_운영체제 [Operating System]
- · 2024. 1. 18.
5회차 운영체제 | 프로세스, 스레드, PCB 등 질문 정리
24.01.16 화 질문 내용 모음 | 24.04.04 답변 업데이트 1) Context Switching(문맥 교환)에 대해 설명하고, 왜 필요한지 설명해주세요. - CPU는 한 번에 하나의 프로세스를 수행하는데, 실생활에서는 여러 개 프로세스를 동시 수행하길 원하고, 따라서 CPU가 동시 수행하는 것처럼 보이기 위해 여러 프로세스를 번갈아가며 수행한다. - 또한, 문맥교환 시간보다 I/O 작업이 더 오래걸려서, 그 사이에 문맥교환을 하는 것이 더 효율적이다 . 2) 스레드가 스택을 제외해서 자원을 공유하는데, 왜 스택은 따로 할당받나요? - 스택은 함수의 실행과 관련있다. 각 스레드가 독립적인 실행 흐름을 갖기 위한 최소 조건으로 스택 영역에 대해서는 별도로 할당받는 것이다. 3) 멀티 쓰레드의 장점..
- [스터디] CS 기술 면접 준비/CS_운영체제 [Operating System]
- · 2024. 1. 16.

5회차 운영체제 | 프로세스, 스레드, PCB 등 내용 정리
OS 스레드 , 프로세스 차이 (멀티스레드와 멀티프로세스차이, PCB) 운영체제 (Operating System) HW 하드웨어와 SW 소프트웨어를 관리하는 역할 1) 운영체제의 역할 - (4) (1) CPU 스케줄링과 프로세스 관리 : CPU 소유권을 어떤 프로세스에 할당할지, 프로세스 생성과 삭제 자원 할당 및 반환을 관리 (2) 메모리 관리 : 한정된 메모리를 어떤 프로세스에 얼만큼 할당해야 할지 관리 (3) 디스크 파일 관리 : 디스크 파일을 어떤 방법으로 보관할지 관리 (4) I/O 디바이스 관리 : I/O 디바이스 (마우스, 키보드)와 컴퓨터 간 데이터 주고받는 것 관리 2) 운영체제 구조 위의 형태가 운영체제의 구조적 형태이다. 1) GUI/CLI GUI : (그래픽 유저 인터페이스) 사용자..
- [스터디] CS 기술 면접 준비/CS_운영체제 [Operating System]
- · 2024. 1. 15.