2025-08-03
1일 1아티클
요즘IT
CRM 역도출
- 데이터 크롤링 → raw data 정리 → 데이터 기반 분석 → 사용자(본인) 실제 행동 패턴을 포함해 분석
- 차트 설계/보정 및 CRM 프로세스 역추론
마케팅 관점에서 서비스(알림, 혜택 등)의 패턴 변화를 확인할 수 있다는 점에서 신선함을 느낌, 데이터 분석의 중요성 체감.
오늘 배운 것
- Docker 초간단 개념
- 이미지 : 실행 파일 (프로그램)
- 컨테이너 : 동작하는 이미지 (프로세스)
- 샤딩
- 데이터 분산 저장
분할 방식에 따른 분류
- 수직 샤딩 : 컬럼 단위로 쪼개기
- 수평 샤딩 : 행 단위로 쪼개기
샤딩 기법의 종류
- 범위 기반 : 특정 값의 특정 범위 기반 분할 (ex. id=1~1000 / 1001~2000)
- 데이터 쏠림 현상
- 해시 기반 : 데이터를 특정 값의 해시 함수 적용값 기반 분할 (ex. id에 대해 해시 함수가 mod 2이면 id=홀수 / 짝수)
- 샤드 키와 해시 함수가 균등하게 분산되지 않는 기준일 경우 데이터 쏠림 현상
- 범위 데이터 조회 시 문제 발생 가능 (샤드 키를 phone number로 두었는데 이름을 기준으로 한 목록 조회 요청이 들어온다면 모든 샤드에 데이터 요청해야 함)
- 디렉토리 기반 : 매핑 테이블을 활용한 분할
- 디렉토리 관리 비용 발생
- 규모에 따라 유연한 관리 가능
- etc.
확장성에 따른 분류
- 물리적 샤딩 : 말 그대로 샤드를 물리적으로 늘려서 데이터 분할
- 새로운 샤드 정보 파악 등 → Clinet 수정 필요
- 논리적 샤딩 : 가상의 샤드가 있다고 가정, 개념적으로만 데이터 분할
- 물리적 샤드가 가지고 있는 논리적 샤드들의 정보 → DB 내부 또는 DB와 Client 사이에 독립적으로 설계 가능 (Shard Router)
Shard Router (논리적 샤드 개념에서 발생) → 물리적 샤드가 확정되어도 Client 변경 없이 이 라우터를 통해 DB의 유연한 확장 가능!
복제
- 샤드에 장애 발생 등의 문제 해결을 위한 복제본 관리로써의 샤드 두기
- Primary/Replica, Leader/Follower, Master/Slave, Main/Standby, etc.
- 동기적 복제 : 데이터 일관성 보장 but 쓰기 성능 저하
- 비동기적 복제 : 쓰기 성능 유지 but 데이터 일관성 문제
샤딩의 핵심은 분!산!
- 분산 시스템 DB 설계
- Natural Order Unique Number : Auto Increment, UI 사용 X
알고리즘 종류
- Snowflake : 분산 시스템에서, 고유 64bit ID 생성 알고리즘
- TSID, etc.
내일 할 일
- 정처기 필기 모의고사 CBT 풀어보고 오답노트 (진짜 해야돼..)
- 지원서 작성
참고자료
- 쿠폰 또 줘? 3년 치 문자로 분석한 컬리의 CRM
- ‘샤딩’ 검색 시 나오는 구글 AI 개요
- [데이터베이스] 샤딩(Sharding)이란?