Frinee의 코드저장소

데이터 과학과 빅데이터

by Frinee
이 글은 김연희 저 - "데이터베이스 개론 3판"을 공부하고 정리하여 작성하였습니다.

 

1. 데이터 과학

1️⃣ 데이터 과학의 필요성

  • 데이터는 예전부터 중요한 자산으로 인식하여 수집한 데이터를 저장 및 관리하는 방법에 지속적인 관심을 가져왔다.
  • 하지만 이제는 데이터의 방대한 규모와 다양한 형태로 발전하면서 데이터를 저장 및 관리하는 것으론 부족하고 전통적인 방식으로는 저장마저도 힘들다.
  • 단순히 데이터를 분류하고 검색하는 것을 넘어, 방대한 양의 데이터 속에 숨겨진 규칙과 패턴을 찾아내 문제 해결에 활용하고 앞으로 벌어질 일을 예측하기 위해 데이터 과학이 등장함.

2️⃣ 데이터 과학의 개념

  • 데이터 과학은 데이터를 수집한 후 분석을 통해 데이터를 정확히 이해함으로써 그 속에 숨겨진 새로운 지식을 발견하고 이를 문제 해결에 활용하는 모든 과정의 활동을 의미함.
  • DIKW(Data-Information-Knowledge-Wisdom) 계층 구조
    • 데이터는 관찰하거나 측정하여 수집한 사실이나 값을 의미
    • 이러한 데이터를 상황에 대한 이해를 바탕으로 목적에 맞게 가공한 것이 정보다.
    • 그리고 규칙과 패턴을 통해 찾아낸 의미 있고 유용한 정보가 지식
    • 최종적으로 지식에 통찰력을 더해 새롭고 창의적인 아이디어를 도출한 것이 지혜

데이터 수집, 저장, 분석, 표현의 전 과정을 포함하는 데이터 과학에서 많은 양의 데이터를 수집하고 분석하기 위해서는 다음과 같은 능력들이 요구된다.

  • 컴퓨터 과학 분야의 데이터 마이닝, 기계 학습, 프로그래밍 능력
  • 통계학 분야의 다양한 통계 기법을 활용할 수 있는 능력
  • 폭넓은 분야의 데이터를 대상으로 하기 때문에 적용 분야에 대한 이해

따라서 데이터 과학은 컴퓨터 과학과 통계학의 교집합 영역에 있으며, 적용 대상이 되는 분야에 대한 업무적 이해를 필요로 하는 복합적인 기술

 

2. 빅데이터

1️⃣ 빅데이터의 개념

  • 엄청난 양의 데이터를 기존 데이터베이스 시스템에 저장하고 관리하는 것이 어려운 문제가 발생함.
  • 그래서 기존 데이터베이스의 주요 기능을 포함하면서도 대규모 데이터에 적합한 새로운 저장 및 관리 기술이 필요해짐.
  • 그리고 엄청난 양의 데이터를 분석하여 가치 있는 정보를 추출하기 위한 정교한 분석 기술이 필요하게 되었고 이때 빅데이터가 등장하게 됨.
  • 빅데이터(Big data)는 좁게는 대규모의 다양한 데이터로 정의하기도 하고 넓게는 대규모의 데이터를 저장 및 관리하는 기술과 가치 있는 정보로 만들기 위한 분석 기술도 포함하여 정의함.

빅데이터의 활용

  • 다양한 유형의 대규모 데이터를 저장 및 관리, 분석하는 빅데이터 기술은 개인의 성향을 정확히 예측하여 맞춤형 정보를 제공할 수 있게 해준다.
  • 그리고 파악한 개인의 성향을 활용해 사용자가 관심을 가질 만한 광고를 제시하는데도 활용됨.
  • 그리고 정치 분야에서도 활용되고 있는데 여론조사 기관들이 투표 결과를 더 정확히 예측하기 위해 SNS를 선거 관련 데이터로 활용하여 분석함.

