Trawling

개발 · 최신기사

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

Cargo 팀 상주 유지보수 담당자로 Scott Schafer를 영입합니다

발행

Rust 프로젝트가 Rust Foundation Maintainers Fund와 추가 지원금으로 Cargo 전담 상주 유지보수 담당자 Scott Schafer를 영입했습니다. 최소 12개월 동안 Cargo 유지보수를 맡으며, 팀의 관리 부담을 덜고 지속적인 개발을 지원합니다.

PostgreSQL 19, 서버를 멈추지 않고 데이터 체크섬을 켭니다

발행

PostgreSQL 19에는 서버를 계속 운영하면서 데이터 체크섬을 켜거나 끄는 SQL 함수가 추가됩니다. 테스트에서는 오프라인 변환보다 작업 시간이 길었지만 서비스 중단은 피했고, 체크섬을 켜면 손상된 페이지를 읽을 때 오류를 확인했습니다.

Microsoft가 2007년에 종료한 FoxPro, 새 런타임으로 되살리다

발행

FoxDev Studio와 FoxScript는 기존 Visual FoxPro 프로젝트와 DBF 파일을 변환하지 않고 실행·편집하도록 만든 새 런타임입니다. Rust와 WebAssembly로 64비트 실행 환경을 구현해 2GB 파일 제한을 넘기지만, 2GB를 넘긴 테이블은 Visual FoxPro에서 다시 열 수 없으며 기존 DBC의 보안 위험도 그대로 남습니다.

좋은 소프트웨어 조언은 왜 따르기 어려울까요

발행

작은 함수나 의미 있는 변수명처럼 실행 여부를 쉽게 확인할 수 있는 규칙과, 상황에 따라 판단해야 하는 원칙을 구분합니다. 경험은 규칙 사이의 충돌과 추상화의 비용을 가늠하는 판단력을 키우며, 좋은 엔지니어는 규칙을 외우는 데서 원칙을 적용하는 단계로 나아간다고 설명합니다.

평문 파일이 사라질 위기에 놓였습니다

발행

평문 파일은 운영체제와 앱에 덜 종속되는 범용 데이터 형식이지만, 스마트폰과 앱 중심 사용 환경에서 일반 사용자가 파일을 다루는 일이 줄었습니다. 글쓴이는 개발자마저 LLM 에이전트로 편집을 넘기면 편집기와 파일 시스템 생태계가 약해질 수 있다고 우려합니다.

Laravel은 생각만큼 무겁지 않습니다

발행

Laravel 13의 요청 메모리를 PHP-FPM에서 측정한 결과, OPcache를 켠 기본 경로의 피크는 0.66MB였고 프레임워크 부팅분은 316KB였습니다. 반면 Eloquent 모델 1만 건을 한꺼번에 읽으면 약 18MB가 들었습니다. 메모리를 줄이는 데는 프레임워크 설정 조정보다 조회 결과를 나눠 읽는 일이 훨씬 큰 효과를 냅니다.

기본 Mac UI를 고집할 이유가 거의 사라졌습니다

발행

NetNewsWire 개발자는 사용자가 기본 macOS UI와 맞춤형 UI를 구분하지 않으며, 기본 UI를 쓰면 업데이트 작업이 줄어든다는 기대도 Liquid Glass 도입 과정에서 빗나갔다고 말합니다. Apple의 디자인 지침마저 원하는 방향을 제시하지 못한다면 기본 UI를 따를 이유가 무엇인지 묻고, NetNewsWire의 도구 막대를 바꿔본 실험을 공개합니다.

AI에는 지혜가 없고, 당신도 그렇게 될 수 있습니다

발행

AI가 코드를 빠르게 만들더라도 유지보수성과 설계 품질을 즉시 평가하기는 어렵습니다. 글은 코드 읽기와 실수에 대한 책임을 포기하면 개발자의 숙련도도 자라지 않는다고 지적하며, AI를 도구로 쓰되 판단과 학습을 넘겨서는 안 된다고 주장합니다.

