Articlestack.convex.dev·2026년 7월 8일·0

Posts by Ian Macartney

Quick Summary

이 페이지는 Convex 개발자 경험을 담당하는 Ian Macartney의 글 목록으로, 인증·권한, 내구성 있는 워크플로, 협업 편집, 운영 성숙도, 확장성, AI 애플리케이션, 검증·세션·마이그레이션 같은 Convex 기반 풀스택 개발 주제를 폭넓게 정리한다.

Posts by Ian Macartney 관련 대표 이미지

🖼️ 인포그래픽

Posts by Ian Macartney 내용을 설명하는 본문 이미지

🖼️ 4컷 인포그래픽

Posts by Ian Macartney 내용을 설명하는 본문 이미지

💡 한 줄 요약

이 페이지는 Convex 개발자 경험을 담당하는 Ian Macartney의 글 목록으로, 인증·권한, 내구성 있는 워크플로, 협업 편집, 운영 성숙도, 확장성, AI 애플리케이션, 검증·세션·마이그레이션 같은 Convex 기반 풀스택 개발 주제를 폭넓게 정리한다.

📌 핵심 요약

  • Ian Macartney는 Convex의 Developer Experience 업무를 맡고 있으며, New York Times 프리랜서 풀스택 개발, Dropbox 백엔드 엔지니어·기술 리드, MindTribe 기계공학, 초기 iOS 개발 경험을 가진 인물로 소개된다.
  • 가장 최근 글들은 애플리케이션 권한 설계, 에이전트의 장기 실행 워크플로 안정성, 에이전트 메모리, Mastra 워크플로 재구현 경험처럼 코드 추상화와 신뢰성 있는 백엔드 흐름에 초점을 둔다.
  • Convex를 자체 호스팅하는 방법, 백엔드 컴포넌트 생태계, 협업 문서 편집, Automerge 기반 로컬 우선 동기화 등 배포와 협업 기능을 앱에 통합하는 주제가 반복적으로 등장한다.
  • 운영 관점에서는 프로덕션 관찰성, 테스트 패턴, 온라인·경량 마이그레이션, 인증 함수 테스트, 쿼리 확장, 애플리케이션 레이어 속도 제한, 워크 스틸링 같은 실무적 확장 기법을 다룬다.
  • AI 관련 글들은 ChatGPT 앱 구축, GPT 스트리밍, 콘텐츠 모더레이션, 성격 설정, Dall-E 이미지 생성, 임베딩과 Pinecone, AI Town 등 Convex와 AI 기능을 결합하는 예제를 중심으로 구성된다.

🧩 주요 포인트

  1. Ian Macartney는 Convex의 Developer Experience 업무를 맡고 있으며, New York Times 프리랜서 풀스택 개발, Dropbox 백엔드 엔지니어·기술 리드, MindTribe 기계공학, 초기 iOS 개발 경험을 가진 인물로 소개된다.
  2. 가장 최근 글들은 애플리케이션 권한 설계, 에이전트의 장기 실행 워크플로 안정성, 에이전트 메모리, Mastra 워크플로 재구현 경험처럼 코드 추상화와 신뢰성 있는 백엔드 흐름에 초점을 둔다.
  3. Convex를 자체 호스팅하는 방법, 백엔드 컴포넌트 생태계, 협업 문서 편집, Automerge 기반 로컬 우선 동기화 등 배포와 협업 기능을 앱에 통합하는 주제가 반복적으로 등장한다.
  4. 운영 관점에서는 프로덕션 관찰성, 테스트 패턴, 온라인·경량 마이그레이션, 인증 함수 테스트, 쿼리 확장, 애플리케이션 레이어 속도 제한, 워크 스틸링 같은 실무적 확장 기법을 다룬다.
  5. AI 관련 글들은 ChatGPT 앱 구축, GPT 스트리밍, 콘텐츠 모더레이션, 성격 설정, Dall-E 이미지 생성, 임베딩과 Pinecone, AI Town 등 Convex와 AI 기능을 결합하는 예제를 중심으로 구성된다.

🧠 상세 정리

1. 작성자 소개와 글 목록의 성격

