프론트엔드 면접 질문
브라우저 랜더링 과정
- 브라우저 검색창에 검색
- 해당 서버를 찾아감
- DNS가 연결해줄 곳을 찾음
- HTTPS또는 HTTP로 통신
- 랜더링할 HTML파일을 서버에서 클라이언트로 보냄
- 브라우저는 받은 HTML파일을 파싱
- DOM트리 생성
link
나script
를 만나면 리소스 다운로드를 시도 여기서 부터 HTML파싱이 잠시 멈춤- 다운 받은 CSS을 파싱 JS파일을 다운받게 되면 파일을 실행
- 파싱이 끝나면 다시 HTML파싱하여 DOM트리 완성
- 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은 헤더를 압축하여 보내기도하고 한 번의 연결로 도잇에 여러 메시지를 주고 받을 수 있다.