Skip to main content

28 posts tagged with "pe/database"

기술사 데이터베이스 토픽

View All Tags

CAP, PACELC

· 4 min read

CAP 이론 개념

  • 분산시스템이 동시에 일관성, 가용성, 분할내성을 모두 만족시킬 수 없다는 이론
  • 분산시스템의 특성을 이해하고 Trade-Off를 고려한 시스템 설계 가이드라인 제공 / 현실적 제약 반영 / 비지니스 요구 충족

CAP 이론 개념도, 구성요소, 발전방향

CAP 이론 개념도

CAP 이론 구성요소

구분내용비고
C + P일부 노드 장애시에도 일관성 유지MongoDB, 금융시스템
A + P일부 노드 장애시에도 시스템은 계속 응답DynamoDB, DNS시스템, SNS
C + A네트워크 분할이 없을시 일관성, 가용성 보장RDBMS, 단일 노드기반 DB

CAP 이론 발전방향

한계점내용발전방향
PACELC 확장 필요CAP 이론은 네트워크 지연(Latency)과 데이터 복제 등을 반영하지 않음PACELC 이론 도입으로 Latency와 Consistency 균형 고려
다중 레벨 일관성모든 시스템에서 강력한 일관성을 요구하지 않는 경우Eventual Consistency 모델 활용
동적 트레이드오프정적 선택보다는 동적 조정이 필요한 경우AI 기반 동적 트레이드오프 관리 기술 개발

PACELC 이론 개념도, 구성요소

PACELC 이론 개념도

  • CAP이론을 보완하여 네트워크 분할 여부나 정상 작동 여부에 따라 지연시간과 일관성의 Trade-Off를 고려한 이론

PACELC 이론 구성요소

구분내용비고
PA/EL장애시 가용성, 정상시 지연시간 우선 고려DynamoDB, Cassandra
PA/EC장애시 가용성, 정상시 일관성 보장MongoDB
PC/EL장애시 일관성, 정상시 지연시간 우선 고려PNUT, CosmosDB
PC/EC장애시 일관성, 정상시 일관성 보장HBase

NoSQL 데이터베이스 도입시 고려사항

  • MongoDB 등 NOSQL의 오픈소스 라이센스가 SSPL로 이동함에 따라 CSP 서비스 개발시 Fork 버전 사용 등 대안 마련

샤딩, 파티셔닝

· 6 min read

샤딩, 파티셔닝 개념

  • 파티셔닝: 큰 테이블을 관리하기 쉬운 단위로 분할하는 기법
  • 샤딩: 테이블을 분리하여 다수의 물리DB서버에 분산 저장하는 기법

샤딩, 파티셔닝 구성요소, 활용사례, 주요 데이터베이스 분할 기법

샤딩, 파티셔닝 구성요소 비교

구분샤딩파티셔닝
목적시스템 부하 분산, 대규모 데이터 처리, 고가용성데이터 관리용이, 데이터 접근 최적화
분할방법수평분할수직분할
분할관점테이블을 여러 DB로 분할하나의 DB에서 테이블 분할
관리노드샤드간 라우팅 수행용 마스터마스터노드 없음
관리 복잡성상대적으로 높음상대적으로 낮음
테이블 연동분할 테이블 간 조인 불가테이블 간 조인 가능

샤딩, 파티셔닝 활용사례

기법활용 사례예시
샤딩소셜 미디어 플랫폼Facebook의 지역별 샤딩으로 사용자 데이터 분산 저장
샤딩전자상거래 플랫폼주문 데이터를 샤딩하여 결제 처리 성능 최적화
파티셔닝데이터 웨어하우스과거 데이터를 연도별로 파티셔닝하여 쿼리 성능 개선
파티셔닝은행 시스템고객 데이터를 지역별로 파티셔닝하여 빠른 접근 제공

주요 데이터베이스 분할 기법

구분내용비고
Vertical 분할테이블별, 열별 분할구현 간단
Range-Based 분할하나의 기능이나 테이블이 비대해질시 행 분할예측 가능성
Key 또는 Hash 분할엔티티를 해싱하여 분할 결정균등분포 해싱함수
Directory 기반 분할파티셔닝 매커니즘을 제공하는 추상화된 서비스를 사용하여 분할샤딩 사용, 샤드키 연동

데이터베이스 분할 절차도, 세부절차

데이터베이스 분할 절차도

데이터베이스 분할 세부절자

