Skip to content

CodyMan0/cs-exploration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

CS Study Quest

CS 핵심 개념을 비유와 실습으로 정복하는 프로젝트

진행 방식

  1. 일상 비유로 개념을 함께 이해한다
  2. 퀘스트(과제)를 받고 직접 풀어본다
  3. 리뷰 후 CLEAR 또는 RETRY 판정
  4. 언어: C++ / TypeScript

Network Quest

Chapter 1: 기초 던전 - "인터넷은 어떻게 작동하는가"

Stage 주제 핵심 키워드 상태
1-1 네트워크란 무엇인가 LAN, WAN, 패킷, 프로토콜 ✅ CLEAR
1-2 OSI 7계층 vs TCP/IP 4계층 계층 구조, 캡슐화, 역할 분리
1-3 IP 주소와 서브넷 IPv4, IPv6, 서브넷 마스크, CIDR
1-4 DNS의 세계 도메인 해석, 재귀/반복 질의, 캐싱
BOSS 나만의 DNS 조회기 만들기 C++ 또는 TypeScript 🔒

Chapter 2: 전송 던전 - "데이터는 어떻게 도착하는가"

Stage 주제 핵심 키워드 상태
2-1 TCP vs UDP 연결 지향, 비연결, 신뢰성 🔒
2-2 TCP 3-way Handshake SYN, ACK, 연결 수립/해제 🔒
2-3 흐름 제어와 혼잡 제어 슬라이딩 윈도우, AIMD, Slow Start 🔒
2-4 포트와 소켓 Well-known 포트, 소켓 프로그래밍 🔒
BOSS TCP 채팅 서버/클라이언트 만들기 C++ 소켓 프로그래밍 🔒

Chapter 3: 응용 던전 - "우리가 매일 쓰는 것들"

Stage 주제 핵심 키워드 상태
3-1 HTTP/HTTPS 메서드, 상태코드, 헤더, TLS 🔒
3-2 REST API 설계 리소스, URI, 멱등성 🔒
3-3 쿠키, 세션, 토큰 인증/인가, JWT, OAuth 개요 🔒
3-4 WebSocket & 실시간 통신 양방향, Polling vs SSE vs WS 🔒
BOSS 실시간 알림 시스템 만들기 TypeScript (Node.js) 🔒

Chapter 4: 심화 던전 - "네트워크 마스터로"

Stage 주제 핵심 키워드 상태
4-1 라우팅과 NAT 라우팅 테이블, NAT, 포트포워딩 🔒
4-2 로드밸런싱 L4/L7, 알고리즘, 리버스 프록시 🔒
4-3 CDN과 캐싱 전략 Edge, Cache-Control, ETag 🔒
4-4 네트워크 보안 방화벽, DDoS, CORS, XSS 🔒
FINAL BOSS 미니 HTTP 서버 직접 구현 C++ raw socket 🔒

OS Quest

Chapter 1: 기초 던전 - "컴퓨터는 어떻게 일을 하는가"

Stage 주제 핵심 키워드 상태
1-1 운영체제란 무엇인가 커널, 사용자 모드, 시스템 콜
1-2 프로세스와 스레드 PCB, 컨텍스트 스위칭, 멀티스레딩
1-3 프로세스 생성과 종료 fork, exec, wait, 좀비/고아 프로세스
1-4 프로세스 간 통신 (IPC) 파이프, 공유메모리, 메시지큐, 소켓
BOSS 미니 쉘 만들기 C++ (fork + exec) 🔒

Chapter 2: 스케줄링 던전 - "누가 먼저 일할 것인가"

Stage 주제 핵심 키워드 상태
2-1 CPU 스케줄링 기본 FCFS, SJF, 선점/비선점 🔒
2-2 Round Robin과 우선순위 타임 퀀텀, 에이징, 기아 현상 🔒
2-3 멀티레벨 큐 포그라운드/백그라운드, 피드백 큐 🔒
BOSS 스케줄러 시뮬레이터 만들기 TypeScript 🔒

Chapter 3: 동기화 던전 - "충돌 없이 함께 일하기"

Stage 주제 핵심 키워드 상태
3-1 경쟁 조건과 임계 구역 Race Condition, Mutual Exclusion 🔒
3-2 뮤텍스와 세마포어 Lock, Counting Semaphore, 바이너리 🔒
3-3 데드락 4가지 조건, 회피, 탐지, 복구 🔒
BOSS 식사하는 철학자 문제 구현 C++ (pthread) 🔒

