์ „์ฒด ๊ธ€

๐Ÿ‘ฉ‍๐Ÿ’ป java, mysql, android, php, javascript๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค
ยท React
Redux store์— ์ €์žฅ๋œ state๊ฐ€ array,object ์ž๋ฃŒ์ธ ๊ฒฝ์šฐ, state ๋ณ€๊ฒฝ์„ ์ข€ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค ๊ทธ ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž redux state๊ฐ€ array/object์ธ ๊ฒฝ์šฐ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด let user = createSlice({ name : 'user', initialState : {name : 'kim', age : 20}, reducers : { changeName(state){ state.name = 'park' } } ์ง์ ‘ state๋ฅผ ์ˆ˜์ •ํ•ด๋„ ๋ณ€๊ฒฝ์ด ์ž˜ ๋ฉ๋‹ˆ๋‹ค array/object ์ž๋ฃŒ์˜ ๊ฒฝ์šฐ state๋ณ€๊ฒฝ์€ state๋ฅผ ์ง์ ‘ ์ˆ˜์ •ํ•ด๋ฒ„๋ ค๋„ ์ž˜ ๋˜๋‹ˆ๊นŒ ์ง์ ‘ ์ˆ˜์ •ํ•˜์‹ญ์‹œ์˜ค. ๋งŒ์•ฝ,๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„๋•Œ ๋ณ€๊ฒฝํ•˜๋ ค๋Š” ์ž๋ฃŒ์˜ +1์„ ํ•ด์ฃผ๊ณ  ์‹ถ์œผ๋ฉด? let user = createSlice..
๋ฉ”ํƒ€์ธ์ง€ ์Šคํ„ฐ๋””๋Š” ๊ฐ์ž ๋ณธ์ธ์ด ์ผ์ฃผ์ผ๋™์•ˆ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ๊ธฐ๋กํ•˜๊ณ , ํšŒ๊ณ ํ•ด๋ณด๋Š” ์Šคํ„ฐ๋””์ด๋‹ค. ์ผ์ฃผ์ผ๋™์•ˆ ๊ตฌํ˜„ํ•œ ๊ธฐ๋Šฅ๋“ค ๋”๋ณด๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด 3์ดˆ ์žˆ๋‹ค๊ฐ€ ๋กœ๋”ฉ์ฐฝ์ด ๋œจ๊ณ , ์ƒํ’ˆ์ด ๋œจ๋ฉด ๋กœ๋”ฉ์ฐฝ์ด ์ง€์›Œ์ง 3์ดˆ์ด๋‚ด ํ• ์ธ์ฟ ํฐ ๋ฉ”์„ธ์ง€ ๋“ฑ์žฅํ–ˆ๋‹ค๊ฐ€ 3์ดˆํ›„์— ์‚ฌ๋ผ์ง Detail ํŽ˜์ด์ง€์˜ ํ•˜๋‹จ ํƒญ ui ๋งŒ๋“ฆ (๋ฒ„ํŠผ 0 ๋ˆ„๋ฅด๋ฉด ๋‚ด์šฉ 0๋œธ) ๋‚ด์šฉ0,๋‚ด์šฉ1,๋‚ด์šฉ2 ๊ฐ€ ๋œฐ๋•Œ 0.5์ดˆ ๊ฐ„๊ฒฉ์„ ๋‘๊ณ  ์„œ์„œํžˆ ๋“ฑ์žฅํ•จ Detail ํŽ˜์ด์ง€๊ฐ€ ์ฒ˜์Œ๋กœ๋“œ ๋ ๋•Œ 1์ดˆ ๊ฐ„๊ฒฉ์„ ๋‘๊ณ  ๋“ฑ์žฅํ•จ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ๋ ค์™€์„œ Cart ํŽ˜์ด์ง€์— ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๋ Œ๋”๋ง ๋ณ€๊ฒฝํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ˆ˜๋Ÿ‰์ด +1์”ฉ ์ถ”๊ฐ€๋จ Detail ํŽ˜์ด์ง€์—์„œ ์ฃผ๋ฌธํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด Cart์— ์ƒํ’ˆ์ด ์ถ”๊ฐ€๋จ ๋ณ€๊ฒฝํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ˆ˜๋Ÿ‰์ด +1์”ฉ ์ถ”๊ฐ€๋จ ํƒ€์ผ“ํŒ…์„ ํ•˜๊ธฐ ์–ด๋ ค์› ๋‹ค (1) ๋ฐฐ์—ด์„ ๊ธฐ์ค€์œผ๋กœ, 0๋ฒˆ์งธ..
ยท React
Redux ์˜ state๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ๋‹ค๊ณ ์š”? ๊ทธ๋Ÿฌ๋ฉด 3๊ฐ€์ง€ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š” store.js ์— state ๋ณ€๊ฒฝํ•ด์ฃผ๋Š” ํ•จ์ˆ˜๋ถ€ํ„ฐ ๋งŒ๋“ค๊ณ  ๊ทธ ํ•จ์ˆ˜๋ฅผ export ํ•ด๋‘๊ณ  ํ•„์š”ํ• ๋•Œ import ํ•ด์„œ dispatch()๋กœ ๊ฐ์‹ธ์„œ ํ˜ธ์ถœํ•จ 1. store.js์— state ๋ณ€๊ฒฝํ•ด์ฃผ๋Š” ํ•จ์ˆ˜๋ถ€ํ„ฐ ๋งŒ๋“ค์–ด์š” import { configureStore, createSlice } from '@reduxjs/toolkit' //reducer ๋’ค์—๋Š” state ๋ณ€๊ฒฝํ•จ์ˆ˜๋ฅผ ๋„ฃ๋Š”๋‹ค let user = createSlice({ name: 'user', initialState: 'kim', reducers: { //reducers์ฆˆ ๋ž€๋‹ค. changeName(state){ // ํŒŒ๋ผ๋ฏธํ„ฐ state๋Š” ๊ธฐ์กดstate๋ฅผ ๋œปํ•จ return 'J..
ยท React
Redux-toolkit๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์™œ ์”€? props ์—†์ด๋„ ์ปดํฌ๋„ŒํŠธ๊ฐ„ state ๊ณต์œ ๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง ,, ๋“ฑ ์ปดํฌ๋„ŒํŠธ๋“ค์ด redux store.js ์—์„œ state๋“ค์„ ๊ฐ€์ ธ๋‹ค ์“ธ ์ˆ˜ ์žˆ์Œ Redux store์— state ๋ณด๊ด€ํ•˜๋Š” ๋ฒ• ํฌ๊ฒŒ ๋‘๊ฐ€์ง€๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค 1. ๋จผ์ €, createSlice() ๋กœ state๋ฅผ ๋งŒ๋“ค๊ณ  2. ์•„๋ž˜์— configureStore()์— ๋“ฑ๋กํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค import { configureStore, createSlice } from '@reduxjs/toolkit' //์—ฌ๊ธฐ์— state๋ฅผ ๋งŒ๋“ค๊ฑฐ์ž„ //createSlice๋Š” useState์™€ ๋น„์Šทํ•œ ์—ญํ• ์ž„. state ์ƒ์„ฑ // state ํ•˜๋‚˜๋ฅผ slice ๋ผ๊ณ  ๋ถ€๋ฆ„ //initialState ๋’ค์—๋Š” ์ดˆ๊ธฐ๊ฐ’ state๋ฅผ ๋„ฃ์Œ let u..
ยท React
์Šค์Šค๋ฅต ๋‚˜์˜ค๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด? ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋™์ž‘์ „ ์Šคํƒ€์ผ์„ ๋‹ด์„ className์„ ๋งŒ๋“ค๊ธฐ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋™์ž‘ํ›„ ์Šคํƒ€์ผ์„ ๋‹ด์„ className์„ ๋งŒ๋“ค๊ธฐ transition ์†์„ฑ๋„ ์ถ”๊ฐ€ ์ฒ˜์Œ์—๋Š” ๋–ผ์—‡๋‹ค๊ฐ€ ๋ถ™์ด๊ธฐ ์ด ์ˆœ์„œ์— ๋”ฐ๋ผ์„œ ์ €๋ฒˆ ๊ฒŒ์‹œ๋ฌผ์—์„œ ๋งŒ๋“ค์—ˆ๋˜ ํƒญ์˜ ๋‚ด์šฉ์ด ์„œ์„œํžˆ ๋“ฑ์žฅํ•˜๋Š” fade in ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋งŒ๋“ค์–ด๋ณด๊ฒƒ์Œ ๋จผ์ €, ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋™์ž‘์ „ํ›„ ์Šคํƒ€์ผ์„ ๋‹ด์„ className์„ ๋งŒ๋“ค๊ณ , transition ์†์„ฑ๋„ ์ถ”๊ฐ€ํ•ด๋ณผ๊ฒŒ์š” (cssํŒŒ์ผ) .start{ opacity:0; /* ์•ˆ๋ณด์ž„ */ } .end{ opacity:1; /* ๋ณด์ž„ */ transition: opacity 0.5s; /* ์ฒœ์ฒœํžˆ ๋ณด์ž„ */ } ๋‹ค์Œ์œผ๋กœ '๋ฒ„ํŠผ์„ ๋ˆ„๋ฅผ๋•Œ๋งˆ๋‹ค end๋ฅผ ๋ถ€์ฐฉํ•ด์ฃผ์„ธ์š”~!' useEffect๋ฅผ ์จ์„œ st..
ยท React
๋™์ ์ธ UI ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ• 1. html, css ๋กœ ๋ฏธ๋ฆฌ ๋””์ž์ธ ์™„์„ฑํ•ด๋‘๊ณ  2. UI์˜ ํ˜„์žฌ์ƒํƒœ๋ฅผ ์ €์žฅํ•  state ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ  3. state์— ๋”ฐ๋ผ์„œ UI๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ณด์ผ์ง€ ์ž‘์„ฑํ•˜๊ธฐ ๋จผ์ €, ๋ฒ„ํŠผ0 ๋ฒ„ํŠผ1 ๋ฒ„ํŠผ2 ๋‚ด์šฉ0 ๋‚ด์šฉ1 ๋‚ด์šฉ2 ๋””์ž์ธํ•˜๊ธฐ ๊ท€์ฐฎ์•„์„œ ๋ฒ„ํŠผ์€ react-bootstrap ์‚ฌ์ดํŠธ์—์„œ ๋ณต์‚ฌํ•จ ๋‘๋ฒˆ์งธ๋กœ, UI์˜ ํ˜„์žฌ์ƒํƒœ๋ฅผ ์ €์žฅํ•  state๋ฅผ ๋งŒ๋“ค๊ธฐ function Detail(){ let [tab, setTab] = useState(0) (์ƒ๋žต) } ํƒญ ui์˜ ์ƒํƒœ๋Š” 0๋ฒˆ ๋‚ด์šฉ์ด ๋ณด์ด๊ฑฐ๋‚˜/ 1๋ฒˆ๋‚ด์šฉ์ด ๋ณด์ด๊ฑฐ๋‚˜/ 2๋ฒˆ๋‚ด์šฉ์ด ๋ณด์ด๊ฑฐ๋‚˜ ์…‹์ค‘ํ•˜๋‚˜์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋•Œ๊ทธ๋•Œ๋งˆ๋‹ค setTab()์œผ๋กœ state๋ฅผ ๋ณ€๊ฒฝํ•ด์ฃผ๋ฉด ๋ ๋“ฏ ๋งˆ์ง€๋ง‰์œผ๋กœ, state์— ๋”ฐ๋ผ์„œ ui๊ฐ€ ์–ด๋–ป๊ฒŒ ๋‹ฌ๋ผ ๋ณด์ผ์ง€ ์ž‘์„ฑ function D..
ยท React
์ตœ๊ทผ๋“ค์–ด ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‹ค๋ณด๋ฉด ์ž์ž˜ํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋งŽ์ด ๋‚œ๋‹ค. ์ž์ž˜ํ•˜๋‹ค๊ณ  ๋ฌด์‹œํ•˜๋ฉด ์•ˆ๋˜๋Š”๊ฒŒ, ์ฝ”๋“œ ํ•œ์ค„๋งŒ ์ž˜ ๋ชป์จ๋„ ๋ Œ๋”๋ง์ด ์•ˆ๋˜์„œ ํ™”๋ฉด์ด ํฐ๋ฐ”ํƒ•์ด ๋œ๋‹ค. ๋‚ด๊ฐ€ ์™œ ์ด๋ ‡๊ฒŒ ์˜ค๋ฅ˜๊ฐ€ ๋งŽ์ด ๋‚ ๊นŒ? ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ๋‚˜๋Š” ์ฐธ ๋‚˜์œ ์Šต๊ด€์„ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ, ๋‚˜์œ ์Šต๊ด€์„ ๊ณ ์น˜๊ธฐ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ–ˆ๋‹ค. ๋‚œ ์˜ค๋Š˜๋ถ€ํ„ฐ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ ์˜ค๋ฅ˜๋ฅผ ๋งˆ์ฃผ์น˜๋ฉด, ๊ทธ ์˜ค๋ฅ˜์˜ ์›์ธ์„ ํŒŒ์•…ํ•˜๊ณ , ํ•ด๊ฒฐํ•˜๋Š” ๊ทธ ๊ณผ์ •์„ ๋ชจ๋‘ ๋ธ”๋กœ๊ทธ์— ์ ๊ธฐ๋กœ ํ–ˆ๋‹ค. ์–ด๋–ค ์˜ค๋ฅ˜๋Š” 1์‹œ๊ฐ„, ์–ด๋–ค ์˜ค๋ฅ˜๋Š” 2์ผ์ด๋‚˜ ๊ฑธ๋ ค ํ•ด๊ฒฐํ•˜๊ธฐ๋„ ํ•˜์ง€๋งŒ, ๊ฒฐ๋ก ์ ์œผ๋กœ๋Š” ๋ฌธ์ œ์›์ธ์ด ๋ฌด์—‡์ด์—ˆ๊ณ , ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ–ˆ๋Š”์ง€๊ฐ€ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๋ฌธ์ œ๋ฅผ ์ฐจ๊ทผ์ฐจ๊ทผ ํ•ด๊ฒฐํ•ด๋‚˜๊ฐ„๋‹ค๋ฉด, ์•ž์œผ๋กœ ๋งˆ์ฃผํ•  ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ์—๋Š” ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ์ค„์–ด๋“ค ๊ฒƒ์ด๋‹ค. 1. ์˜์–ด๋กœ ๋œ ์—๋Ÿฌ์ฝ”๋“œ๋ฅผ ์ฝ๊ณ , ์ง๊ด€์ ์œผ๋กœ ํ•ด์„ํ•œ๋‹ค...
ยท React
3๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด์•˜๋‹ค. ์‘์šฉ1, ๋ฒ„ํŠผ 2๋ฒˆ ๋ˆ„๋ฅด๋ฉด 7,8,9 ์ƒํ’ˆ ๊ฐ€์ ธ์™€์„œ ๋ณด์—ฌ์ฃผ๋ ค๋ฉด? - count ๋ผ๋Š” state๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. - axios.get ์š”์ฒญ ํ•˜๋Š” ๋ถ€๋ถ„์ด ๊ธธ์–ด์„œ getMoreShoes ๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ์œ„์— ์„ ์–ธํ•˜์—ฌ ๊ฐ€์ ธ๋‹ค ์ผ๋‹ค. ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ์œ„์น˜๊ฐ€ ์ค‘์š”ํ•˜๋‹ค๊ณ  ๋Š๋‚€๋‹ค. ์•„๋ž˜์— app ์•„๋ž˜์—์„œ ์„ ์–ธํ•˜์˜€๋”๋‹ˆ ๊ฐ์ข… state๋“ค์ด undefined ๋กœ ์—๋Ÿฌ๊ฐ€ ๋–ด๋‹ค. ์‘์šฉ2. ๋ฒ„ํŠผ์„ 3๋ฒˆ ๋ˆ„๋ฅด๋ฉด ๋” ์ƒํ’ˆ์ด ์—†๋‹ค๊ณ  ์•ˆ๋‚ด๋ฌธ์„ ๋„์šฐ๋ ค๋ฉด? let [count, setCount] = useState(0); ํ•ด์ฃผ๊ณ  ํด๋ฆญ์ด๋ฒคํŠธ ๋ฐœ์ƒ์‹œ setCount ํ•˜๋‚˜์”ฉ ์ฆ๊ฐ€ํ•ด์ฃผ๊ณ  count๊ฐ€ 1์ผ๋•Œ data2, count 2์ผ๋•Œ data3, count 3์ผ๋•Œ alert์ฐฝ ๋„์›Œ์คŒ ์‘์šฉ3, ๋ฒ„ํŠผ ๋ˆ„๋ฅธ ์งํ›„์— ๋กœ๋”ฉ์ค‘ ๊ธ€์ž๋ฅผ ..
becky(์ง€์€)
Know yourself, follow your passion