Mission: useRef, 버츄얼 돔, 쓰레드 질문 정리
📌
1. 쓰레드와 쓰레드 풀이 무엇인지 설명해보자
- 쓰레드는 프로세스 내에서 실행되는 실행 단위이며, 쓰레드 풀은 쓰레드를 미리 생성해 두어 작업 처리에 사용되는 쓰레드를 제한된 개수만큼 정해 놓고 작업 큐에 들어오는 작업들을 하나씩 쓰레드가 맡아 처리하는 기법이다.
1-1. 쓰레드 풀의 장점을 말해보자
- 쓰레드 풀의 장점으로는 쓰레드를 생성/수거하는데 비용이 들지 않으며, 쓰레드 풀을 미리 만들어 두기 때문에 시스템 자원을 줄일 수 있다. 단점으로는 쓰레드 풀에 쓰레드를 너무 많이 생성해 두었다가 사용하지 않으면 메모리 낭비가 발생한다.
1-2. 프로세스가 무엇인지 말해보자
- 프로세스는 메모리 상에서 실행중인 프로그램을 말하며, 쓰레드는 이 프로세스 안에서 실행되는 흐름 단위를 말한다.
2. 쓰레드와 프로세스의 차이점이 무엇인지 말해보자
- 프로세스는 운영체제로부터 별도의 메모리 영역을 할당 받고
- 스레드는 Stack 을 제외한 Code/Data/Heap 부분은 공유해 서로 읽고 쓸 수 있게 된다. (공유자원)
2-1. 멀티 프로세스와 멀티쓰레드가 무엇인지 말해보자- 멀티 프로세스 : 하나의 운영체제 안에서 여러 프로세스가 실행되는 것
- 멀티 쓰레드 : 하나의 프로세스가 여러 작업을 여러 쓰레드를 사용해 동시에 처리하는 것
2-2. 동시성과 병렬성에 대해 간단하게 설명해보자- 동시성
싱글 코어에서 멀티 스레드를 동작시키기 위한 방식으로 멀티 태스킹을 위해 여러 개의 스레드가 번갈아가면서 실행되는 성질을 말한다.- 병렬성
멀티 코어에서 멀티 스레드를 동작시키는 방식으로, 한 개 이상의 스레드를 포함하는 각 코어들이 동시에 실행되는 성질을 말한다.
3. 버츄얼 돔과 리얼 돔의 차이를 설명해보자
버츄얼 돔(Virtual DOM)은 메모리 내에 가벼운 돔 복사본이며, 변경 사항을 효율적으로 감지하여 리얼 돔(Real DOM)에 업데이트하는 방법이다. 이를 통해 웹 애플리케이션의 성능을 개선하고 더 빠른 화면 업데이트를 가능하게 한다.
4. useRef에 대해 설명해보자- useRef는 리액트 훅 중 하나로서, DOM 요소나 다른 리액트 요소를 참조하기 위해 사용되는 객체이다. 이 객체는 컴포넌트의 라이프사이클과 관계없이 일관된 참조를 유지하며, 리렌더링이 발생해도 기존 참조가 유지된다. 주로 특정 DOM 요소의 접근이나 조작, 애니메이션 제어 등에 활용된다. useRef로 생성한 객체에는 .current 프로퍼티를 통해 실제 요소에 접근할 수 있다.