π¨π» web.dev/fe25 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. React Framer Motion νΊμ보기 π Framer Motion? Framer Motion μ React λ‘ κ°λ°λ Animation Library μ λλ€. κ΄λ ¨λ ν¨ν€μ§μ€μ μ§μμ μΌλ‘ μ¬μ©λ λ° κ΄μ¬λκ° μ¦κ°νκ³ μλ μΆμΈμ λλ€. π μΉμ±μμ μ λλ©μ΄μ μ λ€λ£¨λ λ€μν λ°©λ²μ΄ μμ§λ§, λ€μν νκ²½μμ μΆ©λΆν μ±λ₯μ κ³ λ €νμ¬ κ΅¬ννκΈ°μλ μκ°λ³΄λ€ κ³ λ €ν μ¬νμ΄ λ§κ³ κΉλ€λ‘μ΄ κ²μ΄ μ¬μ€μ λλ€. μ΄λ² μν΄λ¦¬μμλ μ΄λ¬ν λΆλΆμ λμμ΄ λ μλ μλ ν¨ν€μ§λ₯Ό μκ°ν΄λ³΄λ μκ°μ κ°μ Έλ³΄λ €ν©λλ€. π TL;DR Framer Motion μ νΉμ§ TypeScript μ§μ μ΅μ νλ μ±λ₯ λ° νλΆν API physics κΈ°λ°μ μ¬μ€μ μΈ transitionν¨κ³Ό μ 곡 (spring, tween, inertia) λͺ¨λ μΉμ±μμ λ°λ³΅μ μΌλ‘ νμλ‘ νλ μ¬λ¬ λͺ¨μ λ€.. 2023. 3. 27. νλ‘ νΈμλ E2E ν μ€ν (with Cypress) π‘ μ΄λ² ν¬μ€νΈλ μ¬λ΄ μν΄λ¦¬μμ λ°νν λ΄μ©μ μ 리ν κ²μ λλ€. π λ€μ΄κ°λ©° μλ 12μλΆν° μ½ 3κ°μκ° ν곡 μΉ κ°λ°μ μ§ννλλ°, μκ°λ³΄λ€ λ€μν λμ μ΄ μμ΄μ κ³ μμ νλ κΈ°μ΅μ΄ μμ΅λλ€. λκ΅°λ€λ μ κ° μ§ννλ μ 무(μΉ νλΈ μ€ν, TF v12 μ ν)κ° ν곡μ μ 체μ μΈ λμ μ μ μ©μ΄ νμνλ κ²λ€μ΄μ΄μ λμ± κ·Έλ¬λ κ² κ°μλ°μ. μμ§ E2E ν μ€νΈ μμ±κ²½νμ΄ μμ΄μ μ΄λ² κΈ°νμ 곡λΆλ ν΄λ³Ό κ²Έ κ΅μ μ μμ½λμ μ E2E ν μ€νΈλ₯Ό μ§νν΄λ΄€μ΅λλ€. π E2E ν μ€νΈλ? μ°μ κ°λ¨νκ² E2E ν μ€νΈκ° 무μμΈμ§ μ΄ν΄λ³΄κ² μ΅λλ€. νν E2E (End to End) ν μ€νΈλ λΈλΌμ°μ νκ²½μμ μ μ κ° μ¬μ©νκ³ μλ€λ κ°μ νμ μ ν리μΌμ΄μ μ μ 체μ μΈ λμμ κ²μ¦νλ κ²μ λ§ν©λλ€. μ λ ν μ€νΈμ ν΅ν© ν μ€νΈμμ.. 2023. 3. 19. Next.js styled-component μ€μ νκΈ° (SSR FOUC μ΄μ) π Next.js β€οΈ styled-component Next.js μ Styled Component λ₯Ό ν¨κ» μ¬μ©ν λ μ μ ν μ€μ μ νμ§ μμΌλ©΄ SSR μμ FOUC (Flash of Unstyled Content) νμμ΄ λ°μνκ² λ©λλ€. π€ FOUC? νμ΄μ§μ μ€νμΌμνΈ μ λ³΄κ° λ‘λ μμ μ ν¬ν¨λμ§ μμ μ μ μ€νμΌμ΄ μ μ©λμ§ μμ νμ΄μ§κ° λνλλ νμμ λλ€. π FOUC μμΈ νμ νκΈ° Next.js SSR (Pre Rendering) Server-side Rendering κ³Ό Static Generation λͺ¨λ Pre-rendering λ°©μμ΄λ©° νμν data fetching κ³Ό HTML λ λλ§μ΄ client μκ² λ³΄λ΄μ§κΈ° μ μ μ΄λ―Έ μνλ©λλ€. μ΄λ₯Ό ν΅ν΄ client λ non-intera.. 2022. 11. 27. AWS SDK λ‘ s3 νμΌ μ¬μ΄μ¦ μ‘°ννκΈ° π μ λ‘λ ν λ°μ°μ²μ ν¬κΈ° μ νμ μΆκ°ν μ μμκΉμ? νΈλ¦¬ν TNA ννΈλμΉ μλ ννΈλκ° κ³ κ°μκ² μμ½ λ°μ°μ²λ₯Ό μ μ‘νλ κΈ°λ₯μ΄ μμ΅λλ€. κΈ°μ‘΄μλ νμΌ μ¬μ΄μ¦μ μ ν μμ΄ μ μ‘νλλ‘ νλλ°, μ¬μ΄μ¦κ° μ»€μ§ κ²½μ° μ΄μκ° μ겨μ μ΄λ²μ 리λ΄μΌνλ©΄μ μλ²μμ λ°μ°μ² μ¬μ΄μ¦κ° ν΄ κ²½μ° μ΄λ₯Ό λΆλ¦¬ν΄μ μ μ‘ μ²λ¦¬νλ κ² μ΄μΈμ νλ‘ νΈμλμμλ κ°λ³ λ°μ°μ²μ μ©λ μ ν(15MB)μ μΆκ°νκΈ°λ‘ νμ΅λλ€. μ΄λ₯Ό μν΄ λΈλΌμ°μ μμ μ¬λ¦¬λ νμΌ μ¬μ΄μ¦ μ²΄ν¬ μ΄μΈμλ S3 μ μ΄λ―Έ μ λ‘λ λ λ°μ°μ² νμΌ μ¬μ΄μ¦λ₯Ό μ‘°νν΄μ κ° λ°μ°μ² νλͺ©μ μ©λμ 보λ₯Ό ν¨κ» λ ΈμΆν΄μ€μΌ νμ΅λλ€. κ·ΈλμΌ κ³ κ°μ΄ μ΄λ€ νμΌμ λ¬Έμ κ° μλμ§ νλ²μ νμΈμ΄ κ°λ₯ν ν λκΉμ. π S3 νμΌ μ¬μ΄μ¦ (HeadObject) λΈλΌμ°μ μμ μ λ‘λν νμΌ.. 2022. 11. 26. μ΄μ 1 2 3 4 5 λ€μ