Lobsters · 최신 글

전체 출처

vfmaddrnd231pd는 대체 뭘까요?

Lobsters

Intel 문서에 실렸지만 실제 CPU에서는 실행되지 않는 FMA 명령어 vfmaddrnd231pd를 추적합니다. 작성자는 문서의 설명과 실험 결과를 대조해 명령어가 CPU에 구현되지 않았을 가능성을 제기합니다.

여러분의 C는 표준 C가 아닙니다

Lobsters

GCC, Clang, glibc, musl이 C 및 POSIX 표준과 다르게 동작하는 사례를 정리합니다. 컴파일러 확장과 미지원 pragma, 라이브러리의 오류 처리 및 헤더 정의 차이가 표준에 맞춘 코드의 이식성을 떨어뜨릴 수 있다고 설명합니다.

restic과 Backblaze B2로 구성하는 3-2-1 백업 전략

Lobsters

작성자는 RAID1 저장 장치와 Raspberry Pi에 둔 로컬 사본, Backblaze B2에 올린 원격 사본으로 3-2-1 백업을 구성합니다. restic의 암호화와 중복 제거, systemd 예약 실행 설정부터 재해 복구와 복원 테스트까지 실제 절차를 설명합니다.

불필요하게 보안성이 높은 해시를 바꿔 Unreal Editor 가속하기

Lobsters

Unreal Editor가 셰이더 소스 코드에 쓰던 SHA-1 해시를 xxHash로 바꾸자, 해시 처리에 든 CPU 시간이 12.90초에서 1.59초로 줄었습니다. 저자는 Electric Dreams 샘플 프로젝트를 각 버전에서 다섯 번씩 실행해 비교했고, 변경 사항은 Epic의 검토를 거쳐 수락됐지만 당시 아직 병합 전이었습니다.

Zig에서 타입 안전한 HTML 템플릿 만들기

Lobsters

Zig용 템플릿 라이브러리 zt는 템플릿을 빌드 중 Zig 코드로 변환해 매개변수와 필드 접근을 컴파일 타임에 검사합니다. 동적 값은 기본적으로 HTML 이스케이프하고 결과를 Writer에 직접 출력해 할당과 중간 버퍼를 피합니다.

ZX Spectrum 데모신 인트로 만들기

Lobsters

저자는 Z80 어셈블리로 128KB ZX Spectrum에서 작동하는 데모신 인트로를 만들며 화면 메모리 구조, 픽셀 스크롤, AY 음악 재생, 별무리 효과를 구현한 과정을 설명합니다. 최종 프로그램은 코드 10,287바이트이며, 메모리 제약과 프레임 처리 시간을 고려해 효과를 설계한 방법을 소개합니다.

구글에서 9만 달러 규모 원격 코드 실행 취약점을 찾다

Lobsters

구글 개발자 문서 사이트의 OAuth 세션 쿠키에서 OAuth client secret과 Flask 서명 키가 함께 노출됐습니다. 공격자는 쿠키를 위조해 서버가 pickle 데이터를 역직렬화하게 만들었고, 여러 DevSite 사이트에서 원격 코드 실행을 입증했습니다.

(포스트양자) 암호화의 정답

Lobsters

Filippo Valsorda가 개발자를 위한 암호화 권고안을 포스트양자 전환에 맞춰 갱신했습니다. 대칭키 암호는 기존 선택을 유지해도 되지만, 키 교환과 비대칭 암호화·서명은 ML-KEM과 ML-DSA를 포함한 포스트양자 방식으로 옮기라고 권합니다.

루비의 바이마르 시대를 살아가며

Lobsters

RailsWorld에서 DHH가 보인 태도와 달리, 글쓴이는 LLM이 Ruby 생태계를 되살릴 기회를 만들고 있다고 주장합니다. PDF·Parquet 라이브러리 등 새 도구의 등장과 신규 gem 수 증가를 근거로, 불편했던 문제를 직접 고칠 때라고 말합니다.

Linus Torvalds, Claude Code와 리눅스 커널 메모리 관리 개선 작업

Lobsters

Linus Torvalds가 Claude Code의 도움을 받아 페이지 캐시 읽기 경로를 개선하는 리눅스 커널 패치 작업을 진행하고 있습니다. 여러 스레드가 같은 파일을 작게 읽을 때 발생하는 folio 참조 횟수 경합을 줄이는 것이 목표이며, Torvalds는 코드와 테스트, 리뷰에 LLM을 활용했다고 밝혔습니다.

다국어 문서 사이트의 개척지

Lobsters

