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

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을 통해 성능 체크