본문은 Ian Macartney의 개인 글 목록 페이지로 시작하며, 그가 Convex에서 Developer Experience 업무를 맡고 있다고 소개한다. 이어 New York Times 등에서 풀스택 프리랜서로 일했고, Dropbox에서 백엔드 엔지니어와 기술 리드 역할을 했으며, MindTribe에서 기계공학자로 일했고, iOS라는 이름이 생기기 전부터 iOS 엔지니어링을 했다는 이력이 제시된다. 이 소개는 글 목록 전체가 단순한 제품 홍보가 아니라, 풀스택 개발·백엔드 설계·개발자 도구·사용성에 대한 폭넓은 실무 경험을 바탕으로 작성된 콘텐츠임을 보여준다. 페이지는 이후 Ian의 모든 글을 최신순으로 나열하며, 각 글은 제목, 짧은 설명, 작성 시점을 통해 핵심 주제를 빠르게 파악할 수 있게 구성되어 있다.

2. 권한, 에이전트, 내구성 있는 워크플로

최신 글 묶음은 애플리케이션의 권한 설계와 에이전트 실행 신뢰성에 집중한다. “Authorization In Practice”는 클라이언트, 미들웨어, RBAC, RLS 등 여러 계층을 통과하며 앱 권한을 어떻게 사고하고 구현할지 다룬다고 설명한다. “Agents Need Durable Workflows and Strong Guarantees”는 에이전트가 장기 실행 워크플로에 의존하지만 중간에 실패할 때 문제가 생긴다는 점을 출발점으로 삼고, 트랜잭션, 멱등성, 재시도, 내구 함수, 저널링, 상태 머신을 정확성과 안정성을 관리하는 도구로 제시한다. “AI Agents with Built-in Memory”는 스레드별 메시지 기록을 자동 저장·검색하고 여러 탭과 사용자에게 실시간 결과를 제공하는 백엔드 컴포넌트를 소개하며, 워크플로 컴포넌트와 함께 서버 재시작 이후에도 재시도와 내구성을 갖고 실행될 수 있다고 설명한다.

3. 재구현 경험과 더 적게, 더 빠르게 만드는 교훈

“Reimplementing Mastra Workflows: Lessons Learned”는 Mastra의 에이전트 워크플로를 Convex의 내구 함수로 다시 구현했지만 그것이 잘못된 결정이었다고 밝히는 글로 소개된다. 본문 요약은 세 가지 전략, 즉 재구현, API 래핑, 공식적으로 권장되는 플러그인 경로를 비교하고, 그 과정에서 얻은 배움과 다음에는 어떻게 다르게 할지에 대한 회고를 다룬다고 말한다. 특히 짧은 결론으로 “덜 하고, 더 똑똑하게 하고, 더 빠르게 프로토타입하라”는 방향이 제시되어 있다. 이 항목은 글 목록 전체에서 반복되는 실용주의적 태도와도 연결되며, 복잡한 시스템을 직접 다시 만드는 것보다 적절한 추상화와 빠른 검증 경로를 선택하는 문제가 중요한 주제로 나타난다.

4. Convex 자체 호스팅, 백엔드 컴포넌트, 협업 편집

여러 글은 Convex를 앱의 백엔드 기반으로 사용할 때 필요한 배포와 구성 요소를 다룬다. “Self-Hosting with Convex”는 반응형 데이터베이스이자 백엔드인 Convex를 자체 호스팅하는 방법을 설명하며, Docker, Fly.io, Neon.tech를 이용한 설정과 자체 호스팅과 클라우드 호스팅의 장단점을 다룬다고 되어 있다. “Components for your Backend”는 지리공간 검색, Expo 푸시 알림, LaunchDarkly 기능 플래그, 내구 함수 워크플로 같은 빌딩 블록을 통해 직접 작성하고 유지해야 하는 코드를 줄이는 Convex Components 생태계를 소개한다. 협업 문서 편집 글은 BlockNote, Tiptap, ProseMirror OT sync를 언급하고, Automerge 글은 CRDT를 이용한 협업 편집과 Convex를 통한 변경 동기화를 다룬다.