구분내용비고
1. 분할 필요성 증가데이터 양 증가로 인한 성능 저하모니터링 지표 기준 설정 필요
특정 시간대 과부하 발생
2. 분할 방법 결정샤딩 vs 파티셔닝 선택업무 특성과 데이터 접근 패턴 고려
수평/수직 분할 결정
3. AS-IS 성능 측정현재 시스템의 응답시간 측정기준 성능값 확보 필요
주요 쿼리 성능 분석
4. 분할 적용, 이관DDL 작성 및 스키마 변경서비스 중단 최소화 방안 마련
데이터 마이그레이션 수행
5. 어플리케이션 수정데이터 접근 로직 수정회귀 테스트 필수
샤드 라우팅 로직 추가
6. 테스트, 모니터링성능 테스트A/B 테스트 권장
부하 테스트

데이터베이스 분할시 고려사항

기법고려사항해결 방안
샤딩데이터 분산 기준 선정사용자 ID, 지역, 시간 등 적절한 기준 설정
샤딩데이터 균형 유지부하 분산 알고리즘 도입 및 모니터링
샤딩데이터 일관성 문제분산 트랜잭션 또는 복제 기술 활용
파티셔닝데이터 접근 패턴 분석파티셔닝 키를 데이터 접근 빈도에 맞게 결정
파티셔닝데이터 간 의존성파티션 간 데이터 이동 최소화 및 인덱스 최적화
  • 수평적 확장이 필요한 규모의 데이터 분할시 샤딩 고려
  • 특정 액세스 패턴 최적화시 파티셔닝 고려

데이터베이스 옵티마이저

· 3 min read

옵티마이저 개념

  • DBMS 내에서 SQL 쿼리 실행 계획을 분석하고 최적의 계획을 수립하는 핵심 엔진
  • 최적화된 쿼리 실행으로 시스템 자원의 효율적 사용과 응답시간 단축

옵티마이저 구성도, 구성요소, RBO, CBO

옵티마이저 구성도

옵티마이저 구성요소

구분내용비고
1. SQL Parser쿼리파싱, 구문분석, 구문트리생성문법 검사
2. Query Transformer쿼리 변환 하의 최적화 가능성 제고쿼리 재작성
3. Plan Generator여러 가능한 실행 계획 생성조인, 인덱스 경로
4. Cost Estimator각 실행 계획 예상 비용 계산통계 저장, 참조
5. Plan Selector가장 낮은 비용 실행 계획 선택, 실행RBO, CBO 방식

RBO, CBO 비교

구분RBOCBO
최적화 기준고정된 규칙 사용실행 비용 추정
결정자인덱스 구조, 연산자, 조건 등레코드 블록 수, 평균 행 길이, 인덱스 높이, 컬럼 수 분포, 디스크 I/O
특징실행 계획 예측 용이저장된 통계 정보 활용
장점규칙 단순, 빠른 최적화더 효율적인 실행 계획 수립
단점복잡한 쿼리 최적화 어려움, 규칙 관리 필요통계 정보 부정확할시 오류 발생
  • 최신 DBMS는 CBO 방식 채택

옵티마이저 적용방안

구분방안비고
DA모델링시 인덱스 전략 설계, 파티셔닝 고려효율적 구조 설계
DBA통계정보 수립 및 갱신, 실행계획 최적화모너티링, 대응
User최적화된 쿼리 작성, 인덱스 힌트 사용개발단계 쿼리 최적화, EXPLAIN PLAN

옵티마이저 고려사항

  • 개발자가 쿼리에 EXPLAIN PLAN을 사용하여 분석 후 최적화된 쿼리 구현 필요

데이터베이스 튜닝

· 4 min read

데이터베이스 튜닝 개념

  • 응용프로그램, DB, 운영체제 등을 조정하여 한정된 자원으로 최적의 성능을 얻도록하는 개선 작업
  • 처리능력증대, 처리시간단축, 응답시간단축, DB로드시간단축

데이터베이스 튜닝 절차, 튜닝 기법

데이터베이스 튜닝 절차

설계단계 튜닝 기법

구분내용비고
정규화데이터 중복 제거, 함수종속성 제거무결성 확보
반정규화성능 향상을 위한 중복 허용조회 성능 개선
파티셔닝대용량 데이블 분할 관리관리효율, 조회성능
인덱스 설계데이터 접근, 스캔 경로 최적화CBO, RBO
인덱스 지정PK, FK 지정조회, 수정 성능 개선

SQL 튜닝 기법

구분내용비고
쿼리재작성불필요 연산 제거, 분리실행계획 분석
조인방식변경조인방식, 순서 변경조인 유형 고려
인덱스 활용적절한 인덱스 사용제약조건 확인
힌트 사용최적 실행 계획 제어옵티마이저 제어

