๋ ๋๋ฌ ํ๋ก์ธ์ค ์ด์ ์ ํต์ฌ ๋จ๊ณ
๋ ๋๋ง ๊ณผ์ ์ ๋ ํจ์จ์ ์ผ๋ก ๋ง๋ค ์๋ ์์๊น๋ผ๋ ์๊ฐ์ ํฌ๋ฆฌํฐ์ปฌ ํจ์ค(Critical Path)์ ๋ํด ๋ค์ ํ์ตํ๋ ์ค ๋ ๋๋ฌ ํ๋ก์ธ์ค๊ฐ ํ๋ฉด์ ๋ ๋๋ง ํ๊ธฐ ์ ์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๋์ง์ ๋ํด ๊ถ๊ธ์ฆ์ด ์๊ฒผ์ต๋๋ค.
์์ฐ์ค๋ฝ๊ฒ Chrome for Developers๋ฅผ ์ฝ์ด๋ณด์๊ณ ๊ทธ ๊ฒฐ๊ณผ, ์ง๊ธ๋ถํฐ ์ค๋ช
ํ๊ฒ ๋ ๋จ๊ณ๋ค์ด ๋ ๋๋ฌ ํ๋ก์ธ์ค ์ด์ ์ ์ด๋ป๊ฒ ์งํ๋๋์ง์ ๋ํ ๋ด์ฉ์ ๋๋์ด ๋ฐ๊ฒฌํ์ต๋๋ค!
๋ธ๋ผ์ฐ์ ์ฃผ์์ฐฝ์ url์ ์
๋ ฅ ํ ์น์ฌ์ดํธ๊ฐ ์ฌ์ฉ์์๊ฒ ๋ณด์ด๊ธฐ๊น์ง ๊ณผ์ ์ค์์ ์ฌ์ฉ์์๊ฒ ์ฌ์ดํธ๊ฐ ๋ณด์ด๊ธฐ ์ง์ ๊น์ง์ธ ๋ ๋๋ฌ ํ๋ก์ธ์ค์๊ฒ ๋ฐ์ดํฐ๊ฐ ์ ๋ฌ๋๊ธฐ๊น์ง 5๊ฐ์ง์ ๊ณผ์ ์ผ๋ก ์งํ์ด ๋๋ฉฐ ์ด ๊ณผ์ ๋ค์ ๋ํด ์์ฑํ์์ต๋๋ค.
์ ์ ๊ฐ์ ๊ถ๊ธ์ฆ์ ๊ฐ์ง ๋ค๋ฅธ ๋ถ๋ค์ด ๊ณ์์ง ์์๊น?
๋ผ๋ ์๊ฐ์ด ์ ๊ฐ ์ฒซ ๋ฒ์งธ ๋ธ๋ก๊ทธ ํฌ์คํ
์ ํ๊ฒ ๋ ์ด์ ์
๋๋ค.
์ ๊ฐ ์ฝ์ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋ ๋ ๋๋ฌ ํ๋ก์ธ์ค ์ด์ ์ ๋ค์ํ ๋จ๊ณ๋ค์ ๋ํด ์ดํด๋ณด๋ฉฐ, ๊ถ๊ธ์ฆ์ด ํด์๋์๊ธธ ๋ฐ๋ผ๊ฒ ์ต๋๋ค!
1๋จ๊ณ: ์
๋ ฅ ์ฒ๋ฆฌ (Handling Inputs)
์ฌ์ฉ์๊ฐ ์ฃผ์ ํ์์ค์ text๋ฅผ ์
๋ ฅํ๊ธฐ ์์ํ๋ฉด ๋ธ๋ผ์ฐ์ ํ๋ก์ธ์ค ์์ ์๋ UI ์ค๋ ๋๊ฐ ๊ฐ์ฅ ๋จผ์ ์ ์ ๊ฐ ์
๋ ฅํ ์ด text ๊ฐ์ ํตํด์ '๊ฒ์์ด ๋๋ URL์ธ๊ฐ์?'๋ผ๊ณ ๋ฌผ์ผ๋ฉฐ ํ๋จ์ ํฉ๋๋ค.
Chrome์์๋ ์ฃผ์ ํ์์ค์ด ๊ฒ์ ์
๋ ฅ๋์ด๊ธฐ๋ ํ๋ฏ๋ก UI ์ค๋ ๋๊ฐ ์
๋ ฅ๋ text ํ์ฑ ํ์ฌ Search Query๋ก ํ๋จ ํ ๊ฒ์์์ง(Search Engine)์๊ฒ ๋ณด๋ด์ด ๊ฒ์์ด ๋๊ฒ ๋ง๋ค์ง URL์ด๋ผ๊ณ ํ๋จํ์ฌ Network Thread์๊ฒ ์ ๋ฌํ ์ง ์ค๋นํ๋ ๊ณผ์ ์
๋๋ค.
์ฌ๊ธฐ๊น์ง๋ ์ฌ์ฉ์๊ฐ Enter ํค๋ฅผ ๋๋ฅด๊ธฐ ์ ๊น์ง์ ๊ณผ์ ์ด๋ ๊ฑธ ๊ธฐ์ตํด ์ฃผ์ธ์!
2๋จ๊ณ: ๋ด๋น๊ฒ์ด์
์์ (Start Navigation)
1๋จ๊ณ์์ ์ฌ์ฉ์๊ฐ ์
๋ ฅ๊ฐ์ ๋ค ์
๋ ฅํ ๋ค์ Enter ํค๋ฅผ ๋๋ฅด๋ฉด 2๋จ๊ณ๊ฐ ์์๋๋ฉฐ UI ์ค๋ ๋๊ฐ ๋คํธ์ํฌ ํธ์ถ(Network call initiates)์ ์์ํฉ๋๋ค.
์ด๋ ๋คํธ์ํฌ ํธ์ถ์ด๋ Network thread์๊ฒ URL์ ์ ๋ฌํ๋ ๊ฒ์ ์๋ฏธํ๋ฉฐ ์ฌ์ดํธ ์ฝํ
์ธ ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ณผ์ ์
๋๋ค.
๋ก๋ฉ ์คํผ๋๊ฐ ํ์๋๊ณ ๋คํธ์ํฌ ์ค๋ ๋๊ฐ DNS ์กฐํ์ ๊ฐ์ ์ ์ ํ ํ๋กํ ์ฝ์ ํต๊ณผํ๊ณ ์์ฒญ์ TLS ์ฐ๊ฒฐ์ ์ค์ ํฉ๋๋ค.
์ด ์์ ์์ ๋คํธ์ํฌ ์ค๋ ๋๋ 301๊ณผ ๊ฐ์ HTTP Status Code์ธ ์๋ฒ Redirection ํค๋๋ฅผ ์์ ํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๋คํธ์ํฌ ์ค๋ ๋๋ UI ์ค๋ ๋์๊ฒ Redirect ํด์ผ ํ๋ค๋ ํต์ ์ ํ๊ณ UI ์ค๋ ๋๋ ๋ค๋ฅธ URL ์์ฒญ ์ฆ, ๋ค๋ฅธ ๋คํธ์ํฌ ํธ์ถ์ ์์ํฉ๋๋ค.
์ด๋ 301 ์ฝ๋๊ฐ ์๋๋ผ๋ฉด 3๋จ๊ณ ๊ณผ์ ์ธ ์๋ต ์ฝ๊ธฐ(Read Response)๊ฐ ์งํ๋ฉ๋๋ค.
๋ค๋ง ์ด์งธ์ ๋คํธ์ํฌ ํธ์ถ ๊ณผ์ ์ Network Thread๊ฐ ์ง์ ์ ์ผ๋ก ํ๋ ๊ฒ์ด ์๋๋ผ UI Tread๋ฅผ ๊ฑฐ์ณ ์ด๋ฃจ์ด์ง๊น์? ๊ทธ ์ด์ ๋ ๋ก๋ฉ ์คํผ๋(Loading spinner)์ ๋ ๋๋ฌ ํ๋ก์ธ์ค(Renderer process) ํ์์ ์์ต๋๋ค.

