Notice
Recent Posts
Recent Comments
Link
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags more
Archives
Today
Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ „์ฒด ๊ธ€ (437)

JDevBlog

47. ์—๋Ÿฌ ์ฒ˜๋ฆฌ

47.1 ์—๋Ÿฌ ์ฒ˜๋ฆฌ์˜ ํ•„์š”์„ฑ ์—๋Ÿฌ_error๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ์—๋Ÿฌ๋Š” ์–ธ์ œ๋‚˜ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐœ์ƒํ•œ ์—๋Ÿฌ์— ๋Œ€ํ•ด ๋Œ€์ฒ˜ํ•˜์ง€ ์•Š๊ณ  ๋ฐฉ์น˜ํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์€ ๊ฐ•์ œ ์ข…๋ฃŒ๋œ๋‹ค. try...catch ๋ฌธ์„ ์‚ฌ์šฉํ•ด ๋ฐœ์ƒํ•œ ์—๋Ÿฌ์— ์ ์ ˆํ•˜๊ฒŒ ๋Œ€์‘ํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ๊ฐ•์ œ ์ข…๋ฃŒ๋˜์ง€ ์•Š๊ณ  ๊ณ„์†ํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ์ง์ ‘์ ์œผ๋กœ ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒํ•˜์ง€๋Š” ์•Š๋Š” ์˜ˆ์™ธ_exception ์ ์ธ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์˜ˆ์™ธ์ ์ธ ์ƒํ™ฉ์— ์ ์ ˆํ•˜๊ฒŒ ๋Œ€์‘ํ•˜์ง€ ์•Š์œผ๋ฉด ์—๋Ÿฌ๋กœ ์ด์–ด์งˆ ๊ฐ€๋Šฅ์„ฑ์ด ํฌ๋‹ค. 47.2 try..catch...finally ๋ฌธ ์˜ˆ์™ธ์ ์ธ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๋ฉด ์ฒซ๋ฒˆ์งธ, ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฐ’(null ๋˜๋Š” -1)์„ if ๋ฌธ์ด๋‚˜ ๋‹จ์ถ• ํ‰๊ฐ€ ๋˜๋Š” ์˜ต์…”๋„ ์ฒด์ด๋‹ ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด ํ™•์ธํ•ด์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๋‘๋ฒˆ์งธ, ์—๋Ÿฌ..

46. ์ œ๋„ˆ๋ ˆ์ดํ„ฐ์™€ async/await

46.1 ์ œ๋„ˆ๋ ˆ์ดํ„ฐ๋ž€? ES6์—์„œ ๋„์ž…๋œ ์ œ๋„ˆ๋ ˆ์ดํ„ฐ_generator๋Š” ์ฝ”๋“œ ๋ธ”๋ก์˜ ์‹คํ–‰์„ ์ผ์‹œ ์ค‘์ง€ํ–ˆ๋‹ค๊ฐ€ ํ•„์š”ํ•œ ์‹œ์ ์— ์žฌ๊ฐœํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์ˆ˜ํ•œ ํ•จ์ˆ˜๋‹ค. ์ œ๋„ˆ๋ ˆ์ดํ„ฐ์™€ ์ผ๋ฐ˜ ํ•จ์ˆ˜์˜ ์ฐจ์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1. ์ œ๋„ˆ๋ ˆ์ดํ„ฐ ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ์ž์—๊ฒŒ ํ•จ์ˆ˜ ์‹คํ–‰์˜ ์ œ์–ด๊ถŒ์„ ์–‘๋„ํ•  ์ˆ˜ ์žˆ๋‹ค. 2. ์ œ๋„ˆ๋ ˆ์ดํ„ฐ ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ์ž์™€ ํ•จ์ˆ˜์˜ ์ƒํƒœ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. 3. ์ œ๋„ˆ๋ ˆ์ดํ„ฐ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์ œ๋„ˆ๋ ˆ์ดํ„ฐ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 46.2 ์ œ๋„ˆ๋ ˆ์ดํ„ฐ ํ•จ์ˆ˜์˜ ์ •์˜ ์ œ๋„ˆ๋ ˆ์ดํ„ฐ ํ•จ์ˆ˜๋Š” function* ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•˜๋‚˜ ์ด์ƒ์˜ yield ํ‘œํ˜„์‹์„ ํฌํ•จํ•œ๋‹ค. ์ด๊ฒƒ์„ ์ œ์™ธํ•˜๋ฉด ์ผ๋ฐ˜ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๊ฐ™๋‹ค. ์• ์Šคํ„ฐ๋ฆฌ์Šคํฌ(*)์˜ ์œ„์น˜๋Š” function ํ‚ค์›Œ๋“œ์™€ ํ•จ์ˆ˜ ์ด๋ฆ„ ์‚ฌ์ด๋ผ๋ฉด ์–ด๋””๋“ ์ง€ ์ƒ๊ด€์—†๋‹ค. 46.3 ์ œ๋„ˆ๋ ˆ์ดํ„ฐ ..

