프론트엔드 면접 질문 리스트2021-05-02

#JS

프론트엔드 면접 질문

브라우저 랜더링 과정

  1. 브라우저 검색창에 검색
  2. 해당 서버를 찾아감
  3. DNS가 연결해줄 곳을 찾음
  4. HTTPS또는 HTTP로 통신
  5. 랜더링할 HTML파일을 서버에서 클라이언트로 보냄
  6. 브라우저는 받은 HTML파일을 파싱
  7. DOM트리 생성
  8. linkscript를 만나면 리소스 다운로드를 시도 여기서 부터 HTML파싱이 잠시 멈춤
  9. 다운 받은 CSS을 파싱 JS파일을 다운받게 되면 파일을 실행
  10. 파싱이 끝나면 다시 HTML파싱하여 DOM트리 완성
  11. DOM트리와 CSSOM을 합쳐 Render 트리를 만들고 그림

HTTP와 HTTPS 통신 방식의 차이

  • HTTPS가 더 보안이 강하다.
  • HTTP는 네트워크간 정보를 누구나 마음대로 열람이 가능하나 HTTPS는 네트워크간 공개키와 인증서 대조를 통해 데이터를 주고받기 때문에 마음대로 정보 열람이 불가능
  • HTTP는 중간에 인증절차가 없기 때문에 HTTPS보다는 속도가 빠르다
  • HTTP는 중요한 정보가 있으면 이를 암호화 복호화한는 로직을 직접구현해야하고 신경써야한다. HTTPS는 인증서를 설치 유지하는 추가적인 비용이 발생한다.

OOP(Object Oriented Programing)란

  • 상속: 클래스와 같이 상위 클래스(부모)로 부터 하위 클래스(자식)이 유산을 물려받는 것과 같이 자식이 부모의 메소드나 변수를 사용할 수 있는 것을 말함
  • 다형성: 같은 함수라고 하더라도 함수가 받는 매개변수에 따라 다른 역할을 할 수도 있다는 개념(오버라이딩)
  • 캡슐화: 데이터와 데이터를 다루는 로직을 하나로 묶는 것으로 내부 정보를 밖에서 열람할 수 없도록 데이터를 숨기는행위도 포함된다.
  • 추상화: 공통적인 속성이나 기능을 하나의 개념으로 묶는 것(ex. 강아지, 고양이 => 동물)

함수형 프로그래밍

  • 순수함수(같은 입력값에 같은 출력값이 반환되며 사이드이펙트가 없는 함수)와 보조 함수의 조합을 통해 로직내에 존재하는 중복된 조건문과 반복문을 제거하여 복잡성을 해결하고 변수의 사용을 억제하여 상태 변경을 피하려는 프로그래밍 패러다임
  • 순수함수를 이용하여 사이드이펙트를 최대한 줄여 안정성을 추구하는 프로그래밍 방법론

OOP와 함수형 프로그래밍의 차이점

  • OOP는 객체 안에 상태값을 저장하고 메소드를 추가하여 상태를 변경하고 조정한다.
  • 함수형 프로그래밍은 상태값을 저장하지않고 특정 동작을 만들어낸다.

HTTP1.1과 HTTP2.0의 차이점

  • HTTP2.0은 헤더를 압축하여 보내기도하고 한 번의 연결로 도잇에 여러 메시지를 주고 받을 수 있다.