Web์ ์ญ์ฌ์ ์น ํ์ค์ ํ์ํ ๊ธฐ์
1. Web์ ์ญ์ฌ
1.1 WWW(World Wide Web)์ ์์
1960๋
๋ ์๋ จ์ ์ธ๊ณต์์ฑ ๋ฐ์ฌ ์ฑ๊ณต์ด ์๋ ค์ง์ ์ด์ ์ํ์ ๋๋ ๋ฏธ๊ตญ์ด ๊ตญ๋ฐฉ๋ถ ์ฐํ์ ์๋ก์ด
๊ธฐ์ ์ ์ฐ๊ตฌํ๋ ARPA(Advanced Research Project Agency)๋ผ๋ ์ด๋ฆ์ ๋ถ์๋ฅผ ์ฐฝ์คํ์๋ค.
ARPA๋ ์ฐ๊ตฌ์ฉ ํต์ ๋ง์ ๊ฐ๋ฐํ์ฌ 1969๋
์ UCLA์ SRI ์ฐ๊ตฌ์ ๊ฐ์ ์ฐ๊ฒฐํ๋๋ฐ ์ฑ๊ณตํ๊ฒ ๋๋ฉด
์ ์ด ํต์ ๋ง์ ARPANET์ด๋ผ๊ณ ๋ถ๋ ์ผ๋ฉฐ ์ด ํต์ ๋ง์ ์ค๋๋ ์ธํฐ๋ท ๋ง์ ์์ด๊ฐ ๋์๋ค.
ARPANET์ ํต์ ์๊ณผ ๊ฐ์ ์ํ์์ ํต์ ์์คํ
์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ๋ณด๊ดํ๊ณ ์ ์กํ ์ ์๋ ๋ค
ํธ์ํฌ ์์คํ
์ผ๋ก ์ดํ์ ๋ฏผ๊ฐ์ฐ๊ตฌ์ฉ ARPANET๊ณผ ๊ตฐ์ฌ์ฉ MILNET์ผ๋ก ๋๋์ด ์ก๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฏผ๊ฐ
์ฐ๊ตฌ์ฉ์ ARPANET์ด ํ์ฌ ์ ์ธ๊ณ์ ๋ชจ๋ ์ปดํจํฐ๋ฅผ ์ฐ๊ฒฐํ๊ณ ์๋ ์ธํฐ๋ท์ผ๋ก ๋ฐ์ ํ๊ฒ ๋ ๊ฒ์ด
๋ค. ํ์ฌ์ ์น๊ณผ ๊ฐ์ ํํ๋ 1989๋
๋น์ ์ ๋ฝ์์ํต ์ฐ๊ตฌ์์ ํ ๋ฒ๋์ค ๋ฆฌ(Tim Berners Lee)์
์ํด ์ ์ ๋์๋ค. ์ด ๊ธฐ์ ์ ํ์ดํผ๋งํฌ๋ผ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํด ๋คํธ์ํฌ์์ ๋ฌธ์์ ๋ฌธ์ ์ฌ์ด๋ฅผ ์ด๋
ํ ์ ์๋ ๋น์์๋ ์๋ก์ด ๊ฐ๋
์ด์๋ค. 1991๋
ํ ๋ฒ๋์ค๋ฆฌ๋ ์์ ์ด ์ ์ํ ์๋ก์ด ๊ฐ๋
์ ์์ด
๋์ด๋ฅผ ๋ฐํ์ผ๋ก ์๋ ์์ด๋ ์น(World Wide Web)์ ๊ฐ๋ฐํด ๋ฐฐํฌ ํ์๋ค. ์ดํ ์๋์์ด๋์น(์ผ๋ช
WWW)์ ์ฌ์ฉํ๋ ์ฌ๋๋ค์ด ํญ๋ฐ์ ์ผ๋ก ์ฆ๊ฐํ์ 1993๋
์๋์์ด๋์น์ ์์ค๋ฅผ ๋ชจ๋ ์ฌ๋์ด ์ฌ์ฉ
ํ ์ ์๋๋ก ๊ณต๊ฐํ๊ณ 1994๋
์ ์น๊ณผ ๊ด๋ จ๋ ํ์ค์ ์ฌ์ ํ๊ณ ๊ด๋ฆฌํ๋ W3C(World Wide Web
Consortium)๋ฅผ ์ฐฝ์คํ์๋ค.
1.2 ๋ธ๋ผ์ฐ์ ์ ์๊ณผ ์น 2.0
1994๋
๋ท์ค์ผ์ดํ ์ปค๋ฎค๋์ผ์ด์
์ฆ๋ผ๋ ํ์ฌ์์ ๋ค์ค์ผ์ดํ๋ผ๋ ์น๋ธ๋ผ์ฐ์ ๋ฅผ ๊ฐ๋ฐํด ๋ฐฐํฌํ์๋
๋ฐ ์ด์ ๋น์ทํ ์๊ธฐ์ ๋ง์ดํฌ๋ก์ํํธ๋ ์ธํฐ๋ท ์ต์คํ๋ก๋ฌ๋ฅผ ๊ฐ๋ฐํด ๋ฐฐํฌ ํ์๋ค. ์ดํ ๋ ๋ธ๋ผ์ฐ
์ ๊ฐ์ ์์ฅ ์ ์ ์จ ๊ฒฝ์์ด ์น์ดํด ์ก๊ณ ์ด ๊ฒฝ์์์ ๋ฐ๋ฆฐ ๋ค์ค์ผ์ดํ ์ปค๋ฎค๋์ผ์ด์
์ฆ๋ ๋ชจ์ง๋ผ ์ฌ
๋จ์ ์ธ์ ๋ท์ค์ผ์ดํ ์น๋ธ๋ผ์ฐ์ ์ ์์ค๋ฅผ ๊ณต๊ฐํ๊ณ ์น๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ์ผ๋ฐ ๊ฐ๋ฐ์์ ์ฐธ์ฌ๋ฅผ ์ ๋
ํ์์ง๋ง ๊ฒฐ๊ตญ ํฐ ํจ๊ณผ๋ ๋ณด์ง ๋ชปํ๊ณ ์ค๋๋ ์ ์ด๋ฅด๊ฒ ๋์๋ค.
์ดํ ์ธํฐ๋ท์ด ์ ์ ๋ฐ์ ํ๋ฉด์ ์น ์ปจํ
์ธ ๊ฐ๋ฐ์ ์ผ๋ฐ ์ฌ์ฉ์๋ค์ด ์ฐธ์ฌํ ์ ์๋ ์๋๋ก ์ ์ด๋ค
๊ฒ ๋๋ค. ์ด๋ ๊ฒ ์ฌ์ฉ์๊ฐ ์์ ์ ์์ด๋์ด๋ฅผ ๋ฐํ์ผ๋ก ์ปจํ
์ธ ๋ฅผ ์์ฐํ๊ณ ๋ค๋ฅธ ์ฌ์ฉ์์ ๋๋ถ์ด ์ปจ
ํ
์ธ ๋ฅผ ๊ณต์ ํ๊ฒ ๋๋ ์๋๋ฅผ ์ผ์ปฌ์ด ์น 2.0 ์๋๋ผ ๋ถ๋ ๋ค.
์๋ฅผ ๋ค์ด ์ฌ์ฉ์๊ฐ ์ง์ ์์ ์ ๋์์์ ์ ์ํ๊ณ ์ ํ๋ธ ๊ฐ์ ์๋น์ค๋ฅผ ํตํด ๋ค๋ฅธ ์ฌ์ฉ์์ ๊ณต
์ ํ๋ฏ๋ก ์ฌ์ฉ์๊ฐ ์ปจํ
์ธ ์์ฐ์์ด๋ฉด์ ๋ ๋ค๋ฅธ ์๋น์๊ฐ ๋๋ ๊ฑฐ๋ํ ๋์์ ์ํ๊ณ๋ฅผ ์ด๋ฃจ์ด ๊ฐ
๊ณ ์๋ค. ์ด๋ ๊ฒ ์ด๋ค ์๋น์ค๋ฅผ ์ ๊ณตํ ์ ์๋ ํ๋ซํผ์ ๊ธฐ๋ฐ์ผ๋ก ์๋น์ค ์ ๊ณต์๊ฐ ์๋ ์ผ๋ฐ ์ฌ์ฉ
์๊ฐ ์๋ฐ์ ์ผ๋ก ์ฝํ
์ธ ๋ฅผ ์์ฐํ๊ณ , ๊ณต์ ํ๊ณ , ์๋นํ๋ ์๋๋ฅผ ์ผ์ปฌ์ด ์น 2.0 ์๋๋ผ๊ณ ๋ถ๋ ์ผ๋ฉฐ
์ค๋๋ ์ ๋ค์ํ ํ๋ซํผ๊ณผ ์ธ๊ณต์ง๋ฅ ๊ธฐ์ ์ด ๋ง๋ ํ์ ์ ์ด๋ฉฐ ๋ณด๋ค ๊ฐ์ธํ๋ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ์๋
์ด๋ฉฐ ์ด๋ฅผ ์น 4.0์๋๋ก ๋ถ๋ฅํ๊ณ ์๋ ๊ฒ ๊ฐ๋ค.
1.3 HTML5์ ํ์
2000๋
๋ ๋ค์ด์ 1์ฐจ ์น ๋ธ๋ผ์ฐ์ ์ ์์์ ์น๋ฆฌํ ์ธํฐ๋ท ์ต์คํ๋ก๋ฌ๊ฐ ์ธ๊ณ ์ ์ผ์ ํ์ค ๋ธ๋ผ์ฐ
์ ๋ก ์๋ฆฌ ์ก์ ๊ฐ๋ ๊ฒ ๊ฐ์์ง๋ง ๋น์ W3C ํ์์์ ๋ชจ์ง๋ผ ์ฌ๋จ์ ๋น๋กฏํ ์ผ๋ถ ์น ๋ธ๋ผ์ฐ์ ์
๊ณต์
์ฒด๋ค์ด ์๋ก์ด HTML ํ์ค์์ ์ ์ํ๊ฒ ๋์๊ณ ๊ทธ๋ก ์ธํด ์ 2์ ๋ธ๋ผ์ฐ์ ์ ์์ด ์์๋๋ค.
์ด ๋ ์ ์ํ ์๋ก์ด ํ์ค์์ด ์ฑํ๋์ง ๋ชปํ์ 2004๋
6์ ๋ฐ ์ธํฐ๋ท ์ต์คํ๋ก๋ฌ ์ง์์ ์น๋ธ๋ผ์ฐ
์ ์ ๊ณต ์
์ฒด(์ ํ, ๋ชจ์ง๋ผ ์ฌ๋จ, ์คํ๋ผ ์ํํธ์จ์ด ๋ฑ)๋ค์ด ๋ชจ์ฌ์ ์๋ก์ด ์น ํ์ค ๊ธฐ๊ด์ธ
WHATWG(Web Hypertext Application Technology Working Group)๋ฅผ ์ค๋ฆฝํ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ
๋น ๋ฅด๊ฒ ์๋ก์ด ์น ํ์ค์ธ Web Application 1.0์ ์ ์ ํ์ฌ ๋ฐํํ๋ค. ์ด์ ๋น์ทํ ์๊ธฐ์ W3C์
์๋ XHTML 2.0์ ์๋ก์ด ํ์ค์ผ๋ก ๋ฐํ ํ์์ง๋ง ์ด XHTML 2.0์ ๊ธฐ์กด์ ํ์ค๊ณผ ๋๋ฌด ๋ค๋ฅด๊ณ
์ด๋ ค์ ์ผ๋ฉฐ ๋ฌด์๋ณด๋ค ๋น์ ๋น ๋ฅด๊ฒ ๋ณํํ๊ณ ์๋ ์น์ ์๊ตฌ๋ฅผ ๋ฐ์ํ์ง ๋ชปํ์๋ค. ์ด๋ก ์ธํด ๊ฐ๋ฐ์
๋ค๋ก๋ถํฐ ์ธ๋ฉด๋นํ์์ผ๋ฉฐ ๊ฒฐ๊ตญ์๋ ํ๊ธฐ๋์๋ค. ์ด๋ฐ ์ด์ ๋ก W3C๋ WHATWG์ Web Application
1.0 ํ์ค์์ ๋ฐ์๋ค์ฌ ์๋ก์ด ํ์ค์ผ๋ก ์ฑํํ๊ฒ ๋๋๋ฐ ์ด๋ ๊ฒ ๋ง๋ค์ด์ง ํ์ค์์ด ๋ฐ๋ก HTML5
์ด๋ค. HTML5๋ 2012๋
์ ์ด์์ด ๋ฐํ๋์๊ณ 2014๋
10์ 28์ผ์ HTML5 ๋ฒ์ ์ ์ ์ ๊ถ๊ณ ์์ด
๋ฐํ๋์๋ค. ๊ทธ๋ฆฌ๊ณ ์ค๋งํธํฐ์ ๋น ๋ฅธ ๋ณด๊ธ์ผ๋ก N์คํฌ๋ฆฐ ์๋๊ฐ ๋๋ ๋๋ฉด์ ๋์ฑ ๋ ์ฃผ๋ชฉ ๋ฐ๋ ๊ธฐ
์ ์ด ๋์๋ค. HTML5๋ผ๋ ๋จ์ด๋ ๋งํฌ์
์ธ์ด๋ง์ ์๋ฏธํ๋ ๊ฒ์ด ์๋๋ผ ์น๊ณผ ๊ด๋ จ๋ ์ ๋ฐ์ ์ธ ๊ธฐ
์ ์ ์๋ฏธํ๊ณ ์๋ค.
2. ์น ํ์ค์ ํ์ํ ๊ธฐ์ ์๊ฐ
ํ์กดํ๋ ๋ชจ๋ ์น๋ธ๋ผ์ฐ์ ๋ HTML5๋ฅผ ์ง์ํ๊ณ ๋ ์์ง๋ง ํ๋ฉด์ ํ์๋๋ ๊ฒ์ ๋ชจ๋ ์น๋ธ๋ผ์ฐ์ ๊ฐ
๋์ผํ๊ฒ ๋ณด์ฌ์ง๋ ๊ฒ์ ์๋๋ฉฐ ์น๋ธ๋ผ์ฐ์ ๋ง๋ค ์กฐ๊ธ์ฉ ์ง์ํ๋ ๋ถ๋ถ์ด ๋ค๋ฅผ ์ ์๋ค.
ํ์ฌ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ PC ์ด์์ฒด์ ์ธ Windows ์๋ฆฌ์ฆ์ ํ์ฌ๋ ์ธํฐ๋ท ๋ธ๋ผ์ฐ์ ๋ฅผ Windows
๋ฒ์ ๋ณ๋ก ๋น๊ตํด ๋ณด๋ฉด ์ด์ ์ Windows 7๊ณผ Windows 8 ๊ธฐ๋ฐ์์ IE 10 ๋ฒ์ ์ ๊ฑฐ์ณ์ IE 11 ๋ฒ์ ์ผ๋ก ๋์ด์ค๋ฉด์
HTML5๋ฅผ ์ง์ํ๋ ๋ถ๋ถ์ด ๋ง์ด ํ๋๋๊ธด ํ์์ง๋ง ๊ฒฐ๊ตญ IE๋ ์ง์์ด ์ค๋จ๋์๋ค.
Windows 10์ผ๋ก ๋์ด์ค๋ฉด์ MS ๊ณ์ด์ ์๋ก์ด ์น ๋ธ๋ผ์ฐ์ ์ธ Edge๊ฐ ์ ๊ณต๋๊ณ ์์ผ๋ฏ๋ก
์ฐ๋ฆฌ๋ Chrome๊ณผ Edge ๋ฑ์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ตํ๊ฒ ๋ ๊ฒ์ด๋ค.
2.1 HTML(Hypertext Markup Language)
ํ์ดํผํ
์คํธ(Hyper Text)์ ๋งํฌ์
(Markup)์ HTML์ ์ค์ํ ๊ฐ๋
์ผ๋ก ํ์ดํผํ
์คํธ๋
๋ฌธ์ ๋ด์ ์กด์ฌํ๋ ์ปจํ
์ธ ์ ๋งํฌ ์ค์ ์ด ๊ฐ๋ฅํ์ฌ ๋ฌธ์๊ฐ ์๋ก ์ฐ๊ฒฐ๋์ด ์๋ค๋ ์๋ฏธ๋ก ์ค์ ์น ๋ฌธ์์
ํน์ ํ
์คํธ๋ ์ด๋ฏธ์ง ๋ฑ์ ํด๋ฆญํ๋ฉด ๋ค๋ฅธ ๋ฌธ์๋ก ์ฐ๊ฒฐ๋์ด ์ด๋ํ ์ ์๊ฒ ๋๋ค.
๋งํฌ์ ์ ๋ฌธ์ ๋ด์ ํน์ ๋ด์ฉ์ ํน๋ณํ ์ง์ํ๋ ๋ฌธ์ฅ์ ์ถ๊ฐํ์ฌ ๊ธฐ๋ณธ ์ ๋ณด์ ์ถ๊ฐ์ ์ธ ์ ๋ณด๋ฅผ
ํ์ํ ์ ์๋ค๋ ์๋ฏธ๋ก ๊ธ๊ผด์ ์์์ ์ง์ ํ๊ฑฐ๋ ํน์ ๋ด์ฉ์ ๋ฌถ์ด ํ๋์ ๋ฌธ๋จ์ผ๋ก ์ถ๋ ฅํ๊ธฐ ์ํด ์ฌ์ฉ๋๋
์ผ๋ จ์ ๋ฌธ์๋ ๊ธฐํธ๋ค์ ๋งํฌ์ ์ด๋ผ ํ๋ค.
์ด๋ ๊ฒ ๊ธฐ๋ณธ์ ์ธ ๋ด์ฉ์ด ํ๋ฉด์ ์ด๋ป๊ฒ ์ถ๋ ฅ๋ ์ง ์ง์ ํ๋ ๋งํฌ์ ์ ํ๊ทธ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
2.2 CSS(Cascading Style Sheet)
์คํ์ผ ์ํธ๋ HTML ํ๊ทธ๋ง ์ฌ์ฉํด ์น ๋ฌธ์๋ฅผ ๊ตฌ์ฑํ ๋ ํ๋ฉด ๋ฐฐ์น๋ ๋์์ธ์ ์ธ ์์๋ฅผ
ํํํ๋ ํ๊ณ๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ๊ฐ๋ฐ๋ ์ธ์ด์ด๋ค.
์์ ์๋ ํ
์ด๋ธ์ ์ด์ฉํด ์นํ์ด์ง ๋ ์ด์์์ ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ด ์์๋ค.
ํ์ง๋ง ์์ฆ์ ์น ํ์ค๊ณผ ์น ํ์ด์ง์ ๋ํ ์๋งจํฑ(Semantic) ์์๊ฐ ๋๋๋๋ฉด์
ํ ์ด๋ธ์ ์ฌ์ฉํ ๋ ์ด์์ ๊ธฐ๋ฒ์ ๋ ์ด์ ์ฌ์ฉํ์ง ์๋๋ค.
๋ํ ํ ์ด๋ธ ํ๊ทธ๋ฅผ ์ด์ฉํ ๊ธฐ๋ฒ์ ํ์ด์ง ๋ ์ด์์์ ๋ณ๊ฒฝํ ๋ ๋ง์ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ด ํ์ํ๊ฑฐ๋
์์ ๋ค์ ๋ง๋ค์ด์ผ ํ๋ ์ํฉ์ด ๋น๋ฒํ ๋ฐ์ํ์ผ๋ HTML5์ CSS๋ฅผ ์ด์ฉํ ๋ ์ด์์ ๊ธฐ๋ฒ์
HTML ํ๊ทธ๋ฅผ ์์ ํ์ง ์๊ณ CSS ์ฝ๋ ์์ ๋ง์ผ๋ก ์๋ก์ด ๋ ์ด์์์ ์ฝ๊ฒ ์ ์ฉ ํ ์ ์๋ ์ฅ์ ์ ๊ฐ์ง๊ณ ์๋ค.
HTML์ด ๋ฌธ์์ ๊ตฌ์กฐ(ํ)๋ฅผ ์ ์ํ๋ค๋ฉด CSS๋ ๋ฌธ์์ ๋์์ธ์ ์ธ ์์๋ฅผ ์ ์(ํํ)ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
2.3 XML(eXtensible Markup Laguage)
ํ์ฅ ๊ฐ๋ฅํ ๋งํฌ์
์ธ์ด๋ผ๋ ๋จ์ด์ ์๋ฏธ์์ ์ ์ ์๋ฏ์ด ๊ธฐ์กด์ ์กด์ฌํ์ง ์๋
์๋ก์ด ๋งํฌ์ ์ธ์ด๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํ ํ์ค์ด๋ค.
HTML์ ์ด๋ฏธ ์ ์๋ ํ๊ทธ๋ง์ ์ฌ์ฉํ์ฌ ๋ฌธ์๋ฅผ ์์ฑํด์ผ ํ์ง๋ง
XML์ ์ ํด์ง ํ๊ทธ๊ฐ ์๊ธฐ ๋๋ฌธ์ ํน์ ๋จ์ฒด๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ์๋ก์ด ํ๊ทธ๋ฅผ ์ ์ํ์ฌ ์ฌ์ฉํ๋ค.
๋ํ XML์ ํ๋ฉด์ ์ด๋ป๊ฒ ํ์ํ ์ง์ ๊ด์ฌ์ ๋์ง ์๊ณ ํ๊ทธ์ ์ํด ๋ฐ์ดํฐ์ ํน์ ์๋ฏธ๋ฅผ
๋ถ์ฌํจ์ผ๋ก์จ ๊ตฌ์กฐํ๋ ๋ฌธ์๋ฅผ ์์ฑํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ๋ชฉ์ ์ผ๋ก ์ค๊ณ๋ ๋งํฌ์ ์ธ์ด์ด๋ค.
2.4 Javascript
๋ท์ค์ผ์ดํ ์ปค๋ฎค๋์ผ์ด์
์ฆ์ฌ์ ์ฌ๋ง์ดํฌ๋ก์์คํ
์ฆ์ฌ๊ฐ ํจ๊ป ๊ฐ๋ฐํ ์น๋ธ๋ผ์ฐ์ ์์ ์คํ๋๋
์คํฌ๋ฆฝํธ ์ธ์ด๋ก 1995๋ ์ ๋ค์ค์ผ์ดํ 2.0์ ํ์ฌ๋๊ณ 1996๋ IE 3.0์ ํ์ฌ๋ ์ดํ
์น๋ธ๋ผ์ฐ์ ํ์ค์คํฌ๋ฆฝํธ ์ธ์ด๋ก ์ ์ฐฉ๋์์ผ๋ฉฐ ํ์ฌ๋ ๋ชจ๋ ์ฃผ์ ์น๋ธ๋ผ์ฐ์ ์์ ์ง์ํ๋ ํต์ฌ ์คํฌ๋ฆฝํธ ์ธ์ด์ด๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์ฌ๋ง์ดํฌ๋ก์์คํ
์ฆ์ ํจ๊ป ๊ฐ๋ฐ๋ ์ธ์ด์ด๊ธฐ ๋๋ฌธ์ ์ฌ๋ง์ดํฌ๋ก์์คํ
์ฆ๊ฐ ๊ฐ๋ฐํ
์๋ฐ์ ์์ฃผ ๋ฐ์ ํ ๊ด๊ณ๊ฐ ์๋ ๊ฒ์ฒ๋ผ ์คํด(?)๋ฅผ ํ๊ณ ์๋ ์ฌ๋๋ค์ด ์๋๋ฐ ์๋ฐ์คํฌ๋ฆฝํธ์ ์๋ฐ
๋ ๋ฌธ๋ฒ์ด ์ฝ๊ฐ ๋ฎ์ ๊ฒ๊ณผ ๋ ๋ค ์น๋ธ๋ผ์ฐ์ ์์ ์คํ ๋ ์ ์๋ค๋ ๊ณตํต์ ์ด ์๊ธฐ ํ์ง๋ง
์ด ๋ ์ธ์ด๋ ์ ํ ๊ด๋ จ์ด ์๋ ์ธ์ด์ด๋ค.
์ด์ ์น ํ์ค์ธ HTML5์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ HTML5์ API๋ฅผ ๋ค๋ฃจ๋ ํต์ฌ ์ธ์ด๋ก ์๋ฆฌ๋งค๊น ํ์๋ค.
์ค๋๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ธฐ์ ๊ท๊ฒฉ ํ์ค์
์ ๋ฝ์ปดํจํฐ์ ์กฐ์ํํ(ECMA, European Computer Manufactures Association)์์ ๋ด๋นํ๊ณ ์์ผ๋ฉฐ
์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ค ๋ช
์นญ์ ECMAScript๋ผ๊ณ ๋ถ๋ฅธ๋ค.
1997๋
ECMAScript์ ์ดํ์ด ์ ์ ๋ ํ ECMAScript์ ์ฝ์์ธ ‘ES’์ ํ ๋ฒํธ๋ฅผ ๋ถ์ฌ ‘ES2’,
‘ES3’์ ๊ฐ์ด ๊ตฌ๋ถํ๋๋ฐ ์ต๊ทผ์๋ ECMAScript๊ฐ 1๋
๋ง๋ค ์๋ก์ด ๋ฒ์ ์ผ๋ก ์
๊ทธ๋ ์ด๋๋๋ฉด์
‘ES5’, ‘ES6’์ ๊ฐ์ด ๋ถ๋ฅด์ง ์๊ณ ECMAScript 2015(ES6)์ ๊ฐ์ด ๋ฒ์ ์ด ์ ์ ๋ ์ฐ๋๋ฅผ ์ฌ์ฉํด
๊ณต์ ๋ช ์นญ์ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ๋ณ๊ฒฝ๋์๋ค.
์ฐธ๊ณ ๋ก 2015๋ ์ ์๋ก์ด ๋ฌธ๋ฒ๊ณผ ๊ฐ๋ ์ด ๋ง์ด ์ถ๊ฐ๋์ด ๋ฒ์ ์ด ๋ง๋ค์ด์ก๋๋ฐ
๊ทธ๋์ ECMAScript 2015๋ฅผ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ผ๊ณ ์ง์นญํ๋ ๊ฒฝ์ฐ๋ ์์ผ๋ฉฐ
์ค๋๋ ๋ชจ๋ ์น ๋ธ๋ผ์ฐ์ ๋ค์ ๊ฑฐ์ ๋๋ถ๋ถ ์ด ECMAScript 2015๋ฅผ ์ง์ํ๊ณ ์๋ค.
2.5 jQuery
์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(jQuery, Prototype, dojo) ์ค์ ํ๋๋ก 2006๋
์กด ๋ ์์ ์ํด ๊ณต์์ผ๋ก
์๊ฐ ๋์์ผ๋ฉฐ ํด๋ผ์ด์ธํธ ์คํฌ๋ฆฝํธ ์ธ์ด ์ฆ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋จ์ํํ์ฌ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก
์ค๊ณ๋ ๋ธ๋ผ์ฐ์ ํธํ์ฑ(ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ง)์ด ์์ฃผ ๋ฐ์ด๋ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
2.6. node.js
์น ๊ฐ๋ฐ์ ํฌ๊ฒ ํ๋ฐํธ์๋(Front-end) ๊ธฐ์ ๊ณผ ๋ฐฑ์๋(Back-end) ๊ธฐ์ ๋ก ๋๋๋ค.
ํ๋ฐํธ์๋ ๊ธฐ์ ์ ์น๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์ฌ์ฉ์๊ฐ ๋ณผ ์ ์๋
์นํ์ด์ง ๋์์ธ์ด๋ ๋ฒํผ ๊ธฐ๋ฅ ๋ฑ์ ๊ตฌํํ๋ ๊ธฐ์ ์ ์๋ฏธํ๋ค.
์ด์ ๋ฐํด ๋ฐฑ์๋ ๊ธฐ์ ์ ์ฌ์ฉ์๊ฐ ์ง์ ๋์ผ๋ก ๋ณผ ์ ์๊ณ ์๋ฒ ์ชฝ์ ์จ๊ฒจ์ ธ ์๋ ๊ธฐ์ ์ด๋ค.
์ด ๊ธฐ์ ์ ์น๋ธ๋ผ์ฐ์ ๊ฐ ์๋ ์๋ฒ์์ ์คํ๋๋ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ ๋ก ์ธํฐ๋ท์ ํตํด ์ฌ์ฉ์๊ฐ
์์ฒญํ๋ฉด ๊ทธ ์์ฒญ์ ๋ฐ๋ผ์ ์๋ฒ์์ ๋์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ธฐ์ ์ ์๋ฏธํ๋ค.
๊ทธ๋์ ํ๋ก ํธ์๋ ๊ธฐ์ ์ ํ๋ฉด ๋จ ๊ธฐ์ ํน์ ํด๋ผ์ด์ธํธ ์ฌ์ด๋(Client Side) ๊ธฐ์ ์ด๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ ๋ฐฑ์๋ ๊ธฐ์ ์ ์๋ฒ ๋จ
ํน์ ์๋ฒ ์ฌ์ด๋(Server Side)๊ธฐ์ ์ด๋ผ ๋ถ๋ฅธ๋ค.
์ฐ๋ฆฌ๊ฐ ์์์ ์์๋ณธ HTML, CSS, JavaScript, jQuery ๋ฑ์ด ๋ํ์ ์ธ ํ๋ฐํธ์๋ ๊ธฐ์ ์ด๋ฉฐ,
DB๋ ์๋ฒ๋ฅผ ๋ค๋ฃจ๋ ์๋ฐ ์น ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ ์ธ JSP, Servlet, SpringFramework ๋ฑ์ด ์์ผ๋ฉฐ
์๋ฐ ์ธ์๋ PHP, Python์ Django์ Flask, asp.net ๋ฑ์ด ๋ฐ๋ก ๋ฐฑ์๋๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ์ ์ด๋ค.
์์์๋ ์ธ๊ธํ ๊ฒ์ฒ๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ ํ๋ฐํธ์๋์์ ์ฃผ๋ก ์ฌ์ฉ๋ ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์๋ค.
ํ์ง๋ง node.js๊ฐ ๋ฑ์ฅํ๋ฉด์ ์ง๊ธ์ ๋ฐฑ์๋์ ํ๋ฐํธ์๋ ๋ชจ๋์์ ์ฌ์ฉ๋๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ๋์๋ค.
์ด์ ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ ์น๋ธ๋ผ์ฐ์ ์์๋ง ์ฌ์ฉํ ์ ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ผ๋ฉฐ ์ฌ๋ฌ ๋ค๋ฅธ ํ๊ฒฝ์
์ ์ฌ์ฉํ ์ ์๋๋ก ๋ค์ํ ์๋๊ฐ ์์์ผ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์คํ ์๋ ๋ฌธ์ ๋ก ํฐ ํธ์์ ์ป์ง ๋ชป
ํ๋ค๊ฐ 2008๋
๊ตฌ๊ธ์ด ํฌ๋กฌ์ V8 ์์ง์ ์คํ ์์ค๋ก ๊ณต๊ฐํ๋ฉด์ ์๋ฐ์คํฌ๋ฆฝํธ๋ ์๋กญ๊ฒ ๋์ฝํ
๊ธฐํ๋ฅผ ๋ง์ดํ๊ฒ ๋๋ค. V8 ์์ง์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง๊ณผ๋ ๋ค๋ฅด๊ฒ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๋งค์ฐ ๋น ๋ฅด๊ฒ ๋์
ํ ์ ์๋ ์คํํ๊ฒฝ์ ์ ๊ณตํ์๋ค. ์ด๋ ๊ฒ ์๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ 2009๋
์ ๋ผ์ด์ธ ๋ฌ(Ryan Dahl)
์ ์ํด์ ํฌ๋กฌ์ V8 ์์ง์์ ์คํ๋๋ node.js๊ฐ ์ธ์์ ๊ณต๊ฐ๋์๋ค.
node.js๋ ํฌ๋กฌ V8 ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ผ๋ก ๋น๋ ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐํ์์ด๋ค. ๋ค์ ๋งํด node.js๋
์๋ฐ์คํฌ๋ฆฝํธ๋ก ์์ฑ๋ ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์๋ ์คํํ๊ฒฝ์ด๋ฉฐ node.js๋ฅผ ์ด์ฉํ๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ
๋ฅผ ์น๋ธ๋ผ์ฐ์ ๊ฐ ์๋ ๋ค๋ฅธ ์ปดํจํฐ ํ๊ฒฝ์์ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ค.
2.7 React
๋ฆฌ์กํธ๋ ๋ฉํ(๊ตฌ ํ์ด์ค๋ถ)์์ ๊ฐ๋ฐํ ์คํ ์์ค ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ด๋ค.
๋ฆฌ์กํธ๋ UI ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ฑ๊ธ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ (SPA, Single Page Application)์
UI(User Interface)๋ฅผ ์์ฑํ๋๋ฐ ํนํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
๋ฆฌ์กํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ HTML์ ํฌํจํ๋ JSX(JavaScript XML)์ด๋ผ๋ ๊ฐ๋จํ ๋ฌธ๋ฒ๊ณผ
๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ(One-way Data Binding)์ ์ฌ์ฉํ๊ณ ์๋ค.
๋ํ ๊ฐ์ ๋(Virtual DOM)์ด๋ผ๋ ๊ฐ๋ ์ ์ฌ์ฉํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ํผํฌ๋จผ์ค๋ฅผ ์ต์ ํํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
๋ํ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ํ์ผ๋ก ๊ฐ๋ฐํ๊ธฐ ๋๋ฌธ์ ์์ฐ์ฑ์ด ๋์ ์์ฆ ๋ง์ ์ธ๊ธฐ๊ฐ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
2.8 Ajax(Asychronous Javascript and XML)
์๋ฒ์ ํต์ ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฒ์ ํตํ์ด Ajax๋ผ ์ผ์ปซ๋๋ค.
์ด Ajax๋ XMLHttpRequest ๊ฐ์ฒด๋ฅผ ์ด์ฉํด ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ํต์ ํ๋ ๊ธฐ๋ฒ์ผ๋ก
๋๊ธฐ์, ๋น๋๊ธฐ์์ด ์์ผ๋ฉฐ ๊ธฐ๋ณธ์ ์ผ๋ก Ajax๋ฅผ ๊ตฌํํ๋ ๊ฒ์ ๋น๋๊ธฐํต์ ๋ฐฉ์์ ์๋ฏธํ๋ค.
XMLHttpRequest๋ ์๋ฒ์ ํต์ ์ ํ๊ฑฐ๋ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ์ด์ฉํ๋ ๊ฐ์ฒด๋ฅผ ํตํ์ด
XMLHttpRequest๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์์ ์ Ajax ํ๋ก๊ทธ๋๋ฐ์ ๊ตฌํํ ๋ ์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ง์ ์ฌ์ฉํ
์์ง๋ง ์ค๋๋ ์๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋ณด๋ค ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ์ง์ํ๋ jQuery๋ผ๋ ๋ผ์ด๋ธ๋ฌ
๋ฆฌ๋ฅผ ์ฌ์ฉํด ๋ณด๋ค ๊ฐํธํ๊ฒ Ajax๋ฅผ ๊ตฌํํ ์ ์๋ค.
2.9 ์น์ฑ, ๋ค์ดํฐ๋ธ์ฑ, ํ์ด๋ธ๋ฆฌ๋์ฑ
์น ์ฑ์ ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์ ์ํ๋ ๋ชจ๋ฐ์ผ ์น ์ดํ๋ฆฌ์ผ์ด์
์ ์ผ์ปซ๋ ๋ง์ด๋ฉฐ,
๋ค์ดํฐ๋ธ ์ฑ์ ์ค๋งํธํฐ OSํ๊ฒฝ์์ ์ ๊ณตํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ SDK๋ฅผ ์ด์ฉํด ์ ์๋ ์ฑ์ผ๋ก
iOS๋ Object-C, ์๋๋ก์ด๋๋ Java ๋ฑ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์ ์๋ ์ฑ์ ๋งํ๋ค.
ํ์ด๋ธ๋ฆฌ๋ ์ฑ์ ์น์ฑ + ๋ค์ดํฐ๋ธ ์ฑ์๊ฒฐํฉ๋ ํํ๋ก ๋จผ์ ์น์ฑ ํํ๋ก ๊ฐ๋ฐํ ํ
์คํ์์ค ํฌ๋ก์ค ํ๋ ์์ํฌ๋ฅผ ์ด์ฉํ์ฌ ๋ค์ดํฐ๋ธ ์ฑ ํํ๋ก ๋ณํ๋ ์ฑ์ ๋งํ๋ค.
๊ทธ ๋์ ๋ง์ ํ์ด๋ธ๋ฆฌ๋ ์ฑ ํ๋ ์์ํฌ๊ฐ ์์์ผ๋ฉฐ ์ต๊ทผ์ ๋ง์ด ์ฌ์ฉํ๋ ํ๋ ์์ํฌ์๋
๋ฉํ์์ ๊ฐ๋ฐํ React Native, ์ต๊ทค๋ฌ js์ Vue๊ฐ ๊ฒฐํฉ๋ ํํ์ธ IONIC, ๊ตฌ๊ธ์์ ๊ฐ๋ฐํ Flutter ๊ทธ๋ฆฌ๊ณ ๋ํ ๋น(Nitobi)๊ฐ ๊ฐ๋ฐํ์ฌ ์ด๋๋น ์์คํ ์ฆ๊ฐ ์ธ์ํ ํฐ๊ฐญ์ด ์์ผ๋ฉฐ ์ด ํฐ๊ฐญ์ ์คํ ์์ค๋ก ๊ณต๊ฐํ ์ฝ๋๋ฐ(Cordova)๊ฐ ์๋ค.