์ ์ฒด ๊ธ (47) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ SaaS (Software as a service) SaaS (Software as a service) ํด๋ผ์ฐ๋ ์ปดํจํ ์ด ๋์ ๋๋ฉด์ ์๊ธด ์ฉ์ด์ด๋ค. ์ดํ๋ฆฌ์ผ์ด์ ์ ์กฐ์ง์ด๋ ๊ฐ์ธ์๊ฒ ์ฝ๊ฒ ์ ๊ณต๋๋ IT ์๋น์ค ๋ฐฉ์์ ์๋ฏธํ๋ค. ๊ฐ๋จํ๊ฒ ์ธํฐ๋ท์ผ๋ก ์ฐ๋ฆฌ๊ฐ ํ์ํ ์๋น์ค๋ฅผ ๋ณ๋ค๋ฅธ ์ค์น ์์ด pc์์ ์ด์ฉํ ์ ์๋ ์๋น์ค์ด๋ค. ๋ํ์ ์ผ๋ก ์น๋ฉ์ผ, ๊ตฌ๊ธ ํด๋ผ์ฐ๋, ๋ค์ด๋ฒ ํด๋ผ์ฐ๋, MS์คํผ์ค365, ๋๋กญ๋ฐ์ค ๋ฑ์ด ์๋ค. SaaS๋ ์์ ๊ตฌ์ฑ์์ ํ์์ ๋ณด์ด๋ ๊ฒ์ฒ๋ผ ์๋น์ค ์ ๊ณต์ ๊ด์ ์์ ๋ณผ ๋ ์ฒ ์ ํ ์๋น(Consume)๋ฅผ ๋ชฉ์ ์ผ๋ก ํ๋ค. Finished Service์ ๊ด์ ์ผ๋ก๋ ๋ณผ ์ ์์ผ๋ฉฐ, ์๋น์ค ์ฌ์ฉ์์๊ฒ ์ถ๊ฐ์ ์ธ ๊ฐ๋ฐ์ด๋ ๋ฐ์ดํฐ์ ๋ํ ์ถ๊ฐ์ ์ธ ๋ถ๋ด์ ์์ฐ์ง ์๋๋ค. ๊ธฐ์ ์๋น ๊ด์ ์์ ๋ณธ๋ค๋ฉด ์ธ์ผ์ฆํฌ์ค๋ท์ปด์ CRM ์๋น์ค๋ ๊ฐ์ธ ์๋น ๊ด์ ์์ ๋ณธ๋ค๋ฉด.. SEO (Search Engine Optimization) SEO Search Engine Optimization์ ์ฝ์ด์ด๋ค. ๋๋ถ๋ถ์ ์น ํฌ๋กค๋ฌ, ๋ด๋ค์ด JavaScript ํ์ผ์ ์คํ์ํค์ง ๋ชปํ๊ณ HTML์์๋ง ์ปจํ ์ธ ๋ฅผ ์์งํ๋ค. ๋๋ฌธ์ CSR ๋ฐฉ์์ผ๋ก ๊ฐ๋ฐ๋ ํ์ด์ง๋ฅผ ๋น ํ์ด์ง๋ก ์ธ์ํ๊ฒ ๋๋ค. ๊ฒ์์์ง์ ์ ๋๋ก ๋ ธ์ถ์ด ๋์ง ์๋๋ค๋ฉด ์น ํ์ด์ง์ ์ ์ ์ด ์ค์ด๋๋ ์ ์ํ์ด ๋ฐ๋ณต๋๋ค. (๋ฐ๋ฉด SSR์ view๋ฅผ ์๋ฒ์์ ์ ๋ถ ๋ ๋๋งํ์ฌ ๋ด๋ ค์ฃผ๋ฏ๋ก HTML์ ๋ชจ๋ ์ปจํ ์ธ ๊ฐ ์ ์ฅ๋์ด ์๊ธฐ ๋๋ฌธ์ SEO ์ ์ฉ์ ํฐ ๋ฌธ์ ๊ฐ ์๋ค.) ๋ฐ๋ผ์ ๋ง์ ์ฌ๋๋ค์ด ๋ฆฌ์กํธ(React), ์ต๊ทค๋ฌ(Angular), ๋๋ ์ฐ๋ฒ(Ember) ๋ฑ์ ์ฌ์ฉํ์ฌ ์น์ฌ์ดํธ๋ฅผ ๊ฐ๋ฐํ๋ฉด ๊ฒ์ ์์ง ๋ญํน์ ์์ข์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค. ๋ง์ฝ์ HTML ์ฝ๋๊ฐ ๋ณธ๋ฌธ์ ๋ด์ฉ์์ด ๋ฉํ ํ๊ทธ๋ ์คํฌ๋ฆฝํธ ํ๊ทธ ๊ฐ.. SSR๊ณผ CSR SSR ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง์ ์ฝ์ด๋ก์จ ๋จ์ด ๊ทธ๋๋ก ์๋ฒ์์ ๋ ๋๋ง์ ์์ ํ๋ค. ๊ธฐ์กด์ ์กด์ฌํ๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ์๊ฐ ์น ํ์ด์ง์ ์ ๊ทผํ ๋, ์๋ฒ์ ํ์ด์ง์ ๋ํ ์์ฒญ์ ํ๋ฉฐ ์๋ฒ์์๋ HTML, view์ ๊ฐ์ ๋ฆฌ์์ค๋ค์ ์ด๋ป๊ฒ ๋ณด์ฌ์ง์ง ํด์ํ๊ณ ๋ ๋๋งํ์ฌ ์ฌ์ฉ์์๊ฒ ๋ฐํํ๋ค. ์น์์ ์ ๊ณตํ๋ ์ ๋ณด๋์ด ๋ง์์ง๊ณ ๋ฐ์คํฌํ๋ณด๋ค ์ฑ๋ฅ์ด ๋ค์ ๋จ์ด์ง๋ ์ค๋งํธํฐ์ ์น์ ๋ํ ์๊ตฌ๊ฐ ์ปค์ง๋ฉด์ ์๋ก์ด ๊ธฐ๋ฒ์ด ํ์ํ๋ค. CSR ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง์ ์ฝ์ด๋ก์จ ์ต์ด์ 1๋ฒ ์๋ฒ์์ ์ ์ฒด ํ์ด์ง๋ฅผ ๋ก๋ฉํ์ฌ ๋ณด์ฌ์ฃผ๊ณ ์ดํ์๋ ์ฌ์ฉ์์ ์์ฒญ์ด ์ฌ ๋๋ง๋ค, ๋ฆฌ์์ค๋ฅผ ์๋ฒ์์ ์ ๊ณตํ ํ ํด๋ผ์ด์ธํธ๊ฐ ํด์ํ๊ณ ๋ ๋๋ง์ ํ๋ ๋ฐฉ์์ด๋ค. ์ฌ๊ธฐ์ Angular JS, Backbone JS๊ฐ์ด SPA ๊ฐ๋ฐ์ ์ฌ์ด JS ํ๋ ์์ํฌ๊ฐ ๋ฑ์ฅ.. SPA (Single-page Application) ๋ฐ์คํฌํ์ ๋นํด ์ฑ๋ฅ์ด ๋ฎ์ ๋ชจ๋ฐ์ผ์ ๋ํ ๋์ฆ๊ฐ ์ฆ๊ฐํ๋ฉด์ ์ค๋งํธํฐ์ ํตํด ์นํ์ด์ง๋ฅผ ์ถ๋ ฅํ๊ธฐ ์ํด์๋ ๊ธฐ์กด ๋ฐฉ์๊ณผ๋ ๋ค๋ฅธ ์ ๊ทผ์ด ํ์ํด์ก๋ค. ์ด๋ฅผ ์ํด ๋ฑ์ฅํ ๊ธฐ๋ฒ์ด ๋ฐ๋ก SPA์ด๋ค. Single-page application (SPA) ์๋ฒ๋ก๋ถํฐ ์์ ํ ์๋ก์ด ํ์ด์ง๋ฅผ ๋ถ๋ฌ์ค์ง ์๊ณ ํ์ฌ์ ํ์ด์ง๋ฅผ ๋์ ์ผ๋ก ๋ค์ ์์ฑํจ์ผ๋ก์จ ์ฌ์ฉ์์ ์ํตํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ ์น์ฌ์ดํธ SPA์์ HTML, JavaScript, CSS ๋ฑ ํ์ํ ๋ชจ๋ ์ฝ๋๋ ํ๋์ ํ์ด์ง๋ก ๋ถ๋ฌ์ค๊ฑฐ๋, ์ ์ ํ ์์๋ค์ ๋์ ์ผ๋ก ๋ถ๋ฌ๋ค์ฌ์ ํ์ํ๋ฉด ๋ฌธ์์ ์ถ๊ฐํ๋๋ฐ, ๋ณดํต ์ฌ์ฉ์์ ๋์์ ์๋ตํ๊ฒ ๋๋ ๋ฐฉ์์ด๋ค. SPA์์ ์ํต์ ์น ์๋ฒ์์ ๋์ ์ธ ํต์ ์ ์๋ฐํ๊ธฐ๋ ํ๋ค. ์ด๋ฌํ ์ ๊ทผ์ ์ฐ์๋๋ ํ์ด์ง๋ค ๊ฐ์ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ญ์.. ์ต์์ ์น ์ฑ ์ฑ๋ฅ์ ์ํ ๊ธฐ์ , WebAssembly WebAssembly ์น ์ด์ ๋ธ๋ฆฌ(webAssembly, WASM)๋, C๋ C++๊ณผ ๊ฐ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ปดํ์ผํด์ ์ด๋ ๋ธ๋ผ์ฐ์ ์์๋ ๋น ๋ฅด๊ฒ ์คํ๋๋ ๋ฐ์ด๋๋ฆฌ ํ์(0,1๋ก ์ด๋ฃจ์ด์ง ์ด์ง ํ์)์ผ๋ก ๋ฐ๊ฟ์ฃผ๋ ๊ธฐ์ ์ ๋ปํ๋ค. (ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์๋๋ค!) ํ์๋ ํญ์ ๊ถ๊ธํ๋ค. JavaScript์ ํ์ฌ ์ฑ๋ฅ์ด ์น ๊ฐ๋ฐ์ ์ต์ ์ผ๊น? ์กฐ๊ธ ๋ ์ฑ๋ฅ์ ํฅ์ ์ํฌ ์๋ ์์๊น? ์ด๋ฅผ ์ํด ๋ง๋ค์ด์ง WASM๋ผ๋ ๊ธฐ์ ์ด ํฅ๋ฏธ๋ก์ ํฌ์คํ ์ ํ๊ฒ ๋์๋ค. ์ฃผ ๋ชฉ์ ์ ์น ํ์ด์ง์์ ๊ณ ์ฑ๋ฅ์ ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฅ์ผ ํ๋ ๊ฒ์ด์ง๋ง ํฌ๋งท์ ๋ค๋ฅธ ํ๊ฒฝ์์๋ ์คํ ๋ฐ ์ฐ๋๋๋๋ก ์ค๊ณ๊ฐ ๋์ด์๋ค. W3C๋ ๋ชจ์ง๋ผ, ๋ง์ดํฌ๋ก์ํํธ, ๊ตฌ๊ธ, ์ ํ์ ๊ธฐ์ฌ์ ํจ๊ป ํ์ค์ ๊ด๋ฆฌํ๊ณ ์๋ค. ์ผ๋ฐ์ ์ผ๋ก ์น ๊ฐ๋ฐ์๊ฐ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ .. React #3. Props์ State ๋ฆฌ์กํธ์ ๊ธฐ์ด ์ง์ ์ค์ ๊ฐ์ฅ ํต์ฌ, Props์ State๋ฅผ ๋ค๋ค๋ณด๊ฒ ๋ค. Props ํจ์ํ ์ปดํฌ๋ํธ vs ํด๋์คํ ์ปดํฌ๋ํธ - ํจ์ํ : ์ด๊ธฐ ๋ง์ดํธ ์๋๊ฐ ๋ฏธ์ธํ๊ฒ ๋ ๋น ๋ฅด๋ค. ํด๋์คํ ์ปดํฌ๋ํธ์ ๋นํด ๋ฉ๋ชจ๋ฆฌ ์์์ ๋ ์ฌ์ฉํ๋ค. State state ๋ด๋ถ ๊ฐ์ ์ง์ ์์ ์ด ๋ถ๊ฐ๋ฅํ๋ค. ๋ถ๋ณ์ฑ์ ์ ์งํด์ผ ํ๋ค. ์ด๋ JS Immutability ๊ฐ๋ ์ ์ฐธ์กฐํ๊ธธ ๋ฐ๋๋ค. push, slice, *map, filter map : key ๊ณ ์ ๊ฐ์ผ๋ก ๊ตฌ๋ถ. ๋ฐฐ์ด์ ๋ ๋๋ง ํ๊ฒ ๋ ๋์๋ ๊ผญ ๊ณ ์ ๊ฐ์ key ๋ก ์ฌ์ฉํด์ผ ํ๋ค. ๋ถ๋ณ์ฑ ์ ์ง๋ฅผ ์ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ ํ ๋์๋ ๊ธฐ์กด์ ๋ฐฐ์ด์ ๊ฑด๋ค์ด์ง ์๋ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌํด์ผ ํ๋ค. ๋ง์ฝ state ๋ฐฐ์ด ๊ฐ์ ๋ฌด์์๋ก ๋ณ๊ฒฝํ๊ฒ ๋๋ฉด ํ์์น ์์ ๊ฐ ๋ณ๊ฒฝ์ ํตํด ํ๋ก.. ์ต๊ทผ MS๊ฐ ์ถ์ํ gitHub ํด 'Scalar' ์ต๊ทผ ๋ง์ดํฌ๋ก ์ํํธ๊ฐ Git์ ํตํ ์์ฐ์ฑ ํฅ์์ ์ํด ์๋ก์ด ํด์ ์ถ์ํ๋ค. Git์ ๋ถ์ฐ ๋ฒ์ ์ ์ด ์์คํ ์ผ๋ก ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ Git ์ ์ฅ์์๋ ์ ์ฒด ํ์คํ ๋ฆฌ์ ์๋ ๋ชจ๋ ํ์ผ์ ์ฌ๋ณธ์ด ์๋ค. ์ค๊ฐ ๊ท๋ชจ์ ํ์ด๋ผ๋ ๋งค ๋ฌ ์๋ฐฑ ๋ฉ๊ฐ ๋ฐ์ดํธ๋ฅผ ์ถ๊ฐํ์ฌ ์ ์ฒ ๊ฐ์ ์ปค๋ฐ์ ๋ง๋ค ์ ์๋ค. repository๊ฐ ์ปค์ง๋ฉด Git์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช์ ์ ์๋ค. ์์ ๋ ํ์ผ์ ๋ณด๊ณ ํ๊ฑฐ๋ ์ต์ ๋ฐ์ดํฐ๋ฅผ ์ป๊ธฐ ์ํด ๋๊ธฐํ๋ ์๊ฐ์ด ๋ญ๋น๋๋ค. ์ด๋ฌํ ๋ช ๋ น์ด ๋๋ ค์ง๋ฉด ๊ฐ๋ฐ์๋ ๋๊ธฐ๋ฅผ ์ค์งํ๊ณ ์ปจํ ์คํธ ์ ํ์ ์์ํด์ผ ํ๋ค. (์ด๋ ์์ฐ์ฑ์ ํด๋ฅผ ๋ผ์น๋ค.) Microsoft์์ Git์ฉ VFS๋ฅผ ์ฌ์ฉํ์ฌ Windows OS repository๋ฅผ ์ง์ํ๋ค. ๊ฐ์ํ ๋ ํ์ผ ์์คํ ์ ์ฌ์ฉํ์ฌ repo.. ์ฑ๋ฅ ์ต์ ํ ๊ฐ๋ฐ์์๊ฒ ์ฑ๋ฅ์ด๋ ๊ต์ฅํ ์ค์ํ๋ค. ์ต๊ทผ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ๋ณต์กํ ๊ธฐ๋ฅ๊ณผ UI๋ฅผ ํตํด ๊ธฐ๋ฅ์ด ๋์ฑ ๋ฌด๊ฑฐ์์ง๊ณ ์๋ค. ํนํ Instagram, facebook, Pinterest ๋ฑ์ SNS ํ๋ซํผ ๊ฐ์ ๊ฒฝ์ฐ ๋น ๋ฅธ ๋ฆฌ๋ก๋ฉ ์๊ฐ์ด ํ์ํ๋ฏ๋ก ์ฑ๋ฅ ์ต์ ํ๊ฐ ๋์ฑ ์ค์ํ๋ค. ๊ฐ๋ฐ์๋ ๋์์์ด ๊ตฌ์กฐ๋ฅผ ๋จ์ํํ๊ณ ์ต๋ํ ๋ ๋๋ง ์๊ฐ์ ์ค์ด๊ธฐ ์ํด ๊ณ ๋ฏผํด์ผ ํ๋ค. ์ต๊ทผ Grid ์ปดํฌ๋ํธ ์ฑ๋ฅ ๊ฐ์ ์์ ์ ํตํด ๋๊ผ๋ ํฌ์ธํธ๋ค๊ณผ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ํ ์ฌ์ ์ง์๊ณผ ์ต์ ํ ๋ฐฉ๋ฒ๋ค์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ธ๋ผ์ฐ์ ๋ ์น ํ์ด์ง์ ํ์ํ ๋ฆฌ์์ค๋ฅผ ๋ด๋ ค๋ฐ๊ณ ํด์ํ ๋ค์ ์ฌ๋ฌ ๊ณ์ฐ ๊ณผ์ ์ ๊ฑฐ์ณ ์ฝํ ์ธ ๋ฅผ ํ๋ฉด์ ๋ณด์ฌ์ค๋ค. ์ด๋ฅผ ๋ธ๋ผ์ฐ์ ์ ๋ก๋ฉ ๊ณผ์ ์ด๋ผ๊ณ ํ๋ฉฐ ๋ค์ด๋ก๋, ํ์ฑ, ์คํ์ผ, ๋ ์ด์์, ํ์ธํธ, ํฉ์ฑ์ผ๋ก ๋๋๋ค. ๋จ๊ณ๋ง๋ค ์ด๋ค .. ์ด์ 1 2 3 4 5 6 ๋ค์