๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ฐ˜์‘ํ˜•

๐Ÿ’ป 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๋ฅผ ๋ˆ„๋ฅธ๋‹ค.) ์š”๋Ÿฐ ํ™”๋ฉด๋“ค์ด ๋œจ๊ฒŒ ๋œ๋‹ค. ..

728x90
๋ฐ˜์‘ํ˜•