Sitemap
A list of all the posts and pages found on the site. For you robots out there, there is an XML version available for digesting as well.
Pages
Posts
englog
Text-to-SQL을 production에서 어떻게 구현하나? — pgai 코드 뜯어보기
Published:
LLM에게 SQL을 시키는 일은 왜 어렵고, TimescaleDB의 pgai는 그 문제를 코드 단위로 어떻게 풀어놨는가. 머릿속에서 굴려본 단순한 가설부터 시작해, semantic catalog → agent loop → EXPLAIN validator로 이어지는 실제 풀이까지.
토스증권은 왜 느릴까? - 느린 4G에서 CSR, SSE, Streamable HTTP까지
Published:
업무 중 토스증권이 너무 느려서 시작된 탐구기. Slow 4G에서 14초 vs 3초, 6MB JS 번들, 그리고 WebSocket/SSE/Streamable HTTP 비교까지.
11년 묵은 AWS issue 기여기 (1)
Published:
AWS CLI의 wait 명령어에 –delay, –max-attempts 옵션을 추가한 PR 이야기. boto3 코드를 뜯어보니 답이 이미 있었다.
11년 묵은 AWS issue 기여기 (2) - 아무도 검증하지 않던 WaiterConfig
Published:
–delay -1을 넣어보니 Python이 터졌다. 14개 인자를 전수 조사했더니 WaiterConfig만 3개 레이어 어디에서도 검증되지 않고 있었다.
aws-cli #1138 (1) - 두 번 죽은 PR의 묘비
Published:
aws s3 sync --exclude 가 거대 디렉터리를 walk 하는 9년 된 이슈. 이걸 풀려고 시도한 두 PR — #2105 는 5년 방치 후 abandoned, #5425 는 회귀 케이스 하나에 4년 끝에 close. 왜 그렇게 어려웠나.
aws-cli #1138 (2) - 한 방향만 확정하면 된다
Published:
“잘못 prune 한 적 없음”을 알고리즘 단계에서 증명한다. 두 함수 _can_match_under 와 _matches_all_under 의 비대칭이 핵심.
aws-cli #1138 (3) - 100만 파일을 walk 하지 않는 법
Published:
구현 + 벤치마크. 100만 파일 67s → 0.055s (1,220×). 13 엣지 케이스 결과 정합성 100%. 그리고 부수효과로 9년 된 또 하나의 이슈 #1117 까지 자동으로 닫혔다.
opensource
microsoft/VibeVoice
Published:
Microsoft의 long-form 음성 모델 묶음. 7.5 Hz continuous tokenizer로 긴 오디오를 한 패스에 처리.
openai/privacy-filter
Published:
텍스트에서 PII(개인식별정보)를 탐지·마스킹하는 OpenAI의 token-classification 모델.
paper
논문 리뷰 — AlphaFold 3: Accurate Structure Prediction of Biomolecular Interactions
Published:
AF2가 단백질 접힘을 풀었다면, AF3는 그 이야기를 복합체까지 끌고 갔다. Evoformer가 얇아지고, Structure Module 자리에 diffusion이 들어왔다. 뭐가 남았고 뭐가 바뀌었는가.
논문 리뷰 — MuseTalk: Real-Time High-Fidelity Video Dubbing via Spatio-Temporal Sampling
Published:
Stable Diffusion VAE와 Whisper를 얼리고, 단일 스텝 latent inpainting으로 30 FPS 실시간 립싱크를 맞춘다. ‘어떻게 빨라졌나’보다 ‘학습 샘플링을 왜 공간·시간 둘로 쪼갰나’가 핵심.
논문 리뷰 — OmniTalker: One-shot Real-time Text-Driven Talking Audio-Video Generation With Multimodal Style Mimicking
Published:
텍스트를 입력하면 음성과 립싱크 영상을 같이 만든다. 이걸 한 번의 0.8B DiT에서, 25 FPS로, 레퍼런스 영상 하나만 보고. 지난주 읽은 MuseTalk과 포지션이 정확히 반대인 논문.
Forecasting at Scale (Facebook Prophet) 논문 리뷰
Published:
Taylor & Letham, “Forecasting at Scale” — 비즈니스 시계열을 위한 분해 모델과 analyst-in-the-loop 접근
study
Minishell (1) — 파싱: 토큰화 · 따옴표 · env 확장, 그리고 tree 였으면 좋았을 것
Published:
42의 minishell 에서 내가 맡은 건 파서 파트였다. 따옴표 상태머신, t_mini[] flat 구조, env 확장 — 돌아가긴 했는데, 다시 한다면 AST 로 짠다. 그 이유.
Minishell (2) — 실행 구조: fork · pipe · heredoc · signal
Published:
파서가 만든 t_mini[] 위에서 페어가 실행기를 얹었다. fork-exec, pipe fd 체인, heredoc 의 두 번째 fork, 빌트인 부모 분기, readline 과 SIGINT 의 동거. 그리고 프로젝트 총 회고.
Kafka Shallow Dive - Kafka는 왜 쓰는가
Published:
Kafka 공부 1주차 - 등장 배경과 기존 메시지 큐와의 차이
Kafka Shallow Dive - 아키텍처 — Broker, Topic, Partition
Published:
Kafka 공부 2주차 - 클러스터 구조와 파티션/오프셋이 파일시스템에서 어떻게 생겼는지
Kafka Shallow Dive - Producer 심화
Published:
Kafka 공부 3주차 - acks, idempotence, 배치, 압축, 파티셔너
Kafka Shallow Dive - Consumer & Consumer Group
Published:
Kafka 공부 4주차 - Consumer group, 리밸런싱, offset commit, lag
Kafka Shallow Dive - Replication과 고가용성
Published:
Kafka 공부 5주차 - Leader/Follower, ISR, min.insync.replicas, unclean leader
Kafka Shallow Dive - Exactly-once와 Transactions
Published:
Kafka 공부 6주차 - at-most/at-least/exactly-once, 트랜잭션, read_committed
Kafka Shallow Dive - Kafka Streams 기초
Published:
Kafka 공부 7주차 - KStream/KTable, stateful 처리, windowing
Kafka Shallow Dive - Kafka Connect
Published:
Kafka 공부 8주차 - Source/Sink connector, Converters, Debezium CDC
Kafka Shallow Dive - Schema Registry & Avro
Published:
Kafka 공부 9주차 - Avro/Protobuf, 스키마 호환성, subject naming
Kafka Shallow Dive - 운영 — 모니터링, 튜닝, 장애 케이스
Published:
Kafka 공부 10주차 - JMX 지표, 튜닝 체크리스트, 실제 장애 패턴
IoT data pipeline 회고
Published:
MQTT → Kafka → Redis → WebSocket 파이프라인을 직접 만들어보고, Kafka 10주 딥다이브 끝나고 나서 돌아본 기록
Fintech 회고 (1) - Prophet을 실제 프로덕트에 이식하기
Published:
SSAFY 핀테크 프로젝트에 Facebook Prophet을 올린 기록. 카테고리별로 서로 다른 3세트 튜닝, 11개월 baseline backtesting, 그리고 논문이 시키는 건데 내가 안 한 것들.
Fintech 회고 (2) - 왜 4개 서비스로 쪼갰나
Published:
처음엔 FastAPI 앱 한 개였다. Gateway / Classifier / Analysis / CSV-Manager 4개로 쪼개면서 배운 것 — 경계, Redis 4-state 머신, OpenAPI 런타임 병합, Azure MySQL 외부화.
Fintech 회고 (3) - GPT Classifier, 프롬프트가 인프라가 될 때
Published:
GPT-5-nano로 거래를 13개 한국어 카테고리로 분류하는 Classifier 서비스 설계. Structured Outputs + Chain of Thought + Few-shot + 브랜드 룰 7개 후처리의 4층 구조.
Python GIL과 동시성 모델 (1) — Thread냐 Process냐
Published:
GIL이 뭐고 언제 해제되는지, Thread와 Process의 메모리 모델은 어떻게 다른지, 실제 코드에서 뭘 기준으로 고르는지. 두 프로덕션 사례(OpenCV 이미지 분석, Prophet 예측)를 겪으면서 정리한 의사결정 프레임워크.
Python GIL과 동시성 모델 (2) — 프로덕션 두 사례
Published:
OpenCV 기반 이미지 분석 API는 왜 Uvicorn Workers만으로 끝났고, Prophet 기반 예측 API는 왜 ThreadPool 3개까지 쪼갰는지. 공유 풀 설계, 메모리 비교, 하이브리드 아키텍처까지.
Fintech 회고 (4) - 돌아가는 시스템을 운영 가능한 시스템으로
Published:
성능 4배, race condition, N+1 쿼리, OpenAI 1.x 마이그레이션, 예외 타이핑. 만들어놓은 fintech 시스템을 운영 가능한 상태로 끌어올린 리팩토링 기록.
SSAFY 기업연계 회고 — 1,129줄짜리 CLI 스크립트를 FastAPI 서비스로 옮긴 기록
Published:
SSAFY 기업연계 프로젝트에서 맡은 AI 이미지 분석 API. 레거시 Python 스크립트를 FastAPI 서비스로 리팩토링하면서 마주친 구조·성능·동시성 이야기. KNN 싱글톤 캐싱으로 예측 지연을 50~100ms → 1~5ms로 줄인 과정 포함.
Fish Shell - first contribution
Published:
입사 전에 오픈소스에 뭐라도 기여하고 싶어서 aws-cli 이슈를 뒤지다가 fish shell 관련 이슈를 발견. shell 종류 공부하고 첫 PR 머지된 후기.
FastAPI Shallow Dive (1) — ASGI부터 시작
Published:
Flask/Django의 WSGI 모델은 뭘 못 했고, ASGI는 어떻게 그걸 풀었는지. FastAPI가 Starlette 위에 Pydantic과 타입 힌트로 무엇을 더 얹었는지.
FastAPI Shallow Dive (2) — Pydantic, 타입 힌트가 런타임 validator가 되는 이유
Published:
FastAPI에서 price: float이라고 써놓으면 왜 400이 자동으로 떨어지는지. Pydantic이 타입 힌트를 어떻게 읽어서 validator로 바꾸는지, v1과 v2의 실제 차이, 운영 중 만난 함정들.
FastAPI Shallow Dive (3) — Dependency Injection은 왜 함수인가
Published:
Depends()가 왜 클래스도 데코레이터도 아닌 함수 호출인지. DB 세션, 인증, 설정을 어떻게 주입하는지. 서브 의존성, 요청 범위 캐시, yield 패턴, 테스트 시의 override까지.
FastAPI Shallow Dive (4) — def vs async def, 그리고 worker 몇 개
Published:
FastAPI에서 def 핸들러와 async def 핸들러는 내부 실행 경로가 완전히 다르다. 언제 어느 걸 쓸지, Uvicorn worker를 몇 개로 설정할지, 그 결정이 왜 이전 GIL 시리즈의 프레임워크로 정리되는지.
테스트 코드만 추가한 PR — 그리고 genAI 시대의 TDD
Published:
aws-cli 이슈 #5084 의 한 줄 fix 는 2020 년에 PR 까지 올라왔는데, 테스트가 없다는 이유로 3 년 후 자동 close 됐다. 내가 다시 올리면서 추가한 건 그 테스트 8 줄. 테스트 코드의 의미와 genAI 시대의 TDD 까지.
