GyaanSetu WebDev

Frontend, backend and devops for the modern web.

209 articlesDeep, practical knowledge

TechForge, 초기 마이크로서비스가 지연 시간이 많은 분산 모놀리스로 변질될 수 있다고 경고

이 가이드는 많은 스타트업이 단일 공유 DB를 유지하면서 코드베이스를 '마이크로서비스 기반'이라고 부르지만, 실제로는 네트워크 지연 문제를 여전히 겪는 밀결합된 모듈을 만들게 된다는 점을 보여줍니다. 진정한 확장성이나 소유권 분리가 필요한 경우에만 서비스를 분리하십시오.

WebDev · 5 min read

ChatGPT 트래픽 유입을 위한 인용 봇은 유지하면서 학습용 봇만 차단하는 방법

GPTBot에 대해 단순히 “Disallow: /”를 설정하면 학습용 크롤러만 차단될 뿐, ChatGPT 답변창에 페이지를 노출해 주는 인용 봇은 그대로 유지됩니다. GPTBot, ClaudeBot 등은 차단하면서 OAI-SearchBot, ChatGPT-User와 같은 봇들은 허용하려면, 명시적인 robots.txt 규칙을 사용하거나 Cloudflare의 AI Crawl Control을 활용하세요.

WebDev · 4 min read

점수 정렬 방식에서 A-Res 방식으로 전환하여 홈페이지의 ‘계속 똑같은 그리드만 보이는’ 버그를 해결했습니다

각 후보 행을 한 번씩만 처리하고 24개의 항목만 유지하는 최소 힙(min-heap)을 사용함으로써, 새로운 가중치 기반 레저버 샘플링(weighted reservoir sampling)은 새로고침할 때마다 그리드를 갱신할 뿐만 아니라 SQLite 메모리 오버헤드도 획기적으로 줄여줍니다.

WebDev · 3 min read

5가지 간단한 단계로 Shopify의 중복된 제품 JSON-LD 수정하기

Google의 스키마 마크업 검사기를 실행하여 문제가 되는 테마 파일이나 앱을 찾아낸 후, 불필요한 JSON-LD 블록을 제거하고 앱을 다시 점검하세요. 각 단계를 통해 단일화된 깨끗한 제품 스키마를 복구하여 리치 결과 노출을 최적화할 수 있습니다.

WebDev · 1 min read

Whisper 셀프 호스팅 vs. API의 실제 비용

Whisper 셀프 호스팅 vs. API의 실제 비용. 팀에서 AssemblyAI 청구서를 보고 누군가 묻습니다. "비용을 아끼기 위해 Whisper를 직접 호스팅하면 안 되나요?" 간단해 보입니다. ...를 다운로드하면...

WebDev · 3 min read

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

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

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