Chapter 4: 메모리 던전 - "한정된 공간을 관리하라"

Stage 주제 핵심 키워드 상태
4-1 메모리 구조와 주소 공간 스택, 힙, 코드, 데이터 영역 🔒
4-2 페이징과 세그멘테이션 가상 메모리, 페이지 테이블, TLB 🔒
4-3 페이지 교체 알고리즘 FIFO, LRU, LFU, 클럭 알고리즘 🔒
BOSS LRU 캐시 직접 구현 TypeScript 🔒

Chapter 5: 파일시스템 던전 - "데이터를 영구히 저장하라"

Stage 주제 핵심 키워드 상태
5-1 파일시스템 기초 inode, 디렉토리, 파일 디스크립터 🔒
5-2 디스크 스케줄링 SCAN, C-SCAN, SSTF 🔒
5-3 저널링과 무결성 크래시 복구, WAL, Copy-on-Write 🔒
FINAL BOSS 인메모리 파일시스템 구현 C++ 🔒

Algorithm & Data Structure Quest

Chapter 1: 기초 던전 - "데이터를 담는 그릇"

Stage 주제 핵심 키워드 상태
1-1 배열과 연결 리스트 인덱스, 포인터, 시간복잡도
1-2 스택과 큐 LIFO, FIFO, 활용 사례
1-3 해시 테이블 해시 함수, 충돌 해결, O(1) 탐색
1-4 트리 기초 이진 트리, BST, 순회
BOSS 나만의 HashMap 구현 TypeScript 🔒

Chapter 2: 정렬 & 탐색 던전 - "순서를 만들어라"

Stage 주제 핵심 키워드 상태
2-1 기본 정렬 버블, 선택, 삽입 정렬 🔒
2-2 고급 정렬 병합, 퀵, 힙 정렬 🔒
2-3 이진 탐색 상한/하한, 응용 문제 🔒
BOSS 정렬 알고리즘 시각화 TypeScript 🔒

Chapter 3: 그래프 던전 - "관계를 탐험하라"

Stage 주제 핵심 키워드 상태
3-1 그래프 기초와 표현 인접 리스트, 인접 행렬 🔒
3-2 BFS와 DFS 너비 우선, 깊이 우선, 활용 🔒
3-3 최단 경로 다익스트라, 벨만-포드 🔒
BOSS 길찾기 시각화 TypeScript 🔒

Chapter 4: 심화 던전 - "문제 해결의 무기"

Stage 주제 핵심 키워드 상태
4-1 재귀와 백트래킹 재귀 트리, 가지치기 🔒
4-2 동적 프로그래밍 메모이제이션, 타뷸레이션, 최적 부분 구조 🔒
4-3 그리디 알고리즘 탐욕 선택, 최적 증명 🔒
FINAL BOSS 종합 문제 풀이 5선 C++ / TypeScript 🔒

Database Quest

Chapter 1: 기초 던전 - "데이터를 체계적으로"

Stage 주제 핵심 키워드 상태
1-1 데이터베이스란 DBMS, 관계형 모델, 스키마
1-2 SQL 기본 SELECT, JOIN, GROUP BY, 서브쿼리
1-3 정규화 1NF, 2NF, 3NF, 함수 종속성
BOSS 스키마 설계 챌린지 SQL 🔒

Chapter 2: 내부 동작 던전 - "DB는 어떻게 빠른가"

Stage 주제 핵심 키워드 상태
2-1 인덱스 B-Tree, B+Tree, 클러스터드, 커버링 🔒
2-2 트랜잭션과 ACID 원자성, 일관성, 격리성, 지속성 🔒
2-3 격리 수준과 락 Read Committed, Repeatable Read, 데드락 🔒
BOSS 트랜잭션 시뮬레이터 TypeScript 🔒

Chapter 3: 심화 던전 - "대규모 데이터를 다뤄라"

Stage 주제 핵심 키워드 상태
3-1 쿼리 최적화 실행 계획, EXPLAIN, 풀스캔 🔒
3-2 NoSQL 개요 Document, Key-Value, 그래프 DB, CAP 🔒
3-3 파티셔닝과 레플리케이션 샤딩, Master-Slave, 수평/수직 분할 🔒
FINAL BOSS 미니 인메모리 DB 구현 TypeScript 🔒

Computer Architecture Quest

Chapter 1: 기초 던전 - "컴퓨터는 0과 1로 생각한다"

