Trawling

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

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

Codeberg Pages v2를 종료합니다

발행

Codeberg은 관리가 중단된 기존 호스팅 시스템 Codeberg Pages v2를 2026년 12월 31일 종료합니다. 아직 저장소에 웹훅을 설정하지 않아 기존 방식으로 사이트를 제공하는 사용자는 그 전에 git-pages로 이전해야 합니다.

Zone.js는 8년간 브라우저를 가로챘습니다. Angular는 무엇으로 바꿨을까요?

발행

Angular는 Zone.js가 브라우저 비동기 API를 가로채 변경 감지를 시작하던 방식에서 Signals 기반의 Zoneless 구조로 옮겨가고 있습니다. 글은 두 방식의 작동 원리와 마이그레이션 때 일반 필드 변경이 화면에 반영되지 않는 문제, RxJS Observable을 Signal로 연결하는 방법을 설명합니다.

괄호 없이 JavaScript 함수를 호출하는 또 다른 방법

발행

V8의 Error.prepareStackTrace와 프로토타입 변환을 조합해 괄호 없이 임의의 JavaScript 함수를 만들고 실행하는 방법을 설명합니다. 이 기법은 Error 객체와 배열의 문자열 변환, 단항 + 연산자의 암묵적 형 변환을 차례로 이용합니다.

Actually Asked — 방문자 질문으로 개선되는 브랜드 FAQ

발행

Actually Asked는 사이트에 브랜드 디자인을 따르는 FAQ를 넣고, 방문자가 질문하거나 페이지 문장을 선택해 관련 내용을 물을 수 있게 합니다. 반복 질문은 FAQ에 추가하고 답을 찾지 못한 질문은 매주 이메일로 알려줍니다.

DEV.to 글을 더 읽고 싶어서 새 탭에 넣었습니다

발행

개발자가 비공식 Chrome 확장 프로그램 DEV New Tab을 만들어 새 탭에서 DEV.to 피드를 읽도록 했습니다. Chrome의 로컬 Prompt API를 지원하는 환경에서는 공개 글의 개요를 기기에서 만들며, 작성자와 원문 링크를 붙인 발췌 카드로 공유할 수도 있습니다.

런치 디렉터리에 제출한 뒤 실제 등록 여부를 확인하는 방법

발행

Launcholio를 만드는 글쓴이는 디렉터리 제출 후 승인 여부와 실제 공개 상태를 확인하는 문제를 제기합니다. 제출일과 공개일, 확인 상태와 근거를 따로 기록하고, 찾지 못한 결과를 거절로 단정하지 않는 추적 방식을 제안합니다.

Reelbird — Mac용 오픈소스 Loom·Screen Studio 대안

발행

Reelbird는 화면 녹화 후 공유 링크를 클립보드에 복사하고, 나중에 줌 효과와 자막 등을 더해 같은 링크를 업데이트하는 Mac 앱입니다. 무료·오픈소스이며 계정 없이 쓸 수 있고, 공유 링크 저장에는 사용자가 설정한 S3 또는 R2 버킷이 필요합니다.

Mac의 창을 iPhone과 iPad에서 보고 조작하는 Sill

발행

Sill은 Mac의 특정 창이나 데스크톱 전체를 iPhone·iPad로 전송하고, 터치·키보드·트랙패드·Apple Pencil 입력을 Mac으로 돌려보내는 오픈소스 앱입니다. HEVC 영상 전송과 기기 간 직접 연결을 사용하며, 같은 네트워크나 USB, 직접 무선 연결, 사용자가 구성한 VPN으로 접속합니다.

Forgejo v17.0 출시

발행

Forgejo v17.0은 저장소 안 문서의 절대 링크 처리, Actions 실행·작업 API와 요약 표시, Bitbucket Data Center 마이그레이션 등을 개선한 자체 호스팅 코드 협업 플랫폼의 새 버전입니다. 저장소 문서 링크와 웹훅 동작에는 호환성을 깨는 변경이 있어 업그레이드 전에 백업과 수동 이전 절차를 확인해야 합니다.

웹 이미지 용도별 JPEG XL과 AVIF 비교

발행

