GyaanSetu WebDev

Frontend, backend and devops for the modern web.

460 articlesDeep, practical knowledge

Firebase 채팅에서 문서 업로드하는 방법

Firebase 채팅에서 문서 업로드하는 방법. 영업팀을 위한 채팅 앱을 구축하려면 텍스트와 이미지 그 이상의 기능이 필요합니다. 운영자는 종종 PDF, Word 파일, Excel 시트 등을 공유해야 합니다...

WebDev · 2 min read

Firebase PWA에서 알림 센터 구축하기

Firebase PWA에서 알림 센터 구축하기. 영업 팀을 관리하려면 많은 도구가 필요합니다. 제가 만든 제어판은 FCM 푸시 알림, 채팅, 리마인더, 그리고 공유 캘린더를 사용했습니다...

WebDev · 2 min read

Building an Interactive App Guide

Building an Interactive App Guide Support teams often struggle when they use apps they never installed. A PDF manual is a bad solution because nobody reads them. I built a tool th…

WebDev · 2 min read

모노레포 ETL을 위한 4가지 GitHub Actions 패턴

모노레포 ETL을 위한 4가지 GitHub Actions 패턴. 하나의 모노레포에서 세 개의 사이트를 운영하면 문제가 발생합니다. 세 개의 별도 ETL 작업, 세 번의 콘텐츠 재빌드, 그리고 세 번의 배포...

WebDev · 2 min read

LLMS.TX: 웹사이트에 이것이 필요한 이유

LLMS.TX: 웹사이트에 이것이 필요한 이유. ChatGPT와 Perplexity 같은 AI 검색 엔진이 정보를 찾는 방식을 바꾸고 있습니다. 검색 결과에서 계속 노출되려면, 웹사이트에는 새로운 도구인 llms...가 필요합니다.

WebDev · 2 min read

GPT Image 2: 어떤 노드를 삭제하나요?

GPT Image 2: 어떤 노드를 삭제하나요? 새로운 이미지 모델들은 종종 화려한 데모를 선보입니다. 빌더들은 과장된 광고를 무시해야 합니다. 데모가 곧 구축 결정은 아닙니다. 대신, 한 가지 질문을 던져보세요:…

WebDev · 2 min read

2026년, 내가 AI 코딩 도구를 선택한 방법

2026년, 내가 AI 코딩 도구를 선택한 방법. AI 코딩 어시스턴트를 고르는 일은 보기보다 까다롭습니다. 마케팅을 접하다 보면 모든 도구가 다 똑같아 보이기 마련이죠. 하지만 진짜 차이점은 직접...할 때 비로소 알 수 있습니다.

WebDev · 2 min read

Cloudflare의 새로운 AI 크롤러 제어 기능

Cloudflare의 새로운 AI 크롤러 제어 기능. 웹사이트 트래픽이 변화하고 있습니다. 과거에는 검색 엔진이 사람들이 귀하의 사이트를 찾을 수 있도록 사이트를 크롤링했습니다. 단순한 구조였죠. 하지만 AI가 이 과정을 훨씬 더...

WebDev · 2 min read

나만의 터널링 플랫폼을 직접 구축해 보았다

나만의 터널링 플랫폼을 직접 구축해 보았다. 노트북으로 웹 앱을 다듬는 데 사흘을 보냈다. 화면은 완벽해 보였다. 하지만 휴대폰으로 테스트를 해보려 하자 모든 것이 망가져 버렸다. 로컬 개발...

WebDev · 2 min read

MERN 스택 개발자 로드맵

MERN 스택 개발자 로드맵. MERN 스택은 웹 개발을 위한 최고의 선택 중 하나입니다. JavaScript라는 단 하나의 언어만 사용하여 풀스택 애플리케이션을 구축할 수 있습니다. MERN은...

WebDev · 2 min read

LLM + RAG + 함수 호출은 AI 에이전트가 아니다

LLM + RAG + 함수 호출은 AI 에이전트가 아닙니다. 많은 사람들이 LLM, RAG, 함수 호출을 사용하는 모든 애플리케이션을 AI 에이전트라고 부르곤 합니다. 하지만 이는 잘못된 생각입니다. 이러한 도구들은 기능을 추가할 뿐...

WebDev · 2 min read

Firestore JOIN의 함정

Firestore JOIN의 함정. 흔히 발생하는 Firestore 문제에 직면했습니다. Firebase 함수에서 최대 배치 크기(maximum batch size) 오류가 발생합니다. 대시보드를 위해 주문과 고객 데이터를 조인해야 합니다. 당신은...

WebDev · 2 min read

초보자를 위한 AWS: S3, 중복 제거 및 Presigned URL

초보자를 위한 AWS: S3, 중복 제거 및 Presigned URL. 연습용 앱 개발은 이제 그만하세요. 실제 운영 시스템 구축을 시작하세요. 서버가 언제든 교체될 수 있는 소모성 자원이라면, 파일은 서버 디스크에 저장되어 있어서는 안 됩니다...

WebDev · 2 min read

내 포트폴리오 웹사이트를 최적화한 방법

내 포트폴리오 웹사이트를 최적화한 방법. 포트폴리오는 당신의 첫인상입니다. 사이트 로딩이 느리거나 구글 검색 결과에 나타나지 않는다면 기회를 놓치게 됩니다. 저는 사이트의 속도를...

WebDev · 2 min read

사용자를 잃게 만든 5가지 REST API 실수

사용자를 잃게 만든 5가지 REST API 실수. 3년 전, 저는 첫 번째 공개 API를 만들었습니다. 주말 사이에 다 끝났다고 생각했죠. 사용자들이 찾아오기를 기다렸습니다. 사용자들이 왔습니다. 그리고 그들은...

WebDev · 2 min read

AI를 활용한 권한 부여 버그 탐지

AI를 활용한 권한 부여 버그 탐지. 버그 바운티 프로그램이 변화하고 있습니다. 일부 프로그램은 보상 지급을 중단했고, 다른 프로그램들은 지급액을 80%나 삭감했습니다. 그 이유는 AI가 너무 많은 버그를 찾아내기 때문이 아니라...

WebDev · 2 min read

적절한 웹 렌더링 전략 선택하기

적절한 웹 렌더링 전략 선택하기. 웹 개발에서 속도와 상호작용성은 종종 서로 충돌하곤 합니다. 페이지가 얼마나 빠르게 보이는지에만 집중하다 보면, 사용자가 느끼는 경험을 망칠 수도 있습니다...

WebDev · 2 min read

Stripe 웹훅을 통한 다국어 이메일 발송

Stripe 웹훅을 통한 다국어 이메일 발송. SaaS를 글로벌 규모로 확장하는 데에는 숨겨진 함정들이 있습니다. 저희는 Stripe 웹훅에서 그중 하나를 발견했습니다. 저희 시스템은 구매 확인, 갱신, 그리고 결제 실패...

WebDev · 2 min read

TypeScript가 마지막 오버로드를 추론합니다

TypeScript가 마지막 오버로드를 추론합니다. TypeScript는 오버로드된 함수를 사용할 때 특정한 동작을 보입니다. 오버로드된 함수로부터 타입을 추론하려고 하면, TypeScript는 오직...

WebDev · 2 min read