๋„ค์ด๋ฒ„ ๋ถ€์ŠคํŠธ์ฝ”์Šค/[๋ถ€์ŠคํŠธ์„œํฌํ„ฐ์ฆˆ3๊ธฐ]์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์‹œ์ž‘

[๋ถ€์ŠคํŠธ์ฝ”์Šค]์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์‹œ์ž‘(UI์™€ API, ํ”„๋กœ์ ํŠธ๋ฅผ ๋งˆ์น˜๋ฉฐ)

mmin.h 2021. 2. 16. 21:20

์•ˆ๋…•ํ•˜์„ธ์š” ๋ถ€์Šคํ„ฐ์ฝ”์Šค 3๊ธฐ ์„œํฌํ„ฐ์ฆˆ ํ—ˆ๋ธŒ์ž…๋‹ˆ๋‹ค. ๐ŸŒฟ

๋ถ€์Šคํ„ฐ์ฝ”์Šค๋ž€?

์ปค๋„ฅํŠธ์žฌ๋‹จ์€ ๋„ค์ด๋ฒ„๊ฐ€ ์„ค๋ฆฝํ•œ ๋น„์˜๋ฆฌ ๊ต์œก ์žฌ๋‹จ์ž…๋‹ˆ๋‹ค.
์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž ์–‘์„ฑ ๊ต์œก ํ”„๋กœ๊ทธ๋žจ, ๋ถ€์ŠคํŠธ์ฝ”์Šค์™€ ํ•จ๊ป˜
๋‹น์‹ ์˜ ๊ฐœ๋ฐœ ์ปค๋ฆฌ์–ด๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์„ธ์š”!

 

์ œ ํฌ์ŠคํŒ…์€ ๊ฐ•์˜ ๋‚ด ์ƒ๊ฐํ•ด๋ณด๊ธฐ์™€ ์ˆ˜์—…์—์„œ ๋‹ค๋ฃจ๋Š” ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ํฌ๋กฌํ™”๋ฉด์—์„œ ํ™•์ธ ํ•ด๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ จ๋œ ๊ฐœ๋…๊ณผ ๊ฐ•์˜๋Š” ํ•จ๊ป˜ ์˜ฌ๋ ค๋“œ๋ฆฌ๋Š” ๋งํฌ์—์„œ ํ™•์ธํ•ด๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

www.boostcourse.org/cs124/joinLectures/52258

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์‹œ์ž‘

๋ถ€์ŠคํŠธ์ฝ”์Šค ๋ฌด๋ฃŒ ๊ฐ•์˜

www.boostcourse.org


UI์™€ API

UI๋Š” User Interface์˜ ์•ฝ์ž์ž…๋‹ˆ๋‹ค. API๋Š” Application Programming Interface์˜ ์•ฝ์ž์ด์ฃ . ์ด ๋‘˜์˜ ๊ณตํ†ต์ ๊ณผ ์ฐจ์ด์ ์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›Œ๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์–ด๋–ค ํŽ˜์ด์ง€์— ๋ฒ„ํŠผ์ด ํ•˜๋‚˜ ์žˆ๊ณ , ์ด ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๊ฒฝ๊ณ ์ฐฝ์ด ๋œจ๊ฒŒ ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ํ•ด ๋ด…์‹œ๋‹ค. ์ด ๋ฒ„ํŠผ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์›นํŽ˜์ด์ง€์˜ ์‚ฌ์šฉ์ž์ฃ . ์‚ฌ์šฉ์ž๋“ค์ด ์‹œ์Šคํ…œ์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด์„œ ์กฐ์ž‘ํ•˜๋Š” ์žฅ์น˜๋ฅผ UI๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

์ด์ œ ์ฝ”๋“œ๋ฅผ ๋ด…์‹œ๋‹ค. ์ด ๊ฒฝ๊ณ ์ฐฝ์€ ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ๊ฒƒ์ผ๊นŒ์š”? ๊ฒฝ๊ณ ์ฐฝ์˜ ํ…์ŠคํŠธ๋‚˜, ๊ฒฝ๊ณ ์ฐฝ์ด ๋œจ๋Š” ํƒ€์ด๋ฐ์€ ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ๊ฒƒ์ด์ง€๋งŒ, ์šฐ๋ฆฌ๋Š” ๊ฒฝ๊ณ ์ฐฝ์„ ์‹ค์ œ๋กœ ๋„์šฐ๊ธฐ ์œ„ํ•ด์„œ๋Š” alert๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ์ฃ . alert๋ผ๋Š” ์ด ํ•จ์ˆ˜๋Š” ์›น๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋งŒ๋“  ์‚ฌ๋žŒ๋“ค์ด ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ์ด alert๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์„œ ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ์ด์ฃ . ์ด๋ ‡๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์ด ์‚ฌ์šฉํ•˜๋Š” ์กฐ์ž‘ ์žฅ์น˜๋“ค์„ API๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์ฆ‰, alert๋Š” API์ธ ๊ฒƒ์ด์ฃ 

<input type="button" value="Click me" onclick ="alert('Hello world')"> 

์ด๋Ÿฌํ•œ UI์™€ API๋ผ๋Š” ๊ฐœ๋…์€ Javascript ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ์ ์šฉ๋˜๋Š” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” API๋ฅผ ์‘์šฉํ•˜๊ณ  ๊ฒฐํ•ฉํ•ด์„œ ์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ƒ๊ฐํ•ด๋ณด๊ธฐ

UI์™€ API๋Š” ์–ด๋–ค ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์„๊นŒ์š”?

 

I/O์žฅ์น˜๋ฅผ ํ™œ์šฉํ•ด UI๋ผ๋Š” ๋งค์ฒด๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค, ์›น๊ณผ ์†Œํ†ตํ•˜๊ณ  JVM ํ˜น์€ ํ”„๋กœ๊ทธ๋žจ์€ API๋ฅผ ๋งค์ฒด๋กœ ํ•˜์—ฌ ์†Œํ†ตํ•˜๊ฒŒ ๋œ๋‹ค. 
UI ์™€ API๋Š” ์–ด๋– ํ•œ ๊ฒƒ์„ ์ด์–ด์ฃผ๋Š” ํ†ต๋กœ์ด์ง€๋งŒ ๊ทธ๊ฒƒ์ด ๋ˆ„๊ตฌ์—๊ฒŒ ๋ณด์—ฌ์ง€๋Š”๊ฐ€๊ฐ€ ๋‹ค๋ฅด๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

 


์ž์‹ ์˜ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ํ•ด๋ณด๊ธฐ

https://www.boostcourse.org/cs124/lecture/147575/

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์‹œ์ž‘

๋ถ€์ŠคํŠธ์ฝ”์Šค ๋ฌด๋ฃŒ ๊ฐ•์˜

www.boostcourse.org

์ด ์ˆ˜์—…์„ ๋“ฃ๊ณ  ๋‚˜์„œ ์—ฌ๋Ÿฌ๋ถ„๋“ค์ด ํ•ด์•ผ ํ•  ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ž์‹ ๋งŒ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•ด ๋ณด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์ฃผ์˜ํ•ด์•ผ ํ•  ๋ช‡ ๊ฐ€์ง€ ์ ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ด…์‹œ๋‹ค.

๋จผ์ €, ์ž์‹ ์ด ๋ฐฐ์šด ๋ชจ๋“  ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋ณด๋‹ค๋Š” ํ•„์ˆ˜์ ์ธ ์ตœ์†Œํ•œ์˜ ๋„๊ตฌ๋งŒ ๊ฐ€์ง€๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด ๋ณด์„ธ์š”. ์ˆœ์„œ์— ๋”ฐ๋ผ์„œ ์‹คํ–‰๋˜์–ด์•ผ ํ•˜๋Š” ๋ช…๋ น๋“ค์ด ์‹คํ–‰๋˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ์ด ์ตœ์†Œ์˜ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ๋งŒ ์‚ฌ์šฉํ•˜๋‹ค๊ฐ€ ํ•œ๊ณ„์— ๋ถ€๋”ชํ˜”์„ ๋•Œ, ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ, ํ•จ์ˆ˜, ๊ฐ์ฒด ๋“ฑ์˜ ๊ฐœ๋…๋“ค์„ ํ™œ์šฉํ•ด๋ณด์„ธ์š”.

์›น ๊ฐœ๋ฐœ๊ณผ ๊ด€๋ จ๋œ ๊ฒ€์ƒ‰์–ด

ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ์—ฌ๋Ÿฌ ๊ฐœ๋…๋“ค์„ ํ™œ์šฉํ•˜๋‹ค๋ณด๋ฉด ๋‹ค์‹œ ํ•œ๊ณ„์— ๋ถ€๋”ชํžˆ๊ฒŒ ๋  ๊ฒ๋‹ˆ๋‹ค. ๊ทธ ๋•Œ์—๋Š” ์—ฌ๋Ÿฌ๋ถ„๋“ค์ด ์ƒˆ๋กญ๊ฒŒ ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๋•Œ ๋„์›€์ด ๋ ๋งŒํ•œ ์—ฌ๋Ÿฌ ๊ฒ€์ƒ‰์–ด๋ฅผ ์•Œ์•„๋ด…์‹œ๋‹ค.

