TIL 2021-04-28 (브라우저 렌더링 과정, HTTP 와 HTTPS, OOP)

nyongho·2021년 4월 28일
0

오늘 배운 내용

목록 보기
3/40

TIL


What I Learn?

1) 브라우저의 렌더링 과정

EX) 주소창에 www.google.com 을 입력했을 때

  1. 주소창에 www.google.com 을 입력한다.
  2. 구글 서버를 찾아간다.
  3. DNS 가 연결해 줄 곳을 찾는다.
  4. 서버에서 HTML 파일을 클라이언트로 보낸다.
  5. 클라이언트는 HTML 파일을 파싱하며 DOM Tree 를 생성해 나간다.
  6. 파싱하던 도중 Link 태그를 만나면 CSS 를 파싱하며 CSSOM Tree 를 생성한다.
  7. 5,6 번의 DOM, CSSOM 을 합친 Render Tree 를 생성한다.
  8. 7번에서 Javascript 코드를 만나면 HTML 파싱을 멈추고 JS 코드를 실행한다. 실행을 모두 마치면 다시 HTML 파싱을 시작한다.

2) HTTP와 HTTPS 의 차이?

결정적 차이는 보안에 있다.

HTTP 는 암호화가 되지 않은 평문 데이터를 전송하는 프로토콜이기 때문에 제 3자가 열람이 가능하다는 단점이 있었다.

이러한 단점을 보완하기 위해 HTTPS 가 나왔으며 HTTPS 는 개인키/공개키 를 통해 정보를 보호한다.

하지만 위 과정 때문에 HTTP 보다는 속도가 느린편이다.

따라서 개인정보 노출이 없는 웹사이트의 경우 HTTP, 개인정보 노출의 우려가 있는 경우 HTTPS 로 제작하면 된다.

3) OOP (Object Oriented Programming) 의 특징?

  1. 상속성 : 상위 클래스의 메소드나 변수 등을 하위 클래스에게 물려줄 수 있음.
  2. 다형성 : 상위 클래스에서 물려받은 메소드를 자식 클래스에서 오버라이딩되어 사용하는 것.
    예를 들어 친구1 에게 칼을 주고 친구2에게는 프라이팬을 쥐어준다.
    그리고 나는 그 둘에게 요리 시작! 이라고 외치면 그 둘 모두는 동시에 요리를 시작한다. 만약 다형성이 없었다면 나는 "친구1 요리 시작!", "친구2 요리 시작!" 이렇게 두 번을 외쳤어야 할 것이다.
  3. 캡슐화 : 데이터 구조와 데이터를 다루는 방법들을 결합시켜 묶는 것.
    변수와 함수를 묶는 것을 의미한다.
    캡슐화 할 때는 해당 객체가 맡은 역할을 수행하기 위한 수단들을 한 곳에 묶어야 한다. (이를 흔히 은닉화라고도 한다.)
    또한 데이터를 절대 외부에서 접근이 불가해야하며 오직 함수를 통해서만 접근이 가능해야 한다.
  4. 추상화 : 공통의 속성이나 기능을 묶어 이름을 붙이는 것.
    객체 지향적 관점에서 클래스명을 지정하는 것을 추상화라고 볼 수 있다.
    예를 들어 물고기, 사자, 토끼, 뱀이 각각의 객체라고 하고 이 객체들을 하나로 묶으려고 할 때 동물 또는 생물이라고 묶을 수있다. 이런 과정을 추상화라고 한다.
profile
두 줄 소개

0개의 댓글