프로그래밍 언어를 제대로 설계하기

발행

새 프로그래밍 언어가 초기에 결정해야 할 설계 원칙을 정리합니다. 들여쓴 여러 줄 문자열, 파일 경로와 확장자, 후행 쉼표, 키워드와 숫자 리터럴, 개발·배포 환경, 버전 관리, 빌드 시스템과 파일 감시까지 생태계와 호환성을 좌우하는 세부 사항을 짚습니다.

Fearless SIMD v1.0 출시 — Rust SIMD에서 unsafe 제거하기

발행

Rust용 SIMD 라이브러리 Fearless SIMD가 v1.0으로 안정화됐습니다. 안전한 SIMD intrinsic 접근, 하드웨어 벡터 폭 활용, 함수 멀티버저닝을 제공하며 직접 의존하는 크레이트 30개와 간접 의존 크레이트 1,000개 이상에서 사용되고 있습니다.

LLM에는 기억이 없습니다. 애플리케이션에는 반드시 기억이 있어야 합니다

발행

LLM API는 요청마다 독립적으로 동작하므로 대화 기록을 다시 보내는 방식만으로는 장기 실행 워크플로를 안정적으로 관리하기 어렵습니다. 글은 상태를 애플리케이션이 구조화해 저장하고, LLM은 현재 상태를 바탕으로 다음 행동을 제안하는 무상태 처리기로 다뤄야 한다고 설명합니다.

인자 기능을 둘러싼 논쟁

발행

Steve Klabnik이 Rust에 named parameter, optional/default argument, function overloading을 넣을 때 생기는 복잡성을 살펴봅니다. coding agent 시대에는 named parameter만 다시 검토할 여지가 있지만, 패턴·함수 포인터·trait·평가 순서 같은 문제가 남아 있다고 설명합니다.

build_runner 비용을 그만 내자 — 현대 Dart에서 Mockito를 쓰지 않는 이유

발행

Dart와 Flutter 테스트에서 Mockito가 요구하는 build_runner 코드 생성을 비판하고, 코드 생성 없이 동작하는 mocktail로 옮기는 방법을 설명합니다. Mockito와 mocktail의 문법 차이, null safety 때문에 필요한 fallback 등록, 기존 테스트를 파일 단위로 점진적으로 마이그레이션하는 절차를 다룹니다.

결합도와 응집도로 돌아가기 — 소프트웨어 설계 원칙을 수치로 읽는 방법

발행

SOLID, DRY, KISS 같은 설계 원칙을 따로 암기하기보다 결합도와 응집도를 관리하는 문제로 바라보자고 제안합니다. 실제 작업에서 변경에 관여한 컴포넌트와 관심사의 노력 분포를 기록해 결합도와 응집도를 계산하고, 같은 프로젝트의 변화 추적과 기술 부채 작업의 근거로 활용하는 방법을 설명합니다.

slop-grader — 사용자 지정 규칙으로 텍스트를 검사하는 Jev-AI CLI 도구

발행

slop-grader는 문서를 규칙 세트와 대조해 점수와 줄별 플래그를 내놓는 오픈소스 CLI 도구입니다. AI 문구, 버즈워드, 문법, 법적 고지, 문체 일관성 등을 검사하고, 표시한 줄과 수정 지침을 AI 에이전트에 전달할 수 있습니다. 문서 평가는 외부 AI 서버에서 수행합니다.

Miri 출력을 캐시할 때 GitHub Actions에서 시크릿 유출

발행

Rust의 Miri가 빌드에 필요한 환경 변수를 보존하려고 target/에 모든 환경 변수를 저장하면서, GitHub Actions 캐시를 읽는 PR에 시크릿이 노출될 수 있었습니다. Rust 팀은 저장 범위를 줄인 수정판을 준비하고, Miri를 실행하는 CI 설정을 점검하라고 권고합니다.