Trawling

개발·오픈소스 · 최신기사

개발 도구와 언어, 웹 기술과 오픈소스 프로젝트의 변화를 다룹니다.

GitLab.com의 레이트 리밋이 변경됩니다 — 구독 티어별로 차등 적용

발행

GitLab.com이 10월 19일부터 레이트 리밋을 구독 티어별로 차등 적용합니다. 미인증 요청은 IP당 시간 60회로 제한되며, Free는 10월, Premium·Ultimate는 2027년 1월부터 적용됩니다. 대부분의 사용자는 영향이 없지만 익명 자동화 트래픽은 인증 도입이 필요합니다.

Termux와 Python으로 안드로이드 폰에서 AI 어시스턴트 만들기

발행

컴퓨터 없이 안드로이드 폰의 Termux 환경에서 Python 스크립트와 OpenAI API만으로 동작하는 터미널 AI 어시스턴트를 만드는 입문 튜토리얼입니다. 환경 설정부터 .env 기반 API 키 관리, Responses API 호출까지 전 과정을 다루며, gpt-5-mini가 추론만 반환하는 문제를 피하는 실용적인 팁도 담고 있습니다.

설명의 간극 — 설명 가능한 AI가 아직도 '인간의 언어'로 말하지 못하는 이유

발행

SHAP 같은 XAI 기법은 모델의 예측 근거를 수치로 보여주지만, 간호사·환자·규제자 같은 실제 의사결정자가 읽을 수 있는 설명으로 바꾸는 일은 여전히 미해결 과제입니다. 이 글은 수치 기여도(attribution)가 인과 관계를 의미하지 않는다는 함정을 짚고, 기여도를 자연어 서술로 변환하는 오픈소스 라이브러리 narrashap을 사례로 '내러티브 계층'의 설계 원칙을 살펴봅니다.

Safari에서 모듈 워커의 엔트리 파일이 두 번 실행되는 버그 — 다른 모듈이 이를 import할 때

발행

Safari에서 모듈 워커(module worker)의 엔트리 파일을 다른 모듈이 import하면 엔트리가 새 모듈로 다시 로드·실행되는 WebKit 버그가 보고되었습니다. Vite·Rollup 같은 번들러가 워커 엔트리와 지연 로딩 청크 간 공유 코드를 엔트리 쪽으로 옮기는 흔한 코드 스플리팅 형태에서 발생하며, 레지스트리·싱글톤 같은 상태가 이중화되어 아무 에러 없이 조용히 실패합니다. 제보자는 WebKit bug 324459로 등록했고, manualChunks 분리 또는 얇은 로더 엔트리로 우회할 수 있습니다.

"유해 언어 가이드"가 금지한 일상 표현은 실제로 해롭지 않다 — master branch, pipeline 등을 검증한 심리학 연구

발행

기업과 대학의 '유해 언어 가이드'가 금지 대상으로 지목한 단어들(master branch, pipeline, master bedroom 등)이 실제로 독자에게 심리적 해를 끼치는지 검증한 심리학 연구가 발표되었습니다. 두 차례의 실험에서 해당 단어 노출은 불안·소속감·정서에 측정 가능한 부정적 영향을 주지 않았고, 소외 집단 소속 참가자에게도 결과는 동일했습니다.

스크린샷 한 장으로 대시보드를 재구축했다 — Hope AI로 만든 라이브 앱과 그 과정 전부

발행

저자가 스크린샷 한 장과 "첨부된 디자인에 따라 대시보드를 만들어 달라"는 한 줄 프롬프트만으로 React 대시보드를 배포까지 완성한 과정을 공개합니다. 차트 라이브러리 없이 CSS로 구현된 그래프, 컴포넌트 단위 구조 등 결과물의 수준을 보여주면서도, mock 데이터·동작하지 않는 내비게이션 등 한계를 솔직하게 짚으며 "한 번의 프롬프트는 프로토타입까지"라는 논지를 분명히 합니다.

Tilia — Haskell을 위한 새로운 포매터

발행

