0. Introduction


1. 데이터는 왜 중요할까???

데이터를 가공해서 다양한 일을 할 수 있기 때문이다.

점점 시간이 흘러가면서 데이터의 중요성은 커지고 있다. 왜 데이터는 중요할까?? 이 데이터를 가공해서 매우 다양한 일들을 할 수 있기 때문이다. 하지만, 크게 2가지로 나눌 수 있다고 생각한다.

  • 인터넷에 연결된 앱과 웹을 통한 지식 전파
  • 빅데이터나 인공지능 기술을 통해서 데규모 데이터로부터 통찰력 있는 데이터 추출

그러면 이 데이터 정보의 저장 과정 histroy를 알아보자.


2 데이터 정보의 저장 과정 history

2.1 자유로운 형식의 file

데이터 정보의 저장 형태인 file은 자유로운 형식 이란 장점이 있지만, 이 장점이 단점으로서 작용된다.

file은 운영체제마다 파일 기능을 제공하기 때문에, 어디에서나 사용할 수 있고, 배우기 쉽고, 입력과 읽는 속도도 매우 빠르다.

즉, 자유롭다.

하지만, 이런 자유로운 형식으로 인해 SW를 안정적으로 관리하기가 어렵다.

예를 들어서 각 데이터의 형식이 달라서 항목명이 서로 다르기 때문에, 관리하기가 어렵다. 이 데이터의 형식이 다르다는 문제로 인해 예기치 못한 다양한 오류들이 발생한다.

2.2 일정한 형식의 spreadsheet

이 한계를 극복하기 위해 나타난 게 바로 table로 된 spread sheet 다.

형식이 일정하기 때문에, 여러 사람들이 공유해도 문제가 생기지가 않는다.

spreadsheet의 예로는 우리가 알고 있는 마이크로소프트의 엑셀, 구글의 구글 시트가 있다.

2.3 DB와 DBMS

이 table 형식의 data들을 특정 소프트웨어나 프로그램에 종속되지 않고 독립되어 정보를 저장하는 장소를 바로 DB(DataBase) 라 한다. 이 DB는 단지 데이터 저장소이므로 별다른 기능이 없다.

그리고, 이 DB에 여러 기능들을 넣어서 만들어 DB를 관리 및 운영하도록 만든 소프트웨어DBMS(DataBase Management System, 데이터베이스 관리 시스템) 라 한다.

DBMS에서 DB로부터 다른 정보를 넣고, 빼는 등 조작하여 손쉽게 사용되도록 하는 도구가 구조화된 질의 언어인 SQL(Structured Query Language) 다. DBMS에서 DB를 관리하는 방식이 SQL이라고 생각하면 된다.

이 SQL은 자바, 파이썬, 자바스크립트 같이 범용 프로그래밍 언어가 아닌 HTML처럼 특정 영역에 사용되는 Domain-specific language 로, 도메인 특화 언어다.

이 DBMS 소포트웨어의 종류에는 MySQL, Oracle, SQL Server, PostgreSQL, MongoDB 등이 있다.

2.4 관계형과 비 관계형 DBMS

이 DBMS는 관계형 데이터베이스(RDBMS, Relational DataBase Management System)비관계형 데이터베이스(Non-relational DBMS) 로 나눠진다. 여기서 비관계형 데이터 베이스는 NoSQL 이라고도 불린다.

RDBMS하나의 table이 아닌 여러 개의 table로 나눠 데이터 중복을 방지하고, 자신이 원하는 데이터 정보를 추출하기 하기 위해 SQL을 사용하여 여러 table에 있는 정보들을 조작하여 새로운 테이블을 만드는 데이터 베이스 관리 시스템을 말한다.

NoSQL 은 일정한 형식은 없지만, 매우 빠르게 관리할 수 있다고 한다.

RDBMS 의 종류에는 대표적으로 Oracle, MySQL, PostgreSQL 등이 있고, NoSQL 에는 대표적으로 MongoDB가 있다.


3. 데이터 베이스의 본질: CRUD

DB의 본질은 CRUD다.

어떤 데이터베이스를 만나든 제일 먼저 해야 할 것은 데이터베이스의 데이터를 어떻게 입력하고 어떻게 출력하는가를 따져봐야한다.

즉 입력(Input: 데이터의 생성(Create), 수정(Update), 삭제(Delete)) 과 출력((Output) : 데이터의 읽기(Read)) 이다.

이 입출력을 합쳐서 CRUD(Create, Read, Update, Delete) 라 한다. 그 외 복잡한 기능들은 CRUD를 보좌하는 부가적인 기능들에 불과하다.


4.어떤 DB로 시작할 것인가?

결론: MySQL부터 시작 후, MongoDB를 학습해보자.

생활코딩에 따르면 비관계형 데이터베이스를 먼저 학습하기보다는 먼저 RDBMS에서 하나 배운 후, RDBMS가 아닌 것을 배우기를 강하게 추천한다고 한다. 그리고, 비관계형 데이터 베이스를 꼭 배우라고 한다.

그래서 관계형 데이터베이스부터 학습하기로 결정했다. 그러면 여러 종류의 RDBMS에 대해 정리해보자.

아래 내용은 생활 코딩에서 언급한 것을 단순 정리한 내용이다.

  • Oracle

    • 아주 오랫동안 데이터베이스 시장에서 절대강자로 군림해왔던 데이터베이스
    • 주로 관공서, 큰 기업, 정부에서 많이 사용한다.
      • 이유 : 비싸다.
      • 데이터베이스 기술 지원 : 컨설턴트의 컨설팅 비용도 비싸다.
      • 자금력 있는 기업이나 정부에서 많이 사용한다.
    • 개인적으로 사용하고 싶거나 작은 회사에서 쓰려고 하거나 큰 회사라고 하더라도, 금융 같이 신뢰성이 굉장히 높은 데이터를 다루는 경우 가 아니라면 오라클 사용을 비추한다고 한다.
  • MySQL

    • 무료, 오픈소스
    • 관계형 데이터베이스를 이용하고 싶으면서 자금이 많지 않아서 개인적으로 사용하고 싶거나 작은 회사, 또는 SNS와 같이 대규모의 데이터가 생성이 되지만 데이터의 신뢰성은 아주 중요하지는 않은 기업에서는 아주 좋은 선택사항이다.
    • 초심자에게 추천
  • MongoDB

    • 2010년부터 RDBMS가 아닌 데이터베이스들이 쏟아져 나왔다.
      • RDBMS의 여러 가지 장점으로 인해 RDBMS를 사용했다.
        • 개발자 입장에서는 어떤 회사를 가던 RDBMS를 알고 있으면 새로 배울 필요가 없다.
        • 자연스럽게 RDBMS를 쓸 줄 아는 수많은 개발자들이 생겨났고 회사 입장에서는 인력을 구하기 쉬운 RDBMS 선택한다.
      • 하지만, 다음과 같은 변화가 일어났다.
        • SNS와 IoT의 등장, 많은 사람들이 프로그래밍을 할 줄 알면서, 수 많은 데이터들와 다양한 종류의 데이터들이 쏟아진다.
        • RDBMS에 모든 데이터베이스가 낑겨 들어가게 되면 거기에 잘 맞지 않는 데이터베이스 입장에서는 RDBMS가 일종의 억압으로서 작용할 수도 있다.
        • 그래서 2010년부터 NoSQL이라는 흐름이 나타났고 NoSQL이라는 흐름에서의 가장 중요한 특징은 RDBMS가 아닌 다양한 데이터베이스가 폭발적으로 만들어지고 있고 성장하고 있다는 것

Reference