๋จผ์ € ํƒœ๊ทธ๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ์ž์‹ ํƒœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ์—๋Š” document๋ผ๋Š” ๊ฐ์ฒด๋ฅผ ์‚ดํŽด๋ณด์„ธ์š”. ๊ทธ๋ž˜๋„ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋ฉด DOM ๊ฐ์ฒด์— ๋Œ€ํ•ด์„œ๋„ ์‚ดํŽด๋ณด์„ธ์š”.

๋งŒ์ผ ์›น๋ธŒ๋ผ์šฐ์ € ์ž์ฒด๋ฅผ ์ œ์–ดํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ, ์˜ˆ๋ฅผ ๋“ค๋ฉด ์›นํŽ˜์ด์ง€์˜ ์ฃผ์†Œ๋ฅผ ์•Œ์•„๋‚ธ๋‹ค๊ฑฐ๋‚˜, ์ฐฝ์„ ์—ด๊ฑฐ๋‚˜ ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” windows ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๋‚˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์ฐพ์•„๋ณด์„ธ์š”.

์›นํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ๊ณ ์นจํ•˜์ง€ ์•Š๊ณ ๋„ ์ •๋ณด๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ajax๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์„ธ์š”. ๋ฐ˜๋Œ€๋กœ ์›นํŽ˜์ด์ง€๊ฐ€ ์ƒˆ๋กœ๊ณ ์นจ๋˜์–ด๋„ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋„๋ก ๋งŒ๋“ค๊ณ  ์‹ถ์œผ๋ฉด cookie์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›Œ๋ณด์„ธ์š”.

์ธํ„ฐ๋„ท์ด ๋Š๊ฒจ๋„ ๋™์ž‘ํ•˜๋Š” ์›นํŽ˜์ด์ง€๋ฅผ ์œ„ํ•ด์„œ๋Š” offline web application์„ ์ฐพ์•„๋ณด์„ธ์š”.

ํ™”์ƒ ํ†ต์‹  ์›น ์•ฑ์„ ๋งŒ๋“ค๊ณ  ์‹ถ์„ ๋•Œ์—๋Š” webRTC๋ฅผ ์ฐพ์•„๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์Œ์„ฑ์„ ์ธ์‹ํ•˜๊ฑฐ๋‚˜ ์Œ์„ฑ๊ณผ ๊ด€๋ จ๋œ ๊ฒƒ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ์—๋Š” speech๋กœ ์‹œ์ž‘๋˜๋Š” API๋“ค์„ ์‚ดํŽด๋ณด์„ธ์š”.

3์ฐจ์› ๊ทธ๋ž˜ํ”ฝ์„ ์ด์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด webGL, ๊ฐ€์ƒํ˜„์‹ค์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด webVR์— ๋Œ€ํ•ด์„œ ์ฐพ์•„๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค

์ƒ๊ฐํ•ด๋ณด๊ธฐ

์ด์ œ ์—ฌ๋Ÿฌ๋ถ„๋“ค์ด ๊ฐ•์˜๋ฅผ ํ†ตํ•ด์„œ ๋ฐฐ์šด ๋‚ด์šฉ์„ ๊ฐ€์ง€๊ณ  HTML+Javascript+CSS๋ฅผ ํ™œ์šฉํ•œ ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ฒŒ ๋  ๊ฒ๋‹ˆ๋‹ค. ์–ด๋–ค ์›น ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์œผ์‹ ๊ฐ€์š”?

 

๋‚ด๊ฐ€ ๋งŒ๋“ค์–ด๋ณด๊ณ  ์‹ถ์€๊ฑด ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ์ง€๋งŒ ์ง€๊ธˆ ๋‹น์žฅ์€ ๋‚ด๊ฐ€ ์“ฐ๊ณ  ์‹ถ์€ ๊ฒƒ์„ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค. ์Œ... ๋ฝ€๋ชจ๋„๋กœ ํƒ€์ด๋จธ๊ฐ€ ์ƒ๊ฐ๋ณด๋‹ค ๊ฐ€๊ฒฉ์ด ๋ฐ”์‹ผ๋ฐ ์ด๊ฑธ ์›น์œผ๋กœ ๋งŒ๋“ค์–ด๋ณด๋Š”๊ฑด ์–ด๋–จ๊นŒ? ๋‚จ์€ ์‹œ๊ฐ„์€ tab title์— ๋„์šฐ๋„๋กํ•˜๊ณ  ์•Œ๋žŒ์„ ์ฃผ๊ฑฐ๋‚˜ ์˜คํ”„๋ผ์ธ์œผ๋กœ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ฉด ์ข‹์„ ๊ฒƒ์ด๋‹ค. 

 


