Trawling

최신기사

AI, 개발 도구, 오픈소스, 보안과 인프라의 변화와 이용 조건을 설명하는 최신 기사와 해설입니다.

Zeta의 차세대 빌림 검사기 — Rust 메모리 관리 모델을 대체하려는 실험

발행

Zeta는 Rust의 빌림 검사기가 놓치는 메모리 영역 간 비중첩 관계를 추론하고, 별칭 가변 참조인 `&alias`와 출처(provenance) 기반 수명 추론을 도입한 실험적 언어입니다. 작성자는 이를 이용해 런타임 참조 세기나 검사 없이 연결 리스트와 병렬 슬라이스 처리를 구현하는 예를 제시하지만, 함수 본문에 기대는 추론의 API 안정성과 모델의 안전성은 토론에서도 쟁점이 됐습니다.

Python 3.15.0 정식 출시

발행

Python 3.15.0이 3.14 이후의 주요 기능과 최적화를 담아 정식 출시됐습니다. 실험적 JIT 성능 개선과 UTF-8 기본 인코딩, 지연 임포트, 프리 스레딩 지원 확대가 포함됐으며 macOS 27.0의 Tk 기반 앱 문제도 안내합니다.

참조 연산자 & 너머

발행

Rust 언어팀이 사용자 정의 스마트 포인터도 내장 참조처럼 다룰 수 있도록 컴파일러의 ‘place’ 개념을 라이브러리 코드에 노출하는 설계를 제안했습니다. 아직 프로토타입 단계이며, borrow checker가 포인터별 읽기·쓰기·빌리기 규칙을 이해하도록 만드는 것이 목표입니다.

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

발행

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

Rust 프로그래머를 위한 C

발행

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

이번 주 DEV 추천 글 7편

발행

DEV 편집팀이 선정한 글 7편을 소개합니다. 오프라인 조류 기록 장치, Gemini 실시간 음성 에이전트, TypeScript 타입 좁히기부터 AI 코딩 에이전트 활용과 프런트엔드 평가까지 다룹니다.

양방향 타입 슬라이싱 — 타입 정보가 나온 이유를 프로그램 조각으로 설명하기

발행

이 논문은 표현식의 타입이 무엇인지뿐 아니라, 프로그램의 어떤 부분이 그 타입을 만들었는지 설명하는 타입 슬라이싱 이론을 제시합니다. 타입을 내부에서 계산하는 합성(synthesis)과 주변 문맥에서 요구하는 분석(analysis)을 나눠 각각 최소 프로그램 조각으로 보여주며, 타입 오류 설명에도 적용합니다.

TypeScript 코드가 프로덕션에서 계속 크래시하는 이유

발행

TypeScript는 컴파일 시 타입을 지우므로 API 응답 같은 외부 데이터의 유효성을 런타임에 확인하지 않습니다. 글은 unknown, 판별 유니온, satisfies 등을 활용해 이 경계를 드러내고 잘못된 상태를 줄이는 방법을 설명합니다.

Brut: Unix 도구를 위한 명령 라우터

발행

Brut은 약 120줄의 POSIX 셸 스크립트로 CLI 명령을 찾아 실행하는 라우터입니다. 명령을 작은 실행 파일로 나누고 네임스페이스와 공유 스크립트로 묶어, 런타임 의존성을 최소화한 유닉스 프로그램을 구성하는 방식을 설명합니다.

Zig로 Lua 확장하기 1: Hello World

발행

Lua 개발자를 대상으로 Zig의 기본 문법과 컴파일 시점 실행 개념을 소개하고, `hello.zig`를 실행 파일로 빌드하는 과정을 안내합니다. Zig 빌드 스크립트에서 모듈과 실행 단계를 구성하는 방법도 다룹니다.

왜 지금 Common Lisp가 최고의 프로그래밍 언어인가

발행

