August 18, 2024 • ☕️ 4 min read
resolve.alias
import
나 require
로 간단히 특정 모듈의 별칭을 만들 수 있다. 예를 들어, 일반적으로 사용되는 src/
폴더의 별칭을 지정할 수 있다.const path = require('path');
module.exports = {
//...
resolve: {
alias: {
Utilities: path.resolve(__dirname, 'src/utilities/'),
Templates: path.resolve(__dirname, 'src/templates/'),
},
},
};
이제 import 구문에서 절대경로를 사용할 수 있다
// AS-IS
import Utility from '../../utilities/utility';
// TO-BE
import Utility from 'Utilities/utility';
Ref https://webpack.kr/configuration/resolve/
반응형 시스템에서 가장 기본적인 타입으로, getter/setter/값으로 구성된다.
Observable, Atom, Subject 또는 Ref라고도 한다
const [count, setCount] = createSignal(0);
console.log(count()); // 0
setCount(5);
console.log(count()); // 5
signal의 핵심은 event emitter로, 주요 차이점은 구독을 관리하는 방법이다.
Reaction
Derivation
Ref https://junghan92.medium.com/번역-자바스크립트-signal의-진화-4bd6a991d2f
||
peerDependencies: {
"react": "^16 || ^17 || ^18"
}
||
는 OR 조건을 나타낸다."react": "^16 || ^17 || ^18"
는 패키지가 React 16, 17, 18 버전 모두와 호환됨을 의미한다.window.location.replace
는 입력된 경로의 형식에 따라 상대경로, 절대경로를 구분하여 인식한다.
예를 들어 현재 경로가 localhost:3000/depth1/depth2
일 때,
window.location.replace('www.naver.com')
은 상대경로로 인식해서 localhost:3000/depth1/www.naver.com
으로 이동한다. 즉 depth2만 replace된다.
반면 window.location.replace('https://www.naver.com')
은 절대경로로 인식해서 https://www.naver.com
로 이동한다.
👩🏫 절대경로를 원한다면 프로토콜을 빼먹지 말자.
expect(['🔵', '🔴']).toEqual(expect.arrayContaining(['🔵', '🔴'])); // pass ✅
expect(['🔵', '🔴', '🟢']).toEqual(expect.arrayContaining(['🔵', '🔴'])); // pass ✅
expect(['🔵']).toEqual(expect.arrayContaining(['🔵', '🔴'])); // fail ❌
Module Aliasing을 이용해서 react의 다른 버전 디펜던시를 설정해줬다.
// package.json
"react-18": "npm:react@18"
global alias를 통해 모든 로직을 중앙으로 집중시켰다.
React 16과 18 대응을 위한 두 개의 쿠버네티스 환경을 만들어 environment targeting을 했다.
폭 넓은 테스트를 통해 안정성을 유지했다.
점진적 rollout으로 마참내 React 18 도입에 성공했다.
이제 React 19 나오면 어쩌냐? 🤷
Ref https://medium.com/airbnb-engineering/how-airbnb-smoothly-upgrades-react-b1d772a565fd
주 3일제 너무 좋다…
집청소 싹 하고 하고 싶은 개발, 공부, 독서 다 하고 수영장&찜질방도 갔다가 친구들이랑도 대차게 놀아버렸다.
이제 어떻게 출근하냐…
아무튼 대한 독립 만세 🇰🇷🙌