1. 브라우저 렌더링 원리
★★★★★
1. 브라우저 렌더링 원리
1-1. 홈페이지가 사용자에게 보이는 순서에 대해서 설명해주세요.
2. 호이스팅에 대해서 설명해 보세요.
3. 클로저는 무엇인가요? 원리와 왜 사용하는지 설명해 주세요.
4. CSS에서 margin과 padding에 대해서 설명해주세요.
4-1 position을 어떻게 사용하는지 알려주세요.
5. GET, POST가 어떻게 다르게 쓰는지 말씀해 주세요(주니어 기준, 시니어는 잘 안물어봄)
★★★★
1. this의 용법 아는대로 설명해주세요.
2. 브라우저 저장소에 대해서 차이점을 설명해 주세요. ( Localstorage, SessionStorage, Cookie )
3. Restful API에 대해서 아는대로 설명해 주세요. ( GET, PUT, POST, PATCH, OPTION, DELETE )
4. Javascript는 어떤 언어인가요? -> 싱글 스레드 언어
4-1 하지만 실제 사용시에는 멀티 스레드 처럼 사용하는데 어떻게 사용하나요?
4-2 비동기적으로 실행이 되는 것을 동기적으로 코딩하는 방법이 있나요?
5. Event Loop 에 대해서 알고 있으신가요?
5.1 마이크로태스크 큐와 태스크 큐에 대해서 말씀해주세요.
6. 이벤트 버블링에 대해서 말씀해 주세요
6-1. 이벤트 버블링은 기본적으로 child -> parent 인데 반대로 구현하는 법은?
6-2. 이벤트 버블링을 막기위한 방법은?
6-3. 이벤트 버블링을 잘 활용하면 어떻게 사용할 수 있을까요?
7. 타입스크립트에 대해서 사용해 본적이 있나요? 어떤지 말씀해주세요.
8. 실행문맥에 대해서 설명해 주세요.(자주 물어보지는 않음 그러나 알아야 함)
9. 이터러블, 이터레이터 프로토콜에 대해 말씀해주세요.
10. 제네레이터에 대해서 말씀해주세요.
★★★
1. HTML이 렌더링 중에 Javascript가 실행되면 렌더링이 멈추는데 그 이유는 무엇인가
2. 현재 Javascript 프레임워크를 사용하는 것과 그 선택을 한 이유.
2-1. 프로젝트를 진행할 때 어떤 Javascript 프레임워크를 선택할 것인가? 그 이유는?
2-2. 최근 사용되는 Javascript 프레임워크에 대해 차이점과 장단점? 언제 어떻게 사용해야 할까?
•
> 이 질문자체는 엔지니어마다 전부 주관적일 것이다. 제대로 고민해보고 답변해야 한다.
3. SPA와 서버사이드 렌더링의 차이점은 무엇인가요?
4. require와 import의 차이점
5. SASS, SCSS를 사용해본 적이 있나요? 기존 CSS와 비교할 때 어떤면이 더 좋은가요?
6. Javascript 성능 최적화를 위해 어떤 것을 적용해 보았나요?
7. Vue & React7-1 Vue와 React의 차이는 무엇인가요?
7-1 Vue 혹은 React를 사용해보셨다면 상태관리는 어떻게 구현하셨나요?
7-2 (Vue 면접관이라면) 라이프 사이클을 가볍게 설명해주세요.
7-3 Vue에서 양방향 데이터가 일어나는 원리에 대해서 말씀해주세요.
•
> https://medium.com/@erwinousy/%EB%82%9C-react%EC%99%80-vue%EC%97%90%EC%84%9C-%EC%99%84%EC%A0%84%ED%9E%88-%EA%B0%99%EC%9D%80-%EC%95%B1%EC%9D%84-%EB%A7%8C%EB%93%A4%EC%97%88%EB%8B%A4-%EC%9D%B4%EA%B2%83%EC%9D%80-%EA%B7%B8-%EC%B0%A8%EC%9D%B4%EC%A0%90%EC%9D%B4%EB%8B%A4-5cffcbfe287f> https://ko.bccrwp.org/compare/redux-vs-vuex-for-state-management-in-vue-js-d57692/> https://medium.com/witinweb/vue-js-%EB%9D%BC%EC%9D%B4%ED%94%84%EC%82%AC%EC%9D%B4%ED%81%B4-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-7780cdd97dd4> https://kr.vuejs.org/v2/guide/reactivity.html
8. 무작위 데이터에 대해서 테스트는 어떻게 하시나요?
9. ES6 에서 Arrow 함수를 언제 쓰나요? 왜 쓰나요?
10. var let const 차이점
11. CORS를 대처하는 방법과 우회하는 방법
12. MVVM 모델에 대해서 설명해 주세요
★★
1. CSS에는 Box-model 이라는 것이 있습니다. 이때 width의 값을 차지하는 크기는 어떻게 될까요?
2. 이진트리에 대해서 말씀해 주시고 종류는 어떻게 될까요? 실제 적용해본 경험이 있나요?
3. git을 사용해보신 적이 있으신가요? 사용했다면 어떤식으로 사용했는지 말씀해 주세요.
4. HTTP 0.9/1.0 의 차이를 말씀해 주세요.
★
1. 협업에 대해서 어떻게 생각하시나요
2. 스켈레톤 UI에 대해서 적용해본 적이 있나요.
3. 지원자님께서 시간이 있으시다면 Frontend 향상을 위해 어떤 노력을 할 것인가요?
4. 프론트엔드 주제를 가지고 발표를 해야한다면 바로 가능한게 있을까요?
5. 고객님께서 우리가 제작한 홈페이지 화면이 로딩속도가 느리다고 요청이 왔습니다. 어떻게 해결할(대처할) 것인가요? 충분히 고민해보시고 대답해주세요.
6. 여태까지 협업을 하면서 가장 어려웠던 것과 그것을 어떻게 해결했는지 말씀해주세요.
그 외
1. 기업에 따라 코딩 면접이 있을 수 있습니다. 알고리즘의 경우 보통 난이도는 leetcode에서 easy <-> medium 중간 정도의 난이도 입니다. 대체적으로 재귀적인 문제와 규칙찾는 것들이 자주 나왔던 걸로 기억합니다. 면접중에 풀어야 한다면 보통 15분 정도 시간을 주는 경우도 있습니다.
Homework 과제라면 3~4시간 정도의 난이도로 코딩하는 경우도 있습니다. 혹은 PDF를 전달 주고 그대로 구현해서 소스코드를 제출해야 하는 경우도 있습니다.
2. SEO에 관련된 질문을 받았다면 그 조직은 검색엔진 부서가 아닌이상 큰 조직이 아닐 확률이 높습니다. 스타트업이나 마케팅 쪽에서 SEO나 크롤링 잘하는 개발자를 선호합니다. IT의 큰 조직으로 갈 수록 SEO에 관련해서 물어보지는 않습니다.
3. 주니어나 시니어 엔지니어분들께서는 면접에 들어갔을 때 위의 질문들이 70% 이상이 나오지 않는다면 면접을 진행한 그 조직은 프론트엔지니어를 전문적으로 하는 조직이 아니라고 봐도 무방합니다. 백엔드 개발자와 적절하게 협업을 하면서 개발을 할 조직일 것입니다.
또한 프론트엔드 면접을 진행했는데 DB, 인프라, 백엔드 관련해서 질문을 같이 한다면 그 조직은 프론트엔지니어 이면서 풀스택을 원하는 경우가 대부분 입니다. 다른 분야도 같이 할줄아는 사람을 합격할 확률이 높습니다.
실제로 프론트엔드만 전문으로 하는 조직에서는 DB, 인프라, 백엔드 관련해서 질문을 주시지 않았습니다.
프론트엔드만 하신 분이면 아시겠지만 1시간 내에 프론트 관련 질문을 해서 지원자를 판별하기가 부족합니다.
DB + 인프라 => 프론트(메인) + 인프라 엔지니어( Golang, Docker, Orchestration, kubernetes, terraform )
DB + 백엔드 => 프론트(메인) + 백엔드 엔지니어( Java spring, node.js )
4. DB에 관련해서 물어본다면 용어 정리를 확실히 해야 합니다. 간혹 홈페이지나 웹사이트 등의 게시판 시스템을 만들어 본 경험이 있다고 DB설계로 작성하시면 안됩니다. DB설계와 Table(column)설계는 다릅니다.간혹 이력서에 DB설계로 작성하셔서 면접에 들어가시면 NoSql, RDBMS의 설계 방식에 대해서 질문이 들어옵니다. 어느 경우에 Nosql을 사용해야 하는지 RDBMS 사용해야 하는지 DB백업은 어떻게 해야 하는지 이중화 구성은 어떻게 해야하는지 장애처리를 위한 방법은 뭔지 그리고 샤딩 혹은 파티셔닝을 어떤식으로 구성해야 하는 것인지가 DB설계 입니다.
Table 컬럼을 추가해서 데이터를 저장하고 조회하고 수정하는 등의 작업은 DB설계가 아니라. Table Column을 구성할 줄 안다 라고 생각하셔야 합니다.