dev.to · 최신 글

전체 출처

검색 하이라이트가 사용자의 선택 영역을 삭제하는 이유

dev.to

검색어를 강조하려고 innerHTML로 문단을 매번 다시 만들면, 사용자가 선택한 텍스트의 DOM 노드가 제거되어 복사 내용이 사라질 수 있습니다. CSS Custom Highlight API로 노드 구조를 건드리지 않고 Range를 오버레이로 칠하면 선택 영역을 보존하면서 검색 결과를 표시할 수 있습니다.

두 낯선 사람이 제 댓글에서 에이전트 위임 프로토콜을 만들었습니다 — 그래도 규제자가 필요합니다

dev.to

AI 에이전트의 권한을 만료 시간만으로 관리하는 방식의 한계를 짚고, 작업마다 단일 사용 위임을 발급·소진하며 타임아웃과 재시도를 펜싱하는 프로토콜 논의를 설명합니다. 결국 지연 메시지를 차단할 보존 기간은 기술만으로 정할 수 없으며, 명시적인 소유자와 변경 절차가 필요하다고 주장합니다.

Frozendict 🧊: Python·Node.js를 위한 최신 불변 해시맵

dev.to

frozndict는 Rust로 구현하고 Python·Node.js 바인딩을 제공하는 불변·해시 가능 딕셔너리입니다. 삽입 순서를 유지하면서 해시를 캐시하고 copy()를 O(1)로 처리하며, 작성자가 제시한 벤치마크에서는 반복·복제·동등성 검사에서 기존 구현과 비교 가능한 성능을 보입니다.

4GB 노트북 GPU가 Gemma 4에서 12코어 CPU보다 4.3배 빠릅니다

dev.to

동일한 노트북에서 Gemma 4 소형 양자화 모델을 CPU와 4GB GTX 1650 Ti로 번갈아 서빙한 결과, GPU 디코드 속도가 평균 4.27배 빨랐습니다. 모델의 대형 임베딩 테이블이 호스트 메모리에 남는 구조 덕분에 4GB GPU만으로도 충분히 적재할 수 있었습니다.

AI가 코딩하는 동안 무엇을 하시나요? 저는 AI끼리 논쟁하게 합니다

dev.to

두 개의 LLM이 같은 작업을 독립적으로 검토한 뒤 근거를 교환하게 하는 AdversarialDebate를 소개합니다. 초기에는 논쟁처럼 보이는 대화의 89%가 연극에 불과했지만, 독립 판정과 구조화된 반론을 적용한 v0.2.0에서는 2,333개 데이터 행 기준 88.7%의 이진 일치율을 기록했습니다.

개발 로그 #21 — WebRTC-Direct 강화와 SCM 누수 해결

dev.to

이번 주에는 Python 기반 libp2p의 WebRTC-Direct 상호운용성 문제와 소켓 누수를 수정하고, Go 기반 agent-orchestrator의 파일 경로·GitHub SCM 폴링 문제를 다뤘습니다. ICE 자격 증명 경쟁 조건, 연결 종료 누수, 잘못된 PR 재조회, .git/info/exclude 누적 문제를 포함해 8개 커밋과 11개 PR을 진행했습니다.

디바이스를 기다려야 했던 클립보드 브리지

dev.to

tapflow가 브라우저와 시뮬레이터 사이에서 텍스트를 복사·붙여넣기하는 과정을 비동기 프로토콜로 구현한 사례를 설명합니다. 고정 지연 대신 sentinel과 상태 확인을 사용하고, 브라우저의 사용자 제스처·보안 컨텍스트·타임아웃 제약까지 함께 다룹니다.

점진적 공개(Progressive Disclosure): 무엇을, 어디에, 언제, 왜 적용할까요?

dev.to

코딩 에이전트의 지침을 하나의 거대한 파일에 항상 넣는 대신, 작업에 필요한 규칙을 무엇을·어디에·언제라는 기준으로 나눠 필요한 순간에만 불러오는 점진적 공개를 설명합니다. 28,721개 저장소 분석과 AGENTS.md, CLAUDE.md, skills, 경로 설정 사례를 바탕으로 컨텍스트 경쟁을 줄이는 방법과 새롭게 생기는 지침 관리 문제를 다룹니다.

