맞는 글이 없어요.
Deservewhatyouwant.
전체 글
AI가 블로그 글의 주제에 맞는 자료를 찾도록 검색어 생성 방식을 개선하고, 여러 글에 같은 자료가 반복되지 않도록 출처 배정 로직을 수정한 과정입니다.
AI가 만든 길고 딱딱한 제목을 더 자연스럽고 이해하기 쉽게 바꾼 과정을 소개합니다.
위블로그 베타에서 실제 사용자의 질문과 행동은 처음 세운 고객 가설과 달랐습니다. 이 차이가 온보딩과 B2C/B2B 방향, 제공 가치의 재정의로 이어진 과정을 돌아봅니다.
위블로그에서 사용자가 원하는 글감을 바탕으로 자료와 출처를 확보하고 글을 생성·발행했습니다. 커스텀 도메인을 연결한 뒤 구글 검색 노출을 확인하기까지의 흐름과 한계를 소개합니다.
네 명의 개발 작업을 공유 VPS로 옮기면서 작업 공간과 권한을 나눌 필요가 생겼습니다. 계정·포트·Git worktree로 작업을 분리하고 운영 API 연결은 전용 터널 서비스가 맡도록 바꿨습니다.
인앱 브라우저에서 간편로그인 버튼이 사라지는 문제를 확인했습니다. 에러 로그에 남지 않는 이탈에 대응하기 위해 브라우저를 감지하고, 외부 브라우저 전환과 폴백 경로를 마련했습니다.
LLM 주 계정의 사용량이 88%에 도달한 것을 확인하고 먼저 수동으로 계정을 전환했습니다. 이후에는 사용량 임계값과 계정 우선순위에 따라 보조 계정이 요청을 이어받도록 전환 절차를 자동화했습니다.
도메인을 구매해도 외부 DNS에서 새 설정을 확인하기까지 시간이 필요했습니다. 즉시 처리할 작업과 DNS 확인 이후의 작업을 분리하고, 연결 상태 확인과 검색 등록 재처리를 자동화했습니다.
중복 검색과 실패할 재시도를 줄인 뒤, 글감 15건의 운영 로그로 검색·본문 파싱 비용을 계산했습니다. 실제 비용 약 150원과 생략한 호출을 포함한 비교값 약 309원이 어떻게 산정됐는지 설명합니다.
같은 글감으로 코덱스와 그록의 생성 결과를 비교하고, 품질과 호출 속도를 기준으로 선택을 검토했습니다. 긴 글을 나누어 생성하는 구조에서 그록을 선택한 이유와, 출처 보강과 숫자 검증으로 품질을 보완한 방법을 설명합니다.
글을 발행해도 검색되지 않는 문제를 조사하며 기본 서브도메인과 커스텀 도메인의 색인 결과를 비교했습니다. 통제되지 않은 조건의 한계를 인정하면서 운영 데이터를 근거로 도메인 추천 기준을 바꿨습니다.
LLM을 두 번 호출하던 키워드 발굴 경로를 구글·네이버 검색창 자동완성으로 바꾸었습니다. 응답 시간을 25.1초에서 0.2초로 줄인 구현과 함께, 비공식 엔드포인트를 서비스에 적용하며 검토한 제약을 다룹니다.
배포 대상 서비스를 지정하지 않아 DB와 리버스 프록시까지 재생성되면서 서비스 중단이 반복됐습니다. 어드민에는 블루그린 배포를 적용하고, Caddy는 배포 경로에서 분리해 각 구성 요소에 맞게 중단 원인을 제거했습니다.
메시지 전송 요청에 섞여 있던 FCM 푸시를 전용 워커 큐로 분리했습니다. 요청 처리와 외부 호출의 책임을 나누고, 빈 catch에서 사라지던 실패를 Sentry로 관측할 수 있게 바꾸었습니다.
메신저 부하 테스트에서 오류율이 42.8%까지 높아진 원인을 추적하니 읽지 않은 메시지 수를 갱신하는 쿼리에 교착 상태가 있었습니다. 반복 갱신이 필요했던 unreadCount 대신 마지막으로 읽은 시점인 lastReadAt을 사용하는 구조로 전환했습니다.
메신저 API의 처리 한계와 병목을 확인하기 위해 운영 구성을 복제한 7노드 부하 테스트 환경을 만들었습니다. 인프라 생성부터 관측 도구와 인증 데이터 준비까지 반복 실행할 수 있도록 구성했습니다.
Centrifugo의 Pub/Sub 브로커로 KeyDB를 검토했지만, 공개된 멈춤과 교착 상태 이슈에서 운영 위험을 확인했습니다. Valkey와 Sentinel로 전환하고, 10만 연결 부하와 페일오버 테스트로 동작을 검증했습니다.
긴 브라우저 녹음에서 메모리 증가와 크래시 손실, 음성 인식 품질과 수동 처리 흐름이 문제였습니다. 5분 단위 저장과 클라우드 직접 업로드를 도입하고, 전사·회의록 요약·실시간 전달까지 이어지는 파이프라인을 구축했습니다.