여러 언어의 API 문서를 한 사이트에 모으려면 서로 다른 문서 생성기를 연결하고 탐색·검색 경험을 통일해야 합니다. 글쓴이는 변환, 생성 결과물 병합, 수동 작성의 장단점을 살피고 Pigweed에서 Pagefind와 공통 헤더로 검색과 이동을 통합한 과정을 소개합니다.

Rust로 6년간 게임을 개발해 출시한 경험

Lobsters

개발자 Mason은 Rust로 퍼즐 게임 Way of Rhea를 6년간 개발하며 언어와 게임 엔진을 직접 만든 경험을 공유합니다. Rust의 빌드 도구와 타입 시스템은 장점이었지만 리플렉션 부재와 unsafe 작업의 어려움도 겪었으며, 엔진 개발보다 콘텐츠와 시장 검증이 더 많은 시간을 차지했다고 설명합니다.

‘AI’는 도구가 아닙니다

Lobsters

Rich Hickey는 도구를 사용자가 직접 다루며 기술과 감각 피드백을 쌓는 물건으로 정의하고, LLM은 요청을 받은 뒤 독립적으로 실행되는 자동화라고 주장합니다. LLM에 읽기와 코딩을 맡기면 작업뿐 아니라 그 과정에서 얻는 지식과 판단력도 놓친다고 설명합니다.

NumPy 2.5에서 np.searchsorted를 최대 25배 빠르게 만들기

Lobsters

NumPy 2.5의 np.searchsorted는 여러 검색 키를 묶어 처리하는 이진 탐색 알고리즘으로 NumPy 2.4보다 벤치마크에서 최대 25배 빨라졌습니다. 검색 상태를 쿼리마다 저장하던 방식을 바꾸고, 독립된 검색의 메모리 접근을 겹쳐 수행해 대기 시간을 줄였습니다.

C에서 아레나 할당자 구현하기

Lobsters

아레나 할당자(arena allocator)는 비슷한 수명을 가진 데이터를 큰 메모리 블록에 모아 관리하고, 사용이 끝나면 한꺼번에 비우는 방식입니다. 글은 C로 간단한 아레나를 구현하고 문자열 복사에 적용해, 개별 메모리 해제 부담을 줄이는 방법을 설명합니다.

JSON 분해 저장으로 Logfire 쿼리 속도를 최대 1000배 높인 방법

Lobsters

Logfire가 OpenTelemetry 속성 JSON을 자주 쓰이거나 큰 키별 컬럼으로 나누는 동적 분해 저장(Dynamic Shredding)을 도입합니다. 불필요한 JSON 다운로드와 파싱을 줄여 일부 쿼리를 30초 이상에서 1초 미만으로 단축하며, 2026년 2월부터 고객에게 적용할 계획입니다.

Valen의 메모리 안전성 — 새로운 방식의 대여 검사

Lobsters

Valen은 참조가 가리키는 데이터의 경로를 컴파일러가 추적해 해제 뒤 사용(use-after-free)을 막는 대여 검사 방식을 제안합니다. Rust의 ‘공유 또는 변경’ 규칙 대신 무효화 여부를 검사해 같은 객체를 가리키는 여러 참조의 읽기와 쓰기를 허용하며, Rust 상호운용과 참조 카운팅 지원도 내다봅니다.

미안하지만, 여전히 생각해야 합니다

Lobsters

AI 에이전트가 Ruby on Rails 앱을 Rust와 Elixir로 다시 쓴 사례를 비교하며, 코드를 읽지 않고 신뢰성 있는 시스템을 만들기 어렵다고 주장합니다. 부하 테스트 결과는 처리량뿐 아니라 오류율, 이벤트 전달 지연, 메모리 사용량까지 함께 봐야 하며, 각 언어와 설계의 트레이드오프를 따져야 합니다.

Git 커밋 하나는 디스크를 얼마나 차지할까요?

Lobsters

Git 커밋이 차지하는 공간은 파일 내용의 압축률과 변경된 디렉터리 트리 크기에 따라 달라집니다. 팩파일을 만들지 않은 실험에서는 파일 하나의 3바이트 변경에도 8~17KB가 늘었지만, 큰 텍스트 파일은 원본 크기의 약 10%만 차지했습니다.

GitHub의 문제점

Lobsters

GNU 프로젝트의 Jacob Bachmeyer와 Richard Stallman은 GitHub가 모호한 라이선스 안내, 비자유 JavaScript, Copilot 같은 SaaSS, 중앙화된 작업 흐름으로 소프트웨어 자유와 Git의 분산 구조를 약화한다고 주장합니다. 저장소 이전과 이메일 공개 등 당장 취할 수 있는 대응도 제안합니다.