JavaScript
- Hoisting과 Temporal Dead Zone이 어떻게 연관되어 있는지 설명하세요.
-> hoisting은 var로선언된 변수, 선언되지않은 함수,import구문을 상단으로 끌어올려 사용할 수 있게 하는 방식을 의미한다.
TDZ(Temporal Dead Zone)은 호이스팅을 막는다.
TDZ에 영향을 받는 구문은 크게 const,let 을 사용한 변수,
class구문, constructor()내부의 super(), 기본 함수 매개변수가 있다.
hoisting을 이용해 나타 날 수 있는 의도치 않은 결과를 피하기 위해 TDZ에 영향을 받는 구문인 변수 선언시 var가 아닌 let ,const 를 사용해야한다.
브라우저 렌더링
- 브라우저 렌더링 방식에 대해 설명하세요.
- 리플로우와 리페인트에 대해 설명하세요.
- 반응형 웹은 무엇이고 장단점에 대해 설명하세요.
- 자바스크립트 엔진의 콜 스택이 무엇인지 설명할 수 있나요?
번들링과 웹팩
-> 번들링이란??
여러 제품이나, 코드, 프로그램을 묶어서 패키지로 제공하는 행위를 의미한다.
번들링을 쓰지않는다면
두개의 js파일에서 같은 변수를 사용할 시 변수 간 충돌이 발생할 수있고,
인터넷 속도가 느린 국가의 모바일 환경에서 사용자가 불편을 호소,
배포 코드가 너무 읽기 쉬워 사용자가 임의로 조작하여 피해 발생할 수 있기때문에
사용자에게 배포할때는 번들링을 꼭 해야한다.
React
- Virtual DOM이 무엇이고, Virtual DOM이 어떤 면에서 좋은가요?
- Class Component와 Function Component의 차이점이 무엇인가요?
- React Hook의 사용 규칙에 대해 설명하세요.
운영체제
- Node.js는 싱글 스레드인가요?
- JavaScript는 싱글 스레드입니다. 어떻게 싱글 스레드 방식으로 비동기 호출을 할 수 있는 지에 대해 설명할 수 있나요?
- Event Loop에 대해 설명할 수 있나요?
- 가비지 컬렉션이란 무엇이며, 가비지 컬렉션을 가진 언어에는 무엇이 있나요?
자료구조
- Stack과 Queue의 차이점은 무엇인가요?
- Tree와 Graph의 차이점은 무엇인가요?
- 이진 탐색 방법에 대해 설명할 수 있나요?