호이스팅(Hoisting): 자바스크립트의 특이한 동작
변수 선언이 코드 꼭대기로 끌어올려진 것처럼 보이는 마법. 성격 급한 자바스크립트 엔진의 '미리 읽기' 습관.

개발과 기술에 대한 이야기를 기록합니다.
변수 선언이 코드 꼭대기로 끌어올려진 것처럼 보이는 마법. 성격 급한 자바스크립트 엔진의 '미리 읽기' 습관.

요리 수업(OOP)과 수학 수업(FP)의 차이. 상태를 배제하여 버그를 원천 봉쇄하는 패러다임.

캡슐화, 상속, 다형성, 추상화. 레고 로봇을 만들며 이해하는 객체지향의 핵심.

사과 + 3 = ? 여기서 에러를 내면 강타입, '사과3'을 만들면 약타입입니다. [] + []가 0이 되는 마법과 TypeScript가 구원투수인 이유.

변수의 타입을 언제 결정하느냐. 깐깐한 공무원(Static) vs 융통성 있는 스타트업(Dynamic).

개발자는 무조건 맥(Mac)을 써야 한다? 그건 WSL2가 나오기 전 이야기입니다. 윈도우 안에 리눅스 커널 심기.

윈도우 업데이트 때문에 에어백이 늦게 터진다면? 빠르다는 뜻이 아닙니다. '예측 가능하다'는 뜻입니다.

가상 머신들의 조율자. 사장님이 직접 운영하느냐(Type 1), 매니저를 두느냐(Type 2)의 차이.

내 맥북 안에 윈도우와 리눅스를 동시에 띄우는 법. 클라우드 컴퓨팅(AWS)의 기반 기술.

파일 복사 중에 코드가 뽑히면 어떻게 될까? 데이터 깨짐을 막기 위한 OS의 로그 기록 습관.

리눅스에서 파일 이름은 껍데기에 불과하다. 진짜 주인은 주민등록번호(inode number)다. ls -i의 비밀.

하드디스크는 그저 0과 1이 적힌 거대한 운동장입니다. 여기에 '파일'과 '폴더'라는 개념을 입히는 마법.

컴퓨터가 멈췄다. 마우스는 움직이는데 클릭이 안 된다. 하드디스크는 쉴 새 없이 긁고 있다. 이것이 스래싱이다.

책상(RAM)이 꽉 찼을 때 어떤 책을 버려야 할까? 가장 오래된 것? 가장 안 본 것? OS의 선택장애 해결법.

페이징이 기계적인 난도질이라면, 세그먼테이션은 의미 있는 정리정돈입니다. 코드, 데이터, 스택으로 나눠서 관리하기.

메모리를 바둑판처럼 똑같은 크기로 잘라서 관리하자. 외부 단편화를 해결한 현대 OS의 표준 기술.

내 서버는 왜 걸핏하면 뻗을까? OS가 한정된 메모리를 쪼개 쓰는 처절한 사투. 단편화(Fragmentation)와의 전쟁.

프로세스는 서로 격리되어 있습니다. 근데 어떻게 크롬 브라우저 탭끼리 데이터를 주고받을까요? 파이프부터 소켓까지.

코드는 완벽한데 가끔씩 돈이 사라집니다. 타이밍 이슈가 만드는 최악의 버그.

화장실 키(Mutex)와 레스토랑 대기표(Semaphore)로 이해하는 동기화. 이진 세마포어와 뮤텍스의 결정적 차이(소유권), 스핀락, 모니터, 그리고 우선순위 역전 문제까지.
