Hoisting과 Temporal Dead Zone의 연관성에 대해 설명해 주세요. Hoisting은 JavaScript에서 변수 및 함수 선언을 스코프의 맨 위로 끌어올리는 것을 의미하고, Temporal Dead Zone은 변수가 선언되기 전까지 접근할 수 없는 범위를 말합니다. 따라서 Hoisting으로 인해 변수를 스코프 최상단에 끌어올려도 해당 변수의 선언문이 나오기 전까지는 TDZ에 존재하기, 값을 할당하거나 사용할 수 없습니다. Virtual DOM이 무엇이고, Virtual DOM이 어떤 면에서 좋은가요? Virtual DOM은 React에서 사용되는 가상의 DOM으로 실제 DOM의 가벼운 복사본이라 할 수 있습니다. Virtual DOM은 실제 DOM과 동기화되어 UI 변경을 추적하고 필..
재귀를 활용하기 좋은 상황은 언제인지 예시를 들어 설명해 주세요. 재귀를 활용하기 좋은 상황은 데이터나 문제가 반복적으로 나타나고 각 단계에서 동일한 작업을 수행해야 할 때 입니다. 예를 들어, 트리 구조를 탐색하거나 피보나피 수열등은 재귀를 활용하여 간결하게 구현할 수 있습니다. UI, UX의 개념과 두 개념의 관계에 대해서 설명해 주세요. UI(User Interface)는 사용자와 상호작용하기 위해 디자인된 사용자 인터페이스를 의미하며, UX(User Experience)는 사용자가 제품이나 서비스를 사용하면서 느끼는 전반적인 경험을 의미합니다. UI는 주로 시각적인 요소에 초점을 맞추고, UX는 사용자의 편의성, 효율성, 만족도 등을 고려합니다. UX는 UI를 포함하지만, 좋은 UX가 좋은 UI를..
JavaScript Promise의 기능과 필요한 이유에 대해서 설명해 주세요. Promise는 자바스크립트에서 비동기적인 처리에 사용되는 객체입니다. 비동기적인 작업은 여러 작업을 동시에 진행하기에 때문에 결과를 알아내기 어려운 경우가 많습니다. Promise는 이런 비동기 처리의 단점을 보완하여 작업을 동기적으로 처리할 수 있게 도와줍니다. Promise는 주로 서버에서 받아온 데이터를 순서대로 처리하기 위해 사용됩니다 순수함수란 무엇인가요? 불변성과 사이드 이펙트와 연결하여 설명해 주세요. 순수 함수는 동일한 인자에 대해 항상 동일한 결과를 반환하며, 함수 외부의 상태를 변경하는 사이드 이펙트를 일으키지 않는 함수를 의미합니다. 이런 순수 함수의 예측과 테스트가 쉽다는 장점을 가지며, 불변성을 유지..