λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

πŸ’‘ issue6

storybook μ—μ„œ styled component css prop 적용이 μ•ˆλœλ‹€λ©΄? πŸ’‘ 문제 ν˜„μƒ μ‹€ν–‰ ν™˜κ²½ Next 13 Storybook 7.0.4 Styled component: 5.3.10 Next.js 13 μ—μ„œ μŠ€ν† λ¦¬λΆμ„ λΉŒλ“œν•œ κ²°κ³Ό, styled-component 의 css-prop 이 μ˜¬λ°”λ₯΄κ²Œ μ μš©λ˜μ§€ μ•ŠλŠ” μ΄μŠˆκ°€ μžˆμ—ˆμŠ΅λ‹ˆλ‹€. πŸ€” 원인은? 기본적으둜 css-prop 을 μ‚¬μš©ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈλŠ” babel 을 ν†΅ν•΄μ„œ λΉŒλ“œκ°€ μ΄λ€„μ§€λŠ”λ°, Next.js 12 λΆ€ν„°λŠ” babel λŒ€μ‹ μ— swc 둜 λΉŒλ“œν•˜κΈ° λ•Œλ¬Έμ—, λ¬Έμ œκ°€ 생긴 λ“― λ³΄μ˜€μŠ΅λ‹ˆλ‹€. ν˜Ήμ‹œλ‚˜ ν•΄μ„œ κ΄€λ ¨λœ 이슈λ₯Ό μ°Ύμ•„λ³΄λ‹ˆ, 아직 ν™œλ°œν•˜κ²Œ λ…Όμ˜λ˜κ³  μžˆλŠ” μƒνƒœμ˜€μŠ΅λ‹ˆλ‹€. https://github.com/vercel/next.js/issues/30802 Port babel-plugin-styled-components to SWC · I.. 2023. 5. 15.
JavaScript 둜 μƒμ„±ν•œ csv νŒŒμΌμ—μ„œ ν•œκΈ€μ΄ 깨진닀면? πŸ“Œ JavaScript 둜 csv 파일 μƒμ„±ν•΄μ„œ λ‹€μš΄λ‘œλ“œλ°›κΈ° 이전에 csv 포맷을 λ‹€λ£° 일이 μƒκ²¨μ„œ Blob 객체λ₯Ό μƒμ„±ν•΄μ„œ νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œ 받도둝 μ½”λ“œλ₯Ό κ΅¬ν˜„ν–ˆμ—ˆμŠ΅λ‹ˆλ‹€. const download = function (data) { const blob = new Blob([data], { type: 'text/csv' }); const url = URL.createObjectURL(blob) const a = document.createElement('a') a.setAttribute('href', url) a.setAttribute('download', 'νŒŒμΌμ΄λ¦„.csv'); a.click() } μ½”λ“œλŠ” κ°„λ‹¨ν•©λ‹ˆλ‹€. λ¦¬μ†ŒμŠ€νƒ€μž…μ΄ λͺ…μ‹œλœ Blob 객체λ₯Ό μƒμ„±ν•œ λ’€ 이λ₯Ό κ°€λ¦¬ν‚€λŠ” Object URL 을 .. 2023. 3. 18.
Safari λΈŒλΌμš°μ € window.open block 이슈 πŸ“Œ 1:1 λ¬Έμ˜ν•˜κΈ°κ°€ safari μ—μ„œλ§Œ λ™μž‘μ„ μ•ˆν•΄μš”! μ–Όλ§ˆμ „μ— 항곡μͺ½ QA 쀑에 λ‹€μŒκ³Ό 같은 μ΄μŠˆκ°€ μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 원인을 νŒŒμ•…ν•˜κΈ°μœ„ν•΄ safari λΈŒλΌμš°μ €μ—μ„œ 동선을 νŒŒμ•…ν•΄λ³΄λ‹ˆ, 문의 λ²„νŠΌ 클릭 μ‹œ μƒˆμ°½μœΌλ‘œ μ—΄κΈ° λŒ€μ‹  νŒμ—… 차단 μ•ŒλŸΏμ΄ λœ¨λŠ” 것을 확인할 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. πŸ€” 원인이 뭘까? safari λΈŒλΌμš°μ €μ—μ„œ λ‹€μŒκ³Ό 같은 μ½”λ“œλŠ” μ •μƒμ μœΌλ‘œ λ™μž‘ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. { await asyncJob() window.open('url', '_blank'); // ❌ } /> μ΄λŠ” safari λΈŒλΌμš°μ €μ—μ„œ μƒˆμ°½μ„ μ—΄λ•Œ, μ‚¬μš©μžμ˜ μž…λ ₯에 κ³§λ°”λ‘œ λ°˜μ‘ν•  수 μ—†λŠ” 상황이라면 window.open μ•‘μ…˜μ„ 막기 λ•Œλ¬Έμž…λ‹ˆλ‹€. (λŒ€ν‘œμ μœΌλ‘œ 비동기 μš”μ²­μ„ μˆ˜ν–‰ν•œ λ’€ λ¦¬λ‹€μ΄λ ‰νŠΈ ν•˜λŠ” 것이 μžˆκ² λ„€μš”) πŸ“Œ μ–΄λ–»κ²Œ 고치면 될까? πŸ› λ¬Έ.. 2022. 11. 26.
-webkit-overflow-scrolling 속성과 stacking context 이슈 πŸ“Œ λΆ€λ“œλŸ¬μš΄ overflow μŠ€ν¬λ‘€μ„ μœ„ν•œ css 속성 κ°„λ‹¨ν•œ overflow container μ˜ˆμ‹œ 이전뢀터 HTML μš”μ†Œμ— overflow κ°€ λ°œμƒν–ˆμ„ 경우 슀크둀 ν˜•νƒœλ‘œ 컨텐츠λ₯Ό 보여주기 μœ„ν•΄ λ‹€μŒκ³Ό 같이 CSS λ₯Ό μ •μ˜ν–ˆμŠ΅λ‹ˆλ‹€. .container { display: flex; flex-direction: row; overflow-x: scroll; flex-wrap: nowrap; width: 200px; } 특히 iOS 의 경우 슀크둀 λ°”μš΄μŠ€ 효과λ₯Ό μœ„ν•΄ λ‹€μŒκ³Ό 같이 슀크둀 κ΄€λ ¨ vendor prefix λ₯Ό ν¬ν•¨ν•œ CSS μ½”λ“œλ₯Ό μž‘μ„±ν•˜κ²Œ λ©λ‹ˆλ‹€. -webkit-overflow-scrolling: touch; μ—¬κΈ°μ„œ touch 둜 지정할 경우 λͺ¨λ©˜ν…€ 기반 슀크둀 λ°©μ‹μœΌλ‘œ λ™μž‘ν•˜κΈ° λ•Œλ¬Έμ— 일반적인.. 2022. 7. 4.
Next.js window is not defined 원인 및 해결방법 πŸ“Œ μƒˆλ‘œκ³ μΉ¨ μ‹œ 였λ₯˜ νŽ˜μ΄μ§€κ°€ λ– μš”! ν˜„μž¬ νšŒμ‚¬μ—μ„œ Next.js λ₯Ό μ΄μš©ν•œ ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜κ³  μžˆλŠ”λ° νŠΉμ • νŽ˜μ΄μ§€μ—μ„œ μƒˆλ‘œκ³ μΉ¨μ„ ν•˜κ±°λ‚˜ URL 을 톡해 직접 접근을 μ‹œλ„ν•  경우 μ—λŸ¬κ°€ λ°œμƒν•˜λ©° μ—λŸ¬ νŽ˜μ΄μ§€λ‘œ λ¦¬λ‹€μ΄λ ‰μ…˜λ˜λŠ” μ΄μŠˆκ°€ μžˆμ—ˆμŠ΅λ‹ˆλ‹€. πŸ“Œ 였λ₯˜ λ°œμƒ 원인은? ν•΄λ‹Ή νŽ˜μ΄μ§€μ—μ„œλŠ” custom hook 을 μ‚¬μš©ν•˜κ³  μžˆμ—ˆλŠ”λ° μ—¬κΈ°μ„œ λ¬Έμ œκ°€ λ°œμƒν•œ κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€. πŸ’‘ λ¬Έμ œκ°€ 된 custom hook λ‹€μŒμ€ μ΄λ²ˆμ— 문제λ₯Ό μΌμœΌν‚¨ 주범인 custom hook 의 κ°„λ‹¨ν•œ μ˜ˆμ‹œμž…λ‹ˆλ‹€. export default const customHook = () => { const [flag, setFlag] = useState(Number(localStorage.getItem(countKey) || '0')) // λͺ‡κ°€μ§€ μž‘.. 2022. 6. 17.
Safari λΈŒλΌμš°μ € scroll-behavior 이슈 πŸ“Œ λΆ€λ“œλŸ¬μš΄ scroll λ™μž‘ κ΅¬ν˜„ν•˜κΈ° 이전 νšŒμ‚¬μ—μ„œ ν”„λ‘œμ νŠΈλ₯Ό 진행할 λ•Œ 이벀트 νŽ˜μ΄μ§€μ—μ„œ 액컀 λ²„νŠΌ 클릭 μ‹œ νŠΉμ • μœ„μΉ˜λ‘œ μ΄λ™ν•΄μ•Όν•˜λŠ” μš”κ΅¬μ‚¬ν•­μ΄ μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 직접 offsetTop 을 μ§€μ •ν•΄μ£ΌλŠ” μ• λ‹ˆλ©”μ΄μ…˜μ„ κ΅¬ν˜„ν•˜κ±°λ‚˜ window κ°μ²΄μ—μ„œ μ œκ³΅ν•˜λŠ” Web API λ₯Ό μ‚¬μš©ν•˜λŠ” 방법듀이 μžˆλŠ”λ°, κ΅¬ν˜„μ„ κ°„λ‹¨ν•˜κ²Œ ν•˜κΈ° μœ„ν•΄μ„œ 이쀑 window.scrollTo λ₯Ό μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€. 그리고 λΆ€λ“œλŸ¬μš΄ μ›€μ§μž„μ„ μœ„ν•΄ behavior 둜 smooth 둜 μ§€μ •ν–ˆμŠ΅λ‹ˆλ‹€. window.scrollTo({ top: 100, behavior: 'smooth' }) πŸ“Œ AOS μ—μ„œλŠ” 잘 λ˜λŠ” 것 같은데.. iOSλŠ”..? ν•΄λ‹Ή μ½”λ“œλ₯Ό 앱에 λ°°ν¬ν•΄λ³΄λ‹ˆ μ•ˆλ“œλ‘œμ΄λ“œ ν°μ—μ„œλŠ” 잘 λ™μž‘ν•˜λŠ”λ° μ•„μ΄ν°μ—μ„œλŠ” smooth λ™μž‘μ΄ μ μš©λ˜μ§€ μ•ŠλŠ” .. 2022. 6. 11.