CS 핵심 개념을 비유와 실습으로 정복하는 프로젝트
일상 비유로 개념을 함께 이해한다
퀘스트(과제)를 받고 직접 풀어본다
리뷰 후 CLEAR 또는 RETRY 판정
언어: C++ / TypeScript
=== Network Quest ===
Ch.1 기초 [████████░░] 4/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 & Data Structure ===
Ch.1 기초·복잡도 [██████████] 4/4 ✅
Ch.2 재귀·탐색 [░░░░░░░░░░] 0/4
Ch.3 정렬 [░░░░░░░░░░] 0/3
Ch.4 해시·무결성 [░░░░░░░░░░] 0/3
Ch.5 암호화 [░░░░░░░░░░] 0/3
Ch.6 트리 [░░░░░░░░░░] 0/3
Ch.7 트라이·공간분할 [░░░░░░░░░░] 0/2
Ch.8 탐색 전략 [░░░░░░░░░░] 0/2
Ch.9 DP·그리디 [░░░░░░░░░░] 0/3
Ch.10 그래프 I [░░░░░░░░░░] 0/3
Ch.11 그래프 II [░░░░░░░░░░] 0/3
Ch.12 그래프 III [░░░░░░░░░░] 0/3
Ch.13 기타 [░░░░░░░░░░] 0/2
=== Database Quest === (+ 실습 트랙 db-for-frontend: 1/6 ✅)
Ch.1 기초 [██░░░░░░░░] 1/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 🔒
Chapter 1: 기초 던전 - "인터넷은 어떻게 작동하는가"
Stage
주제
핵심 키워드
상태
1-1
네트워크란 무엇인가
LAN, WAN, 패킷, 프로토콜
✅ CLEAR
1-2
OSI 7계층 vs TCP/IP 4계층
계층 구조, 캡슐화, 역할 분리
✅ CLEAR
1-3
IP 주소와 서브넷
IPv4, IPv6, 서브넷 마스크, CIDR
✅ CLEAR
1-4
DNS의 세계
도메인 해석, 재귀/반복 질의, 캐싱
✅ CLEAR
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
🔒
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
알고리즘·자료구조 핵심을 기초 복잡도부터 그래프 심화까지 체계적으로 다루는 커리큘럼.
주제
핵심 키워드
상태
알고리즘과 효율성
좋은 알고리즘의 조건, 정확성 검증
✅ CLEAR
빅오 표기법
O(1)·O(N)·O(N²)·O(logN)·O(NlogN)
✅ CLEAR
선형 자료구조
배열, 스택, 큐, 연결 리스트
✅ CLEAR
해시 테이블
해시 함수, 해시 맵, O(1) 탐색
✅ CLEAR
Chapter 2. 재귀 · 탐색 · 복잡도 이론
주제
핵심 키워드
상태
재귀
호출 과정, 장단점, 꼬리 재귀
⬜
주먹구구식(브루트포스)
완전 탐색, 기하급수적 복잡도
⬜
P vs NP
P, NP, NP-완전, NP-난해
⬜
이진 탐색
정렬 전제, O(logN), 회전 배열 응용
⬜
주제
핵심 키워드
상태
기본 정렬
버블, 선택, 삽입
⬜
고급 정렬
퀵, 병합, 힙
⬜
정렬의 성질
안정성, 상황별 선택
⬜
주제
핵심 키워드
상태
해시 함수
균일성, 지역 민감 해시, 효율성
⬜
무결성 검사
체크섬, CRC, 패리티 비트
⬜
암호학적 해시
생일 문제, 비밀번호 해싱·솔트
⬜
주제
핵심 키워드
상태
대칭키 암호화
AES, 블록 암호
⬜
비대칭키 암호화
RSA, 공개키/비밀키, 큰 소수
⬜
기초 정수론
모듈러 연산, 소수
⬜
주제
핵심 키워드
상태
트리와 BST
이진 탐색 트리, 삽입/삭제
⬜
트리 순회
전위·중위·후위
⬜
균형 트리
레드-블랙 트리
⬜
주제
핵심 키워드
상태
트라이
사전식 순서, 자동완성
⬜
공간분할 트리
쿼드 트리, 옥트리
⬜
주제
핵심 키워드
상태
DFS / BFS
깊이 우선, 너비 우선
⬜
미니맥스
게임 트리, 깊이 제한, 평가 함수
⬜
주제
핵심 키워드
상태
동적 계획법
메모이제이션, 타뷸레이션, 배낭 문제
⬜
그리디
탐욕 선택, 인터벌 스케줄링
⬜
압축
허프만 코딩, 양자화
⬜
Chapter 10. 그래프 I — 표현 & 순회
주제
핵심 키워드
상태
그래프 표현
인접 행렬, 인접 리스트
⬜
그래프 DFS & 위상 정렬
방향 그래프, 위상 순서
⬜
강한 결합 요소
SCC, 코사라주 알고리즘
⬜
Chapter 11. 그래프 II — 최단 경로
주제
핵심 키워드
상태
BFS 최단 경로 & 다익스트라
우선순위 큐, 음의 가중치
⬜
A*
휴리스틱, h(n)
⬜
플로이드-워셜
모든 쌍 최단 경로
⬜
주제
핵심 키워드
상태
최소 신장 트리
크러스컬, 서로소 집합
⬜
외판원 문제
TSP, 2-근사
⬜
최대 유량
흐름 네트워크, 에드몬드-카프
⬜
주제
핵심 키워드
상태
상태 기계 & 정규식
유한 상태 기계, 패턴 매칭
⬜
패턴 인식
KNN, 정규화
⬜
🛠️ 실습 트랙 병행 — db-for-frontend/
진짜 PostgreSQL(+PostGIS)을 Docker로 띄워놓고, 병원 예약 도메인 으로
EXPLAIN ANALYZE까지 손으로 돌려보는 실습 커리큘럼. 아래 개념 퀘스트와 상호 보완됩니다.
단계
주제
상태
1
구조 — PK/FK · 정규화 · JSONB
✅ CLEAR
2
무결성 — 트랜잭션 · ACID · 격리 수준
🔒
3
인덱스/검색 — B-Tree · EXPLAIN · N+1 · 페이지네이션
🔒
4
동시성 — Lock · Deadlock · MVCC
🔒
5
공간 데이터 — PostGIS · 반경 2km 검색
🔒
6
인프라 — Connection Pool · Redis 캐싱
🔒
Chapter 1: 기초 던전 - "데이터를 체계적으로"
Stage
주제
핵심 키워드
상태
1-1
데이터베이스란
DBMS, 관계형 모델, 스키마
⬜
1-2
SQL 기본
SELECT, JOIN, GROUP BY, 서브쿼리
⬜
1-3
정규화
1NF, 2NF, 3NF, 함수 종속성
✅ CLEAR (실습 트랙)
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++
🔒
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++
🔒