Stage 주제 핵심 키워드 상태
1-1 이진수와 데이터 표현 2진수, 16진수, 보수, 부동소수점
1-2 논리 게이트와 회로 AND, OR, NOT, 가산기, 멀티플렉서
1-3 CPU 구조 ALU, 레지스터, 제어장치, 클럭
BOSS 간단한 ALU 시뮬레이터 TypeScript 🔒

Chapter 2: 실행 던전 - "명령어는 어떻게 처리되는가"

Stage 주제 핵심 키워드 상태
2-1 명령어 사이클 Fetch, Decode, Execute, 파이프라인 🔒
2-2 파이프라인과 해저드 데이터/구조/제어 해저드, 분기 예측 🔒
2-3 메모리 계층 레지스터, 캐시(L1/L2/L3), RAM, 디스크 🔒
BOSS 캐시 시뮬레이터 C++ 🔒

Chapter 3: 심화 던전 - "성능의 비밀"

Stage 주제 핵심 키워드 상태
3-1 캐시 정책 LRU, Write-back, Write-through, 지역성 🔒
3-2 병렬 처리 멀티코어, SIMD, 암달의 법칙 🔒
3-3 I/O와 인터럽트 DMA, 폴링, 인터럽트 벡터 🔒
FINAL BOSS 미니 CPU 시뮬레이터 C++ 🔒

Security Quest

Chapter 1: 기초 던전 - "왜 보안이 필요한가"

Stage 주제 핵심 키워드 상태
1-1 보안의 3요소 기밀성, 무결성, 가용성 (CIA)
1-2 암호화 기초 대칭키, 비대칭키, 해시 함수
1-3 인증과 인가 세션, 토큰, OAuth, RBAC
BOSS 비밀번호 해싱 시스템 구현 TypeScript 🔒

Chapter 2: 웹 보안 던전 - "공격과 방어"

Stage 주제 핵심 키워드 상태
2-1 XSS와 CSRF Reflected, Stored, DOM-based, 토큰 방어 🔒
2-2 SQL Injection 바인드 변수, ORM, 입력 검증 🔒
2-3 HTTPS와 TLS 인증서, 핸드셰이크, 중간자 공격 🔒
BOSS 취약점 탐지 & 패치 챌린지 TypeScript 🔒

Chapter 3: 심화 던전 - "실전 보안"

Stage 주제 핵심 키워드 상태
3-1 네트워크 보안 방화벽, IDS/IPS, VPN 🔒
3-2 시스템 보안 권한 관리, 샌드박스, 버퍼 오버플로 🔒
3-3 보안 설계 원칙 최소 권한, Defense in Depth, Zero Trust 🔒
FINAL BOSS 안전한 로그인 시스템 구현 TypeScript + C++ 🔒

전체 진행률

=== Network Quest ===
Ch.1 기초     [██░░░░░░░░] 1/5
Ch.2 전송     [░░░░░░░░░░] 0/5  🔒
Ch.3 응용     [░░░░░░░░░░] 0/5  🔒
Ch.4 심화     [░░░░░░░░░░] 0/5  🔒

=== OS Quest ===
Ch.1 기초     [░░░░░░░░░░] 0/5
Ch.2 스케줄링  [░░░░░░░░░░] 0/4  🔒
Ch.3 동기화   [░░░░░░░░░░] 0/4  🔒
Ch.4 메모리   [░░░░░░░░░░] 0/4  🔒
Ch.5 파일시스템 [░░░░░░░░░░] 0/4  🔒

=== Algorithm & DS Quest ===
Ch.1 기초     [░░░░░░░░░░] 0/5
Ch.2 정렬탐색  [░░░░░░░░░░] 0/4  🔒
Ch.3 그래프   [░░░░░░░░░░] 0/4  🔒
Ch.4 심화     [░░░░░░░░░░] 0/4  🔒

=== Database Quest ===
Ch.1 기초     [░░░░░░░░░░] 0/4
Ch.2 내부동작  [░░░░░░░░░░] 0/4  🔒
Ch.3 심화     [░░░░░░░░░░] 0/4  🔒

=== Computer Architecture Quest ===
Ch.1 기초     [░░░░░░░░░░] 0/4
Ch.2 실행     [░░░░░░░░░░] 0/4  🔒
Ch.3 심화     [░░░░░░░░░░] 0/4  🔒

=== Security Quest ===
Ch.1 기초     [░░░░░░░░░░] 0/4
Ch.2 웹보안   [░░░░░░░░░░] 0/4  🔒
Ch.3 심화     [░░░░░░░░░░] 0/4  🔒

About

클로드와 미쳐보는 CS 탐구 레포

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors