- ADT(Abstract Data Type) 개념
- Array
- LinkedList 개념
- Array & ArrayList & LinkedList 요약
- 스택(Stack) & 큐(Queue) 개념 요약
- 힙(Heap) 개념 요약
- 트리(Tree) 개념 요약
- 이진 트리(Binary Tree) 개념
- 이진탐색트리(Binary Search Tree) 개념 요약
- AVL 트리 개념
- Red-Black 트리
- Hash 요약
- Set & HashSet 개념
- 해시 테이블(Hash Table) 개념
- 트라이(Trie) 개념 요약
- B-Tree 개념 요약
- B+Tree 개념 요약
- Graph 요약
- 버블 정렬 vs 선택 정렬 vs 삽입 정렬 개념
- 키(Key) 정리
- SQL - JOIN 개념
- SQL Injection 개념
- SQL vs NoSQL
- 정규화(Normalization)
- 이상(Anomaly) 개념
- 인덱스(INDEX)
- 트랜잭션(Transaction)
- 트랜잭션 격리 수준(Transaction Isolation Level) 개념
- MVCC 개념
- 저장 함수(Stored Function) 개념
- 저장 프로시저(Stored PROCEDURE)
- 레디스(Redis)
- OSI 7 계층 개념
- TCP 3 way handshake & 4 way handshake
- TCP/IP 흐름제어 & 혼잡제어
- UDP
- 대칭키 & 공개키
- HTTP & HTTPS
- TLS/SSL handshake
- 로드 밸런싱(Load Balancing)
- Blocking,Non-blocking & Synchronous,Asynchronous
- Blocking & Non-Blocking I/O
- What is OS? (임시)
- 프로세스/스레드의 개념: 멀티태스킹, 멀티스레딩, 멀티프로세싱, 멀티프로그래밍을 구분하자!
- 컨텍스트 스위칭: 프로세스 컨텍스트 스위칭 VS 스레드 컨텍스트 스위칭
- CPU Bound VS IO Bound: 스레드는 몇 개가 좋을까?
- 동기화(synchronization)의 필요성: 경쟁 조건(race condition), 임계 영역(critical section)
- 동기화 메커니즘(Synchronization Mechanisms)(1): 스핀락(Spinlock), 뮤텍스(Mutex), 세마포어(Semaphore)
- 동기화 메커니즘(Synchronization Mechanisms)(2): 모니터(Monitor)
- 데드락(Deadlock)은 언제 발생하고, OS, Java에서 어떻게 해결할까?
- OS, Java에서 프로세스의 상태 (State of Process in OS and Java)
- CPU Scheduler: 운영체제가 CPU에게 일 시키는 방법(Dispatcher, 비선점 VS 선점 스케줄링, 스케줄링 알고리즘)
- System call, System interrupt을 통해 유저 모드에서 커널 모드를 실행할 수 있다!
- I/O 처리 방식: Blocking, Non-Blocking, Synchronous, Asynchronous 차이 명확하게 알아보자!