Trawling

개발 · 최신기사

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

AI 에이전트에게 프로덕션 병합을 맡겼습니다. 딱 한 번

발행

작성자는 코드 생성과 리뷰, 테스트, 스테이징 배포까지 자동화한 뒤 프로덕션 병합도 에이전트에게 맡겼다가 고객 계정이 잠기는 장애를 겪었습니다. 코드의 정확성을 판단하는 검토는 자동화하되, 실제 사용자에게 영향을 주는 배포 결정과 그 책임은 사람이 맡아야 한다고 주장합니다.

Git 참조(refs)를 이해하는 법

발행

Git은 변경되지 않는 콘텐츠 주소 기반 객체 저장소뿐 아니라, 문자열 키로 객체를 가리키는 변경 가능한 참조(ref) 저장소도 사용합니다. 브랜치와 태그가 ref라는 점을 바탕으로 fetch 인수와 로컬·원격 브랜치의 차이를 풀어 설명합니다.

PSP용 갓 오브 워를 WebAssembly로 재컴파일해 브라우저에서 실행합니다

발행

PSP 게임의 MIPS 코드를 C++로 정적 재컴파일하고, PSP 운영체제와 그래픽 기능을 구현해 WebAssembly와 WebGL2로 실행하는 프로젝트입니다. 《God of War: Chains of Olympus》는 측정한 장면에서 초당 60프레임으로 동작하며, 성능 개선의 상당 부분은 렌더러 최적화보다 프레임 동기화와 브라우저별 병목을 찾아 해결한 결과입니다.

제로화 1부: 메모리 지우기가 오히려 상황을 악화할 수 있습니다

발행

비밀값을 지우려고 넣은 코드가 컴파일러 최적화나 함수 호출 규약 때문에 효과를 내지 못하고, 오히려 메모리에 복사본을 만들기도 합니다. 글은 C와 arm64 컴파일 결과를 비교하며, 버퍼 삭제는 계속하되 작은 지역 변수는 실제로 어디에 저장되고 무엇이 남는지 확인하라고 설명합니다.

rat의 작은 레지스터 할당기

발행

소형 컴파일러 rat의 선형 스캔 레지스터 할당기를 1,392줄에서 584줄짜리 우선순위 기반 할당기로 바꾼 과정을 설명합니다. 새 할당기는 레지스터 축출이나 구간 분할 없이도 명령어를 3.6% 줄이고, SQLite를 -O0으로 컴파일할 때 전체 컴파일 시간을 43% 단축했습니다.

번역 과정에서 어긋난 나비에–스토크스 증명

발행

이 논문은 자연어 수학 증명을 Lean으로 옮긴 뒤 검증해도 원래 증명이 충실하게 번역됐다는 보장은 없다고 설명합니다. 저자들은 의미를 보존하며 자연어의 모호성을 해소하는 일이 계산 복잡도 계층에서 정지 문제보다도 높은 수준에 이를 수 있다고 주장하고, OpenAI의 나비에–스토크스 증명에서도 두 표현이 맞지 않는 사례를 제시합니다.

작은 커뮤니티를 위한 배포판 빌드 도구 만들기

발행

Chimera Linux 개발자가 패키지 도구 cbuild의 설계 원칙과 빌드 인프라를 설명합니다. 모든 개발자가 로컬에서 원격 빌드를 재현하고, 샌드박스·검사·의존성 정렬을 도구에 맡기는 방식으로 작은 커뮤니티의 유지보수 부담을 줄입니다.

Bash는 프로그래밍 언어가 아니라 텍스트 치환 엔진입니다

발행

Bash를 일반적인 프로그래밍 언어처럼 해석하면 공백, 따옴표, 파이프에서 생기는 오류를 이해하기 어렵습니다. 글은 Bash의 토큰 분리와 확장, 서브셸, 파일 디스크립터 동작을 설명하고 안전한 스크립트 작성 습관을 소개합니다.

이름을 쓰지 않고 C 함수 호출하기

발행

학교의 자동 채점 환경에서 허용되지 않은 C 함수를 직접 호출하는 과정을 설명합니다. ASan이 바꿔치기한 함수와 libc 함수의 메모리 배치를 이용해 주소를 계산하고, 실행 권한이 있는 메모리에서 시스템 호출을 수행하는 방식입니다.

스카이림 Magelight 경험치 버그의 작동 원리

발행

Solitude 근처 산에 Magelight를 던지면 Alteration 경험치가 반복해서 오르는 이유를 게임 데이터와 충돌 처리 코드로 분석합니다. 주문이 특정 충돌 레이어의 보이지 않는 벽과 여러 번 충돌해 시전 한 번에 경험치를 거듭 지급하며, 조준 위치를 최적화하면 Alteration 15레벨에서 100레벨까지 17번의 시전으로 올립니다.

Chrome에 JPEG XL 디코딩 지원을 적용합니다

발행

Chrome 155부터 JPEG XL(.jxl) 이미지 디코딩을 지원합니다. Chrome 팀은 C++ 참조 구현 대신 Rust로 작성한 jxl-rs를 적용하고 SIMD 최적화를 더해 메모리 안전성과 성능을 함께 추구합니다. JPEG XL은 무손실 압축, HDR, 점진적 디코딩 등을 지원하지만, 용도에 따라 AVIF와 함께 비교해 보라고 권합니다.

Rust 프로그래머를 위한 C

발행

Rust를 먼저 배운 개발자가 C를 익히며 마주친 차이를 불리언, 문자열, 정수 폭, 오류 처리, 배열, 포인터 사례로 설명합니다. C의 동작을 이해하고 메모리·플랫폼 관련 실수를 피하는 데 도움이 되는 입문용 비교 글입니다.

소프트웨어 개발자들은 괜찮지 않습니다

발행

글쓴이는 AI 도입과 해고 불안이 개발자의 업무를 더 불안정하고 덜 즐겁게 만든다고 주장합니다. 경영진의 인건비 절감 유인, 자동화 도구에 일을 위임하며 생기는 거리감, 업무량 증가가 맞물려 번아웃을 키우며, 아이슬란드에서는 컴퓨터과학 신입생이 전년보다 30% 줄었다고 전합니다.

마거릿 해밀턴 별세 — 아폴로 소프트웨어를 이끈 컴퓨팅 선구자

발행

아폴로(Apollo) 우주선의 비행 소프트웨어 개발팀을 이끈 컴퓨터 과학자 마거릿 해밀턴(Margaret Hamilton)이 90세로 세상을 떠났습니다. 오류를 예상하고 우선순위를 조정하는 소프트웨어 설계로 아폴로 임무에 기여했으며, 소프트웨어 공학을 독립된 공학 분야로 인정받게 하는 데 힘썼습니다.