# 면접 준비 가이드북
###### tags: `Etc`
## 전산학 정리 노션
https://www.notion.so/thsoon/d6fc0e934a2f4de2853ea405a6bf293a
## 기술 면접 준비
https://hackmd.io/L4xwy6SdRTmXpflBstm7Fg?both
## 전산학 준비
https://hackmd.io/_PkRZ9mPTf6g0fgJHsJEhg
## 인성, 자소서, 프로젝트 준비
https://hackmd.io/ry4blSrnSgWKR8PZwFX-0Q
## 질문 모음
### FrontEnd
- Critical Rendering Path
- CRP를 최적화하는 기법
- Reflow와 Repaint가 무엇인가?
- Reflow을 줄이는 방법이 무엇이 있는가?
- 이벤트 위임 방식을 아는가?
- 이벤트 버블링과 캡쳐링의 차이
- 이벤트 위임 방식으로 얻는 이점이 무엇이 있는가?
### JavaScript
- Immutable과 Mutable이 각각 무엇인가?
- 실행 콘텍스트란?
- 호이스팅이란?
- const와 let도 호이스팅 되는가?
- 클로저란?
- 렉시컬 스코프란?
- This란?
- This binding의 우선 순위
- Garbage Collector의 작동 방식
- 프로토타입이란?
- `__proto__`와 prototype의 차이
- 프로토타입 체이닝 과정
- DOMContentLoaded와 load의 차이
- 자신이 좋아하는 라이브러리가 무엇인가?
- 오픈소스에 기여하거나 특정 모듈의 내부를 살펴본 적이 있는가?
- 비동기를 처리하는 방법으로 무엇들이 있나요?
- Promise의 내부 원리를 아시나요?
- Async await의 내부 원리를 아시나요?
### Web
- cors가 무엇인가?
- cors에서 외부 서버로 요청을 한번만 보내는가?
- Same Origin Policy를 해결하는 방법으로 어떤 것이 있는가?
- Solid를 간단하게 설명해주세요
- 클라이언트의 요청에서 응답까지 어떤 과정이 일어나는가?
- cookie란 무엇인가?
- cookie의 취약점을 보완하는 방법
- cookie로 무엇을 할 수 있는가?
- session이란 무엇인가?
- cookie와 session의 차이점
- jwt란 무엇인가?
- jwt의 장단점
- refresh token이 무엇인가?
- oauth가 무엇인가?
- oauth가 수행되는 단계를 설명해주세요
- 웹 표준을 왜 준수해야 하는가?
- 웹 표준을 지키려는 노력을 한 적이 있는가?
- 웹 접근성이 무엇인가?
- 웹 접근성을 향상 시키는 노력을 해본적이 있는가?
### Network
- TCP가 무엇인가?
- TCP의 특징 또는 UDP와의 차이점
- TCP는 어떻게 흐름제어를 하는가?
- TCP는 어떻게 오류제어를 하는가?
- TCP는 어떻게 혼잡제어를 하는가?
- Sliding Window가 무엇인가?
- Silly Window Syndrome이 무엇이고 해결 방법은 무엇인가?
- 3-way HandShake가 무엇인가?
- TCP 연결을 종료할 때 Client측에서 2MSL 시간동안 연결을 해제하지 않는 이유가 무엇인가?
- 공개키 암호 방식이 무엇이고 Public Key와 Private Key가 무엇인지 설명하라
- HTTPS가 사용하는 암호화 기법은 무엇인가?
- HTTPS의 연결 과정을 단계별로 설명하라
- HTTPS의 장점
- 인증서를 어떻게 사용해서 터널링을 진행하는가?
- 클라이언측에서 인증서를 확인하는 과정
### DB
- Sharding vs Partitioning
- File System의 단점
- 트랜잭션의 4가지 특징
- Cluster가 무엇인가?
- 정규화가 무엇이고 어떻게 이루어지는가?
### 자료구조 및 알고리즘
- Selection, Insertion, Bubble sort의 시간 복잡도를 설명하라.
- Quick sort는 어떤 방식으로 정렬하는가?
- Amortized Analysis가 무엇인가?
- ArrayDoubling의 Amortized Cost를 구하라
- RedBlack Tree란 무엇인가?
- RedBlack Tree vs Binary Search Tree
- RedBlack Tree의 4가지 Rule
- RedBlack Tree의 원소 삽입의 시간 복잡도
### 인성 및 자소서
- 왜 자신을 피 땀 눈물이라고 표현했나요?
- 열심히 했음에도 불구하고 이루지 못한 경험이 있었나요?
- 춤을 추게 되면서 개발에 어떤 도움이 되었다고 생각하시나요?
- HTTP 필드 중 유용하거나 사용했거나 중요하다고 생각한 것이 있나요?
- 왜 웹의 선대 엔지니어들이 대단하다고 느꼈나요?
- HTTP, 네트워크, 비동기 지식들이 왜 Line 클라이언트 직무에 필요한 지식이라고 생각하시나요?
- 코드의 컨벤션을 맞출 때 어떻게 하시나요?
- 코드 리뷰를 하면서 어떤 코드가 기억에 남았었나요?
- 프로젝트를 하면서 좋았던 사람과 좋지 않았던 사람의 유형을 말해주세요
- 팀원과 의견 차이가 있을 때 어떻게 결론을 내었는가?
- 프로젝트 뿐만 아니라 협업이 인생에서 중요하다고 느낀 때가 있었나요?
- 서비스를 운영하면서 클라이언트에게 불만을 접수받았을 때 어떻게 할 것인가요?
- 페이지 로딩이 느려졌는데 증상의 문제가 클라이언트의 문제인지 백엔드 문제인지 어떻게 판별하고 해결할 것인가요?
### 프로젝트
- 왜 스터디 컴바인이란 프로젝트에 MSA를 적용했나요?
- 스터디 컴바인의 프로젝트 아키텍처를 설명해주세요
- 스터디 컴바인에서 자신이 맡은 역할이 무엇이였나요?
- 프로젝트를 하면서 느낀 MSA의 장단점을 말해보세요
- MSA에서 서비스를 구분하는 기준은 무엇이라고 생각하나요?
- 서비스간 통신의 수단을 선택할 때 net이 가벼운 것을 어떻게 판단했나요?
- 서비스간 통신에 JSON 기반의 프로토콜을 만들었다고 했는데 무슨 프로토콜인가요?
- 왜 Message Queue를 사용했고 어디에 사용해서 어떤 이점을 얻었나요?
- Message Queue를 사용한 결과 트랜잭션이 잘 유지되었다고 생각하나요?
- Message Queue로 사용된 Redis가 다운되었을 경우 어떻게 할 것인가요?
- Redis를 Clustering 하지 않고 Sentinel을 사용한 이유가 무엇인가요?
- 사용자가 많아져서 스터디 컴바인을 튜닝하고 싶은데 무엇을 손보고 싶은가요?