V 언어 리뷰 (2023) — 약속과 실제 구현 사이의 간극
V 언어를 6개월간 사용한 리뷰어가 문서, 메모리 관리, 자동 메모리 해제, 할당, 안전성, 바이너리 크기를 직접 검증합니다. 문서의 설명과 실제 동작이 크게 다르고, autofree와 컴파일러 자체 빌드에서도 누수와 런타임 오류가 발생한다고 지적합니다.
개발 도구와 언어, 웹 기술과 오픈소스 프로젝트의 변화를 다룹니다.
V 언어를 6개월간 사용한 리뷰어가 문서, 메모리 관리, 자동 메모리 해제, 할당, 안전성, 바이너리 크기를 직접 검증합니다. 문서의 설명과 실제 동작이 크게 다르고, autofree와 컴파일러 자체 빌드에서도 누수와 런타임 오류가 발생한다고 지적합니다.
저자는 Scrum이 실패한 이유를 Agile 원칙을 반복 가능한 의식과 지표로 바꿔버렸기 때문이라고 봅니다. 코딩 에이전트로 비개발자도 실행 가능한 프로토타입을 만들 수 있게 되면서, 백로그·스토리 포인트·스프린트 중심의 프로세스가 발견과 검증 중심의 흐름으로 대체될 수 있다고 주장합니다.
Skia 같은 래스터화 라이브러리는 빠르지만 애플리케이션이 전달하는 연산 순서가 비효율적일 수 있습니다. 연구진은 Skia의 동작을 Lean으로 형식화한 μSkia를 만들고, Chrome에서 발견한 네 가지 최적화를 검증해 99개 웹사이트 프로그램에서 최대 32μs의 분석 비용으로 18.7% 속도 향상을 얻었습니다.
EchoCadence는 사용자가 직접 어휘를 추가하고, 복습 난이도에 따라 다음 복습 시점을 정하는 spaced repetition 기반 앱입니다. 개발자는 복습 이력을 TimescaleDB hypertable로 저장하고 continuous aggregate로 일별 통계를 만들어, PostgreSQL 모델 안에서 학습 데이터를 시계열로 다루는 방법을 구현했습니다.
Caddy 2.11.4는 기본값으로 X25519와 ML-KEM-768을 결합한 하이브리드 키 교환을 사용합니다. 암호 연산 시간은 거의 눈에 띄지 않았지만, 키 교환 핸드셰이크 크기는 440바이트에서 2,704바이트로 6.1배 증가했으며 Caddy 로그에는 실제 협상 그룹이 기록되지 않습니다.
AMD Instinct MI300X 한 장을 실제 클라우드 환경에서 MCP 도구로 관리하고, 하드웨어와 ROCm 스택이 지원하는 수치 형식을 직접 측정합니다. 결과적으로 이 카드에서는 FP8 E4M3FNUZ가 실용적인 네이티브 경로이며, INT8·MXFP4·NVIDIA용 FP8·GGUF는 사양표나 기능 목록만으로 판단하면 안 된다는 점을 보여줍니다.
Claude Code에서 모델은 고정된 가중치와 전반적인 능력 범위를, effort level은 파일 탐색·도구 호출·검증·추론에 투입할 작업량을 결정합니다. Anthropic은 기본 설정에서 시작한 뒤, 문제가 어려워 지식이 부족하면 더 큰 모델을, 실행이 불충분하면 더 높은 effort를 선택하라고 안내합니다.
io_uring이 실제로 블록될 때만 워커 스레드 비용을 부담하도록 task_struct의 정체성을 교환하는 RFC 패치가 제안됐습니다. tmpfs fsync()에서 약 700% 향상이 관찰됐지만, 커널 참조 무결성과 shadow stack 호환성 같은 위험도 큽니다.
OONI Probe를 실행하면 국가별 웹사이트 차단 여부, 메신저 접근성, 우회 도구 작동 여부와 네트워크 성능을 검사할 수 있습니다. 결과는 거의 실시간으로 공개 데이터셋에 추가되어 인터넷 검열의 투명성을 높이는 데 활용됩니다.
HTTPS에서도 방문 중인 사이트의 호스트 이름은 TLS ClientHello를 통해 노출될 수 있습니다. 공개 DNS의 ECH 설정을 확인하는 도구로 트래픽 상위 1000개 도메인을 조사한 결과, ECH를 게시한 곳은 10곳뿐이었고 모두 Cloudflare의 같은 커버 호스트 이름을 사용했습니다.
영어 텍스트를 절차적으로 생성할 때 a와 an 중 어느 관사를 붙일지는 첫 글자가 아니라 단어의 첫 발음으로 판단해야 합니다. CMU Pronouncing Dictionary의 32,455개 단어를 조사한 결과, 철자와 발음이 어긋나 예외 처리가 필요한 단어는 129개뿐이었습니다.
컨테이너는 별도의 커널 객체나 가상 머신이 아니라, Linux 프로세스에 namespace와 cgroup을 적용한 구조입니다. 글에서는 Docker 없이 약 30줄의 코드로 PID·mount·network·hostname 격리와 20MB 메모리 제한을 직접 구현하며, 컨테이너와 VM의 차이를 설명합니다.
CESA 조사에서 일본 게임 개발자의 85.8%가 생성형 AI를 게임 개발 과정에 사용한다고 답했습니다. 활용 영역은 디버깅·오류 수정·자동 테스트 등 반복 업무에 집중됐으며, 창작과 최종 판단은 인간이 맡는 것으로 나타났습니다.
Firefox의 AI 통합에 반대하며 Mozilla와 분리된 브라우저 기반을 만들자는 제안과 그 결과로 시작된 base browser 프로젝트를 소개합니다. Firefox 153 ESR에서 사용자에게 적대적인 기능을 코드에서 제거하고, 오프라인 리더·독립 애플리케이션·피드 리더로 브라우저 의존도를 낮추려는 실험과 웹의 새로운 방향에 대한 문제의식을 다룹니다.
7년간 Rust를 사용한 개발자가 RFC 9535 기반 JSONPath 구현을 Zig로 다시 만들며 두 언어의 개발 경험을 비교합니다. Zig의 단순한 빌드 도구와 낮은 추상화는 긍정적으로 평가하지만, 수동 메모리 관리와 미성숙한 생태계에서는 Rust와 뚜렷한 차이를 확인합니다.
대규모 코드베이스를 처음 접했을 때 모든 파일을 읽으려 하지 말고, 애플리케이션을 실행한 뒤 진입점과 실제 기능의 흐름을 추적하며 구조를 파악하라고 제안합니다. 작은 변경과 팀원·Git 기록·테스트 활용, 학습 내용 문서화를 통해 일주일 안에 실용적인 코드베이스 지도를 만들 수 있다고 설명합니다.
LLM 레드팀 스캐너의 마케팅, DM 응답, 결제, 제품 전달을 AI 에이전트가 30일간 사람 개입 없이 수행했습니다. 에이전트 트래픽은 많았지만 결제액은 주로 사람이 만들었고, 가장 큰 문제는 결제 재시도·스팸보다 광고와 실제 산출물 사이의 버전 불일치였습니다.
뉴욕타임스와 OpenAI·Microsoft의 저작권 소송에서 양사의 내부 문서와 증언이 공개되면서, AI 학습용 스크래핑이 콘텐츠 산업의 시장을 잠식할 수 있다는 우려가 드러났습니다. Microsoft 내부에서는 Copilot이 뉴욕타임스의 클릭률을 Bing 검색보다 최대 93% 낮췄다는 분석도 나왔습니다.
AI는 테스트 코드의 보일러플레이트와 버그 재현용 골격을 빠르게 만드는 데 효과적이지만, 중요한 실패 시나리오와 올바른 검증 조건까지 찾아주지는 못합니다. 작성자는 Playwright와 Flutter 테스트 경험을 바탕으로 AI 생성 테스트의 한계와 사람이 반드시 맡아야 할 역할을 설명합니다.
Git 저장소를 object storage에 직접 올리려면 로컬 파일시스템을 전제로 설계된 기존 packfile이 병목이 됩니다. Tigris의 objgit은 Range request에 맞춘 자체 packfile과 인덱스를 도입해 push 요청을 최대 약 300배, clone 요청을 최대 약 20배 줄였지만 아직 인증·권한·압축(compaction)이 구현되지 않은 실험 단계입니다.