2️⃣ 빅데이터의 특징

  • 일반적으로 빅데이터의 특징을 데이터양(Volume), 속도(Velocity), 다양성(Variety) 을 의미하는 3V로 요약함.
  • 최근에는 가치(Value)과 정확성(Veracity)을 주착해 5V로 설명하는 경우가 많고 시각화(Visualization)과 가변성(Variability)를 넣어 7V로 언급하기도 함.
  • 데이터양
    • 빅데이터는 테라바이트 단위 이상의 대량 데이터이다.
  • 속도
    • 빅데이터는 데이터의 수집과 분석을 정해진 시간 내에 처리해야 함.
  • 다양성
    • 빅데이터는 형태의 다양성을 띠며 특히 정형, 비정형, 반정형 같은 다양한 형태의 데이터를 모두 포함함.
    • 책, 잡지, 의료 기록, 비디오, 오디오 같은 전통적인 비정형 데이터 외에도 위치 정보, 이메일, SNS 등에서 생성되는 비정형 데이터도 포함.
❗반정형 데이터
 관계 데이터베이스와 같은 정형화된 시스템에 저장되어 있지 않지만 내부적으로 스키마, 즉 구조를 어느 정도 포함하고 있는 XML, HTML 등을 의미
  • 가치
    • 수집된 빅데이터에 대한 분석으로 얻은 결과는 문제 해결을 위한 의사 결정에 활용될 만한 유용한 가치가 있어야 함.
  • 정확성
    • 가치 있는 결과를 만들려면 빅데이터는 정확하고 신뢰할 수 있어야 함.
    • 잘못된 데이터, 올바른 분석을 방해하는 데이터를 확인해서 제거하는 가공 작업을 통해 되도록 높은 정확성을 유지하는 것이 중요
  • 시각화
    • 많은 양의 빅데이터를 분석한 결과를 실제로 활용하여 좀 더 이해하기 쉽고 보기 좋게 그림이나 도표로 시각화해서 표현하는 것이 좋다.
  • 가변성
    • 최근의 빅데이터는 생각, 의견, 감정을 자유롭게 소통하기 위해 이메일, SNS 등을 통해 생성되는 텍스트 형태의 비정형 데이터가 많음
    • 따라서 빅데이터가 맥락에 따른 가변성을 가지고 있음을 인식하고 수집과 분석 작업에서 데이터의 원래 의미가 그대로 반영될 수 있게 노력해야 함.

3️⃣ 빅데이터의 기술

  • 저장 기술
    • 기존의 관계 데이터베이스가 저장하고 관리할 수 있는 범위를 넘어서는 다양한 형태의 대규모 데이터를 저장하고 관리하는 기술이 필요함.
    • 대표적인 기술로는 하둡(Hadoop)과 NoSQL이 있음.
    • 하둡(Hadoop)
      • 대용량 데이터를 분산 처리할 수 있는 자바 기반의 오픈 소스 프레임워크
      • 하둡은 분산 파일 시스템인 HDFS에 데이터를 저장하고 분산 처리 시스템인 MapReduce를 이용해 데이터를 처리
      • 오픈 소스이기 때문에 기존 데이터베이스 시스템보다 비용이 적게 들고, 여러 대의 서버에 데이터를 저장하기 때문에 처리속도가 빠름.
    • NoSQL
      • 관계 데이터 모델과 SQL을 사용하지 않은 데이터베이스 시스템
      • 기존 관계 데이터베이스의 일관성보다는 가용성, 확장성에 중점을 둠.
      • 비정형 데이터를 저장하기 위해 유연한 데이터 모델을 지원
      • 관계 데이터베이스와 동일한 데이터 처리가 가능하면서도 더 저렴한 비용으로 분산 처리와 병렬 처리 가능
      • HBase, Casandra, MongoDB, CouchDB 등
  • 분석 기술
    • 데이터 마이닝, 기계 학습, 자연어 처리, 패턴 인식 등의 기술을 데이터 분석에 사용함.
    • 최근에는 반정형 데이터, 비정형 데이터가 크게 증가하는 추세
    • 대표적인 비정형 데이터로는 대표적으로 텍스트가 있고 텍스트와 관련한 분석 기술이 많이 등장함.
      • 텍스트 마이닝: 반정형 또는 비정형 텍스트에서 자연어 처리 기술을 기반으로 가치 있는 정보를 추출하고 가공
      • 오피니언 마이닝: SNS, 블로그, 게시판 등에 기록된 사용자들의 의견을 수집하고 분석하여, 제품이나 서비스 에 대한 긍정,부정, 중립 등의 선호도 추출
      • 소셜 네트워크 분석: 소셜 네트워크의 연결 구조나 강도 등을 바탕으로 소셜 네트워크에 나타난 영향력, 관심사, 성향, 행동 패턴 등을 추출
      • 군집 분석: 데이터 간의 유사도를 측정한 후 이를 바탕으로 특성이 비슷한 데이터를 합쳐가면서 최종적으로 유사 특성의 데이터 집합을 추출
  • 표현 기술
    • 데이터 분석을 통해 추출한 의미와 가치를 시각적으로 표현하기 위해서 R을 주로 사용
    • 오픈 소스인 R은 통계 기반 데이터 분석과 다양한 시각화를 위한 언어와 개발 환경 제공
    • R 언어를 이용해 기본 통계 기법부터 최신 데이터 마이닝 기법까지 적용할 수 있음
    • R 언어는 다양한 운영체제와 프로그래밍 언어와 연동되고, 하둡 환경에서 분산 처리를 지원하는 라이브러리를 제공하기 때문에 빅데이터 분석과 시각화를 위해 주로 사용

