이번주 할일 동적인 부분 ? 계획에 맞게 진행
CSS
em, rem 최상위에 설정한 값을 가지고 설정(상대적 단위)
함수 기반 애플리케이션 설계
함수를 활용한 개발 FP는 아님 순수함수로 만들기 단일책임원칙 DOM
//복수로 받는 것들
document.getElements~(복수)
// 단수로 받는 것들
document.getElement~(단수)
HTMLCollections
//전개 연산자로 각 노드들을 조작
[...Nodelist]개발자 도구로 선택한 요소 가져오기
- $0, 1, 2…
함수를 활용한 개발?
event 다루기
Event onClick이벤트 → pc, 모바일에서 정상 작동
- 모바일 디바이스의 브라우저 엔진이 이벤트를 모바일에 맞게 최적화

e.target과 e.currentTarget의 차이
- e.target → 이벤트가 이루어진 요소
- e.currentTarget → body
상위 컴포넌트 단위로 이벤트 위임
module pattern
클로저를 활용해서 함수를 리턴하는 방식으로 private하게 데이터를 관리

commonjs 스펙 브라우저에서 모듈을 가져와서 사용하는 방식
browserify 도구 spa → 여러 js 파일이 많아 복잡함 esm이 지원되지 않아도 번들링해서 주는 webpack(모듈 번들러) 여러 개의 트리 구조처럼 된 스크립트가 번들화되어 하나의 js만 script로 넣을 수 있게끔
좋은 모듈화란
현대는 esm 방식으로 개발 아직은 브라우저 호환성이 완벽하지 않아 모듈 번들러를 사용
스토어 - 뷰를 연결시켜주는 controller → MVC와 유사한 패턴 view를 기준으로 잘 나누기 store 상태작업 view 돔작업
vsync에 대해 알기
자동 이동 → transition으로 애니메이션 되는 것처럼
패널을 세개로 나눠서 메모리 효율성을 높이기
DBMS
DIKW 피라미드
- data
- 실제적인 값을 디스크에 저장(반영구적 보관을 위해)
- 기록을 하기 위해서는 디스크의 바이너리 형태로 저장할 수 있어야 함
- electronical하게 저장
- 전기적으로 저장할 수 있는 값을 데이터라고 함
- Information
- 의미가 있는 값
- 데이터를 Information으로 만들기 위해서는 데이터들이 모여있는걸보고 저장
- knowledge
- information을 이용하여 information을 얻음
- 가지고 있는 information을 바탕으로 도출해낼 수 있는 유용한(유용성) 지식
- wisdom
- 가지고 있는 knowledge를 바탕으로
문제풀이에 사용하는 자료구조
- 리스트→ 애플리케이션에 종속적
- 바이너리 트리
- 맵
- 그래프 ⇒ 메모리에서 저장되고 돌아감
DDBMS d이전의 DBMS List - > Lfat Records Binary Tree → 계층형 디비 Graph → 네트워크 DVB
RDBMS
- E.F.Codd “A relational Model of data for Large SHared Data banks”
- IBM System R bkerkeley Postgress 1970년대 이후로 데이터 저장을 위해 가장 널리 사용됨 오라클, MySQL, MS-SQL, PostgreSQL 트랜잭션 지원
트랜잭션의 성질
ACID
- Atomicity
- Consistency
- Isolation
- Durability
분산 시스템
CAP 이론
확장성
수평 확장 vs 수직 확장
- 수평 확장 : 컴퓨터를 여러개로 늘리는 것(dbms를 늘림)
- 수직 확장: 디스크, cpu등 돈을 써서 스펙을 늘림
NOSQL
- Not Only SQL
- 관계형 데이터베이스를 보완하기 위한 데이터 저장소
- 도큐먼트 디비, KV Store, 그래프 DB 등
Document DB: MongoDB
- json기반 레코드 저장
- 빠르고 사용이 간단함
- 비정형 대용량 데이터에 대한 빠른 접근 제공
- orm(object relational mapping) → 객체와 db 사이에는 차이가 큰데 이를 억지로 맞추려는
- 조금 더 객체에 가까움 (ogm)
In-memory Data Store: Redis, Mem-cached
- KV 저장 지원
- RAM에서 돌아감
- 매우 빠름(마이크로세컨드 단위)
- 단순 데이터 처리 용도로 사용되었으나 기능이 점차로 증가되는 추세
- 캐시, 세션 클러스터링(세션db), Pub-Sub, 이벤트 처리 등의 다양한 용도로 사용 가능
- Redis: NOSQL 인메모리 디비지만 맥가이버 칼 같은 존재
Elastic Search
- Apache Lucene 기반 검색엔진
- 전문 검색에 널리 사용
스트림 데이터 처리: Kafka
- 대규모 실시간 데이터 스트리밍을 처리하기 위해 개발된 오픈 소스 분산형 이벤트 스트리밍 플랫폼
- Likedin에서 처음 개발, 이후 Apache Software Foundation에서 관리
- 실시간 데이터 피드
- 데이터 스트리밍
- 로그 수집
- 트랜잭션 로그 처리
- RabbitMQ가 더 가벼운 프로젝트에 적합
서버의 3계층
- 사용자의 요청 처리(웹 서버 - 정적인 콘텐츠)
- WAS(web application server)
- database
- +Message queue(RabbitMQ)
Graph DB
완전 관리형 클라우드 DB: AWS Dyanamo DB
- KV Store + Document Store
- 설치가 필요없음
- 고성능 고가용성 내구도
- 비쌈
Hadoop
- 대규모 데이터를 분산처리하기위해 만들어진 오픈 소스 플랫폼
- HadooFS
- MapReduce
- YARN, HADDOP Common
- 최소 3카피의 데이터 분산저장
Hadoop Eco System
- Zookeeper: 관리 도구
- Hive: SQL 쿼리를 사용해 HDFS에
저장된 데이터를 분석할 수 있는 데이터 웨어하우스 시스템.
- HBase: HDFS 위에 구축된 분산형 NoSQL 데이터베이스, 빠른 데이터 조회가 필요한 경우 사 용.
- Spark: 대규모 데이터 처리 및 분석을 위한 고속 처리 엔진, 특히 반복 작업에 효율적.
- Flume: 로그 데이터를 수집하고, HDFS로 전송하는 분산형 데이터 수집 시스템.
- Pig: 대규모 데이터 세트의 분석을 단순화하는 스크립팅 플랫폼.
- Oozie: Hadoop 작업의 워크플로우를 관리하는 스케줄러.
3306 포트로 로컬에서만 열기
bind address
mysqlx
주석처리
이후 sudo systemctl restart mysql
erd 공부하기

connection pool 만들기!

query plan을 통해 성능 체크