글쓴이는 LLM이 코드를 빠르게 만드는 시대에는 실행 중인 프로그램을 고치고 즉시 결과를 확인하는 개발 흐름이 중요하다며 Common Lisp를 추천합니다. 라이브 이미지, 매크로 기반 DSL, 짧은 코드가 장점이라고 주장하지만, 토론에서는 디버깅 기능의 고유성, 생태계 규모, 정적 타입과 도메인 복잡성을 두고 반론이 나옵니다.

이펙트 시스템은 필요하지 않습니다

발행

Haskell 서비스 코드를 새로 작성하며 이펙트 시스템을 걷어낸 경험을 설명합니다. 글쓴이는 함수 인자, 일반 IO, 예외를 조합해 이펙트를 표현하고, 효과 추적이나 모킹 같은 목적도 별도 프레임워크 없이 해결할 수 있다고 주장합니다.

비동기 Rust에서 스케줄러는 어디에 있어야 할까요?

발행

비동기 Rust의 복잡성은 스케줄러가 필요한 동시성의 속성이지, Rust만의 결함이 아니라고 설명합니다. 런타임을 라이브러리로 두는 설계의 이점과 비용을 짚고, Zig처럼 I/O 인터페이스를 함수 매개변수로 전달하는 대안을 살펴봅니다.

Elm 1.0을 향한 또 한 걸음

발행

Elm 0.19.3은 컴파일러 내부 타입을 더 구체화해 잘못된 데이터 표현과 그래프 순환 오류를 줄입니다. Evan Czaplicki는 이 작업을 Acadia 컴파일러와의 기반 정렬 과정으로 소개하며, 타입으로 불변 조건을 강제하는 설계 사례를 설명합니다.

Gleam, 이제 Erlang 소스 코드로 컴파일하지 않습니다

발행

Gleam 1.19.0은 Erlang 코드를 생성하던 방식을 바꿔 Erlang 컴파일러의 중간 표현인 abstract forms를 직접 출력합니다. 빌드 속도와 오류 위치 정보가 개선됐으며, JavaScript 코드 생성, TypeScript 타입 선언, 빌드 도구 연동과 언어 서버 기능도 함께 다듬었습니다.

true의 비트 보수는 true입니다, false가 되는 경우만 빼면

발행

C++의 정수 승격과 enum 변환 규칙이 비트 연산에서 일으키는 까다로운 사례를 살펴봅니다. bool의 비트 보수와 열거형 변환에서 GCC·Clang·MSVC가 표준과 다르게 동작하는 사례, 고정 기반형이 없는 enum에 생기는 정의되지 않은 동작을 짚습니다.

자바 컴파일러가 런타임의 테스트 케이스가 되기까지

발행

Java-to-C 번역기 자체를 ParparVM에서 실행하는 셀프 호스팅에 성공했습니다. 약 3만 7천 줄 규모의 프로그램으로 런타임 결함과 성능 병목을 찾았으며, 출력 일치율은 247개 중 245개였습니다. 성능은 JDK 25보다 느리고 메모리 사용량도 큽니다.

CHICKEN Scheme 관리자가 말하는 Scheme 구현과 CHICKEN 6

발행

CHICKEN Scheme 관리자 Peter Bex가 CHICKEN 6의 UTF-8 처리와 출시 지연을 부른 힙 손상 버그, Scheme 생태계의 표준화 문제를 설명합니다. 컴파일러 최적화 구상과 PostgreSQL을 선호하는 이유, REPL 개발 경험도 함께 다룹니다.

Zig 0.17.0 출시 — 빌드 시스템 재구성과 증분 컴파일 개선

발행

Zig 0.17.0은 5개월 동안 206명의 기여자가 만든 925개 커밋을 담은 릴리스입니다. 빌드 시스템을 재구성하고 Build Server Protocol을 도입했으며, x86_64 Linux 프로젝트에서 증분 컴파일을 활용할 수 있도록 ELF 링커를 개선했습니다.