πŸ“Œ 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

+ Recent posts