추상구문트리: 소스코드를 컴퓨터가 이해할 수 있는 구조로 변경시키는 트리
> 참고 (파싱과정)
html파싱하다가 css style태그를 만나면 css파싱해 cssom트리를 만든다. 그리고는 아까 하던 html에 돌아가 파싱을 계속해서 진행한다. 그러다가 script 태그를 만나면 다시 중지하고 자바스크립트 엔진에 권한을 넘겨 자바스크립트를 파싱해 AST(Abstract Syntax Tree)를 생성하고 바이트코드로 변환하여 실행한다. 그리고는 다시 html에 돌아가 계속해서 파싱을 진행한다.
> 참고
자바스크립트는 DOM API를 통해 DOM이나 CSSOM을 변경할 수 있다. 변경된 DOM과 CSSOM은 다시 렌더트리로 결합된다.
box-sizing: content-box : 기본값이며 컨텐츠 영역 기준이다. 즉, 안쪽여백 영역부터 포함하지 않는다.
box-sizing: border-box : 테두리 영역 기준이며 바깥여백 영역부터 포함하지 않는다.
t을 해제하는 방법들
float란
float: 블록요소를 강제로 좌우배치할때 쓰인다.
묶음 태그(block element)만 적용할 수 있다.
float를 사용하면 브라우저가 높이를 인지하지 못하기 때문에 clear하는 과정이 필요하다.
묶음태그: <div></div><ol><p><ul><table><img>
위에있는 float를 right, left상관없이 모두 무시하겠다 clear: both
none (기본값) : 정렬하지 않는다.
left : 왼쪽으로 정렬한다.
right: 오른쪽으로 정렬한다.
예제
<ul>
<li>float Item 1</li>
<li>float Item 2</li>
<li>float Item 3</li>
</ul>
ul{
padding:15px 20px;
height:45px;
background:#e5e5e5;
}
ul > li{
float:left;
margin:5px;
padding:5px 10px;
background:pink;
list-style:none;
}
자식엘리먼트에만 float가 있으면 부모는 자식의 크기를 인지하지 못한다.
자식을 포함할 만큼만 너비로 줄어듦
부모가 겹겹이 있을 경우 계속해서 float 시켜야 함
overflow:auto;
overflow: hidden;
위의 사진에서 스크롤 없어짐
약간의 여백이 생김
자식의 너비를 포함할 만큼으로 줄어듦
참고
장점
이벤트 위임 이란 하위 엘리먼트들이 여러개 있을 때, 하위 엘리먼트들에 각각 이벤트 핸들러를 달지 않고 상위 엘리먼트에 이벤트 핸들러를 달아 하위 엘리먼트들을 제어하는 방식이다. 이 패턴으로 얻는 이점들은 다음과 같다.
TCP(연결지향적): 신뢰성이 있는 데이터 통신을 가능하게 해주는 프로토콜이다.
연결지향으로 2개의 호스트가 통신을 하기 전 연결이 이루어져야한다.(3 way-handshake)
높은 신뢰성을 가지고 데이터의 순서를 보장하지 않는다. 속도가 UDP보다 느리다.
UDP(비연결형): TCP보다 신뢰성이 떨어지지만 속도가 빠른 프로토콜이다.
비연결성으로 연결을 설정하고 해제하는 과정이 없다.
데이터의 순서를 보장하지 않는다.
데이터의 신뢰성을 보장하지 않는 프로토콜이므로 민감하지 않는 데이터를 전송할때 사용된다. TCP에 비해서는 처리할 작업들이 굉장히 적기 때문에 속도가 빠르다. 비디오/오디오 스트리밍 등에 사용된다.
- (비연결성 장점)
왜 http 프로토콜은 한 번 맺은 연결을 끊어 버리는 걸까?
http는 인터넷 상에서 불특정 다수의 통신 환경을 기반으로 설계되어있다. 만약 서버에서 다수의 클라이언트와 연결을 계속 유지해야 한다면, 이에 따른 리소스가 발생하게 된다. 따라서 연결을 유지하기 위한 리소스를 줄이면 더 많은 연결을 할 수 있기 때문에 비연결적인 특징을 갖는다.
(비연결성 단점)
서버는 클라이언트를 기억하고 있지 않으므로 동일한 클라이언트의 모든 요청에 대해, 매번 새로운 연결을 시도/해제의 과정을 거쳐야하므로 연결/해제에 대한 오버헤드가 발생 하는 단점이 있다. (해결책 → keep-alive속성)