TIL-210809

박건희·2021년 8월 10일

1. 요즘 세상의 배움이란?

  • 배움에는 시간과 노력이 필요하다.
  • 남들과 비교하지 말고, 내가 아는 것과 모르는 것을 분명하게 하자.
  • 발전이 더디더라도 꾸준히 하면 한 단계 도약해 있을 것.

2. 데이터베이스가 왜 필요한가?

  • 서비스에 필요 : 사용자용 / 회사 내부용
  • RDBMS : 관계형, 즉 데이터를 테이블의 집합으로 구성.
    • Production : 빠른 처리 속도(MySQL, PostgreSQL)
    • Data Warehouse : 대용량 데이터 처리(BigQuery, Snowflake, Redshift, MySQL) -> 서비스에서 발생하는 데이터를 가공하여 개인 추천 서비스/인사이트 도출.

3. 백엔드 시스템 구성도 예제 보기

  • 2 tier : 주로 Desktop app
  • 3 tier : 주로 Web service
    • Web Framework(Backend) : Spring, Django ..
    • DataBase(Backend) : MySQL, PostgreSQL
    • Frontend : React

4. 관계형 데이터베이스 소개

  • 구조화된(table) 데이터를 저장하고 질의할 수 있도록 해주는 storage
  • DBMS : MySQL, PostgreSQL(RDBMS) / MongoDB

5. SQL 소개

  • RDB 조작 언어
    • DDL : Definition - 스키마 관리(Table 생성/변경/삭제)
    • DML : Manipulation - 데이터 CRUD
    • DCL : Control - 데이터 접근 권한 관리
  • 빅데이터에도 중요
    • 구조화된 데이터를 다루는 곳에는 모두 필요
    • Data warehouse도 SQL 기반
  • 단점
    • 비 구조화된 데이터를 다루는데는 제약(Spark, Hadoop이 필요)
    • RDB마다 SQL 문법이 다름(Oracle, MySQL, PostgreSQL..)
  • Star / Denormalized schema
    • Star : production 용 DB, 데이터를 논리적 단위로 구분, 필요시 Join / Storage 낭비가 덜하고 업데이트 용이
      Star schema
    • Denormalized : NoSQL이나 Data warehouse에서 사용 / 데이터를 나눠 저장하지 않으므로 Join이 필요 없어 연산 빠름(장점) Storage 사용량 증가(단점)

느낀점

이번주는 MySQL을 복습하며 확실히 알지 못했던 부분을 챙기려한다.
배움에 대해 다시 한번 생각하게 됐고 나를 믿고 할 수 있다는 마음을 가지려 한다.

0개의 댓글