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

๐Ÿ“บ Front End71

[React axios] ๋ฆฌ์•กํŠธ axios๋ž€? :: HTTP-API ์—ฐ๋™์„ ์œ„ํ•œ ๋ชจ๋“ˆ (axios vs Fetch API) ์šฐ๋ฆฌ๊ฐ€ ์ผ๋ฐ˜์ ์ธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ API๋ฅผ ์—ฐ๋™ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ณดํ†ต fetch-Api๋ฅผ ์‚ฌ์šฉํ•˜๊ณค ํ–ˆ๋‹ค. ๋ฆฌ์•กํŠธ ๋˜ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ built-in ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ค‘ ํ•˜๋‚˜์ธ fetch-api๋˜ํ•œ ํ›Œ๋ฅญํ•œ api ์—ฐ๋™ ๋ชจ๋“ˆ์ด๋‹ค. ํ•˜์ง€๋งŒ fetch-api๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ built-in ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ผ๋Š” ํŠน์„ฑ ๋•๋ถ„์ธ์ง€ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์€ React์—์„œ axios๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•œ๋‹ค. ๋ฆฌ์•กํŠธ์—์„œ fetch api๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ์™œ ์‚ฌ๋žŒ๋“ค์€ axios๋ฅผ ์„ ํ˜ธํ• ๊นŒ? ์„œ๋กœ ๋น„๊ต๋ฅผ ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋ด๋ณด์ž. axios vs Fetch-api // fetch const url = 'http://localhost/test.htm'; const options = { method: 'POST', headers: { 'Accept.. 2020. 10. 8.
[React Router & styled-components] ์‹ค์ „์—์„œ withRouter๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ(3) :: withRouter์˜ location props ๋กœ ์ƒํƒœ ๋ณ€๊ฒฝํ•˜๊ธฐ ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ๋Š” ์ด 3๋ถ€์ž‘์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ „์—์„œ withRouter๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ(1) :: Router ๊ตฌ์„ฑํ•˜๊ธฐ ์‹ค์ „์—์„œ withRouter๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ(2) :: styled-components๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์Šคํƒ€์ผ๋ง ์ ์šฉํ•˜๊ธฐ ์‹ค์ „์—์„œ withRouter๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ(3) :: withRouter ์‚ฌ์šฉํ•˜๊ธฐ ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ์—๋Š” react์˜ styled-components์— ๋Œ€ํ•œ ์ฝ”๋“œ๊ฐ€ ๋‚˜์˜ฌ ๊ฒƒ์ด๋‹ค. ์ง€๊ธˆ ์šฐ๋ฆฌ๋Š” withRouter์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋Š” ๊ณผ์ •์ด๋ฏ€๋กœ styled-components์— ๋Œ€ํ•ด์„œ ์ž˜ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ์€ ๊ทธ๋ƒฅ css ์ ์šฉ์„ js ์•ˆ์—์„œ ์ˆ˜ํ–‰ํ•˜๊ตฌ๋‚˜~ ์ •๋„๋งŒ ์ดํ•ดํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋„๋ก ํ•˜์ž. ํ•˜์ง€๋งŒ ๊ฐœ์ธ์ ์ธ ์ถ”์ฒœ์œผ๋กœ styled-components์— ๋Œ€ํ•ด์„œ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ์€ ์ •๋ง ๋ฉ‹์ง€๊ณ  ์ฟจํ•œ ๊ธฐ๋Šฅ์ด๋ฏ€๋กœ ํ•ด๋‹น .. 2020. 10. 7.
[React Router & styled-components] ์‹ค์ „์—์„œ withRouter๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ(2) :: styled-components๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์Šคํƒ€์ผ๋ง ์ ์šฉํ•˜๊ธฐ ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ๋Š” ์ด 3๋ถ€์ž‘์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ „์—์„œ withRouter๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ(1) :: Router ๊ตฌ์„ฑํ•˜๊ธฐ ์‹ค์ „์—์„œ withRouter๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ(2) :: styled-components๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์Šคํƒ€์ผ๋ง ์ ์šฉํ•˜๊ธฐ ์‹ค์ „์—์„œ withRouter๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ(3) :: withRouter ์‚ฌ์šฉํ•˜๊ธฐ ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ์—๋Š” react์˜ styled-components์— ๋Œ€ํ•œ ์ฝ”๋“œ๊ฐ€ ๋‚˜์˜ฌ ๊ฒƒ์ด๋‹ค. ์ง€๊ธˆ ์šฐ๋ฆฌ๋Š” withRouter์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋Š” ๊ณผ์ •์ด๋ฏ€๋กœ styled-components์— ๋Œ€ํ•ด์„œ ์ž˜ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ์€ ๊ทธ๋ƒฅ css ์ ์šฉ์„ js ์•ˆ์—์„œ ์ˆ˜ํ–‰ํ•˜๊ตฌ๋‚˜~ ์ •๋„๋งŒ ์ดํ•ดํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋„๋ก ํ•˜์ž. ํ•˜์ง€๋งŒ ๊ฐœ์ธ์ ์ธ ์ถ”์ฒœ์œผ๋กœ styled-components์— ๋Œ€ํ•ด์„œ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ์€ ์ •๋ง ๋ฉ‹์ง€๊ณ  ์ฟจํ•œ ๊ธฐ๋Šฅ์ด๋ฏ€๋กœ ํ•ด๋‹น .. 2020. 10. 7.
[Styled-Components] styled-reset ํŒจํ‚ค์ง€๋กœ styled-components resetํ•˜๊ธฐ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ์— css๋ฅผ ์ดˆ๊ธฐํ™” ํ•ด์•ผํ•˜๋Š” ์ด์œ ์— ๋Œ€ํ•ด์„œ๋Š” CSS ์ž‘์—…์‹œ์— ๊ผญ ๊ฑฐ์ณ์•ผํ•˜๋Š” ํ•„์ˆ˜ ๊ณผ์ • ์—์„œ ๋‹ค๋ค˜๋‹ค. ์ด์ œ ์˜ค๋Š˜์€ React Styled-Components์—์„œ๋„ CSS-Reset์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž. Our Goals ์ตœ์ข…์ ์œผ๋กœ ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•  ๊ฒƒ์ด๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ๊ธฐ๋Š” margin๊ณผ padding์— ์˜ํ•ด ์ƒ๊ฒจ๋‚œ ์—ฌ๊ธฐ ๋นจ๊ฐ„ ๊ฐ„๊ฒฉ๋“ค์„ ์—†์•จ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ์ž‘์—…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์œผ๋กœ ์ˆ˜ํ–‰๋œ๋‹ค. styled-components ์„ค์น˜ํ•˜๊ธฐ styled-reset ํŒจํ‚ค์ง€ ์„ค์น˜ํ•˜๊ธฐ ๊ธฐ๋ณธ์ ์ธ ์ปดํฌ๋„ŒํŠธ ์ƒ์„ฑํ•˜๊ธฐ GlobalStyles.js ์ƒ์„ฑํ•˜๊ธฐ App.js์— GlobalStyles import ํ•˜๊ธฐ styled-components ์„ค์น˜ํ•˜๊ธฐ ์‚ฌ์‹ค ์ด ๊ฒ€์ƒ‰์„ ํ†ตํ•ด ๋ธ”๋กœ๊ทธ๋กœ ๋“ค.. 2020. 10. 7.
[React Router & styled-components] ์‹ค์ „์—์„œ withRouter๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ(1) :: Router ๊ตฌ์„ฑํ•˜๊ธฐ ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ๋Š” ์ด 3๋ถ€์ž‘์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ „์—์„œ withRouter๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ(1) :: Router ๊ตฌ์„ฑํ•˜๊ธฐ ์‹ค์ „์—์„œ withRouter๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ(2) :: styled-components๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์Šคํƒ€์ผ๋ง ์ ์šฉํ•˜๊ธฐ ์‹ค์ „์—์„œ withRouter๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ(3) :: withRouter ์‚ฌ์šฉํ•˜๊ธฐ ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ์—๋Š” react์˜ styled-components์— ๋Œ€ํ•œ ์ฝ”๋“œ๊ฐ€ ๋‚˜์˜ฌ ๊ฒƒ์ด๋‹ค. ์ง€๊ธˆ ์šฐ๋ฆฌ๋Š” withRouter์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋Š” ๊ณผ์ •์ด๋ฏ€๋กœ styled-components์— ๋Œ€ํ•ด์„œ ์ž˜ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ์€ ๊ทธ๋ƒฅ css ์ ์šฉ์„ js ์•ˆ์—์„œ ์ˆ˜ํ–‰ํ•˜๊ตฌ๋‚˜~ ์ •๋„๋งŒ ์ดํ•ดํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋„๋ก ํ•˜์ž. ํ•˜์ง€๋งŒ ๊ฐœ์ธ์ ์ธ ์ถ”์ฒœ์œผ๋กœ styled-components์— ๋Œ€ํ•ด์„œ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ์€ ์ •๋ง ๋ฉ‹์ง€๊ณ  ์ฟจํ•œ ๊ธฐ๋Šฅ์ด๋ฏ€๋กœ ํ•ด๋‹น .. 2020. 10. 7.
[React Router] react-router-dom์˜ HashRouter๊ณผ BrowserRouter์˜ ์ฐจ์ด (BrowserRouter ๋ฅผ ์‚ฌ์šฉํ•˜์ž!) ์˜ค๋Š˜ ์•Œ์•„๋ณผ ๊ฒƒ์€ react-router-dom์˜ HashRouter๊ณผ BrowserRouter์ด๋‹ค. React router์—๋Š” ๋งŽ์€ ๋ผ์šฐํ„ฐ๊ฐ€ ์žˆ์ง€๋งŒ ์˜ค๋Š˜์€ ๋‘ ๊ฐ€์ง€ Router์— ๋Œ€ํ•ด์„œ ๋น„๊ตํ•ด๋ณผ ๊ฒƒ์ด๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ์˜ค๋Š˜์€ ์ฝ”๋“œ๋ณด๋‹ค๋Š” ์ข€ ๋” ๊นŠ์€ ์ด๋ก ๊ณผ ๊ด€๋ จ๋œ ๋‚ด์šฉ์„ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž. ๋ฆฌ์•กํŠธ ๋ผ์šฐํŒ…์— ๊ด€ํ•ด์„œ๋Š” ๋ฆฌ์•กํŠธ๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ๋ผ์šฐํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•(1) ๋ฆฌ์•กํŠธ๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ๋ผ์šฐํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•(2) ๋ฆฌ์•กํŠธ๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ๋ผ์šฐํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•(3) ์—์„œ ์„ค๋ช…์ด ๋‚˜์™€์žˆ์œผ๋‹ˆ ๊ฐœ๋…์ด ํ™•์‹คํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋ณด๊ณ ์‹ถ์€ ์‚ฌ๋žŒ์€ ํ•œ ๋ฒˆ ๊ฐ€์„œ ํ™•์ธํ•˜๋Š” ๊ฒƒ๋„ ์ถ”์ฒœํ•œ๋‹ค. Router ์šฐ์„  ๋‘ ๋ผ์šฐํ„ฐ๊ฐ„์˜ ์ฐจ์ด๋ฅผ ์•Œ๊ธฐ ์ „์— ๊ฐ€๋ณ๊ฒŒ ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž. Router์€ ๋ชจ๋“  Router ์ปดํฌ๋„ŒํŠธ์˜ ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค. Router์—๋Š” ๊ธฐ๋ณธ์ ์ธ ๋ผ์šฐํŒ… ๊ด€๋ จ.. 2020. 10. 6.