면접 질문 복기-2

HeumHeum2·2020년 5월 16일
0

기술면접

목록 보기
5/5
post-thumbnail

05/15 면접을 다녀왔습니다.
제 블로그를 보고 기술면접보다 프로젝트에 관련해 질문을 주셨습니다.

VDOM(Virtual DOM)에 대해 설명해주실 수 있나요?

VDOM에 먼저 페이지를 그린 다음, React에서 DOM과 비교 후 다른 것이 있으면 그 부분만 변경이 되어 렌더링 속도가 훨씬 빠르다고 답변을 했습니다.

면접이 끝난 후에 검색을 해봤습니다. 일부는 맞지만, VDOM없이 DOM에 접근하면서 렌더링 퍼포먼스는 document.createDocumentFragment()를 통해 따라할 수 있기에 렌더링 속도가 더 빠르다고 할 수 없었습니다.

그렇다면 VDOM을 왜 사용하는 것일까요?

자동화추상화

VDOM은 DOM 관리를 자동화하고 추상화하여 직접 접근 할 필요가 없습니다.
Dom Tree를 reload하기 위해 계속해서 DOM을 추적하는 것을 자동으로 해줍니다. 즉, 개발자의 편의를 위해 사용합니다.


람다 아키텍처란 무엇인가요?

사실 프론트엔드 질문은 아니지만, 회사 솔루션에 대해 질문하니 람다 아키텍처에 대해 질문 하셨습니다. 잘모른다고 답변하였고, 람다 아키텍처의 '람다'를 보고, 'AWS Lambda'로 다 바꾸는건가 싶었는데 아니였습니다 ㅎㅎ..

람다 아키텍처는 위키백과에서 보면 오래된 데이터를 배치(batch) 테이블과 실시간 데이터를 가진 실시간 테이블을 서로 조인(JOIN)하여 결과값을 얻을 수 있도록 구성한 아키텍처라고 합니다.
지금 이해하기로 예전 데이터 테이블과 실시간 데이터 테이블을 합친다라고 생각이 드네요.

그렇다면 왜 사용하는 것일까요?

사용하는 이유

하루에 쌓이는 데이터량이 얼마 되지 않는다면 데이터를 검색할 때, 연산속도가 얼마 걸리지 않겠지만 구글이나 네이버에서는 어마어마한 양의 데이터들이 쌓일 것입니다. 자료들을 검색하거나 업데이트 할 때마다 연산속도도 더 걸리겠죠..
그래서 람다 아키텍처를 사용해 대용량 데이터에서 어느 정도의 실시간 분석을 지원하기에 이전보다 빠르게 검색 할 수 있습니다.

구조

람다 아키텍처의 구조는 Batch LayerSpeed Layer 그리고, Serving Layer가 있습니다.

람다 아키텍처의 구조에 대한 자세한 글은 참고를 봐주시면 감사드리겠습니다.


profile
커피가 본체인 개발자 ☕️

0개의 댓글