흩어진 글을 전체 지형·관계·권장 진입 순서로 묶은 학습 지도 모음이다. 모든 글을 순서대로 읽는 목차가 아니라, 각 Roadmap의 한눈에 보기에서 현재 문제에 맞는 줄기나 Branch를 골라 Zoom-in한다.
Troubleshooting·Tool·Comparison처럼 핵심 학습 경로와 역할이 다른 문서는 단계에 억지로 넣지 않고 별도 Branch나 Appendix로 둔다.
개발환경 계열은 처음부터 전부 순서대로 읽을 필요는 없지만, 바닥 구조를 따라가고 싶다면 다음 흐름이 가장 자연스럽다.
1
2
3
4
5
6
7
8
9
| Linux
↓
Shell
↓
Terminal
↓
tmux
↓
Neovim
|
이 순서는 각 도구의 우열이 아니라 아래 계층이 위 계층의 동작을 설명해 주는 정도를 기준으로 잡은 것이다. macOS·dotfiles·키보드는 이 직선 위의 다음 단계라기보다 서로 다른 개발환경 문제축이다.
🖥️ 개발환경
시스템에서 터미널 애플리케이션까지
| 로드맵 | 무엇을 위한 지도인가 |
|---|
| Linux | 서버에 접속 → 관측 → 계정·권한 → 서비스 → 로그로 이어지는 운영 흐름. Network·폐쇄망 등은 별도 Branch |
| 셸 | Script 실행 모델 → Bash 해석·확장 → CLI 계약 → Process·Job·Session. 환경 재현과 tmux는 다른 Roadmap으로 넘김 |
| Terminal | 물리 Terminal → Terminal Emulator·PTY → termios → ANSI/VT → terminfo → curses → 현대 TUI로 이어지는 입출력·렌더링 바닥 |
| tmux | Terminal Multiplexer의 session/window/pane 구조 → 설정 → Plugin 사용 → 필요할 때 Session workflow. Plugin 제작·AI 관제·피커는 선택 Branch |
| Neovim | Vim/Neovim/Distro 계층 → 편집 기본기 → 최소 Lua → LazyVim 구조가 사용자 줄기. Plugin 개발·LSP/DAP는 별도 Branch |
개발환경을 구성하고 재현하는 다른 축
| 로드맵 | 무엇을 위한 지도인가 |
|---|
| dotfiles | Git 정본을 공통 기반으로, Home 배치(symlink·bare/yadm·chezmoi), Host별 값, Package 재현을 서로 다른 축으로 선택 |
| macOS | System Setup · Launcher/Productivity · Window Management/Automation을 독립 문제축으로 탐색 |
| 키보드 | 입력 습관 → Keymap 개념 → Firmware(QMK/ZMK) → ZMK 구현. VIA/Vial/ZMK Studio와 Karabiner는 다른 제어 계층으로 분리 |
🧠 기반 원리
| 로드맵 | 무엇을 위한 지도인가 |
|---|
| Program Execution | Source Code가 Compiler·Linker·Loader를 거쳐 Process가 되고, Virtual Memory·System Call·ABI·Runtime을 지나 최종적으로 ISA와 CPU 실행으로 이어지는 전체 경로 |
🔤 언어
| 로드맵 | 무엇을 위한 지도인가 |
|---|
| 모던 C++ | compile/link 모델을 바닥에 두고 객체 수명 → RAII → move/ownership 표현 → STL·lambda → template·modern language로 진행. CMake·동시성은 Branch |
| Go | package/module → struct/interface → core data types → explicit error flow → concurrency → idiom. Tooling은 전 과정에 걸친 축 |
| Rust | ownership·borrow·lifetime을 중심으로 data model → failure → trait/generic → iterator/closure를 연결. Cargo·concurrency·smart pointer는 역할별 Branch |