Frozendict 🧊: Python·Node.js를 위한 최신 불변 해시맵

dev.to

frozndict는 Rust로 구현하고 Python·Node.js 바인딩을 제공하는 불변·해시 가능 딕셔너리입니다. 삽입 순서를 유지하면서 해시를 캐시하고 copy()를 O(1)로 처리하며, 작성자가 제시한 벤치마크에서는 반복·복제·동등성 검사에서 기존 구현과 비교 가능한 성능을 보입니다.

C++20의 u8/char8_t 하위 호환성 참사

Lobsters

C++20에서는 UTF-8 문자열 리터럴인 u8"..."의 원소 타입이 기존 const char에서 const char8_t로 바뀌었습니다. 그 결과 C++17에서 정상적으로 컴파일되던 코드가 const char*를 요구하는 기존 API 호출에서 깨질 수 있으며, Google C++ Style Guide도 가능한 경우 u8 접두사를 피하라고 권고합니다.

Typst 0.15, 큰 진전을 이루다 — LaTeX 대체재를 향한 발걸음

Lobsters

Rust로 작성된 조판 시스템 Typst가 0.15 버전을 공개하며 가변 폰트, MathML 수식 출력, 다중 문서 번들, 챕터별 참고문헌, 다중 PDF 표준 지정 등 대형 기능을 추가했습니다. HTML 출력은 아직 실험 단계지만 MathJax 없이 TeX 수준의 수식을 브라우저에 렌더링할 수 있게 되어 LaTeX 대체재로서의 가능성을 다시 보여주었습니다.

Go map 100만 엔트리는 16MB가 아닌 38MB — Swiss Table map의 실제 메모리 비용 분석

dev.to

Go 1.24부터 기본이 된 Swiss Table 기반 map에서 map[int64]int64 100만 엔트리가 이론값 16MB가 아닌 37.8MB를 차지하는 이유를 강제 GC와 HeapAlloc 측정으로 분석한 글입니다. 그룹·테이블 구조와 7/8 로드 팩터, 할당자의 크기 클래스 올림 때문에 엔트리당 비용이 21~44바이트 사이를 오가며, struct{} set의 패딩 회귀와 삭제 시 메모리 미회수 같은 실무 영향도 함께 다룹니다.

Pre-Greek — 고대 그리스어 속에 숨겨진 잃어버린 언어

Hacker News

고대 그리스어에는 인도유럽어로 거슬러 올라가지 않는 단어가 약 1,000개 존재하며, '미로(labyrinth)', '올리브', '바다(θάλασσα)', 아테네, 아킬레우스 같은 이름까지 포함됩니다. 이 글은 이 단어들이 그리스인 이전 에게해 지역의 기층 언어(Pre-Greek)가 남긴 흔적임을 음운 규칙, 발음 변형, 의미 범주 분포라는 세 가지 증거로 추적합니다.

Flet 1.0 – Python으로 크로스플랫폼 앱 만들기

Hacker News

Python 코드만으로 데스크톱·모바일·웹 앱을 만들 수 있는 UI 프레임워크 Flet이 1.0을 공개했습니다. Flutter 기반으로 150개 이상의 컨트롤을 제공하며, NumPy와 pandas 같은 Python 패키지를 그대로 쓰고 flet build로 각 플랫폼용으로 패키징할 수 있습니다.

PHP 배열에 키 하나를 추가했더니 메모리 25MB — packed 배열이 해시 테이블로 바뀌는 순간

dev.to

PHP 배열이 정수 순서대로 채워진 packed list로 유지되는 동안에는 원소당 16바이트로 매우 효율적이지만, 문자열 키 하나만 추가해도 해시 테이블로 전환되며 백만 개 원소 기준 25MB가 추가로 소모됩니다. 저자는 PHP 8.4 기준으로 zend_array 내부 구조를 뜯어보며 전환 조건과 비용을 계측했고, 연관 배열 대신 타입이 선언된 클래스로 행을 담으면 메모리가 거의 절반이 된다는 결론을 제시합니다.

PWC 391: 중앙값과 상자 쌓기 — Perl로 푼 두 가지 알고리즘 문제

dev.to

Perl Weekly Challenge 391회의 두 과제 — 정렬된 두 배열을 합쳐 중앙값을 구하는 문제와 상자를 서로 안에 넣어 최대 스택을 구하는 문제 — 를 Perl로 풀이한 글입니다. 저자는 통계 모듈·직접 정렬·부분 병합 세 접근을 벤치마크해 직접 정렬이 가장 빠르다는 결과를 확인했고, 상자 문제는 Perl 5.44의 새 class 문법과 너비 우선 탐색으로 해결합니다.

레이블된 매치 — 왜 모든 정규식 엔진에 없는가?

Lobsters

RE#(resharp) 정규식 엔진의 저자가 여러 패턴에 레이블을 붙여 한 번의 스캔으로 텍스트를 분류하는 'categorize_all' 기능을 소개합니다. spaCy NER 대비 약 4,500배 빠른 1.92 GB/s 처리량을 보였고, 교집합(&)과 여집합(~) 연산으로 윤년까지 포함한 달력 패턴이 32개 DFA 상태로 컴파일됨을 보여줍니다.

Bend — 증명으로 AI의 실수를 막는 고속 프로그래밍 언어

Hacker News

