3.React

React๋ž€?

์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

React ์ปดํฌ๋„ŒํŠธ

์•„๋ž˜ ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง„ ํ•˜๋‚˜์˜ props (properties์˜ ์งง์€ ํ‘œํ˜„) ๊ฐ์ฒด ์ธ์ž๋ฅผ ๋ฐ›์€ ํ›„ React ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ ์œ ํšจํ•œ React ์ปดํฌ๋„ŒํŠธ์ด๋‹ค.

export default function Greeting({name}: {name: string}) {
 return (
  <p>Hello, {name}</p>
 );
}

React์—์„œ ์ปดํฌ๋„ŒํŠธ๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ผ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“ˆ์‹ ์ฝ”๋“œ ๋‹จ์œ„์ด๋‹ค. ์ปดํฌ๋„ŒํŠธ๋Š” ๋” ํฐ UI๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๋นŒ๋”ฉ ๋ธ”๋ก์œผ๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋™์ž‘ ๋ฐ ๋ชจ์–‘์„ ๊ฒฐ์ •ํ•˜๋Š” ๋…ผ๋ฆฌ, state(์ƒํƒœ) ๋ฐ props๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋‹ค.

์ปดํฌ๋„ŒํŠธ๋Š” functional์ด๊ฑฐ๋‚˜ ํด๋ž˜์Šค ๊ธฐ๋ฐ˜์ผ ์ˆ˜ ์žˆ๋‹ค. Functional ์ปดํฌ๋„ŒํŠธ๋Š” ๋‹จ์ˆœํžˆ props๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„๋“ค์ด๊ณ  JSX ์š”์†Œ๋ฅผ ์ถœ๋ ฅ์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ๋ฐ˜๋ฉด์— ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ์ปดํฌ๋„ŒํŠธ๋Š” React.Component ํด๋ž˜์Šค๋ฅผ ํ™•์žฅํ•˜๊ณ  JSX ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ Œ๋”๋ง ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” JavaScript ํด๋ž˜์Šค์ด๋‹ค.

์ปดํฌ๋„ŒํŠธ๋Š” ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๋กœ ๊ตฌ์„ฑ๋˜์–ด UI ์š”์†Œ์˜ ๊ณ„์ธต์  ๊ตฌ์กฐ๋ฅผ ํ—ˆ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋” ์ž‘๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฌ์šด ๋ถ€๋ถ„์œผ๋กœ ๋ณต์žกํ•œ UI๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

React๋Š” UI ์š”์†Œ๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” div, span ๋ฐ ๋ฒ„ํŠผ๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ๋‚ด์žฅ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ๋˜ํ•œ ๊ฐœ๋ฐœ์ž๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ UI์˜ ํŠน์ • ๋ถ€๋ถ„์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ๊ณ ์œ ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ์ปดํฌ๋„ŒํŠธ๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด์—์„œ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ UI๋ฅผ ๋ณด๋‹ค ์‰ฝ๊ฒŒ โ€‹โ€‹์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

React ๋ฆฌ๋ Œ๋”๋ง

React์—์„œ ๋ฆฌ๋ Œ๋”๋งํ•˜๋Š” ๊ฒƒ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ state(์ƒํƒœ)์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งํ•œ๋‹ค. ์ปดํฌ๋„ŒํŠธ ์š”์†Œ์˜ state(์ƒํƒœ) ๋˜๋Š” props๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค React๋Š” ์ž๋™์œผ๋กœ ์ปดํฌ๋„ŒํŠธ ์š”์†Œ์™€ ํ•ด๋‹น ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ ์š”์†Œ๋ฅผ ๋ฆฌ๋ Œ๋”๋งํ•˜์—ฌ ์—…๋ฐ์ดํŠธ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜์˜ํ•œ๋‹ค.

๋ฆฌ๋ Œ๋”๋ง์€ UI ์—…๋ฐ์ดํŠธ์— ๋ณด๋‹ค ํšจ์œจ์ ์ด๊ณ  ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ํ—ˆ์šฉํ•˜๋ฏ€๋กœ React์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์ด๋‹ค. ์ƒํƒœ์˜ ๋ณ€ํ™”๋ฅผ ๋ฐ˜์˜ํ•˜๊ธฐ ์œ„ํ•ด DOM์„ ์ˆ˜๋™์œผ๋กœ ์กฐ์ž‘ํ•˜๋Š” ๋Œ€์‹  React๋Š” ๊ฐ€์ƒ DOM๊ณผ diffing ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ UI๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ตœ์†Œ ๋ณ€๊ฒฝ ์„ธํŠธ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. ์ฆ‰, UI์˜ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ์—…๋ฐ์ดํŠธ๋˜๋ฏ€๋กœ ํŽ˜์ด์ง€ ์—…๋ฐ์ดํŠธ์— ํ•„์š”ํ•œ ์ž‘์—…๋Ÿ‰์ด ์ค„์–ด๋“ค๊ณ  ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋œ๋‹ค.

React๋Š” ๋˜ํ•œ useEffect ๋ฐ shouldComponentUpdate์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ํ›„ํฌ ๋ฐ ์ˆ˜๋ช… ์ฃผ๊ธฐ ๋ฉ”์„œ๋“œ(lifecycle methods)๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฆฌ๋ Œ๋”๋งํ•˜๋Š” ์‹œ๊ธฐ์™€ ๋ฐฉ๋ฒ•์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด shouldComponentUpdate๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ props ๋˜๋Š” state๊ฐ€ ํ˜„์žฌ ๊ฒƒ๊ณผ ๋‹ค๋ฅธ์ง€ ํ™•์ธํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ๋ฆฌ๋ Œ๋”๋ง์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฆฌ๋ Œ๋”๋ง์ด ํ•ญ์ƒ ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ๋ฐ”๋žŒ์งํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๋ผ๋Š” ์ ์— ์œ ์˜ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ๋ฐ”๋‹๋ผ JavaScript ๋˜๋Š” ํƒ€์‚ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ DOM์„ ์ˆ˜๋™์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์ด ๋” ํšจ์œจ์ ์ผ ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ๊ณผ๋„ํ•œ ๋ฆฌ๋ Œ๋”๋ง์€ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ปดํฌ๋„ŒํŠธ ์—…๋ฐ์ดํŠธ๋ฅผ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ์ด์ œ์ด์…˜ ๋˜๋Š” shouldComponentUpdate์™€ ๊ฐ™์€ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

IoC(Inversion of Control)

์ œ์–ด ์—ญ์ „์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ? ๊ฐ€์žฅ ๊ฐ„๋‹จํžˆ ์„ค๋ช…ํ•˜์ž๋ฉด ์šฉ์–ด ๊ทธ๋Œ€๋กœ ์ฝ”๋“œ์˜ ๋กœ์ง์ด ์ผ๋ฐ˜์ ์ธ ์ œ์–ด ํ๋ฆ„์ด ์•„๋‹ˆ๋ผ ์—ญ์ „๋œ ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

์šฐ๋ฆฌ๋Š” React ํ™˜๊ฒฝ์—์„œ view๊ฐ€ ๋ฌด์—‡์„ ํ•˜๋Š”์ง€ ์ •์˜ํ•˜์ง€ ์•Š๊ณ  (๋ช…๋ นํ˜•) view๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ณด์ผ์ง€๋ฅผ ์„ ์–ธํ•œ๋‹ค.(์„ ์–ธํ˜•)

React์—์„œ IoC(Inversion of Control)๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ state(์ƒํƒœ)์™€ ๋™์ž‘์„ ๋ช…์‹œ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๋ฐฉ์‹์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

React๊ฐ€ IoC๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ์ฃผ์š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋Š” ์ปดํฌ๋„ŒํŠธ ์š”์†Œ๊ฐ€ ์ž์ฒด state(์ƒํƒœ) ๋ฐ props๋ฅผ ์ˆ˜์‹  ๋ฐ ๊ด€๋ฆฌํ•˜๊ณ  ์ฝœ๋ฐฑ ๋ฐ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ ์š”์†Œ์™€ ํ†ต์‹ ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ ์š”์†Œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋ช…๋ นํ˜• ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋Œ€์‹  ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์›ํ•˜๋Š” state(์ƒํƒœ)์™€ ๋™์ž‘์„ ์ง€์ •ํ•˜๋Š” ๋ณด๋‹ค ์„ ์–ธ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์Šคํƒ€์ผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

React๋Š” ๋˜ํ•œ IoC๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ ์š”์†Œ์˜ ์ข…์†์„ฑ ์ฃผ์ž…์„ ๊ด€๋ฆฌํ•œ๋‹ค. ์ˆ˜๋™์œผ๋กœ ์ข…์†์„ฑ์„ ์ธ์Šคํ„ด์Šคํ™”ํ•˜๊ณ  ์ปดํฌ๋„ŒํŠธ ์š”์†Œ์— ์ฃผ์ž…ํ•˜๋Š” ๋Œ€์‹  React๋Š” ๊ฐ€์ƒ DOM ๋ฐ ์กฐ์ • ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•„์š”์— ๋”ฐ๋ผ ์ปดํฌ๋„ŒํŠธ ์š”์†Œ๋ฅผ ์ž๋™์œผ๋กœ ์ฃผ์ž…ํ•˜๊ณ  ์—…๋ฐ์ดํŠธํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ปดํฌ๋„ŒํŠธ ์š”์†Œ ๋ฐ ํ•ด๋‹น ์ข…์†์„ฑ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ๋ณด๋‹ค ํšจ์œจ์ ์ด๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋˜ํ•œ React๋Š” useState ๋ฐ useEffect์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ํ›„ํฌ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณด๋‹ค ์„ ์–ธ์ ์ด๊ณ  ๊ธฐ๋Šฅ์ ์ธ ๋ฐฉ์‹์œผ๋กœ state(์ƒํƒœ) ๋ฐ side effects๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ์ด๋Š” ๋ช…๋ นํ˜• ์ฝ”๋“œ์˜ ํ•„์š”์„ฑ์„ ์ค„์ด๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ๋ฆ„ ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ๋ณด๋‹ค ์ง๊ด€์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ œ๊ณตํ•œ๋‹ค.