LLM 4,768회 실행에서 단 한 번의 스윕도 잃지 않기 — 타임아웃·멈춤·비용을 견디는 필드 테스트 러너 만들기

dev.to

CauterRule v0.3.0은 40개 코퍼스와 2개 모델을 대상으로 4,768개 trajectory-run을 완료한 필드 테스트 보고서입니다. per-trajectory timeout, 비재시도 타임아웃, 토큰 상한, 격리, 종료 시 취소라는 다섯 가지 방어 장치로 멈춘 요청 하나가 전체 평가를 막지 않게 했으며, 호출별 토큰 사용량도 비용으로 환산했습니다.

스스로 바보가 되는 법 101 — AI 의존이 기술 면접에서 드러낸 것

dev.to

Wasmer 기술 면접을 위해 엣지 배포, 대시보드, 내구성 워크플로 시스템까지 준비했지만, 간단한 캐시 파일의 수동 코드 리뷰에서 코드의 문제를 발견하고도 설명하지 못해 고전합니다. 글쓴이는 AI를 활용한 개발 역량과 기초 코드를 직접 읽고 설명하는 능력 사이의 간극, 그리고 AI 시대에 맞지 않는 채용 방식이 무엇인지 되묻습니다.

Resilient와 Battle-Tested는 같은 말이 아닙니다

dev.to

AI 도구로 빠르게 만든 애플리케이션을 곧바로 production-grade나 battle-tested라고 부르는 것은 신뢰성의 서로 다른 축을 혼동하는 일입니다. Resilient는 예상한 오류를 견디도록 설계됐다는 뜻이고, battle-tested는 실제 운영 장애와 예측하지 못한 조건을 겪고 수정한 이력까지 포함해야 합니다.

PoC 요구사항을 바꾸려는 과정에서 Codex와 GitHub Copilot으로 프로토타입 만들기

dev.to

작성자는 PDF 문서 뷰어와 데이터 추출 기능을 검증하는 React PoC를 OpenAI Codex와 GitHub Copilot으로 각각 만들어 봅니다. Codex는 모킹에서 실제 Apryse WebViewer로 확장하는 과정이 비교적 매끄러웠지만, GitHub Copilot은 웹 검색이 비활성화된 상태에서 오래된 패키지와 API를 추측해 여러 문제를 만들었고, 검색을 허용한 뒤에야 10분 만에 동작하는 전체 PoC를 생성했습니다.

AI는 실제로 API를 어떻게 호출하는가? — 처음부터 이해하는 Tool Calling

dev.to

Foundation model은 스스로 코드를 실행하지 않고, 호출할 도구와 입력을 구조화된 요청으로 출력합니다. 애플리케이션이 실제 함수를 실행해 결과를 돌려주면 모델이 답변을 완성하며, 글에서는 Amazon Bedrock의 Converse API로 날씨·날짜 도구, 프롬프트 주입, MCP까지 단계적으로 설명합니다.

스틸맨: AI 에이전트가 복잡성을 감수할 만해지는 순간

dev.to

대부분의 AI 에이전트는 LLM 호출을 끼운 결정적 파이프라인에 가깝다고 지적한 뒤, 진짜 자율성이 필요한 좁은 조건을 정리합니다. 런타임에 새 경로가 발견되고, 분기 공간을 미리 열거할 수 없으며, 자율 영역을 최소화하고, 모든 결정을 저렴하게 검증·기록할 수 있어야 합니다.

흑백 ATS 세계에서 다채로운 경력을 살아가기

dev.to

Applicant Tracking System(ATS)은 이력서를 직함·회사·기간·기술 같은 구조화된 필드로 압축하면서 비선형 경력의 연결고리와 전이 가능한 역량을 버립니다. 글은 편향을 줄이려는 구조화된 채용의 필요성을 인정하면서도, 모든 지원자에게 같은 질문과 평가 기준을 적용해 경력 간 연결을 기록할 필드를 추가하자고 제안합니다.