๋ธ๋ผ์ฐ์
์น ๋ธ๋ผ์ฐ์ , ์น ํ์๊ธฐ๋ก๋ ๋ถ๋ฆฌ๋ ๋ธ๋ผ์ฐ์ ๋ ์น ์๋ฒ์์ ์๋ฐฉํฅ์ผ๋ก ํต์ ์ ํ๋ฉฐ HTMl ๋ฌธ์ ๋ฐ ๊ทธ๋ฆผ, ๋ฉํฐ๋ฏธ๋์ด ๋ฑ์ ์ปจํ ์ธ ๋ฅผ ์ด๋ํ ์ ์๊ฒ ํด์ฃผ๋ GUI ๊ธฐ๋ฐ ์ํํธ์จ์ด ํ๋ก๊ทธ๋จ์ด๋ค. ๋ธ๋ผ์ฐ์ ๋ ํ์ด์ง๋ฅผ ๋ค์ด๋ก๋ ํ๊ธฐ ํํด ์์ฉ ๊ณ์ธต์ ๋ํ์ ํ๋กํ ์ฝ์ธ HTTP๋ฅผ ํตํด ์ก์์ ํ๋ค.
์น(Web)
๋ธ๋ผ์ฐ์ ์์์ ์ ๊ณต๋๋ ์น์ ์๋ ์์ด๋ ์น(World Wide Web)์ด ํ ๋ค์์ด๋ฉฐ, ์ธํฐ๋ท ์์์ ํ ์คํธ๋ ๊ทธ๋ฆผ, ์๋ฆฌ, ์์ ๋ฑ๊ณผ ๊ฐ์ ๋ฉํฐ๋ฏธ๋์ด ์ ๋ณด๋ฅผ ํ์ดํผํ ์คํธ(hypertext) ๋ฐฉ์์ผ๋ก ์ฐ๊ฒฐํด ์ ๊ณตํ๋ค. HTML ์ธ์ด๋ฅผ ์ฌ์ฉํด ์์ฑ๋ ๋ฌธ์ ํํ๋ก ์ ๊ณต๋๋ฉฐ, ์ด๋ฐ ๋ฌธ์๋ฅผ ์น ํ์ด์ง(Web Page)๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฐ ์น ํ์ด์ง ์ค ์๋ก ๊ด๋ จ๋ ๋ด์ฉ์ผ๋ก ์์ฑ๋ ์น ํ์ด์ง๋ค์ ์งํฉ์ ์น ์ฌ์ดํธ(Web Site)๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๋ธ๋ผ์ฐ์ ์ ํน์ง๊ณผ ์น์ ๋์ ์๋ฆฌ
๋ธ๋ผ์ฐ์ ๋ ํ์กดํ๋ ๋ธ๋ผ์ฐ์ ๋ผ๋ฆฌ ์กฐ๊ธ์ฉ ๋ค๋ฅธ ํน์ง์ด ์์ง๋ง ๋์ ๋ฐฉ์์ ๋์ผํ๋ค. ๋ธ๋ผ์ฐ์ ๋ ์ฌ์ฉ์๊ฐ ์ ํํ ์์(Resource)์ ์๋ฒ์ ์์ฒญ(Request)ํ๊ณ , ์๋ฒ์ ์๋ต(Response)์ ๋ธ๋ผ์ฐ์ ์ ๋์ฐ๋(Rendering) ๋ฐฉ์์ผ๋ก ๋์ํ๋ค. ์ฌ๊ธฐ์ ์์์ ๋๊ฐ HTML ๋ฌธ์์ด๋ ๊ฐ๋ PDF, ๋ฉํฐ๋ฏธ๋์ด ๋ฑ ๋ค๋ฅธ ํํ์ผ ์ ์๊ณ , ์์์ ์ฃผ์๋ URI๋ก ๋์ด ์๋ค.
์น ๋ธ๋ผ์ฐ์ ๊ฐ ์น ์ฌ์ดํธ์ ์ ์ํ์ฌ ์น ํ์ด์ง๋ฅผ ๊ฐ์ ธ์ค๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์ฌ์ฉ์๋ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์ฐพ๊ณ ์ถ์ ์น ํ์ด์ง์ URL ์ฃผ์๋ฅผ ์ ๋ ฅํ๋ค.
- DNS ์๋ฒ์์ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ URL ์ฃผ์ ์ค ๋๋ฉ์ธ ๋ค์์ ๊ฒ์ํด ํด๋นํ๋ IP ์ฃผ์๋ฅผ ์ฐพ์ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ URL ์ ๋ณด์ ํจ๊ป ์ ๋ฌํ๋ค.
- ์นํ์ด์ง URL ์ ๋ณด์ ํจ๊ป ์ ๋ฌ๋ฐ์ IP ์ฃผ์๋ฅผ ํ ๋๋ก HTTP ํ๋กํ ์ฝ์ ์ฌ์ฉํด ์์ฒญ ๋ฉ์ธ์ง๋ฅผ ์์ฑํ๊ณ TCP ํ๋กํ ์ฝ์ ์ฌ์ฉํด ํด๋น IP ์ปดํจํฐ(์๋ฒ)๋ก ์์ฒญ์ ๋ณด๋ธ๋ค.
- ์์ฒญ ๋ฉ์ธ์ง๋ HTTP ํ๋กํ ์ฝ์ ํตํด URL๋ก ๋ณํ๋์ด ์น ์๋ฒ์ ์ ๋ฌ๋๊ณ , ์์ฒญ์ ํด๋นํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํด ์ฐพ์๋ธ ๋ค HTTP ํ๋กํ ์ฝ์ ์ฌ์ฉํด ์๋ต ๋ฉ์ธ์ง๋ฅผ ์์ฑํ์ฌ ๋ค์ TCP ํ๋กํ ์ฝ์ ์ด์ฉํด ์ฌ์ฉ์์ ์ปดํจํฐ๋ก ์ ์กํ๋ค.
- ์๋ต ๋ฉ์ธ์ง๋ HTTP ํ๋กํ ์ฝ์ ํตํด ์น ํ์ด์ง ๋ฐ์ดํฐ๋ก ๋ณํ๋์ด ์น ๋ธ๋ผ์ฐ์ ์์ ์ถ๋ ฅ๋๋ค.
๋ธ๋ผ์ฐ์ ์ ๊ตฌ์กฐ
๋ธ๋ผ์ฐ์ ๋ ๊ฐ๊ธฐ ๊ทธ ๋ชจ์์ด ์กฐ๊ธ์ฉ ๋ค๋ฅด์ง๋ง ๋ชจ๋ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
์ฌ์ฉ์ ์ธํฐํ์ด์ค(User Interface)
UI๋ผ๊ณ ๋ ๋ถ๋ฅด๋ฉฐ ์ ์ ์ ๊ฐ์ฅ ๋ฐ์ ํ๊ฒ ๋ง๋ฟ์์๋ ๋ถ๋ถ์ด๋ค. ์ฃผ์ ํ์์ค, ์ด์ /๋ค์ ๋ฒํผ, ๋ถ๋งํฌ ๋ฉ๋ด ๋ฑ GUI ๋ถ๋ถ์ ํต์นญํ๋ค.
๋ธ๋ผ์ฐ์ ์์ง(Browser Engine)
์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ๋ ๋๋ง ์์ง ์ฌ์ด์ ๋์์ ์ ์ดํ๋ค. ์ฃผ๋ ์ญํ ์ HTML ๋ฌธ์์ ๊ธฐํ ์์์ ์นํ์ด์ง๋ฅผ ์ฌ์ฉ์์ ์ฅ์น์ ์๊ฐ ํํ์ผ๋ก ๋ณํ์ํค๋ฉฐ, ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ(DOM) ์๋ฃ ๊ตฌ์กฐ๋ฅผ ๊ตฌํํ๋ค. ๋ ์ด์์ ์์ง(Layout Engine)์ด๋ผ๊ณ ๋ ๋ถ๋ฅด๋ฉฐ, ๋ ๋๋ง ์์ง(Rendering Engine)๊ณผ ๋ฐ์ ํ ์ฐ๊ด์ด ์์ด ๋ณดํต ๋ธ๋ผ์ฐ์ ์์ง๊ณผ ๋ ๋๋ง ์์ง์ ๋ฌถ์ด์ ๋ธ๋ผ์ฐ์ ์์ง์ผ๋ก ๋ถ๋ฅธ๋ค. ์ด๋ฐ ๋ธ๋ผ์ฐ์ ์์ง์ ์น ๋ธ๋ผ์ฐ์ ๋ง๋ค ์ ์ฉ ์์ง์ ์ฌ์ฉํ๋ค.
์ด๋ฆ | ์ค๋ช |
---|---|
๊ฒ์ฝ(Gecko) | ๋ชจ์ง๋ผ ์ฌ๋จ์์ ๋ง๋ ๋ธ๋ผ์ฐ์ ์์ง. ํ์ฌํ ์น ๋ธ๋ผ์ฐ์ ๋ก๋ ํ์ด์ดํญ์ค๊ฐ ๋ํ์ ์ด๋ค. |
์นํท(Webkit) | KHTML์์ ํ์๋ ๋ธ๋ผ์ฐ์ ์์ง. ํ์ฌํ ์น ๋ธ๋ผ์ฐ์ ๋ก๋ ์ฌํ๋ฆฌ๊ฐ ๋ํ์ ์ด๋ค. |
๋ธ๋งํฌ(Blink) | ์นํท(Webkit)์์ ํ์๋ ๋ธ๋ผ์ฐ์ ์์ง. ํ์ฌํ ์น ๋ธ๋ผ์ฐ์ ๋ก๋ ํฌ๋กฌ, ์คํ๋ผ๊ฐ ๋ํ์ ์ด๋ค. |
ํธ๋ผ์ด๋ํธ(Trident) | ๋ง์ดํฌ๋ก์ํํธ์ ๋ธ๋ผ์ฐ์ ์์ง.ย ํ์ฌํ ์น ๋ธ๋ผ์ฐ์ ๋ก๋ IE, Outlook์ด ๋ํ์ ์ด๋ค. |
์ฃ์งHTML(EdgeHTML) | ํธ๋ผ์ด๋ํธ(Trident)์์ ํ์๋ ๋ธ๋ผ์ฐ์ ์์ง. ๋ง์ดํฌ๋ก์ํํธ ์ฃ์ง ์คํ๋ฅดํ ๋ฒ์ (~2019)๊น์ง ํ์ฌ๋์์ผ๋ ํ์ฌ๋ ๋ธ๋งํฌ๋ก ๊ต์ฒด๋์๋ค. |
๋ ๋๋ง ์์ง(Rendering Engine)
์์ฒญํ ์ปจํ ์ธ ๋ฅผ ํ๋ฉด์ ์ถ๋ ฅํ๋ ์ญํ ์ ํ๋ค. HTML, CSS ๋ฑ์ ํ์ฑํด ์ต์ข ์ ์ผ๋ก ํ๋ฉด์ ๊ทธ๋ ค์ฃผ๋ฉฐ, HTML ๋ฐ XML ๋ฌธ์์ ์ด๋ฏธ์ง๋ฅผ ํ์ํ ์ ์๋ค. ๋ํ ํ๋ฌ๊ทธ์ธ์ด๋ ๋ธ๋ผ์ฐ์ ํ์ฅ ๊ธฐ๋ฅ์ ์ด์ฉํด PDF์ ๊ฐ์ ๋ค๋ฅธ ์ ํ๋ ํ์ํ ์ ์๋ค.
์์ ๋ธ๋ผ์ฐ์ ์์ง๊ณผ ๋ฐ์ ํ๊ฒ ๊ฒฐํฉ๋์ด ์์ด ๋ณดํต ํ๋์ ์์ง์ผ๋ก ๋ณด๋ ์๊ฐ์ด ๋ง๋ค. ๋ ๋๋ง ์์ง ์ญ์ ์น ๋ธ๋ผ์ฐ์ ๋ง๋ค ์ ์ฉ ์์ง์ ์ฌ์ฉํ๋ ์์ง์ ๋์ ์๋ฆฌ๋ ๊ณตํต๋ ๋ถ๋ถ์ด ๋ง๋ค.
ํต์ (Networking)
HTTP ์์ฒญ๊ณผ ๊ฐ์ ๋คํธ์ํฌ ํธ์ถ์ ์ฌ์ฉ๋๋ค. ๋ณดํต ํ๋ซํผ์ ๋ ๋ฆฝ์ ์ธ ์ธํฐํ์ด์ค์ด๊ณ ๊ฐ ํ๋ซํผ์ ํ๋ถ์์ ์คํ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ํด์๊ธฐ(JavaScript Interpreter)
JavaScript ์ฝ๋๋ฅผ ํด์ํ๊ณ ์คํํ๋ ์ญํ ์ ํ๋ค. JavaScript๋ ์ฝ๋๋ฅผ ์์์ ์๋๋ก ํ ์ค์ฉ ์ฝ์ด๋ด๋ ค๊ฐ๋ ๋ฐฉ์์ผ๋ก ํ์ฑ(parsing)ํ๋ ์ธ์ด(Interpreted Language)์ด๊ณ , ํ๋์ ์น ํ์ด์ง๋ ์น ์ธํฐ๋์ (Interaction)์ JavaScript๊ฐ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ํ์์ ์ด๊ฒ ๋์๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ์์ง(JavaScript Engine)์ด๋ผ๊ณ ๋ ๋ถ๋ฅด๋ ์๋ฐ์คํฌ๋ฆฝํธ ํด์๊ธฐ๋ ์ฌ๋ฌ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ์ด ๋์ง๋ง ๋์ฒด์ ์ผ๋ก ์น ๋ธ๋ผ์ฐ์ ์์ ์ด์ฉ๋๋ฉฐ, ์ด ์ญ์ ๋ธ๋ผ์ฐ์ ๋ง๋ค ์ ์ฉ ์์ง์ด ํ์ฌ๋์ด ์๋ค.
์ด๋ฆ | ์ค๋ช |
---|---|
Rhino | ๋ชจ์ง๋ผ ์ฌ๋จ์ด ์ด์ํ๋ ์คํ์์ค ์์ง์ผ๋ก, ์๋ฐ(Java)๋ก ๊ฐ๋ฐ๋์๋ค๋ ํน์ง์ด ์๋ค. |
SpiderMonkey | ์ต์ด์ Javascript ์์ง์ผ๋ก ๋ท์ค์ผ์ดํ ๋ด๋น๊ฒ์ดํฐ๋ฅผ ์ง์ํ์์ผ๋ฉฐ, ํ์ฌ๋ ํ์ด์ดํญ์ค๋ฅผ ์ง์ํ๊ณ ์๋ค. |
V8 | ๊ตฌ๊ธ์ด ๊ฐ๋ฐํ ์คํ ์์ค ์์ง์ผ๋ก ๊ตฌ๊ธ ํฌ๋กฌ์ Javascript ์์ง์ด๋ค. |
JavascriptCore | ์ ํ์์ ๊ฐ๋ฐํ์์ผ๋ฉฐ ์ฒ์์ WebKit ํ๋ ์์ํฌ๋ฅผ ์ํด ๊ฐ๋ฐ๋์์ง๋ง ํ์ฌ๋ ์ฌํ๋ฆฌ์ React Native App๋ฅผ ์ง์ํ๊ณ ์๋ค. |
Chakra | ๋ง์ดํฌ๋ก์ํํธ๊ฐ ๊ฐ๋ฐํ ์์ง์ด๋ฉฐ,ย Edge ๋ธ๋ผ์ฐ์ ๋ฅผ ์ง์ํ๊ณ ์๋ค. |
์๋ฐ์คํฌ๋ฆฝํธ ์์ง ๊ตฌ์กฐ (V8 ์์ง์ ํ ๋๋ก)
V8 ์์ง์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ ํฌ๊ฒ Heap Memory์ Call Stack์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
- ํ ๋ฉ๋ชจ๋ฆฌ(Heap Memory)
ํ(heap)์ ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ฌ์ฉ๋๋ ์๋ฃ๊ตฌ์กฐ์ด๋ฉฐ, V8์ ์ด ํ์ ์ด์ฉํด ๊ฐ์ฒด ๋๋ ๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค. ์ฌ๊ธฐ์ ์ ์ฅ๋๋ ๋ฉ๋ชจ๋ฆฌ๋ V8 ์์ง ๋ด๋ถ์์ ๊ฐ์ฅ ํฐ ๊ณต๊ฐ์ ์ฐจ์งํ๊ณ ์์ผ๋ฉฐ, ๊ฐ๋น์ง ์ปฌ๋ ์ ๋ํ ๋ฐ์ํ๋ ๊ณณ์ด๋ค.
- ์ฝ ์คํ(Call Stack)
JavaScript๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฑ๊ธ ์ค๋ ๋ ๊ธฐ๋ฐ์ ์ธ์ด์ด๋ฉฐ, ์ด๋ ์ฝ ์คํ์ด ํ๋๋ผ๋ ์๋ฏธ์ด์ ํ ๋ฒ์ ํ ์์ ๋ง ์ฌ์ฉํ ์ ์๋ค. ์ฝ ์คํ์ ํ๋ก๊ทธ๋จ ์์์ ์ฐ๋ฆฌ๊ฐ ์ด๋์ ์๋์ง ๊ธฐ๋กํ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์คํ์ ๊ตฌ์กฐ ํน์ฑ ์ ํ์ ์ ์ถ(LIFO) ํํ๋ก ๋์ํ๊ฒ ๋๋ค.
๊ฐ์ฅ ๋จผ์ ํธ์ถ๋๋
printSquare(4)
๊ฐ ์ฝ ์คํ์ ์์ด๊ณ ,printSquare
๋ด๋ถ์์square(n)
์ด ๋ค์์ผ๋ก ์ฝ ์คํ์,square
๋ด๋ถ์์multiply(n, n)
์ด ๋ง์ง๋ง์ผ๋ก ์ฝ ์คํ์ ์์ด๊ฒ ๋๋ค.์ฝ ์คํ์ ํ์ ์ ์ถ(LIFO) ๊ตฌ์กฐ์ ๋ฐ๋ผ ๊ฐ์ฅ ๋์ค์ ํธ์ถ๋์ด ์ฝ ์คํ์ ์์ธ
multiply(n, n)
๋ถํฐ ์ฐจ๋ก๋๋ก ์ฝ ์คํ์์ ๋น ์ง๋ฉด์ ํจ์ ๋ด์ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํดํ๋ค. ์คํ์ด ๋ชจ๋ ์๋ฃ๋๋ฉด ์คํ์์ ๋ชจ๋ ์ ๊ฑฐ๋์ด ์์ ํ ๋น๊ฒ ๋๋ค.์ฝ ์คํ์ ์์ด๋ ๋ฐ์ดํฐ ํ๋ ํ๋๋ฅผ ์คํ ํ๋ ์(Stack Frame)์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์์ ์์์์ ์คํ์ ์์ด๋ ํ๋๊ฐ ํ๋ ์ ํ๋์ด๋ฉฐ, ์ด๋ฐ ์คํ ํ๋ ์๋ค์ ๋์ ๋ฐฉ์์์๋ ์ ์ ์๋ฏ ์์ด๋ ์์๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ฝ ์คํ์ ๋์ ๋ฐฉ์์ ์๋ค๋ฉด ์คํ์ ์ถ์ (Stack trace) ๋ํ ๊ฐ๋ฅํด์ง๋ค.
- ์คํ ์ถ์ (Stack trace)
์ด๋ฌํ ์คํ ์ถ์ ์ ์น ๋ธ๋ผ์ฐ์ ์ ์ฝ์์ ์ถ๋ ฅ๋๋ ์๋ฌ ๋ก๊ทธ๋ฅผ ์ดํด๋ณด๋๋ฐ ํฐ ๋์์ด ๋๋ค. ์๋์ ๊ทธ๋ฆผ์์ ํจ์
baz()
๋ ํจ์bar()
๋ฅผ ํธ์ถํ๊ณbar()
๋foo()
ํจ์๋ฅผ ํธ์ถํ๊ณfoo()
๋ ๋ง์ง๋ง์ผ๋ก ์๋ฌ ๋ฉ์ธ์ง๋ฅผ ์ถ๋ ฅํ๋ค. ์ฝ ์คํ์ ๊ตฌ์กฐ๋ฅผ ์๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ ํจ์์ ๊ทธ ํจ์๋ฅผ ํธ์ถํ๋ ํจ์๋ฅผ ๋ชจ๋ ํ์ ํ ์ ์์ด ์๋ฌ์ ๋ฐ์๊ณผ ๊ทธ ์ด์ ๋ฅผ ์ถ์ ํ ์ ์๋ค.
- ์คํ ์ค๋ฒํ๋ก(Stack Overflow)
์ฝ ์คํ์ ํ๊ณผ ๋ฌ๋ฆฌ ์๋ฃ๊ตฌ์กฐ ์์ฒด๊ฐ ํฌ๊ธฐ์ ์ ํ์ด ์๋ค. ๋ฐ๋ผ์ ํ์ ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋์ด๋ฒ๋ฆฌ๊ฒ ๋๋ฉด ์๋ฌ๊ฐ ๋ฐ์๋๋๋ฐ ์ด๋ฅผ ์คํ ์ค๋ฒํ๋ก(Stack Overflow)๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์๋์ ์์์ฒ๋ผ ์ข ๋ฃ ์กฐ๊ฑด์ด ๊ฑธ๋ฆฌ์ง ์์ ์ฌ๊ทํจ์๊ฐ ๋ํ์ ์์์ด๋ฉฐ, ์ด ๊ฒฝ์ฐ ์ด๋ ์๊ฐ ์คํ์ ํฌ๊ธฐ(์ฉ๋)์ ๋๊ฒ ๋์ด ์น ๋ธ๋ผ์ฐ์ ๋ ๋ฉ์ถฐ๋ฒ๋ฆฌ๊ฒ ๋๋ค.
- ์คํ ์ถ์ (Stack trace)
UI ๋ฐฑ์๋
๋ ๋๋ง ์์ง์ด ๋ถ์ํ Render Tree๋ฅผ ๋ธ๋ผ์ฐ์ ์ ๊ทธ๋ฆฌ๋ ์ญํ ์ ๋ด๋นํ๋ค. Select, Input ์ฐฝ๊ณผ ๊ฐ์ ๊ธฐ๋ณธ์ ์ธ ์์ ฏ์ ๊ทธ๋ ค์ฃผ๋ฉฐ, ํ๋ซํผ์์ ๋ช ์ํ์ง ์์ ์ผ๋ฐ์ ์ธ ์ธํฐํ์ด์ค๋ก OS ์ฌ์ฉ์ ์ธํฐํ์ด์ค ์ฒด๊ณ๋ฅผ ์ฌ์ฉํ๋ค.
์๋ฃ ์ ์ฅ์
๋ง ๊ทธ๋๋ก ์๋ฃ๋ฅผ ์ ์ฅํ๋ ๊ณ์ธต์ผ๋ก, ์ฟ ํค๋ฅผ ์ ์ฅํ๋ ๊ฒ๊ณผ ๊ฐ์ด ๋ชจ๋ ์์์ ํ๋ ๋์คํฌ์ ์ ์ฅํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ์กด์ฌํ๋ค. HTML5 ๋ช ์ธ์๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์ง์ํ๋ ์น ์คํ ๋ฆฌ์ง(Web Storage) ์คํ์ด ์ ์๋์ด ์์ผ๋ฉฐ, ์๊ตฌ์ ์ ์ฅ์์ธ ๋ก์ปฌ์คํ ๋ฆฌ์ง(localStorage)์ ์์ ์ ์ฅ์์ธ ์ธ์ ์คํ ๋ฆฌ์ง(sessionStorage)๋ฅผ ๋ฐ๋ก ๋์ด ์ง์์ฑ์ ๊ตฌ๋ถํด ์์ฉ ํ๊ฒฝ์ ๋ง๋ ์ ํ์ ํ ์ ์๋ค.
์น ์คํ ๋ฆฌ์ง(Web Storage) ํน์ง
HTML5 ์ด์ ์๋ ์์ฉ ํ๋ก๊ทธ๋จ์ด ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๋ฅผ ์์ฒญํ ๋๋ง๋ค ๋งค๋ฒ ์ฟ ํค(Cookie)๋ผ๋ ๊ณณ์ ๊ทธ ์ ๋ณด๋ฅผ ์ ์ฅํ์ง๋ง, ์ฟ ํค ์์ฒด์ ๋ณด์ ์ทจ์ฝ๊ณผ ์ ์ฅ์์ ์ ๋์ ์ธ ์ฉ๋์ด ์ ์ ๋ฌธ์ ๋ก ์ธํด ์น ์คํ ๋ฆฌ์ง(Web Storage)๊ฐ ๋์์ผ๋ก ๋์ค๊ฒ ๋์๋ค.
์น ์คํ ๋ฆฌ์ง๋ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๊ฒ ํด์ฃผ๋ฉฐ, ์ฌ์ฉ์ ์ธก์์ ์ข ๋ ๋ง์ ์์ ์ ๋ณด๋ฅผ ์์ ํ๊ฒ ์ ์ฅํ ์ ์๊ฒ ํด์ค๋ค. ๋ํ ์น ์คํ ๋ฆฌ์ง์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ ์ ๋ ์๋ฒ๋ก ์ ์ก๋์ง ์์ผ๋ฏ๋ก ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ํด๋ผ์ด์ธํธ์๋ง ์กด์ฌํด ๋คํธ์ํฌ ํธ๋ํฝ ๋น์ฉ ๋ํ ์ค์ฌ์ค๋ค๋ ํน์ง์ ๊ฐ์ง๋ค.
์ด๋ฌํ ์น ์คํ ๋ฆฌ์ง๋ ์ค๋ฆฌ์ง(Origin, ๋๋ฉ์ธ๊ณผ ํ๋กํ ์ฝ์ด ํ ์์ผ๋ก ์ด๋ฃจ์ด์ง ์๋ณ์)๋ง๋ค ๋จ ํ๋์ฉ ์กด์ฌํ๋ฏ๋ก, ํ๋์ ์ค๋ฆฌ์ง์ ์ํ๋ ๋ชจ๋ ์น ํ์ด์ง๋ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๊ฒ ๋๋ค.
- ๋ก์ปฌ์คํ ๋ฆฌ์ง(localStorage)
window.localStorage
: ๋ง๋ฃ ๋ ์ง๊ฐ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ ์ฐ์ธ๋ค.
๋ก์ปฌ์คํ ๋ฆฌ์ง ๊ฐ์ฒด๋ ๋ณด๊ด ๊ธฐํ์ด ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฐ์ฒด์ด๋ค. ๋ฐ๋ผ์ ๋ธ๋ผ์ฐ์ ํญ์ด ๋ซํ๊ฑฐ๋ ์ปดํจํฐ๋ฅผ ์ฌ๋ถํ ํด๋ ์ด ์ ์ฅ์์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ ์ฌ๋ผ์ง์ง ์๋๋ค. Windows ์ ์ญ ๊ฐ์ฒด์ localStorage๋ผ๋ ์ปฌ๋ ์ ์ ํตํด ์ ์ฅ๊ณผ ์กฐํ๊ฐ ๊ฐ๋ฅํ๋ฉฐ, ๋๋ฉ์ธ๋ง๋ค ๋ณ๋๋ก ์์ฑ๋๊ธฐ ๋๋ฌธ์ ๋๋ฉ์ธ๋ง ๊ฐ๋ค๋ฉด ์ ์ญ์ผ๋ก ๋ฐ์ดํฐ์ ๊ณต์ ๊ฐ ๊ฐ๋ฅํด์ง๋ค.
- ์ธ์
์คํ ๋ฆฌ์ง(sessionStorage)
window.sessionStorage
: ์ธ์ ์ด ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ ์ฐ์ด๋ฉฐ, ๋ธ๋ผ์ฐ์ ํญ์ ๋ซ์ผ๋ฉด ์์ค๋๋ ๊ฒ์ ์๋ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ ์ฐ์ธ๋ค.
์ธ์ ์คํ ๋ฆฌ์ง ๊ฐ์ฒด๋ ํ๋์ ์ธ์ ๋ง์ ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค. ๋ฐ์ดํฐ๋ฅผ ์ง์์ ์ผ๋ก ๋ณด๊ดํ์ง ์๊ณ ๋ธ๋ผ์ฐ์ง(ํ๋ก๊ทธ๋จ์ ์คํํด์ ์ธํฐ๋ท์ ๋ค์ด๊ฐ ํ์ํ ์ ๋ณด๋ฅผ ์ฐพ๋ ํ์) ๋๊ณ ์๋ ๋ธ๋ผ์ฐ์ ์ปจํ ์คํธ ๋ด์์๋ง ๋ฐ์ดํฐ๊ฐ ์ ์ง๋๊ธฐ ๋๋ฌธ์, ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ํญ์ด๋ ์ฐฝ์ ๋ซ์ผ๋ฉด ์ด ๊ฐ์ฒด์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ ์ฌ๋ผ์ง๋ค.
Windows ์ ์ญ ๊ฐ์ฒด์ sessionStorage๋ผ๋ ์ปฌ๋ ์ ์ ํตํด ์ ์ฅ๊ณผ ์กฐํ๊ฐ ์ด๋ฃจ์ด์ง๋ฉฐ, ๋๋ฉ์ธ๋ง๋ค ๋ณ๋ ์์ฑ๋จ์ ๋ฌผ๋ก ๋ธ๋ผ์ฐ์ ์ปจํ ์คํธ๊ฐ ๋ค๋ฅด๋ฉด ์๋ก ๋ค๋ฅธ ์์ญ์ด ๋๋ ํน์ง์ ๊ฐ์ง๋ค. ์ฆ, ๋ธ๋ผ์ฐ์ ๋ ๊ฐ๋ฅผ ์คํํด ๊ฐ์ ํ์ด์ง๋ฅผ ์ฐ๋ค๋ฉด ๋ธ๋ผ์ฐ์ ์ ์ปจํ ์คํธ๊ฐ ์๋ก ๋ฌ๋ผ ์ด ๋ ํ์ด์ง์ ์ธ์ ์คํ ๋ฆฌ์ง๋ ๊ฐ ๋ณ๊ฐ์ ์์ญ์ผ๋ก ์ธ์ง๋๊ณ ์๋ก ๋ฐ์ดํฐ์ ๊ณต์ ๊ฐ ๋ถ๊ฐ๋ฅํด์ง๋ค.
๐ค๋ธ๋ผ์ฐ์ ์ปจํ ์คํธ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฌธ์๋ฅผ ํ์ํ๋ ํ๊ฒฝ์ ์๋ฏธํ๋ฉฐ, ๊ฐ ๋ธ๋ผ์ฐ์ง ์ปจํ ์คํธ๋ ํน์ ์ถ์ฒ ๋ฐ ํ์ฑํ๋๊ณ ์๋ ๋ฌธ์์ ์ถ์ฒ, ํ์ํ๋ ๋ชจ๋ ๋ฌธ์์ ๋ฐฉ๋ฌธ๊ธฐ๋ก์ ๊ฐ์ง๊ณ ์๋ค.
๋จ, ์น ์คํ ๋ฆฌ์ง๋ ์ฌ์ฉํ๊ธฐ ์ ์ฌ์ฉ์์ ์น ๋ธ๋ผ์ฐ์ ๋ฒ์ ์ด ์ด๋ฅผ ์ง์ํ๋์ง ๋จผ์ ํ์ธํด์ผ ํ๋ค.
์น ์คํ ๋ฆฌ์ง๋ฅผ ํ์ฉํ ๋ํ์ ์ธ ๊ธฐ๋ฅ์ ์๋์ ๊ฐ๋ค.
- ๋ธ๋ก๊ทธ ๊ธ์ ์์ฑํ๋ค๊ฐ ์ฌ์ฉ์๊ฐ ์ฐฝ์ ๋ฒ์ด๋ ๊ฒฝ์ฐ ๊ด๋ จ ์์ฑ ๋ด์ฉ์ ๋ณต๊ตฌํ๊ฑฐ๋ ๋ฐฑ์ ํด์ฃผ๋ ๊ธฐ๋ฅ
- ์ฌ์ฉ์๊ฐ ์ ๋ ฅ form์ ํตํด ์ ๋ณด๋ฅผ ์ ๋ ฅํ๋ค ํ์ด์ง์์ ๋ฒ์ด๋ ๊ฒฝ์ฐ ๋ณต๊ตฌ ๋ฐ ๋ฐฑ์ ํด์ฃผ๋ ๊ธฐ๋ฅ
- ํ์ฌ ์ฝ์ ๊ธ์ ํ์คํ ๋ฆฌ ์ ์ฅ(์นด์ดํ , ํน์ ์ฝ์ ๊ธ ํ์ ๋ฑ์ผ๋ก ํ์ฉ)
Uploaded by N2T