힌트 개념 및 유형

힌트 개념

  • SQL문에 주석형태로 옵티마이저에게 실행계획을 지시하는 구문
  • 옵티마이저의 기본 실행 계획이 최적이 아닐 경우, 성능 개선 가능

힌트 유형

구분내용비고
Scan 힌트효율적인 데이터 접근방식 선택테이블 또는 인덱스
Join 힌트효율적인 조인 방식 선택특정 조인 방식 지정
Leading 힌트실행 계획의 조인 순서 제어조인순서 지정
Set 힌트워크로드나 특정 쿼리에 최적화된 파라미터 선택쿼리 변수 오버라이딩

데이터베이스 튜닝시 고려사항

  • 튜닝 전,후 성능 변화를 지속적으로 모니터링하고 필요시 추가 튜닝 (시스템 등) 수행

무결성

· 3 min read

무결성 개념

  • 사용자가 데이터를 변경할 때 관계, 참조 등의 무결성 제약이나 규칙에 의해 데이터의 일관성과 정확성을 유지하는 것

무결성 유형, 보장방법, 적용방안

무결성 유형

개참도사

구분내용비고
개체무결성각 행을 구분하는 유일한 식별자기본키 사용
참조무결성외래키는 참조 테이블의 기본키와 일치외래키 사용
도메인무결성각 열의 값이 속성에 정의된 도메인 값데이터 형식, 범위 제한
사용자정의무결성비지니스 규칙에 따라 사용자 정의트리거, 프로시저

무결성 보장방법

구분내용비고
응용프로그램무결성 조건 코드 추가프로그램상 구현
DB 트리거Stored Procedure 활용 데이터 변경시 제약 추가복잡한 요구 구현
제약조건스키마에 제약조건 설정변경 용이, 쉬운 구현

무결성 적용방안

단계내용비고
데이터 모델링모델링시 무결성 유형 고려 정의무결성 확보 설계
데이터 설계테이블 생성시 제약조건, 트리거 설정DBMS 기능 활용
응용프로그램 개발데이터 입력, 수정, 삭제시 무결성 검사입력 데이터 검증
운영, 유지보수주기적인 데이터 값 프로파일링진단 및 조치

무결성 고려사항

  • 병행제어를 통해 트랜잭션 실패시 무결성을 위반하지 않도록 제어 필요

데이터 마이그레이션

· 5 min read

데이터 마이그레이션 개념

  • 데이터의 정확성과 무결성을 유지하면서, 기존 시스템의 데이터를 새로운 시스템으로 안전히 이전하는 과정
  • 마이그레이션 대상 데이터의 품질 확인 및 전략 수립을 위해 진단 프로파일링과 마이그레이션 이후 무결성 확인을 위해 검증 테스트 필요

데이터 마이그레이션 절차도, 세부절차, 프로파일링 기법

데이터 마이그레이션 절차도

데이터 마이그레이션 세부절차

구분내용비고
1. 계획 수립마이그레이션 범위, 목표 정의리소스 할당, 일정 계획
2. 데이터 프로파일링데이터 품질 및 구조 분석AS-IS시스템 품질 관리
3. 데이터 변환소스 데이터를 타겟 데이터 포맷으로 변환매핑 테이블 등
4. 데이터 로드변환된 데이터를 타겟 시스템으로 로드롤백 전략 수립
5. 검증 테스트마이그레이션 데이터 검증 및 테스트데이터 무결성 확인
6. 시스템 전환새 시스템으로 운영 전환사용자 교육, 모니터링

데이터 값 진단 프로파일링 기법

구분기법내용
기초 데이터 분석컬럼 속성 분석메타데이터 정합성 확인
컬럼 값 분석누락 값 분석필수 값이지만 누락 데이터 확인
값 허용범위 분석컬럼 속성 범위 내 값 확인
허용 값 목록 분석컬럼 허용 값 목록, 집합 확인
문자열 패턴 분석문자열 반복시 특성 확인
날짜 유형 분석날짜 포맷, 범위 확인
특수 도메인 분석주민번호, ISBN 등 특정 패턴 확인
유일값 분석유일 컬럼 중복값 확인

데이터 마이그레이션 검증테스트 절차도, 세부절차

데이터 마이그레이션 검증테스트 절차도

데이터 마이그레이션 검증테스트 세부절차

