CS 기초
- 32 Bit / 64 Bit 차이
- Python Call by value, Call by reference
- 실수 표현법(부동 소수점, 고정 소수점)
- C에서 Pointer 및 배열
- Garbage Collect
- Stack과 Heap, 메모리 구조
- jpg, png, gif 각각의 차이
- 2's complement, 1's complement
- CPU vs GPU
- SSD, HDD
Algorithm 및 Data Structures
- 시간 복잡도(Big-oh Notation)
- Recursion, Iteration
- Linked List, Array, Stack, Queue
- 정렬, QuickSort, MergeSort, HeapSort
- Hash Table (collision, chaining, rehashing)
- DFS, BFS
- Graph, Tree
- Dynamic Programming, Greedy Algorithm
- 균형 이진 트리(Balanced BST) ex. AVL, RBTree
malloc lab
- implicit, explicit, seglist, buddy system
- Fragmentation
네트워크
- BSD 소켓
- 프록시 서버
- TCP/IP, UDP, HTTP, file descriptor, DNS
- REST API
- HTTP METHOD - GET, POST, DELETE, UPDATE
- OSI 7계층
- CDN
OS
- OS의 정의
- Process와 Thread
- CPU Scheduling 알고리즘
- Semaphore와 Mutex
- Race Condition
- Deadlock
- Context Switching
- System Call
- Kernel
- Atomic Operation
- 가상 메모리
- 페이징 기법
- Cache
- TLB
- Page Fault
DB
- 관계형 DB와 No-SQL DB
- DB Index
- B Tree, B+ Tree
프로젝트 전반
JavaScript
- Asynchronous I/O: 반대말 Synchronous I/O
- 자매품: Blocking I/O, non-blocking I/O in C language
- 관련 programming 방법: callback (hell), Promise, async/await
- (Web) Workers: multi-thread in JS?
- single-thread인 JS에서 concurrency의 구현 Play Video
- package-lock.json
암호 보안
- 암호 알고리즘: 비밀키 암호, 공개키 암호, Secure Hash
- Primitives: 메시지 암호, 서명
- 응용: SSH, TLS(HTTP, HTTP/2), GPG
- 무료 TLS/SSL certificate 발급
HTTP & Security
- HTTP, HTTPS, Mixed content
- HTTP/2 서버를 쓰는 것이 좋은 이유
- XSS (Cross site scritpting), CORS (Cross-Origin Resource Sharing)
- Host, (cookie) domain, origin의 뜻과 차이
- SameSite cookies
- Cookie와 localStorage, sessionStorage의 차이
- Code Injection
회원관리