5. 운영 성숙도, 관찰성, 테스트, 마이그레이션

중간 시기의 글들은 앱이 성장하면서 필요한 운영 기초를 폭넓게 다룬다. “Operational maturity for production”은 앱이 성숙해질 때 필요한 운영 성숙도의 여러 측면과 단계들을 다룬다고 소개되며, “Observing your app in production”은 오류, 성능, 사용자 행동을 이해하고 변화에 빠르게 대응하기 위해 전용 도구를 설정해 실행 가능한 데이터를 얻는 방법을 다룬다. “Testing patterns for peace of mind”는 Convex 또는 그 밖의 환경에서 풀스택 앱을 테스트하는 모범 사례를 설명하고, 대시보드에서 JWT를 디코딩해 “Act as a user”로 인증 함수 테스트를 하는 방법도 별도 글로 제시된다. 마이그레이션 주제는 상태ful 온라인 마이그레이션, 경량 마이그레이션, 마이그레이션 입문으로 나뉘며, 대시보드 bulk edit이나 mutation, 관리용 컴포넌트 같은 방식이 언급된다.

6. 확장성, 부하 분산, 속도 제한, 쿼리 최적화

확장성과 성능을 다루는 글들도 목록의 중요한 축이다. “Queries that scale”은 앱이 수십 명에서 수백 명, 수천 명 사용자로 성장할 때 데이터베이스 쿼리를 빠르고 효율적으로 유지하는 일반적인 기법을 짧게 정리한다고 설명한다. “Rate Limiting at the Application Layer”는 강한 ACID 보장을 가진 데이터베이스에 빠르게 접근할 수 있을 때 애플리케이션 레이어에서 토큰 버킷과 고정 윈도 방식의 속도 제한을 구현하고, 공정성, 버스트 허용, fire-and-forget 지원을 다룬다. “Work Stealing” 관련 두 글은 push 기반 부하 분산과 pull 기반 워크 스틸링을 비교하고, LLM 모델 실행 같은 리소스 집약 작업을 분산하는 전략과 Convex의 반응형 데이터베이스를 이용한 구현을 설명한다. 오래된 글 중 “Throttling Requests by Single-Flighting”은 쓰기 작업이 많은 애플리케이션에서 React hook과 Convex를 이용해 요청을 동적으로 제한하는 방식을 다룬다.

7. 타입 안정성, 검증, 세션, 함수 래핑

Ian의 글 목록에는 TypeScript와 서버 함수 구조를 더 안전하고 읽기 쉽게 만드는 글들이 반복적으로 등장한다. “Zod with TypeScript for Server-side Validation and End-to-End Types”는 서버 함수 인자 검증을 통해 잘못된 데이터를 막고, 클라이언트까지 전파되는 TypeScript 타입을 정의하는 방법을 설명한다. “Using branded types in validators”는 Convex validator로 표현하기 어려운 더 구체적인 타입을 스키마 정의에서 한 번 캐스팅해 타입 수준에 문서화할 수 있다고 소개한다. “Customizing serverless functions without middleware”와 여러 “Wrappers as Middleware” 글들은 미들웨어나 중첩 래퍼의 간접성을 줄이면서도 요청 핸들러 정의를 재사용하고, 인증 사용자 처리, Zod 검증, 서버 저장 세션 데이터를 래퍼 함수로 구성하는 패턴을 다룬다. 세션 관련 글은 로그인 전 익명 사용자 관리, 클라이언트에 세션 ID 저장, localStorage와 sessionStorage를 이용한 탭·브라우저별 세션 추적도 포함한다.

8. AI 애플리케이션과 임베딩, 스트리밍, 콘텐츠 처리