구분내용비고
1. 검증팀 구성데이터 마이그레이션 검증을 담당할 전문가 그룹 구성데이터 무결성, 정합성 확인
2. 검증 범위 식별마이그레이션 대상 데이터의 범위와 우선순위 설정데이터 타입, 크기, 중요도
3. 데이터 검증마이그레이션된 데이터의 무결성과 정합성 검증데이터 값 진단 프로파일링 활용 가능
4. 시스템 영향도 파악마이그레이션 이후 시스템 성능 및 기능에 대한 영향도 분석이행테스트 결과 보완, 성능 튜닝
5. 시스템 오픈최종 검증 완료 후 새로운 시스템 오픈 및 운영 시작모니터링, 대응

데이터 마이그레이션시 고려사항

  • 테이블 크기에 따라 샘플링하여 마이그레이션 필요
  • 마이그레이션 실패, 검증 실패시 롤백 시나리오 수립 필요

DQM, 데이터 품질관리

· 4 min read

데이터 품질관리 개념

  • 조직 내 외부 정보시스템 및 이해관계자의 기대를 만족시키기 위해 지속적으로 수행하는 데이터 관리 및 개선활동
  • 안정성, 신뢰성, 이용편의성, 공익성 제고

데이터 품질관리 아키텍처, 대상

데이터 품질관리 아키텍처

구분데이터데이터 구조데이터관리 프로세스
CDO
개괄적관점
데이터관리정책
DA
개념적관점
표준데이터개념데이터 모델데이터 표준관리, 요구사항 관리
Modeler
논리적관점
모델데이터논리데이터 모델데이터 모델관리, 데이터 흐름관리
DBA
물리적관점
관리데이터물리데이터 모델데이터베이스 관리
User
운용적관점
업무데이터사용자 뷰데이터 활용관리

데이터 품질관리 대상

구분내용비고
데이터조직 내 목표 달성을 위해 사용되어지는 전산화된 데이터데이터 현상값, 데이터 구조값
데이터 구조데이터를 취급하는 관점에따라 뷰, 모델, 파일, DB로 제공단계별 데이터 구조, 조직별 데이터 구조
데이터 관리 프로세스데이터, 데이터 구조, 품질을 유지하기 위한 절차, 조직, 인력데이터 정의 프로세스, 데이터 변경 프로세스

데이터 품질관리 성숙모형, 구성요소

데이터 품질관리 성숙모형

데이터 품질관리 성숙도 구성요소

구분내용비고
데이터 픔질기준데이터 품질 정의데이터 유효성, 데이터 활용성
품질관리 프로세스데이터 품질기준 향상을 위한 필요 프로세스요구사항 관리, 데이터 구조 관리, 데이터 흐름관리, DB관리, 표준 관리
품질관리 성숙수준현재 수준 파악 후 5단계 개선 모형 정의도입, 정형화, 통합화, 정량화, 최적화

데이터 품질관리 성숙 수준

도형통량최

단계구분내용
5최적화데이터 품질관리 개선 도출, 지속 적용
4정량화정량적 측정 통한 데이터 품질 관리
3통합화전사적 연계 통합 관점, 일관성 있는 품질 관리
2정형화품질관리 위한 제반 프로세스 정형화
1도입데이터 품질관리 문제점 인식, 부분적 활동

합성데이터

· 5 min read

합성데이터의 개념

  • 원본 데이터를 기반으로 그 형식과 통계적 특성을 학습하여 생성된 가상 데이터
  • 개인정보보호를 유지하면서도 산업적 유용성을 제공, 데이터 부족 문제 해결, 민감한 데이터 대체, 다양한 산업에서 새로운 데이터 활용 기회 창출

합성데이터의 유형 개념도, 유형, 사례

합성데이터의 개념도

합성데이터 유형

구분유형내용
원본 데이터 유무완전 합성 데이터원본데이터가 전혀 없이 모두 가상으로 생성된 데이터
부분 합성 데이터원본 데이터 중 일부데이터셋이나 일부속성변수를 선택하여 합성데이터로 대체
복합 합성 데이터일부 변수 값을 합성 데이터로 생성, 합성된 데이터와 실제 데이터를 모두 사용하여 일부 변수 값을 다시 도출하는 방법으로 생성
원본 데이터 형태정형 합성데이터행과 컬럼으로 이뤄진 테이블 형태의 원본 데이터로부터 생성
비정형 합성데이터텍스트, 이미지, 영상 등의 비정형 원본 데이터로부터 생성

합성데이터 사례

구분내용비고
국내자율주행용 합성 비디오데이터셋네이버 Virtual KITTI
국외이미지와 사람 수가 압도적인 군중 계수 데이터셋GTA5 Crowd Counting
실내 장면 이해를 위한 하이퍼 리얼리즘 장면 데이터셋애플 Hypersim
물리 법칙을 준수하는 3D 합성 데이터셋엔비디아 Cosmos

