동시편집 중 서버에서 일어나는 일
문서 협업 장벽을 낮추기 위해 Yjs 기반 CRDT 동시편집 서버 구조를 설계했습니다. 웹소켓 동기화와 update 영속화, 기존 blocks 문서 형식 호환 방식을 설명합니다.

문서 협업 장벽을 낮추기 위해 Yjs 기반 CRDT 동시편집 서버 구조를 설계했습니다. 웹소켓 동기화와 update 영속화, 기존 blocks 문서 형식 호환 방식을 설명합니다.
Swift Concurrency의 executor와 hop_to_executor 동작을 런타임 소스로 살펴본 글입니다. executor는 job을 실행하는 추상화이며, 스레드 폭증을 막고 hop은 대부분 스레드 전환이 아니라고 정리했습니다.
member GSI의 핫 파티션을 쓰기 샤딩으로 분산한 과정을 다뤘습니다. 공통 프레임워크와 단계적 마이그레이션, 백필 중 Rolling Hot Partition 대응까지 설명했습니다.
Swift의 비동기 모델이 스레드에서 블록, 태스크로 어떻게 진화했는지 설명했습니다. `await`가 함수 분할과 실행 컨텍스트 전환을 만드는 과정을 바이너리 수준에서 다뤘습니다.
상담 메시지 저장 전에 개인정보를 자동 마스킹해 원문이 DB에 남지 않게 만든 사례를 다뤘습니다.정규식 오탐·성능·ReDoS 위험을 함께 고려해 저장 경로를 안전하게 통합했습니다.
이메일로만 들어오던 고객 문의를 채널톡 유저챗으로 연결하는 Mail Relay 설계를 소개했습니다. App Store가 권한과 라우팅을 맡고 연동 앱은 고객 문의 처리에 집중하도록 분리했습니다.
DynamoDB 실무에서 겪는 핫파티션과 트래픽 폭주 대응 사례를 공유하는 밋업을 소개했습니다. 대규모 마이그레이션과 무중단 재구조화 경험도 함께 다룹니다.
DynamoDB GSI의 조회 경로를 인덱스 테이블과 공통 라이브러리로 전환한 사례를 정리했습니다. limit, 커서, 삭제 데이터 처리 함정을 규칙화해 GSI를 최종 제거했습니다.
사용자와 AI가 만든 코드를 운영 서버에서 안전하게 실행하기 위해 별도 Kernel 계층을 설계했습니다. 기존 서비스와 실행 환경을 분리하고 인증정보와 세션 상태를 밖으로 빼는 방향을 정리했습니다.
DynamoDB managed GSI의 핫 파티션을 피하기 위해 인덱스 테이블 분리와 전파 파이프라인 구현 과정을 다뤘습니다. 운영 중에는 버스트 제어와 SQS 적체를 조정해 안정적으로 변경분을 반영했습니다.
Kafka 파티션 수를 처리량과 컨슈머 catch-up 기준으로 계산하는 산정식을 정리했습니다. 운영 환경 실측값을 반영해 토픽별 초기 파티션 수를 일관되게 정하는 방법을 제안했습니다.
카프카 파티션 수를 정하는 산정식과 기준값을 설계한 과정을 정리했습니다. 프로듀서 처리량, 컨슈머 catch-up, 운영 한도를 함께 고려해 초기 파티션 수 판단 기준을 제안했습니다.
DynamoDB managed GSI의 핫 파티션이 Boot 트래픽까지 막는 구조를 분석했습니다. 이를 해결하기 위해 인덱스 테이블과 쓰기 전파 파이프라인을 설계했습니다.
DynamoDB GSI 핫 파티션이 Boot까지 막는 장애 구조를 분석했습니다. 인덱스 테이블과 스트림 기반 파이프라인으로 쓰기 병목을 분리하는 설계를 소개했습니다.
내부 백오피스 검색 지연 문제를 고객 사용 방식 인터뷰로 먼저 확인했습니다. IndexedDAO를 도입해 인덱스 히트를 보장하고 8초 쿼리를 200ms대로 개선했습니다.
biz-crm 대용량 검색 지연 문제를 사용자 인터뷰로 원인부터 재점검했습니다. 범용 필터를 줄이고 IndexedDAO를 도입해 인덱스 기반 조회로 개선했습니다.
AI가 아키텍처 규칙을 어기는 문제를 CLAUDE.md가 아니라 코드 구조와 테스트로 해결한 사례를 다뤘습니다. Go 백엔드를 DDD와 커스텀 아키텍처 테스트로 리팩토링해 AI가 안정적으로 코드를 생성하도록 만들었습니다.
AI가 자연어 규칙을 무시하는 문제를 해결하기 위해 Go 백엔드를 DDD 구조로 리팩토링했습니다. 커스텀 아키텍처 테스트와 CI 강제로 규칙을 코드 수준에서 검증하도록 만들었습니다.