빅데이터 이전 데이터와 빅데이터 비교

  빅 데이터 이전의 데이터 빅 데이터
데이터 유형 정형화된 문자, 수치 데이터 중심 정형, 반정형, 비정형 데이터 모두 포함
관련 기술 • 관계 데이터베이스
• SAS, SPSS와 같은 통계 패키지
• 데이터 마이닝
• 기계 학습
• 저장 기술 : 하둡, NoSQL
• 분석 기술 : 텍스트 마이닝, 오피니언 마이닝, 소셜 네트워크 분석, 군집 분석
• 표현 기술 : R 언어
저장 장치 데이터베이스나 데이터 웨어하우스와 같은 고가의 저장 장치 비용이 저렴한 클라우드 컴퓨팅 장비 활용 가능

 

3. 빅데이터 저장 기술 : NoSQL

1️⃣ NoSQL의 등장

  • NoSQL(Not only SQL)은 관계 데이터베이스에만 고집하지 말고 필요에 따라 다른 특성을 제공하는 데이터베이스를 사용하는 것이 좋다는 의미로 이해하면 좋다.
  • 웹이 기하급수적으로 성장하면서 이미지, 동영상 같은 멀티미디어 데이터뿐 아니라, 자유로운 형태의 텍스트와 로그 기록 같은 다양한 유형의 비정형 데이터가 대량 생산됨.
  • 이런 환경에서 관계 데이터베이스를 활용하면 엄청나게 많은 비용이 든다.
  • 그리고 단일 컴퓨터 환경에 적합한 관계 데이터베이스 입장에선 클러스터 환경에 적합하지 않음
클러스터 환경
 여러 대의 컴퓨터를 하나의 시스템처럼 동작하도록 구성한 환경
  • 그래서 웹에서의 대량의 비정형 데이터 저장 및 처리를 위해 새로운 대안으로 제시된 것이 NoSQL이다.

