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

REACT13

CORS ์—๋Ÿฌ ํ•ด๊ฒฐํ•˜๊ธฐ ๋ฆฌ์•กํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๋˜ ์ค‘.. ๊ฐœ๋… ๊ณต๋ถ€ํ•  ๋•Œ ๋ณด์•˜๋˜ CORS๋ฅผ ์—๋Ÿฌ๋กœ ๋งž๋”ฑ๋“œ๋ฆฌ๊ฒŒ ๋˜์—ˆ๋‹ค...!๐Ÿคจ CORS Cross-Origin Resource Sharing(CORS)์€ ์ถ”๊ฐ€์ ์ธ HTTP header๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋‹ค๋ฅธ origin์˜ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด๋‹ค. ์„œ๋น„์Šคํ•˜๊ณ  ์žˆ์ง€ ์•Š์€ ์‚ฌ์ดํŠธ์—์„œ ์„ธ์…˜์„ ์š”์ฒญํ•ด์„œ ์„ธ์…˜์„ ํš๋“ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ์‚ฌ์ดํŠธ๋Š” ์•…์˜์ ์œผ๋กœ ๋‚ด ์„ธ์…˜์„ ํƒˆ์ทจํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ํ–‰๋™์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์š”์ฒญ์„ ๋ง‰์Šต๋‹ˆ๋‹ค. ํ”ผ์‹ฑ์‚ฌ์ดํŠธ๊ฐ€ ๋Œ€ํ‘œ์ ์ธ ๊ณต๊ฒฉ ์‚ฌ๋ก€๋กœ ํ”ผ์‹ฑ์‚ฌ์ดํŠธ๊ฐ€ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒƒ์„ ๋ง‰๊ณ  ํ—ˆ์šฉํ•œ origin๋งŒ ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•ด CORS๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฆฌ์†Œ์Šค๋ฅผ ์š”์ฒญํ•  ๋•Œ ์ถ”๊ฐ€์ ์ธ ํ—ค๋”์— ์ •๋ณด๋ฅผ ๋‹ด๋Š”๋‹ค. ๋‚ด origin์€ ๋ฌด์—‡์ด๊ณ  ์–ด๋–ค ๋ฉ”์†Œ๋“œ.. 2023. 5. 9.
[ํŒจ์ŠคํŠธ์บ ํผ์Šค react ๊ฐ•์˜] 8์ฃผ์ฐจ ํ•™์Šต์ผ์ง€ Context https://ko.reactjs.org/docs/context.html Context – React A JavaScript library for building user interfaces ko.reactjs.org ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ๋ฅผ ๋„˜์–ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ ์ œ์•ฝ -> Props drilling์˜ ํ•œ๊ณ„ ํ•ด์†Œ ์žฌ์‚ฌ์šฉ์„ฑ -> Context๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ค์›€ API -> createContext / Provider / Consumer useContext -> Consumer ๋Œ€์ฒด Portal https://ko.reactjs.org/docs/portals.html Portals – React A JavaScript library for building user.. 2022. 8. 9.
[ํŒจ์ŠคํŠธ์บ ํผ์Šค react ๊ฐ•์˜] 7์ฃผ์ฐจ ํ•™์Šต์ผ์ง€ Key์™€ ๋ฆฌ๋žœ๋”๋ง ์•Œ์•„๋ณด๊ธฐ 1. Key Key: Value๋ฅผ ํŠน์ •ํ•˜๋Š” ์ด๋ฆ„ div์˜ key๋ฅผ ๋ช…์‹œํ•ด์คŒ์œผ๋กœ์จ ํ•ด๊ฒฐ 2. Detail ์œ ์ผํ•œ ๊ฐ’์œผ๋กœ, index๋กœ ์ฃผ๋ฉด ์žฌ์‚ฌ์šฉ ๋ชปํ•จ(์žฌ๋ฐฐ์—ด๋˜๋Š” ๊ฒฝ์šฐ ๋น„ํšจ์œจ์ ) ์žฌ์‚ฌ์šฉ -> key๋ฅผ ์ œ๋Œ€๋กœ ์ค˜์•ผ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์ œ๋Œ€๋กœ ์ค€๋‹ค -> ์ค‘๋ณต ์—†๊ณ , ๋ฐ”๋€Œ์ง€ ์•Š๋Š” ์ƒํƒœ ๋Œ์–ด์˜ฌ๋ฆฌ๊ธฐ (State lifting up) ๋กœ๊ทธ์ธ ํผ ๋งŒ๋“ค๊ธฐ : id์™€ password ๋ชจ๋‘ ์ž…๋ ฅ๋˜์–ด ์žˆ์„ ๋•Œ๋งŒ button์ด enabled ๋˜๋„๋ก ํ˜•์ œ ์ปดํฌ๋„ŒํŠธ์˜ ์ƒํƒœ ๊ถ๊ธˆ -> ํ•„์š”ํ•˜๋ฉด ๋ถ€๋ชจ๋กœ lifting up Props drilling -> ๊ณผ๋„ํ•œ lifting์€ drilling์„ ์•ผ๊ธฐ ๋ฐ์ดํ„ฐ Fetch ํ•ด๋ณด๊ธฐ (API call) Fetch api -> ๋„คํŠธ์›Œํฌ ๋ฆฌ์†Œ์Šค ์ƒํ™ฉ๋ณ„ ํ•ธ๋“ค๋ง -> ๋กœ๋”ฉ / ๋ฐ์ด.. 2022. 8. 2.
[ํŒจ์ŠคํŠธ์บ ํผ์Šค react ๊ฐ•์˜] 6์ฃผ์ฐจ ํ•™์Šต์ผ์ง€ React ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ vs ํ”„๋ ˆ์ž„์›Œํฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ: ๊ฐœ๋ฐœ ํŽธ์˜๋ฅผ ์œ„ํ•œ ๋„๊ตฌ์˜ ๋ชจ์Œ (๊ณต๊ตฌ) - React ํ”„๋ ˆ์ž„์›Œํฌ: ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ๊นŒ์ง€ ์žกํ˜€์žˆ์Œ (๊ณต์žฅ) - Angular, Vue.js React์˜ ์žฅ์  1. ์ƒํƒœ๊ณ„๊ฐ€ ํ’๋ถ€ํ•จ = ๊ตฌ๊ธ€๋งํ•˜๊ธฐ ์ข‹์Œ 2. ํ•ด๋‹น ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ๊ด€์‹ฌ๋„/ ์‹ค์ œ ์‚ฌ์šฉ ๋นˆ๋„/ ์‚ฌ์šฉ์ž ์ˆ˜ 3. ๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(๋„๊ตฌ)๊ฐ€ ๋งŽ๊ณ , ๋ฌธ์ œ ํ•ด๊ฒฐํ•  ๋ฐฉ๋ฒ•์„ ์ฐพ๊ธฐ๊ฐ€ ์‰ฝ๊ณ , ๊ฐ™์€ ๊ณ ๋ฏผ์„ ํ•œ ์‚ฌ๋žŒ์ด ์ด๋ฏธ ๋งŽ๊ณ , ์‹ค๋ฌด์—์„œ ์‚ฌ์šฉํ•  ํ™•๋ฅ ์ด ๋†’๋‹ค. 4. ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์‚ฌ๋ž‘๋ฐ›๊ณ  ์žˆ๋‹ค๋ฉด !== ๊ธฐ์ˆ ์  ๊ทผ๊ฐ„์ด ์ข‹๋‹ค ํ•˜์ง€๋งŒ ๋ฆฌ์•กํŠธ๋Š” ๊ธฐ์ˆ ์ ์œผ๋กœ ํ™•์‹คํ•œ ์žฅ์ ์ด ์žˆ๋‹ค (Virtual DOM, JSX, Flux, Functional Programming...) 5. ์ƒˆ๋กœ์šด ๊ธฐ์ˆ ์„ ๋ฐฐ์šฐ๋Š” ์‹œ์ž‘์ ์œผ๋กœ ์ข‹๋‹ค 6. ๋ฆฌ์•กํŠธ๋ฅผ ํ’์„ฑํ•˜๊ฒŒ ํ•ด์ฃผ.. 2022. 7. 26.
[React]๊ตฌ๊ตฌ๋‹จ ์ถœ๋ ฅํ•˜๊ธฐ number ๊ฐ’์„ Props๋กœ ๋ฐ›๊ณ , number๊ฐ’์— ๋งž๋Š” ๊ตฌ๊ตฌ๋‹จ์„ ์ถœ๋ ฅํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ ์˜ˆ์ œ์ด๋‹ค. โœ… ์ฒซ๋ฒˆ์งธ ์‹œ๋„ src/Multiply.js function Multiply({n}){ return( {n} * 1 = {n} {n} * 2 = {n * 2} {n} * 3 = {n * 3} {n} * 4 = {n * 4} {n} * 5 = {n * 5} {n} * 6 = {n * 6} {n} * 7 = {n * 7} {n} * 8 = {n * 8} {n} * 9 = {n * 9} ); } export default Multiply; ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋‚˜์—ดํ•˜์˜€๋‹ค. src/Button.js function Button({text, onClick}){ return {text} } export default .. 2022. 1. 16.
React #4. Props ๐Ÿ“Œ Props ๋ฆฌ์•กํŠธ์—์„œ ๋ฐ์ดํ„ฐ๋Š” ์œ„์—์„œ ์•„๋ž˜๋กœ, ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋กœ ์ง„ํ–‰๋˜๋Š” ๋‹จ๋ฐฉํ–ฅ์˜ ํ๋ฆ„์„ ๊ฐ€์ง„๋‹ค. ์ด ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„ ์•„๋ž˜์—์„œ ์ž์‹์—๊ฒŒ ์ „๋‹ฌ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ Props ๋ผ๊ณ  ํ•œ๋‹ค. ์ด์ „ ๊ธ€์˜ ์˜ˆ์ œ(๋ฒ„ํŠผ ํด๋ฆญ์‹œ ์ˆซ์ž ๋ณ€๊ฒฝ) ์˜ˆ์ œ๋ฅผ ์ปดํฌ๋„ŒํŠธ๋กœ ๊ตฌํ˜„ํ•ด ๋ณด๊ฒ ๋‹ค. Props์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์‚ฌ์šฉ๋ฒ•์ด๋‹ค. Button ์ปดํฌ๋„ŒํŠธ(src/Button.js) function Button(props) { return {props.text}; } export default Button; ๋ฒ„ํŠผ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์ด ์ปดํฌ๋„ŒํŠธ์—์„œ๋Š” props๋ผ๋Š” ๊ฐ์ฒด๋ฅผ ๋ฐ›๊ณ , ๊ทธ ๊ฐ์ฒด์˜ onClick, text ์š”์†Œ๋“ค์„ ์‚ฌ์šฉํ•œ๋‹ค. App ์ปดํฌ๋„ŒํŠธ(src/App.js) import React, { useState } from 'r.. 2022. 1. 16.