๋ชฉ๋กD E V E L O P E R ๐Ÿ’ป/Front-end (4)

JOYLOG

[React] ๋‹ค์ค‘ ์ฒจ๋ถ€ ์ด๋ฏธ์ง€ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ฐ ์ œ๊ฑฐ ์ปดํฌ๋„ŒํŠธ

์ด๋ฏธ์ง€ ์ฒจ๋ถ€ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ, input ํƒœ๊ทธ์— ํŒŒ์ผ์ด ์ฒจ๋ถ€๋  ๋•Œ(onChange)์˜ event ๋ฅผ ์ฝ˜์†”์— ์ฐ์–ด๋ณด์•˜๋Š”๋ฐ์š”. ๋‹ค์ค‘์—…๋กœ๋“œ? ์ฒ˜๋Ÿผ multiple ์†์„ฑ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๋ฉด, ๋‹ค์ค‘ ํŒŒ์ผ ์—…๋กœ๋“œ๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง„๋‹ค๊ณ  ํ•ด์š”! ์ฝ˜์†”์„ ์ฐ์–ด๋ณด๋ฉด Files ๋‚ด๋ถ€์— ํŒŒ์ผ์„ Object ํ˜•ํƒœ๋กœ ๋ฐ›์•„์˜ค๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”. ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„  ์ด๋ฏธ์ง€ DOM์ด ํ•„์š”ํ•œ๋ฐ, ์ด๊ฒƒ์€ URL.createObjectUrl() ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฐ˜ํ™˜๋ฐ›์„ ์ˆ˜ ์žˆ์–ด์š”. ์œ„์—์„œ ๋ฐ›์•„์˜จ ํŒŒ์ผ Object ๊ฐ๊ฐ์„ URL.createObjectUrl() ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋„ฃ์–ด์ฃผ๋ฉด ์ฃผ์–ด์ง„ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” URL์„ DOMString ์œผ๋กœ ๋ฐ˜ํ™˜๋ฐ›์„ ์ˆ˜ ์žˆ์–ด์š”. ์ด ๋•Œ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋„ฃ์–ด์ฃผ๋Š” Object๋Š” File, Blob, Med..

ํŒŒ๋ผ๋ฏธํ„ฐ(Parameter)์™€ ์ฟผ๋ฆฌ(Query) : ์œ ๋™์ ์ธ ๊ฐ’ ์ „๋‹ฌ์„ ์œ„ํ•œ URL ์ „๋žต

history.pushState(null, '', '/kpi/reply'); ์ธํ„ด ์ƒํ™œ 2์ฃผ์ฐจ! ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜๋‹ค ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ์ด์œ ์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ณ  ์žˆ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜๋‹ค. ๊ทธ๋ž˜์„œ ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ์ฟผ๋ฆฌ์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค! ํŽ˜์ด์ง€ ์ฃผ์†Œ๋ฅผ ์ •์˜ํ•  ๋•Œ, ์œ ๋™์ ์ธ ๊ฐ’์„ ์ „๋‹ฌํ•ด์•ผํ•  ๋•Œ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์ด ๋•Œ ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ์ฟผ๋ฆฌ๋ฅผ ํ™œ์šฉํ•œ๋‹ค. Tip 1. URL์„ ํ†ตํ•ด ๋ณด์—ฌ์ฃผ๋Š” ๊ฐ’์„ ์ง€์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ƒˆ๋กœ๊ณ ์นจ์‹œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ ๊ฐ’๋“ค์„ ์žƒ์ง€ ์•Š๋Š”๋‹ค 2. ์œ ํšจํ•˜์ง€ ์•Š์€ Parameter์— ๋Œ€ํ•ด์„œ๋Š” Validation ๊ฒ€์‚ฌ๋ฅผ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ํŒŒ๋ผ๋ฏธํ„ฐ : /profiles/joy → ์ผ๋ฐ˜์ ์œผ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ํŠน์ • id๋‚˜ ์ด๋ฆ„์„ ๊ฐ€์ง€๊ณ  ์กฐํšŒํ•  ๋•Œ ์‚ฌ์šฉ ์ฟผ๋ฆฌ : /about?detail=true → ์ฟผ๋ฆฌ์˜ ๊ฒฝ์šฐ์—” ์–ด๋–ค..

[ReactJS] React๋ž€? (Virtual DOM, npm๊ณผ npx, ๊ตฌ์กฐ, React Router DOM, Data Flow)

Recat JS facebook ์—์„œ 2013 ๋…„์— ๋ฐœํ‘œํ•œ library ์ปดํฌ๋„ŒํŠธ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์–ด ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋›ฐ์–ด๋‚จ Virtual DOM Real DOM? Virtual Dom? ์ด ๋ฌด์—‡์ธ๊ฐ€. 10๊ฐœ์˜ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์žˆ์„ ๋•Œ, ๊ทธ ์ค‘ ํ•˜๋‚˜์˜ ๋ฆฌ์ŠคํŠธ๊ฐ€ Update ๋˜์—ˆ๋‹ค. Real DOM : ์ „์ฒด ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‹ค์‹œ Reload ํ•ด์•ผํ•˜๋ฏ€๋กœ, ๋งŽ์€ ๋น„์šฉ ๋ฐœ์ƒ Virtual DOM : ๋ฐ”๋€ ํ•œ ๊ฐ€์ง€ ์•„์ดํ…œ๋งŒ DOM์—์„œ ๋ฐ”๊ฟ” ์คŒ. Virtual Dom์€ ์–ด๋–ป๊ฒŒ ํ•œ ๊ฐ€์ง€ ์•„์ดํ…œ๋งŒ DOM์—์„œ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์„๊นŒ? JSX ๋ฅผ ๋žœ๋”๋งํ•œ๋‹ค. (Virtual DOM ์ด Update) ์ด์ „ Virtual DOM๊ณผ ๋น„๊ตํ•ด ๋ฐ”๋€ ๋ถ€๋ถ„์„ ์ฐพ๋Š”๋‹ค. ( = diffing) ๋ฐ”๋€ ๋ถ€๋ถ„๋งŒ Real DOM์—์„œ ๋ฐ”๊ฟ”์ค€๋‹ค. npx ํ™œ์šฉํ•˜์—ฌ React Ap..