개발하며 마주친 기술 문제를 AI가 문제 상황 · 해결 과정 · 관련 이론 순으로 정리한 학습용 기록입니다.
테이블 이름을 바꿔도 DB 는 모른다 — RENAME 과 뷰 별칭으로 무중단 개명하기
테이블 개명은 시스템 카탈로그의 문자열 하나를 바꾸는 일이다 — 데이터도, FK 도, 인덱스도, 기존 뷰도 따라 움직이지 않는다.
프로세스와 스레드 기초 — 태어남, 죽음, 그리고 거둬짐
부모·자식·손자, 고아와 좀비, 프로세스 그룹과 세션, 스레드가 반환되는 방식까지. 실무에서 프로세스가 새는 사고를 이해하는 데 필요한 이론을 처음부터 정리한다.
fork 가 EAGAIN 을 뱉을 때: 메모리가 아니라 프로세스가 없는 것이다
subprocess.run(timeout=) 은 손자를 죽이지 않고, PID 1 이 애플리케이션이면 죽은 손자를 거두지도 않는다. pid 가 두 갈래로 샌다.
커넥션 풀에서 SET 이 남긴 것 — 읽기전용 가드가 남의 트랜잭션을 죽였다
SET default_transaction_read_only = true 는 자기 트랜잭션을 막지 못하고, 대신 커넥션에 남아 남의 트랜잭션을 죽인다.
동기 FastAPI 핸들러에서 asyncio.create_task 가 조용히 죽는 이유
def 핸들러는 이벤트 루프가 아니라 스레드풀에서 돈다 — 그 안의 asyncio.create_task() 는 잡을 루프가 없어 코루틴째로 유실된다.