GyaanSetu WebDev

Frontend, backend and devops for the modern web.

244 articlesDeep, practical knowledge

네트워크 API 오독으로 인한 느린 네트워크 환경에서의 브라우저 파이썬 플레이그라운드 충돌

Chrome의 네트워크 정보 API가 코드가 빠른 속도로 오인할 수 있는 플레이스홀더 다운링크 값을 반환하면서, 3G나 느린 네트워크를 사용하는 사용자들에게 5.5MB 규모의 브라우저 내 파이썬 런타임이 사용자 모르게 타임아웃되는 현상이 발생했고, 이는 연쇄적인 진단 오류로 이어졌습니다.

WebDev · 3 min read

Cleanup Script Erased Code Snippets From Dozens of Articles

A routine maintenance job mis-identified Liquid’s {% raw %} tags, treating them as unclosed variables and stripping the surrounding code blocks from every article that used them, forcing an emergency rollback and a rethink of migration testing.

WebDev · 3 min read

BrowserAct, 봇 탐지 테스트에서 Playwright 헤드리스 모드 압도

샌드박스 로그인 페이지에서 진행된 비교 테스트 결과, BrowserAct의 스텔스 브라우저는 isBot:false를 반환한 반면 Playwright의 기본 헤드리스 세션은 isBot:true를 반환하여, 기본 user-agent 및 webdriver 플래그가 어떻게 자동화 여부를 드러내는지 보여주었습니다.

WebDev · 4 min read

Astro 7 업그레이드 시 수식, 헤딩 링크, 커스텀 옵션 오류 발생 – 해결 방법

Astro 7은 이제 HTML-AST 플러그인보다 먼저 구문 강조(syntax highlighting)를 실행하는 Rust 기반의 Sätteri 마크다운 엔진을 사용합니다. 이 변경 사항으로 인해 $$...$$ 블록이 코드로 잘못 분류되고, 헤딩 슬러그(heading-slug) 플러그인이 ID를 생성하지 못하며, 전달된 비표준 마크다운 설정이 무시되는 문제가 발생합니다.

WebDev · 4 min read

핫 루프에서 Substring 할당으로 7.8 MB 낭비 – Span 조회로 전환

프로파일러 분석 결과, Substring을 통해 매번 딕셔너리 조회를 할 때마다 새로운 문자열을 생성하면서 7.8 MB의 가비지가 할당되는 것으로 나타났습니다. .NET 9의 GetAlternateLookup와 ReadOnlySpan<char>를 사용하면 할당을 제거하고 루프 속도를 1.5배 높일 수 있습니다.

WebDev · 1 min read

단 한 번의 ISP 장애가 원격 엔지니어의 업무를 어떻게 마비시키는지, 그리고 이를 방지하는 방법

단 한 번의 ISP 장애도 서버 다운과 마찬가지로 원격 개발자의 업무를 몇 시간 동안 중단시킬 수 있습니다. 전력 소모량을 측정하고, UPS를 추가하며, 4G/5G 핫스팟 백업 기능이 있는 듀얼 WAN 라우터를 설치하면 RTO를 준수하면서 끊김 없이 코딩을 이어갈 수 있습니다.

WebDev · 2 min read

플래키 테스트가 CI를 망치고 있습니다 – 통과율 대신 실패 신뢰 지표로 전환하세요

팀들은 높은 통과율을 쫓지만, 그 과정에서 플래키한 실패들이 실제 버그를 가려버립니다. 실패 재발률, 결함 탐지율, 재시도 의존도, 진단 소요 시간 등을 추적함으로써, 소음만 가득한 빨간색 경고창을 실제 릴리스를 가이드할 수 있는 신뢰할 수 있는 신호로 바꿀 수 있습니다.

WebDev · 4 min read

E-commerce Sites Can Escape Facet Crawl Traps by Blocking Low-Value URLs

An audit found Googlebot hitting filter URLs three times daily while main categories were crawled once every three weeks, causing fresh inventory to sit invisible for weeks. By classifying facets, using canonicals, blocking low-value URLs, and rendering filters as buttons, sites trimmed indexing tim

WebDev · 3 min read

AI 합의라는 환상의 붕괴: 10개 모델, 5개 슬롯, 29개의 고유한 답변

루마니아 최고의 럭셔리 웨딩링 제작사를 찾기 위해 10개의 최상위 LLM을 대상으로 실험을 진행했습니다. 50개의 추천 슬롯에서 총 29개의 서로 다른 브랜드가 도출되었으며, 이 중 66%는 단 하나의 모델에서만 언급되어 데이터 파이프라인이 브랜드 가시성에 미치는 영향을 여실히 보여주었습니다.

WebDev · 2 min read