2️⃣ NoSQL의 특징

  • NoSQL은 빠른 속도로 생성되는 대량의 비정형 데이터를 저장하고 처리하기 위해 ACID를 위한 트랜잭션 기능을 제공하지 않는다.
  • 대신 저렴한 비용으로 여러 대의 컴퓨터에 데이터를 분산•저장•처리하는 것이 가능한 데이터베이스
  • NoSQL은 스키마 없이 동작하기 때문에 데이터 구조를 미리 정의할 필요 없고, 수시로 그 구조를 바꿀 수 있어 비정형 데이터를 저장하기에 적합하며 대부분 오픈 소스로 제공
  • 관계 데이터베이스는 트랜잭션을 통해 일관성을 유지하고 외래키로 테이블 간의 관계를 표현함으로써 조인과 같은 복잡한 질의를 처리할 수 있음
  • 하지만 빠른 속도로 증가하는 대량의 비정형 데이터를 저장하기에 확장성 측면에서 비효율적
  • NoSQL은 자유롭게 구조를 바꾸면 대량의 비정형 데이터를 빠르게 저장하고 처리할 수 있음
  • 하지만 NoSQL은 데이터 마이닝과 같은 별도의 분석 기술을 적용해 숨겨진 의미를 찾아내야 함.
  • 관계 데이터베이스와 NoSQL 비교
구분 관계 데이터베이스  NoSQL
처리 데이터 정형 데이터 정형 데이터, 비정형(반정형 포함) 데이터
대용량 데이터 대용량 처리 시 성능 저하 대용량 데이터 처리 지원
스키마 미리 정해진 스키마가 존재 스키마가 없거나 변경이 자유로움
트랜잭션 트랜잭션을 통해 일관성 유지 보장 트랜잭션을 지원하지 않아 일관성 유지를 보장하기 어려움
검색 기능 조인 등 복잡한 검색 기능 제공 단순한 데이터 검색 기능 제공
확장성 클러스터 환경에 부적합 클러스터 환경에 적합함
라이선스 고가의 라이선스 비용 오픈 소스
대표적 사례 Oracle, MySQL, MS SQL 서버 등 카산드라, 몽고DB, H베이스 등

 

3️⃣ NoSQL의 종류

  • 키-값 데이터베이스
    • NoSQL의 가장 단순한 형태, 키와 값의 쌍으로 데이터가 저장
    • 어떠한 형태의 값도 저장할 수 있고 질의 처리 속도도 빠름.
    • 키를 이용해 값 전체를 검색할 수 있지만 값의 일부를 검색하거나 값의 내용을 이용한 질의는 할 수 없음
    • DynamoDB, Redis 등
  • 문서 기반 데이터베이스
    • 키-값 데이터 모델이 확장된 형태로 키-문서의 쌍으로 데이터를 저장
    • 트리 형태의 계층적 구조가 존재하는 JSON, XML 등과 같은 반정형 형태의 문서로 데이터를 저장
    • 키를 통해 문서 전체를 검색하는 것도 가능하지만 XQuery와 같은 특별한 문서 대상 질의 언어를 이용하면 문서 내 일부를 검색하거나 질의에 활용할 수 있음
    • MongoDB, CouchDB 등
  • 컬럼 기반 데이터베이스
    • 관계 데이터 모델의 테이블과 비슷한 컬럼 패밀리와 키의 쌍으로 데이터를 저장
    • 컬럼 패밀리는 관련 있는 컬럼 값들이 모여서 구성되는 데, 컬럼의 이름과 값이 모여 있는 모습이 마치 테이블에서 속성의 이름과 값이 모인 모습과 유사
    • 컬럼 패밀리는 테이블에서 1개의 튜플, 즉 1개의 행을 구성하는 속성들의 모임으로 생각할 수 있고 각 행을 구분하는 키로 각 컬럼 패밀리를 식별
    • Google의 BigTable, HBase, Casandra 등
  • 그래프 기반 데이터베이스
    • 그래프 데이터 모델은 관계 데이터 모델과 비슷하게 데이터는 물론 데이터 간 관계를 표현하는데 적합
    • 노드에 데이터를 저장하고 간선으로 데이터 간의 관계를 표현하는 그래프의 형태로, 질의는 그래프 순회 과정을 통해 처리
    • 다른 NoSQL 모델과 달리 트랜잭션을 통해 ACID를 지원하며 클러스터 환경에는 적합하지 않음
    • 연관 데이터를 추천해주거나 소셜 네트워크에서 친구 찾기 질의를 효율적으로 수행하는 데 적합한 데이터베이스
    • Neo4J, OrientDB, AgensGraph 등

 

