데이터베이스 공부

FFTL:)·2021년 6월 2일
0

개발자나 개발자가 아닌 사람들도 데이터베이스라는 단어는 누구나 들어봤을만한 단어입니다. 개발자들은 개발을 이 데이터베이스를 사용하게 되는데 저 역시도 개발을 배우고 개발을 하며 자연스레 데이터베이스를 사용하게 되었습니다.

저는 처음 학원에 다니며 배울 때에는 oracle 11g를 통해서 SQL을 배웠으며, 이후 MySQL, MariaDB등을 사용하게 되었습니다. 그러나 SQL과 MySQL이 무엇이 다른지, MariaDB는 또 무엇인지, NoSQL은 또 무엇인지 정확한 개념이 잡히지 않은 상태에서 사용하고 있었습니다. 또 갈수록 JPA, TypeORM를 사용함에 따라서 직접 SQL문을 사용할 일이 없어지게 되며 더 관심을 가지기 어렵게 되기도 하였습니다.

최근에 면접을 보며 나왔던 질문 중에 DBMS에 대한 질문을 들었었고, 이에 대한 대답을 잘 하지 못했던 경험을 했는데 이 기회에 확실히 개념을 정리하고 가는 것이 좋을 것 같다고 생각했습니다.

- 데이터베이스란 무엇인가?

데이터베이스는 여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리되는 데이터 집합을 말합니다. 데이터베이스를 사용하기 위해서는 주로 DBMS를 사용하는데 이를 이용하면 편리하게 데이터를 관리할 수 있게 됩니다.

- DBMS란 무엇인가?

DBMS는 DataBase Management System의 약자로서 데이터베이스의 관리를 도와 다수의 사용자들이 데이터베이스의 데이터에 접근할 수 있도록 도와주는 소프트웨어 도구의 집합입니다.

제가 개발에서 사용했던 MySQL, MariaDB, Oracle 11g등이 모두 이 DBMS 였습니다. 기본적으로 이 DBMS는 모두 SQL언어를 사용하며 이 SQL언어를 이용하여 데이터베이스의 데이터를 생성, 조회, 수정, 삭제할 수 있습니다.

- DBMS의 종류

이 DBMS에도 종류가 있습니다. 대표적으로 많이 사용되는 관계형 데이터베이스 관리 시스템인 RDBMS 가 있습니다. RDBMS에는 위의 예를 들었던 MySQL, MariaDB 등이 포함되며 생성된 테이블간의 관계를 이용하여 조회하는 Join의 사용 그리고 이를 도와주는 외래키의 존재가 가장 큰 특징입니다.

다음으로는 NoSQL 방식의 데이터베이스가 존재하는데 이에는 대표적으로 MongoDB가 존재합니다. 이 NoSQL 방식은 테이블간의 관계를 가지지 않아 Join 기능이 없으며 이는 더 유연한 구성을 할 수 있도록 도와줍니다. 관계를 가지지 않은 대신 RDBMS보다 대용량의 데이터를 저장할 수 있으며 데이터를 여러 대의 서버에 분산시켜 저장하는 등의 특징이 있습니다. 또 Key/Value 형식을 이용하여 데이터를 다루게됩니다.

- 어떤 DB를 사용해야 할까?

저는 이전까지 MySQL, MariaDB, MongoDB 등 다양한 DBMS들이 존재하는데 이에 대한 정보를 찾아보지 않고 주로 익숙했던 MySQL만을 사용해 왔습니다. 제가 만들었던 프로젝트 들에서 사용하는 데이터베이스의 규모는 매우매우 작았고, 어떤 DBMS를 써도 유의미한 차이를 느끼기 힘들었기 때문에 그냥 가장 익숙한 MySQL을 사용해 왔습니다. 물론 이후에도 개인 프로젝트를 진행 함에 있어서 엄청난 양의 데이터를 다루게 될 일은 많지 않겠지만, 많은 데이터를 다루게 될때는 NoSQL을 사용해 보는 것도 괜찮은 선택일 것이라 생각하고, 정형화된 데이터를 다루는 것이 필요할 때에는 RDBMS를 사용하는 것이 좋을 것 이라 생각합니다.

물론 두 가지의 특징을 확실히 파악하여 자신의 용도에 맞는 데이터베이스를 사용할 지에 대해 선택하는 안목을 기르는 것도 중요하다고 생각합니다.

profile
생각하는 개발자가 되자!

0개의 댓글