45. ํ”„๋กœ๋ฏธ์Šค

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ํ•˜๋‚˜์˜ ํŒจํ„ด์œผ๋กœ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ „ํ†ต์ ์ธ ์ฝœ๋ฐฑ ํŒจํ„ด์€ ์ฝœ๋ฐฑ ํ—ฌ๋กœ ์ธํ•ด ๊ฐ€๋…์„ฑ์ด ๋‚˜์˜๊ณ  ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ์ค‘ ๋ฐœ์ƒํ•œ ์—๋Ÿฌ์˜ ์ฒ˜๋ฆฌ๊ฐ€ ๊ณค๋ž€ํ•˜๋ฉฐ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ๋„ ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค. ES6์—์„œ๋Š” ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๋˜ ๋‹ค๋ฅธ ํŒจํ„ด์œผ๋กœ ํ”„๋กœ๋ฏธ์Šค_Promise ๋ฅผ ๋„์ž…ํ–ˆ๋‹ค. ํ”„๋กœ๋ฏธ์Šค๋Š” ์ „ํ†ต์ ์ธ ์ฝœ๋ฐฑ ํŒจํ„ด์ด ๊ฐ€์ง„ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๋ฉฐ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ์‹œ์ ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. 45.1 ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์ฝœ๋ฐฑ ํŒจํ„ด์˜ ๋‹จ์  45.1.1 ์ฝœ๋ฐฑ ํ—ฌ ๋น„๋™๊ธฐ ํ•จ์ˆ˜ ๋‚ด๋ถ€์˜ ๋น„๋™๊ธฐ๋กœ ๋™์ž‘ํ•˜๋Š” ์ฝ”๋“œ๋Š” ๋น„๋™๊ธฐ ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋œ ์ดํ›„์— ์™„๋ฃŒ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๋น„๋™๊ธฐ ํ•จ์ˆ˜ ๋‚ด๋ถ€์˜ ๋น„๋™๊ธฐ๋กœ ๋™์ž‘ํ•˜๋Š” ์ฝ”๋“œ์—์„œ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์™ธ๋ถ€๋กœ ๋ฐ˜ํ™˜ํ•˜๊ฑฐ๋‚˜ ์ƒ์œ„ ์Šค์ฝ”ํ”„์˜ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋ฉด ๊ธฐ..

43. Ajax

43.1 Ajax ๋ž€? Ajax_Asynchronous JavaScript and XML ๋ž€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๊ณ , ์„œ๋ฒ„๊ฐ€ ์‘๋‹ตํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜์—ฌ ์›นํŽ˜์ด์ง€๋ฅผ ๋™์ ์œผ๋กœ ๊ฐฑ์‹ ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์„ ๋งํ•œ๋‹ค. Ajax๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ œ๊ณตํ•˜๋Š” Web API์ธ XMLHttpRequest ๊ฐ์ฒด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค. XMLHttpRequest๋Š” HTTP ๋น„๋™๊ธฐ ํ†ต์‹ ์„ ์œ„ํ•œ ๋ฉ”์„œ๋“œ์™€ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. Ajax์˜ ๋“ฑ์žฅ์€ ์ด์ „์˜ ์ „ํ†ต์ ์ธ ํŒจ๋Ÿฌ๋‹ค์ž„์„ ํš๊ธฐ์ ์œผ๋กœ ์ „ํ™˜ํ–ˆ๋‹ค. ์ฆ‰, ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์›นํŽ˜์ด์ง€์˜ ๋ณ€๊ฒฝ์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ์ „์†ก๋ฐ›์•„ ์›นํŽ˜์ด์ง€๋ฅผ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๋ถ€๋ถ„์€ ๋‹ค์‹œ ๋ Œ๋”๋งํ•˜์ง€ ์•Š๊ณ , ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์žˆ๋Š” ๋ถ€๋ถ„๋งŒ ํ•œ์ •์ ์œผ๋กœ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐฉ์‹์ด ๊ฐ€๋Šฅํ•ด..

42. ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

