๋ณํ๋ค!๋๋ถ๋ถ์ ์ํํธ์จ์ด๋ ํ์ค์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์๋ฃจ์ ์ผ๋ก ๋ง๋ค์ด์ง๋ค.์ฌ๊ธฐ์์ ํ์ค์? ๋งค๋ฒ ๋ณํ๊ฒ ๋๋ค!๋น์ฐํ ํ์ค์ ๋ฌธ์ ๊ฐ ๋ฐ๋๋๊น, ํ์ค์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ํํธ์จ์ด๋ ๋ฐ๋์ด์ผ ํ๋ค!๊ทธ๋์! ์ํํธ์จ์ด๋ ๊ต์ฅํ ์์ฃผ , ๊ทธ๋ฆฌ๊ณ ์ง์์ ์ผ๋ก ๋ฐ๋๊ฒ ๋๋ค.๋น์ฐ
๐ฑ์ ์ ํ ์ฑํ ํด์ server๊ฐ ๋ฉ์์ง๋ฅผ ๋ฐ์ ๋ค,๋ฉ์์ง๋ฅผ ๊ฐ ์ฌ์ฉ์๋ค์๊ฒ ๋ณด๋ด๋ ๋ฐฉ์์ ์ฑํ ์ฑ ๋ง๋ค๊ธฐ~!๐ฒ ์๋ฒ ์์ฑ์ ์ฒ์์ด๋ค! ์๋ฒ๋จ์ด ์ด๋ป๊ฒ ๋์๊ฐ๋์ง ์์ฃผ ๊ฐ๋จํ๊ฒ ์ง๋ง ์์๋ณด๋ ๊ณผ์ ์ ์ดํด๋ณด๊ธฐ ์ํด ์ฑ์ ๋ง๋๋ ์๊ฐ์ ๊ฐ์ ธ๋ดค๋ค. (์์ฃผ ์ผ๋ถ๋ถ์ด๊ฒ ์ง๋ง..
๊ณต์ ๊ทธ๋ฆด๋๋ ํญ์ ์ค์ฌ์ ์ ๊ธฐ์ค์ผ๋ก ๊ณต์ x , y ๊ฐ์ ์ก๋๋ค. => ์ค์ฌ์ ์ด ๊ณต์ ์ค์ ์์น (ํ์ ์ )๋ฐ์ง๋ฆ์ด ๊ต์ฅํ ์ค์!๋ฐ์ง๋ฆ์ x, y ๊ฐ์๋ค๊ฐ + , - ํด์ค์ผ ์ค์ ๋ก ๊ณต์ด ๋ธ๋ผ์ฐ์ ์ ๋ฟ์๋์ง ์ ์ ์์.๊ทธ๋์ ๊ณต์ x , y๊ฐ์ ๋น๊ตํ๋ ๊ฒ์ด ์๋
์ ์ญ ๋ณ์์ ๋ฌด๋ถ๋ณํ ์ฌ์ฉ์ ์ํํ๋ค!์ ์ญ ๋ณ์๋ฅผ ๋ฐ๋์ ์ฌ์ฉํด์ผ ํ ์ด์ ๋ชป์ฐพ์๋ค๋ฉด ์ง์ญ ๋ณ์๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.๋ณ์๋ ์ ์ธ์ ์ํด ์์ฑ๋๊ณ ํ ๋น์ ํตํด ๊ฐ์ ๊ฐ๊ณ , ์ธ์ ๊ฐ ์๋ฉธํ๋ค.= ๋ณ์๋ ์๋ช ์ฃผ๊ธฐ(life cycle)๊ฐ ์๋ค.๋ณ์์ ์๋ช ์ฃผ๊ธฐ๊ฐ ์๋ค๋ฉด?ํ๋ฒ ์
์ค์ฝํ(์ ํจ๋ฒ์)๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํฌํจํ ๋ชจ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๊ธฐ๋ณธ์ ์ด๋ฉฐ ์ค์ํ ๊ฐ๋ ์ด๋ค!์๋ฐ์คํฌ๋ฆฝํธ์ ์ค์ฝํ๋ ๋ค๋ฅธ ์ธ์ด์ ์ค์ฝํ์ ๊ตฌ๋ณ๋๋ ํน์ง์ด ์์ผ๋ฏ๋ก ์ฃผ์ ํ์var ํค์๋๋ก ์ ์ธํ ๋ณ์์ let or const ํค์๋๋ก ์ ์ธํ ๋ณ์์ ์ค์ฝํ๋ ๋ค๋ฅด๊ฒ ๋์
this๋ ์์ ์ด ์ํ ๊ฐ์ฒด ๋๋ ์์ ์ด ์์ฑํ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํค๋ ์๊ธฐ ์ฐธ์กฐ ๋ณ์(self-referencing variable)์ด๋ค.this๋ฅผ ํตํด ์์ ์ด ์ํ ๊ฐ์ฒด ๋๋ ์์ ์ด ์์ฑํ ์ธ์คํด์ค์ ํ๋กํผํฐ๋ ๋ฉ์๋๋ฅผ ์ฐธ์กฐํ ์ ์๋ค.๊ฐ์ฒด ์์ฑํ์ง ์๋ ์ผ๋ฐ ํจ์์์
์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๊ตฌํ ์๊ณ ๋ฆฌ์ฆ์ ์ค๋ช ํ๊ธฐ ์ํด ECMAScript ์ฌ์์์ ์ฌ์ฉํ๋ ์์ฌ ํ๋กํผํฐ(pseudo property)์ ์์ฌ ๋ฉ์๋(pseudo method)์ด๋ค.ECMAscript ์ฌ์์ ๋ฑ์ฅํ๋ ์ด์ค ๋๊ดํธ (\[...])๋ก ๊ฐ์ผ ์ด๋ฆ๋ค์ด ๋ด๋ถ ์ฌ๋กฏ๊ณผ
ํจ์๋ ์ด๋ค ๊ณ์ฐ, ์ฒ๋ฆฌ๋ฅผ ํ๋ ์ฝ๋์ ๋ฌถ์.ํจ์๋ ์ธ์๋ฅผ ๋ฐ์ ์ ์๊ณ , ์ธ์ ๋ฐ์ ๊ฐ์ ๊ฐ์ง๊ณ ์ด๋ค ๊ณ์ฐ์ ์ํํ ๋ค์์ ๊ฒฐ๊ณผ๋ฅผ ํธ์ถํ ์ชฝ์ ๋ฐํํด์ฃผ๋ ์ญํ !์ฝ๋์ ๋ฌถ์์ธ ๊ฒ, ์ธ์๋ฅผ ๋ฐ๋ ๊ฒ, ๊ฐ์ ๋ฐํํ๋ ๊ฒ ๊ฐ๋ค! (์๋ฐ์ ์ ๋ ์์ ํจ์์ ์ต์ ์ฌํญ์ด๋๊น~!
๐ myFnV1 : ๊ฐ์ด ์๋๋ผ ๋จ์ํ ํจ์ -> ๋ฌธ(ํจ์ ์ ์๋ฌธ์๋ ์ธ๋ฏธ์ฝ๋ก ์ผ๋ก ๋๋์ง ์์)๐ myFnV2 : ์ต๋ช ํจ์๋ก์ ํจ์๋ฅผ ๊ฐ์ผ๋ก ์ทจ๊ธํด์ ๋์ ๋ฌธ์ผ๋ก ๋ฑ์ฅ -> ์(์์ ์ธ๋ฏธ์ฝ๋ก ์ผ๋ก ๋๋จ): ํจ์๊ฐ ๋ง๋ค์ด์ง์๋ง์ ์ฆ์ ํ ๋ฒ ์คํํ๋ ํจ์๐ ์คํํ๋
Hacker News Client app 02 : JavaScript
Hacker News Client app 01 : JavaScript
๐ ๐ถ๋ -> ๐ฏ์์ ->๐ฏ๋-> ๐ฐ์์๋๋ ํ์์ผ๋ก ์งํ.์ฆ ํ๊บผ๋ฒ์ ์งํ๋๋ ๊ฒ์ด ์๋๋ผ, ํ๋์ฉ ์ฒ๋ฆฌ๋ฅผ ํจ.๋ง์ฝ ์ฌ๋ฌ๊ฐ์ Promise๋ฅผ ๋์์ ์ฒ๋ฆฌํ๊ณ ์ถ๋ค๋ฉด ?? => Promise.all ์ด๋ผ๋ ํจ์๋ฅผ ์ฌ์ฉํ์!๐ ๋ฐฐ์ด ์์ Promise(= ge
async / await promise๋ฅผ ๋ ๊ฐ๊ฒฐํ๊ณ ๊ฐํธํ๊ณ ,๋๊ธฐ์ ์ผ๋ก ์คํ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ฒ ๋ง๋ค์ด์ฃผ๋ ๊ฒ. ์๋ก์ด ๊ฒ์ด ์ถ๊ฐ๋ ๊ฒ์ด ์๋๋ผ, ๊ธฐ์กด์ ์กด์ฌํ๋ promise์์ ์กฐ๊ธ ๋ ๊ฐํธํ API๋ฅผ ์ ๊ณตํ๋ค. ๊น๋ํ๊ฒ promise๋ฅผ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ, ๊ทธ๋
๋๊ธฐ์ ( Synchronous ) ์์ ์ด ์์ฐจ์ ์ผ๋ก ์งํ๋๋ ๊ฒ. ์ ํด์ง ์์์ ๋ง๊ฒ ์ฝ๋ ์คํ. ์์ ์ ๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ฒ ๋๋ค๋ฉด, ํ ์์ ์ด ๋๋ ๋ ๊น์ง ๋ค๋ฅธ ์์ ์ ํ ์ ์์. 1๋ฒ์ด ๋๋์ผ 2๋ฒ์ด ์์๋จ. ( 1๋-> 2๋-> 3๋-> 4 ) ํธ์ด์คํ (h
HTTP ๊ธฐ๋ฐ์ผ๋ก ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ๋ฆฌ์์ค์ ์ ๊ทผํ๋ ๋ฐฉ์์ ๊ท์ ํ ์ํคํ ์ณ.HTTP ํ๋กํ ์ฝ์ ์๋์ ๋ง๊ฒ ๋์์ธ ํ๋๋ก ์ ๋.REST์ ๊ธฐ๋ณธ ์์น์ ์ฑ์คํ ์งํจ ์๋น์ค๋์์ธ = 'RESTFul'REST API : REST๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋น์ค API๋ฅผ ๊ตฌํํ ๊ฒ.RE
ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ HTTP ํต์ ์ ์ํ ํ ์คํธ ๋ฐ์ดํฐ ํฌ๋งท.์๋ฐ์คํฌ๋ฆฝํธ์ ์ข ์๋์ง ์์ ์ธ์ด ๋ ๋ฆฝํ ๋ฐ์ดํฐ ํฌ๋งท.๋๋ถ๋ถ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ฌ์ฉ๊ฐ๋ฅ.๊ฐ์ฒด ๋ฆฌํฐ๋ด๊ณผ ์ ์ฌํ๊ฒ ํค, ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋ ์์ ํ ์คํธ.ํค -> ๋ฐ๋์ ํฐ๋ฐ์ดํ.๊ฐ -> ๊ฐ์ฒด ๋ฆฌํฐ๋ด๊ณผ ๊ฐ์ ํ๊ธฐ
์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํด์ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์๊ฒ ๋น๋๊ธฐ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ณ , ์๋ฒ๊ฐ ์๋ตํ ๋ฐ์ดํฐ๋ฅผ ์์ ํ์ฌ ์นํ์ด์ง๋ฅผ ๋์ ์ผ๋ก ๊ฐฑ์ ํ๋ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์.๋ธ๋ผ์ฐ์ ์์ ์ ๊ณตํ๋ Web API์ธ XMLHttpRequest๊ฐ์ฒด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋์. (XMLHttpRequest
LiveScript๋ค์ค์ผ์ดํ๋ผ๊ณ ํ๋ ๋ธ๋ผ์ฐ์ ์ ์ต์ด๋ก ํ์ฌ๋ ๋ฒ์ .์์ฃผ ์์ ๋ธ๋ผ์ฐ์ ์์ ๋์ํ๋ฉด์ HTML์ ๊ฐ๋จํ ์กฐ์ํ๊ธฐ ์ํ ๋ชฉ์ .์คํ ๋ง์ง ์์์. JScript์ธํฐ๋ท์ต์คํ๋ก๋ฌ์ ์คํฌ๋ฆฝํธ ์ธ์ด๋ก ํ์ฌ. JavaScriptEcma๋ผ๋ ํ์ค๋จ์ฒด์์ Jav