# 면접 준비 가이드북 ###### 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을 사용한 이유가 무엇인가요? - 사용자가 많아져서 스터디 컴바인을 튜닝하고 싶은데 무엇을 손보고 싶은가요?