ํ•จ์ˆ˜ ์‹ React

๋ฐ˜์‘ ์˜ ๊ธฐ๋Šฅ ์  ์ธก๋ฉด
์ €์ž: Andrea Chiarelli
๋ฒˆ์—ญ์ž: ๋ฐ• ํ—Œ
React ๋Š” ํ˜„์žฌ ๊ฐ€์žฅ ์œ ํ–‰ ํ•˜ ๋Š” ์ž ๋ฐ”์Šค ํฌ ๋ฆฝ ํŠธ ๋ผ ์ด๋ธŒ ๋Ÿฌ ๋ฆฌ ์ค‘์˜ ํ•˜๋‚˜ ์ด๋‹ค.React ๋ฅผ ์‚ฌ์šฉ ํ•˜๋ฉด ์›น ์‚ฌ์šฉ์ž ์ธ ํ„ฐ ๋ž™ ์…˜ ์ธํ„ฐํŽ˜์ด์Šค ๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ ๋“ค ์ˆ˜ ์žˆ ์Šต ๋‹ˆ ๋‹ค.๊ทธ๊ฒƒ ์˜ ์„ฑ๊ณต ์—๋Š” ๋งŽ์€ ์š”์†Œ ๊ฐ€ ์žˆ ์ง€๋งŒ, ์•„๋งˆ๋„ ๊ทธ ์ค‘์˜ ํ•œ ์š” ์†Œ ๋Š” ๋šœ๋ ท ํ•˜๊ณ  ํšจ๊ณผ ์  ์ธ ํ”„๋กœ ๊ทธ๋ž˜ ๋ฐ ๋ฐฉ๋ฒ• ์ผ ๊ฒƒ ์ด๋‹ค.
React ์˜ ์„ธ๊ณ„ ์—์„œ UI ๋Š” ํ•˜๋‚˜์˜ ๊ตฌ์„ฑ ์š”์†Œ ๋กœ ๊ตฌ์„ฑ ๋˜ ์–ด ์žˆ ์Šต ๋‹ˆ ๋‹ค.๊ตฌ์„ฑ ์š” ์†Œ ๋Š” ๋‹ค๋ฅธ ๊ตฌ์„ฑ ์š” ์†Œ ๋ฅผ ๋งŒ ๋“ค ๊ธฐ ์œ„ํ•ด ์กฐํ•ฉ ํ•  ์ˆ˜ ์žˆ ์Šต ๋‹ˆ ๋‹ค. ์‘์šฉ ์ž์ฒด ๊ฐ€ ๋ชจ๋“  ๊ตฌ์„ฑ ์š” ์†Œ ๋ฅผ ํฌํ•จ ํ•˜ ๋Š” ํฐ ๊ตฌ์„ฑ ์š”์†Œ ์ž… ๋‹ˆ ๋‹ค.๊ฐœ๋ฐœ ์ž๊ฐ€ React ๋ฅผ ์‚ฌ์šฉ ํ•˜๋ฉด ๋Œ€์ƒ ์„ ๋Œ€์ƒ ์œผ๋กœ ํ”„๋กœ ๊ทธ๋ž˜ ๋ฐ ํ•˜ ๋Š” ๊ฒƒ ์„ ์‰ฝ๊ฒŒ ์—ฐ์ƒ ํ•  ์ˆ˜ ์žˆ ์Šต ๋‹ˆ ๋‹ค.๊ตฌ์„ฑ ์š”์†Œ ์˜ ๋ฌธ๋ฒ• ์ž ์ฒด ๋ฅผ ์ •์˜ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ ๊ณผ ๊ฐ™์€ ๋Š๋‚Œ ์„ ์ค„ ์ˆ˜ ์žˆ ์Šต ๋‹ˆ ๋‹ค.
class HelloReact extends Component {
  render() {
    return (
Hello React!
); } }

