π¨π» web.dev51 Storybook loaders λ‘ storyμ λΉλκΈ° λ°μ΄ν° μ£Όμ νκΈ° π loaders λ‘ λ°μ΄ν° μ λ¬νκΈ° Storybook 6.1 λΆν° μ€νμ κΈ°λ₯μΌλ‘ loaders κ° μΆκ°λμμ΅λλ€. μμ ν κΈ°κ°μ κ±°μ³ Storybook 7.0 μμλ stable λ‘ λ³κ²½λμλλ°μ. κΈ°μ‘΄μ args λ₯Ό ν΅ν΄ μ»΄ν¬λνΈμ λ°μ΄ν°λ₯Ό μ λ¬ν΄μ£Όλ λμ , loaders μ λ°μ΄ν°λ₯Ό λ°ννλ ν¨μλ₯Ό μ μν¨μΌλ‘μ μ€ν λ¦¬λΆ render context μ μ΄λ₯Ό ν λΉν μ μλ λ°©λ²μ΄ μΆκ°λμμ΅λλ€. λͺ¨λ μ€ν 리μ μ μ©λλμ§ μ 무μ λ°λΌ global loader μ story loader λ κ°μ§ λ°©μμΌλ‘ λλλλ°, μ΄λ² κ²½μ°μλ κ°λ³ μ€ν 리μ μ£Όμ μ΄ νμν΄μ story loader λ°©μμ μ¬μ©νμ΅λλ€. π μμλ‘ μ΄ν΄λ΄ μλ€. λ€μκ³Ό κ°μ μΉ μ»΄ν¬λνΈκ° μλ€κ³ νκ² μ΅λλ€. ν΄λΉ μ»΄ν¬λνΈλ μμ μΊλ²μ€μ .. 2023. 6. 24. Storybook μμ μ»΄ν¬λνΈ λ¨μ ν μ€νΈνκΈ° π λ€μ΄κ°λ©° μ€ν 리λΆμ component driven development ν¨λ¬λ€μμ μν μ μ©ν κ°λ° λκ΅¬λ‘ λ¨μν UI λ₯Ό νμΈνλ μ©λλ₯Ό λμ΄μμ ν μ€νΈλ₯Ό μν λ€μν μ루μ λ ν¨κ» μ 곡ν΄μ£Όκ³ μμ΅λλ€. μ΄λ² ν¬μ€νΈμμλ μ΄λ₯Ό νμ©ν ν μ€νΈ μ μ© μ¬λ‘μ λν΄ μ΄ν΄λ³΄κ³ μν©λλ€. μ°μ μ΄λ² ν¬μ€νΈλ₯Ό μν νλ‘μ νΈμ ν¨ν€μ§ λ²μ μ 보λ λ€μκ³Ό κ°μ΅λλ€. π¦ project dependency - react/react-dom: 17.0.2 - next: 12.1.1 - storybook: 7.0.4 - typescript: 5.0.3 β¨ Next.js + jest & storybook μ€μ νκΈ° π Next.js + jest μ€μ μ λν μ€νΈ, μ€λ μ·ν μ€νΈ μμ±νκΈ° μ μ jest λ¨Όμ μ€μΉν©λλ€. Next.js.. 2023. 6. 24. TDD μ ν¨κ» μ¬λ΄ μλΉμ€ κ°μ νκΈ° π TDD λ₯Ό νμ©ν΄λ³ΌκΉ? μ΄λ²μ μ¬λ΄μμ μ¬μ©νκ³ μλ λ©μΌ ν νλ¦Ώ νλ‘μ νΈλ₯Ό μλ³Ό κΈ°νκ° μκ²Όμ΅λλ€. μλ‘μ΄ λ©μΌ λ°°ν¬ λ°©μ μ μ©μ΄ νμνλλ°, μ΄λ₯Ό μν΄μλ κΈ°μ‘΄ νλ‘μΈμ€μ λν μ΄ν΄κ° νμνμ΅λλ€. μλ‘κ² ν¬μ λ νλ‘μ νΈμ κΈ°λ₯μ μΆκ°νκ±°λ μμ νλ κ²μ μν₯λμ λ°λΌ μ½μ§ μμ μ μλ μμ μΈλ°, μ΄λ²μ 맑μ μ λ¬΄κ° ν΄λΉ μλΉμ€ μ½λ μ λ°μ μΌλ‘ μμ μ΄ νμνλ μμ μ΄λΌ λμ± κ³ λ―Όμ΄ λ§μλ κ² κ°μ΅λλ€. μμ μ μΈ μλΉμ€ κ°λ° λ° λ¦¬ν©ν λ§μ μν΄ TDD λ₯Ό μ κ·Ήμ μΌλ‘ νμ©ν΄λ³Ό μ μλ μ’μ κΈ°νλ‘ λ³΄μ¬ μ μ© λ° νκΈ°μ κ΄ν ν¬μ€νΈλ₯Ό μμ±ν΄λ΄€μ΅λλ€. π‘ μ΄λ² ν¬μ€νΈμμ TDD ν¨λ¬λ€μμ λν μμΈν λ΄μ©μ λ€λ£¨μ§λ μμ΅λλ€. π€ TDD λ? κ°λ¨νκ² TDD μ λν΄μ μ΄ν΄λ³΄κ³ κ°κ² μ΅λλ€. TDDλ ν .. 2023. 5. 15. DOM event.composed (shadow root λ°μΌλ‘ μ΄λ²€νΈ μ νμν€κΈ°) π CustomEvent κ° shadow root λ°μΌλ‘ μ νλμ§ μλλ€? shadow DOM κ³Ό ν¨κ» μμ νλ€λ³΄λ©΄ CustomEvent λ‘ μμ±ν μ΄λ²€νΈκ° shadow DOM boundary λ₯Ό λ²μ΄λμ μ ν λμ§ μλ μ΄μλ₯Ό λ§μ£Όνκ² λλλ°, μ΄λ μλλ λμμ λλ€. μμλ‘ μ΄ν΄λ΄ μλ€. λ€μκ³Ό κ°μ menu μ»΄ν¬λνΈκ° μλ€κ³ νκ² μ΅λλ€. μ¬μ¬μ©μ±μ μν΄ κ³΅ν΅ λ©λ΄ λ‘μ§μ λ΄μ μ»΄ν¬λνΈμ λλ€. μ½λλ λ¨μνμμΌ°μ§λ§, open μμ±μ΄ true κ° λλ©΄ ν΄λΉ λ©λ΄ μ리먼νΈμ overlay μ νμμ λ©λ΄λ₯Ό λ«κΈ° μν 컀μ€ν μ΄λ²€νΈλ₯Ό λ°μμν€λ νΈλ€λ¬λ₯Ό λΆμ°©νλ νλ¦μΌλ‘ μ§νλ©λλ€. export default class MyMenu extends HTMLElement { // ... other logics a.. 2023. 5. 15. GitHub Actions λ₯Ό νμ©ν release bot λ§λ€κΈ° μ΄λ²μ μ¬λ΄μμ λ©μΌ ν νλ¦Ώμ κ΄λ¦¬νλ νλ‘μ νΈμ λ°°ν¬ λ°©μμ λ³κ²½νλ μ 무λ₯Ό 맑μ μ§ννλ©° Github Action (μ΄ν GHA)μ λ€λ€λ³Ό κΈ°νκ° μκ²Όμ΅λλ€. GHAλ‘ PRμμ νΉμ comment λ₯Ό λ¨κΈ°λ©΄, λ³κ²½μ¬νμ λ°°ν¬ν΄μ£Όλ μλν νλ‘μΈμ€λ₯Ό λ§λ€κ³ μΆμλλ° GHA μ¬μ©μ΄ μ²μμ΄λΌ κ½€λ λ§μ μ½μ§μ ν΄μ λΉμ·ν κΈ°λ₯μ ꡬννκ³ μΆμ λΆλ€μ μν΄ κΈ°λ‘μ λ¨κΈ°λ €κ³ ν©λλ€. π PR comment echo ν μ€νΈνκΈ° μ°μ PRμμ νΉμ λͺ λ Ήμ΄λ₯Ό λ΄μ λκΈμ λ¨κΈ°λ©΄, μ΄λ₯Ό κ°μ§νλ workflow λ₯Ό μμ±ν΄λ³΄κ² μ΅λλ€. release λΌλ comment λ₯Ό λ¨κΈ°λ©΄ workflow κ° ν΄λΉ PR μ λκΈλ‘ μλ΅ν΄μ£Όλ workflow λ₯Ό μμ±ν©λλ€. comment μΆκ°λ issue_comment event λ₯Ό.. 2023. 4. 24. React Framer Motion νΊμ보기 π Framer Motion? Framer Motion μ React λ‘ κ°λ°λ Animation Library μ λλ€. κ΄λ ¨λ ν¨ν€μ§μ€μ μ§μμ μΌλ‘ μ¬μ©λ λ° κ΄μ¬λκ° μ¦κ°νκ³ μλ μΆμΈμ λλ€. π μΉμ±μμ μ λλ©μ΄μ μ λ€λ£¨λ λ€μν λ°©λ²μ΄ μμ§λ§, λ€μν νκ²½μμ μΆ©λΆν μ±λ₯μ κ³ λ €νμ¬ κ΅¬ννκΈ°μλ μκ°λ³΄λ€ κ³ λ €ν μ¬νμ΄ λ§κ³ κΉλ€λ‘μ΄ κ²μ΄ μ¬μ€μ λλ€. μ΄λ² μν΄λ¦¬μμλ μ΄λ¬ν λΆλΆμ λμμ΄ λ μλ μλ ν¨ν€μ§λ₯Ό μκ°ν΄λ³΄λ μκ°μ κ°μ Έλ³΄λ €ν©λλ€. π TL;DR Framer Motion μ νΉμ§ TypeScript μ§μ μ΅μ νλ μ±λ₯ λ° νλΆν API physics κΈ°λ°μ μ¬μ€μ μΈ transitionν¨κ³Ό μ 곡 (spring, tween, inertia) λͺ¨λ μΉμ±μμ λ°λ³΅μ μΌλ‘ νμλ‘ νλ μ¬λ¬ λͺ¨μ λ€.. 2023. 3. 27. μ΄μ 1 2 3 4 5 6 Β·Β·Β· 9 λ€μ