Mark Karpov이 처음부터 새로 작성한 Haskell 포매터 Tilia가 Hackage에 첫 릴리스로 공개되었습니다. ghc-lib-parser 기반 위에서 오랫동안 난제로 꼽히던 연산자 픽시티(fixity) 추론과 CPP 전처리기 지원을 원리 있는 방식으로 해결하려 시도했다는 점이 핵심입니다. 포매터가 Cabal 빌드 플랜과 공생하며 실제 의존성 정보를 읽어 정확도를 보장하는 설계가 특징입니다.

대형 웹사이트용 깨진 링크 스캐너를 직접 만든 방법 — Laravel은 컨트롤 플레인, Go는 스캐닝 엔진

발행

깨진 링크 검사기는 간단한 주말 프로젝트처럼 보이지만, 대형 사이트에서는 사실상 분산 크롤링 시스템이 된다는 글입니다. 저자는 Laravel을 인증·스케줄링·리포팅이 담당하는 컨트롤 플레인으로, Go를 동시성 네트워크 작업을 처리하는 스캐닝 엔진으로 분리해 구현했습니다. URL 정규화, 호스트별 동시성 제한, 응답 분류, 리다이렉트 추적, 체크포인트 복구까지 실무 설계 결정을 상세히 공유합니다.

프레임워크는 기관의 기억(Institutional Memory)이다 — 추상화가 담고 있는 경험의 가치

발행

1980년대 BBS 시절 플로피 디스크에 비밀번호를 평문으로 저장했던 경험에서 출발해, 성숙한 프레임워크가 '타이핑 절약'이 아니라 다른 사람이 이미 겪은 결정·엣지 케이스·취약점의 기록이라는 논지를 펴는 에세이입니다. 통제(control)에는 항상 책임(responsibility)이 따라붙고, 팀의 주의력은 유한한 '복잡성 예산'이라는 것이 핵심입니다. 최근 코딩 에이전트가 비밀번호 재설정 기능을 5분 만에 만들었지만 재설정 토큰이 재사용 가능했다는 일화로, AI가 해피 패스는 재현해도 불변조건(invariant)은 잃어버릴 수 있다는 문제를 제기합니다.

코딩 에이전트가 어제 배운 것을 기억한다면? — AI 어시스턴트용 지식 저장 도구 Attic

발행

Claude Code나 Codex CLI 같은 AI 코딩 어시스턴트는 세션이 끝나면 조사 중 발견한 지식을 잃어 같은 탐색을 반복하며 비용을 낭비합니다. 오픈소스 도구 Attic은 발견 내용을 프로젝트 내 .attic/ 디렉터리의 Markdown 파일로 저장하고 컴팩트한 인덱스만 컨텍스트에 주입해, 세션 재시작과 /compact 이후에도 지식을 재사용할 수 있게 합니다. 브라우저 확장을 통해 웹에서 읽은 내용도 같은 저장소에 클리핑할 수 있습니다.

DNS+메일 설정, 하나의 Credential로 통합할 것인가 벤더를 분리할 것인가 — 2026 Reconciliation 기준

발행

게임 퍼블리셔의 도메인 존(zone) 이전과 메일 인증을 하나의 워크플로로 묶을지, 벤더를 분리할지를 다루는 운영 설계 글입니다. 핵심 불변식은 'DNS 쓰기 성공이 메일 제공자의 도메인 인증을 증명하지 않는다'는 것으로, 플랫폼 소유 존에서는 단일 Credential이 유효하지만 고객 소유 존에서는 소유자·마감·증거를 갖춘 명시적 Reconciliation Job이 필요하다고 주장합니다.

골든 스파이크, 그리고 Vale(n) 프로그래밍 언어의 부활 — rustc와 직접 통신하는 Rust++ 언어를 향하여

발행

Vale 언어의 저자 Evan Ovadia가 Rust 컴파일러와 직접 통신하는 새 언어 Valen의 첫 상호운용 성공 사례를 공개했습니다. C ABI를 우회하고 rustc를 라이브러리로 구동해 언어 경계를 넘는 제네릭 호출과 Rust 트레이트 구현을 실현했으며, 최종 목표는 경계를 넘나드는 메모리 안전성입니다.

