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

๐Ÿ“บ Front End62

[CSS] ์–ด๋–ค ์š”์†Œ๊ฐ€ ์•ž์œผ๋กœ ๋‚˜์˜ฌ์ง€ z-index ๋กœ ์ˆ˜์ง ์œ„์น˜๋ฅผ ์ •ํ•ด๋ณด์ž. ์ง€๋‚œ ์‹œ๊ฐ„ ์šฐ๋ฆฌ๋Š” CSS์˜ position์†์„ฑ์œผ๋กœ ์š”์†Œ๋ฅผ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๊ณณ์— ๋ฐฐ์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์› ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” fixed, absolute, relative, sticky๋“ฑ๋“ฑ์„ ์•Œ์•„๋ณด์•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š”๋Œ€๋กœ HTML Elements๋ฅผ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ์˜ค๋Š˜์€ ์ง€๋‚œ ์‹œ๊ฐ„ ๋ฐฐ์› ๋˜ Position์„ ํ† ๋Œ€๋กœ ๋ฐฐ์น˜๋ฅผ ๋งˆ์ณค์„ ๋•Œ z-index๋กœ ์–ด๋–ค ์š”์†Œ๊ฐ€ ์•ž์œผ๋กœ ์˜ฌ์ง€๋ฅผ ์ •ํ•ด๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ–๊ฒ ๋‹ค. z-index mdn์—์„œ๋Š” z-index๋ฅผ ์œ„์™€ ๊ฐ™์ด ์ด์•ผ๊ธฐ ํ•œ๋‹ค. z์ถ•์˜ ์ˆœ์„œ๋ฅผ ์ง€์ •ํ•œ๋‹ค. ์ด ๋ง์ด ๋ฌด์Šจ ๋ง์ผ๊นŒ? ์šฐ๋ฆฌ๋Š” ์ผ๋ฐ˜์ ์ธ HTML ๋ฌธ์„œ๋ฅผ ๋ˆˆ์œผ๋กœ ๋ณผ ๋•Œ๋Š” 2D๋กœ ๋ณด๊ธฐ ๋•Œ๋ฌธ์— X์ถ•๊ณผ Y์ถ•๋งŒ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด z-index ๋ฅผ ์„ค์ •ํ•˜๋ฉด ์กฐ๊ธˆ ๋” ์ž…์ฒด์ ์œผ๋กœ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋˜๊ณ  ๊ทธ.. 2020. 10. 16.
[CSS] ์š”์†Œ๋ฅผ ์›ํ•˜๋Š” ๊ณณ์— ๋ฐฐ์น˜ํ•˜๊ธฐ position ์†์„ฑ :: static, relative, absolute, fixed, sticky CSS์—์„œ HTML Elements๋ฅผ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๊ณณ์— ๋ฐฐ์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•๋“ค์ด ์กด์žฌํ•œ๋‹ค. display ์†์„ฑ์œผ๋กœ ์˜์—ญ์„ ๋‚˜๋ˆ ์„œ ๋ฐฐ์น˜๋ฅผ ํ•  ์ˆ˜๋„ ์žˆ๊ณ , box-sizing๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐฐ์น˜๋ฅผ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•๋“ค์—๋Š” ๋งŽ์€ ์ œ์•ฝ์‚ฌํ•ญ๋“ค์ด ์กด์žฌํ•˜๋ฉฐ, ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๋Œ€๋กœ ๋™์ž‘์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ๋Š” Css์˜ ๋ถ€๋ชจ, ์ž์‹๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํŒŒ์•…ํ•ด์ค˜์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ position์†์„ฑ์„ ์ด์šฉํ•œ๋‹ค๋ฉด ์กฐ๊ธˆ ๋” ์•„๋ฆ„๋‹ต๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์š”์†Œ๋ฅผ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๊ณณ์— ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์ „ ์ค€๋น„ ๋ณธ๊ฒฉ์ ์ธ ์ด์•ผ๊ธฐ์— ์•ž์„œ ์šฐ๋ฆฌ๋Š” ์ด๋ฒˆ ์‹œ๊ฐ„์— ์Šคํฌ๋กค์ด ์žˆ๋Š” ์˜์—ญ์ด ํ•„์š”ํ•˜๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™”๋ฉด์„ ๋จผ์ € ๊ตฌ์„ฑํ•ด ๋†“๊ณ  ์‹ค์Šต์„ ์ง„ํ–‰ํ•  ๊ฒƒ์ด๋‹ค. index.html index.css body { background: #cfd8dc; d.. 2020. 10. 15.
[React axios] React์˜ axios ๊ธฐ๋ณธ :: axios๋กœ GET, POST, PUT, DELETE ์š”์ฒญ ๋ณด๋‚ด๊ธฐ ์ง€๋‚œ ์‹œ๊ฐ„์—๋Š” ์™œ ์šฐ๋ฆฌ๊ฐ€ axios๋ฅผ ์•Œ์•„์•ผ ํ• ๊นŒ?์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋‹ค. [React axios] ๋ฆฌ์•กํŠธ axios๋ž€? :: HTTP-API ์—ฐ๋™์„ ์œ„ํ•œ ๋ชจ๋“ˆ (axios vs Fetch API) ์šฐ๋ฆฌ๊ฐ€ ์ผ๋ฐ˜์ ์ธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ API๋ฅผ ์—ฐ๋™ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ณดํ†ต fetch-Api๋ฅผ ์‚ฌ์šฉํ•˜๊ณค ํ–ˆ๋‹ค. ๋ฆฌ์•กํŠธ ๋˜ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ built-in ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ค‘ ํ•˜๋‚˜์ธ fetch-api๋˜ํ•œ ํ›Œ๋ฅญํ•œ api ์—ฐ๋™ ๋ชจ๋“ˆ์ด๋‹ค. ํ•˜์ง€๋งŒ wonit.tistory.com ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์‹ค์ œ๋กœ axios๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— axios์˜ ๊ธฐ๋ณธ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค ํ•œ๋‹ค. REST API REST API๋Š” ์šฐ๋ฆฌ๊ฐ€ ํ•˜๊ณ ์‹ถ์€ ์ž‘์—…์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ๋กœ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ๋‹ค๋“ค ์•Œ๊ณ  ์žˆ์„ ๊ฒƒ์ด๋‹ค. REST API์—๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ HTT.. 2020. 10. 8.
[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.