๊ฑฐ์œ„, ๋Œ€์ƒ ์„ ํ–ฅ ํ•œ ํ‘œ์ƒ ์•„๋ž˜ React ๋Š” ํ•จ์ˆ˜ ์‹ ํŠน์งˆ ์„ ์ˆจ ๊ฒผ ๋‹ค.์ด ํŠน์งˆ ๋“ค ์ด ๋ฌด์—‡ ์ธ์ง€ ๋ณผ ๊นŒ์š”?
์‚ฌ์šฉ render() ๋ Œ ๋” ๋ง ์ถœ๋ ฅ
React ๊ตฌ์„ฑ ์š”์†Œ ์˜ ํฐ ํŠน์ง• ์€ render() ๋ฐฉ๋ฒ• ์„ ํฌํ•จ ํ•˜๊ณ  ์žˆ๋‹ค ๋Š” ๊ฒƒ ์ด๋‹ค.render() ๋ฐฉ๋ฒ• ์„ ํฌํ•จ ํ•˜์ง€ ์•Š ์€ ๊ตฌ์„ฑ ์š” ์†Œ ๋Š” React ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ€ ์•„ ๋‹™ ๋‹ˆ ๋‹ค.render() ๋ฐฉ๋ฒ• ์€ ํ•ญ์ƒ React ์š” ์†Œ ๋ฅผ ๋˜ ๋Œ๋ ค ์ค ๋‹ˆ ๋‹ค. ์ด๋Ÿฐ ํ–‰ ์œ„ ๋Š” ๊ตฌ์„ฑ ์š”์†Œ ์˜ ํŠน์ง• ๊ณผ ๊ฐ™ ์Šต ๋‹ˆ ๋‹ค.๋‹ค์‹œ ๋ง ํ•˜๋ฉด React ๋Š” ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ ์— ์ถœ๋ ฅ ์ด ์žˆ์–ด ์•ผ ํ•œ๋‹ค ๊ณ  ์š”๊ตฌ ํ•  ๊ฒƒ ์ด๋‹ค.๊ตฌ์„ฑ ์š” ์†Œ ๋Š” ์ž…๋ ฅ ์— ๋”ฐ๋ผ ์ถœ๋ ฅ ์„ ๋˜ ๋Œ๋ ค ์ค ๋‹ˆ ๋‹ค. ์ด๋ ‡๊ฒŒ ๊ตฌ์„ฑ ์š” ์†Œ ๋ฅผ ๊ณ ๋ ค ํ•˜๋ฉด ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ€ ๋Œ€์ƒ ์ด ์•„ ๋‹Œ ํ•จ์ˆ˜ ์ฒ˜๋Ÿผ ๋Š๊ปด ์ง‘ ๋‹ˆ ๋‹ค.
๊ตฌ์„ฑ ์š” ์†Œ ๋Š” ํ•จ์ˆ˜ ์ž… ๋‹ˆ ๋‹ค.
์‹ค์ œ๋กœ React ๊ตฌ์„ฑ ์š” ์†Œ ๋ฅผ ํ•จ์ˆ˜ ๋กœ ๋ณผ ์ˆ˜ ์žˆ ์„ ๋ฟ๋งŒ ์•„๋‹ˆ ๋ผํ•จ์ˆ˜ ๋กœ ๊ตฌ์„ฑ ์š” ์†Œ ๋ฅผ ์‹คํ˜„ ํ•  ์ˆ˜ ์žˆ ์Šต ๋‹ˆ ๋‹ค.๋‹ค์Œ ์ฝ”๋“œ ๋Š” ํ•จ ์ˆ˜ ๋ฅผ ์‚ฌ์šฉ ํ•˜์—ฌ ์œ„ ์—์„œ ์ •์˜ ํ•œ ๊ตฌ์„ฑ ์š” ์†Œ ๋ฅผ ์–ด๋–ป๊ฒŒ ์‹คํ˜„ ํ•˜ ๋Š” ์ง€ ๋ณด ์—ฌ ์ค ๋‹ˆ ๋‹ค.
const HelloReact = () => 
Hello React!
;

