Firebase 채팅에서 문서 업로드하는 방법
Firebase 채팅에서 문서 업로드하는 방법. 영업팀을 위한 채팅 앱을 구축하려면 텍스트와 이미지 그 이상의 기능이 필요합니다. 운영자는 종종 PDF, Word 파일, Excel 시트 등을 공유해야 합니다...
Frontend, backend and devops for the modern web.
Firebase 채팅에서 문서 업로드하는 방법. 영업팀을 위한 채팅 앱을 구축하려면 텍스트와 이미지 그 이상의 기능이 필요합니다. 운영자는 종종 PDF, Word 파일, Excel 시트 등을 공유해야 합니다...
Firebase PWA에서 알림 센터 구축하기. 영업 팀을 관리하려면 많은 도구가 필요합니다. 제가 만든 제어판은 FCM 푸시 알림, 채팅, 리마인더, 그리고 공유 캘린더를 사용했습니다...
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…
모노레포 ETL을 위한 4가지 GitHub Actions 패턴. 하나의 모노레포에서 세 개의 사이트를 운영하면 문제가 발생합니다. 세 개의 별도 ETL 작업, 세 번의 콘텐츠 재빌드, 그리고 세 번의 배포...
LLMS.TX: 웹사이트에 이것이 필요한 이유. ChatGPT와 Perplexity 같은 AI 검색 엔진이 정보를 찾는 방식을 바꾸고 있습니다. 검색 결과에서 계속 노출되려면, 웹사이트에는 새로운 도구인 llms...가 필요합니다.
Has Isn't A Parent Selector. It Deletes JavaScript. Search your code for classList.toggle. You likely find many instances of the same pattern. A user clicks a checkbox or focuses…
보이지 않는 프론트엔드: 제품을 살리는 작은 결정들. 최고의 프론트엔드 작업은 데모에서 결코 드러나지 않습니다. 사람들은 그것을 스크린샷으로 남기지 않습니다. 하지만 이 작업이 없다면, 사용자들은...
GPT Image 2: 어떤 노드를 삭제하나요? 새로운 이미지 모델들은 종종 화려한 데모를 선보입니다. 빌더들은 과장된 광고를 무시해야 합니다. 데모가 곧 구축 결정은 아닙니다. 대신, 한 가지 질문을 던져보세요:…
2026년, 내가 AI 코딩 도구를 선택한 방법. AI 코딩 어시스턴트를 고르는 일은 보기보다 까다롭습니다. 마케팅을 접하다 보면 모든 도구가 다 똑같아 보이기 마련이죠. 하지만 진짜 차이점은 직접...할 때 비로소 알 수 있습니다.
Cloudflare의 새로운 AI 크롤러 제어 기능. 웹사이트 트래픽이 변화하고 있습니다. 과거에는 검색 엔진이 사람들이 귀하의 사이트를 찾을 수 있도록 사이트를 크롤링했습니다. 단순한 구조였죠. 하지만 AI가 이 과정을 훨씬 더...
나만의 터널링 플랫폼을 직접 구축해 보았다. 노트북으로 웹 앱을 다듬는 데 사흘을 보냈다. 화면은 완벽해 보였다. 하지만 휴대폰으로 테스트를 해보려 하자 모든 것이 망가져 버렸다. 로컬 개발...
MERN 스택 개발자 로드맵. MERN 스택은 웹 개발을 위한 최고의 선택 중 하나입니다. JavaScript라는 단 하나의 언어만 사용하여 풀스택 애플리케이션을 구축할 수 있습니다. MERN은...
사내 커뮤니케이션을 단순한 HR 업무로 치부하지 마세요. 두 회사가 같은 날 같은 제품을 출시했습니다. 두 회사 모두 훌륭한 개발자들을 보유하고 있습니다. 6개월 후, 한 회사는 성장하는 반면 다른 회사는...
LLM + RAG + 함수 호출은 AI 에이전트가 아닙니다. 많은 사람들이 LLM, RAG, 함수 호출을 사용하는 모든 애플리케이션을 AI 에이전트라고 부르곤 합니다. 하지만 이는 잘못된 생각입니다. 이러한 도구들은 기능을 추가할 뿐...
Firestore JOIN의 함정. 흔히 발생하는 Firestore 문제에 직면했습니다. Firebase 함수에서 최대 배치 크기(maximum batch size) 오류가 발생합니다. 대시보드를 위해 주문과 고객 데이터를 조인해야 합니다. 당신은...
테스트 생성을 위한 AI: 도움이 되는 부분과 한계점. AI는 테스트를 빠르게 작성합니다. 하지만 실제처럼 보이지만 잘못된 것을 검증하는 테스트를 작성하기도 합니다. AI에 함수를 붙여넣으면...
초보자를 위한 AWS: S3, 중복 제거 및 Presigned URL. 연습용 앱 개발은 이제 그만하세요. 실제 운영 시스템 구축을 시작하세요. 서버가 언제든 교체될 수 있는 소모성 자원이라면, 파일은 서버 디스크에 저장되어 있어서는 안 됩니다...
내 포트폴리오 웹사이트를 최적화한 방법. 포트폴리오는 당신의 첫인상입니다. 사이트 로딩이 느리거나 구글 검색 결과에 나타나지 않는다면 기회를 놓치게 됩니다. 저는 사이트의 속도를...
멤버십 제한이 있는 워드프레스 사이트를 위한 검색 모달 구축하기. 대부분의 워드프레스 검색 튜토리얼은 헤더에 위젯을 추가하는 단계에서 끝납니다. 하지만 p...와 같이 제한된 콘텐츠가 있는 경우에는 이 방식이 제대로 작동하지 않습니다...
사용자를 잃게 만든 5가지 REST API 실수. 3년 전, 저는 첫 번째 공개 API를 만들었습니다. 주말 사이에 다 끝났다고 생각했죠. 사용자들이 찾아오기를 기다렸습니다. 사용자들이 왔습니다. 그리고 그들은...
AI를 활용한 권한 부여 버그 탐지. 버그 바운티 프로그램이 변화하고 있습니다. 일부 프로그램은 보상 지급을 중단했고, 다른 프로그램들은 지급액을 80%나 삭감했습니다. 그 이유는 AI가 너무 많은 버그를 찾아내기 때문이 아니라...
적절한 웹 렌더링 전략 선택하기. 웹 개발에서 속도와 상호작용성은 종종 서로 충돌하곤 합니다. 페이지가 얼마나 빠르게 보이는지에만 집중하다 보면, 사용자가 느끼는 경험을 망칠 수도 있습니다...
Stripe 웹훅을 통한 다국어 이메일 발송. SaaS를 글로벌 규모로 확장하는 데에는 숨겨진 함정들이 있습니다. 저희는 Stripe 웹훅에서 그중 하나를 발견했습니다. 저희 시스템은 구매 확인, 갱신, 그리고 결제 실패...
TypeScript가 마지막 오버로드를 추론합니다. TypeScript는 오버로드된 함수를 사용할 때 특정한 동작을 보입니다. 오버로드된 함수로부터 타입을 추론하려고 하면, TypeScript는 오직...