동시성(Concurrency)과 병렬성(Parallelism): 헷갈리지 말자 (대규모 업데이트)
요리사 한 명이 멀티태스킹을 하는 것과 요리사 두 명이 일하는 것의 차이. 스레드, 프로세스, 그리고 Python의 GIL 문제까지.

개발과 기술에 대한 이야기를 기록합니다.
요리사 한 명이 멀티태스킹을 하는 것과 요리사 두 명이 일하는 것의 차이. 스레드, 프로세스, 그리고 Python의 GIL 문제까지.

이진 탐색 트리(BST)가 편향되는 것을 막는 마법. 5가지 불변 규칙(5 Rules)부터 회전(Rotation), 그리고 AVL 트리와의 비교까지. 왜 OS 스케줄러는 이 트리를 선택했을까요?

최신 문법(ES6+)을 구형 브라우저(IE)가 알아듣게 번역해주는 통역사. 컴파일러와는 묘하게 다른 트랜스파일러의 세계.

React의 영원한 숙제, 상태 관리. 할아버지 컴포넌트에서 손자 컴포넌트로 데이터를 줄 때 왜 전역 상태(Redux, Zustand)를 써야 할까?

서버 사이드 렌더링(SSR)의 핵심 과정. 메말라 비틀어진 HTML(정적)에 수분(JS)을 공급해서 생동감 넘치는 앱(인터랙션)으로 만드는 마법.

서버에서 완성된 요리를 주기(SSR) vs 재료만 주고 브라우저가 요리하기(CSR). SEO와 초기 로딩 속도의 트레이드오프. Next.js가 둘을 합친 이유.

웹이 앱처럼 부드러워진 비결(SPA)과 옛날 방식(MPA)의 장단점. 그리고 이 둘을 합친 넥스트(Next.js)의 등장.

진짜 집을 부수고 다시 짓는 건 비쌉니다. 설계도(가상돔)에서 미리 그려보고 바뀐 부분만 공사하는 '똑똑한 리모델링'의 기술.

분산 시스템에서 일관성(C), 가용성(A), 분할 내성(P)을 모두 만족하는 것은 물리적으로 불가능합니다. CP(은행) vs AP(SNS) 시스템의 트레이드오프와 최신 PACELC 이론을 다룹니다.

버튼을 눌렀는데 부모 DIV까지 클릭되는 현상. 이벤트는 물방울처럼 위로 올라갑니다(Bubbling). 반대로 내려오는 캡처링(Capturing)도 있죠.

HTML은 그저 글자일 뿐입니다. 브라우저가 이걸 이해하고 조작하려면 '트리 구조의 객체(DOM)'로 바꿔야 합니다.

무료라고 막 갖다 쓰다가 회사가 코드를 강제로 공개해야 할 수도 있습니다. 개발자가 반드시 알아야 할 '법적 지뢰' 피하는 법.

개발자끼리의 무언의 약속. Major, Minor, Patch 숫자에 담긴 의미와 `npm install` 할 때 `^`와 `~`의 차이점 완벽 정리.

백엔드: 'API 다 만들었어요.' 프론트엔드: '어떻게 써요?' 이 지겨운 대화를 끝내주는 Swagger(OpenAPI)의 마법.

마이크로서비스 아키텍처(MSA)에서 API Gateway가 필수적인 이유를 '호텔 프론트 데스크' 비유로 설명합니다. Kong, Nginx, AWS API Gateway 비교 및 Rate Limiting, GraphQL 통합, Observability까지 심층 분석.

나만 알아보는 코드는 쓰레기입니다. 변수명 짓기부터 함수 쪼개기, 그리고 주석을 달지 말아야 하는 이유까지. 6개월 뒤의 나를 살리는 리팩토링의 기술.

대통령은 나라에 한 명뿐입니다. DB 커넥션 풀도 하나뿐. 전역 관리자를 만들 때 쓰는 가장 유명하면서도 논쟁적인 패턴. 편리하지만 테스트 지옥의 지름길.

손님이 주방에 들어가서 직접 피자 도우를 반죽하지 않습니다. '페퍼로니 하나요'라고 주문하면 공장(Factory)이 알아서 만들어줍니다.

개발자들이 맨날 겪는 문제에 대해 선배들이 만들어둔 족보(Cheat Sheet). 싱글톤, 팩토리, 옵저버 패턴의 핵심.

테이블 하나에 10억 개의 행이 쌓이면 인덱스도 소용없습니다. 수직 파티셔닝(Vertical)과 수평 샤딩(Horizontal)의 차이, 일관된 해싱(Consistent Hashing), 그리고 샤딩의 치명적 단점인 JOIN 문제를 분석합니다.
