web 동작 과정

Written by on
web 동작 과정

면접 중에 네이버가 어떻게 실행되는지 과정을 설명해주세요

라는 질문이 있었다. 머리속으로는 과정을 그릴 수 있었지만, 막상 면접에서 이 부분을 말로 설명하려니 정신이 없었다. 실제로 대답도 그렇게 만족할만한 대답은 아니었다고 생각한다.

면접이 끝난 후, 생각해보니 웹 개발자라고 말하고 웹 개발자 포지션에 지원하면서 이런 부분을 설명할 수 없다는 것은 말도 안된다고 느껴졌다. 지금 내가 리액트니 타입스크립트니 이런 스택을 공부할 때가 아니었다.

우선 웹이 어떻게 동작하는지 확실히 내가 이해하고, 설명할 수 있을 정도는 되어야 한다고 생각한다.

전체적인 렌더링 과정

  1. 주소창에 입력받은 주소를 받는다.
  2. 네이버의 서버를 찾아간다.
  3. DNS가 연결해 줄 곳을 찾는다.
  4. 서버의 기본 html 파일을 클라이언트로 보낸다.
  5. 브라우저는 텍스트로 이루어진 html 파일을 파싱한다.
  6. 한 줄씩 읽으면서 DOM트리를 만든다.
  7. 중간에 link태그를 만나 css 요청이 발생하게 된다면, 요청과 응답 과정을 거치고 css를 파싱한다.
  8. css 파싱이 끝난다면 중단된 html을 다시 읽고 DOM트리를 완성한다.
  9. 완성된 DOM트리와 CSSOM 트리를 합쳐 Render tree를 만든다.
  10. HTML 파서가 스크립트 태그를 만나게 된다면 JS코드를 실행하기 위해 파싱을 중단한다. 제어권한을 JS엔진에 넘기고 JS코드 or JS파일을 로드하고 파싱 후 실행한다.

HTML => DOM tree 구성과정

CSS => CSSOM 구성과정

DOM,CSSOM ⇒ Render Tree

렌더트리는 실제로 표현되는 노드(요소)들로만 구성된다.

display : none 속성이 설정된 노드는 어떤 공간도 차지하지 않기 때문에 render tree를 만드는 과정에서 제외된다. visibility : invisible속성도 보이지 않는 것은 비슷하지만, 공간은 차지하고 있는 상태이고 단순히 보이지만 않게 해주기 때문에 render tree에 포함된다.

참고 블로그 : https://velog.io/@st2702/브라우저의-렌더링-과정

Rating:

Comments

comments powered by Disqus