~ 2:52
- 아예 모르는 질문
- 애매하게 답한 질문
어제 대답 못한 질문
- React
- React hooks → Class와 비교했을 때 장점?
- 리액트에서 최근에 함수형으로의 변화로 추구
- hooks에서도 클래스 기능 구현 가능 완벽히 할 수 있다
- 리액트 불변성 지켜야하는 이유?
- 참조형도 리액트에서 변경된 걸 알아야 하기때문
- 기존 diffing 알고리즘은 n^3의 시간복잡도를 가지는데 빠른 이유?
- 가비지 컬렉션
- js에서 불필요한 객체들이 사용하는 메모리를 수거해가는 역할
- 불필요 기준 = 해당 객체를 참조하는 다른 객체가 없는지
- 가비지 컬렉션이 사용하는 알고리즘
- 이름은 잘 모름
- 동작원리 = 루트 객체 참조하는 객체들부터 체크 → 재귀적으로
- 참조되지 않은 노드들을 수거
- apply, call, bind 차이점?
- apply → 함수호출, 두번째인자 배열
- call → 함수호출, 두번째부터 요소들
- bind → 함수반환
- event loop에 대해 설명해주세요
- 브라우저 기능 (런타임이 제공)
- 콜스택, 이벤트큐 감시하면서 이벤트 순서 정하는 역할
- 콜스택에 쌓인 작업들이 하나씩 처리됨
- 콜스택이 비면 이벤트루프가 이벤트큐에서 작업을 꺼내서 작업 진행
새로운 질문
- React에서 key를 지정하지 않으면 어떤 일이 생기는지?
- 자식 변경이 일어났을때 어디서 일어났는지
- Typescript d.ts파일을 무엇이고, 왜 필요한지?
- Typescript 제네릭이란?
- 직접 사용은 안해봄
- Typescript interface, type 차이점?
- Javascript 객체와 다른 타입들간의 차이점?
- 원시타입 → 메모리에 직접 할당, 새로운 값들이 메모리에 할당
- 객체 → 해당 객체가 참조되는 방식
- 메모리 공간
- Code, Data, Heap, Stack 영역
- 쿠키, 세션 차이점
- HTTP 통신 사용할 때 상태 저장 불가능해서 사용하는 기능들
- 쿠키 = 클라이언트에서 상태 저장
- 세션 = 서버에서 상태 저장
- HTTP, HTTPS 차이점
- 서버-클라 데이터 주고받는 통신규약
- HTTPS = HTTP + 보안강화 (암호화 과정 거친 프로토콜)
- SSL/TSL이란?
- Promise란?
- 비동기 처리를 위한 ES6 도입된 기능
- 기존에는 콜백으로 비동기 기능 구현 → 콜백 지옥 현상 → 가독성 떨어짐
- 이런 문제 해결 위해 등장
- 비동기 동작이 완료되기 전 상태인 pending, 성공 fulfilled, 실패 상태 (?)
- 성공, 실패 이후 해당하는 동작들을 할 수 있도록 함
- Promise 메서드 아는거 있는지?
- all 메서드
- 프로미스 하나 끝났을 때 X, 여러 비동기 작업들을 한번에 처리할 때까지 기다림
- race 메서드
- 동기, 비동기 차이점?
- 입사 후 다른 직무 맡게된다면?
- 웹 개발자 영역에 속해있다면, 오히려 더 공부할 수 있는 기회가 될 것 같다
- nodejs 싱글스레드?
- 싱글스레드지만 WebAPI 사용해서 멀티스레드처럼 사용할 수 있다
- nodejs에서는 사용해본 경험 없다
- 객체지향 프로그래밍 해본 적?
- React 개발만 해서 많이 해본적 없다
- OOP란?
- 공통점들을 찾아서 클래스로 만듦 → 그런 클래스들을 활용해 코드를 설계하는 패턴
- 프로세스, 스레드 차이점?
- HTML 마크업?
- 브라우저 렌더링 과정?
- HTML 파싱 → element로 이뤄진 DOM트리 생성
- CSS link 만나면 다운 + 파싱 + CSSOM트리 생성
- DOM + CSSOM → 렌더링 트리 생성
- 크기, 위치 결정하는 레이아웃
- 화면 픽셀에 찍어내는 페인트
- Reflow, Repaint란 무엇이고, 언제 발생하는지?
- Reflow
- 레이아웃을 다시 계산하는 과정
- Repaint
- 레이아웃이 결정된 상태, 페인트만 다시하는 작업
- TCP, UDP 차이점?
- TCP → 안정성을 가진 프로토콜, 3way handshaking
- UDP → 안정성 대신 속도 이점으로 가짐
- 3 way hand shaking 이란? 어떻게 일어나는지?
- 클라 → 서버 (접속시작 표시)
- 서버 → 클라 (수락 표시)
- 클라 → 서버 (받아서 연결과정 확정)
- 살면서 가장 몰입했던 경험?
- 대학교 창업동아리에서 이성간 만남 서비스 기획, 운영, 개발 참여
- 실제 고객 대상, 시즌별로 이뤄져서 기획 & 개발 계속 했다
- 많은 시간 투자했다
- 경험으로 배운점?
- 하고싶은 일에 이정도 몰입할 수 있다는걸 깨달음
- 가상의 프로젝트, 공부를 위한 학습이 아니라 실제 유저를 대상으로 하는 무언가를 했다는 점, 예상과 다르게 흘러가는 부분 등에서 많이 배웠다