์ ์ฌ์ง์ ๊ฐ์ฅ ์ผ์ชฝ ํญ ํค์์ ํ๋๊ฒ ๋์๊ฐ๊ณ ์๋ ๋ก๋ฉ ์คํผ๋๊ฐ ๋ณด์ด์ค ๊ฒ๋๋ค.
์ด๋ ๊ฒ ๋ก๋ฉ ์คํผ๋๋ฅผ ํญ์ ์ผ์ชฝ ๋ชจ์๋ฆฌ์ ๊ทธ๋ฆฌ๋ ๊ฒ์ ๊ด๋ฆฌํ๋ ๊ฒ์ด UI Tread์
๋๋ค.
๋คํธ์ํฌ ํธ์ถ์ด ์์๋๋ค๋ ๊ฒ์ UI Tread๊ฐ ์ ์ ์๋ค๋ฉด ๋ก๋ฉ ์คํผ๋๋ฅผ ๊ทธ๋ฆด ์ ์์ต๋๋ค.
Network Thread๊ฐ UI Tread์๊ฒ ๋คํธ์ํฌ ํธ์ถ์ด ์์๋๋ค๋ ๊ฒ์ ์๋ฆฌ๋ ๊ฒ๋ณด๋ค ๋น ๋ฅด๊ฒ ๋ก๋ฉ ์คํผ๋๋ฅผ ํ์ํ ์ ์์ต๋๋ค.
๋ ๋๋ฌ ํ๋ก์ธ์ค ํ์๊ณผ์ ์ 4๋จ๊ณ ๋ ๋๋ฌ ํ๋ก์ธ์ค ์ฐพ๊ธฐ์์ ์์ธํ ์ ์ด๋ณด๊ฒ ์ต๋๋ค.
UI ์ค๋ ๋๊ฐ ๋คํธ์ํฌ ํธ์ถ์ ํ ๋ ์ด ๋คํธ์ํฌ ํธ์ถ์ ์๋ฒ์ ํต์ ์ ํ๋ ๊ฒ์ด๊ธฐ์ ์๋ฐฑ ๋ฐ๋ฆฌ์ด๋ ๊ฑธ๋ฆด ์ ์์ผ๋ฏ๋ก ์ด ํ๋ก์ธ์ค์ ์๋๋ฅผ ๋์ด๊ธฐ ์ํ ์ต์ ํ๋ฅผ ํ๋ค๋ ๊ฒ๋ง ๊ธฐ์ตํด ์ฃผ์ธ์!
3๋จ๊ณ: ์๋ต ์ฝ๊ธฐ (Read response)
Response body (ํ์ด๋ก๋)๊ฐ ๋คํธ์ํฌ ์ค๋ ๋๋ก ๋ค์ด์ค๊ธฐ ์์ํ๋ฉด ๋คํธ์ํฌ ์ค๋ ๋๋ Response Body์ ๋ฐ์ดํฐ ํ์
์ ํ์ธํด์ผ ํฉ๋๋ค.
ํ์ธ ํ HTML ํ์ผ์ธ ๊ฒฝ์ฐ ๋ค์ ๋จ๊ณ๋ฅผ ์ํด ๋ฐ์ดํฐ๋ฅผ ๋ ๋๋ฌ ํ๋ก์ธ์ค์๊ฒ ์ ๋ฌํ ์ค๋น๋ฅผ ํ๊ณ ZIP ํ์ผ ๋๋ ๊ธฐํ ํ์ผ ํ์์ธ ๊ฒฝ์ฐ ๋ค์ด๋ก๋ ์์ฒญ์ด๋ฏ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ค์ด๋ก๋ ๊ด๋ฆฌ์์ ์ ๋ฌํด์ผ ํฉ๋๋ค. (a ํ๊ทธ์์์ ๋ค์ด๋ก๋๋ ์ฌ์ฉ์๊ฐ ๋ช
์์ ์ผ๋ก ํด๋ฆญํ์ฌ ๋ค์ด๋ก๋๋ฅผ ์์ํ๋ ์๋์ ์ธ ๊ณผ์ ๊ณผ๋ ๋ค๋ฆ
๋๋ค.)
ํ์ธ์ ์ด๋ค ์์ผ๋ก ์ด๋ฃจ์ด์ง๊น์?
Response body๊ฐ ๋ค์ด์ค๊ธฐ ์์ํ๋ฉด ๋คํธ์ํฌ ์ค๋ ๋๋ ํ์์ ๋ฐ๋ผ ์คํธ๋ฆผ์ ์ฒ์ ๋ช ๋ฐ์ดํธ๋ฅผ ํ์ธํฉ๋๋ค. ๊ฐ์ ๋จผ์ Response body์ Content-Type ํค๋์ ํ์๋๋ ๋ฐ์ดํฐ ์ ํ์ ํ์ธํ์ง๋ง, ๋๋ฝ๋๊ฑฐ๋ ์๋ชป๋์์ ์ ์์ผ๋ฏ๋ก ์ฌ๊ธฐ์์ MIME ํ์
์ค๋ํ (MIME Type Sniffing)์ ์คํํฉ๋๋ค.
Sniffing ๋จ์ด ๊ทธ๋๋ก ๋์๋ฅผ ๋งก๋ ๊ฒ์ฒ๋ผ ์ฃผ๋ก ๋ฐ์ดํฐ์ ์ฒ์ ๋ช ๋ฐ์ดํธ๋ฅผ ๋ถ์ํ์ฌ ํน์ ํ์ผ ํ์์ ํน์ง์ ์ธ ํจํด์ด๋ ์๋ณ์๋ฅผ ์ฐพ์ต๋๋ค. ์ด๋ฅผ ํตํด ์ ํํ MIME ํ์
์ ํ์ธํ๊ณ , ๊ทธ์ ๋ง๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.(MIME ํ์
์ค๋ํ์ ์ฃผ๋ก ๋ณด์ ๋ฐ ํธํ์ฑ ์ธก๋ฉด์์ ์ฌ์ฉ๋๋ฉฐ, ์์์น ๋ชปํ ํ์์ ํ์ผ์ด๋ ์
์ฑ ์ฝ๋๋ฅผ ํ์งํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.)
์ด ๊ณผ์ ์์ SafeBrowsing ๊ฒ์ฌ ๊ณผ์ ๊ณผ CORB(Cross Origin Read Blocking)๊ณผ์ ๋ ์งํ๋ฉ๋๋ค.
๋จผ์ SafeBrowsing์ ๊ตฌ๊ธ์์ ์ธ์ดํ ๋ธ๋ผ์ฐ์ง์ด๋ผ๊ณ ๊ฒ์ ์ ์ ๊ณต์ ํฉ๋๋ค! Domain๊ณผ Response Data๊ฐ ์๋ ค์ง ์
์ฑ ์ฌ์ดํธ(Malicious site)์ ์ผ์นํ๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ฉด ๋คํธ์ํฌ ์ค๋ ๋ ์๋ฆผ์ด ๊ฒฝ๊ณ ํ์ด์ง(Warning page)๋ฅผ ํ์ํฉ๋๋ค.
CORB ๊ณผ์ ์ Same-Origin Policy์ ๊ด๋ จ์ด ์์ต๋๋ค.
Same-Origin Policy๋ ๋์ผ ์ถ์ฒ ์ ์ฑ
์ผ๋ก, ๋ณด์์์ ์ด์ ๋ก ๋์ผํ ์ถ์ฒ(Origin)์์๋ง ๋ฐ์ดํฐ์ ์ ๊ทผ์ด ํ์ฉ๋๋๋ก ํ๋ ์ ์ฑ
์
๋๋ค.
์ฆ, Same-Origin ๋ฐ์ดํฐ๋ ์์ ํ๊ณ ์ ๋ขฐํ ๋งํ๋ค๊ณ ๋งํด์ฃผ๋ ์ ์ฑ
์
๋๋ค.
CORB๋ ๋ธ๋ผ์ฐ์ ์์ ํ์ด์ง์ ์คํฌ๋ฆฝํธ๊ฐ ๋ค๋ฅธ ์ถ์ฒ์ ๋ฆฌ์์ค๋ฅผ ์ฝ๋ ๊ฒ์ ๋ฐฉ์งํ๋ ๋ณด์ ๋ฉ์ปค๋์ฆ์ผ๋ก ํนํ, ๋ธ๋ผ์ฐ์ ๋ ์คํฌ๋ฆฝํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ ๋, ์ด ๋ฐ์ดํฐ๊ฐ ํด๋น ์คํฌ๋ฆฝํธ์ ์ถ์ฒ์ ๋ค๋ฅผ ๊ฒฝ์ฐ CORB๋ฅผ ์ ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฐจ๋จํฉ๋๋ค.
์ด๋ฅผ ์ด์ฉํด Renderer process์๊ฒ cross-site data๋ฅผ ์ ๋ฌํ์ง ์๊ฒ ๋ฉ๋๋ค.
๋ฌผ๋ก ์ ๋์ ์ธ ๊ฒ์ ์๋๋๋ค.
CORS ์ค์ ์ ์ฌ์ฉํ๋ฉด ํน์ ๋๋ฉ์ธ ๊ฐ์ ๋ฐ์ดํฐ ๊ตํ์ ํ์ฉํจ์ผ๋ก์จ, Same-Origin Policy์ CORB์ ์ํ ๋ณด์ ์ ์ฑ
์ ์ ์ฐํ๊ฒ ์กฐ์ ํ ์ ์์ต๋๋ค.
์์๋ก Spring Security ๋ฑ์ ๋ณด์ ์ค์ ์์ ํ์ฉํ ๋๋ฉ์ธ์ ๋ช
์์ ์ผ๋ก ์ค์ ํ๋ ๊ฑธ ๋ ์ฌ๋ฆฌ์๋ฉด ์ฝ๊ฒ ๋ค์!
์ด ๋ชจ๋ 3๋จ๊ณ ๊ณผ์ ์ ํต๊ณผํ HTML ํ์ผ ํ์์ ๋ฐ์ดํฐ๋ฅผ ๋ ๋๋ฌ ํ๋ก์ธ์ค์๊ฒ ์ ๋ฌํ ์ค๋น๋ฅผ ํฉ๋๋ค.
4๋จ๊ณ: ๋ ๋๋ฌ ํ๋ก์ธ์ค ์ฐพ๊ธฐ (Find Renderer process)
1๋จ๊ณ - 3๋จ๊ณ ๊น์ง์ ๋ฐ์ดํฐ ํ์
๊ณผ ์์ ์ฑ์ ๋ํ ๊ฒ์ฌ๊ฐ ์๋ฃ๋๊ณ ๋ธ๋ผ์ฐ์ ๊ฐ ์์ฒญํ ์ฌ์ดํธ๋ก ์ด๋ํด์ผ ํ๋ค๊ณ ํ์ ํ๋ค๋ฉด 4๋จ๊ณ๊ฐ ์์๋๋ฉฐ Network Thread ๊ฐ UI Thread์๊ฒ ๋ฐ์ดํฐ๊ฐ ์ค๋น๋์์(Data is ready)์ ์๋ฆฝ๋๋ค.
์ด๋ UI ์ค๋ ๋๊ฐ ์นํ์ด์ง ๋ ๋๋ง์ ์คํํ ๋ ๋๋ฌ ํ๋ก์ธ์ค๋ฅผ ์ฐพ๋๋ค๊ณ ์คํดํ๊ธฐ ๋ฑ ์ข์ต๋๋ค!
๊ทธ๋ ์ง ์๋ค๋ ์๋ฏธ๊ฒ ์ฃ ?!
2๋จ๊ณ์์ ๋ ๋๋ฌ ํ๋ก์ธ์ค ํ์๊ณผ์ ์ ๋ํด ์์ธํ ์์๋ณด์๋ ๋ง์ ํ์์ต๋๋ค.
๊ธฐ์ต์ด ์๋์ ๋ค๋ฉด ๋ค์ ์ฌ๋ผ๊ฐ ํ์ธํด ์ฃผ์ธ์!
๋๋์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ๋คํธ์ํฌ ํธ์ถ์๊ฐ์ ํ์ฉํ ๋ ๋๋ฌ ํ๋ก์ธ์ค ํ์ ์ต์ ํ ๊ณผ์ ์ ๋ํด ์ด์ผ๊ธฐํ ์ฐจ๋ก์
๋๋ค.
2๋จ๊ณ์์ UI ์ค๋ ๋๊ฐ ๋คํธ์ํฌ ์ค๋ ๋๋ก URL ์์ฒญ์ ๋ณด๋๊ธฐ์ ์ด๋ค ์ฌ์ดํธ๋ก ์ด๋ํ๋์ง ์ด๋ฏธ ์๊ณ ์์ ๊ฒ๋๋ค. UI ์ค๋ ๋๋ ๋คํธ์ํฌ ์์ฒญ๊ณผ ๋์์ ๋ ๋๋ฌ ํ๋ก์ธ์ค๋ฅผ ์ฌ์ ์ ์ฐพ๊ธฐ ์์ํฉ๋๋ค.
๋ณ๋ ฌ์ ์ผ๋ก ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๊ธฐ์ ๋ง์ ์๊ฐ์ ์๋ ์ ์์ต๋๋ค!
๊ทธ๋ ๋ค๋ฉด ๋ชจ๋ ๊ฒ์ด ์์๋๋ก ์งํ๋ ํ ๋คํธ์ํฌ ์ค๋ ๋๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์ ํ์ ๋ ๋ ๋๋ฌ ํ๋ก์ธ์ค๊ฐ ์ด๋ฏธ ๋๊ธฐ ์ํ์ ์๊ฒ ์ฃ ?!
์ด๋ ํฌ๋ก์ค ์ฌ์ดํธ๋ก Redirection ๋๋ ๊ฒฝ์ฐ ์ด ํ๋ก์ธ์ค์์ ์ฐพ๋ ๋ ๋๋ฌ ํ๋ก์ธ์ค๋ ์ฌ์ฉ๋์ง ์์ ์ ์์ผ๋ฉฐ, ์ด ๊ฒฝ์ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ํ์ํ ์ ์์ต๋๋ค.
์ด ๊ณผ์ ๋ํ ์ ์์ ์ผ๋ก ์งํ๋์๋ค๋ฉด ๋๋์ด!! ์๋ต๋ฐ์ ๋ฐ์ดํฐ์ธ HTML ํ์ผ์ ๋ฏธ๋ฆฌ ์ฐพ์๋์ ๋ ๋๋ฌ ํ๋ก์ธ์ค์๊ฒ ์ ๋ฌํฉ๋๋ค!
์ด์ ๋ ๋๋ฌ ํ๋ก์ธ์ค๋ ๋ ๋๋ง ํ ์ค๋น๋ฅผ ์์ํ๊ฒ ๋๋๋ฐ ์ด ์ง์ ์ ๋ฐ์ํ๋ ๊ฒ ์ปค๋ฐ๋ด๋น๊ฒ์ด์
์ด๋ผ๋ ๊ณผ์ ์
๋๋ค.
5๋จ๊ณ: ํ์ ์ปค๋ฐ (Commit Navigation)
๋๋์ด ๋ง์ง๋ง ๊ณผ์ ์
๋๋ค!
ํด๋น ๊ณผ์ ์ ํตํด์ ๋ด๋น๊ฒ์ด์
์ด ์ปค๋ฐ๋๊ณ ์ด ๊ณผ์ ์ด ๋๋๋ฉด ๋ ๋๋ฌ ํ๋ก์ธ์ค ์์์์ ๋ ๋๋ง ๊ณผ์ ์ด ์งํ๋ฉ๋๋ค.
๋ธ๋ผ์ฐ์ ํ๋ก์ธ์ค ์์ UI ์ค๋ ๋๊ฐ HTML ํ์ผ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฏ๋ก ๋ธ๋ผ์ฐ์ ํ๋ก์ธ์ค์์ HTML ํ์ผ ๋ฐ์ดํฐ๋ฅผ ๋ ๋๋ฌ ํ๋ก์ธ์ค์๊ฒ ์ ๋ฌํฉ๋๋ค.
ํ๋ก์ธ์ค์์ ํ๋ก์ธ์ค๋ก์ ๋ฐ์ดํฐ ์ ๋ฌ์ด๊ธฐ์ IPC(Inter-Process Communication)๋ฅผ ํ์ฉํ์ฌ ์ ๋ฌ๋ฉ๋๋ค. ์ด๋ ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ์ ๋ฌํ๋ฏ๋ก ๋ ๋๋ฌ ํ๋ก์ธ์ค๊ฐ HTML ๋ฐ์ดํฐ๋ฅผ ๊ณ์ ์์ ํ ์ ์์ต๋๋ค.
๊ทธ๋ ๊ฒ ๋ธ๋ผ์ฐ์ ํ๋ก์ธ์ค์์ ๋ ๋๋ฌ ํ๋ก์ธ์ค๋ก์ ์ปค๋ฐ์ด ์๋ฃ๋๋ค๋ ํ์ธ์ ์์ ํ๋ฉด ๋ด๋น๊ฒ์ด์
์ด ๋๋๊ฒ ๋๋๋ฐ ๊ทธ๋ ๊ฒ ๋๋ฉด ์ด์ ๋ฌธ์ ๋ก๋ ๋จ๊ณ(Document Loading Phase)๊ฐ ์์๋ฉ๋๋ค.
๋ฌธ์ ๋ก๋ ๋จ๊ณ๊ฐ ๋ ๋๋ฌ ํ๋ก์ธ์ค๊ฐ ์์๋๋ ๋ ๋๋ง ๊ณผ์ ์
๋๋ค.