Bend는 C에 근접한 단일 코어 속도, 스레드나 락 없이 CPU·GPU로 확장되는 자동 병렬화, 그리고 Lean·Rocq식 증명 검사를 결합한 새 프로그래밍 언어입니다. LAWS.bend에 깨면 안 되는 법칙을 선언해 두면 AI가 이를 위반하는 코드를 배포할 수 없게 만들어, AI가 코드를 대신 쓰는 시대에 '의도를 정밀하게 명시하는 수단'을 표방합니다.

Vinix – V 언어로 작성된 모던 운영체제

Hacker News

V 언어로 커널을 처음부터 작성한 Unix-like 운영체제 Vinix가 Apple Silicon Mac 지원과 Alpine Linux 바이너리 호환을 내세우며 다시 주목받고 있습니다. 부팅 후 약 100MB RAM과 1GB 디스크만 사용하며, Linux 시스템 콜 인터페이스를 구현해 Chromium, GIMP, Blender 등 기존 패키지를 네이티브로 실행합니다. 현재 M1 GPU 드라이버 개발이 진행 중이며, Wine과 x86 변환 레이어를 기반으로 한 게이밍 지원도 로드맵에 포함되어 있습니다.

C 개발자가 Python for 루프를 이해하게 된 순간 — range 함수를 파헤치며 배운 것들

dev.to

C 언어 배경의 개발자가 Python의 for 루프를 낯설어하다가 range 함수의 구조를 이해하면서 루프의 동작 방식을 파악하게 된 과정을 정리한 글입니다. range가 start·stop·step 인자를 받는 불변 시퀀스 객체이며, 크기와 무관하게 O(1)의 시간과 공간으로 생성된다는 사실을 설명하고, 비선형 반복은 while 루프가 더 적합하다는 점을 짚습니다.

내 에이전트에게 bash는 잘못된 언어였을까? — 2,150줄 bash를 Python으로 옮기며 배운 것

dev.to

한 번에 하나의 작업을 처리하는 소규모 AI 에이전트를 2,150줄의 bash에서 Python으로 하루 만에 포팅한 개발자의 회고입니다. 결론은 단순한 'bash가 틀렸다'가 아니라, 리라이트의 비용은 시작 전에 이미 결정되어 있으며, 표현력 부족이 성능보다 먼저 설계를 지배한다는 분석입니다. 포팅 결과 코드는 40% 줄었지만 총 라인 수는 주석 때문에 오히려 늘었다는 역설적인 수치도 담겨 있습니다.

Rust 커뮤니티 주의보 — 유명 Rust 개발자와 인기 크레이트 소유자를 노린 표적 공격 진행 중

Lobsters

Rust 프로젝트가 rust-lang 멤버와 인기 크레이트(crates) 소유자를 노리는 표적 공격 캠페인이 진행 중이라고 공식 경고했습니다. 공격자는 채용·계약 등을 미끼로 한 화상 통화를 통해 악성코드를 설치하게 만들고, 탈취한 계정으로 악성 크레이트를 배포하려는 것이 목적입니다. Rust 사용자라면 MFA 상태와 계정 로그인 기록을 점검할 것이 권고됩니다.

Tilia — Haskell을 위한 새로운 포매터

Lobsters

Mark Karpov이 처음부터 새로 작성한 Haskell 포매터 Tilia가 Hackage에 첫 릴리스로 공개되었습니다. ghc-lib-parser 기반 위에서 오랫동안 난제로 꼽히던 연산자 픽시티(fixity) 추론과 CPP 전처리기 지원을 원리 있는 방식으로 해결하려 시도했다는 점이 핵심입니다. 포매터가 Cabal 빌드 플랜과 공생하며 실제 의존성 정보를 읽어 정확도를 보장하는 설계가 특징입니다.

골든 스파이크, 그리고 Vale(n) 프로그래밍 언어의 부활 — rustc와 직접 통신하는 Rust++ 언어를 향하여

Lobsters

Vale 언어의 저자 Evan Ovadia가 Rust 컴파일러와 직접 통신하는 새 언어 Valen의 첫 상호운용 성공 사례를 공개했습니다. C ABI를 우회하고 rustc를 라이브러리로 구동해 언어 경계를 넘는 제네릭 호출과 Rust 트레이트 구현을 실현했으며, 최종 목표는 경계를 넘나드는 메모리 안전성입니다.

Quarkus 4가 Spring Boot 4를 겨냥한다 — 2026년 두 자바 프레임워크의 실제 비교

dev.to

Quarkus 4와 Spring Boot 4.x가 2026년 11월 같은 시기에 주요 릴리스를 앞두고 있습니다. Quarkus는 Vert.x 5 기반 I/O 코어 전면 재작성과 Project Leyden AOT로 기동 시간을 3초에서 900ms까지 줄이는 등 공격적인 변화를, Spring Boot는 모듈화와 점진적 개선으로 대응하고 있습니다. JVM 백엔드를 운영한다면 향후 몇 달이 향후 수년간의 기본값을 결정한다는 것이 저자의 진단입니다.

malloc() 알고리즘 비교 — 아레나 아키텍처에서 NUMA·락프리 설계까지

Hacker News

멀티스레드 프로그램에서 힙이 병목이 되는 이유를 설명하고, dlmalloc부터 snmalloc까지 주요 메모리 할당자를 스레드 안전성·CAS 경합·NUMA 지역성·파편화 관점에서 비교한 글입니다. 워크로드 유형별로 어떤 할당자를 고르고 무엇을 피해야 하는지 추천표까지 제시합니다. 임베디드·저지연·NUMA 환경에서 할당자 선택을 고민하는 개발자에게 유용한 참고 자료입니다.