TIL

24. 08. 07 TIL

효ㄷi 2024. 8. 7. 21:51

모의 면접 질문

 

더보기
  1. 자기소개
  2. 프론트엔드 선택이유
  3. 프론트 어떻게 공부
  4. 협업 과정에서 어려웠던 점, 어떻게 극복 했는지
  5. 좋은 협업환경의 요인은 무엇이라고 생각하는지
  6. 어떻게 우리회사에 기여할 것인지
  7. 가장 이상적인 근무환경
  8. 자기개발 어떻게 하는지
  9. 가장 최근에 배운 것
  10. 동기부여를 하는 방법
  11. 프로덕트 퀄리티 vs 데드라인
  12. 자바스크립트의 특징
  13. 자바 스크립트가 비동기 작업이 가능한 이유
  14. 리액트 특징
  15. 가상돔
  16. 함수형 컴포넌트 생명 주기 (useEffect)
  17. flux 구조
  18. hook 을 조건문 안에서 사용할 수 없는 이유
  19. API 정의
  20. SEO 란

1. 자바스크립트의 특징

더보기

자바스크립트는 싱글스레드 언어로, 한번에 하나의 작업만 가능합니다.

하지만 이벤트 루프와 콜백 큐를 이용해 비동기 처리가 가능합니다.

또한, 변수의 타입을 언제든지 필요에 따라 변경할 수 있는 동적 타이핑을 지원합니다.

 

 

비동기 처리

1. 비동기 작업 요청 -> 자바스크립트가 비동기 작업을 요청하면 이 요청은 자바스크립트 엔진의 메인 스레드에서 처리되지 않고 백그라운드로 보내짐

 

2. 백그라운드 작업 완료 -> 완료되면 해당 작업의 콜백 함수가 콜백 큐에 추가됨

 

콜백 큐(비동기 작업이 완료된 후 실행될 콜백 함수들이 대기하는 공간)

 

3. 이벤트 루프 -> 이벤트 루프는 자바스크립트 엔진이 현재 실행 중인 작업이 있는지 확인하고 만약 메인 스레드가 비어있다면 콜백 큐에서 대기 중인 콜백 함수를 가져와 실행함

 

이벤트 루프(자바스크립트 엔진이 콜백 큐에 있는 작업을 메인 스레드에서 언제 실행할지 결정하는 메커니즘)

 

2. 자바스크립트가 비동기 작업이 가능한 이유

더보기

자바스크립트는 이벤트 루프와 콜백 큐를 사용하는 단일 스레드 비동기 모델을 통해 비동기 작업을 처리합니다. 이 모델은 논블로킹을 활용해 오래 걸리는 작업을 백그라운드로 넘기고, 작업이 완료될 때까지 기다리지 않고 다음 코드를 실행할 수 있게 합니다.

 

3. 리액트의 특징

더보기

웹사이트의 UI를 쉽게 만들 수 있게 해주는 자바스크립트 라이브러리입니다.

컴포넌트 기반 아키텍처를 채택해 쉽게 재사용할 수 있도록 합니다.

가상 DOM을 사용해 화면을 빠르고 효율적으로 업데이트 합니다.

또한 데이터의 흐름을 단방향으로 유지해 데이터 흐름을 명확하게 예측하게 합니다.

4. 가상돔

더보기

실제 돔의 복사본입니다. 실제 돔에 반영하기 전에 비교해서 변경된 부분만 실제 돔에 적용합니다. 이를 통해 불필요한 업데이트를 최소화하고, 성능을 개선합니다.이 방식은 효율적인 UI 렌더링을 제공합니다.