Daily/Today I Learned

22.06.30_TIL

ํ˜ธ๋ฐ€์ด 2022. 6. 30. 09:36

๐Ÿ“Œ CDD์— ๋Œ€ํ•ด์„œ ํ•™์Šตํ•˜๋Š” ๋‚ ์ด๋‹ค.. ์š”์ฆ˜ ๋น„๊ฐ€์™€์„œ ๊ทธ๋Ÿฐ์ง€ ๊ธฐ๋ถ„์ด ํ•œ์ธต ๋‹ค์šด๋œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๊ณ  ์žˆ๋‹ค... ์กฐ๊ธˆ ๋” ํž˜๋‚ด์„œ ๊ธฐ์šด์„ ๋˜์ฐพ์•„์„œ ์—ด์‹ฌํžˆ ํ•ด๋ณด์ž!!!

 

๐Ÿ“— ์˜ค๋Š˜ ํ•™์Šตํ•œ ๋‚ด์šฉ

CDD (Component Driven Development)

  • ๊ธฐํš์ž๊ฐ€ ์ด์ „์— ์š”์ฒญ ๋ฐ›์•˜๋˜ ๊ธฐ๋Šฅ์„ ๋˜‘๊ฐ™์ด ์‚ฌ์šฉํ•˜๋„๋ก ์š”์ฒญํ–ˆ๋‹ค. ์ด๋•Œ, ํŒ€์—์„œ ๊ฐ™์€ UI ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ณต์œ ํ•œ๋‹ค๋ฉด ๊ณ ๋ฏผํ•˜์ง€ ์•Š๊ณ  ์ปดํฌ๋„ŒํŠธ๋ฅผ ์žฌ์ƒˆ์šฉ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•๋ก ์ด CDD์ด๋‹ค.
  • ๋ถ€ํ’ˆ ๋‹จ์œ„๋กœ UI ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๋‚˜๊ฐ€๋Š” ๊ฐœ๋ฐœ์„ ํ•˜๋Š” ๊ฒƒ.

