clang.engineer

코루틴이란 무엇인가 — 스레드와 무엇이 다른가

코루틴을 언어에 종속되지 않은 공통 개념으로 정리한다. 일반 함수와의 차이(suspend/resume), 스레드와의 차이, 구현 방식의 갈림길(stackful vs stackless)을 짚는다. 나아가 'async/await은 별도 스레드를 만든다'는 흔한 오해를 이벤트 루프로 깨고, 보존 상태의 저장 위치가 구현마다 어떻게 달라지는지 C++의 std::async와 co_await 비교까지 파고든다.

Oh My Tmux! — 완성형 tmux config 배포판, 무엇을 바꾸고 어떻게 커스텀하나

gpakosz/.tmux(Oh My Tmux!)의 2파일 구조와 자동 소싱, vanilla tmux 대비 바꾸는 것(C-a 보조 prefix·vi 복사·SSH-aware 상태바), .tmux.conf.local 커스터마이징 워크플로(tmux_conf_* 노브·#!important·플러그인 자동 관리), 기본 키맵 요점과 stock 키맵을 지키는 tmux_conf_preserve_stock_bindings까지 — 채택 전에 '무엇을 상속하는지' 한 장으로.

추상화 ⑥ trait·제네릭 — 인터페이스와 템플릿을 하나로

C++의 인터페이스·템플릿·concept에 해당하는 Rust 추상화의 중심. 공유 동작을 정의하는 trait, 제약을 미리 선언해 에러가 친절한 제네릭 + trait bound, 런타임 다형성(dyn)과 컴파일 타임 단형화의 트레이드오프, 그리고 라이브러리 설계에서 만나는 orphan rule까지. C++ 템플릿의 '일단 쓰고 안 되면 에러' 습관을 교정한다.