정규
NoSQL
- DB 등장 이전, 파일 시스템의 한계
data redundency 중복(잉여), 데이터 일관성x, 접근이 어려움(경로/경로/경로/), 동시작업의 어려움(동시에 파일 수정 불가) 등
- DBMS의 등장 (70s)
- RDBMS 안정적, 아직까지 많이 씀
- NoSQL 등장 (현대의 인터넷 등장 90s) => 데이터양의 폭발적 증가 e.g. googleBooks
- 그래서 NoSQL 왜 쓰는가? 특징
- 유연한 스키마 / 다양한 데이터 타입
- 빠른 key-value 접근 (다는 아니지만, mongodb의 경우 도큐먼트)
1,2 특징 => 비교적 유지보수에 용이, 운영 관리 등 이점, 객체가 익숙한 개발자에게 쉬운 사용법
- [가장 큰 특징]
거대 데이터,
빠른 쓰기 성능이 중요할 때,
고가용성 (high availability) 레플리카 세트 -> 클러스터(컴 모여있는것)
- 어떻게 쓰는가
- Insert(C), Find(R), Update(U), Delete(D)
- 비교/논리/표현/배열 연산자, projection
- 배열, 서브 도큐먼트 쿼리
- Aggregation Framework
- 인덱싱
+ 실제로 익숙해지게끔 터미널에서 많이 쳐볼것
- 토이: 구간트리 (구간의 최소값, 최대값, 합 등 O(N * logN) 으로 구할수 있게 - 각 노드의 밸류가 최소/최대/합 자체가 되게끔 트리를 객체/배열로 구현)
개인
react-twittler-state-props-refer
- package.json
- 파일 구조 (src/ component, pages, static(or asset, 2tier일때)
리덕스라면, +action, reducers, store
- shortId 모듈 -> nanoid "A tiny, secure, URL-friendly, unique string ID generator for JavaScript." nanoid
dre
ch 이벤트
- bubbling & capturing
event.target !== event.currentTarget
조건 이용 GOOD
event.stopPropagation()
, event.stopImmediatePropagation()
BAD (다른 함수의 처리를 막는것x 사이드이펙트)
- "passive" event <-> active
event.preventDefault()
passive: false 하면 동작해도 화면에는 x, 하지만 이런 패시브속성을 유지 해주는게 좋다
- 이벤트 위임
반복적으로 addEventListener 쓸 때 (예. ul > li * 5, li 에 각각 걸어주기 보다 ul에 걸기, event.currentTarget, event.target 구분 되기 때문에 가능)
static 정적 : https://ui.toast.com/weekly-pick/ko_20200508
coooooool : https://tinkersynth.com/
내일은
- 언더더씨
- 정규 학습 복기
- 주차 회고
- 섹션2 요약
- 알고리즘