/
https://42jerrykim.github.io/ _index.md
시계열 데이터베이스는 시간 순서로 계속 추가되기만 하는 데이터에 최적화된 저장소입니다. 시간 기준 파티셔닝과 델타 인코딩이 압축률·쓰기 처리량을 높이는 원리를 다루고, 오래된 파티션을 통째로 폐기해 삭제 비용을 줄이는 실무 이점까지 설명합니다.
운영체제가 프로세스에 비동기 이벤트를 전달하는 시그널 메커니즘을 SIGINT·SIGTERM·SIGKILL 차이와 컴파일 가능한 핸들러 등록 코드로 다루고, async-signal-safe 제약과 실무에서 흔한 오해까지 함께 설명합니다.
MAJOR.MINOR.PATCH 형식은 하위 호환 깨짐·기능 추가·버그 수정을 숫자로 약속하는 신뢰의 계약입니다. 이 규칙을 어긴 배포가 실무에서 어떤 문제를 일으키는지, npm의 caret·tilde 범위 규칙과 함께 다룹니다.
옵저버 패턴은 주체의 상태 변화를 여러 구독자에게 통지하는 행동 패턴입니다. 프런트엔드 이벤트 리스너와 발행-구독 시스템의 근간이 되는 구조를 Python 코드로 다루고, 언제 이 패턴을 피해야 하는지도 함께 짚습니다.
CAS는 스레드를 대기시키는 뮤텍스와 달리, 락 없이 하드웨어 수준에서 예상값과 같으면 새 값으로 교체하는 lock-free 기법입니다. C11 stdatomic.h 코드로 재시도 루프 구조와 weak/strong 차이를 설명합니다.
WAF는 SQL 인젝션·XSS 같은 공격 패턴을 코드 수정 없이 네트워크 계층에서 탐지·차단합니다. 시그니처 기반 탐지의 장단점, 코드 수준 방어를 대체하지 못하는 이유, 그리고 언제 도입해야 하는지 판단 기준을 다룹니다.
웹훅은 클라이언트가 반복 요청하는 폴링 대신, 서버가 이벤트 발생 시 등록된 URL로 콜백하는 방식입니다. REST API와의 방향 차이와, HMAC-SHA256 기반 페이로드 서명 검증을 실행 가능한 Python 코드와 함께 다룹니다.
유니온-파인드는 서로소 집합을 트리로 관리하는 자료구조입니다. Union by Rank와 Path Compression이 왜 필요한지, 최적화 없이는 트리가 사슬로 퇴화해 O(n)까지 느려지는 이유와 크루스칼 MST에서의 활용을 컴파일 가능한 C 코드와 함께 다룹니다.
이벤트 드리븐 아키텍처는 옵저버 패턴을 시스템 수준으로 확장해, 서비스들이 직접 호출하는 대신 이벤트를 발행·구독해 느슨하게 결합하는 구조입니다. 메시지 큐가 이를 구현하는 실제 수단임과 데이터 일관성 문제, CQRS와의 관계를 함께 다룹니다.
현재 상태만 저장하는 대신 상태를 바꾼 모든 이벤트를 순서대로 저장해 현재 상태를 재생으로 계산하는 이벤트 소싱의 원리와, 감사 로그·시점 복원 장점, 스키마 변경의 어려움을 다룹니다.