면접준비

3/7 취준 기록 - 4일차

한우콩 2024. 3. 7. 18:46

기술 면접 질문 리스트

 

  1. ‘==’와 ‘===’ 연산자의 차이는 무엇인지 설명해주실 수 있을까요?
  2. 데이터 10,000개를 가지고 무한 스크롤 구현시에 가장 중요하게 고려해야 할 점은 무엇인가요?
  3. JSX란 무엇인가요?

1.  ‘==’와 ‘===’ 연산자의 차이는 무엇인지 설명해주실 수 있을까요?

답변: 둘 다 비교 연산자로 각각 동등 연산자일치 연산자라고 합니다.

동등 연산자는 좌항과 우항의 피연산자를 비교하여 타입이 다르더라도 암묵적 형 변환 후 같은 값이라면 true를 반환합니다.
일치 연산자는 암묵적 형 변환을 허용하지 않으며 각 피연산자의 타입이 같아야하며 값도 동일해야 true를 반환합니다.

2. 데이터 10,000개를 가지고 무한 스크롤 구현시에 가장 중요하게 고려해야 할 점은 무엇인가요?

답변: 
무한스크롤로 인한 DOM의 개수가 매우 많아지게 되면 브라우저의 레이아웃과 페인트로 인해 렌더링이 지연되므로 웹 성능 저하의 원인이 됩니다. 그러므로 성능 최적화를 위해 한 페이지에 20개정도씩만 로드하도록 구현하고
이미 로드된 데이터는 캐싱해두어 사용자가 스크롤을 올릴 때 다시 로드하지 않아도 되도록 할 것입니다.
그리고 가상 스크롤(Virtual Scrolling)과 같은 기법을 사용해 현재 화면에 보이는 아이템만 실제 DOM에 렌더링하고 나머지는 제거하는 방식을 적용할 수 있습니다.

3. JSX란 무엇인가요?

답변:  
JSX는 JavaScript를 확장한 문법으로, JavaScript 파일 안에 HTML과 유사한 마크업을 작성할 수 있도록 해줍니다. React.createElemet를 사용해 컴포넌트를 작성할 수 있지만, 간결한 코드를 제공해 가독성이 증가한다는 장점이 있습니다.
웹 브라우저는 JSX를 이해할 수 없기 때문에 babel과 같은 컴파일러가 React.createElement라는
JS 코드로 컴파일 후 실행됩니다. 중괄호를 사용해 표현식을 포함할 수 있고, 단 하나의 부모 엘리먼트만을 반환해야 합니다.