기술면접 1주차(2)

강연주·2024년 10월 3일

🙋‍♀️ 기술면접

목록 보기
3/112

1. 상태관리를 왜 할까요? 그리고 평소 state 관리는 어떻게 하시나요?

상태 = state
바닐라 JS만 배울 때는 state가 없었는데, React에서의 주요 개념.
React에서 상태가 변하면 화면이 리렌더링되는 것은 아주 중요한 핵심 원리.
화면에 보여지는 값이나 데이터 등을 상태로 지정해야,
유저 상호 작용이나 시간의 흐름 등에 따라
그 초기값과 업데이트값 등을 적절하게 보여줄 수 있다.

useState로 초기값과 변화 함수를 지정.


2. Redux가 무엇인가요, 왜 Redux를 사용하시나요?

리덕스...어려운 건데요 사실 RTK랑 헷갈리고 기억도 잘 안나네요

  • Redux Toolkit은 Redux 로직을 작성하기 위해 저희가 공식적으로 추천하는 방법입니다. RTK는 Redux 앱을 만들기에 필수적으로 여기는 패키지와 함수들을 포함합니다. 대부분의 Redux 작업을 단순화하고, 흔한 실수를 방지하며, Redux 앱을 만들기
    쉽게 해주는 모범 사례를 통해 만들어졌습니다.

  • Can I use Redux without Redux toolkit?
    : Note that you are not required to use Redux Toolkit to use Redux. There are many existing applications that use other Redux wrapper libraries, or write all Redux logic "by hand", and if you still prefer to use a different approach, go ahead! However, we strongly recommend using Redux Toolkit for all Redux apps

https://ko.redux.js.org/tutorials/essentials/part-1-overview-concepts
https://ko.redux.js.org/tutorials/essentials/part-1-overview-concepts

리덕스란?
: JS앱을 위한 예측 가능한 상태 컨테이너.
'액션'이라고 불리는 이벤트들을 사용해 애플리케이션의 상태를 관리하고 업데이트하는 패턴이자 도구. 애플리케이션 전역에서 필요한 상태들을 관리하기 위해 중앙화된 store(저장소?) 역할을 한다. 상태들이 예측가능한 상황에서만 업데이트되도록 보장한다.

리덕스를 왜 사용할까?
: 애플리케이션의 여러 부분에서 필요한 상태들을 전역적으로 관리할 수 있다. 언제, 어디서, 왜, 어떻게 상태가 업데이트되는지 파악하기 용이.

리덕스를 언제 사용할까?
: 리덕스의 단점으로는, 학습 내용 증가, 길어지는 코드, indirection 추가 (참조, In computer programming, an indirection (also called a reference) is a way of referring to something using a name, reference, or container instead of the value itself), 따라야 하는 제한 사항들을 들 수 있는데,
이러한 리덕스가 유용하게 사용되는 경우는 다음과 같다.

  • 여러 군데에서 많은 상태들이 쓰일 때
  • 애플리케이션 상태가 시간 흐름에 따라 빈번히 업데이트될 때
  • 상태 업데이트의 로직이 복잡할 때
  • 애플리케이션이 중간 또는 대규모의 코드베이스를 가지거나
    다수의 인원이 작업할 때

3. Redux 말고 다른 전역 상태관리 아는 것 하나와 차이점을 말해주세요

다른 전역 상태 관리 : zustand(useStore로 로컬에서의 상태 및 변화를 관리), TanstackQuery(데이터 페칭, 로딩, 에러 처리와 로컬에서의 상태 및 변화 관리), recoil? zotai?


4. 버츄얼 돔과 리얼 돔의 차이를 설명해주세요.

버츄얼 돔은 실제로 실행되기 전에 그 미리 한번 그려보고
그러는 걸로 아는데요 어..


5. useRef에 대해 설명해주세요.


6. useEffect의 실행 순서에 대해 설명해주세요.

마운트 - useEffect... 으어어엉

7. var, let, const의 차이에 대해 알려주세요.

var : 쓰지 마세요
let : 가변적 변수 선언, 재할당 가능, 코드 어디선가 이 변수의 값이 다르게 할당될 가능성
const : 불변성 유지 변수 선언, 재할당 불가능, 근데 상수라고 불러야만 정확한 건가?

var : 스코프 내 중복 선언 가능, 재할당 가능, 변수 선언이 무조건 상위로 끌어올려지는 호이스팅 발생 (런타임 이전에 변수 선언과 초기화 단계를 실행), 선언과 초기화 동시에 이루어짐, 함수 레벨 스코프

let : 스코프 내 중복 선언 불가능(Syantax Error 발생), 재할당 가능, 호이스팅 발생하지 않는 것처럼 동작 (엄밀히 따지면 호이스팅 O), 선언과 초기화 따로 이루어짐, 블록 레벨 스코프 : 블록 (중괄호로 나뉘는 for문, if문, switch문 등)을 다 지역 스코프로 취급해 동명의 변수가 스코프에 따라 다르게 사용될 수 있음, 값 재할당 가능,

const : 중복 선언, 재할당 불가능한 상수 (값의 불변을 의미하지는 않는다)

profile
아무튼, 개발자

0개의 댓글