Trawling

최신기사

AI, 개발 도구, 오픈소스, 보안과 인프라의 변화와 이용 조건을 설명하는 최신 기사와 해설입니다.

발행

JavaScript에서 따옴표와 괄호 없이 문자열을 만드는 방법

JavaScript의 Error.prepareStackTrace와 내장 메서드를 조합해 따옴표나 괄호 없이 임의의 문자열을 생성하는 기법을 설명합니다. 생성한 문자열을 Function 생성자나 eval에 넣어 코드를 실행하는 방법도 제시하며, 작성자는 실용성은 거의 없지만 WAF 우회에는 쓰일 수 있다고 말합니다.

발행

🔢 JavaScript가 조용히 손상시키는 JSON 숫자

JavaScript의 JSON.parse는 큰 정수를 반올림하고, 너무 큰 수를 Infinity로 바꾸며, 4.0 같은 숫자 표기 형식도 보존하지 않습니다. 글은 숫자 토큰을 그대로 보존하는 파서 정책을 제시하고, 왕복 변환 검사만으로 숫자 손상을 판별하기 어렵다는 댓글의 지적도 나옵니다.

발행

Node.js, 2026년 10월 21일 보안 릴리스

Node.js 26.x, 24.x, 22.x에서 발견된 취약점을 해결하는 보안 업데이트가 배포됩니다. 최고 심각도는 세 릴리스 라인 모두 HIGH이며, Brotli 디코더의 범위를 벗어난 쓰기 취약점은 원격 코드 실행으로 이어질 수 있습니다.

발행

Ende의 시작, 커뮤니티가 이어가는 Deno 포크

Deno 런타임 개발이 1년 뒤 중단될 예정이라는 소식에, 글쓴이가 포크 프로젝트 Ende를 시작한다고 밝혔습니다. Node.js 호환성과 Deploy, KV 같은 제품을 덜어내고 모듈별 권한, 비신뢰 코드 샌드박스 등을 개발하겠다는 계획입니다.

발행

document.currentScript로 HTML 안에서 바로 렌더링하기

실행 중인 script 요소를 document.currentScript로 찾아 자기 자리에 결과를 렌더링하는 방법을 소개합니다. 별도 템플릿 언어나 ID 선택자 없이 날짜, 문구, 간단한 상호작용을 HTML 가까이에서 처리하지만, 비동기 데이터 처리에는 추가 요청과 HTML 보안 처리가 따릅니다.

발행

포맷하면 스네이크로 바뀌는 테트리스 JavaScript 파일

JavaScript 포맷터와 난독화 해제 도구가 코드를 읽기 좋게 바꾸는 과정에서 프로그램 동작까지 바꿀 수 있다는 분석입니다. 작성자는 37개 이상의 도구에서 186가지 기법을 찾아, 원본은 테트리스를 실행하고 처리된 코드는 스네이크를 실행하는 시연을 만들었습니다.

발행

괄호 없이 JavaScript 함수를 호출하는 또 다른 방법

V8의 Error.prepareStackTrace와 프로토타입 변환을 조합해 괄호 없이 임의의 JavaScript 함수를 만들고 실행하는 방법을 설명합니다. 이 기법은 Error 객체와 배열의 문자열 변환, 단항 + 연산자의 암묵적 형 변환을 차례로 이용합니다.

발행

nvm-sh/nvm: 셸에서 Node.js 버전 관리하기

nvm은 사용자별로 설치해 셸에서 여러 Node.js 버전을 설치하고 전환하는 POSIX 호환 버전 관리자입니다. 프로젝트의 .nvmrc에 버전을 지정하면 해당 디렉터리에서 쓸 버전을 선택할 수 있으며, Docker와 비대화형 셸 설정 방법도 안내합니다.

발행

Node.js 26 기본 Temporal API, Date의 서머타임 한 시간 오차를 바로잡습니다

Node.js 26에서 기본 활성화된 Temporal API로 달력 기준 하루 더하기를 처리하면, 서머타임 전환 때 Date에서 생기는 한 시간 오차를 피할 수 있습니다. 다만 작성자의 벤치마크에서는 Temporal의 .add()가 Date보다 약 19배 느렸고, 잘못된 날짜 입력도 기본 설정에서는 오류 대신 보정하므로 주의가 필요합니다.

발행

Kiesel 개발 기록 #15: 0.4.0 출시

Zig로 작성한 JavaScript 엔진 Kiesel이 Zig 0.17로 업데이트되고 0.4.0을 출시했습니다. 명령행 인자·환경 변수 API, Iterator 헬퍼, SerenityOS 포트와 인라인 캐시 개선을 담았으며, 인라인 캐시 변경은 마이크로벤치마크에서 20~30% 속도 향상을 보였습니다.

발행

2D 차량 물리 시뮬레이션 — GTA 차량 시스템의 출발점

1996년 Atari ST에서 만든 2D 물리 시뮬레이션이 Grand Theft Auto 차량 시스템의 토대가 됐습니다. 저자는 이를 JavaScript로 재현하고, 강체 물리와 단순화한 타이어 힘 모델이 차량 움직임을 만드는 과정을 설명합니다.

발행

Deno와의 우정은 끝났고, 이제 Node가 가장 친한 친구입니다

Deno를 주로 쓰던 저자가 SvelteKit 프로젝트와 정적 사이트 생성기를 Node.js로 옮긴 경험을 공유합니다. Node.js v26.10.0에서 마이그레이션 작업은 적었고 빌드 시간은 15% 줄었지만, Deno의 권한 관리와 편리한 기본 기능을 선호하는 개발자들의 반론도 나왔습니다.

발행

Vite+ 1.0 발표 — 웹 개발 도구를 하나의 명령 체계로

VoidZero가 Vite, Vitest, Rolldown, Oxc 등을 한데 묶는 오픈소스 도구 체인 Vite+ 1.0을 공개했습니다. `vp` 명령으로 프로젝트 생성부터 테스트, 빌드, 작업 캐싱까지 다루며, 기존 프로젝트도 `vp migrate`로 전환할 수 있습니다.

발행

JavaScript로 재현한 A-ha의 〈Take On Me〉

Shadertoy 사운드 셰이더를 Dittytoy용 JavaScript 코드로 옮겨 A-ha의 〈Take On Me〉를 재현합니다. 압축된 악보 데이터와 직접 구현한 신스·보컬 처리 코드로 여러 악기 트랙을 재생합니다.

발행

p5.js로 GPU 프로그래밍 가르치기 — 컴퓨트 셰이더까지

p5.js의 셰이더 시스템 p5.strands가 컴퓨트 셰이더까지 확장됩니다. 익숙한 JavaScript 문법으로 픽셀 필터와 정점 변형부터 GPU 병렬 연산까지 단계적으로 익히며, 글에서는 WebGPU로 보이드(boids) 1만 개를 실행한 사례도 소개합니다.

발행

JavaScript 말장난: 태그드 템플릿 리터럴

태그드 템플릿 리터럴의 보간 문법 `${{ url }}`이 Mustache 템플릿의 `{{ url }}`처럼 보이는 점을 활용한 아이디어를 소개합니다. Helicone SDK는 태그 함수로 프롬프트의 변수 이름과 값을 기록해 관측 도구에서 분석할 수 있게 합니다.