๋ณด์‹œ ๋‹ค์‹œ ํ”ผ ๊ตฌ์„ฑ ์š” ์†Œ ๋ฅผ ์‹คํ˜„ ํ•˜ ๋Š” ๊ฐ„๋‹จ ํ•˜๊ณ  ์น˜๋ฐ€ ํ•œ ๋ฐฉ๋ฒ• ์ž… ๋‹ˆ ๋‹ค.
๋˜ํ•œ ํ•จ์ˆ˜ ์— ์ธ ์ž ๋ฅผ ์ „๋‹ฌ ํ•  ์ˆ˜ ์žˆ ์Šต ๋‹ˆ ๋‹ค:
const Hello = (props) => 
Hello {props.name}!
;

์œ„์˜ ์˜ˆ์ œ ์—์„œ props ์ธ ์ž ๋ฅผ ์ „ ๋‹ฌ ํ–ˆ ์Šต ๋‹ˆ ๋‹ค. ์—ฌ๊ธฐ props ๋Œ€์ƒ ์€ ํ•œ ๊ตฌ์„ฑ ์š”์†Œ ์—์„œ ๋‹ค๋ฅธ ๊ตฌ์„ฑ ์š”์†Œ ๋กœ ๋ฐ ์ด ํ„ฐ ๋ฅผ ์ „๋‹ฌ ํ•˜ ๋Š” ๋ฐ ์‚ฌ ์šฉ ๋ฉ ๋‹ˆ ๋‹ค.props ์˜ ๋ถˆ๋ณ€์„ฑ
์•Œ๋‹ค ์‹œ ํ”ผ props ๋Š” ๋ฐ” ๊ฟ€ ์ˆ˜ ์—†๋‹ค. ๊ทธ๋“ค ์„ ์ฝ ์„ ์ˆ˜ ๋Š” ์žˆ ์ง€๋งŒ ๋ฐ” ๊ฟ€ ์ˆ˜ ๋Š” ์—†๋‹ค.์ด๊ฒƒ ๋„ ๋ฐ”๋กœ React ๊ตฌ์„ฑ ์š”์†Œ ์˜ ํ•จ์ˆ˜ ํŠน์„ฑ ์ค‘์˜ ํ•˜๋‚˜ ์ด๋‹ค.props ๊ตฌ์„ฑ ์š”์†Œ ์˜ ์ž…๋ ฅ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆ๋ณ€์„ฑ ์„ ์ฃผ๋ฉด ๋ถ€์ž‘์šฉ ์„ ํ”ผ ํ•  ์ˆ˜ ์žˆ๋‹ค.์‹ค์ œ๋กœ ์ด๊ฒƒ ๋„ ํ•จ์ˆ˜ ์‹ ํ”„๋กœ ๊ทธ๋ž˜ ๋ฐ ์˜ ๊ธฐ๋ณธ ์›์น™ ์ค‘ ํ•˜๋‚˜ ์ด๋‹ค. ํ•จ ์ˆ˜ ๋Š” ์ž…๋ ฅ ํŒŒ ๋ผ ๋ฉ” ํ„ฐ ๋ฅผ ๋ณ€๊ฒฝ ํ•  ์ˆ˜ ์—†๋‹ค.
๋ฒˆ์—ญ: ์ˆœ์ˆ˜ ํ•จ์ˆ˜ ์˜ ์†Œ๊ฐœ, ์ด๊ฒƒ ์„ ์ถ”์ฒœ ํ•ฉ ๋‹ˆ ๋‹ค - ํ•จ์ˆ˜ ์‹ ํ”„๋กœ ๊ทธ๋ž˜ ๋ฐ - wiki, ๊ทธ๋ฆฌ๊ณ  ์ œ ๊ฐ€ ์ „์— ๋ฒˆ์—ญ ํ•œ ์ž๋ฐ” ์Šค ํฌ ๋ฆฝ ํŠธ ์˜ ํ•จ์ˆ˜ ์‹ ํ”„๋กœ ๊ทธ๋ž˜ ๋ฐ ์›๋ฆฌ
๋‹จ์ผ ํ•ญ๋ชฉ ๋ฐ์ดํ„ฐ ํ๋ฆ„React ์— ๋Œ€ํ•œ ๋˜ ๋‹ค๋ฅธ ํŠน์„ฑ ์€ ๋‹จ์ผ ๋ฐ์ดํ„ฐ ํ๋ฆ„ ์ด๋‹ค.์ด๊ฒƒ ์€ ๊ตฌ์„ฑ ์š”์†Œ ์˜ ์ฐจ์› ๊ตฌ์กฐ ์—์„œ ๋ฐ์ดํ„ฐ ๊ฐ€ ๋น„๊ต์  ๋†’ ์€ ๊ตฌ์„ฑ ์š”์†Œ ์—์„œ ๋น„๊ต์  ๋‚ฎ์€ ๊ตฌ์„ฑ ์š”์†Œ ๋กœ ํ˜๋Ÿฌ ๊ฐ€ ์•ผ ํ•œ ๋‹ค ๋Š” ๊ฒƒ ์„ ์˜๋ฏธ ํ•˜ ๋ฉฐ, ๋ฐ˜๋Œ€๋กœ ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€ ์ด๋‹ค.๋งŒ์•ฝ ์šฐ๋ฆฌ ๊ฐ€ ๊ตฌ์„ฑ ์š” ์†Œ ๋ฅผ ๋Œ€์ƒ ์œผ๋กœ ๋ณธ๋‹ค ๋ฉด, ์ด ๊ด€์  ์€ ์ข€ ์–ต ์ง€ ์Šค ๋Ÿฌ ์›Œ ๋ณด์ผ ๊ฒƒ ์ด๋‹ค.๋ฐ˜๋Œ€๋กœ ์šฐ๋ฆฌ ๊ฐ€ ํ•จ์ˆ˜ ์˜ ์ธก๋ฉด ์—์„œ ๊ตฌ์„ฑ ์š” ์†Œ ๋ฅผ ๊ณ ๋ ค ํ•˜๋ฉด ์ž ์—ฐ ์Šค ๋Ÿฌ ์›Œ ๋ณด์ธ๋‹ค.
๋‹ค์Œ ์ฝ”๋“œ ๋ฅผ ๊ณ ๋ ค ํ•ด ๋ณด ์„ธ ์š”.
class App extends Component {
  render() {
    return ()
  };
}

