Trawling

개발 · 최신기사

언어와 프레임워크, SDK와 개발 방식·도구의 변화를 다룹니다.

Claude Code가 패치한 Flight Simulator 95·98, 64비트 Windows에서 실행 가능

발행

Flight Simulator 95와 98이 64비트 Windows에서 창 메시지를 처리하다 정수 나눗셈 예외로 종료되는 문제를 실행 파일 패치로 해결했습니다. 패치는 게임의 예외 처리 루틴을 벡터 예외 처리기에 등록하며, 작성자는 Claude Code가 충돌 로그와 디버거 자료를 바탕으로 원인을 찾고 패치 프로그램까지 작성했다고 설명합니다.

Zig, 모호한 연산자 조합에 괄호를 요구합니다

발행

Zig가 일부 연산자 조합의 우선순위를 정의하지 않고, 그런 조합에는 괄호를 요구하도록 바꿨습니다. 기존 규칙을 외우는 부담과 잘못 해석한 우선순위에서 생기는 버그를 줄이려는 변경입니다.

POSIX wordexp(3)는 위험합니다

발행

C의 POSIX wordexp(3)는 기본 설정에서 셸 명령 치환까지 실행하며, WRDE_NOCMD를 지정해도 일부 libc 구현에서는 우회 가능성이 있다고 설명합니다. 글은 신뢰할 수 없는 입력에 wordexp(3)를 사용하지 말라고 권고합니다.

AWS MCP Python 샌드박스 탈출하기

발행

AWS MCP Server의 Python 실행 도구에서 match/case의 암묵적 속성 조회와 가변 프록시 타입을 연결해 샌드박스를 탈출한 과정을 분석합니다. Lambda에서 명령 실행과 실행 역할 자격 증명 노출을 확인했지만, 테스트에서는 해당 자격 증명과 세션 경계가 피해를 제한했습니다.

링크를 함부로 다루지 마세요

발행

작성자는 링크를 버튼이나 팝업으로 대체하면 새 탭 열기, URL 복사, 키보드 탐색 같은 브라우저 기능이 깨진다고 설명합니다. 무한 스크롤과 자체 제작 날짜 선택기도 기본 브라우저 기능을 해치는 사례로 들며, 표준 HTML 요소를 활용하라고 제안합니다.

SQLite 3.54의 .diskused는 빌드 플래그가 필요합니다. sqlite3_analyzer에는 필요하지 않았습니다

발행

SQLite 3.54는 별도 도구 sqlite3_analyzer를 대체하는 셸 명령 .diskused를 추가했습니다. 같은 데이터베이스 분석에서 평균 실행 시간이 약 2.4배 빨랐지만, SQLITE_ENABLE_DBSTAT_VTAB 없이 빌드하면 오류 없이 아무것도 출력하지 않습니다. 댓글에서는 장시간 분석이 롤백 저널 모드의 쓰기 커밋을 막을 수 있다는 점도 확인했습니다.

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

발행

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

우리가 만드는 소프트웨어의 목표를 더 높여야 합니다

발행

코딩 에이전트와 빠른 모델 덕분에 개인 개발자가 과거에는 비용 때문에 포기했을 도구와 프로젝트를 직접 만들 수 있다고 설명합니다. 다만 결과물의 품질은 테스트와 검증에 달렸으며, pgrust의 벤치마크 논란은 그 검증이 얼마나 신뢰를 얻는지 보여주는 쟁점으로 남습니다.

소프트웨어가 느린 이유는 느린 언어가 아니라 나쁜 설계다

발행

언어를 C나 Rust로 바꿔도 대부분의 프로그램은 I/O 대기나 이미 최적화된 라이브러리 때문에 크게 빨라지지 않는다고 주장합니다. 프로파일링으로 병목을 찾고 쿼리 수를 줄이거나 작업을 비동기화하는 등 설계를 바꾸는 편이 효과적이라는 조언입니다.

JIT 컴파일러를 단계적으로 만들기

발행

이 논문은 작은 Scheme 계열 언어를 확장하며 AOT 컴파일과 JIT 컴파일을 함께 구현하는 교육 과정을 제안합니다. Rust와 x86-64를 사용해 실행 메모리 버퍼, REPL의 지속 상태, 첫 호출 시점의 타입 특수화를 다루며 컴파일러 수업 두 차례에 적용했습니다.

UB는 괜찮다고 생각하는 사람들에게

발행

C++의 정의되지 않은 동작(Undefined Behavior, UB)은 단순히 실행 결과를 예측하기 어렵다는 뜻이 아닙니다. GCC와 Clang의 어셈블리 예제로 UB가 함수의 명령어를 없애거나 예상 밖의 메모리 쓰기와 충돌로 이어질 수 있음을 보여주고, 댓글에서는 그 사례의 범위와 실용적인 대응을 두고 논쟁합니다.

Goose 프로그래밍 언어: 힙 없이 메모리 안전성을 보장하는 시스템 언어

발행

Goose는 힙 할당이나 가비지 컬렉션 없이, 컴파일러가 정적으로 관리하는 데이터 스택에 값을 저장하는 시스템 언어입니다. 벤치마크에서 C++와 안전한 Rust보다 빠르고 메모리를 적게 쓴다고 주장하지만, 데이터 수명에 맞춰 구조를 설계해야 하며 재현 가능한 비교에는 의문이 남습니다.

AI가 생성한 글은 왜 이해하기 어려울까요?

발행

연구진은 9개 AI 모델의 글에서 사람이 읽기 어렵다고 알려진 언어 구조가 인간 글보다 자주 나타난다고 보고합니다. 정보 밀도를 높이는 학습 목표가 명료한 의사소통과 충돌할 수 있다는 가설을 제시하고, 길이 페널티를 적용한 미세 조정으로 그 가능성을 시험합니다.

LLM 기반 침투 테스트 하네스는 어떻게 작동하나

발행

LLM은 요청을 글로 만들 뿐 실제 웹사이트를 시험하지 않으며, 도구 실행과 결과 전달을 맡는 하네스가 필요합니다. 글쓴이는 Cairn, Artex, Strix를 취약한 웹 앱에 적용해 구조와 결과를 비교하고, 범용 하네스에 적절한 도구와 스킬을 붙이는 방식을 제안합니다.

Go의 리소스 누수와 동시성 문제를 찾는 정적 분석기

발행

gohawk는 Go 코드에서 리소스 관리, 동시성, 오류 처리 문제를 찾는 정적 분석기입니다. 심벌릭 힙 모델로 객체 참조와 별칭을 추적하며, 개발자는 Docker와 Kubernetes 분석에 걸린 시간으로 각각 약 13초와 76초라고 밝혔습니다.

Roku 개발자 저장소, GitHub에서 GitLab으로 이전

발행

Roku가 개발 문서와 샘플 앱, 도구 저장소를 GitHub에서 GitLab으로 옮겼습니다. 저장소 이름은 유지되지만 URL과 raw 파일 경로가 바뀌어 기존 Git remote, 서브모듈, CI 설정과 문서 인덱스를 갱신해야 합니다.