CSS in JS

  • ํ”„๋กœ์ ํŠธ์˜ ๊ทœ๋ชจ๋‚˜ ๋ณต์žก๋„๊ฐ€ ์ ์  ์ปค์ง€๊ณ  ํ•จ๊ป˜ ์ž‘์—…ํ•  ํŒ€์› ์ˆ˜๋„ ๋งŽ์•„์ง€๋ฉด์„œ CSS๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์ผ๊ด€๋œ ํŒจํ„ด์ด ์—†์–ด์„œ ํšจ์œจ์ ์œผ๋กœ ์ž‘์—…ํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌ์กฐํ™”๋œ CSS๊ฐ€ ํ•„์š”ํ•ด์กŒ๋‹ค.
  • ์œ„์˜ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ๊ฒƒ์ด CSS ์ „์ฒ˜๋ฆฌ๊ธฐ์ด๋‹ค.
    • CSS ์ „์ฒ˜๋ฆฌ๊ธฐ: ๋งŽ์€ ๋ฐ˜๋ณต์ ์ธ ์ž‘์—…์„ ์š”๊ตฌํ•˜๊ณ  ๊ฐ’์„ ์ฐพ๋Š” ๋ฒˆ๊ฑฐ๋กœ์šด ์ž‘์—…์ด ๋งŽ์•„์ง€๋ฉด์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ CSS ๋ฌธ์„œ์˜ ์–‘๋„ ์ฆ๊ฐ€ํ•˜์—ฌ ์œ ์ง€๊ด€๋ฆฌ์— ์˜ํ–ฅ์„ ๋ผ์ณค๋Š”๋ฐ ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•จ.
      • ์ „์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ํ†ตํ•ดCSS ํŒŒ์ผ๋“ค์„ ์ž˜ ๊ตฌ์กฐํ™”ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๊ณ , ์ตœ์†Œํ•œ CSS ํŒŒ์ผ์„ ๋ช‡ ๊ฐœ์˜ ์ž‘์€ ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์ƒ๊ฒผ๋‹ค.
  • CSS ์ „์ฒ˜๋ฆฌ๊ธฐ ์ค‘ ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ๊ฒƒ์€ SASS(Syntactically Awesome Style Sheets)
    • SASS: CSS๋ฅผ ํ™•์žฅํ•ด ์ฃผ๋Š” ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด
      • CSS๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์–ธ์–ด๋กœ์„œ JS ํŠน์ • ์†์„ฑ์˜ ๊ฐ’์„ ๋ณ€์ˆ˜๋กœ ์„ ์–ธํ•˜์—ฌ ํ•„์š”ํ•œ ๊ณณ์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฐ˜๋ณต๋˜๋Š” ์ฝ”๋“œ๋ฅผ ํ•œ ๋ฒˆ์˜ ์„ ์–ธ์œผ๋กœ ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ ๋“ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
      • ํ•˜์ง€๋งŒ, ์žฅ์ ๋ณด๋‹ค ๋‹ค๋ฅธ ๋ฌธ์ œ๋“ค์„ ๋” ๋งŽ์ด ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฒƒ์ด ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค.
      • ๋‚ด๋ถ€์—์„œ ์–ด๋–ค ์ž‘์—…์„ ํ•˜๋Š”์ง€ ์•Œ์ง€ ๋ชปํ•œ ์ฑ„, ์Šคํƒ€์ผ์ด ๊ฒน์น˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค์–ด ๋‚ด๋Š” ๊ฒƒ์— ์˜์ง€ํ•˜์—ฌ ์ปดํŒŒ์ผ๋œ CSS์˜ ์šฉ๋Ÿ‰์€ ์ƒ๊ฐ์ง€๋„ ๋ชปํ•˜๊ฒŒ ์ปค์ ธ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ „์ฒ˜๋ฆฌ๊ธฐ ๋ฌธ์ œ ๋ณด์™„ ๋ฐฉ๋ฒ•๋ก 
    • BEM, OOCSS, SMACSS
      • ๊ณตํ†ต ์ง€ํ–ฅ์ 
        • ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ
        • ์ฝ”๋“œ์˜ ๊ฐ„๊ฒฐํ™”(์œ ์ง€ ๋ณด์ˆ˜ ์šฉ์ด)
        • ์ฝ”๋“œ์˜ ํ™•์žฅ์„ฑ
        • ์ฝ”๋“œ์˜ ์˜ˆ์ธก์„ฑ(ํด๋ž˜์Šค ๋ช…์œผ๋กœ ์˜๋ฏธ ์˜ˆ์ธก)
  • BEM
    • ๋Œ€ํ‘œ์ ์ธ CSS ๋ฐฉ๋ฒ•๋ก 
    • Block, Element, Modifier๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํด๋ž˜์Šค๋ช…์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ• (--์™€__๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค)
    • ํด๋ž˜์Šค๋ช…์€ BEM ๋ฐฉ์‹์˜ ์ด๋ฆ„์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณตํ•˜์—ฌ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
  • Styled-Component
    • ๊ธฐ๋Šฅ์  ํ˜น์€ ์ƒํƒœ๋ฅผ ๊ฐ€์ง„ ์ปดํฌ๋„ŒํŠธ๋“ค๋กœ๋ถ€ํ„ฐ UI๋ฅผ ์™„์ „ํžˆ ๋ถ„๋ฆฌํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์•„์ฃผ ๋‹จ์ˆœํ•œ ํŒจํ„ด์„ ์ œ๊ณต
    • CSS๋ฅผ ์ปดํฌ๋„ŒํŠธํ™” ์‹œํ‚ค๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
      • ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 
        • class, id ์ด๋ฆ„์„ ์ง“๋Š๋ผ ๊ณ ๋ฏผ๋  ๋•Œ
        • CSS ํŒŒ์ผ ์•ˆ์—์„œ ์›ํ•˜๋Š” ๋ถ€๋ถ„์„ ์ฐพ๊ธฐ ํž˜๋“ค ๋•Œ
        • CSS ํŒŒ์ผ์ด ๋„ˆ๋ฌด ๊ธธ์–ด์ ธ์„œ ํŒŒ์ผ์„ ์ชผ๊ฐœ์„œ ๊ด€๋ฆฌํ•ด๋ณธ ์ ์ด ์žˆ์„ ๊ฒฝ์šฐ
        • ์Šคํƒ€์ผ ์†์„ฑ์ด ๊ฒน์ณ์„œ ๋‚ด๊ฐ€ ์›ํ•œ๋Š ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š์€ ๊ฒฝ์šฐ
  • Storybook
    • UI ๊ฐœ๋ฐœ, CDD๋ฅผ ํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ
    • ์ปดํฌ๋„ŒํŠธ๋“ค์„ ๋”ฐ๋กœ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌ์„ฑํ•ด ์ฃผ์–ด ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๋ณต์žกํ•œ ๊ฐœ๋ฐœ ์Šคํƒ์„ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜, ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๊ฐ•์ œ ์ด๋™ํ•˜๊ฑฐ๋‚˜, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํƒ์ƒ‰ํ•  ํ•„์š” ์—†์ด ์ „์ฒด UI๋ฅผ ํ•œ๋ˆˆ์— ๋ณด๊ณ  ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค.
  • useRef
    • DOM ๋…ธ๋“œ, ์—˜๋ฆฌ๋จผํŠธ, React ์ปดํฌ๋„ŒํŠธ ์ฃผ์†Œ๊ฐ’์„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค.
    • useRef๋กœ ์„ ์–ธ๋œ ์ฃผ์†Œ๊ฐ’์€ ์ปดํฌ๋„ŒํŠธ๊ฐ€ re-render ๋˜๋”๋ผ๋„ ๋ฐ”๋€Œ์ง€ ์•Š๋Š”๋‹ค.
    • ํ™œ์šฉ์˜ˆ์ œ
      • focus
      • text selection
      • media playback
      • ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ ์šฉ

 

๐Ÿ“˜ ์ถ”๊ฐ€๋กœ ๊ณต๋ถ€ํ•  ๋‚ด์šฉ

[udemy] React ์™„๋ฒฝ ๊ฐ€์ด๋“œ ๊ฐ•์˜ ๋ณด๊ธฐ (๋งค์ผ ์กฐ๊ธˆ์”ฉ ์ด๋ผ๋„ ๊พธ์ค€ํžˆ ๋“ฃ๊ธฐ)

UI/UX ํŒจํ„ด React์—์„œ ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ

useRef ์‚ฌ์šฉ๋ฒ• ์ž์„ธํžˆ ์ฐพ์•„๋ณด๊ธฐ

 

๐Ÿ“ ์ค‘์š”ํ•œ ๋‚ด์šฉ

  • CDD
  • CSS - in - JS
  • BEM
    • Block, Element, Modifier๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํด๋ž˜์Šค๋ช…์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ• (--์™€__๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค)
  • Styled-Component
    • CSS๋ฅผ ์ปดํฌ๋„ŒํŠธํ™” ์‹œํ‚ค๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

'Daily > Today I Learned' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

22.07.04_TIL  (0) 2022.07.04
22.07.01_TIL  (0) 2022.07.01
22.06.28_TIL  (0) 2022.06.28
22.06.27_TIL  (0) 2022.06.27
22.06.24_TIL  (0) 2022.06.24