앱 개발에 어떤 데이터베이스를 사용하는 게 좋을까요
안녕하세요.
현재 컴공 대학 학부 과정에 재학 중인 학생입니다.
수강하는 전공수업의 과제로 프로그램을 제작하게 되었는데
안드로이드 앱을 개발하는 것을 목표로 하고있습니다.
그리고 여기에 데이터베이스를 적용? 연동? 하고싶은 데,
데이터베이스도 OracleDB, MariaDB 등등 종류가 많지않습니까?
어떤 데이터베이스를 활용해야 편리하면서도 효율적이게, 개발을 할 수 있을 지 잘 모르겠습니다.
고수 분들의 팁을 듣고싶어요.
API 서버를 사용해서 데이터베이스를 연동하는 것인가요?
서버에 설치하는 것이라면 오라클보다는 MariaDB를 설치하는 것이 쉽기 때문에 MariaDB를 추천합니다.
관계형 데이터베이스를 사용하는 것이라면 두가지다 비슷하게 개발이 됩니다.
안드로이드 폰에서만 동작을 한다면 Room을 사용하는 것이 좋습니다.
해당 안드로이드 앱이
어떠한 데이터 구조를 가지는지,
어떠한 데이터 작업을 주로 하는지에 따라서 적합한 데이터베이스를 선택하는게 매우 달라집니다.
다만 기본적으로 학부생 수준에서 간단한 어플을 만드시는게 목적이시라면
마리아DB 혹은 mysql 등 가볍고 무료인 DBMS 를 사용하시는걸 추천 드립니다.
( DBMS 라이센스가 무료라고 하여 성능상 큰 이슈가 있다거나 하는건 아닙니다. )
사용하는 앱이 디바이스 자체에서만 사용할 거라면 LocalDB를 써도 괜찮습니다.
그런데 회원정보, 외부 시스템 정보등을 같이 쓰는 목적이라면 얘기가 다르지요.
라이센스문제와 사용 편의성등을 고려하면 MariaDB, MySQL을 쓰시는 게 좋을 것 같습니다.
속도나 스케일링 문제를 생각한다면 postgreSQL 도 좋습니다만, 그래도 산업군에서 가장 많이 쓰이고있는 RDBMS를 쓰시는게 좋겠죠. 많이 쓰이고 있는 만큼 트러블이 발생하면 구글링했을때 해결방안을 잘 찾아볼 수있거든요.
저는 Oracle DB를 추천드립니다. 오라클 디비는 오래전부터 오라클 사의 많은 직원들이 유용한 기능들을 추가해 왔습니다.
특히 게시판의 글을 페이지로 보여주기 위해 페이징 기능을 사용할 때, 데이터베이스 쿼리를 쳐야 하는데,
이 때 ROWNUM 이란 개념을 사용해서 쉽게 구현할 수 있게 기능을 제공하고 있습니다. 그리고 뒤이어 마리아디비도 ROW_NUM 개념을 만들었지만요
그리고 계층적 구조를 만들기 위해 계층형 쿼리 란 개념을 도입하여 START WITH~CONNECT 라는 문법을 만들어서 계층적인 것을 쉽게 만들 수 있게 했습니다.
2가지 예시를 들었는데, 오라클 디비는 유용한 기능들을 선도하여 개발해 왔다는 점이 핵심입니다.
오라클 디비에 대해 자세하게 알고 싶으시다면 아래 책, 인강을 활용하시면 좋습니다
(이것이 오라클이다)
-책
https://www.hanbit.co.kr/store/books/look.php?p_code=B1587804244
-인강
https://www.youtube.com/watch?v=a9wXMtPbCVw&list=PLVsNizTWUw7FzFgU1qe-n7_M7eMFA9d-f
-
앱개발이 처음이시라면 우선 RDBMS의 관계형 데이터베이스를 하시는 것을 추천드립니다. 관계형 DB는 많이들 알고 있는 MYSQL, AURORA, MariaDB 등을 말합니다. 테이블 설계를 어떻게 하느냐에 따라 왠만한 홈페이지나 앱개발을 하는데에는 모두 구축을 할 수 있습니다.
그러나 NOSQL을 사용하고 싶으시다면 각 특성에 맞게 사용하시면 됩니다.
실시간성 데이터를 처리(주식 거래소, 실시간 모니터링 감지시스템 등)해야하는 경우에는 Redis
대량의 로그나 다양한 검색을 위한 문서를 처리(검색엔진)해야하는 경우에는 ElasticSearch
기본적인 게시판형으로 하실 경우에는 Mongodb 정도만 해도 충분합니다.
실무에 들어오시면 다양한 DB를 많이 접하시는데 학부수준에서는 관계형DB만 사용하셔도 충분히 모든 앱들을 만드실수 있습니다.
"어떤 데이터베이스를 활용해야 편리하면서도 효율적이게, 개발을 할 수 있을 지 잘 모르겠습니다."
라고 질문을 하셨는데요
보통 간편하고 보편적으로 많이 사용되는게 mysql, mariadb 를 보시면 될것 같습니다
오라클은 유료이고, 일반 웹개발자나 앱개발자들이 오라클로 시작하지는 않습니다