Quarkus 4가 Spring Boot 4를 겨냥한다 — 2026년 두 자바 프레임워크의 실제 비교

발행

Quarkus 4와 Spring Boot 4.x가 2026년 11월 같은 시기에 주요 릴리스를 앞두고 있습니다. Quarkus는 Vert.x 5 기반 I/O 코어 전면 재작성과 Project Leyden AOT로 기동 시간을 3초에서 900ms까지 줄이는 등 공격적인 변화를, Spring Boot는 모듈화와 점진적 개선으로 대응하고 있습니다. JVM 백엔드를 운영한다면 향후 몇 달이 향후 수년간의 기본값을 결정한다는 것이 저자의 진단입니다.

Semrush 연구: 쿼리의 중요도와 의도에 따라 AI 검색 인용 소스가 달라진다

발행

Semrush가 AI Visibility Index의 일환으로 YMYL(Your Money or Your Life) 쿼리와 일반 상업 쿼리의 인용 패턴을 비교한 미니 스터디를 발표했습니다. ChatGPT, Google AI Mode, Google AI Overview, Gemini 등 플랫폼별로 인용 소스가 다르게 선택되며, 쿼리의 중요도와 사용자 의도가 브랜드 도메인 인용 여부에 영향을 준다는 결과입니다. AI 검색 노출은 단일한 최적화 공식으로 해결할 수 없다는 점이 핵심 메시지입니다.

원하지 않던 답: Fiskardo 대피 경로를 둘러싼 여섯 번의 디버깅

발행

그리스 Kefalonia 섬의 디지털 트윈 프로젝트 ARGOS에서 산불 시 Fiskardo 마을의 도로 대피 시간을 pgRouting으로 계산하던 중 발견한 여섯 가지 오류를 해부한 기록입니다. 실행되는 쿼리가 옳은 쿼리는 아니라는 교훈과 함께, 검증을 거친 불편한 숫자가 데모용으로 예쁜 숫자보다 가치 있다는 메시지를 전합니다.

산출량 최적화를 멈춰라 — 소프트웨어 엔지니어링은 '발견'의 문제다

발행

많은 조직이 소프트웨어 딜리버리를 공장 생산 문제로 오진하지만, 코드 복제는 공짜이고 만드는 모든 것이 전례 없는 것이므로 엔지니어링은 생산이 아니라 연속적인 발견(discovery) 활동입니다. 저자는 인력 투입·압박·프로세스 게이트라는 세 가지 실패한 관리 레버를 데이터로 반박하고, 학습 속도를 최적화하면 속도는 자연스럽게 부산물로 따라온다고 주장합니다.

TLS 핸드셰이크와 OAuth 플로우는 클릭하며 따라가야 배우기 쉽다

발행

백엔드 개발자가 반드시 알아야 하지만 대부분 흐릿하게 기억하는 두 보안 흐름 — TLS 핸드셰이크와 OAuth 인가 코드 플로우 — 를 정적 다이어그램 대신 단계별로 직접 진행하며 배우는 무료 브라우저 시뮬레이터 두 개를 소개한다. 인증서 만료·호스트명 불일치·잘못된 redirect URI 같은 실패 시나리오까지 실행해볼 수 있어, 프로덕션 장애 대응에 필요한 재구성 능력을 기르는 데 초점을 둔다.

온라인 하이퍼텍스트를 위한 스타일 가이드 (1992) — 웹의 초기 원칙을 정리한 Tim Berners-Lee의 문서

발행

1992년 웹 초창기에 작성된 Tim Berners-Lee의 하이퍼텍스트 문서 작성 지침서입니다. 'webmaster'라는 용어와 'www.xxx.com' 도메인 관례를 정의한 문서로, URI를 바꾸지 말라는 원칙 등 지금도 유효한 웹의 기본 원칙을 담고 있습니다. Lobsters에서는 이 문서가 30년이 지난 지금도 여전히 살아 있고, 현대 웹이 이 원칙을 따르지 않는다는 점이 화제가 되었습니다.