์ „๋ฐ˜์ ์œผ๋กœ React์˜ IoC ๊ตฌํ˜„์€ ์„ ์–ธ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐ ํšจ์œจ์ ์ธ ์ปดํฌ๋„ŒํŠธ ์š”์†Œ ๊ด€๋ฆฌ์— ์ค‘์ ์„ ๋‘๊ณ  ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ตฌ์ถ•์— ๋Œ€ํ•œ ๋ชจ๋“ˆ์‹ ๋ฐ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ํ—ˆ์šฉํ•œ๋‹ค.

์œ„์˜ ๋ธ”๋กœ๊ทธ์—์„œ ํ•ด๋‹น ๋‚ด์šฉ์— ๋Œ€ํ•ด์„œ ์ฐธ๊ณ ํ•˜์˜€๋Š”๋ฐ ์ œ์–ด์˜ ์—ญ์ „์„ ๊ณต๋ถ€ํ•˜๋‹ค๋ณด๋‹ˆ ๋ช…๋ นํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ์„ ์–ธํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์•Œ์•„๋ณด๊ฒŒ ๋˜๊ณ  ์ถ”์ƒํ™” ๋“ฑ๋“ฑ... ์ƒ๊ฐํ•ด๋ด์•ผ ํ•  ๋ถ€๋ถ„๋“ค์ด ๋งŽ์€ ๊ฒƒ ๊ฐ™๋‹ค.

๋ช…๋ นํ˜•(์ ˆ์ฐจ์ ) ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๋‹น์‹ ์ด ์–ด๋–ค ์ผ์„ ์–ด๋–ป๊ฒŒ ํ•  ๊ฒƒ์ธ๊ฐ€์— ๊ด€ํ•œ ๊ฒƒ์ด๊ณ , ์„ ์–ธ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๋‹น์‹ ์ด ๋ฌด์—‡์„ ํ•  ๊ฒƒ์ธ๊ฐ€์— ๊ด€ํ•œ ๊ฒƒ์ด๋‹ค.

Library VS Framework

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ฃผ์š” ์ฐจ์ด์ ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ€์ง€๋Š” ์ œ์–ด ๋ฐ ์ฑ…์ž„์˜ ์ •๋„๋‹ค.

Library

  • ๊ฐœ๋ฐœ์ž๊ฐ€ ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฏธ๋ฆฌ ์ž‘์„ฑ๋œ ์ฝ”๋“œ ๋ชจ์Œ์ด๋‹ค.

  • ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ๋ฅผ ์™„์ „ํžˆ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ณ  ์–ธ์ œ ์–ด๋–ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ• ์ง€ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์ผ๋ฐ˜์ ์œผ๋กœ ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ์ž๊ฐ€ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ์ผ๋ จ์˜ ๋„๊ตฌ ๋˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํŠน์ • ์•„ํ‚คํ…์ฒ˜๋‚˜ ์ œ์–ด ํ๋ฆ„์„ ์ ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ ๊ธฐ์กด ๊ธฐ๋Šฅ์„ ๋ณด๊ฐ•ํ•˜๊ณ  ํ™•์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

Framework

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ•์„ ์œ„ํ•œ ํŠน์ • ๊ตฌ์กฐ ๋ฐ ์ œ์–ด ํ๋ฆ„์„ ์ œ๊ณตํ•˜๋Š” ์‚ฌ์ „ ๊ตฌ์ถ•๋œ ๋„๊ตฌ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ์ง€์นจ ์ง‘ํ•ฉ์ด๋‹ค.

  • ์ผ๋ฐ˜์ ์œผ๋กœ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๊ตฌ์ถ•๋˜๋Š” ๋ฐฉ์‹๊ณผ ํ•ด๋‹น ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์„œ๋กœ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ์ง€์ •ํ•˜๋Š” ์ผ๋ จ์˜ ๊ทœ์น™, ํŒจํ„ด ๋ฐ ์ถ”์ƒํ™”๊ฐ€ ํฌํ•จ๋œ๋‹ค.

  • ์ข…์ข… MVC ๋˜๋Š” MVVM๊ณผ ๊ฐ™์€ ๋ฏธ๋ฆฌ ์ •์˜๋œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ ๊ฐœ๋ฐœ์ž๊ฐ€ ํŠน์ • ์ฝ”๋”ฉ ์Šคํƒ€์ผ ๋ฐ ํŒจํ„ด์„ ์ค€์ˆ˜ํ•˜๋„๋ก ์š”๊ตฌํ•œ๋‹ค.

Last updated