알고리즘을 눈으로 보면서 배우자 — Algorithm Visualizer 소개
## 알고리즘 공부, 머릿속으로만 하기엔 한계가 있잖아요 코딩 테스트 준비하거나 자료구조·알고리즘 수업을 듣다 보면, 머릿속으로 배열이 정렬되는 과정을 시뮬레이션하거나 트리가 어떻게 탐색되는지 상상하느라 고생한 경험 다들 있으실 거예요. 교과서의...
Video.js를 16년 만에 되찾아 88% 더 가볍게 다시 만든 이야기
## 16년 된 오픈소스 프로젝트의 귀환 웹에서 비디오 플레이어를 다뤄본 적 있다면 Video.js라는 이름을 한 번쯤 들어봤을 거예요. 2010년에 처음 나온 이 라이브러리는 HTML5 비디오가 아직 불안정하던 시절부터 웹 비디오 재생의 표준 ...
빌드도 없고 NPM도 없는 JS 프레임워크 — React가 싫다면 QiteJS를 한번 보세요
## 또 새로운 자바스크립트 프레임워크라고요? 자바스크립트 생태계에서 "새 프레임워크 나왔대"라는 말은 거의 날씨 얘기 수준이긴 한데요, QiteJS는 좀 다른 방향에서 접근하고 있어서 눈길을 끌어요. QiteJS는 스스로를 "빌드 없음, NPM 없...
HTML select 요소, 드디어 마음대로 꾸밀 수 있게 됐는데… 이걸로 대체 뭘 만든 거야?
## 웹 개발자의 오랜 숙원, 커스터마이징 가능한 select 웹 프론트엔드를 해본 분이라면 한 번쯤 겪어봤을 거예요. 드롭다운 메뉴, 그러니까 HTML의 `` 요소를 디자인 시안대로 꾸미려고 했는데, 도저히 CSS로는 안 되는 거죠. 브라우저마...
테크 뉴스를 읽는 당신,
직접 만들어볼 준비 되셨나요?
17가지 수익 모델 실습 · 144+ 강의 · 자동화 소스코드 제공
정규표현식의 findall은 사실 O(n²)이었다 — 아무도 고치지 않은 이차 시간 복잡도 문제
## 우리가 당연하게 쓰던 findall의 숨겨진 비용 프로그래밍에서 정규표현식(regex)은 텍스트 처리의 만능 도구처럼 쓰입니다. 로그 파싱, 입력 검증, 데이터 추출 등 거의 모든 곳에서 활용되죠. 그런데 정규표현식으로 문자열에서 "모든 매...
Antithesis가 만든 Bombadil: 웹 UI를 위한 속성 기반 테스팅의 새로운 접근
테스트를 작성할 때 가장 어려운 부분은 뭘까요? 아마 "어떤 시나리오를 테스트해야 하는지"를 정하는 것일 겁니다. 단위 테스트든 E2E 테스트든, 결국 개발자가 머릿속으로 시나리오를 떠올리고 하나하나 수작업으로 작성해야 합니다. 그런데 우리가 미처...
RSS 리더를 추천하는 기사가 37MB라니, 웹은 어디로 가고 있는가
## 아이러니의 극치 PC Gamer가 RSS 리더를 추천하는 기사를 발행했습니다. RSS는 웹의 초기 정신을 대표하는 기술입니다. 가볍고, 빠르고, 사용자가 원하는 콘텐츠만 깔끔하게 받아볼 수 있는 구독 포맷이죠. 그런데 이 RSS 리더 추천 ...
커링(Currying)에 대한 반론: 정말 좋은 패턴인가, 다시 생각해볼 때
## 함수형 프로그래밍의 "당연한 미덕"에 의문을 제기하다 함수형 프로그래밍(FP)을 공부하다 보면 반드시 만나는 개념이 있습니다. 커링(Currying)이죠. 여러 인자를 받는 함수를 하나의 인자만 받는 함수의 체인으로 변환하는 기법입니다. FP ...
Node.js Worker Threads, 문제투성이지만 우리에겐 딱 맞았다 — Inngest의 실전 경험기
## Node.js의 오래된 고민, 동시성 Node.js를 사용하는 개발자라면 한 번쯤 이런 상황을 겪어봤을 것입니다. 서버가 대부분의 시간에는 빠르게 응답하는데, 특정 요청이 들어오면 갑자기 모든 요청의 응답 시간이 느려지는 현상. 이는 Nod...
Windows 네이티브 앱 개발은 왜 이렇게 엉망이 되었나 — WinUI, UWP, Win32의 혼돈 정리
## 한때 가장 강력했던 데스크톱 플랫폼의 현재 Windows는 여전히 전 세계 데스크톱 운영체제 시장의 70% 이상을 차지하고 있습니다. 그런데 아이러니하게도, 이 거대한 플랫폼을 위한 네이티브 앱을 만들려는 개발자들은 점점 더 혼란스러운 상황에 ...
자바스크립트 번들이 뚱뚱해지는 세 가지 근본 원인
## 번들 크기, 왜 계속 문제가 되는가 프론트엔드 개발자라면 누구나 한 번쯤 번들 분석기를 열어보고 경악한 경험이 있을 겁니다. 분명 간단한 기능만 만들었는데 번들 크기는 수 MB를 넘어가고, 사용자가 첫 화면을 보기까지 수 초가 걸립니다. 이...
2026년에 Common Lisp를 개발한다면 — 현대적 개발 도구 생태계 톺아보기
## 왜 지금 Common Lisp 개발 환경을 이야기하는가 Common Lisp는 1984년에 표준화된 프로그래밍 언어입니다. 40년이 넘은 언어라고 하면 대부분 "아직 쓰는 사람이 있어?"라고 반응할 수 있지만, 실제로 Common Lisp는 꾸...
WebGPU와 WASM으로 브라우저에서 전문가급 영상 편집이 가능해졌다
## 설치 없이 브라우저에서 영상 편집을 영상 편집이라고 하면 Adobe Premiere Pro나 DaVinci Resolve 같은 무거운 네이티브 앱을 떠올리기 마련입니다. 수 기가바이트의 설치 용량, 고사양 하드웨어 요구사항, 그리고 적지 않은 ...
세미콜론, 정말 필요한 걸까? 프로그래밍 언어 설계의 오래된 논쟁
## 세미콜론을 둘러싼 끝나지 않는 토론 프로그래밍을 처음 배울 때 가장 많이 마주치는 에러 중 하나가 "세미콜론을 빼먹었습니다"일 겁니다. C, Java, JavaScript 같은 언어에서 세미콜론(`;`)은 문장의 끝을 알려주는 필수 구문입니다....
터미널에서 즐기는 2D 샌드박스 서바이벌, Rust로 만든 Termcraft
## 터미널이 게임 엔진이 되는 순간 터미널은 개발자에게 가장 익숙한 인터페이스입니다. 매일 코드를 작성하고, 빌드하고, 배포하는 그 검은 화면에서 2D 샌드박스 서바이벌 게임을 즐길 수 있다면 어떨까요? Termcraft는 바로 그 아이디어를 ...
Deno의 위기 — CEO 부재, 레이오프, 그리고 JavaScript 런타임 전쟁의 현실
## Deno에 무슨 일이 일어나고 있는가 Node.js의 창시자 Ryan Dahl이 Node.js의 설계적 실수를 바로잡겠다며 2018년에 시작한 프로젝트 Deno가 심각한 위기를 맞고 있습니다. 최근 Deno 사의 상당수 인력이 정리해고(레이...
Ruby의 새 JIT 컴파일러 ZJIT, 불필요한 객체 로드·스토어를 제거하는 방법
## Ruby 성능의 새로운 장을 열다 Ruby는 오랫동안 "개발자 행복"을 최우선 가치로 내세워온 언어입니다. 하지만 그 대가로 성능 면에서는 늘 아쉬움이 있었죠. CPython과 함께 "느린 동적 언어"의 대표 주자로 꼽혀왔고, Rails 애...
Rust + WASM 파서를 TypeScript로 다시 짰더니 3배 빨라졌다고?
## 상식을 뒤집는 벤치마크 "Rust로 작성한 WASM 파서를 TypeScript로 재작성했더니 3배 빨라졌다." 이 문장만 보면 뭔가 잘못된 것 같습니다. Rust는 C/C++에 필적하는 성능을 내는 시스템 프로그래밍 언어이고, TypeScrip...
Fortran으로 Bluesky 클라이언트를 만든 사람들이 나타났다
## 2026년에 Fortran이라니 프로그래밍 언어의 역사를 논할 때 빠지지 않는 이름이 있다. 바로 Fortran이다. 1957년에 처음 등장한 이 언어는 거의 70년의 역사를 가지고 있으며, 주로 과학 계산과 수치 해석 분야에서 명맥을 유지해 ...
Perl에 자동 병렬화와 JIT가 온다 — Parallel Perl 프로젝트의 도전
## Perl은 아직 살아있다, 그것도 아주 야심차게 Perl이라는 이름을 들으면 많은 개발자가 과거의 언어라고 생각할 수 있습니다. Python과 Ruby에 자리를 내준 지 오래되었고, "Perl 6"가 Raku로 이름을 바꾸면서 정체성 혼란까지 ...