- 질문에 의도에 맞게 대답 - 검정
- 의도와 조금 다르거나 부족함 - 노랑
- 대답을 잘 하지 못함 - 빨강
정렬
- 삽입정렬에 대해서 설명해주실 수 있나요?
- 1번 인덱스부터 탐색을 시작해서 인덱스 i, i - 1을 비교하고 교환한다.
- 시간복잡도는 평균, 최악 O(n^2), 최선 O(n) → 최선의 경우 이미 정렬되어있다면 비교하지 않기 때문에 빨라진다. -
피드백
의도적 뜸들이기
- 안정정렬, 불안정정렬
- 중복된 요소가 있을 수 있다, 정렬을 마친 뒤 중복된 요소의 순서가 유지되는지에 따라 구분한다.
- 안정정렬 → 안정정렬을 잘 모르는 상태에서 답변을 잘 해주심 (삽입 정렬을 잘 알고 있는 것 같다) -
피드백
의도적 뜸들이기
- 병합정렬에 대해서 설명해주실 수 있나요?
- 분할정복, 나눌 수가 없을 때까지 나눈 뒤, 두 배열을 합치는 과정에서 원소를 비교한다.
- 시간복잡도는: 최선, 평균, 최악 모두 O(nlogn) -
피드백
- 왜 항상 nlogn? → 항상 반으로 쪼개고 정렬하는 과정은 선형(?)이기 때문 (조금 장황, 더 담백하고 간단하게 말씀해주셔도 괜찮았음)
- 안정인가 불안정인가? → 안정정렬
의도적 뜸들이기
- 자바스크립트는 어떤 알고리즘을 사용하나요?
- 팀소트를 사용하고, 최악의 경우에도 nlogn을 보장하기 때문에...good -
피드백
팀소트 = 정렬되었을 때의 삽입정렬의 성능 + 병합정렬의 안정성
의도적 뜸들이기
- 팀소트는 어떻게 구현되었는지?
- 잘 모름 (시간날 때 한번 알아보시면 좋을 것 같아요) -
피드백
의도적 뜸들이기
브라우저 렌더링
- 주소창에 URL을 입력했을 때 어떤 일이 일어나는지?
- 해당 주소와 연결된 DNS → IP → ARP → MAC → TCP통신 → 3웨이핸드세이크 → 연결 → 요청과 응답 → TCP 종료
의도적 뜸들이기
- 브라우저 렌더링 과정을 설명해주세요
- 서버로부터 html, css, js 파일을 받아오고 파싱해서 트리를 구축한다. 자바스크립트를 실행하면서 DOM, CSSOM 트리를 변경하고 attach해서 렌더트리를 구축하고 화면에 배치하고 페인트한다.
의도적 뜸들이기
- 브라우저가 html, css 파일을 파싱할 때 어떻게 파싱하는지?
- 상향식 파서, 하향식 파서를 이용x
- 크게 2가지로 나눈다 (토큰화, 토큰을 이용해서 구축하는 과정)
- CSS같은 경우 문맥자유문법을 지켜서 상향식, 하향식이 가능
- → 사실 원한 답변은 아니었지만 잘 알고 있는 것 같은 느낌? (제가 생각한 답변은 바이트 → 문자열 → 토큰 → 노드 → 트리), 상향식-하향식 파서, 문맥자유문법 이런 단어들이 나오니까 어라? 뭐지? 더 잘 알고 있나? 다른 면접관이면 꼬리질문? 할 수도 있을듯
네이버 스마트에디터 부서 강추
→ 부서특징이 신입을 왕창뽑느다 → 살아남는 놈 키운다