4. 빅데이터 분석 기술: 데이터 마이닝

1️⃣ 데이터 분석의 개념

  • 데이터 과학에서 분석 기술은 엄청나게 쌓여 있는 데이터 안에 숨겨진 유용한 정보, 즉 지식을 찾아내기 위해 가공하는 역할을 담당함.
  • 현재의 데이터 과학은 쉽게 추출할 수 없는 규칙과 패턴을 찾아 복잡한 문제를 해결할 수 있을 정도의 수준을 요구하기 때문에 심화된 데이터 분석 기술이 필요함.
  • 빅데이터를 대상으로 한 데이터 분석 기술은 기존의 정형화된 데이터보다 다양한 형태의 비정형 데이터를 기반으로 엄청난 양의 데이터를 처리한다는 특징이 있음

2️⃣ 기계 학습과 데이터 마이닝

  • 기계 학습과 데이터 마이닝은 거의 같은 개념으로 초점을 어디에 두느냐에 따라 구분할 수 있음
  • 분석 목적을 발견에 두는 것이 데이터 마이닝이고, 예측에 두는 것이 기계학습이다.
  • 데이터 마이닝은 숨겨진 규칙과 패턴을 찾아 가치 있는 지식을 발견하는 것
  • 기계 학습은 수집된 데이터로 프로그램을 학습시켜서 유사한 상황의 새로운 데이터가 입력되었을 때 결과를 예측하는 것
  • 기계 학습과 데이터 마이닝에서 각자의 목적을 위해서 서로의 기법을 활용하기 때문에 겹치는 부분이 많아 그 경계가 모호하게 느껴짐.

3️⃣ 데이터 마이닝

  • 대량의 데이터 안에 숨겨진 지식을 발견하기 위해 규칙과 패턴을 찾아내는 기술로 정의
  • 데이터 마이닝 분석 기법은 주로 마케팅에 많이 활용하고 금융권에서는 신용 등급, 제조업에서는 불량품 발생 원인을 알아내는데 활용

데이터 마이닝의 대표적인 분석 기법

  • 분류 분석
    • 새로운 데이터가 어떤 그룹 또는 등급에 속하는지를 판단하는 데 사용되는 분석 기법
    • 그룹을 구분하는 것은 군집 분석과 유사하지만 분류 분석은 미리 정의된 기준에 따라 기존 데이터의 그룹이 나뉘어 있음
    • 분류 분석에 주로 사용되는 데이터 마이닝 기법으로 로지스틱 회귀모형, 의사결정나무, K-최근접 이웃모형, 베이즈분류모형, 인공신경망, 지지벡터기계, 유전 알고리즘 등이 있음.
  • 군집 분석
    • 미리 정해진 기준이 없는 상태에서 유사한 특성을 공유하는 데이터들을 여러 개의 독립적인 군집으로 나누는 것
    • 군집의 개수나 형태를 미리 가정하지 않은 상태에서 데이터 간의 유사성을 기반을 두고 거리가 가까운 데이터들을 하나의 군집으로 모음
    • 형성된 군집들의 특성을 파악하여 군집들 사이의 관계를 분석하는 것도 군집의 목적
    • 계층적 군집 분석
      • 가장 유사한 데이터를 묶어나가는 과정을 반복하면서 원하는 개수의 군집을 형성하는 방법
      • 거리를 정의하는 방법에 따라 최단 연결법, 최장 연결법, 평균 연결법, 중심 연결법, 와드 연결법 등으로 세분화
    • 비계층 군집 분석
      • 데이터를 군집으로 나눌 수 있는 모든 방법을 생각해본 후 가장 최적화된 군집을 형성하는 방법
      • 대표적인 방법으로는 K-중심 군집
  • 연관 분석
    • 데이터 마이닝의 대표적인 분석 기법으로, 장바구니 분석이라고도 함.
    • 데이터 간의 발생 빈도를 분석하여 그 속에 숨겨진 연관 규칙을 파악하는 방법
    • 상품이나 서비스 간의 연관 관계를 분석하여 마케팅에 주로 활용
    • 연관 규칙을 평가하기 위해서 지지도, 신뢰도, 향상도 지표를 이용함.
    • 대표적으로 Apriori 알고리즘이 있음

 

