데이터 관련 직군

  • 데이터 엔지니어 : 내-외부 원천 데이터를 수집, 가공, 적재하여 데이터가 흐르는 파이프라인을 설계 및 구축하는 역할
    • 파이썬, 자바/스칼라
    • SQL, DB
    • ETL/ELT (Airflow, DBT)
    • Spark, Hadoop
  • 데이터 분석가 : 데이터를 분석 및 처리하여 의미 있는 비즈니스 결과를 창출하는 역할
    • SQL, 비즈니스 도메인에 대한 지식
    • 통계 (AB 테스트 분석)
  • 데이터 과학자 : 비즈니스 문제를 정의하고, 문제를 해결하기 위해서 데이터 분석 모델(e.g. ML/DL)을 만드는 역할
    • 머신러닝 
    • SQL, 파이썬, 자바/스칼라
    • 통계

 

관계형 데이터베이스(RDB)

정의

  • 구조화된 데이터를 저장하고 질의할 수 있도록 해주는 스토리지
    • 엘셀 스프레드시트 형태의 테이블로 데이터를 정의하고 저장
    • 테이블에는 컬럼(열)과 레코드(행)이 존재

대표적인 RDB

  • 프로덕션 데이터베이스 : MySQL, PostgreSQL, Oracle
    • OLTP(OnLine Transaction Processing)
    • 빠른 속도에 집중, 서비스에 필요한 정보 저장
    • 서비스에 필요한 정보가 저장되어 있기에 쿼리문을 실행하면 서비스에 영향을 줄 수 있음.
  • 데이터 웨어하우스 : Redshift, Snowflake, bigQuery, Hive
    • OLAP(OnLine Analytical Processing)
    • 처리 데이터 크기에 집중, 데이터 분석 혹은 모델 빌딩등을 위한 데이터 저장
    • 보통 프로덕션 데이터베이스를 복사에서 데이터 웨어하우스에 저장

구조

  • 2단계로 구성됨
    • 가장 밑단에 테이블들이 존재(엑셀의 시트에 해당)
    • 테이블들은 데이터페이스(스키마)라는 폴더 밑으로 구성(엑셀의 파일에 해당)
  • 스키마 : DB의 구조와 제약조건에 관해 전반적인 명세를 기술한 것
                개체의 특성을 나타내는 속성(Attribute), 속성들의 집합인 개체(Entity) 그리고 개체 사이에 존재하는 관계(Relation)에
                대한 정의와 이것들이 유지해야 하는 제약조건으로 이루어져 있음.
  • 테이블의 구조(테이블 스키마)
    • 레코드 들로 구성(행)
    • 레코드는 하나 이상의 필드(열)으로 구성
    • 필드(컬럼)은 이름과 타입 속성(primary key)로 구성

SQL(Structured Query Language)

관계형 데이터베이스에 있는 데이터(테이블)를 질의하거나 조작해주는 언어

  • DDL(Data Definition Language)
    • 테이블의 구조를 정의하는 언어
  • DML(Data Manipulation Language)
    • 테이블에서 원하는 레코드들을 읽어오는 질의 언어
    • 테이블에 레코드를 추가/삭제/갱신할 때 사용하는 언어
  • 단점
    • 비구조화된 데이터를 다루는 데에 제약이 심함(Spark, Hadoop 같은 분산 컴퓨팅 환경이 필요)
    • RDB마다 SQL 문법이 조금씩 상이함.

Data Modeling

  • Star Schema
    • Production DB용 RDB 에서는 보통 해당 스키마를 사용해 데이터 저장
    • 데이터를 논리적 단위로 나눠 저장하고 필요시 조인. 스토리지의 낭비가 덜하고 업데이트가 쉬움
  • Denormalized Schema
    • 데이터 웨어하우스에서 사용하는 방식. 단위 테이블로 나눠 저장하지 않음.
    • 스토리지를 더 사용하지만 조인이 필요 없기에 빠른 계산 가능

Star Schema / Denormalized Schema

 

데이터 웨어하우스

회사에 필요한 모든 데이터를 저장

  • SQL 기반의 RDB
  • 프로덕션 DB와는 별도여야 함
  • 데이터 웨어하우스는 고객이 아닌 내부 직원을 위한 DB
  • ETL 혹은 데이터 파이프라인
    외부에 존재하는 데이터를 읽어서 데이터 웨어하우스로 저장해주는 데에 필요해지고 이를 ETL 혹은 데이터 파이프라인이라고 함.

데이터 인프라

  • 데이터 엔지니어가 관리
    • 더 발전하면 Spark와 같은 대용량 분산처리 시스템이 일부로 추가됨.
     

 

클라우드

 

정의

  • 컴퓨팅 자원(하드웨어, 소프트웨어 등)을 네트워크를 통해 서비스 형태로 사용하는 것
  • No Provisioning(내가 준비할 필요 X), Pay As You Go(사용한 만큼 지불)
  • 자원을 필요한 만큼 실시간으로 할당하여 사용한 만큼 비용 지불

장점

  • 초기 투자 비용이 줄어듦
    CAPEX(Capital Expenditure) vs OPEX(Operating Expenditure)
  • 리소스 준비를 위한 대기시간 대폭 감소(Shorter Time to Market)
  • 노는 리소스 제거로 비용 감소
  • 글로벌 확장 용이
  • 소프트웨어 개발 시간 단축(SaaS 이용)

 

'데브코스 > Week 6' 카테고리의 다른 글

Week 6 - 5  (0) 2024.04.26
Week 6 - 3  (0) 2024.04.25
Week 6 - 2  (0) 2024.04.23

+ Recent posts