데이터베이스
관계형 데이터베이스는 크게 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 |