TRENDSHIFT 딥다이브 · 2026-06-05

Hello 算法 (hello-algo) 딥다이브
— "애니메이션 + 한 번에 실행되는 코드"로 배우는 자료구조·알고리즘 교과서

알고리즘 책은 많지만 대부분 둘 중 하나다. 수식만 빽빽한 교재이거나, 정답 코드만 잔뜩 모아둔 문제집이거나. hello-algo는 그 사이의 빈칸을 채운다. 모든 개념을 움직이는 그림(애니메이션)으로 설명하고, 모든 예제 코드를 내가 쓰는 언어로 골라 그 자리에서 돌려볼 수 있게 만든, 무료·오픈소스 입문서다. 책 본문(마크다운)과 14개 언어로 작성된 실행 코드가 하나의 저장소에서 자동 동기화된다. (저장소: krahets/hello-algo · 콘텐츠 라이선스 CC BY-NC-SA 4.0 · ★ 약 12.7만 · GitHub 트렌딩 56회 등장 · TrendShift 아카이브 #13)
목차
  1. 프로젝트 한줄 요약
  2. 왜 주목받는가
  3. 기술 스택 전체 지도
  4. 아키텍처 심화 분석
  5. 디렉토리 구조 해부
  6. 학습 포인트 (기술별)
  7. 시스템 요구사항
  8. 직접 해볼 수 있는 실습 과제
  9. 관련 기술 심화 학습 로드맵
  10. 핵심 키워드 사전
  11. 참고 링크

1프로젝트 한줄 요약

이 레포가 무엇을 하는 물건인가.

핵심 메시지

"움직이는 삽화가 있는 알고리즘 교과서 +
14개 언어로 즉시 컴파일되는 실습 키트, 한 권에."

hello-algo(중국어 제목 Hello 算法)는 자료구조·알고리즘을 ① 애니메이션 그림으로 설명하고, ② 그 개념의 코드를 14개 언어로 제공하며, ③ 그 코드를 곧바로 빌드·실행해볼 수 있게 만든 무료 입문서다. 텍스트는 웹사이트(hello-algo.com)로 읽고, PDF/EPUB로 내려받을 수도 있다. 핵심은 "읽기만 하는 책"이 아니라 읽으면서 손으로 돌려보는 책이라는 점.

저장소 자체는 "책 한 권을 만드는 공장"이다. 본문은 docs/ 안의 마크다운 16개 장(章)이고, 예제 코드는 codes/ 안에 언어별로 따로 들어 있다. 빌드 도구(MkDocs)가 이 둘을 합쳐 예쁜 웹사이트로 찍어낸다. 그래서 이 레포에서 배울 거리는 두 겹이다 — ① 콘텐츠로서의 알고리즘 지식, 그리고 ② 그 콘텐츠를 만드는 "문서를 코드처럼 다루는(docs-as-code)" 엔지니어링.

용어
자료구조(data structure) & 알고리즘(algorithm)
자료구조는 데이터를 담는 그릇의 모양(배열·연결리스트·트리·해시테이블 등), 알고리즘은 그 그릇으로 문제를 푸는 절차(정렬·탐색·동적계획법 등)다. 둘은 짝이다 — 좋은 그릇을 고르면 절차가 빨라진다. 코딩 면접·실무 성능 최적화의 공통 기초이며, hello-algo는 이 둘을 처음부터 함께 가르친다.

저자는 krahets(Yudong Jin)이며, 같은 내용이 정식 종이책으로도 출간됐다. 칭화대 덩쥔후이(邓俊辉) 교수, 아마존 수석과학자 리무(李沐, Dive into Deep Learning 저자)가 추천사를 썼다는 점이 콘텐츠 신뢰도를 뒷받침한다.

2왜 주목받는가

트렌딩 이유 · 기존 학습 자료(교재·문제집·강의) 대비 차별점.

알고리즘 학습 자료는 차고 넘치는데도 hello-algo가 ★ 12만 개를 넘기고 GitHub 트렌딩에 56번이나 다시 올라온 이유는, 입문자가 실제로 겪는 세 가지 고통을 정확히 겨냥했기 때문이다.

입문자의 고통흔한 자료의 한계hello-algo의 처방
"글로는 이해가 안 된다"교재는 정적인 그림·수식 위주단계별 애니메이션 GIF로 자료구조의 변화를 눈으로 추적
"코드를 못 돌려본다"문제집은 정답만, 환경 설정은 알아서codes/언어별 실행 프로젝트 — 받아서 바로 빌드·실행
"내 언어가 없다"대개 한두 언어(C++/Java)에 고정14개 언어로 같은 예제 제공, 페이지에서 탭 전환

여기에 완전 무료·오픈소스(콘텐츠는 CC BY-NC-SA), 다국어(간체·번체 중국어·영어·일본어·러시아어), 현대적인 웹 UX(검색·다크모드·코드 복사·언어 탭 동기화)가 더해진다. GeeksforGeeks의 광고 더미나 두꺼운 CLRS 교재와 비교하면, "깔끔하고, 친절하고, 손으로 해볼 수 있다"는 점이 차별점이다.

트렌딩의 본질
"콘텐츠 품질 × 엔지니어링 품질"의 곱

좋은 글만으로도, 좋은 빌드 시스템만으로도 이 정도가 안 된다. hello-algo는 덩쥔후이·리무가 인정한 콘텐츠docs-as-code로 깔끔하게 빌드·배포해 둘을 곱했다. 그래서 "읽기 좋은 책"인 동시에 "기여하기 좋은 오픈소스"가 됐고, 14개 언어 코드의 상당수가 커뮤니티 번역으로 채워졌다.

주의 — 라이선스를 오해하지 말 것
"오픈소스지만 상업적 재사용·2차 배포엔 제약이 있다"

이 저장소의 글·그림·영상·코드는 CC BY-NC-SA 4.0으로 배포된다. 즉 저작자 표시(BY) · 비영리(NC) · 동일조건 변경허락(SA) 조건이다. 학습·번역·기여는 환영이지만, 예제 코드를 그대로 상업 제품에 넣거나 책을 영리 목적으로 재배포하는 것은 라이선스 위반이 될 수 있다. MIT·Apache 같은 코드 라이선스와 다르다는 점을 기억하자.

3기술 스택 전체 지도

"책"처럼 보이지만 실제로는 정적 사이트 생성기·14개 언어 빌드·Docker가 도는 소프트웨어다.

hello-algo의 흥미로운 점은 핵심 자산이 "글 + 그림 + 14개 언어 코드"이고, 그것을 한 권의 웹사이트로 묶는 부분만 빌드 도구(Python 기반 MkDocs)라는 것이다. 그래서 레포를 세 레이어로 나눠 보면 전체가 한눈에 들어온다.

레이어기술역할
콘텐츠Markdown 16개 장 (docs/chapter_*/)책 본문. 그림·수식·코드 조각을 품은 알고리즘 설명.
실행 코드14개 언어 프로젝트 (codes/{언어}/)장 구조를 그대로 복제한, 빌드·실행 가능한 예제 모음.
사이트 빌드MkDocs + Material for MkDocs 9.5.5마크다운+코드를 합쳐 정적 HTML 사이트로 생성.
마크다운 확장PyMdown Extensions (snippets·superfences·tabbed·details…)코드 조각 포함, 언어 탭, 접이식 박스, 경고 박스 등.
수식MathJax (arithmatex)시간/공간 복잡도의 Big-O 수식을 렌더링.
이미지 뷰어mkdocs-glightbox애니메이션·도해를 클릭하면 확대(라이트박스).
다국어언어별 mkdocs.yml (zh·zh-hant·en·ja·ru)같은 테마로 5개 언어 사이트를 각각 빌드.
재현 빌드Dockerfile (python:3.10-alpine) + docker-compose.yml로컬에서 한 줄로 사이트를 빌드·서빙(:8000).
배포정적 호스팅 (hello-algo.com) + GitHub Releases웹 열람 + PDF/EPUB 다운로드.
용어
정적 사이트 생성기 (SSG, Static Site Generator)
마크다운 같은 원본을 미리 완성된 HTML 파일 더미로 구워내는 도구. 방문자가 올 때마다 서버가 페이지를 계산하지 않으니 빠르고 싸고 안전하다. MkDocs는 그중 문서·기술서에 특화된 SSG이고, Material for MkDocs는 거기에 검색·다크모드·코드복사 같은 현대적 테마를 입힌 것.
용어
스니펫 포함 (pymdownx.snippets)
마크다운 안에 코드를 직접 복붙하지 않고, 실제 소스 파일을 "끼워 넣기(include)" 하는 기능. hello-algo는 책 본문에 코드를 베껴두는 대신 codes/의 진짜 파일을 끌어와 보여준다. 덕분에 책과 실행 코드가 절대 어긋나지 않는다 — 이게 이 프로젝트 설계의 핵심이다(§4).
용어
Big-O 표기법 (시간/공간 복잡도)
입력 크기 n이 커질 때 알고리즘이 대략 얼마나 느려지는가/메모리를 먹는가를 나타내는 표기. 예: O(n)=비례, O(log n)=아주 천천히, O(n²)=급격히 느려짐. hello-algo 2장이 통째로 이 주제이고, MathJax로 수식을 렌더한다.

4아키텍처 심화 분석

먼저 빌드 파이프라인 한 장, 그다음 "단일 진실원(코드 한 벌)"이라는 핵심 설계를 따라가 본다.

hello-algo의 구조는 "원본은 따로, 합치는 건 빌드 때"로 요약된다. 책 글(docs/)과 실행 코드(codes/)는 평소엔 분리돼 있다가, MkDocs가 빌드하는 순간 스니펫 포함으로 코드를 본문 안에 끌어와 하나의 사이트로 굳힌다. 같은 본문이 5개 언어 설정으로 5번 빌드되어 다국어 사이트가 된다.

┌──────────────────── 저장소(원본) ────────────────────┐ │ docs/chapter_sorting/quick_sort.md (책 본문 + 그림) │ │ codes/python/.../quick_sort.py (실행 코드 · 진짜)│ │ codes/rust/.../quick_sort.rs (실행 코드 · 진짜)│ │ ... 14개 언어 × 16개 장 ... │ └───────────────────────────┬──────────────────────────┘ ▼ (1) MkDocs build pymdownx.snippets 가 .md 안으로 실제 코드 파일을 끼워 넣음 ▼ (2) Material 테마 + 확장 적용 검색 · 다크모드 · 코드복사 · 언어탭 · MathJax · 라이트박스 ▼ (3) 언어별 mkdocs.yml 로 5회 반복 zh / zh-hant / en / ja / ru → site/ (완성된 정적 HTML) ▼ (4) 배포 hello-algo.com (웹) · GitHub Releases (PDF/EPUB) · Docker :8000

핵심 설계 ① — 코드의 단일 진실원(Single Source of Truth)

대부분의 알고리즘 책은 본문에 코드를 그림처럼 박아둔다. 그러면 코드를 고칠 때 본문과 실제 파일이 따로 놀기 시작한다. hello-algo는 이 문제를 구조로 없앤다 — 본문은 코드를 소유하지 않고 참조한다.

[흔한 책] 본문.md ┌─ 코드 복붙(사본) ──┐ 언젠가 어긋남 ✗ └─ 실제 파일(원본) ──┘ [hello-algo] 본문.md ──참조(include)──▶ codes/python/quick_sort.py (원본 1개) 빌드 때 원본을 그대로 끌어옴 → 본문과 코드가 영원히 일치
설계 패턴
Single Source of Truth (단일 진실원)
같은 정보를 두 군데 적어두지 않고 "진짜는 한 곳에만" 두는 원칙. 코드는 codes/에만 있고 책은 그걸 가리키기만 한다. 그래서 코드를 고치면 책도 자동으로 최신이 된다. 실무에서 설정·문서·스키마를 다룰 때 늘 등장하는 핵심 원칙이다.

핵심 설계 ② — 장(章) 구조를 그대로 복제한 14개 언어 레이아웃

각 언어 폴더(codes/{언어}/)는 책의 장 구조(chapter_sorting, chapter_tree …)를 똑같이 복제한다. 그래서 "정렬 장의 퀵소트"를 어느 언어에서 찾든 경로가 예측 가능하고, 새 언어로 번역할 때도 빈칸을 채우듯 같은 위치에 파일만 추가하면 된다. 기여자 친화적 구조다.

codes/ ├── python/ chapter_sorting/quick_sort.py + modules/ (공용 도구) + test_all.py(pytest) ├── rust/ chapter_sorting/quick_sort.rs + Cargo.toml (실행 타깃 정의) + src/ ├── cpp/ chapter_sorting/quick_sort.cpp + (CMake 등 빌드 설정) ├── java/ go/ csharp/ javascript/ typescript/ swift/ kotlin/ dart/ ruby/ c/ zig/ └── ← 14개 언어 모두 "같은 장 구조"를 거울처럼 복제
설계 패턴
언어별 공용 모듈 (shared modules)
연결리스트 노드(ListNode)·트리 노드(TreeNode)·출력 도우미 같은 반복되는 뼈대 코드를 언어마다 modules/(또는 공용 파일)로 분리한다. 덕분에 각 예제는 알고리즘 핵심만 짧게 담아 가독성이 좋아진다. 파이썬은 test_all.py로 모든 예제를 한 번에 회귀 테스트하기까지 한다.

핵심 설계 ③ — 언어 탭 동기화 & 다국어 파이프라인

Material 테마의 content.tabs.link 기능으로, 페이지 어디서든 한 번 "Python" 탭을 누르면 그 페이지의 모든 코드가 Python으로 전환된다. 독자는 자기 언어를 한 번만 고르면 된다. 또 같은 본문이 5개 언어 mkdocs.yml로 각각 빌드되어, 콘텐츠는 한 벌이되 사이트는 다국어로 갈라진다.

감 잡기

이 저장소를 "코드 프로젝트"가 아니라 "출판사의 조판·인쇄 공정"으로 보면 편하다. 원고(docs/)와 예제 소스(codes/)가 들어오면, 조판기(MkDocs)가 삽화·수식·코드 탭을 붙여 한 권으로 묶고, 같은 원고를 5개 언어판으로 찍어낸다. Docker는 그 인쇄소를 누구 컴퓨터에서나 똑같이 재현하는 컨테이너다.

5디렉토리 구조 해부

"콘텐츠(docs) · 실행 코드(codes) · 빌드 설정"의 3분할 구조.

최상위는 의외로 단순하다. 책 본문은 docs/, 실행 코드는 codes/, 그 둘을 묶는 설정이 mkdocs.yml·Dockerfile이다. 다국어판(en/·ja/·ru/·zh-hant/)은 각자 자기 docs/mkdocs.yml을 갖는다.

hello-algo/ ├── docs/ ← 책 본문(간체 중국어 원본) ★ │ ├── chapter_preface/ 0장 전언 │ ├── chapter_introduction/ 1장 알고리즘 첫걸음 │ ├── chapter_computational_complexity/ 2장 복잡도 분석 │ ├── chapter_data_structure/ 3장 자료구조 │ ├── chapter_array_and_linkedlist/ 4장 배열·연결리스트 │ ├── chapter_stack_and_queue/ 5장 스택·큐 │ ├── chapter_hashing/ 6장 해시 테이블 │ ├── chapter_tree/ 7장 트리 │ ├── chapter_heap/ 8장 힙 │ ├── chapter_graph/ 9장 그래프 │ ├── chapter_searching/ 10장 탐색 │ ├── chapter_sorting/ 11장 정렬 │ ├── chapter_divide_and_conquer/ 12장 분할정복 │ ├── chapter_backtracking/ 13장 백트래킹 │ ├── chapter_dynamic_programming/14장 동적계획법 │ ├── chapter_greedy/ 15장 탐욕법 │ └── chapter_appendix/ 16장 부록(환경설치·기여·용어집) ├── codes/ ← 14개 언어 실행 코드 ★ │ ├── python/ java/ cpp/ c/ csharp/ go/ swift/ │ ├── javascript/ typescript/ kotlin/ dart/ rust/ ruby/ zig/ │ └── (각 언어 = 장 구조 복제 + 빌드 설정 + 공용 모듈) ├── en/ ja/ ru/ zh-hant/ ← 다국어판(각자 docs + mkdocs.yml) ├── overrides/ ← Material 테마 커스터마이즈(HTML/CSS) ├── mkdocs.yml ← 사이트 설정·네비게이션·확장·플러그인 ├── Dockerfile ← python:3.10-alpine + mkdocs-material 9.5.5 ├── docker-compose.yml ← 로컬 한 줄 빌드·서빙 └── README.md (+ zh-hant/en/ja/ru 번역)
경로역할
docs/chapter_*/책 본문. index.md(장 도입) + 절별 .md + *.assets/(삽화·애니메이션 GIF).
codes/{언어}/chapter_*/그 장의 예제를 해당 언어로 구현. 본문이 스니펫으로 끌어오는 원본.
codes/python/modules/ · test_all.py공용 자료구조·출력 도우미 + 전 예제 회귀 테스트(pytest).
codes/rust/Cargo.toml각 예제를 실행 타깃(bin)으로 등록 — cargo run 한 줄로 돌아가게.
mkdocs.yml테마(Material)·네비게이션(16장)·마크다운 확장·플러그인을 정의하는 빌드 두뇌.
Dockerfile / docker-compose.yml의존성·빌드 절차를 컨테이너에 박제 — 누구나 동일하게 사이트 재현.
overrides/Material 기본 템플릿 위에 덧씌우는 커스텀 HTML 조각·스타일.

6학습 포인트 (기술별)

이 레포에서 진짜 배울 만한 것 — "알고리즘"과 "엔지니어링" 두 갈래.

포인트 1 · 자료구조·알고리즘 기초

"내 언어로, 그림 보며, 돌려보며 익힌다"

가장 큰 학습 가치는 당연히 콘텐츠 자체다. 복잡도(2장)→선형 자료구조(4·5·6장)→트리·힙·그래프(7·8·9장)→탐색·정렬(10·11장)→문제풀이 패러다임(12~15장) 순서가 입문 커리큘럼으로 잘 짜여 있다. 그림으로 직관을 잡고, 코드로 검증하는 순환이 이 책의 학습법이다.

포인트 2 · 폴리글랏(다언어) 비교 학습

"같은 알고리즘, 14개 언어로 보면 언어의 본질이 보인다"

퀵소트 하나를 Python·Rust·Go로 나란히 읽으면, 파이썬의 간결함, 러스트의 소유권/borrow, 고의 명시적 슬라이스 같은 언어 철학 차이가 드러난다. 새 언어를 배울 때 "이미 아는 알고리즘"을 매개로 비교하는 건 매우 효율적인 학습법이다.

포인트 3 · Docs-as-Code / MkDocs-Material

"아름다운 기술 문서 사이트를 만드는 법"

이 레포는 그 자체가 MkDocs-Material 모범 사례다. mkdocs.yml 한 파일로 검색·다크모드·코드복사·언어탭·수식·라이트박스를 켜는 법, pymdownx.snippets로 코드를 동기화하는 법을 그대로 베껴 내 프로젝트 문서에 쓸 수 있다.

포인트 4 · 재현 가능한 빌드(Docker)

"내 컴퓨터에선 됐는데"를 없애는 법

Dockerfile이 Python 버전·mkdocs-material 버전(9.5.5)·빌드 순서를 못 박아, 누구 환경에서나 동일한 사이트가 나오게 한다. 작은 프로젝트로 의존성 고정과 컨테이너 빌드를 체득하기 딱 좋은 예제다.

포인트 5 · 오픈소스 기여 워크플로

"구조가 친절하면 기여가 쉬워진다"

장 구조를 거울처럼 복제한 레이아웃 덕분에, 기여자는 "빈 칸"을 찾아 채우면 된다. 코드 번역(언어 추가)·오타 수정·번역 검수 같은 다양한 난이도의 기여 경로가 열려 있어, 첫 오픈소스 PR 연습 대상으로 훌륭하다.

본문이 코드를 "복붙"이 아니라 "참조"로 가져오는 개념은 대략 이렇게 생겼다(개념 예시 — 실제 문법과 다를 수 있음):

# docs/chapter_sorting/quick_sort.md 안에서
# 코드를 직접 적지 않고, 실제 파일을 끼워 넣는다
```python
--8<-- "codes/python/chapter_sorting/quick_sort.py"
```
# → 빌드 때 진짜 quick_sort.py 내용이 그 자리에 들어감
# → 코드를 고치면 책도 자동으로 최신화

7시스템 요구사항

"읽기 · 코드 실행 · 사이트 빌드" 세 단계로 요구사항이 다르다.

하고 싶은 일필요한 것
그냥 읽기웹 브라우저만 있으면 됨 — hello-algo.com 접속, 또는 Releases의 PDF/EPUB 다운로드.
예제 코드 실행고른 언어의 툴체인만. 예: Python 3, JDK(Java), cargo(Rust), go, Node(JS/TS), gcc/CMake(C/C++) 등.
사이트 로컬 빌드Python 3.10 + mkdocs-material==9.5.5 + mkdocs-glightbox (pip install).
빌드 환경 통째로Dockerdocker compose up 한 줄이면 :8000에서 사이트가 뜬다(파이썬 설치 불필요).
OSmacOS · Windows · Linux 모두 가능(순수 텍스트·표준 툴체인).
감 잡기

특별한 하드웨어(GPU·고사양 메모리)는 전혀 필요 없다. 가장 가벼운 길은 그냥 사이트를 읽는 것이고, 가장 확실한 실습 길은 저장소를 클론해 Docker로 사이트를 띄운 뒤, 관심 언어 폴더로 들어가 예제를 하나씩 실행해 보는 것이다.

8직접 해볼 수 있는 실습 과제

읽기만 하면 남는 게 없다 — 손으로 돌리고, 비교하고, 기여까지.

실습 1

내 언어로 예제 하나 실행하기 난이도 ★☆☆ 입문

저장소를 클론하고 codes/python/chapter_searching/binary_search.py(또는 본인 언어)를 직접 실행해 본다. "책에서 본 코드가 실제로 도는" 첫 경험으로, hello-algo의 일건운행(一键运行 = 한 번에 실행) 컨셉을 체감하는 게 목표.

실습 2

Docker로 사이트 오프라인 띄우기 난이도 ★☆☆ 입문

docker compose up으로 사이트를 빌드해 localhost:8000에서 열어 본다. "마크다운 + 코드 → 완성된 웹사이트"라는 정적 사이트 생성 파이프라인이 내 손에서 도는 걸 확인한다.

실습 3

같은 알고리즘, 3개 언어로 읽고 비교 난이도 ★★☆ 중급

퀵소트(chapter_sorting/quick_sort)를 Python·Rust·Go 세 폴더에서 펼쳐 놓고, 스왑·재귀·메모리 처리가 언어마다 어떻게 달라지는지 표로 정리한다. 언어 철학의 차이를 알고리즘이라는 공통 렌즈로 보는 연습.

실습 4

예제에 추적 출력 넣고 테스트 돌리기 난이도 ★★☆ 중급

파이썬 예제 하나에 단계별 print를 넣어 알고리즘의 중간 상태를 눈으로 본 뒤, test_all.py(pytest)를 돌려 회귀 테스트가 여전히 통과하는지 확인한다. "동작을 바꾸지 않는 로깅"과 테스트의 감을 잡는다.

실습 5

빠진 예제 채워 PR 보내기 난이도 ★★★ 고급

잘 아는 언어에서 아직 비어 있거나 개선 여지가 있는 예제를 골라, 장 구조를 그대로 따라 파일을 추가하고 본문 스니펫이 잘 끌어오는지 확인한 뒤 PR을 연다. 단일 진실원·기여 가이드(부록 16.2)를 실전으로 익히는 과제.

9관련 기술 심화 학습 로드맵

hello-algo를 발판으로 "탄탄한 CS 기초 + 문서 엔지니어링"을 익히는 4주 계획.

주차주제학습 자료 (장/파일)
1주차복잡도 분석 + 선형 자료구조2장(복잡도) · 4장(배열·연결리스트) · 5장(스택·큐) + 실습 1
2주차해시·트리·힙·그래프6장(해시) · 7장(트리) · 8장(힙) · 9장(그래프)
3주차탐색·정렬 직접 구현·비교10장(탐색) · 11장(정렬) + 실습 3·4
4주차문제풀이 패러다임12장(분할정복) · 13장(백트래킹) · 14장(DP) · 15장(탐욕)
docs-as-code로 나만의 기술 노트 사이트 만들기MkDocs-Material · pymdownx 확장 · Docker 배포 + 실습 2·5
왜 이 순서인가

알고리즘은 "그릇 → 절차" 순서로 쌓아야 한다. 복잡도(평가 기준)를 먼저 손에 쥐고, 선형 그릇(배열·스택)에서 비선형 그릇(트리·그래프)으로 넓힌 뒤, 그 그릇들로 탐색·정렬을 돌리고, 마지막에 분할정복·DP·탐욕 같은 문제 설계 사고법으로 마무리한다. hello-algo의 장 순서가 이미 이 곡선을 따른다.

10핵심 키워드 사전

본문에 나온 용어 빠른 참조.

자료구조데이터를 담는 그릇의 모양(배열·연결리스트·트리·해시·그래프 등).
알고리즘그 그릇으로 문제를 푸는 절차(정렬·탐색·DP 등).
시간/공간 복잡도입력이 커질 때의 속도·메모리 증가율. Big-O로 표기(O(n), O(log n)…).
동적계획법(DP)큰 문제를 겹치는 작은 문제로 쪼개고 결과를 저장해 재사용하는 기법(14장).
백트래킹가능성을 시도하다 막히면 되돌아가며 해를 찾는 탐색(13장, N-퀸 등).
분할정복문제를 절반씩 나눠 풀고 합치는 전략(12장, 병합정렬·하노이탑).
탐욕법매 순간 최선을 골라 전체 해에 도달하려는 전략(15장).
MkDocs / Material for MkDocs마크다운을 기술 문서 사이트로 굽는 정적 사이트 생성기와 그 현대적 테마.
정적 사이트 생성기(SSG)원본을 미리 완성 HTML로 구워두는 도구. 빠르고 안전하고 저렴.
pymdownx.snippets마크다운에 실제 소스 파일을 끼워 넣는 확장 — 책과 코드의 동기화 비결.
단일 진실원(SSoT)같은 정보를 한 곳에만 두는 원칙. 코드는 codes/에만, 책은 참조만.
폴리글랏(다언어)같은 알고리즘을 14개 언어로 제공 — 비교 학습·언어 입문에 유리.
CC BY-NC-SA 4.0저작자표시·비영리·동일조건변경허락. 상업적 재사용엔 제약이 있는 콘텐츠 라이선스.

11참고 링크