어셈블리어로 웹서버를 만든다고? 'ymawky' 프로젝트가 보여주는 극한의 로우레벨 도전
## 인생의 의미를 (잃기) 위해 어셈블리로 웹서버를 짠 사람 요즘 웹서버 하나 만들려면 선택지가 정말 많죠. Node.js로 몇 줄이면 뚝딱이고, Go나 Rust 같은 언어를 쓰면 성능도 뽑아낼 수 있고요. Python의 Flask나 FastA...
Bun이 Zig를 버리고 Rust로 갈아탄다? 실험적 재작성 버전이 99.8% 테스트 통과
## Bun, Rust로 다시 태어나는 중 JavaScript 런타임 시장은 한동안 Node.js 천하였죠. 그러다 Deno가 등장해서 "Node.js의 단점을 고쳐보자" 했고, 이어서 **Bun** 이 나타나서 "우리는 그냥 압도적으로 빠르게 만들...
Mercury가 200만 줄의 Haskell로 은행 시스템을 운영하는 법
## Haskell이 진짜 프로덕션에서 돌아간다고? Haskell 하면 보통 "학교에서 배우는 함수형 언어", "수학 잘하는 사람들이 쓰는 언어" 같은 이미지가 떠오르잖아요. 그런데 미국의 핀테크 스타트업 Mercury가 자사 블로그에서 공개한 내용...
C 함수에 레지스터 인자를 적게 넘기면 생기는 무서운 일
## 호출 규약, 보이지 않지만 모든 걸 좌우하는 약속 Microsoft의 레이먼드 첸이 운영하는 'The Old New Thing' 블로그에서 또 흥미로운 저수준 이야기를 다뤘어요. 이번 주제는 **호출 규약(calling convention)...
테크 뉴스를 읽는 당신,
직접 만들어볼 준비 되셨나요?
17가지 수익 모델 실습 · 144+ 강의 · 자동화 소스코드 제공
30년 된 FastCGI가 HTTP보다 리버스 프록시에 더 나은 이유
## 왜 갑자기 FastCGI 이야기인가요 웹 개발 좀 해보신 분이라면 "FastCGI"라는 단어를 한 번쯤은 들어보셨을 거예요. PHP를 nginx에 붙일 때 `php-fpm`을 쓰는데, 그게 바로 FastCGI거든요. 1996년에 만들어진, 거의...
CJIT - C 언어를 컴파일 없이 바로 실행하는 새로운 방법
## C 코드를 스크립트처럼 실행한다고요? 이탈리아의 Dyne.org가 재미있는 도구를 공개했어요. **CJIT(C, Just in Time)** 라는 건데요. 이름 그대로 **C 언어 코드를 컴파일 단계 없이 바로 실행할 수 있게 해주는 도구**예...
Flipdisc, 그 찰칵 소리 나는 픽셀 디스플레이의 매력
## 찰칵찰칵 소리 나는 디스플레이를 아세요? 공항이나 기차역 천장에 매달려 있던 옛날 시간표 디스플레이를 본 적 있으신가요? 글자가 바뀔 때마다 "드르륵" 하고 소리가 나면서 알파벳이 휙휙 넘어가던 그것 말이에요. 비슷하게, 점 하나하나가 "찰...
V8의 Orinoco — 자바스크립트 GC가 멈추지 않게 만드는 기술
## 자바스크립트가 빠르려면 GC가 똑똑해야 한다 자바스크립트 엔진 얘기를 하면 보통 "V8이 빠르다"는 말로 끝나기 쉬운데요, 실제로 V8이 빠른 이유는 여러 겹의 정교한 기술이 쌓여 있기 때문이에요. 그중 하나가 바로 **가비지 컬렉션(GC, G...
Lute 등장: Roblox의 Luau가 독립 런타임을 갖게 됐다
## Luau가 게임 엔진 밖으로 나왔다 혹시 Luau(루아우)라고 들어보셨어요? Roblox에서 만든 프로그래밍 언어인데요. 원래 Lua라는 가벼운 스크립트 언어가 있는데, 그걸 Roblox가 게임 개발에 맞게 대대적으로 손본 게 Luau예요. 점...
async가 약속한 것과 실제로 가져다준 것 — 비동기 10년의 회고
## 도입: async/await, 정말 우리 삶을 편하게 만들었나요 2010년대 초중반부터 거의 모든 주류 언어가 **async/await** 키워드를 받아들였어요. JavaScript, C#, Python, Rust, Kotlin, Swift...
[심층분석] 직접 만들어보면서 배우는 게 진짜다: 'Build Your Own X'가 50만 별을 받은 이유
## 들어가며: 왜 우리는 "직접 만들어보기"에 끌리는가 혹시 이런 경험 해보셨어요? React를 몇 년째 쓰고 있는데, 막상 "가상 DOM이 어떻게 동작해요?"라는 질문을 받으면 머릿속이 하얘지는 그런 순간이요. 또는 매일 `git commit...
LiteLLM보다 44배 가볍다는 Go 기반 AI 게이트웨이, GoModel
## AI 게이트웨이가 대체 뭐길래 요즘 AI 앱을 만들다 보면 이런 고민이 생깁니다. OpenAI도 쓰고 싶고, Claude도 쓰고 싶고, 로컬에 띄운 Llama도 붙이고 싶은데, 각자 API 형식이 다 달라서 코드가 지저분해진다는 거예요. 그...
여러 언어가 섞인 모노레포에서 Changesets로 버전 관리하기
## 모노레포의 골치 아픈 문제, 버전 관리 모노레포(monorepo)라는 개념이 이제 꽤 익숙하시죠. 여러 프로젝트를 하나의 저장소에 모아놓고 관리하는 방식인데요, Google이나 Meta 같은 회사들이 오랫동안 써온 구조이고, 요즘은 스타트업들도...
리눅스 IPC의 현재와 미래: 메시지 큐 엿보기, io_uring, 그리고 bus1 이야기
## IPC가 뭐길래 또 이야기하냐면 프로그램 하나가 모든 일을 다 하던 시대는 오래전에 끝났어요. 요즘 서버는 웹 서버, DB, 캐시, 로그 수집기 등 여러 프로세스가 서로 데이터를 주고받으며 굴러가죠. 이렇게 프로세스끼리 통신하는 방식을 통틀어 ...
[심층분석] AI 에이전트도 진화가 필요하다: EvoMap Evolver와 GEP 프로토콜이 던진 질문
## AI 에이전트의 '진화'라는 새로운 화두 요즘 AI 에이전트 업계에서 조용하지만 뜨거운 논쟁이 벌어지고 있어요. 바로 **"AI 에이전트도 스스로 진화할 수 있어야 한다"** 는 주장인데요. GitHub에 올라온 EvoMap/evolver라...
90분이면 현대 CPU의 모든 것이 보인다 - 꾸준히 업데이트되는 마이크로프로세서 입문서
## 왜 CPU를 다시 공부해야 할까 요즘 대부분의 개발자는 CPU를 **추상화된 블랙박스**로 다뤄요. 파이썬 한 줄 쓰면 그게 어떻게 기계어로 변환되고, 어떤 파이프라인을 타고, 캐시 미스가 어떻게 성능을 갉아먹는지 몰라도 앱은 잘 돌아가거든...
Keycard: API 키를 환경변수에 노출하지 않고 서브프로세스에 안전하게 주입하는 방법
## 환경변수에 API 키 넣는 거, 사실 꽤 위험하거든요 개발하다 보면 API 키나 시크릿 토큰을 환경변수로 설정하는 일이 정말 많죠. `.env` 파일에 넣어두고 `export`하거나, 셸 프로파일에 적어두거나. 간편하긴 한데, 이 방식에는 생각...
TanStack Start가 React Server Components를 품었다 — Next.js 말고도 선택지가 생긴 RSC 세계
## React Server Components, 이제 Next.js만의 것이 아니에요 React Server Components(RSC)가 처음 발표됐을 때, 많은 개발자들이 기대하면서도 한 가지 불만이 있었어요. "이거 결국 Next.js에서...
코드를 적게 쓰는 것도 책임감이다 — 오픈소스 메인테이너의 이야기
## 코드를 많이 쓰는 게 항상 좋은 걸까? 개발자라면 누구나 한 번쯤 고민해봤을 거예요. 기능을 더 추가하고, 라이브러리를 더 키우고, 더 많은 코드를 작성하는 게 정말 '잘하는' 건지 말이에요. Rust 생태계에서 활발하게 활동하는 오픈소스 ...
공 하나도 못 저글링하면서 세 개를 돌리려 하고 있진 않나요?
## 기본기의 재발견 "Most people can't juggle one ball" — 대부분의 사람들은 공 하나조차 제대로 저글링하지 못한다. LessWrong에 올라온 이 글의 제목이 뜻하는 바가 뭘까요? 저글링을 배울 때, 보통 사람들은 ...