본문 바로가기

전체 글41

SCSS mixin으로 font 및 반응형 레이아웃 정의하기 0. TL;DRFont성능을 위해 woff2, subset font 사용. 지원 안할 경우를 대비 woff는 fallback font로 설정mixin을 사용해 classname으로 간단히 font 사용 가능하도록Layout모든 iPhone 사이즈에 대응가능하도록 media query로 계산mixin을 사용해 레이아웃 요소가 일관적인 사이즈 유지하도록1. Why?현재 iPhone용 App에 들어갈 Webview page 제작 중mixin을 사용해서 팀이 사용할 Font와 Layout을 설정해보자2. Font빠르게 Font를 설정할 수 있도록, 용량이 가장 작은 woff2 사용woff를 지원하지 않을 경우를 대비해 woff를 fallback font로 설정또한 기본 font 대비 1/3가량인 subset f.. 2024. 4. 21.
eslint + husky + lint-staged로 CI 부담 덜어주기 0. TL;DR CI/CD 구축이 완료되었으나, CI단계에서 lint와 test를 모두 진행하는 것이 적절한지 고민 CI단계에서는 많은 코드가 한번에 추가될 것 어긋난 코드를 한번에 수정하는데 많은 리소스가 소모될 우려가 있음 Git hooks를 사용해 pre-commit 단계에서 lint catch를 하기로 결정 husky와 lint-staged를 사용해서 구현 1. Why? Pennyway 프로젝트에서 CI/CD 파이프라인 구축이 완료되었다. 대략적인 로직은 아래와 같다. CI & CD 더 자세한 사항은 repository wiki에서 볼 수 있다. 고민 근데 CI에서 eslint를 catch하는 게 적절한지에 대한 고민이 생겼다. 현재 CI의 로직은 다음과 같다. Main branch로 PR 작성 .. 2024. 4. 18.
Next.js 14 다크모드 구현하기 / 웹 이력서(작성 중) 0. TL;DR 웹 이력서에 다크모드를 적용할 필요성을 느낌 일관적인 경험을 위해 system값을 기본값으로 사용하고, 이후에는 dark / light모드를 토글로 변환하도록 결정 'system 값 사용'과 'load 시 flickering 이슈' 해결에 장점이 있는 next-themes 라이브러리를 사용해서 구현 1. Why? 이력서의 경우 많은 사람들에게 피드백을 받아보는 것이 좋다고 생각한다. 그래서 어느정도 완성된 이력서 사이트를 친구에게 보여줬더니 개발자를 위한 다크모드는 없냐고 불평을 했다. 난 사실 화이트모드를 더 좋아하지만, 상당수의 개발자들이 다크모드를 선호하는 것은 사실이다. 내 이력서 보는 사람들도 어두운 화면을 보다가 갑자기 밝은 화면을 보면 불쾌할 수도 있고, 눈 아프다고 그냥 끄.. 2024. 4. 2.
Web Worker로 백그라운드에서 타이머 작동시키기 0.TL;DR 기존의 타이머 수정방안 3가지 모두 서버 리소스와 UX측면에서 약간의 손해를 감수해야 했기에 아쉬웠음 JavaScript의 비동기 처리 브라우저의 멀티 스레드 동작, 그리고 백그라운드 스레드에서 동작하는 Web Worker 학습 이후 Web Worker를 사용해서 background에서 타이머가 동작하도록 해 문제 해결 1. Why? 스타게이트에서 타이머를 동작시키는 과정에서, 백그라운드로 탭이 넘어갈 시 1000ms에 한 번 동작해야 할 타이머가 60000ms에 한 번 동작하게 되는 문제점이 있었다. 이를 해결하기 위해 Page Visibility API로 타이머가 정상적인 값을 보내주도록 처리했었다. setInterval과 Page Visibility API로 정확한 대기시간 알려주기 .. 2024. 3. 19.