class Hello extends Component {
  render() {
    return (
Hello {props.name}!
); } }

์˜ˆ ๋ฅผ ๋“ค ์–ด ๋‘ ๊ฐœ์˜ ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ€ ์žˆ ์Šต ๋‹ˆ ๋‹ค. App ๊ตฌ์„ฑ ์š” ์†Œ ๋Š” Hello ๊ตฌ์„ฑ ์š” ์†Œ ๋ฅผ ์‚ฌ์šฉ ํ•˜์—ฌ "Hello React!" ๋ฅผ ๋ณด ์—ฌ ์ค ๋‹ˆ ๋‹ค.์ด ๋™์‹œ์— ์˜ˆ ์—์„œ ๋„ ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ„ ์˜ ์ฐจ์› ๊ตฌ ์กฐ ๋ฅผ ์•”์‹œ ์  ์œผ๋กœ ์ •์˜ ํ–ˆ๋‹ค.๊ทธ๋Ÿฌ๋‚˜ ์–ผํ• ๋ณด๋ฉด name ์†์„ฑ ์„ ํ†ต ํ•ด ๋ฐ์ดํ„ฐ ์˜ ํ๋ฆ„ ์„ ์•Œ ์ˆ˜ ์—†๋‹ค.
์ด์ œ ํ•จ์ˆ˜ ๋กœ ์ˆ˜ ์ • ๋œ ์ฝ”๋“œ ๋ฅผ ์‚ด ํŽด ๋ณด ์ž.
const App = () => ;
const Hello = (props) => 
Hello {props.name}!
;

์œ„์˜ ๊ตฌ์„ฑ ์š”์†Œ ์˜ ๋“ฑ๊ธ‰ ๊ตฌ ์กฐ ๋ฅผ ํ†ต ํ•ด ์•Œ ์ˆ˜ ์žˆ ๋“ฏ ์ด App() ์™€ Hello() ๋‘ ํ•จ์ˆ˜ ์˜ ์กฐํ•ฉ ์— ๋ถˆ๊ณผ ํ•˜ ๋‹ค.๋„ˆ ๋„ ๊ทธ๊ฒƒ ์„ ์•„๋ž˜ ์˜ ๋‚ด์šฉ ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
const App = () => Hello("React");

