๐ป Deep Wide Programming (79) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ ์๋ฐ์คํฌ๋ฆฝํธ์ ํด๋์ค์ ์ค๋ธ์ ํธ์ ์ฐจ์ด์ ์์๋ณด๊ธฐ(feat. ํ์ด์ฌ์ด๋ ๋ญ๊ฐ ๋ค๋ฅผ๊น?) ๐ ํด๋์ค์ ์ค๋ธ์ ํธ ๋ถ์ด๋นต ํ(template) : ํด๋์ค object: ํฅ์ ๋ฃ์ผ๋ฉด ํฅ๋ถ์ด๋นต, ํฌ๋ฆผ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ผ๋ฉด ํฌ๋ฆผ ๋ถ์ด๋นต! โ ํ์ด์ฌ์์์ ํด๋์ค์ ๊ฐ์ฒด ๊ฐ๋ ๊ณผ ๊ฐ๋ค. ๋๋ค ๊ฐ์ฒด์งํฅ์ธ์ด! ๐์๋ฐ์คํธ๋ฆฝํธ์์ ํด๋์ค ์ฌ์ฉํ๋๋ฒ ํ์ด์ฌ๊ณผ ๋ค๋ฅด๊ฒ ์๋ฐ์คํฌ๋ฆฝํธ์์๋, ํด๋์ค๋ฅผ ์ ์ธํ๊ธฐ ์ํด 'constructor'๊ฐ ํ์ํ๋ค. ํ์ด์ฌ์์๋ def ์ self๋ฅผ ์ฌ์ฉํ๋ค๋ฉด, ์๋ฐ์คํฌ๋ฆฝํธ์์๋ 'constructor/method์ this'๋ฅผ ์ด์ฉํ๋ค. ๊ตฌ์กฐ๋ ์ ์ฌํ๋ค. ๋ํ ์ค๋ธ์ ํธ๋ฅผ ์์ฑํ ๋๋ ์ฐจ์ด๊ฐ ์๋ค. ํ์ด์ฌ์์๋ ๋ณ๋ค๋ฅธ ๋ณ๋ ์ฝ๋ ์์ด ๊ทธ๋ฅ ์์ฑํ๋ฉด ๋๋๋ฐ, ์๋ฐ์คํฌ๋ฆฝํธ์์๋ const์ new๋ฅผ ์จ์ค๋ค. ๐ Getter & Setter incapsulation => private ๋ง๋๋ ๊ฒ ํด.. [ํ์ด์ฌ] ํ์ด์ฌ ํด๋์ค ์ดํดํ๊ธฐ ๐์ ํ ํฌ ํ์ด์ฌ_ ํด๋์ค ์คํฐ๋ ๋ชฉ์ฐจ ์ ํ ํฌ ํ์ด์ฌ ํด๋์ค : ์ด๋ณด ๊ฐ๋ฐ์๋ฅผ ์ํ, ํด๋์ค์ ๊ฐ๋ A-Z, ๊ธฐ์ด๋ถํฐ ์ฐจ๊ทผ์ฐจ๊ทผ! ํด๋์ค๋ ์ ํ์ํ๊ฐ? ํด๋์ค์ ๊ฐ์ฒด ์ฌ์น์ฐ์ฐ ํด๋์ค ๋ง๋ค๊ธฐ ํด๋์ค๋ฅผ ์ด๋ป๊ฒ ๋ง๋ค์ง ๋จผ์ ๊ตฌ์ํ๊ธฐ ํด๋์ค ๊ตฌ์กฐ ๋ง๋ค๊ธฐ ๊ฐ์ฒด์ ์ซ์ ์ง์ ํ ์ ์๊ฒ ๋ง๋ค๊ธฐ ๋ํ๊ธฐ ๊ธฐ๋ฅ ๋ง๋ค๊ธฐ ๊ณฑํ๊ธฐ, ๋นผ๊ธฐ, ๋๋๊ธฐ ๊ธฐ๋ฅ ๋ง๋ค๊ธฐ ์์ฑ์ (Constructor) ํด๋์ค์ ์์ ๋ฉ์๋ ์ค๋ฒ๋ผ์ด๋ฉ ํด๋์ค ๋ณ์ ๐ํด๋์ค์ ๊ฐ์ฒด โ๏ธํด๋์ค์ ๊ฐ์ฒด์ ๊ฐ๋ : ๊ณผ์ ํ๊ณผ ํ์ ์ํด ๋ง๋ค์ด์ง ๊ณผ์ โ๏ธํด๋์ค๋ฅผ ์ด๋ป๊ฒ ๋ง๋ค๊ธฐ ๋จผ์ ๊ตฌ์ํ๊ธฐ ํด๋์ค๋ ๋ฌด์์ ๋ง๋๋ ๊ฒ๋ณด๋ค ํด๋์ค๋ก ๋ง๋ ๊ฐ์ฒด๋ฅผ ์ค์ฌ์ผ๋ก ์ด๋ค ์์ผ๋ก ๋์ํ๊ฒ ํ ๊ฒ์ธ์ง ๋ฏธ๋ฆฌ ๊ตฌ์ํ ํ์ ์๊ฐํ ๊ฒ๋ค์ ํ๋์ฉ ํด๊ฒฐํด๊ฐ๋ฉด์ ์์ฑํด๋๊ฐ๋ ๊ฒ์ด ์ข๋ค. ๐๋ .. [์ํ์ฝ๋ฉ ๋ฆฌ์กํธ] ์ด๋ฒคํธ state ๋ณ๊ฒฝํ๊ธฐ (feat. bind ํจ์, setStateํจ์) ๐์ด๋ฒคํธ ์ค์น (1); ํ ์คํธ (๋งํฌ ํด๋ฆญ์, alert์ฐฝ ๋์ฐ๊ธฐ) ๐์ด๋ฒคํธ ์ค์น (2); ๋ค์ํ์ด์ง๋ก ์ด๋ ์ค์ง ๐"mode ์ค์ & render ๋ถ๋ถ"๊ณผ "์ด๋ฒคํธ๋ฅผ ์ค์นํ ๋ถ๋ถ"์ ์ฐ๊ฒฐํด์ฃผ๋ฉด ๋๋ค. โข๐ ์ฐ๊ฒฐ์ํค๋ ๋ฐฉ๋ฒ *์ด๋ฒคํธ ํจ์ ์์์ 'this'์ ๊ฐ์ ์๋ฌด๊ฒ๋ ๊ฐ๋ฆฌํค์ง ์๊ฒ ๋๊ธฐ ๋๋ฌธ์ ์ค๋ฅ๊ฐ ๋ฌ๋ค.* โข ์ด๋ฒคํธ ํจ์ ๋ฐ๋ก ๋ค์, '.bind(this)'๋ฅผ ์ถ๊ฐํ์ฌ this์ ๊ฐ์ ์์ฑํ ์ ์๋ค. โ ๋ ํ๋์ ์์ ์ด ํ์ํ๋ค. ๋ฆฌ์กํธ์ ์ธ์ด 'setState({})'๋ก ๋ชจ๋๋ฅผ ์ ํํด์ฃผ์ด์ผ ์๋ํ๊ธฐ ๋๋ฌธ. this.state.mode = 'Greeting'; ์ผ๋ก๋ ์๋ํ์ง ์๋๋ค. ๋ฆฌ์กํธ ์ธ์ด๋ก ๋ชจ๋ ์ ํ์ ํด์ฃผ๋, ๋น๋ก์ ์์์ ์ธํ ํด์ค greeting์ ๋ชจ๋์ ๊ฐ๋ค๋ก ๋ก๋๊ฐ ๋์๋ค. .. [์ํ์ฝ๋ฉ ๋ฆฌ์กํธ] 14. ๋ณ๋์ ํ์ผ๋ก ์ปดํฌ๋ํธ ์ ๋ฆฌ, 15. state 1. props : ์ฌ์ฉ์๊ฐ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ ๋ ์ค์ํ ๊ฒ์ด๊ณ , 2. state๋ ๊ทธ props ๊ฐ์ ๋ฐ๋ผ ๋ด๋ถ์์ ๊ตฌํ์ ํ์ํ ๋ฐ์ดํฐ๋ค์ด๋ค. : ์ข๋ ๋ค์ํ ์ผ์ ํ๋ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค๊ธฐ ์ํด ํ์ํ state์ ๊ฐ๋ ! props๋ฅผ ๋ ์ ํ์ฉํ ์ ์๊ฒ ๋ ๊ฒ. ์์ ์ฝ๋ ์์ ์ปดํฌ๋ํธ ์์๋ค title, sub ๊ฐ๋ค์ ์ ๋ ๊ฒ ์ ์ด์ฃผ๋๊ฒ ์ง์ ๋ถํด์ ์๋ก ์ ํ๊ณ ๋ฐ๋ก ๋นผ์ฃผ๋ ค๊ณ ํ๋ค. ๊ทธ๋ ํ์ํ ๊ฒ์ด ๋ฐ๋ก ํ๋จ์ constructor(props){ super(props); here it goes } ์ ๊ธฐ ์์ ํ์ํ ์ฝ๋๋ฅผ ๋ฃ์ด์ฃผ๋ ๊ฒ์ด๋ค. ์๊ธฐ ๋ด๊ธด ์ฝ๋๋ค์ด ๊ฐ์ฅ ๋จผ์ ์คํ๋๊ฒ ๋๋ค. ํ๋จ์ ์ฝ๋์ ๊ฐ์ด ์์ ! [์ํ์ฝ๋ฉ ๋ฆฌ์กํธ] ๋ฆฌ์กํธ๋ฅผ ๋์์ฃผ๋ ํฌ๋กฌ ํ์ฅ์ฑ ๋ฆฌ์กํธ ๋๋ฒจ๋กํผ ํด์ ๊น๊ณ , ๊ธฐ์กด์ ๋ง๋ค์ด๋จ๋ ์น์ inspect๋ก ๋ค์ด๊ฐ๋, ์๋ก์ด ํญ์ด ์์ฑ๋์๋ค. ์ด๊ณณ์์ ์๋๋ ํ์ ํ ์ ์์๋ ๋ฆฌ์กํธ ์ฝ๋๋ฅผ ๋ฐ๊ฒฌ๊ฐ๋ฅํด์ก๋ค. ๋๋ฐ! [์ํ์ฝ๋ฉ ๋ฆฌ์กํธ] props๋ฅผ ์ฌ์ฉํ ๋ฆฌํฉํ ๋ง ๐Props ๊ณต์๋ฌธ์ ์ฐธ๊ณ ! reactjs.org/docs/getting-started.html Getting Started – React A JavaScript library for building user interfaces reactjs.org ์ปดํฌ๋ํธ ๋ง๋๋ ๋ฒ์ด๋ค. class Welcome extends React.Component { render() { return Hello, {this.props.name}; } } ํ์ด๋ผ์ดํธ๋ ๋ถ๋ถ์ ์ฃผ๋ชฉํ์ ๐์ ์ฉํด๋ณด๊ธฐ ๐๋๋ ํด๋ณด์ [์ํ์ฝ๋ฉ ๋ฆฌ์กํธ] 10-11๊ฐ ์ปดํฌ๋ํธ ๋ง๋ค๊ธฐ ๐๋ฆฌ์กํธ ๋ณธ๊ฒฉ ์ฌ์ฉ์ฐ์ต ์์ ๋ฆฌ์กํธ ์์ด ๋ง๋ html ํ๊ฒฝ์, ๋ฆฌ์กํธ์ ์ปดํฌ๋ํธ๋ฅผ ํ์ฉํด์ remadeํ๋๋ก ํ ๊ฒ์ด๋ค. ์ด๋ ๊ฒ ์ฌํํ html ์ฐ์ต ํ์ผ์ ํ๋ ๋ง๋ค์ด์ค ๋ค, ๋ฆฌ์กํธ์ src ๋๋ ํ ๋ฆฌ์ App.js๋ฅผ ์ด์ด์ค๋ค. class App extends Component { render() { return ( Hello react!! ); } } ๋ฐ๋ก ์ด๋ถ๋ถ์ด ์ปดํฌ๋ํธ๋ฅผ ๋ง๋๋ ์ฝ๋๋ค. (๋งํ์๋ฉด ํ ํ๋ฆฟ ๊ฐ์ ๊ฒ์ผ๋ก ์ดํดํ์. ๊ฐ์ฒด์งํฅ์ ์ดํดํ๋ฉด ์ข ๋ ์ ์ดํดํ ์ ์์ง๋ง ์ฌ๊ธฐ์๋ ์ผ๋จ ํจ์ค) ๐๋ฅผ Subject๋ผ๋ ์ปดํฌ๋ํธ๋ก ๋ง๋ค๊ธฐ ๐์ด๋, ์ฃผ์์ฌํญ! 1. ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค ๋๋ ๋ฐ๋์, ํ๋์ ์ต์์ ํ๊ทธ๋ง์ ํฌํจํด์ผ ํ๋ค. 2. ์ปดํฌ๋ํธ ์ด๋ฆ์ ๋๋ฌธ์๋ก ์์ํ๋ค. ์ค์ App.js์๋ ํ๊ทธ.. [์ํ์ฝ๋ฉ ๋ฆฌ์กํธ] 1-7๊ฐ ๋ฆฌ์กํธ ๊ธฐ๋ณธ, ๊ณต๋ถ์ ๋ต, ํ์ตํ๊ฒฝ ์ค์ 1. ๋ฆฌ์กํธ- ์ปดํฌ๋ํธ๊ธฐ๋ฅ 1) ๊ฐ๋ ์ฑ์ ๋์ฌ์ค 2) ์ฌ์ฌ์ฉ์ฑ์ ๋์ฌ์ค 3) ์ ์ง๋ณด์๊ฐ ํจ์ฌ ๋ ํธ๋ฆฌํด์ง 2. ๋ฆฌ์กํธ ๊ณต๋ถ ์ ๋ต ๐๊ณต๋ถ Tip ๋ฆฌ์กํธ ๊ณต์๋ฌธ์์ ์นํด์ง๊ธฐ * reactjs.org * 3. ๋ฆฌ์กํธ ํ์ตํ๊ฒฝ ์ฝ๋์๋๋ฐ์ค๋ฅผ ์ด์ฉํด ๊ฐํธํ ๋ฆฌ์กํธ ํ์ตํ๊ฒฝ์ ์ฌ์ฉํ ์ ์๋ค. codesandbox.io/s/new React - CodeSandbox React example starter project codesandbox.io 4. Terminal์ ํตํด create-react-app install์ ๋ง์น๋ค, VS code์ ํฐ๋ฏธ๋์์ ๋ค์์ ์ฝ๋๋ฅผ ์ ๋ ฅํ๋ค. npm run start ๋ผ๊ณ ์น๊ณ ์ํฐ๋ฅผ ๋๋ฌ ์คํํ๋ค. (์ข ๋ฃ๋ฅผ ์ํ ๋๋ command + c๋ฅผ ๋๋ฅธ๋ค.) ์๋ฐ ํ๋ฉด๋ค์ด ๋จ๊ฒ ๋๋ค. .. ์ด์ 1 2 3 4 5 6 7 ยทยทยท 10 ๋ค์