42.1 ๋™๊ธฐ ์ฒ˜๋ฆฌ์™€ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ 1. ํ•จ์ˆ˜ ์‹คํ–‰ ํ”„๋กœ์„ธ์Šค ํ•จ์ˆ˜ ํ˜ธ์ถœ → ํ•จ์ˆ˜์ฝ”๋“œ ํ‰๊ฐ€ → ํ•จ์ˆ˜ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ์ƒ์„ฑ ํ•จ์ˆ˜ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๊ฐ€ ์ฝœ ์Šคํƒ์— ํ‘ธ์‹œ๋˜์–ด ํ•จ์ˆ˜ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋œ๋‹ค. ํ•จ์ˆ˜ ์ฝ”๋“œ ์‹คํ–‰์ด ์ข…๋ฃŒ๋˜๋ฉด ์ฝœ ์Šคํƒ์—์„œ ํŒ ๋˜์–ด ์ œ๊ฑฐ๋œ๋‹ค. ํ•จ์ˆ˜์˜ ์‹คํ–‰ ์ˆœ์„œ๋Š” ์ด ์ฝœ ์Šคํƒ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ๋‹จ ํ•˜๋‚˜์˜ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ์Šคํƒ(์ฝœ ์Šคํƒ)์„ ๊ฐ–๋Š”๋‹ค. 2. ๋™๊ธฐ ์ฒ˜๋ฆฌ๋กœ ์ธํ•œ ๋ธ”๋กœํ‚น ํ˜„์ƒ ์ด์ฒ˜๋Ÿผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ํƒœ์Šคํฌ๋งŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ(single thread) ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฒ˜๋ฆฌ์— ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ํƒœ์Šคํฌ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ๋ธ”๋กœํ‚น(์ž‘์—…์ค‘๋‹จ) ํ˜„์ƒ์ด ๋ฐœ์ƒํ•œ๋‹ค. 3. ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๋งŒ์•ฝ ํƒ€์ด๋จธ ํ•จ์ˆ˜์ธ setTimeout ์„ ์ด์šฉํ•˜๋ฉด ์ดํ›„์˜ ํƒœ์Šคํฌ๋ฅผ ๋ธ”๋กœํ‚นํ•˜์ง€ ์•Š๊ณ  ๊ณง..

41. ํƒ€์ด๋จธ

41.1 ํ˜ธ์ถœ ์Šค์ผ€์ค„๋ง ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ๊ณผ Node.js ํ™˜๊ฒฝ์—์„œ ๋ชจ๋‘ ์ „์—ญ ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ๋กœ์„œ ํƒ€์ด๋จธ ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์ฆ‰, ํƒ€์ด๋จธ ํ•จ์ˆ˜๋Š” ํ˜ธ์ŠคํŠธ ๊ฐ์ฒด๋‹ค. 41.2 ํƒ€์ด๋จธ ํ•จ์ˆ˜ 41.2.1 setTimeout / clearTimeout setTimeout ํ•จ์ˆ˜๋Š” ์ƒ์„ฑ๋œ ํƒ€์ด๋จธ๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ์œ ํ•œ ํƒ€์ด๋จธ id๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. setTimeout ํ•จ์ˆ˜๊ฐ€ ๋ฐ˜ํ™˜ํ•œ ํƒ€์ด๋จธ id๋Š” ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์ธ ๊ฒฝ์šฐ ์ˆซ์ž์ด๋ฉฐ Node.js ํ™˜๊ฒฝ์ธ ๊ฒฝ์šฐ ๊ฐ์ฒด๋‹ค. setTimeout ํ•จ์ˆ˜๊ฐ€ ๋ฐ˜ํ™˜ํ•œ ํƒ€์ด๋จธ id๋ฅผ clearTimeout ํ•จ์ˆ˜์˜ ์ธ์ˆ˜๋กœ ์ „๋‹ฌํ•˜์—ฌ ํƒ€์ด๋จธ๋ฅผ ์ทจ์†Œํ•  ์ˆ˜ ์žˆ๋‹ค. 41.2.2 setInterval / clearInterval 41.3 ๋””๋ฐ”์šด์Šค์™€ ์Šค๋กœํ‹€ ๋””๋ฐ”์šด์Šค์™€ ์Šค๋กœํ‹€์€ ์งง์€ ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์œผ๋กœ ์—ฐ์†ํ•ด์„œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ..

40. ์ด๋ฒคํŠธ

40.1 ์ด๋ฒคํŠธ ๋“œ๋ฆฌ๋ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ํ˜ธ์ถœ๋  ํ•จ์ˆ˜๋ฅผ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ_event handler ๋ผ ํ•˜๊ณ , ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์˜ ํ˜ธ์ถœ์„ ์œ„์ž„ํ•˜๋Š” ๊ฒƒ์„ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋“ฑ๋ก์ด๋ผ ํ•œ๋‹ค. ์ด๋ฒคํŠธ์™€ ๊ทธ์— ๋Œ€์‘ํ•˜๋Š” ํ•จ์ˆ˜(์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ)๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ƒํ˜ธ์ž‘์šฉ_interaction ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด์ฒ˜๋Ÿผ ํ”„๋กœ๊ทธ๋žจ์˜ ํ๋ฆ„์„ ์ด๋ฒคํŠธ ์ค‘์‹ฌ์œผ๋กœ ์ œ์–ดํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์„ ์ด๋ฒคํŠธ ๋“œ๋ฆฌ๋ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ_event-driven programming ์ด๋ผ ํ•œ๋‹ค. 40.2 ์ด๋ฒคํŠธ ํƒ€์ž… 40.3 ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋“ฑ๋ก 40.3.1 ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ ๋ฐฉ์‹ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ ๊ฐ’์œผ๋กœ ํ•จ์ˆ˜ ํ˜ธ์ถœ๋ฌธ ๋“ฑ์˜ ๋ฌธ_statement ์„ ํ• ๋‹นํ•˜๋ฉด ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ๋“ฑ๋ก๋œ๋‹ค. ์ฃผ์˜ํ•  ์ ์€ ..