useEffect cleanup 함수 완전 정복 — 메모리 누수·구독·타이머 정리 패턴
useEffect cleanup 함수가 누락된 코드는 콘솔 경고로 끝나지 않는다. 패턴별 정리 방법과 React 18 Strict Mode의 두 번 호출 동작, 그리고 cleanup을 생략해도 되는 경계 조건을 살펴본다.
useEffect cleanup 함수가 누락된 코드는 콘솔 경고로 끝나지 않는다. 패턴별 정리 방법과 React 18 Strict Mode의 두 번 호출 동작, 그리고 cleanup을 생략해도 되는 경계 조건을 살펴본다.
typescript 제네릭 사용법은 단순히 T를 박는 게 아니다. 제약과 추론을 제대로 안 쓰면 any와 다를 게 없다. 실전에서 자주 부서지는 10가지 패턴을 정리한다.
staleTime을 0으로 둔 프로젝트에서 페이지 전환마다 같은 API가 3번씩 호출되는 문제가 있었다. 데이터 성격별로 캐싱 정책을 분리한 뒤 요청 수가 체감상 70% 가까이 줄었다.
동적 언어에 타입을 끼워넣는 건 늘 논란이다. Elixir 1.20이 set-theoretic types로 정식 전환하면서 무엇이 바뀌는지, 다른 언어와 어떻게 다른 길을 골랐는지 본다.
pathlib은 Python 3.4부터 표준에 들어온 객체지향 경로 모듈이다. os.path를 어디까지 대체할 수 있는지, 실무에서 어떻게 써야 하는지 근거와 함께 정리한다.
Elixir v1.20에서 점진적 타입이 본격적으로 들어왔다. set-theoretic 기반이라 TypeScript와 접근이 다르다. 오늘 코드 돌려보면서 알게 된 것들을 메모.
AI가 코드를 대신 짜는 시대에 '부채'라는 단어 하나로는 부족하다는 주장이 나왔다. 세 가지 구분을 실무에 끌어올 때 뭘 남기고 뭘 버려야 하는지 본다.
Python 비동기 크롤링 aiohttp 조합으로 requests 대비 10배 속도를 얻는 과정을 정리했다. 단순 교체가 아닌 asyncio.Semaphore 동시성 제어와 지수 백오프 재시도까지 포함한 실전 크롤러 코드를 다룬다.
번아웃은 의지력 부족이 아니라 시스템 부재의 문제다. 커밋 추이, 집중 시간, PR 리뷰 속도 같은 정량 지표로 번아웃을 조기에 감지하고, 인지 부하 감소와 성취감 회복, 페이스 조절의 3단계 루틴으로 관리하는 방법을 3개월 적용 결과와 함께 정리했다.