3년 전 전후의 글 묶음에는 Convex와 AI 기능을 결합하는 예제가 많이 포함된다. “Building a Full-Stack ChatGPT app”은 ChatGPT의 새 API를 이용해 풀스택 채팅 앱을 만드는 글로 소개되고, 후속 글인 “Adding Personality to ChatGPT-3”는 여러 성격을 Convex에 저장해 ChatGPT API에 제공하고 대화 중 성격을 바꾸는 방법을 다룬다. “Moderating ChatGPT Content”는 메시지를 ChatGPT에 보내기 전 moderation API로 플래그 처리하고, 풀스택 React 앱에서 오류를 다루는 패턴을 설명한다. “GPT Streaming With Persistent Reactivity”는 브라우저 기반 HTTP 스트리밍의 취약함을 피하면서 OpenAI Node SDK를 서버 측에서 사용하고 Convex의 useQuery 훅을 클라이언트에서 사용해 지속성과 반응성을 갖춘 GPT 응답 스트리밍을 구현한다고 되어 있다. 임베딩 주제에서는 임베딩의 유용성, Convex에 저장하고 사용하는 방법, Pinecone과 Convex를 함께 쓰는 애플리케이션 구성이 제시되며, Dall-E 이미지 생성과 AI Town v2도 목록에 포함된다.

9. 반응형 데이터베이스로 만드는 제품 기능

오래된 글들은 Convex의 반응형 특성을 실제 제품 기능으로 연결하는 예제를 제공한다. “Building a Multiplayer Game”은 멀티플레이어 게임에 필요한 동기화 로직과 이벤트 시스템을 Convex의 기본 반응형 쿼리, 트랜잭션 mutation, 백엔드 저장소, scheduled function으로 구현하는 내용을 다룬다. “Implementing Presence with Convex”는 웹앱에 presence를 넣는 패턴과 함께 작성자가 만든 팁과 유틸리티를 공유한다고 되어 있다. “Launching Features Right on Time: Feature Gating”은 Convex 쿼리의 반응형 특성을 이용해 기능을 원격으로 켜고 끄는 방법을 설명한다. “5 Dashboard Tricks”는 대시보드에서 함수 실행, 시드 데이터 입력, 데이터 필터링과 삭제, 파일 업로드 등을 할 수 있다고 소개해, 코드뿐 아니라 도구 사용 경험도 글 목록의 한 축임을 보여준다.

🧾 핵심 주장 / 시사점

  • 이 글 목록은 Convex를 단순한 데이터베이스가 아니라 인증, 세션, 워크플로, 협업, 운영, AI 기능까지 포괄하는 풀스택 백엔드 플랫폼으로 다루는 흐름을 보여준다.
  • Ian의 글은 대규모 추상화보다 빠른 피드백, 유지보수 가능한 코드, 타입 안정성, 운영 가능한 구현을 중시하는 실무 지향성이 강하다.
  • AI 관련 글들도 모델 자체보다 스트리밍, 메모리, 내구성, 임베딩 저장, 콘텐츠 검수, 백엔드 상태 관리처럼 실제 앱으로 만들 때 필요한 주변 시스템에 초점이 맞춰져 있다.

✅ 액션 아이템

  • Ian Macartney의 DevEx 경력과 최근 권한 설계·장기 실행 워크플로 중심 글을 바탕으로 핵심 신뢰성 요구사항을 정리한다.
  • Convex 자체 호스팅, 백엔드 컴포넌트, Automerge 로컬 우선 동기화 사례를 비교해 배포·협업 통합 설계의 공통 패턴을 추출한다.
  • 프로덕션 관찰성, 인증 함수 테스트, 온라인·경량 마이그레이션, 속도 제한, 워크 스틸링 항목을 적용 범위와 점검 우선순위로 정렬한다.

❓ 열린 질문

  • 권한 설계와 에이전트 메모리·장기 실행 워크플로를 결합할 때 신뢰성의 최소 검증 기준은 무엇인가?
  • Convex 자체 호스팅 환경에서 Automerge 기반 로컬 우선 동기화와 온라인 마이그레이션 패턴을 동시에 운영할 때 충돌 지점은 어디인가?
  • ChatGPT 앱·GPT 스트리밍·임베딩 결합 시 콘텐츠 모더레이션과 쿼리 확장·속도 제한을 함께 충족할 실무 기준은 어떻게 잡을 수 있는가?

관련 문서

공통 태그와 주제 흐름을 기준으로 같이 보면 좋은 문서를 이어서 제안합니다.