5. 빅데이터 표현 기술: 데이터 시각화

1️⃣ 데이터 시각화 개념

  • 빅데이터의 표현 기술은 데이터 분석을 통해 추출한 결과가 모두가 이해하기 쉽고 보기 좋게 그림이나 그래프 등으로 표현해주는 데이터 시각화를 의미함.
  • 최근 인포그래픽과 데이터 시각화를 같은 의미로 사용하는 경우가 많지만
    • 인포그래픽은 정보의 내용을 명확하고 직관적으로 전달하는 데 초점을 맞춘 거라면,
    • 데이터 시각화는 데이터 분석 결과를 그대로 표현하는 것에 그치치 않고 규칙이나 패턴을 찾는 분석 작업의 한 과정으로 본다.

2️⃣ 데이터 시각화 방법

  • 시간 시각화
    • 시간의 흐름에 따른 데이터의 변화나 경향을 시각적으로 표현하는 방법으로 막대그래프, 누적 막대그래프, 점그래프 등을 주로 활용
  • 분포 시각화
    • 선택이나 분류 기준에 따라 전체적으로 데이터가 각 부분에 어떻게 분포되어 있는지를 시각적으로 표현하는 방법이며 트리맵, 원그래프, 도넛 차트 등을 주로 활용
  • 관계 시각화
    • 데이터 간에 어떤 관계가 있는지, 어떤 상관관계가 있는지를 시각적으로 표현하는 방법이며 버블 차트, 산점도 등을 주로 활용
  • 비교 시각화
    • 여러 항목의 데이터 값을 함께 비교해서 유사성이나 차이를 시각적으로 표현하기 위한 방법이며 방사형 차트, 히트맵, 스타 차트 등을 주로 활용
  • 공간 시각화
    • 지도 위에 데이터를 표시하여 장소나 지역에 따른 데이터 분포를 시각화하는 방법으로 지도 매핑, 통계 주제도, 단계 구분도 등을 주로 활용

3️⃣ 데이터 시각화 도구

  • Tableau, GraphViz, Tag Cloud, Gephi, Processing, Fusion Tables 등 다양한 시각화 도구가 출시되었고 이 중 오픈소스도 많음
  • 태블로(Tableau)는 대표적인 데이터 시각화 도구로 다양한 그래프 시각화 결과물을 쉽고 빠르게 만들어낼 수 있어 많이 사용되며 빠른 그래프 변형과 실시간 공유가 큰 장점
  • 최근에는 다양한 패키지를 제공하여 시각화는 물론 데이터 분석에 특화된 도구로 평가받고 있는 R도 큰 인기를 얻고 있 음
  • R 언어
    • 1993년 뉴질랜드 오클랜드 대학교의 로버트 젠틀맨과 로스 이하카가 개발한 프로그래밍 언어이자 데이터 분석을 위한 소프트웨어
    • 함수를 이용해 명령문을 작성하면 바로 실행 결과를 확인할 수 있는 대화형 방식으로 운영되고 R 스튜디오를 추가로 설치하여 GUI에서 보다 편하게 작업을 수행할 수 있음
  • 프로그래밍 언어인 Python도 데이터 시각화 도구로 쓰임

 

 

자료

  • 데이터베이스 개론 3판 (김연희 저, 2024.1)

'[컴퓨터 과학자 스터디] > 데이터베이스' 카테고리의 다른 글

데이터베이스 응용 기술  (1) 2024.12.05
보안과 권한 관리  (0) 2024.12.05
회복과 병행 제어  (0) 2024.12.02
정규화  (2) 2024.11.29
데이터베이스 설계  (2) 2024.11.27

블로그의 정보

프리니의 코드저장소

Frinee

활동하기