이번주 할일 동적인 부분 ? 계획에 맞게 진행

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 인메모리 디비지만 맥가이버 칼 같은 존재
  • 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을 통해 성능 체크