📚 CS/JavaScript 13

[JavaScript] V8 엔진과 GC (Garbage Collection)

이번에 GC를 공부하면서 단순히 “자동으로 메모리를 정리해주는 기능” 이라는 개념에서 벗어나, V8 엔진이 얼마나 정교하게 메모리를 관리하는지 알게 되었습니다.특히 Incremental GC나 Concurrent GC처럼 사용자 경험을 방해하지 않으려는 최적화 노력이 흥미로웠습니다.프로젝트에서 실제로 이미지 처리 로직 부분에서 GC를 너무 믿어 브라우저 메모리가 터진 경험이 있었는데, 이번 기회에 동작 원리에 대해 자세히 이해할 수 있어 좋았습니다. “GC가 있다고 방심하지 말고, 불필요한 참조는 직접 정리하는 습관” 이 필요하다는 교훈을 얻었고,'Chrome DevTools Memory 탭 지표만으로도 GC 동작을 제대로 파악할 수 있는지?', 'V8 엔진이 실제로 클로저 변수를 어떻게 관리하고, GC..

📚 CS/JavaScript 2025.08.28

[JavaScript] 실행 컨텍스트와 호이스팅

처음에는 단순히 “선언이 끌어올려진다”는 설명만 기억했는데, 실제로는 실행 컨텍스트의 생성 단계에서 메모리에 미리 등록되는 과정이라는 것을 이해하고 나니 호이스팅의 동작 원리가 훨씬 명확해졌습니다.특히 var, let, const, 함수 선언문, 함수 표현식의 차이를 정리하면서, 앞으로 코드를 작성할 때 선언 위치와 TDZ를 더 주의 깊게 살펴야겠다고 느꼈습니다. 자바스크립트를 공부하다 보면 빠지지 않고 등장하는 키워드가 바로 실행 컨텍스트(Execution Context) 와 호이스팅(Hoisting) 입니다. 자바스크립트 코드가 실행되는 원리를 이해하는 데 핵심적인 개념이기 때문에 자세히 공부해보고 싶어 글을 정리하게 되었습니다. 실행 컨텍스트와 호이스팅이란?실행 컨텍스트(Execution Conte..

📚 CS/JavaScript 2025.08.27

[JavaScript] 클로저(Closure)란?

대략적으로만 알고 있던 개념이였는데, 공부를 할수록 더 헷갈려서 많은 강의와 자료를 찾아보며 이해하는데 많은 시간을 썼습니다. 공부를 하면서 클로저가 렉시컬 환경 객체를 참조하는 구조라는 것을 이해하게 되었고, 메모리 누수 가능성이나 성능 최적화에도 활용할 수 있을 것 같다는 생각이 들었습니다. 특히 React Hook 내부에서도 사용되는 개념이라는 부분에서, 실제 코드를 작성하면서도 무의식적으로 사용하는 경우가 많은 것 같아 더 주의하면서 개발해야겠다고 느꼈습니다. 클로저란?클로저는 함수가 선언될 때의 렉시컬 스코프(Lexical Scope)를 기억해, 해당 함수의 실행 컨텍스트가 종료된 이후에도 외부 변수에 접근할 수 있는 현상을 의미합니다. 함수는 자신이 선언된 시점의 스코프를 기억하기 때문에, 함..

📚 CS/JavaScript 2025.08.24