본문 바로가기

TIL

[TIL] 210809

데이터베이스

관계형 데이터베이스는 크게 2가지 종류로 나뉜다. 프로덕션 관계형 데이터베이스(RDBMS)와 데이터 웨어하우스이다.

1. 프로덕션 관계형 데이터베이스

  • 서비스의 운영에 필요 데이터를 저장하는 곳
  • 빠른 처리속도가 중요함
  • 보통 웹,앱에서 생성되는 데이터들을 프로덕션 관계형 데이터베이스에 저장함(회원가입, 물건구매 등등)
    • 처리 속도가 중요

2. 데이터 웨어하우스

  • 사용자들이 내부 직원들인 경우 처리하는 데이터가 상대적으로 크다.
  • 빠르게 처리하는것보다 얼마나 큰 데이터를 처리할 수 있느냐에 초점이 맞춰져있음
  • 회사 관련 데이터를 저장하고 분석함으로써 의사결정과 서비스 최적화에 사용
  • BigQuery, Snowflake, Redshift, MySQL, ...
  • 처리속도 보다는 구조화된 큰 데이터를 처리하는 것이 중요
  • 데이터 엔지니어, 데이터 분석가, 데이터 과학자
    • 데이터 분석, 데이터 과학에서 수집된 데이터를 가지고 가공할 때 사용
  • 서비스에서 생성하는 데이터들을 웨어하우스(관계형)에 저장, 외부에서(이메일, 광고)만들어지는 데이터를 저장
    • 인사이트를 만듦
    • 사용자의 경험을 개인화 할 수 있음

3. 다양한 데이터베이스의 종류

  • 관계형 데이터베이스: 구조화된 데이터
    • 종류 
      • 프로덕션용 관계형 데이터베이스
        • OLTP : OnLine Transaction Processing
        • 빠른 속도에 집중. 서비스에 필요한 정보 저장
        •  MySQL, PostgreSQL, Oracle, …
      • 데이터 웨어하우스용 관계형 데이터베이스
        • OLAP : OnLine Analytical Processing
        • 처리 데이터 크기에 집중. 데이터 분석 혹은 모델 빌딩등을 위한 데이터 저장
        • 보통 프로덕션 데이터베이스를 복사해서 데이터 웨어하우스에 저장
    • 구조화 된 데이터를 저장하고 질의할 수 있도록 해주는 스토리지
    • SQL : 관계형 데이터베이스를 조작하는 프로그래밍 언어
      • DDL : 테이블 정의를 위한 Data Definition Language
      • DML : 테이블 데이터 조작/질의를 위한 Data Manipulation Language

 

  • 비관계형 데이터베이스: 비구조화 데이터도 다룸
    • 흔히 NoSQL 데이터베이스라고 부르기도 함
    • 보통은 프로덕션용 관계형 데이터베이스를 보완하기위한 용도로 많이 사용됨
    • 크게 4종류가 존재
      • Key/Value Storage : Redis, Memcache, ...
      • Document Store : MongoDB,
      • Wide Column Storage : Cassandra, HBase, DynamoDB
      • Search Engine : ElasticSearch

4. 시스템 개발 직군

  • 웹/앱 서비스는 크게 프런트 엔드와 백엔드로 구성
    • 프런트엔드: 사용자와 인터랙션을 하는 부분. 보통 웹,앱에서 사용자에게 노출되는 서비스를 말함
    • 백엔드: 실제 데이터를 저장/추가하고 사용자가 요구한 일을 수행하는 부분. 여기에 다양한 데이터베이스들이 사용됨
  • 데브옵스 (DevOps): 주로 백엔드에 집중을 두고 서비스의 운영을 책임지는 팀으로 회사가 작을 때는 보통 백엔드 팀이 이 일을 담당
  • 풀스택 (Fullstack): 개발속도를 내기위해 프런트엔드/백엔드를 모두 할 수 있는 개발자로 보통 작은 회사에서 선호하는 형태의 직군
  • 데이터 직군: 데이터의 중요성이 증대되면서 3가지 데이터 직군이 등장
    • 데이터 엔지니어: 사실상 소프트웨어 개발자로 데이터 웨어하우스와 관련일을 담당 (MLOps 등장)
    • 데이터 분석가: 데이터 웨어하우스를 기반으로 다양한 지표설정과 분석 수행
    • 데이터 과학자: 수집된 과거 데이터를 기반으로 미래를 예측하는 모델링 혹은 개인화 작업으로 서비스의 만족도를 높이고 프로세스의 최적화를 수행

 

5. 시스템 구성의 변화

1) 2 tier

  • 데스크탑 - 응용프로그램에서 사용되는 아키텍쳐
  • 클라이언트, 서버 두개의 티어로 구성됨
    • 클라이언트 : 사용자가 사용하는 UI, 비지니스 로직이 위치 - 프론트엔드
    • 서버 : 데이터베이스 - 백엔드

 

2) 3 tier

  • 웹서비스에서 많이 사용되는 아키텍쳐
    • 클라이언트 티어 : 프레젠테이션 레이어 - 프론트엔드
    • 애플리케이션 티어 : 비지니스 로직 레이어 - 백엔드
    • 데이터 티어 : 데이터 액세스 레이어 - 백엔드

 

 

 

 

 

 

 

'TIL' 카테고리의 다른 글

[TIL] 210929  (0) 2021.10.01
[TIL] 210810  (0) 2021.08.10
[TIL] 210806  (0) 2021.08.09
[TIL] 210805  (0) 2021.08.06
[TIL] 210804  (0) 2021.08.05