데브허브 | DEVHUB | [마스터클래스 맛보기] 런타임 메인스레드, 원시타입과 변경 불가능, 실행 컨텍스트, this, Map[마스터클래스 맛보기] 런타임 메인스레드, 원시타입과 변경 불가능, 실행 컨텍스트, this, Map
- 프론트엔드 개발자가 겪는 어려움과 이를 해결하기 위한 마스터 클래스 소개 🧑💻
- 개발 공부는 기술이 나오게 된 배경을 이해하는 것이 중요하며, 개념 간의 연결성을 파악해야 함 🔗
- 8주간의 강의를 통해 코드 패턴 인식, 코드 개선, 최적화 및 추상화 능력 향상을 목표 🚀
- 자바스크립트 런타임은 작동 순서에 대한 핵심 개념이며, 이를 이해해야 메모리 최적화 및 함수 동작 순서 파악 가능 ⏱️
- 콜 스택은 자바스크립트의 단일 스레드 특성상 현재 실행 중인 코드 위치를 추적하는 데이터 구조 📍
- 단일 스레드는 한 번에 하나의 작업만 처리 가능하며, 블로킹 연산 시 시스템 전체가 멈출 수 있음 🚫
- 스택 오버플로우는 함수 호출이 과도하게 쌓여 메모리 누적이 발생하는 에러 상황 💥
- 단일 스레드는 스레드 안정성을 보장하며, 경쟁 조건이나 데드락 상황 발생 가능성이 낮음 ✅
- 원시 타입은 객체가 아니며, 넘버, 문자열, 불리언, undefined, 심볼, BigInt 등이 있음 🔢
- 넘버 타입은 2의 53승 - 1이 최댓값이며, 이를 초과하는 숫자는 BigInt를 사용해야 함 ♾️
- 원시 타입은 변경 불가능하며, 값 자체가 복사됨 (객체는 참조 복사) 💾
- 콜 스택에는 원시 타입 데이터와 실행 컨텍스트가 함께 저장됨 📦
- 실행 컨텍스트는 실행 가능한 코드에 제공할 환경 정보를 모아 놓은 객체 (변수 객체, 스코프 체인, this) ⚙️
this는 호출한 곳에 따라 달라지는 '나'에 대한 정보이며, 실행 컨텍스트를 차지함 🙋
- 함수 생성은 객체를 만드는 것과 같으며, 메서드를 통해 실행 컨텍스트를 확장할 수 있음 ✨
- 맵(Map) 자료형은 해시 테이블로 작동하며, 다양한 타입의 키를 사용할 수 있는 복합적인 데이터 저장소 🗺️
- 맵은 순서 보장, 크기 추적 용이, 성능상 이점 등의 특징을 가지며, 특정 상황에서 객체보다 효율적임 👍