https://www.naver.com/
๋ ๋ฆฌ์์ค์ ์์น๋ฅผ ๋ํ๋ด๋ url(Uniform Resource Locator)์ด๋ค.
๊ทธ๋ ๋ค๋ฉด, ์ฐ๋ฆฌ๊ฐ ๋ธ๋ผ์ฐ์ ์ฃผ์์ฐฝ์ https://www.naver.com/
๋ฅผ ์
๋ ฅํ์ฌ ์ผ์ด๋๋ ๊ณผ์ ์ ํฌ๊ฒ ๋๊ฐ์ง๋ก ๋๋ ์ดํด๋ณด์.
1๏ธโฃ ์ฒซ๋ฒ์งธ๋ ์๋ฒ๋ก๋ถํฐ ๋ฆฌ์์ค๋ฅผ ์ ๋ฌ๋ฐ๋ ๊ณผ์ ์ด๊ณ
2๏ธโฃ ๋๋ฒ์งธ๋ ์ ๋ฌ๋ฐ์ ๋ฆฌ์์ค๋ฅผ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ ๋๋งํ๋ ๊ณผ์ ์ด๋ค.
ํํ์ด์ง์ ๋ฆฌ์์ค๋ค์ ์ฌ์ฉ์์ ์ปดํจํฐ์ ์ ์ฅ๋์ด ์์ง ์๊ณ , ์ฒํค๋ก ์ด์ ๋จ์ด์ง ๋ฐ์ดํฐ์ผํฐ์ ์ ์ฅ๋์ด ์์ ์๋ ์๋ค. ์ด๋ ๊ฒ ๋ฉ๋ฆฌ ๋จ์ด์ ธ์๋ ๋ฐ์ดํฐ๋ค์ด ์ด๋ป๊ฒ ์ ์ ์ ๋ชจ๋ฐ์ผ์ด๋ ๋ฐ์คํฌํ์ผ๋ก ์ ๋ณด๊ฐ ์ ๋ฌ๋๋ ๊ฒ์ธ์ง ์ดํด๋ณด์!
(1) ์ฌ์ฉ์๊ฐ URL์ ์ ๋ ฅํ๋ค.
(2) ์น๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์ URL์์ ํธ์คํธ๋ช
www.naver.com
์ ์ถ์ถํ๋ค.
(3) ์น๋ธ๋ผ์ฐ์ ๋ DNS ์๋ฒ์ ์์ฒญ์ ๋ณด๋์ผ๋ก์จ IP๋ฅผ ์์๋ด๊ณ , ์๋ฒ์ ํธ์คํธ๋ช ์ IP๋ก ๋ณํํ๋ค.
โIP ์ฃผ์
๋ ๋ฌด์์ผ๊น?
๋คํธ์ํน์ด ๊ฐ๋ฅํ ์ฅ๋น(PC, ์๋ฒ์ฅ๋น, ์ค๋งํธํฐ, ํ ๋ธ๋ฆฟ ๋ฑ ์ธํฐ๋ท์ ์ฐ๊ฒฐ๋๋ ๋ชจ๋ ์ฅ๋น)๋ฅผ ์๋ณํ๋ ์ฃผ์์ด๋ค.
ip ์ฃผ์๋ ๋ง์น ์ง์ฃผ์์ ๊ฐ์ด ์ปดํจํฐ์ ์์น๋ฅผ ํน์ ํ๋ ์ผ์ข ์ ์ฃผ์๋ก ํต์ ๊ธฐ์ ํ๋์ฉ ๋ถ์ฌ๊ฐ๋๊ณ , 12๊ฐ์ ์ซ์๋ก ์ด๋ฃจ์ด์ ธ์๋ค.
๋ค์์ ping์ ํตํด ๋ค์ด๋ฒ์ ip์ฃผ์๋ฅผ ์์๋ณธ ๊ฒ์ด๋ค.
๋ค์ด๋ฒ ip์ฃผ์: 125.209.222.142
โ DNS(Domain Name System)
๋ ๋ฌด์์ผ๊น?
๋๋ฉ์ธ ๋ค์? ip์ฃผ์๋ 12๊ฐ์ ์ซ์๋ก ์ด๋ฃจ์ด์ ธ ์์ด ์ฌ๋์ด ์ด๋ฅผ ๋ค ๊ธฐ์ตํ๊ธฐ ํ๋ค๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฐ๋ฆฌ๋ ๋๋ฉ์ธ๋ค์์ ์ฌ์ฉํ๋ค. ๋๋ถ์ 125.209.222.142์ ๊ฐ์ด ๋ณต์กํ ip์ฃผ์๊ฐ ์๋ naver.com์ ํตํด ์น์ฌ์ดํธ์ ์ ์ํ ์ ์๋ค.
๊ทธ๋ ๋ค๋ฉด naver.com๋ง์ ๋ณด๊ณ ip์ฃผ์๋ฅผ ์ด๋ป๊ฒ ์์๋ผ ์ ์์๊น? ์ด๋ DNS์๋ฒ
๋ฅผ ํตํด ์์์๋ค. DNS ์๋ฒ๋ ๋ง์น ์ฌ๋ ์ด๋ฆ๋ง ์๊ณ ์์ ๋ ๊ฒ์์ ํตํด ์ฐ๋ฝ์ฒ๋ฅผ ์ฐพ์ ์ ์๋ ์ ํ๋ฒํธ๋ถ์ ๊ฐ์ด ๋๋ฉ์ธ ๋ค์์ผ๋ก ip์ฃผ์๋ฅผ ์ฐพ์ ์ ์๊ฒ ํด์ค๋ค.
(4) ์น๋ธ๋ผ์ฐ์ ๋ URL์์ ํฌํธ๋ฒํธ(์๋ค๋ฉด)๋ฅผ ์ถ์ถํ๋ค.
์ฐ๋์์ด๋์น url์ ๊ธฐ๋ณธ ํฌํธ๊ฐ์ผ๋ก 80์ ์ฌ์ฉํ๊ณ , ์ด๋ url์์ ์๋ตํ ์ ์๋ค.
โ ํฌํธ๋ฒํธ: ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ํ๋ก์ธ์ค๋ฅผ ์๋ณํ๋ ๋จ์์ด๋ค.
ex) ํ๋ฐฐ๋ฅผ ์ํจ๋ค๊ณ ํ ๋, ip์ฃผ์๋ ์ง์ฃผ์์ ๊ฐ๊ณ ํฌํธ๋ฒํธ๋ ํ๋ฐฐ๋ฅผ ๋ฐ๋ ์ฌ๋(์๋ง์ธ์ง ๋์ธ์ง)์ ํด๋นํ๋ค.
(5) ์น๋ธ๋ผ์ฐ์ ๋ ์น์๋ฒ์ TCP ์ปค๋ฅ์ ์ ๋งบ๋๋ค.
โ TCP๋ ์ ์ก๊ณ์ธต์ ํ๋กํ ์ฝ๋ก ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต ํ๋กํ ์ฝ์ธ HTTP์ ํ์ ๊ณ์ธต์ด๋ค. TCP๋ ์ค๋ฅ์์ด ์ ๋ขฐ์๋ ๋ฐ์ดํฐ ์ ์ก๊ณผ ์์์ ๋ง๋ ์ ๋ฌ, ์กฐ๊ฐ๋์ง ์๋ ๋ฐ์ดํฐ ์คํธ๋ฆผ ๋ฑ์ ๋ณด์ฅํ๋ค.
(6) ์น๋ธ๋ผ์ฐ์ ๋ ์๋ฒ์ HTTP ์์ฒญ์ ๋ณด๋ธ๋ค.
(7) ์๋ฒ๋ ์น๋ธ๋ผ์ฐ์ ์๊ฒ HTTP ์๋ต์ ๋๋ ค์ค๋ค.
(8) ์ปค๋ฅ์ ์ด ๋ซํ๋ฉด, ์น๋ธ๋ผ์ฐ์ ๋ ๋ฌธ์๋ฅผ ๋ณด์ฌ์ค๋ค.
์ด๋ ๋ฌธ์๋ ๊ด์ฌ์ ์ผ์ด๋ธ
์ ํตํด ์ง์ ์ ๋ฌ ๋๊ฑฐ๋, ๊ด์ฌ์ ์ผ์ด๋ธ์ ์ฐ๊ฒฐ๋ ์์ดํ์ด์ ์ ์ํ์ฌ ์ ๋ฌ ๋ฐ์ ์ ์๋ค.
1๏ธโฃ ๊ณผ์ ์ผ๋ก๋ถํฐ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฆฌ์์ค๋ฅผ ์ ๋ฌ ๋ฐ์ ํ ์ผ์ด๋๋ ์ผ์, ์ฐ๋ฆฌ๊ฐ ํํ์ด์ง๋ฅผ ๋ณผ ์ ์๋๋ก ํ๋ฉด์ ์ด ๋ฆฌ์์ค๊ฐ ๊ทธ๋ ค์ง๋ ๊ณผ์ ์ด๋ค. ์ด๋ฌํ ๊ณผ์ ์ ๋ธ๋ผ์ฐ์ ์ ๋๋๋ง ์์ง
์์ ๋์ํ๋ค.
โ ๋ ๋๋ง ์์ง: ์์ฒญํ ์ฝํ
์ธ ๋ฅผ ํ์. ์๋ฅผ ๋ค์ด HTML์ ์์ฒญํ๋ฉด HTML๊ณผ CSS๋ฅผ ํ์ฑํ์ฌ ํ๋ฉด์ ํ์ํจ.
(ํ์ด์ดํญ์ค๋ ๋ชจ์ง๋ผ์์ ์ง์ ๋ง๋ ๊ฒ์ฝ(Gaeko) ์์ง์ ์ฌ์ฉ, ์ฌํ๋ฆฌ์ ํฌ๋กฌ์ ์นํท(Webkit) ์์ง ์ฌ์ฉ)
(1) ๋ ๋๋ง ์์ง์ ํต์ ์ผ๋ก๋ถํฐ HTML๊ณผ CSS์ ๊ฐ์ ์์ฒญํ ๋ฌธ์์ ๋ด์ฉ์ ์ป๋๋ค.
(2) ๋ ๋๋ง ์์ง์ HTML ๋ฌธ์๋ฅผ ํ์ฑ
ํ๊ณ "์ฝํ
์ธ ํธ๋ฆฌ" ๋ด๋ถ์์ ํ๊ทธ๋ฅผ DOM ๋
ธ๋
๋ก ๋ณํํ๋ค. ๊ทธ ๋ค์ ์ธ๋ถ CSS ํ์ผ๊ณผ ํจ๊ป ํฌํจ๋ ์คํ์ผ ์์๋ ํ์ฑ
ํ๊ณ CSSOM ๋ชจ๋ธ๋ก ๋ณํํ๋ค.
(3) ์คํ์ผ ์ ๋ณด์ HTML ํ์ ๊ท์น์๋ ๋ ํธ๋ฆฌ
๋ผ๊ณ ๋ถ๋ฅด๋ ๋ ๋ค๋ฅธ ํธ๋ฆฌ๋ฅผ ์์ฑํ๋๋ฐ, ์ด๋ DOM ํธ๋ฆฌ๊ฐ ๊ตฌ์ถ๋๋ ๋์ ๋ธ๋ผ์ฐ์ ์ ์ํด ๊ตฌ์ถ๋๋ค. ๊ทธ ์ ์ DOM ๋
ธ๋์ ์๊ฐ ์ ๋ณด๋ฅผ ์ฐ๊ฒฐํ๋ ๊ณผ์ ์ธ ์ดํ
์น๋จผํธ๋ฅผ ํ๋ค.
โ ๋ ๋ ํธ๋ฆฌ๋ ํ์ํด์ผ ํ ์์์ ๋ฌธ์์ ์๊ฐ์ ์ธ ๊ตฌ์ฑ ์์๋ก์จ ์ฌ๋ฐ๋ฅธ ์์๋ก ๋ด์ฉ์ ๊ทธ๋ ค๋ผ ์ ์๋๋ก ํ๊ธฐ ์ํ ๋ชฉ์ ์ด ์๋ค.
(๊ฒ์ฝ๋ ๋ ๋ ํธ๋ฆฌ๋ฅผ "ํ์ ํธ๋ฆฌ(frame tree)"๋ผ๊ณ ๋ถ๋ฅธ๋ค.)
โ ๋ ๋ ๊ฐ์ฒด: ๋ ๋ํธ๋ฆฌ์ ๊ตฌ์ฑ์์๋ก ๋ ๋๋ฌ๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ฉฐ ์์ ๋๋ ๋๋น, ๋์ด, ๋ฉด์ ๊ณผ ๊ฐ์ ์๊ฐ์ ์์ฑ์ด ์๋ ๊ธฐํํ์ ์ ๋ณด๋ฅผ ํฌํจํ๋ค. (๊ฒ์ฝ์์๋ ์ด๋ฌํ ๊ฐ ์์๋ฅผ "ํ์(frame)"์ด๋ผ๊ณ ํ๋ค.)
๋ ๋๋ฌ๋ ์์ ๊ณผ ์์ ์์๋ฅผ ์ด๋ป๊ฒ ๋ฐฐ์นํ๊ณ ๊ทธ๋ ค๋ด์ผ ํ๋์ง ์๊ณ ์๋๋ฐ, ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.
class RenderObject { virtual
void layout(); virtual
void paint(PaintInfo); virtual
void rect repaintRect();
Node * node; //the DOM node
RenderStyle * style; // the computed style
RenderLayer * containgLayer; //the containing z-index layer
}
(4) ๋ ๋๋ฌ๊ฐ ์์ฑ๋์ด ๋๋ ํธ๋ฆฌ์ ์ถ๊ฐ๋ ๋ ํฌ๊ธฐ์ ์์น ์ ๋ณด๋ ์๋๋ฐ ์ด๋ฐ ๊ฐ์ ๊ณ์ฐํ๋ ๊ฒ์ ๋ฐฐ์น(layout)
๋๋ ๋ฆฌํ๋ก(๊ฒ์ฝ์์๋ reflow)๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์ด ๊ณผ์ ์์ ๋ทฐํฌํธ๋ด์ ๊ฐ ๋ ธ๋๋ค์ด ์ถ๋ ฅ๋ ์ ํํ ์์น์ ํฌ๊ธฐ๋ฅผ ๊ณ์ฐํ๋ค.
(reflow: ์ด๋ ํ ์ก์ , ์ด๋ฒคํธ๋ฅผ ํตํด html ์์์ ํฌ๊ธฐ, ๋ ์ด์์์ด ์์ ๋๋ฉด ๊ทธ์ ์ํฅ๋ฐ๋ ์์, ๋ถ๋ชจ ๋ ธ๋ ํฌํจํ์ฌ ๋ ์ด์์ ๊ณผ์ ๋ค์ ์ํ (๋ ๋ํธ๋ฆฌ ์์ ์์น ๋ค์ ๊ณ์ฐ))
(5) Paint
: ๋ง์ง๋ง์ผ๋ก ๊ณ์ฐํ ๋ ์ด์์ ์์๋ค์ ์ค์ ํ๋ฉด์ ๊ทธ๋ฆฌ๋ ๊ณผ์ ์ด ์งํ๋๋ค.
๊ทธ๋ฆฌ๊ธฐ ๋จ๊ณ์์๋ ํ๋ฉด์ ๋ด์ฉ์ ํ์ํ๊ธฐ ์ํ ๋ ๋ ํธ๋ฆฌ๊ฐ ํ์๋๊ณ ๋ ๋๋ฌ์ "paint" ๋ฉ์๋๊ฐ ํธ์ถ๋๋ค. ๊ทธ๋ฆฌ๊ธฐ๋ UI ๊ธฐ๋ฐ์ ๊ตฌ์ฑ ์์๋ฅผ ์ฌ์ฉํ๋ค.
(repaint : ๋ฆฌํ๋ก์ฐ ๋ฐ์ ์ํด paint ๊ณผ์ ๋ค์ ์ํ. ๋ฐฐ๊ฒฝ์, visibility ๊ฐ์ด ๋ ์ด์์์ ์ํฅ ์๋ ๊ฒ์ repaint ๋ง ์ํ)
HTTP ์๋ฒฝ ๊ฐ์ด๋
https://www.youtube.com/watch?v=x3c1ih2NJEg
https://d2.naver.com/helloworld/59361 (+๊ทธ๋ฆผ์ถ์ฒ)