"데이터베이스에 대한 정리가 한번 필요하다"라는 생각을 행동으로 옮긴 날(18.05.14)
지식 공유자 - Opentutorials에서 양질의 정보를 무료로 제공하시는 egoing님
- 데이터를 가공해서 다양한 일을 할 수 있기 때문이다.
- 인터넷에 연결된 앱과 웹을 통해서 지식을 전파할 수 있고,
- 빅데이터, 인공지능과 같은 기술을 이용해 대규모의 데이터로부터 통찰력 있는 분석결과를 얻을 수도 있다.
- 이런 결과를 위해서는 데이터를 저장하고, 꺼낼수 있어야 한다.
- 이를 위해서 우리가 선택할 수 있는 첫번째 수단은 파일이다.
- 파일은 배우기가 쉽고, OS마나 file기능을 제공하기 때문에 어디에서나 사용할 수 있다.(심지어 Email과 메신저를 통해서 자유롭게 전송도 가능하다.)
- 하지만, 파일은 성능, 보안, 편의성에 한계를 가지고 있다.
- 파일의 한계를 극복하기 위해 고안된 전문화된 소프트웨어가 데이터베이스이다.
- 데이터베이스를 이용하면 데이터를 안전하고, 편리하고, 빠르게 보관하고 사용할 수 있다.
- 종류
- MySQL
- Oracle
- SQL Server
- PostgreSQL
- MongoDB
- ...
- 데이터베이스는 매우 방대한 기능을 가지고 있는 정보 도구이다.
- 기능이 방대한 이유는 데이터 관련해서 일어날 수 있는 일들이 매우 많기 때문이다.
- 이렇게 표면적이 넓은 기술을 배울 때에는 하나하나 각개격파하면서 학습하는 것은 좋은 방법이 아니다.
- 어떤 데이터베이스를 만나건, 데이터베이스에 데이터를 어떻게 입력하고 어떻게 출력하는가를 따져보는 것이 가장 중요하다.(데이터베이스의 본질에 집중하는 것)
- 입력은 다시 세가지 작업으로 나눌 수 있다.
- Create
- Update
- Delete
- 출력
- Read
- 데이터를 생성하고, 읽고, 수정하고, 삭제하는 네가지 작업이 데이터 관련해서 우리에게 필요한 거의 모든것이라고 해도 과언이 아니다.
- 데이터베이스의 방대한 기능들은 핵심인 CRUD를 보좌하는 부가적인 기능에 불과하다.
- 게시글을 파일형태로 저장한다고 했을 경우에 저자가 '홍길동'인 게시글만 보고 싶다면, 심지어 총 게시글이 1억개 정도 된다면 그것은 굉장히 골치아픈 일이다.
- 이를 조금더 편하게 하기 위해서 엑셀이나, 스프레드 시트의 필터를 사용하곤 한다.
- 실제로 스프레드 시트를 사용해서 데이터를 구조적으로 저장했을 때, 정렬과 검색 등 데이터의 가공이 한층 더 편리해진다.
- 파일과 스프레드 시트를 비교했을 때, 스프레드 시트는 데이터베이스로 가는 길목에 있다고 할 수 있다.(데이터베이스적인 특성을 가지고 있다.)
- 스프레드 시트와 데이터베이스 제품들과의 차이점은
- 프로그래밍적으로 또는 컴퓨터 언어를 통해서 데이터를 CRUD연산 하는 기능을 전문적인 데이터베이스 소프트웨어들은 가지고 있다.
- 이것이 갖는 중요한 장점은 자동화 할 수 있다는 것이다. 사람이 일일이 데이터를 저장하지 않더라도, 어떠한 조건에 의해서 자동으로 데이터를 CRUD 할 수 있다.
- 검색 키워드 "database ranking 2018"
- Oracle
- DB시장에서 절대 강자로 군림했던 데이터베이스
- 관공서, 큰 기업에서 많이 사용. 라이센스와 컨설팅 비용이 비싸다.
- MySQL
- 무료이고, 오픈소스이다.
- RDB를 학습하고 싶거나,
- 대규모의 데이터가 생성이 되지만, 그에 대한 신뢰성은 아주 중요하지 않은 기업에서 사용하기 좋은 서비스이다.
- MongoDB
- RDB가 아니다.
- 2010년 부터 RDB가 아닌 제품들이 쏟아져 나왔다.
- sns, iot가 등장하고 수 많은 데이터가 쏟아져 나오면서, NoSQL이라는 흐름이 나타났고, RDB가 아닌 다양한 DB가 폭발적으로 만들어지고 있고 성장하고 있다.
- 자신이 필요한 상황, 혹은 일하게 될 곳이 어디인가, 어떤 DB의 랭킹 변화가 눈에 띄는가 등 종합적인 고려를 통해 학습할 DB를 선정하면 된다.