์œ„์˜ ์˜ˆ ์—์„œ 'React' ํ…์ŠคํŠธ ๊ฐ€ ์•ฑ ๊ตฌ์„ฑ ์š”์†Œ ์—์„œ ์–ด๋–ป๊ฒŒ ์ „๋‹ฌ ๋˜ ๋Š” ์ง€ ๋šœ๋ ทํ•˜๊ฒŒ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
์—ฌ๊ธฐ ์›๋ฌธ์˜ ์˜ˆ ์—์„œ ์‚ฌ์šฉ ํ•˜ ๋Š” ๊ฒƒ ์€const App = () => Hello("John"); ๊ธ€ ์˜ 'React' ์™€ ์ผ์น˜ ํ•˜์ง€ ์•Š ์•„์„œ ์˜ˆ ์—์„œ ์ „๋‹ฌ ํ•œ ๋ฌธ์•ˆ ์„ ๊ณ  ์ณค ์Šต ๋‹ˆ ๋‹ค. ํ—คํ—ค...
๊ทธ๋ฃน vs ์ƒ์†
๋Œ€์ƒ ์„ ๋Œ€์ƒ ์œผ๋กœ ํ•˜ ๋Š” ํ”„๋กœ ๊ทธ๋ž˜ ๋ฐ ๋ฒ”๋ก€ ์—์„œ ํด๋ž˜์Šค ์— ๋Œ€ํ•ด ์„œ ๋Š” ๊ณ„์Šน ์„ ํ•˜๋‚˜์˜ ๊ธฐ์ค€ ์œผ๋กœ ๋ณด๊ธฐ ์‰ฝ๋‹ค.๊ทธ๋Ÿฌ๋‚˜ ํ•จ์ˆ˜ ์˜ ์ธก๋ฉด ์—์„œ React ๊ตฌ์„ฑ ์š” ์†Œ ๋ฅผ ๊ณ ๋ ค ํ•˜๋ฉด ๊ณ„์Šน ์ด ์ž ์—ฐ ์Šค ๋Ÿฝ ์ง€ ๋ชป ํ•˜ ๋‹ค.
์˜ˆ ๋ฅผ ๋“ค ์–ด 'ํ™˜์˜ ๋ฉ”์‹œ์ง€' ๋ฅผ ํ‘œ์‹œ ํ•  ์ˆ˜ ์žˆ ๋„๋ก ๊ตฌ์„ฑ ์š” ์†Œ ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•˜ ๊ฒ  ๋‹ค ๊ณ  ๊ฐ€์ • ํ•ฉ ๋‹ˆ ๋‹ค.๋‹ค์Œ ์˜ˆ ์™€ ๊ฐ™์€ Hello ๊ตฌ์„ฑ ์š”์†Œ ์™€ ์กฐํ•ฉ ํ•˜์—ฌ ์ƒˆ ๊ตฌ์„ฑ ์š” ์†Œ ๋ฅผ ๋งŒ ๋“ค ์ˆ˜ ์žˆ ์Šต ๋‹ˆ ๋‹ค.
const HelloAndWelcome = (props) => 

Welcome to React!

;

