
관련글React의 가상 DOM, Vue의 가상 DOM과 비교 (동작방식) [챗지피티와 공부를 해보자] Virtual DOM과 React Fiber 구조 가상돔 (Virtual DOM) 이란? 가상돔은 실제돔의 변경을 최소화하여 성능을 최적화하는 개념이다. React(Vue, Preact 등....)에서 UI를 효율적으로 업데이트하기 위해 사용된다. DOM (Document Object Model, 문서 객체 모델)은 웹 브라우저가 HTML 문서를 해석하여 트리 구조(객체 모델)로 표현한 것이다. 즉, HTML을 브라우저가 이해할 수 있도록 만든 객체 형태의 구조.DOM을 통해 자바스크립트에서 HTML 요소를 조작할수있다.기존 DOM을 직접 조작하면 성능 비용이 크고 DOM의 업데이트가 많아질수록 느..
[챗지피티와 공부를 해보자] 웹 렌더링 기법 종류 (CSR, SSR, SSG, ISR 등..) 웹 렌더링 기법의 종류CSR (Client-Side Rendering) SSR (Server-Side Rendering)ISR (Incremental Static Regeneration)SSG (Static Site Generation)DPR (Deferred Page Rendering)SPR (Streaming Page Rendering)ESR (Edge-Side Rendering) RSC (React Server Components) 개념은 이해하고 넘어가면 좋다. 하지만 꼭 다 정확한 정보까지 학습할 필요는 없다. 그 자체의 개념들도 있고, 같이 사용가능한 기법들도 있다. 간단히 알아보자. CSR ..
AbortController 자바스크립트에서 비동기 작업을 중단할 수 있도록 도와주는 API이다. (특히 fetch() 요청 중단)Promise는 원래 취소 기능이 없지만, AbortController로 특정 요청을 강제로 취소할 수 있다. 기본 개념AbortController는 비동기 작업을 제어하기 위한 signal 객체를 제공한다.controller.abort()를 호출하면 해당 signal을 감지하는 모든 요청이 즉시 취소된다.const controller = new AbortController(); const { signal } = controller; fetch("https://jsonplaceholder.typicode.com/todos/1", { signal }) .then((respon..
이번 주제는 지난번에 '[챗지피티와 공부를 해보자] 이벤트 루프와 비동기 처리 + 가비지 컬렉션과의 연관' 를 학습할때,Web APIs의 관계에 대해 같이 안봤던 것 같아서 챗지피티씨의 랜덤 추첨이 없음에도 이어서 학습해봤다. [챗지피티와 공부를 해보자] 이벤트 루프와 Web APIs의 관계 자바스크립트는 싱글 스레드 언어로 한번에 하나의 작업만 실행할 수 있다.하지만 브라우저에서 비동기 작업을 처리할때는 이벤트 루프와 Web APIs가 함께 작동하여 여러 작업을 효율적으로 수행할 수 있다.즉, Web APIs가 없을 경우에는 자바스크립트는 싱글 스레드 언어이므로 모든 작업을 순차적으로 실행해야하는 비극을 겪을 수 있다. 여기서 Web APIs란 무엇일까? Web APIs 란?브라우저가 제공하는 기능..

[챗지피티와 공부를 해보자] 이벤트 위임(Event Delegation)과 성능 최적화 이벤트 위임 (Event Delegation)하위 요소에 개별적으로 이벤트 리스너를 추가하는 대신에 상위 요소에서 하나의 이벤트 리스너를 통해 이벤트를 감지하여 하위요소들의 이벤트를 처리하는 기법이다.자바스크립트의 이벤트 버블링(Event Bubbling)을 이용하여 이벤트가 부모 요소까지 전파하는 특성을 활용했으며, 이벤트가 발생한 하위요소에서 직접 핸들러를 실행하는 것이 아니라 부모요소에서 이벤트를 감지하여 실행하는 방식이다. 예제// 개별 이벤트 리스너document.querySelectorAll('.btn').forEach((button) => { button.addEventListener('click',..

[챗지피티와 공부를 해보자] 프로토타입 체인 프로토타입 (Prototype)자바스크립트는 클래스 기반 언어가 아니라 프로토타입 기반의 객체 지향 언어이다.여기서 객체 지향 언어라는건 === 객체지향 프로그래밍(OOP, Object-Oriented Programming)으로 데이터(속성)과 행동(메서드)을 하나의 객체(Object)로 묶어 프로그래밍하는 방법이다. 객체속성 (Property) - 객체의 상태를 나타냄 (ex: 이름, 나이, 색상등..)메서드 (Method) - 객체가 수행할 수 있는 동작 (ex: 걷다, 뛰다, 날다등..) 모든 객체는 자신의 부모 역할을 하는 객체인 프로토타입(Prototype)을 참조한다.모든 객체는 프로토타입 링크 [[Prototype]] (또는 __proto__..