๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ

๐Ÿ“บ Front End/- React, Next.js42

[๋ฆฌ์•กํŠธ ๋ถ„์„ํ•˜๊ธฐ] ๋ฆฌ์•กํŠธ๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ๋ผ์šฐํŒ… ํ•˜๋Š” ๋ฐฉ๋ฒ• (2) ๋ถ€์ œ :: Broswer History API๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํŽ˜์ด์ง€ ๋ผ์šฐํŒ… ํ•˜๊ธฐ ์ด ๊ธ€์€ ๋ฆฌ์•กํŠธ์˜ ์ดˆ์‹ฌ์ž๋“ค์„ ์œ„ํ•œ ๊ธ€๋กœ ๊นŠ์€ ๋‚ด์šฉ์€ ์ตœ๋Œ€ํ•œ ๋ฐฐ์ œํ•˜๊ณ  ์‰ฌ์šด ๊ฐœ๋…์— ๋Œ€ํ•ด ์ž‘์„ฑํ•˜์˜€๊ณ , ๋ฆฌ์•กํŠธ์˜ ์ง„์ž… ์žฅ๋ฒ…์„ ๋‚ฎ์ถ”๊ธฐ ์œ„ํ•œ ์š”์†Œ๋กœ ์–ด๋ ค์šด ๋‚ด์šฉ์ด ์ƒ๋žต๋˜์–ด ์žˆ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ถ€๋ถ„์€ ๊ฝค๋‚˜ ํ•ต์‹ฌ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— 3๋ถ€์ž‘์œผ๋กœ ๋‚˜๋ˆ ์„œ ์„ค๋ช…ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค. ํ•ด๋‹น ๊ธ€์— ๋Œ€ํ•ด์„œ ๋ณธ์ธ์ด ์ด ๋ถ€๋ถ„์€ ๋„˜์–ด๊ฐ€๋„ ๋˜๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ถ€๋ถ„์€ ๋„˜์–ด๊ฐ€์„œ ํ™•์ธํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๊ธธ์ง€ ์•Š์€ ๊ธ€์ด๋ฏ€๋กœ ๊ฐ€๋ณ๊ฒŒ ์ฝ๋Š” ๊ฒƒ๋„ ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋‹ค. 1๋ถ€ ๋ฆฌ์•กํŠธ๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ๋ผ์šฐํŒ… ํ•˜๋Š” ๋ฐฉ๋ฒ• 2๋ถ€ Broswer History API๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํŽ˜์ด์ง€ ๋ผ์šฐํŒ… ํ•˜๊ธฐ 3๋ถ€ react-router-dom์„ ์ด์šฉํ•ด์„œ ํŽ˜์ด์ง€ ๋ผ์šฐํŒ… ํ•˜๊ธฐ ์šฐ๋ฆฌ๋Š” ์ €๋ฒˆ ์‹œ๊ฐ„์— ๋ฆฌ์•กํŠธ๊ฐ€ ํŽ˜์ด์ง€์—์„œ ์–ด๋–ค ์‹์œผ๋กœ ๋ผ์šฐํŒ… ๋˜๊ธธ ์›ํ•˜๋Š”์ง€? ์— ๋Œ€ํ•ด์„œ ์ž ๊น ์•Œ์•„๋ณด์•˜๋‹ค.. 2020. 7. 20.
[๋ฆฌ์•กํŠธ ๋ถ„์„ํ•˜๊ธฐ] ๋ฆฌ์•กํŠธ๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ๋ผ์šฐํŒ… ํ•˜๋Š” ๋ฐฉ๋ฒ• (1) ๋ถ€์ œ :: Single Page Application์ด ๋ฌด์—‡์ด๊ณ  ์–ด๋–ป๊ฒŒ ๋ฆฌ์•กํŠธ์—์„œ ์‚ฌ์šฉํ• ๊นŒ? ์ด ๊ธ€์€ ๋ฆฌ์•กํŠธ์˜ ์ดˆ์‹ฌ์ž๋“ค์„ ์œ„ํ•œ ๊ธ€๋กœ ๊นŠ์€ ๋‚ด์šฉ์€ ์ตœ๋Œ€ํ•œ ๋ฐฐ์ œํ•˜๊ณ  ์‰ฌ์šด ๊ฐœ๋…์— ๋Œ€ํ•ด ์ž‘์„ฑํ•˜์˜€๊ณ , ๋ฆฌ์•กํŠธ์˜ ์ง„์ž… ์žฅ๋ฒ…์„ ๋‚ฎ์ถ”๊ธฐ ์œ„ํ•œ ์š”์†Œ๋กœ ์–ด๋ ค์šด ๋‚ด์šฉ์ด ์ƒ๋žต๋˜์–ด ์žˆ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ถ€๋ถ„์€ ๊ฝค๋‚˜ ํ•ต์‹ฌ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— 3๋ถ€์ž‘์œผ๋กœ ๋‚˜๋ˆ ์„œ ์„ค๋ช…ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค. ํ•ด๋‹น ๊ธ€์— ๋Œ€ํ•ด์„œ ๋ณธ์ธ์ด ์ด ๋ถ€๋ถ„์€ ๋„˜์–ด๊ฐ€๋„ ๋˜๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ถ€๋ถ„์€ ๋„˜์–ด๊ฐ€์„œ ํ™•์ธํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๊ธธ์ง€ ์•Š์€ ๊ธ€์ด๋ฏ€๋กœ ๊ฐ€๋ณ๊ฒŒ ์ฝ๋Š” ๊ฒƒ๋„ ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋‹ค. 1๋ถ€ ๋ฆฌ์•กํŠธ๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ๋ผ์šฐํŒ… ํ•˜๋Š” ๋ฐฉ๋ฒ• 2๋ถ€ Broswer History API๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํŽ˜์ด์ง€ ๋ผ์šฐํŒ… ํ•˜๊ธฐ 3๋ถ€ react-router-dom์„ ์ด์šฉํ•ด์„œ ํŽ˜์ด์ง€ ๋ผ์šฐํŒ… ํ•˜๊ธฐ ์ด๋ฒˆ ์ฃผ์ œ์— ๋Œ€ํ•ด์„œ ์ด์•ผ๊ธฐ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„  ์šฐ์„  ํŽ˜์ด์ง€๊ฐ€ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ง€๋Š”์ง€ ์•Œ์•„์•ผ ํ•œ.. 2020. 7. 20.
[๋ฆฌ์•กํŠธ ๋ถ„์„ํ•˜๊ธฐ] ๋ฆฌ์•กํŠธ์˜ ํ•ต์‹ฌ JSX์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. (๋ถ€์ œ :: ๋ฆฌ์•กํŠธ์—์„œ๋Š” JSX๋ฅผ ์–ด๋–ป๊ฒŒ ์ด์šฉํ• ๊นŒ?) ์šฐ๋ฆฌ๋Š” ์ง€๊ธˆ๊นŒ์ง€ ๊ณ„์† ๋ฆฌ์•กํŠธ์— ๋Œ€ํ•œ ํ•ต์‹ฌ์— ๋Œ€ํ•ด์„œ ์ด์•ผ๊ธฐ๋ฅผ ํ–ˆ์—ˆ๋‹ค. ์ด์ œ ๊ทธ ๋ฆฌ์•กํŠธ๋ผ๋Š” ๊ฒƒ์ด ์–ด๋–ค ์‹์œผ๋กœ ๋Œ์•„๊ฐ€๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž. JSX JSX๋Š” JavascriptXML์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ์ด๋Š” Javascript๋„ ์•„๋‹ˆ๊ณ  HTML๋„ ์•„๋‹Œ ๊ฒƒ์ด๋‹ค. ์ •ํ™•ํžˆ๋Š” ์Šคํฌ๋ฆฝํŠธ์— ํ™•์žฅ ๋ฌธ๋ฒ•์ด๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ์ธ๋ฐ, ์šฐ๋ฆฌ๋Š” ๋ฆฌ์•กํŠธ๋กœ ์ด JSX๋ฅผ ํ• ์šฉํ•˜์—ฌ UI๋ฅผ ๊ตฌ์„ฑํ•  ๊ฒƒ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ๋ง ํ•˜๋ฉด ๋„ˆ๋ฌด ์–ด๋ ค์šฐ๋ฏ€๋กœ ์šฐ๋ฆฌ๊ฐ€ create-react-app์„ ํ†ตํ•ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ , ํ•ด๋‹น ์ฝ”๋“œ์—์„œ JSX๋ž€ ๋ฌด์—‡์ธ์ง€ ๋ณด์ด๊ฒ ๋‹ค. ์ฝ”๋“œ๋กœ ๋ด๋ณด์ž ์šฐ๋ฆฌ์˜ ํ”„๋กœ์ ํŠธ์—์„œ Index.js์— ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ํ•œ ๋ฒˆ ๋ด๋ณด์ž. ReactDOM.render();๋ผ๋Š” ๊ตฌ๋ฌธ์—์„œ ์šฐ๋ฆฌ๋Š” JSX๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค. ์›๋ž˜ ์ฝ”๋“œ๋ฅผ ์ง€์›Œ๋ณด๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑํ•ด๋ณด์ž... 2020. 7. 20.
[๋ฆฌ์•กํŠธ ๋ถ„์„ํ•˜๊ธฐ] Create-React-App์œผ๋กœ ๋ฆฌ์•กํŠธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•ด๋ณด์ž. ์ง€๋‚œ ์‹œ๊ฐ„์—๋Š” ์™œ ์šฐ๋ฆฌ๋Š” ๋ฆฌ์•กํŠธ์™€ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€์™€ Create-React-App์ด ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” create-reacat-app์œผ๋กœ ์‹ค์ œ๋กœ ๋ฆฌ์•กํŠธ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•ด๋ณด์ž. ํ•ด๋‹น ๊ฒŒ์‹œ๋ฌผ์˜ ์†Œ์Šค์ฝ”๋“œ๋Š” ๋ฆฌ์•กํŠธ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์˜ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ๋‹ค ์“ด ๊ธ€์ž…๋‹ˆ๋‹ค. ๋ฆฌ์•กํŠธ๋Š” 4 ๊ฐ€์ง€์˜ ๋ฐฉ์‹์œผ๋กœ Create-React-App์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. NPM NPX Yarn CDN (react) ๋ณ„๋กœ ์–ด๋ ต์ง€ ์•Š์œผ๋ฏ€๋กœ ์ฐจ๋ก€๋Œ€๋กœ ๋ด๋ณด์ž. ์ด๋“ค์ค‘์— ๊ผญ ๋ฌด์—‡์„ ์จ์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์—†๋‹ค. ๊ทธ๋ƒฅ ์›ํ•˜๋Š” ๋„๊ตฌ๋กœ ์‹œ์ž‘์„ ํ•˜๋ฉด๋œ๋‹ค. npm์œผ๋กœ create-react-app ์‹œ์ž‘ํ•˜๊ธฐ npm install -g ๋Š” pc์— globalํ•˜๊ฒŒ ์„ค์ •ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. npx๋กœ create-r.. 2020. 7. 20.
[๋ฆฌ์•กํŠธ ๋ถ„์„ํ•˜๊ธฐ] React๋ฅผ ๋ถ„์„ํ•ด๋ณด์ž. (๋ถ€์ œ :: create-react-app์— ๋Œ€ํ•ด ๋ถ„์„ํ•ด๋ณด์ž) ๋ฆฌ์•กํŠธ๋ž€ ๋ฌด์—‡์ผ๊นŒ? ๋ฆฌ์•กํŠธ๋Š” ํŽ˜์ด์Šค๋ถ์—์„œ ๊ฐœ๋ฐœํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ๋Œ€๋ถ€๋ถ„ ์˜คํ•ดํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ๋ฆฌ์•กํŠธ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ณ ์žˆ๋Š” ์—ฌ๋Ÿฌ javascript ํ”„๋ ˆ์ž„์›Œํฌ๋“ค๊ณผ ํ™•์‹คํžˆ ๋‹ค๋ฅด๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ์˜คํ•ดํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋‚ด์šฉ์€ React๋Š” ์›น ๊ฐœ๋ฐœ์— ๋ชจ๋“  ๊ฒƒ์„ ์ œ๊ณตํ•œ๋‹ค๊ณ  ์•Œ๊ณ  ์žˆ๋Š”๋ฐ, ์‚ฌ์‹ค React๋Š” UI๋ฅผ ์กฐ๊ธˆ ๋” ํšจ์œจ์ ์œผ๋กœ ๊ตฌ์กฐ์ ์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” UI๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. React ์ž…๋ฌธํ•˜๊ธฐ ์šฐ๋ฆฌ๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๊ฐœ๋ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„  ์šฐ๋ฆฌ์—๊ฒŒ ํ•„์š”ํ•œ ๋ผ์šฐํŒ…, ๋นŒ๋“œ ํ™˜๊ฒฝ ๊ตฌ์„ฑ, ๋ถ„์„๋“ฑ๊ณผ ๊ฐ™์€ ์„ธํŒ…์„ ์ง์ ‘ ๊ตฌ์„ฑํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์ด ์žˆ๋‹ค. ์˜ˆ์ „์—๋Š” ๊ฐœ์ธ๋“ค์ด ๋‚ด๋Š” Bolierplate ๋ฆฌ์•กํŠธ์— ์˜์กดํ•ด์„œ ๊ฐœ๋ฐœ์„ ํ–ˆ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ, ๊ทธ์— ๋”ฐ๋ฅธ ๊ฐ๊ฐ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์— ๋ถˆํŽธํ•จ์„ ๋Š๋‚€ ๊ฐœ๋ฐœ์ž.. 2020. 7. 19.
[๋ฆฌ์•กํŠธ ๋ถ„์„ํ•˜๊ธฐ] ์šฐ๋ฆฌ๋Š” ์™œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ด์šฉํ•ด์•ผ ํ• ๊นŒ? ์šฐ๋ฆฌ๋Š” ์›น์„ ๊ฐœ๋ฐœํ•˜๋ ค๋ฉด HTML / CSS / Javascript๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๊ฐœ๋ฐœ์„ ๋ฐฐ์›Œ๋ณธ ๋ˆ„๊ตฌ๋‚˜๋„ ์‰ฝ๊ฒŒ ์ƒ๊ฐํ•ด ๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ์™œ React, Vue, Angular์™€ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐœ๋ฐœ์„ ํ•ด์•ผ ํ• ๊นŒ? ๋‹จ์ง€ ์‰ฝ๊ฒŒ ๊ฐœ๋ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ? ํŽธํ•œ ๊ตฌ์กฐ๋ฅผ ์œ„ํ•ด์„œ? ๊ทธ์— ๋Œ€ํ•œ ๋Œ€๋‹ต์„ ์ œ๋Œ€๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์ด ๋˜์–ด๋ณด์ž. ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ์ด์œ  ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฐ€์žฅ ํฐ ์ด์œ ๋ฅผ ๋จผ์ € ์ด์•ผ๊ธฐ ํ•ด๋ณด์ž๋ฉด *_UI ์—…๋ฐ์ดํŠธ *_์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ค ์›น ์•ฑ์€ ๋‹จ์ˆœํžˆ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์—์„œ ๋๋‚˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, ํ”„๋กœ๊ทธ๋žจ์˜ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋œ๋‹ค๋ฉด ๋™์ ์œผ๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ๋„ ๋ณ€๊ฒฝ๋œ UI๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋ฐ˜์‘ ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” UI๋ฅผ ์ž๋™์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•ด์ค€๋‹ค๋Š” ์ ์—์„œ ์šฐ๋ฆฌ๋Š” ์ด์— ๋Œ€.. 2020. 7. 19.