/
https://42jerrykim.github.io/ _index.md
하나의 명령어로 여러 데이터를 동시에 처리하는 SIMD 벡터 연산과 스칼라 연산의 차이를 설명하고, 이미지·수치 연산에서 SIMD가 성능을 크게 높이는 이유와 컴파일러 자동 벡터화의 원리·한계를 다룹니다. SSE2가 사실상 모든 현대 x86-64 CPU에 기본 내장되어 있다는 사실도 함께 짚습니다. 캐시에 쓸 때 원본에 즉시 반영하는 Write-Through와, 캐시에만 먼저 쓰고 나중에 반영하는 Write-Back의 트레이드오프를 ACID의 영속성 개념과 연결해 다룹니다. 가비지 컬렉션은 더 이상 참조되지 않는 메모리를 언어 런타임이 자동으로 회수하는 기법입니다. 참조 카운팅과 추적 방식의 원리, 순환 참조 문제를 Python 예시로 다루고, 언제 GC 튜닝을 고려해야 하는지도 함께 정리합니다. 매 단계 지역 최적 선택이 전역 최적을 보장하는 조건과, 동전 거스름돈 문제가 그리디로 항상 풀리지 않는 반례를 활동 선택 문제 코드와 함께 다룹니다. 백그라운드에서 지속 실행되는 데몬 프로세스의 특징과, 자식 종료 후 부모가 wait하지 않아 남는 좀비 프로세스, 고아 프로세스가 init에 입양되는 과정을 다룹니다. 서버 프로그램에서 좀비 누적을 막기 위해 언제 SIGCHLD 핸들러가 필요한지도 함께 설명합니다. 부분 문제 중복과 최적 부분 구조 개념을 바탕으로 메모이제이션(Top-down)과 타뷸레이션(Bottom-up)을 피보나치 코드로 비교하고 시간복잡도 개선을 다룹니다. 비대칭키로 데이터를 해시 후 개인키로 암호화해 작성자를 증명하는 디지털 서명 원리와, 이 서명 체계로 TLS 인증서가 서버 신원을 보증하는 방식(CA의 역할)을 다룹니다. 자체서명과 CA서명 인증서를 언제 쓸지 판단 기준도 함께 다룹니다. 레이트 리미팅은 짧은 시간에 과도한 요청을 보내는 클라이언트를 제한해 서비스 남용과 무차별 대입 공격을 막습니다. 토큰 버킷과 슬라이딩 윈도우 알고리즘을 코드로 비교하고, API 게이트웨이·로그인 방어에 적용하는 실무 사례와 429 응답 처리까지 다룹니다. 레지스터가 캐시·메인 메모리보다 빠른 이유를 CPU 내부의 물리적 위치와 접근 방식으로 설명하고, 명령어 집합 구조(ISA)가 소프트웨어와 하드웨어를 잇는 계약이라는 개념, RISC와 CISC의 설계 철학 차이를 다룹니다. CPU의 L1/L2/L3 캐시 계층 개념을 애플리케이션 레벨로 확장합니다. 브라우저 캐시부터 CDN, Redis, DB 캐시까지 이어지는 계층 구조와 캐시 미스 전파를, Cache-Aside 코드와 계층 수를 정하는 판단 기준까지 함께 다룹니다.