์ ๋ง๋ค! styled-component๋ ์นํ์ค์ ํฅ์์ํจ๋ค. ์ ๊ทธ๋ด๊น? styled-components๊ฐ ์นํ์ค์ ํด์น์ง ์๋ ์ด์ ๋, ๊ฒฐ๊ตญ styled-components๊ฐ ์์ฑํ๋ ์คํ์ผ ์ฝ๋๋ ์ผ๋ฐ์ ์ธ CSS์ ๋์ผํ๊ธฐ ๋๋ฌธ์ด๋ค. ์์ฑ๋ CSS๋ HTML ๋ฌธ์ ๋ด์ ํ๊ทธ์ ํฌํจ๋๋ฉฐ, ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ฅผ ํด์ํ์ฌ ๋ ๋๋งํ๋ค. ์์ฃผ ๋๋ํ ๋
์์ด๋ค ๋ ์์ง styled-component ์ฌ์ฉ์ด ์ด์ํ๋ ์ค๋ ๊ณผ์ ํ ๋ด์ฉ์ ํฌ์คํ
ํด๋ณด๊ฒ ๋ค. styled-component๊ฐ ๋ญ๋ฐ? styled-component๋ ๋ฆฌ์กํธ์์ css์คํ์ผ์ ์์ฑํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ด๋ค ๊ธฐ์กด์ css๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๊ณผ ๋ฌ๋ฆฌ, 'styled-components' ๋ javascript ์ฝ๋๋ด์์ css ์คํ์ผ์ ..
์ ์ฒด ๊ธ
๐ฉ๐ป java, mysql, android, php, javascript๋ฅผ ๋ค๋ฃน๋๋ค์นํ์ค์ด๋? 2000๋
๋ ์ด์๋ ์ธํฐ๋ท ์ต์คํ๋ก๋ฌ์์๋ ์๋์ด ๋์ด๋ ์ฌํ๋ฆฌ๋ ํ์ด์ดํญ์ค ๊ฐ์ ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ์์๋ ์๋์ด ๋์ง ์๋ ๋ฑ ๋ธ๋ผ์ฐ์ ๊ฐ ํธํ์ด ๋์ง ์์์ ๋๊ธ์ ๋ชป ๋ค๋ ์ ๋๊ฐ ์๋๋ผ ํ๋ฉด์ด ์์ ์ ์์ ์ผ๋ก ๋์ค์ง ์๋ ์ผ๋ ์์์ต๋๋ค. ์ด๋ฅผ ๋ง๊ณ , ์น์ ์ ์์ ์ผ๋ก ๊ตฌ๋์ํค๊ธฐ ์ํด์๋ ๊ฐ๋ฐ์๋ค์ด ๊ฐ ๋ธ๋ผ์ฐ์ ๋ง๋ค ๋ฐ๋ก ๊ฐ๋ฐ์ ํด์ฃผ์ด์ผ๋ง ํ์ต๋๋ค. ์ด๋ฐ ์๊ณ ๋ฅผ ์์ ๊ณ ์น ๊ฐ๋ฐ์ ํ์์ ํต์ผ์ํจ ๊ฒ์ด ๋ฐ๋ก ์น ํ์ค์ด๋ผ๊ณ ํฉ๋๋ค ์น ํ์ค์ด๋ W3C(World Wide Web Consortium)์์ ๊ถ๊ณ ํ๋ ‘์น์์ ํ์ค์ ์ผ๋ก ์ฌ์ฉ๋๋ ๊ธฐ์ ์ด๋ ๊ท์น’์ผ๋ก, ์ฌ์ฉ์๊ฐ ์ด๋ ํ ์ด์์ฒด์ ๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ๋๋ผ๋ ์นํ์ด์ง๊ฐ ๋์ผํ๊ฒ ๋ณด์ด๊ณ ์ ์์ ์ผ๋ก ์๋ํ ์ ์๋๋ก ํ๋ ์น ํ์ด์ง ์ ์ ๊ธฐ๋ฒ์ ๋ด๊ณ ์์ต..
์ต๊ทผ์ redux๋ฅผ ๋ฐฐ์ ๋๋ฐ, Reducer ๋ถ๋ถ์ ์ ๊น ๋ฑ์ฅํ๋ switch ๋ฌธ๋ฒ์ ๋ํด์ ๋ค๋ค๋ณด๋ ค๊ณ ํฉ๋๋ค. ์ ๋ง ๊ฐ๋จํ ํฌ์คํ
์
๋๋ค. ์ฌ์ด๊ฐ๊ธฐ... Reducer๋ Dispatch์๊ฒ์ ์ ๋ฌ๋ฐ์ Action ๊ฐ์ฒด์ type ๊ฐ์ ๋ฐ๋ผ์ ์ํ๋ฅผ ๋ณ๊ฒฝ์ํค๋ ํจ์์
๋๋ค. ๋ค์์ Reducer์์ switch ๊ตฌ๋ฌธ์ ํ์ฉํ ์์์
๋๋ค. ์๋ ๋ณด์ด๋ ๊ฒ์ฒ๋ผ Reducer๋ Action ๊ฐ์ฒด์ type ๊ฐ์ ๋ฐ๋ผ ๋ถ๊ธฐํ๋ switch ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. const count = 1 // Reducer๋ฅผ ์์ฑํ ๋์๋ ์ด๊ธฐ ์ํ๋ฅผ ์ธ์๋ก ์๊ตฌํฉ๋๋ค. const counterReducer = (state = count, action) => { // Action ๊ฐ์ฒด์ type ๊ฐ์ ๋ฐ๋ผ ๋ถ๊ธฐํ๋ swit..
์ฝ๋ฉ ์
๋ฌธ์๋ค์ด ์ฝ๋ฉ์ ์ด๋ ค์ ํ๋ ์ด์ ๋ ํฌ๊ฒ 2๊ฐ์ง๋ผ๊ณ ์๊ฐํ๋ค ์ฒซ๋ฒ์งธ, ๊ธด ์ฝ๋๋ฅผ ๋ณผ๋ ์ด๋์๋ถํฐ ์ฝ์ด์ผ ํ ์ง ๋ชจ๋ฅธ๋ค๋ ์ ๋๋ฒ์งธ, ์ค๋ฅ๊ฐ ์์๋, ์ด๋์ ์ค๋ฅ๊ฐ ์๊ฒผ๋์ง ๋ชจ๋ฅธ๋ค๋ ์ ์ด ๋๊ฐ์ง ์์ธ๋๋ฌธ์ ๋ช์๊ฐ์ด๊ณ ๋จธ๋ฆฌ๋ฅผ ์ธ๋งค๋ฉด์ ๊ดด๋ก์ํ๋๋ฐ,,, ๊ทธ๋ฌ๋ค๊ฐ ๋ฒ์์์ด ์ฝ๊ฒ ์จ๋ค์ใ
๊ทธ๋ฆฌ๊ณ ๋๋ ์ฝ๋ฉ์ ๋ชปํ๋ ๊ตฌ๋... ํฌํก ๋ผ๊ณ ๋งํ๋ฉฐ ์ข์ ๊ฐ์ ๋๋ฌผ์ ํ์น๊ฒ ๋๋ค. ์ด๋ฏธ ์ฝ๋ฉ์ ์ข ํ๋ ์ธ๊ฐ๋ค์ ์ดํด๋ฅผ ๋ชปํ๊ฒ ์ง๋ง, ๋์ฒ๋ผ ์์ง ๋
ธํ์ฐ๋ฅผ ํฐ๋ํ์ง ๋ชปํ ์ฌ๋๋ค์๊ฒ ์กฐ๊ธ์ด๋ผ๋ ์ฝ๋ฉ์ ์์ํ๊ฒ ๋ง๋ค์ด์ค ์ด์ผ๊ธฐ๋ฅผ ํด๋ณด๋ ค๊ณ ํ๋ค ์์ ๋๊ฐ์ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ผ๊น? ์ฒซ๋ฒ์งธ, ๊ธด ์ฝ๋๋ฅผ ๋ณผ๋ ์ด๋์๋ถํฐ ์ฝ์ด์ผ ํ ์ง ๋ชจ๋ฅธ๋ค๋ ์ => ์์ฐจ์ ์ผ๋ก ์ฝ๋๋ค ๋๋ฒ์งธ, ์ค๋ฅ๊ฐ ์์๋, ์ด๋์ ์ค๋ฅ๊ฐ ์๊ฒผ๋์ง ๋ชจ๋ฅธ..
Redux ๋? Redux๋ ๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์
์์ ์ํ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์
๋๋ค Redux๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ญ ์ํ๋ฅผ ๊ด๋ฆฌํ ์ ์์ผ๋ฉฐ, ์ด๋ ์ฌ๋ฌ ์ปดํฌ๋ํธ์์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ๊ณต์ ํ๊ณ ์
๋ฐ์ดํธ ํ ์ ์๋๋ก ํด์ค๋๋ค Redux์ ํต์ฌ๊ฐ๋
์ "store", "reducer", "action" ์
๋๋ค store์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ ์ญ์ํ๋ฅผ ์ ์ฅํ๋ ๊ฐ์ฒด์ด๋ฉฐ, action์ ์ํ๋ฅผ ์
๋ฐ์ดํธ ํ๊ธฐ ์ํ ๊ฐ์ฒด์
๋๋ค reducer์ action์ ๋ฐ๋ผ ์ํ๋ฅผ ์ด๋ป๊ฒ ์
๋ฐ์ดํธ ํ ์ง ์ ์ํ๋ ์์ํจ์ ์
๋๋ค Redux๋ฅผ ์ฌ์ฉํ๋ฉด ์ปดํฌ๋ํธ์์ store์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ , action์ dispatch ํ์ฌ ์ํ๋ฅผ ์
๋ฐ์ดํฌํ๊ณ , reducer๋ฅผ ํตํด ์๋ก์ด ์ํ๋ฅผ ๋ฐํ๋ฐ์ ์ ์์ต๋๋ค ์ด๋ฅผ ํต..
์ผ์ฃผ์ผ๋์ ๊ณต๋ถํ ๋ด์ฉ์? CDD ๊ณผ์ ๋ณต์ต + git ๋ค๋ฃจ๋๋ฒ์ ์ตํ 1. props์ state์ ์ฐจ์ด์ ์ ๋ฆฌ props๋ก state๋ฅผ ์ ๋ฌํ ์ ์๋ค props๋ ์ ๋ฌํด์ฃผ๋ ๋งค๊ฐ (state, state ๋ณ๊ฒฝํจ์, ํจ์, ๋ณ์ ๋ชจ๋ ์ ๋ฌ๊ฐ๋ฅ) 2. React Custom Component ๋ง๋ค๊ธฐ (์๋์์ฑ, autocomplete) ์ ์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ทธ๋ฆผ์ผ๋ก ๊ทธ๋ ค๋ณด๊ธฐ ๊ตฌ์กฐํ์
3๋จ๊ณ 3. localStorage๋ก ๋ง๋๋ ์ต๊ทผ ๋ณธ ์ํ ์ ์ฅํ๊ธฐ useEffect ์์ JSON.stringify์ JSON.parse ์ฌ์ฉํ๊ธฐ 4. Git ๋ค๋ฃจ๋ ๋ฒ ๊ณต๋ถ์ค ์ฝ๋ฉ์ ํ ๊ฐ์ ๋ค์ผ๋ฉด์ Git branch ๋ง๋ค๊ธฐ Git ๋ค์ํ merge ๋ฐฉ๋ฒ ( 3 way, fast-forward, rebase&merge, sq..
React Custom Component ์ค์์ ๊ฐ์ฅ ๋์ด๋๊ฐ ๋์๋ autocomplete์ด๋ค. ์๋นํ ์ฝ๋๊ฐ ๊ธธ๊ณ ๊ด๋ จ์๋ ํจ์์ state๋ค์ด ์์ฌ์์ด ์ฒ์๋ถํฐ ๊ฐ์ ์ก๊ธฐ๊ฐ ์ด๋ ค์ ๋ค. ํ์ง๋ง, ํฌ๊ธฐํ ์๋ ์์ง ๋ ๋๊น์ง ํ๋ ์คํ์ผ์ธ ๋๋ ํ๋ํ๋ ์ฝ๋๋ฅผ ๋ฏ์ด๋ณด๋ฉฐ ์ดํดํ๊ธฐ๋ก ํ๋ค ์ด๋ค ๋ฆฌ์กํธ ์ฝ๋๋ฅผ ๋ณผ๋, ๊ทธ ์ฝ๋๋ฅผ ๋ณด๊ณ ๋ฐ๋ก ๊ตฌ์กฐ๋ฅผ ์ก๊ธฐ๋ ์ฝ์ง ์๋ค. ๊ทธ๋์ 3๊ฐ์ง ๊ธฐ์ค์ ๊ฐ์ง๊ณ ๊ตฌ์กฐ๋ฅผ ํ์
ํ๋ค ์ฒซ๋ฒ์งธ, ์ปดํฌ๋ํธ๋ผ๋ฆฌ tree ๊ตฌ์กฐ๋ฅผ ๋ง๋ ๋ค ๋๋ฒ์งธ, state๊ฐ ์ด๋์ ์ ์๋์ด์ ์ด๋๋ก ํ๋ฅด๋๊ฐ? ์ธ๋ฒ์งธ, ํจ์๊ฐ ์ด๋์ ์ ์๋์ด์ ์ด๋๋ก ํ๋ฅด๋๊ฐ? ์ด 3๊ฐ์ง ๊ธฐ์ค์ ๊ณ ๋ คํ๋ฉด์ ๊ฐ๋จํ ๊ทธ๋ฆผ์ ๊ทธ๋ ค๋ณด์๋ค. (์ฝ์ง๋ ์์๋ค... ์ ์ป๋ค ๋ด์์ ) ์ฝ๋๋ ๋๋ฌด ๊ธฐ๋๊น, styled component์ rea..
์์ฆ์ ๊ณผ์ ๋ฅผ ํ๋ฉด์ ์ ์ ์ฝ๋๊ฐ ๊ธธ์ด์ง๋๊น ์ด์ง๋ฌ์์ง๋ ๋๋์ด์์. ํนํ ์ฝ๋๊ฐ ๊ธธ๊ณ , ํ์ผ์ด ์ฌ๋ฌ๊ฐ ์์๋๋ ์ ์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ ํ์
ํ๋ ๊ฒ์ด ์ค์ํ๋ฐ์. ์ค๋ ๊ณผ์ ๋ ๊ทธ๋ฆผ๋ ๊ทธ๋ ค๋ณด๋ฉด์ ์ ์ฒด์ ์ธ ๊ตฌ์กฐ ํ์
์ ์ค์ ์ ๋ฌ์ ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค ๊ตฌ์กฐํ์
3๋จ๊ณ 1. ์ปดํฌ๋ํธ ๊ธฐ์ค์ผ๋ก tree ๊ตฌ์กฐ ์์ฑ 2. state๊ฐ ์ด๋์ ์ ์๋๊ณ , ๋ด๋ ค์ค๊ณ ์๋์ง 3. ํจ์๊ฐ ์ด๋์ ์ ์๋๊ณ , ๋ด๋ ค์ค๊ณ ์๋์ง 1,2,3 ๋ฒ์ ๋ณด์ฌ์ฃผ๋ ๊ฐ๋จํ ๊ทธ๋ฆผ์ ๊ทธ๋ ค๋ดค์ต๋๋ค ์ปดํฌ๋ํธ๋ง ์์ ๊ณจ๋ผ์ ๋ถ๋ชจ ์์๊ด๊ณ์ ๋ฐ๋ผ tree ๊ตฌ์กฐ๋๋ฅผ ๊ทธ๋ ค๋ณด์์ต๋๋ค. (ํฌ๋กฌ ์ต์คํ
์
์ฌ์ฉํ๋ ๊ฒ๋ ์ข์) ์์์ปดํฌ๋ํธ ์ด๋ป๊ฒ ์ฐพ๋๊ตฌ์? ๋ฆฌํด๋ฌธ์ ๊ฐ์ ์ฐพ๋๋ค! App ์ด๋ผ๋ ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ์ธ ItemListContainer, Shoppin..