๐Ÿ’ป Frontend/HTML&CSS

Web์˜ ์—ญ์‚ฌ์™€ ์›น ํ‘œ์ค€์— ํ•„์š”ํ•œ ๊ธฐ์ˆ 

Kyle99 2024. 8. 7. 16:40

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)๊ฐ€ ์žˆ๋‹ค.