ํŽ˜ ์ด ์Šค ๋ถ ํŒ€ ์ด ๋ฐ ํžŒ ๋ฐ” ์™€ ๊ฐ™์ด ๊ณ„์Šน ์ด ํ•„์š” ํ•œ ๊ฒฝ ์šฐ ๋Š” ์ •๋ง ๋“œ๋ฌผ๋‹ค.
๊ณ ๊ธ‰ ๊ตฌ์„ฑ ์š”์†Œ ์™€ ๊ณ ๊ธ‰ ํ•จ์ˆ˜
๊ณ ๊ธ‰ ๊ตฌ์„ฑ ์š” ์†Œ ๋Š” Hello ํ”„๋กœ ๊ทธ๋ž˜ ๋ฐ ์—์„œ ํ”ํžˆ ๋ณผ ์ˆ˜ ์žˆ ๋Š” ๋ชจ๋ธ ์ด๋‹ค.์ƒˆ ๊ตฌ์„ฑ ์š” ์†Œ ๋ฅผ ๋งŒ ๋“ค ๊ธฐ ์œ„ํ•ด ๊ตฌ์„ฑ ์š”์†Œ ๋…ผ ๋ฆฌ ๋ฅผ ๋‹ค์‹œ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ ์Šต ๋‹ˆ ๋‹ค.์‰ฝ๊ฒŒ ๋ง ํ•˜๋ฉด ๊ณ ๊ธ‰ ๊ตฌ์„ฑ ์š” ์†Œ ๋Š” ํ•˜๋‚˜์˜ ํ•จ์ˆ˜ ์ž… ๋‹ˆ ๋‹ค. ํ•˜๋‚˜์˜ ๊ตฌ์„ฑ ์š” ์†Œ ๋ฅผ ์ž…๋ ฅ ์œผ๋กœ ํ•˜๊ณ  ์ƒˆ๋กœ์šด ๊ตฌ์„ฑ ์š” ์†Œ ๋ฅผ ์ถœ๋ ฅ ์œผ๋กœ ๋˜ ๋Œ๋ ค ์ค ๋‹ˆ ๋‹ค.๋‹ค์Œ์€ ๊ณ ๊ธ‰ ๊ตฌ์„ฑ ์š”์†Œ ์˜ ์˜ˆ์ œ ์ž… ๋‹ˆ ๋‹ค.
const AddWelcome = (GreetingComponent) => {
  class TheNewComponent extends Component {
    render() {
      return (
        

Welcome to React!

); } } return TheNewComponent; };

ํ•จ์ˆ˜ React ๋Š” AddWelcome() ์ธ ์ž ๋ฅผ ๋ฐ› ์•„๋“ค ์ด ๊ณ  ์ƒˆ ๊ตฌ์„ฑ ์š”์†Œ GreetingComponent ๊ฐ€ ์ •์˜ ํ•œ TheNewComponent ๋ฐฉ๋ฒ• ์—์„œ ์‚ฌ์šฉ ํ•ฉ ๋‹ˆ ๋‹ค.์ด ์ƒˆ ๊ตฌ์„ฑ ์š” ์†Œ ๋Š” ์ถœ๋ ฅ ํ›„ ํ™˜์˜ ๋ฉ” ์‹œ ์ง€ ๋ฅผ ์ถ”๊ฐ€ ํ•  ๋ฟ ์ž… ๋‹ˆ ๋‹ค.๋งˆ์ง€๋ง‰ ์œผ๋กœ ํ•จ์ˆ˜ render() ๋Š” ์ƒˆ ๊ตฌ์„ฑ ์š” ์†Œ ๋ฅผ ๋˜ ๋Œ๋ ค ์ค ๋‹ˆ ๋‹ค.
๋‹ค์Œ ์˜ˆ์ œ ์™€ ๊ฐ™์ด ์ด ๊ธฐ๋Šฅ ์„ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ ์Šต ๋‹ˆ ๋‹ค.
const HelloAndWelcome = AddWelcome(Hello);
GreetingComponent ํฌ์žฅ AddWelcome() ๊ตฌ์„ฑ ์š” ์†Œ ๋ฅผ ์‚ฌ์šฉ ํ•˜๋ฉด ์ƒˆ ๊ตฌ์„ฑ ์š” ์†Œ ๋ฅผ ์–ป ์„ ์ˆ˜ ์žˆ ์Šต ๋‹ˆ ๋‹ค.
์œ„์˜ ์˜ˆ ์—์„œ ๊ณ ๊ธ‰ ํ•จ์ˆ˜ AddWelcome() ๋ฅผ ํ•จ์ˆ˜ ๋กœ ๋‹ค์‹œ ์ •๋ฆฌ ํ•  ์ˆ˜ ์žˆ ์Šต ๋‹ˆ ๋‹ค.
const AddWelcome = (GreetingComponent) => {
  const TheNewComponent = (props) => 

Welcome to React!

; return TheNewComponent; };

