Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

기술 뉴스 #224 : 23-06-16

웹개발 관련

  • RSC From Scratch. Part 1: Server Components : Dan Abramov가 React Server Components(RSC)의 초 간단 버전을 처음부터 만들어 보는 튜토리얼을 작성하는데 그 첫 번째 글로 Server Components를 설명하는 1편이다.(영어)
  • Breaking React Query's API on purpose : React Query가 v5에서 useQueryonSuccess, onError, onSettled 콜백을 제거하기로 한 이유를 설명한 글이다. 호환성을 깨뜨리는 변경 사항이 적용되는 메이저 버전이라는 면에서 이는 API의 5번째 실패를 의미한다고 할 수 있다. 이 콜백은 직관적이라 사람들이 좋아하지만 여러 번 호출될 수 있고 콜백에서 상태 동기화를 하면서 문제를 오히려 찾기 어렵게 만들며 안티 패턴을 유도해서 버그를 만들 가능성이 커졌다고 한다.(영어)
  • iOS 17 automatically removes tracking parameters from links you click on : iOS 17의 Safari에 Link Tracking Protection 기능이 도입되어 Safari의 프라이빗 모드에서 사용자 식별을 위한 파라미터를 URL에서 자동 제거된다. 이는 광고 플랫폼 등에서 사용자를 추적하기 위해 URL 끝에 추가 파라미터를 자동으로 붙여서 사용한다.(영어)

그 밖의 개발 관련

  • Introducing the Vercel AI SDK : Vercel에서 JavaScript/TypeScript로 대화형, 스트리밍, 채팅 인터페이스를 구축할 수 있는 Vercel AI SDK를 오픈소스로 공개했다. 이 SDK는 React/Next.js, Svelte/SvelteKit을 지원하고 Nuxt/Vue도 곧 지원할 예정이고 OpenAI, LangChain, Hugging Face를 지원하고 있어서 모델 제공 업체와 상관없이 SDK를 사용할 수 있다.(영어)
  • Migrating Netflix to GraphQL Safely : 2022년 Neflix의 모바일 앱은 무중단으로 GraphQL로 마이그레이션 되었으면 클라이언트부터 API 계층까지 전면적인 개편이 있었다고 한다.(영어)

    • 이전에는 API 팀에서 만든 모노리식 Falcor API를 사용했음.
    • 1단계에서는 2020년 UI 엔지니어가 GraphQL로 전환할 준비가 끝나자, 전면적인 마이그레이션 전에 Falcor API 앞에 GraphQL Shim 서비스를 생성함. 이 Shim 서비스를 통해 클라이언트는 GraphQL로 전환하며 실험할 수 있고 서버 측은 별도로 마이그레이션을 할 수 있었음. 이를 위해 AB 테스팅을 사용함.
    • 2단계에서는 Federated GraphQL을 사용해서 각 도메인 팀의 GraphQL 서비스를 이용하고 레거시 Falcor와 GraphQL Shim은 더는 사용하지 않음. 이를 안전하게 하기 위해 Replay 테스팅과 스티키 카나리를 이용함.
    • 기능적 요구사항과 멱등성을 가진 요청을 테스트할 때는 Replay 테스팅을 사용함.
    • 캐싱, 로깅 등 비기능적 요구사항을 테스트할 때는 AB 테스팅과 스티키 카나리를 사용함.

인프라 관련

  • The growing pains of database architecture : Amazon RDS에서 단일 Postgres 데이터베이스를 사용하고 있던 Figma가 더는 하나의 데이터베이스로 서비스하기 어려워서 점진적으로 개선해 나간 과정을 정리한 글이다.(영어)

    • 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가 빠르게 변함에도 지속 가능한 가치를 만드는 것이라고 하고 있다.(한국어)
  • Here’s what Mark Zuckerberg thinks about Apple’s Vision Pro : Apple이 VisionPro를 발표하고 Meta의 Mark Zuckerberg가 내부 전사 회의에서 애플의 비전이 Meta가 추구하는 가치와 비전의 차이를 보여이라고 얘기하며 Apple이 미래 컴퓨팅의 비전일 수도 있지만 Meta가 원하는 미래는 아니라고 얘기했다.(영어)

IT 업계 뉴스

  • 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 앱이 너무 큰 금액을 지불해야 하는 상황이 되어 서드파티 앱을 죽이고 있다고 주장하고 있다.(영어)
  • Google Domains shutting down, assets sold and being migrated to Squarespace : Google Domains를 종료하고 사업과 자산은 Squarespace가 인수하기로 했다. Google Domains는 2014년 시작되어 HTTPS와 TLD를 지원하고 2022년 베타 서비스를 종료했다. Squarespace는 올 3분기 정도에 인수가 완료될 것으로 보이고 이후 12개월 동안 기존 고객의 갱신 가격을 유지할 것이라고 한다.(영어)
  • Read the new Twitter CEO’s first email to employees : Twitter의 새 CEO인 Linda Yaccarino가 출근해서 "Building Twitter 2.0 Together"라는 이메일을 보내며 일론 머스크의 목표인 Global Town Square를 만들겠다고 강조했다.(영어)

프로젝트

버전 업데이트

2023/06/16 23:20 2023/06/16 23:20