합성데이터 생성 및 활용절차

합성데이터 생성 절차도

단계세부 절차주요 활동
사전 준비데이터 수집원본 데이터 확보 및 사용 목적 정의
데이터 분석 및 전처리데이터의 특성, 분포, 누락 데이터 탐색 및 정제
합성 데이터 생성모델 선정통계적 모델, 딥러닝(GAN) 등 적합한 생성 방법 선택
데이터 생성원본 데이터의 통계적 특성과 구조를 학습하여 합성
안전성/유용성 검증개인정보 보호 확인차분 프라이버시, 익명화 등 식별 가능성 제거
데이터 품질 평가원본 데이터와의 통계적 유사성 및 목적 적합성 평가
심의위원회 평가윤리적 검토 및 승인데이터 사용에 따른 윤리적 문제와 법적 준수 여부 확인
활용 및 관리데이터 활용 및 배포합성 데이터를 목적에 맞게 활용 및 필요한 곳에 배포
보관 및 안전한 관리안전한 데이터 저장 및 접근 통제

합성데이터 고려사항

구분고려 사항내용
안전성개인 식별 가능성 제거식별 위험 제거를 위한 차분 프라이버시 적용
유용성원본 데이터와의 통계적 분포 유사성 유지활용 목적에 맞는 데이터 정확성 보장
법적 준수개인정보보호법 등 규제 준수데이터 제공 및 활용 시 적법 절차 준수

텍스트마이닝, 오피니언마이닝

· 2 min read

데이터마이닝의 개념

  • 빅데이터에서 의미있는 패턴을 파악하거나 예측하여 의사결정에 활용하기 위한 분석기법

텍스트마이닝과 오피니언마이닝의 구성요소

텍스트마이닝 구성요소

구분내용비고
개념텍스트데이터에서 패턴, 정보 추출다양한 비정형데이터 처리
절차텍스트 수집 -> 텍스트 전처리 -> 특징 추출 -> 모델 구축 -> 패턴 분석데이터 전처리시 이상치 제거
주요기법표준화, 불용어제거, TF-IDFNLP, ML기법 활용
사례문서분류, 텍스트요약기업문서관리, 정보검색시스템

오피니언마이닝 구성요소

구분내용비고
개념텍스트데이터에서 감정, 의견분석긍정, 부정 분류
절차SNS데이터수집 -> 텍스트 전처리 -> 감성사전구축 -> 감정분류모델 구축 -> 결과시각화감성사전의 품질 중요
주요기법감성사전 구축, 감성분석 모델SVM, 로직스틱회귀, ML기법 활용
사례리뷰분석, SNS분석, 피드백분석마케팅, 고객전략 수립

오피니언마이닝 고려사항

  • 은어, 약어, 이모티콘 등의 비정형 표현들에 대한 추가 전처리 필요

데이터베이스 트랜잭션

· 3 min read

데이터베이스 트랜잭션의 개념

  • 데이터의 정확환 일관성과 무결성을 보장하기 위해 완전히 종료해야하는 데이터베이스 처리의 논리적 작업 단위

데이터베이스 트랜잭션의 특징, 상태전이도, 종료기법

데이터베이스 트랜잭션의 특징

구분내용보장기법
원자성연산전체가 처리되거나 처리되지 않아야함Commit, Rollback
일관성트랜잭션 성공 후 일관된 데이터베이스 상태 유지무결성 제약조건, 동시성 제어
고립성트랜잭션 실행 중 다른 트랜잭션 접근 불가Isolation Level, Locking, 분산 트랜잭션
지속성성공된 트랜잭션은 어떤 고장에도 손실되지 않고 영속 저장회복기법, 회복컴포넌트 관리
  • 트랜잭션 특징에 따라 트랜잭션 상태 변경

데이터베이스 트랜잭션 상태전이도

시작, 부분적완료, 완료, 실패, 철회

  • 트랜잭션이 정상적으로 상태 전이되어 작업을 수행하기 위해 ACID와 직렬성 보장 필요

데이터베이스 트랜잭션 종료기법

구분기법내용
명시적 처리Commit변경 내용을 디스크에 영구 저장, 일관적 상태
Rollback중지 또는 철최하고 갱신 작업취소, 비일관적 상태
묵시적 처리정상종료Commit과 동일하나 새 트랜잭션 다시 시작 안함
비정상종료Rollback과 동일하나 프로그램 종료

분산DB 트랜잭션 고려사항

  • BASE 특성에 중점을 두어 트랜잭션 구현 및 관리 필요