๋ณด์‹œ ๋‹ค์‹œ ํ”ผ ์ด๊ฒƒ ์€ ๊ณ ๊ธ‰ ํ•จ์ˆ˜ ์™€ ๊ฐ™ ์Šต ๋‹ˆ ๋‹ค. ์ด ํ•จ ์ˆ˜ ๋Š” ํ•จ ์ˆ˜ ๋ฅผ ๋ฐ› ์•„๋“ค ์—ฌ ์ƒˆ๋กœ์šด Hello ์š” ์†Œ ๋ฅผ ๋˜ ๋Œ๋ ค ์ค ๋‹ˆ ๋‹ค.
๊ตฌ์„ฑ ์š”์†Œ ์™€ ์ƒํƒœ
์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์ƒ ํƒœ ๋Š” ์‹œ๊ฐ„ ์— ๋”ฐ๋ผ ๋ณ€ํ™” ํ•˜ ๋Š” ๋ฐ์ดํ„ฐ ์„ธํŠธ ์ž… ๋‹ˆ ๋‹ค.ํ•จ์ˆ˜ ์‹ ํ”„๋กœ ๊ทธ๋ž˜ ๋ฐ ๋ฒ”๋ก€ ๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์—์„œ ์‚ฌ์šฉ ๋˜ ๋Š” ์ƒ ํƒœ ๋ฅผ ํ”ผ ํ•˜ ๋Š” ๋ฐ ๋ชฉ์  ์„ ๋‘”๋‹ค.์‹ค์ œ๋กœ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ƒํƒœ ๊ด€ ๋ฆฌ ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์—์„œ ๋ณต์žก์„ฑ ์˜ ์ฃผ์š” ์›์ฒœ ์ค‘ ํ•˜๋‚˜ ์ด๋‹ค.๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ ์ด ์—† ์œผ ๋ฉด ์•ˆ ๋˜ ๊ธฐ ๋•Œ๋ฌธ์— ์ ์–ด๋„ ์‚ฌ์šฉ ์„ ์ œํ•œ ํ•˜๊ณ  ๊ด€๋ฆฌ ํ•˜๊ธฐ ์‰ฝ๊ฒŒ ํ•ด ์•ผ ํ•œ๋‹ค.AddWelcome() ์˜ ๊ฐœ๋ฐœ ์•ˆ๋‚ด ์„œ ๋Š” ๋ฌด ์ƒํƒœ ๊ตฌ์„ฑ ์š”์†Œ ์˜ ์ƒ ์„ฑ ์„ ์ถ”์ง„ ํ–ˆ๋‹ค. ์ฆ‰, ๋ฌด React ๊ตฌ์„ฑ ์š”์†Œ ์ด๋‹ค.์ด ๊ตฌ์„ฑ ์š”์†Œ ์˜ ์ถœ๋ ฅ ์€ ๋“ค ์–ด ์˜ค ๋Š” ๊ฒƒ React ์— ๋งŒ ๋‹ฌ ๋ ค ์žˆ๋‹ค.๋ฌด ์ƒํƒœ ๊ตฌ์„ฑ ์š” ์†Œ ๋Š” ์ˆœ ํ•จ์ˆ˜ ์ฒ˜๋Ÿผ ๋ณด์ด ์ง€๋งŒ ์‹ค์ œ๋กœ ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€ ์ž… ๋‹ˆ ๋‹ค.
ํ•˜์ง€๋งŒ ์•Œ๋‹ค ์‹œ ํ”ผ state ์„ ์‚ฌ์šฉ ํ•˜์ง€ ์•Š ๊ณ  ๋ณต์žก ํ•œ ํ”„๋กœ๊ทธ๋žจ ์„ ๋งŒ ๋“ค ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.๋…ธ ํ•˜ ์šฐ ๋Š” ์• ํ”Œ ๋ฆฌ ์ผ€ ์ด ์…˜ ์˜ ๋ช‡ ๊ฐ€์ง€ ์  ์—์„œ ๊ฒฉ ๋ฆฌ props ํ•˜ ๋Š” ๊ฒƒ ์œผ๋กœ ํ•œ ์  ์—์„œ ๋” ์ข‹๋‹ค.์ด ์ •์ฑ… ์€ ๊ฐœ๋ฐœ ์ž ์— ๊ฒŒ ๋ฃจํŠธ ๊ตฌ์„ฑ ์š”์†Œ ์—์„œ ์‚ฌ์šฉ ์ƒํƒœ ํ–ฅ์ƒ ์„ ์š”๊ตฌ ํ•ฉ ๋‹ˆ ๋‹ค.์ƒ๋ถ€ ๋…ธ๋“œ ์— ์ƒ ํƒœ ๋ฅผ ์œ ์ง€ ํ•ด ์•ผ ํ•˜๊ณ  ๊ทธ ํ›„ ๋Œ€ ๋Š” ๋ฌด ์ƒํƒœ ๊ตฌ์„ฑ ์š”์†Œ ์—ฌ์•ผ ํ•œ ๋‹ค ๋Š” ์–˜ ๊ธฐ๋‹ค.์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์šฐ ๋ฆฌ ๋Š” ํ•˜๋‚˜์˜ ๋ฃจํŠธ ๊ตฌ์„ฑ ์š”์†Œ ๋งŒ ๊ด€๋ฆฌ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒ ํƒœ ๋ฅผ ๋”์šฑ ์ž˜ ์ œ์–ด ํ•  ์ˆ˜ ์žˆ๋‹ค.
๊ฒฐ๋ก .
์ฒ˜์Œ์— state ์„ ์‚ฌ์šฉ ํ•œ ๊ฐœ๋ฐœ ์ž ์— ๊ฒŒ state ๋Š” ๋ณด๊ธฐ ์™€ ๊ฐ™์ด ํ•จ์ˆ˜ ์‹ ์ธ ์ฝ”๋”ฉ ์˜ ์›์น™ ์ด ์•„๋‹ˆ ๋ผ ๋Œ€์ƒ ์„ ๋Œ€์ƒ ์œผ๋กœ ํ•˜ ๋Š” ์›์น™ ์— ๋”์šฑ ์ ํ•ฉ ํ•˜ ๋‹ค.์ผ๋ฐ˜์ ์œผ๋กœ ์ด๊ฒƒ ์€ ๊ฐœ๋ฐœ ์ž๊ฐ€ ๋”์šฑ ์ •์‹ ์  ์œผ๋กœ ๊ฒ€์ฆ ํ•  ์ˆ˜ ์žˆ ๋Š” ์ฝ”๋“œ ๋ฅผ ๋งŒ ๋“ค ์ˆ˜ ์žˆ ๋„๋ก ํ•ฉ ๋‹ˆ ๋‹ค. ์˜ˆ ๋ฅผ ๋“ค ์–ด ์ž๋™ํ™” ํ…Œ์ŠคํŠธ ๋ฅผ ํ†ต ํ•ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์„ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ ์Šต ๋‹ˆ ๋‹ค.๋‚˜ ๋Š” React ์˜ ํ•จ์ˆ˜ ํŠน์„ฑ ์„ ์ถฉ๋ถ„ํžˆ ์ด์šฉ ํ•˜์—ฌ ์œ ์ง€ ํ•˜๊ธฐ ์‰ฌ ์šด ์ฝ”๋“œ ๋ฅผ ์ž‘์„ฑ ํ•  ๊ฒƒ ์„ ๊ฑด์˜ ํ•ฉ ๋‹ˆ ๋‹ค.
Andrea Chiarelli ๋Š” Beginning React ์˜ ์ €์ž ๋‹ค.
๋ณธ ๊ณ  ๋Š” ์ด๋ฏธ ์›๋ฌธ์˜ ์ž‘๊ฐ€ ์— ๊ฒŒ ์—ฐ๋ฝ ํ•˜๊ณ  ๋ฒˆ์—ญ ๊ถŒํ•œ ์„ ๋ถ€์—ฌ ํ•˜ ์˜€ ์œผ ๋‹ˆ, ์ „์žฌ ํ•  ๋•Œ ์›๋ฌธ์˜ ๋งํฌ ๋ฅผ ๋ณด์กด ํ•˜ ์‹œ๊ธฐ ๋ฐ” ๋ž ๋‹ˆ ๋‹ค.

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