여러 이미지와 품질 설정을 대상으로 AVIF와 JPEG XL 인코더의 파일 크기, 인코딩·디코딩 시간, 메모리를 비교했습니다. 일반적인 손실 사진과 스크린샷에서는 대체로 AVIF가 유리하지만, 무손실 압축과 일부 이미지에서는 JPEG XL이 앞서며, 작성자는 기본값으로 AVIF 4:4:4를 권합니다.

Specreel — 자동으로 업데이트되는 제품 데모

발행

Specreel은 앱 URL을 실제 브라우저에서 탐색해 주요 흐름을 설명이 담긴 데모로 만들고, Playwright 테스트 기록으로 데모를 갱신하는 도구입니다. 오픈소스 CLI와 호스팅 Cloud를 제공하며, GitHub Action으로 통과한 빌드마다 데모를 다시 게시할 수 있습니다.

브라우저 PDF 도구 112개, 유료 고객 0명이라면 무엇을 하겠습니까?

발행

MagicToolsHub는 파일을 서버에 올리지 않는 PDF 도구 112개를 만들었지만, 출시 3개월 동안 유료 고객이 없고 월간 검색 유입은 약 3회입니다. 댓글에서는 도구 수를 늘리기보다 검색 노출이 있는 한 가지 작업에 집중하고, 고객 대화와 사용 흐름 측정으로 유통·제품·가격 문제를 구분하자는 의견이 나왔습니다.

Show HN: 오픈소스로 공개된 화면 협업 도구 Petal

발행

Petal은 여러 사용자가 각자의 창을 데스크톱에서 직접 공유하고 서로의 커서와 입력을 주고받는 오픈소스 협업 도구입니다. 개발팀은 LiveKit 기반 영상 서비스를 제공하며, 사용자가 자체 LiveKit 서버를 연결하는 구성도 안내합니다.

Catch a Bird - 마음을 다잡으려고 만든 새 나무

발행

Catch a Bird는 오늘 기뻤던 일을 한 문장으로 남기면 새가 되어 나무에 앉는 익명 웹 프로젝트입니다. 방문자는 새의 문장을 읽고 마음에 들면 씨앗을 주며, 작성자는 자기 새가 얼마나 읽히고 먹이를 받았는지 확인합니다.

스키마 라이브러리 없이 TypeScript의 unknown을 검증하는 방법

발행

TypeScript에서 외부 입력을 `unknown`으로 두고 런타임 타입 가드로 검증하는 방법을 소개합니다. `is-kit`으로 가드를 조합하고 `safeParse`와 JSON 파싱에 연결하는 예제를 보여주며, 풍부한 오류 처리나 변환이 필요할 때는 스키마 라이브러리가 더 적합하다고 구분합니다.

터미널에서 보는 Curl 사이트 만들기

발행

블로그 전체를 ANSI 색상 코드가 포함된 텍스트로 제공하는 방법을 설명합니다. 저자는 자체 마크업 언어와 정적 사이트 생성기를 활용해 페이지를 만들고, Nginx 설정으로 curl 요청을 구분했습니다. 댓글에서는 Accept 헤더를 활용하는 편이 표준에 맞는지 논의합니다.

def를 async def로 바꿨더니 블로킹 호출 하나가 FastAPI 앱 전체를 멈췄습니다

발행

FastAPI에서 같은 동기식 HTTP 호출도 일반 def 엔드포인트에서는 스레드 풀로 넘어가지만 async def 안에서는 이벤트 루프를 막습니다. 글쓴이는 부하 실험으로 스레드 풀의 기본 한도 40과 CPU 작업에서 asyncio.to_thread가 제한적으로만 효과를 내는 이유를 측정하고, 프로세스 풀과 스택 추적 워치독을 비교합니다.

브라우저에서 실제로 작동하는 AI 기능 5가지

발행

Transformers.js와 WebGPU, WebAssembly를 활용해 브라우저에서 실행하는 AI 기능 다섯 가지를 구현하고 성능과 한계를 시험합니다. 이미지 배경 제거와 의미 검색은 실용성을 보였지만 모델 다운로드 용량과 기기별 성능 차이 때문에 선택 기능으로 제공하는 편이 적절하다고 설명합니다.