2019. 9. 2. 11:21ㆍ소소한 정보
*JavaScript가 10일만에 탄생하여 지금까지 걸어온 길
- 어느 누구도 JS가 이 정도로 인기있고 광범위하게 사용될지 아무도 예상하지 못했다.
- 세계적으로 크게 성장한 기업의 많은 CEO도 자신의 회사가 이렇게 크게 성잘할거라고 생각하지 못한 사람들이 많다.(처음부터 거대하고 지배적인 기업을 목표로 시작한 회사는 생각보다 많지 않다.) 우리의 삶을 지배하고 있는 불확실성과 운을 제대로 인지하지 못하는 것은 왜일까. 우리 삶에 논리와 계획이 전부일거라고 생각하는 사람은 없겠지만 사람들의 행동은 분명 운과 불확실성이 없는 것처럼 행동한다. 이론과 행동은 다른 차원의 문제로 보인다.
- 아직까지 써본적없고 가끔씩 봐오긴했던 ES6의 새로운 primitive. 오픈 소스 라이브러리를 위한 측면이 강하기 때문에 아무래도 사용할 필요성이나 기회를 얻지 못했던 것으로 보인다.
- object의 유일 속성을 위한 타입으로 다른 라이브러리나 기술로 object 이름에 의해서 문제가 발생하는 상황을 피하기 위해서 사용하게 된다.
- 점. 으로 접근하지 못하며 꺽쇠괄호[] 를 통해서만 접근 가능하다. Symbol 값은 외부에 값이 노출되지 않는다.
- Symbol('주석') 안에 들어가는 값은 주석 역할을 한다.
const hi = Symbol('안녕')
const obj = {
[hi]: 'hello'
}
obj.hi // X
obj.Symbol('안녕') // X
obj.안녕 // X
obj[hi] // ok
AdminBro - node기반의 admin 시스템
- 모던 브라우저의 최근 업데이트 내용에 따라서 번들러없이 순수 모듈 방식의 웹앱 서비스 시도하기
*react의 re-render 횟수를 최소화하기전에 re-render 성능을 높이기
- 컴포넌트 함수가 실행되었다고 무조건 commit(dom update) 되지 않는다.
- re-render는 아래의 과정을 말한다.
- rendering > reconciliation > commit(if needed) > props나 state가 변경되면 과정을 반복한다.
- re-render !== dom update
- 기본적으로 rendering과 reconciliation 과정은 매우 빠르다. 그렇기 때문에 성능 저하가 발생하면 렌더시 실행되는 로직을 최적화하는게 중요하다(re-render 과정 최적화).
- 그 후에도 성능저하가 있다면 렌더링 횟수 최적화를 시도한다.(re-render 실행 최적화)
- reconciliation 알고리즘을 이해하고 있는 것도 중요하다.
- 최적화에도 비용이 발생하기 때문에 트레이드 오프를 고려해야 한다.
- 사용하려는 상태 data가 영향을 미치는 컴포넌트 범위를 파악하고 되도록 전역 state와 redux state를 피한다.