October 22, 2022 • ☕️ 7 min read
맨날 술이야
반응형 디자인은 PC, 태블릿, 모바일 기기 별로 화면 크기를 측정해서 기기별로 화면이 반응해서 달라지는 것이다. 모든 디바이스에서 하나의 템플릿을 사용하고 현재 해상도에 맞는 화면을 렌더링한다. ex) https://www.apple.com/kr/shop/buy-iphone/iphone-14
적응형 디자인은 모바일웹을 PC웹과 분리해서 별도로 제작하는 것이다. 여러 디바이스에 N개의 템플릿이 존재하고, 감지된 디바이스에 맞는 템플릿을 렌더링한다. 적응형 웹을 만드는 이유는 반응형으로 표현하기 어려운 레이아웃 또는 사용자의 편의성을 위해 모바일 화면에 최적화된 화면을 만들기 위해서이다. ex) https://market-wms.beta.woowa.in/login
Ref https://www.next-t.co.kr/blog/homepagemade_04
will-change
, transition-property
will-change
will-change
를 직접 포함시키는 것이 적절할 것이다. 이것은 브라우저가 미리 변이를 준비하게 해 키가 눌리자마자 페이지간의 팔팔한 애니메이션을 가능케 할 것이다..slide {
will-change: transform;
}
transition-property
- transition
(단축) 속성의 네 가지 속성 중 하나
transition-property
: 속성transition-duration
: 기간transition-timing-function
: 시기 선택transition-delay
: 지연Ref
.npmrc
에 registry를 설정해주면
애플에서 xcode가 특정버전 이하면 기기 빌드를 막는다. (현재 13.3이상은 가능)
Sentry를 적용할 때 enabled
옵션을 사용해서 특정 환경에서만 로그가 남도록 설정해줄 수 있다.
Sentry.init({
enabled: process.env.NODE_ENV === "production",
// ...
});
물류대행과 판매중개는 다르다.
<small />
태그 - 덧붙이는 글이나, 저작권과 법률 표기 등의 작은 텍스트를 나타낸다. (Ref)
decodeURIComponent()
- encodeURIComponent
로 생성된 URI 컴포넌트를 디코딩한다.
function decodeQueryParam(p) {
return decodeURIComponent(p.replace(/\+/g, " "));
}
decodeQueryParam("search+query%20%28correct%29");
// 'search query (correct)'
--watch
이제 더 이상 nodemon, pm2 등을 쓸 필요가 없다!
Ref https://www.npmjs.com/package/lerna
typescript-json을 만드셨다고 한다.
Ref https://dev.to/samchon/typescript-json-is-10-1000x-times-faster-than-zod-and-io-ts-8n6
Node 19버전이 release되었다. 이제 18이 LTS라니.. 😲
KeepAlive
가 디폴트로 설정됨llhttp? >
llparse
(incremental parser를 C output으로 컴파일해주는 API)의 http 포트로,http_parser
를 개선해서 만들었다.
Ref https://nodejs.org/en/blog/release/v19.0.0/
유명한 CSS-in-JS 라이브러리 중 하나였던 emotion의 메인테이너가 다시 sass로 돌아가려고 한다는 내용이다! CSS-in-JS와 sass의 장단점을 설명하고 있다.
CSS-in-JS
<div css={{ padding: "0.5rem", border: "1px solid #ddd" }}>...</div>
CSS Module도 지역 스코프 스타일을 지원하긴 한다.
CSS Module을 사용해도 스타일을 컴포넌트와 같은 곳에 위치시킬 수 있다.
👍 스타일 파일에 자바스크립트 변수를 사용할 수 있다. 스타일에 자바스크립트 변수를 사용하여 중복을 젝하고, 쉽게 스타일을 커스텀할 수 있다.
😐 CSS-in-JS는 새로운 기술이 아니다.
👎 런타임 오버헤드를 증가시킨다. 컴포넌트를 렌더링할 때, CSS-in-JS 라이브러리는 스타일을 plain CSS로 serialize해야 하기 때문이다.
👎 번들 사이즈를 증가시킨다.
👎 React DevTools을 지저분하게 만든다.
😩 CSS rule을 계속해서 집어넣는 것은, 브라우저의 부담을 가중시킨다. 리액트 컴포넌트를 렌더링할 때마다 새롭게 스타일을 집어놓고, 이는 DOM 재계산 비용을 가중시킨다.
😩 SSR이나 다른 컴포넌트 라이브러리들을 사용했을 때 오류가 발생할 수 있다.
이렇게 보니 CSS-in-JS는 그냥 💩이잖아… 자기들이 만들어 놓고 ‘Bad’도 아닌 ‘Ugly’를 붙이다니 🤷♀️
그래서 다시 plain CSS로 돌아가기로 했고, CSS-in-JS의 두 가지 장점인 ‘지역 스코프 스타일링’과 ‘같은 장소 배치(Colocation)‘을 수행할 수 있는 sass Module을 선택했다.
그리고… 이제 다시 tailwind css의 물결이 이는 걸까 😬
Ref https://dev.to/srmagura/why-were-breaking-up-wiht-css-in-js-4g9b
하드한 술자리가 많았던 주였다… 일요일에 해커톤까지 하고 집 와서 기절 😵