๊ฐ•์˜๋ฅผ ๋งˆ์น˜๋ฉฐ ๋Š๋‚€์ 

์ง€๊ธˆ๊นŒ์ง€ ์•ฝ ํ•œ๋‹ฌ๊ฐ„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ˆ˜์—…ํ•ด๋ณด์•˜๋‹ค. ์‚ฌ์‹ค ์ด ์ˆ˜์—…์„ ๋“ฃ๊ณ  ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ๋งˆ์Šคํ„ฐ ํ–ˆ๋‹ค๊ณ  ํ•˜๋ฉด ์•„๋งˆ ์ฝ”๋”ฉ ์ฒœ์žฌ์ผ ๊ฒƒ์ด๋‹ค. ๋ถ€์ŠคํŠธ์ฝ”์Šค์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์‹œ์ž‘์€ ๋ง ๊ทธ๋Œ€๋กœ "์‹œ์ž‘"์ด๋‹ค. 

 

์™œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํ•„์š”ํ•œ์ง€, ๋ฌด์—‡์„ ๊ณต๋ถ€ํ•ด์•ผํ•˜๋Š”์ง€์™€ ๊ฐ™์ด ๋ฐฉํ–ฅ์„ฑ์„ ์žก์•„์ฃผ๊ณ  ์˜ฌ๋ฐ”๋ฅธ ํ•™์Šต๋ฐฉ๋ฒ•๊ณผ ํ˜ธ๊ธฐ์‹ฌ์„ ์ œ์‹œํ•ด์ค€๋‹ค. ์‚ฌ์‹ค ์ƒํ™œ์ฝ”๋”ฉ๋‹˜์˜ ์ˆ˜์—…์€ ์ฝ”๋”ฉ์„ ํ•œ๋ฒˆ์ด๋ผ๋„ ๊ณต๋ถ€ํ•ด๋ณธ ์‚ฌ๋žŒ์€ ๋‹ค ์•Œ๋งŒํผ ์œ ๋ช…ํ•œ ์ˆ˜์—…์ด๋‹ค. ๋ฌด๋ฃŒ์ด์ง€๋งŒ ์•Œ๊ธฐ์‰ฝ๊ณ  ์งง์€ ๊ฐ•์˜ ๋•๋ถ„ ์•„๋‹ˆ์˜€์„๊นŒ? ์ด๋ฒˆ ๋ฐฉํ•™ ๋ชฉํ‘œ์˜€๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐฐ์šฐ๊ธฐ๋ฅผ ์ด๋ ‡๊ฒŒ ๋งˆ์šฐ๋ฆฌ ํ•ด์„œ ์ข‹์•˜๋‹ค.

 

ํ•˜์ง€๋งŒ ์ด์ œ ์‹œ์ž‘์ด๋‹ˆ WEB UI ๊ณผ์ •์„ ๋‹ค ๋“ฃ๊ณ  ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋‚˜๋งŒ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•ด๋ด์•ผ๊ฒ ๊ตฐ ใ…Žใ…Ž


www.boostcourse.org/

 

๋‹ค ํ•จ๊ป˜ ๋ฐฐ์šฐ๊ณ  ์„ฑ์žฅํ•˜๋Š” ๋ถ€์ŠคํŠธ์ฝ”์Šค

๋ถ€์ŠคํŠธ์ฝ”์Šค(boostcourse)๋Š” ๋ชจ๋‘ ํ•จ๊ป˜ ๋ฐฐ์šฐ๊ณ  ์„ฑ์žฅํ•˜๋Š” ๋น„์˜๋ฆฌ SW ์˜จ๋ผ์ธ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.

www.boostcourse.org

github.com/hhhminme

 

hhhminme - Overview

๊พธ์ค€ํžˆ ๊ณต๋ถ€์ค‘์ธ ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž์ง€๋ง์ƒ hub@kakao.com. hhhminme has 12 repositories available. Follow their code on GitHub.