Breaking React Query's API on purpose : React Query가 v5에서 useQuery의 onSuccess, onError, onSettled 콜백을 제거하기로 한 이유를 설명한 글이다. 호환성을 깨뜨리는 변경 사항이 적용되는 메이저 버전이라는 면에서 이는 API의 5번째 실패를 의미한다고 할 수 있다. 이 콜백은 직관적이라 사람들이 좋아하지만 여러 번 호출될 수 있고 콜백에서 상태 동기화를 하면서 문제를 오히려 찾기 어렵게 만들며 안티 패턴을 유도해서 버그를 만들 가능성이 커졌다고 한다.(영어)
Introducing the Vercel AI SDK : Vercel에서 JavaScript/TypeScript로 대화형, 스트리밍, 채팅 인터페이스를 구축할 수 있는 Vercel AI SDK를 오픈소스로 공개했다. 이 SDK는 React/Next.js, Svelte/SvelteKit을 지원하고 Nuxt/Vue도 곧 지원할 예정이고 OpenAI, LangChain, Hugging Face를 지원하고 있어서 모델 제공 업체와 상관없이 SDK를 사용할 수 있다.(영어)
1단계에서는 2020년 UI 엔지니어가 GraphQL로 전환할 준비가 끝나자, 전면적인 마이그레이션 전에 Falcor API 앞에 GraphQL Shim 서비스를 생성함. 이 Shim 서비스를 통해 클라이언트는 GraphQL로 전환하며 실험할 수 있고 서버 측은 별도로 마이그레이션을 할 수 있었음. 이를 위해 AB 테스팅을 사용함.
2단계에서는 Federated GraphQL을 사용해서 각 도메인 팀의 GraphQL 서비스를 이용하고 레거시 Falcor와 GraphQL Shim은 더는 사용하지 않음. 이를 안전하게 하기 위해 Replay 테스팅과 스티키 카나리를 이용함.
Figma는 202년까지 Amazon RDS Postgres 데이터베이스를 사용하고 있어서 CPU 사용률이 65%나 됨.
이 문제를 완화하기 위해 일단 데이터베이스의 사용을 올리고 읽기 리플리카를 만든 뒤 PgBouncer를 추가해서 연결 수를 제어
하지만 부하의 상당 부분이 쓰기와 관련되어 있었고 복제 지연시간 때문에 모든 읽기를 리플리카로 옮길 수 있는 상황도 아님
수평 확장이 되는 NoSQL이나 Vitess 등을 고려했지만 애플리케이션의 수정도 많이 필요했고 직접 운영하려면 관련한 경험이 없었기 때문에 매니지드 솔루션을 그대로 이용하고자 함
데이터베이스를 테이블별로 수직 분할하기로 하고 테이블 그룹을 자체 데이터베이스 베이스로 옮기기로 하고 이 수직 파티셔닝은 원본 데이터베이스에 부담을 줄이면서 향후 테이블의 하위 집합을 수평으로 샤딩할 수 있는 장점이 있음
문제는 파티셔닝이 쉬운지였고 테이블을 이동하면 트랜잭션이나 조인 등의 기능을 잃게 되므로 애플리케이션을 다시 작성하는 비용이 클 수 있음
Ruby에서 ActiveRecord를 사용하고 있었으므로 런타임 유효성 검사기를 만들어서 같은 테이블 그룹을 참조하는 쿼리와 트랜잭션을 기록해서 파티셔닝의 후보로 만듦
마이그레이션 중 가용성 영향을 1분 미만이면서 반복할 수 있고 파티션을 취소할 수 있는 요구사항을 맞추려면 직접 만드는 수밖에 없었음
애플리케이션이 파티셔닝과 호환되도록 한 뒤 PgBouncer를 하나 더 추가해서 트래픽을 분할하여 호환성 검사를 하면서 서비스에 영향이 가게 하고 문제가 없으면 분리된 데이터베이스를 보게 했음.
첫 작업에서 2개의 테이블을 옮기고 2022년 10월에는 50개의 테이블을 옮기면서 CPU 사용률은 10%까지 낮추었다.
볼만한 링크
Stackoverflow 2023 Developer Survey : Stackoverflow에서 매년 진행하는 개발자 설문조사로 9만여 명의 개발자가 응답했다. 응답자의 프로필뿐 아니라 사용/선호 기술, 업무 환경, 커뮤니티 선호도 등을 볼 수 있고 시대에 맞게 AI에 대한 카테고리도 추가되었다.(영어)
Docker가 가장 많이 사용하는 도구로 작년 2위에서 1위로 올라왔다.
Jira, Confluence에 이어 Markdown이 비동기 도구 3위로 선정되었다.
가장 선호도가 높은 언어로 Rust가 뽑혔고 이 중 80%가 내년에도 사용하고 싶다고 응답했다.
Phoenix가 가장 선호하는 웹 프레임워크로 선정되었다.
ChatGPT 사용자 중 42%는 내년에 Google Bard와 Bing AI를 사용하고자 한다.
응답자의 70%가 올해 개발 프로세스에 AI 도구를 사용하거나 사용할 계획이 있다고 응답했다.
5,000명 이상 조직 직원의 절반 이상이 하이브리드 근부를 하고 있고 소규모 조직일수록 대면 근무 비율이 높다.
OpenAI CEO 샘 알트만 내한: AI 시대에 필요한 역량은? : OpenAI 샘 아트만이 내한하면서 그렉 브록만과 함께한 Fireside Chat의 요약이다. AI 시대에서는 새로운 지식을 빠르게 습득하고 적용하는 메타 스킬을 키워야 하고 제품을 만든다면 AI 스타트업이 아니라 사람들이 사랑하는 것이 무엇인지를 찾고 AI가 빠르게 변함에도 지속 가능한 가치를 만드는 것이라고 하고 있다.(한국어)
Major Reddit communities will go dark to protest threat to third-party apps : 서드파티 앱이 Reddit API에 접근할 때 필요한 새로운 요금제에 시위하는 의미로 6월 12일 r/videos, r/reactiongifs, r/earthporn, r/lifeprotips 등 대형 커뮤니티가 비공개로 설정해서 다른 사용자도 참가 못 하게 했다. 이번 새로운 요금제로 서드파티 Reddit 앱이 너무 큰 금액을 지불해야 하는 상황이 되어 서드파티 앱을 죽이고 있다고 주장하고 있다.(영어)
Comments