์ด ๋ ๋๋ง ๊ณผ์ ์ด ์์๋๊ธฐ ์ ์ฃผ์ ํ์์ค์ด ์ฌ์ฉ์๊ฐ ์ฒ์์ ์
๋ ฅํ๋ ๊ทธ ์ฃผ์์ฐฝ์ผ๋ก ์
๋ฐ์ดํธ๋๊ณ ์ ์ด๋ฏธ์ง์์ URL ์ฃผ์ ์ผ์ชฝ ์๋ฌผ์ ๋ชจ์์ ๋ณด์ ํ์๊ธฐ(Security indicator) ๋ฐ ์ฌ์ดํธ ์ค์ UI๊ฐ ์
๋ฐ์ดํธ๋ฉ๋๋ค.
์ด๋ ์๋ฌผ์ ํ์์ ์ฌ์ดํธ ์ค์ UI๋ ์ด๋ ์ ์ฌ์ดํธ๊ฐ ์๋ ์ด๋ํ ์ฌ์ดํธ์ ์ ๋ณด๋ก ํ์ธ์ด ๋์ด ํด๋น ์ฌ์ดํธ์ ์ํ๋ฆฌํฐ๋ฅผ ํ์ํ๋ ๊ฒ์ผ๋ก ์
๋ฐ์ดํธ๊ฐ ๋ฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก ๋ด๋น๊ฒ์ด์
์ด ์ปค๋ฐ๋์๋ค๋ ๊ฒ์ ์ธ์
ํ์คํ ๋ฆฌ(Sesstion History)๊ฐ ์๋กญ๊ฒ ์ถ๊ฐ๋์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ด๋ ๋ค๋ก ๊ฐ๊ธฐ-์์ผ๋ก ๊ฐ๊ธฐ ๋ฒํผ์ ๋๋ฅด๋ฉด ๋ฐฉ๊ธ ์ด๋ํ ์ฌ์ดํธ๋ฅผ ๋จ๊ณ๋ณ๋ก ์งํํ ์ ์๋๋ก ํญ์ ์ธ์
๊ธฐ๋ก์ด ์
๋ฐ์ดํธ๋๋ ๊ณผ์ ์
๋๋ค. ํญ ๋๋ ์ฐฝ์ ๋ซ์ ๋ ํญ/์ธ์
๋ณต์์ ์ฉ์ดํ๊ฒ ํ๊ธฐ ์ํด ์ธ์
๊ธฐ๋ก์ ํ๋ ๋์คํฌ์ ์ ์ฅ๋ฉ๋๋ค.
๊ทธ๋ ๊ธฐ์ ํ๋ฉด์ด ๊ทธ๋ ค์ง๊ธฐ ์ ์ด๋ผ๋ ์ปค๋ฐ ๋ด๋น๊ฒ์ด์
๊ณผ์ ๊น์ง๋ง ์๋ฃ๊ฐ ๋์๋ค๋ฉด ๋ค๋ก ๊ฐ๊ธฐ๋ฅผ ํ์์ ๋ ๋ฐ๋ก ์ง์ ์ ๋ธ๋ผ์ฐ์ ๋ก ์ด๋ํ ์ ์๋ ๊ฒ์
๋๋ค!
์ถ๊ฐ ๋จ๊ณ: ์ด๊ธฐ ๋ก๋ ์๋ฃ
5๋จ๊ณ ๊ณผ์ ๊น์ง ์๋ฃ ํ ์ต์ข
์ ์ผ๋ก ๋ ๋๋ฌ ํ๋ก์ธ์ค๊ฐ HTML ํ์ผ์ ๋ฐ์ผ๋ฉฐ ์ฌ๋ฌ ๊ฐ์ง ๊ณผ์ ์ ๊ฑฐ์น๋ฉด์ ๋ธ๋ผ์ฐ์ ๋ ๋๋ง์ ๋ชจ๋ ๊ณผ์ ์ด ๋๋๋ฉด ๋ ๋๋ฌ ํ๋ก์ธ์ค๋ ๋ชจ๋ onload ์ด๋ฒคํธ๊ฐ ํ์ด์ง์ ๋ชจ๋ ํ๋ ์์์ ์คํ์ด ์๋ฃ๋ ํ์ IPC๋ฅผ ํตํด ๋ธ๋ผ์ฐ์ ํ๋ก์ธ์ค์๊ฒ ๋ชจ๋ ๊ณผ์ ์ด ์๋ฃ๋์์์ ์๋ฆฝ๋๋ค.
์ด ์๋ต์ ๋ฐ์ ๋ธ๋ผ์ฐ์ ํ๋ก์ธ์ค์ UI ์ค๋ ๋๋ ํญ์์ ๋ก๋ฉ ์คํผ๋๋ฅผ ์ค์งํฉ๋๋ค!
์ด ์์ ์ดํ์๋ ํด๋ผ์ด์ธํธ ์ธก JavaScript๊ฐ ์ฌ์ ํ ์ถ๊ฐ ๋ฆฌ์์ค๋ฅผ ๋ก๋ํ๊ณ ์ ๋ทฐ๋ฅผ ๋ ๋๋ง ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ์ ํ ๋์ ์ผ๋ก ํ์ด์ง๋ฅผ ์
๋ฐ์ดํธํ๊ณ ํ์ฅํ ์ ์๋ ์์ ์
๋๋ค.
๋ ์์๋ณด๊ธฐ!
- ์ฌ์ฉ์๊ฐ ์ฃผ์ ํ์์ค์ ๋ค๋ฅธ URL์ ๋ค์ ์
๋ ฅํ๋ฉด?! - beforeunload ํ์ต
- ์๋น์ค ์์ปค
- Chrome ์๋ ๋์ด๊ธฐ์ ๊ด๋ จ๋ ํ์ ๋ฏธ๋ฆฌ ๋ก๋
๋ฑ์ ๋ํ ์ถ๊ฐ์ ์ธ ํ์ต์ ์ํ์ ๋ค๋ฉด ์๋์ ์ฐธ๊ณ ์๋ฃ๋ฅผ ์ฝ์ด๋ณด์๋ฉด ์ข์ต๋๋ค!!
์ฐธ๊ณ ์๋ฃ
Chrome for Developers - ํ์์์ ๋ฐ์ํ๋ ์ผ