인프런 커뮤니티 질문&답변

View K님의 프로필 이미지
View K

작성한 질문수

[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

DB선택을 하려는데 궁금해서요

작성

·

503

1

Realm이라는것을 알게되었습니다.

sqlite하고 비교를 많이 하는거 같던데 ;;; 개념이 이해가 잘 안되서요.

sqllite가 RDBMS 경량화버전이라면 Realm은 Nosql(몽고DB) 경량화버전인가요?

전 취미활동 게시판앱+웹을 만드는목표인데요.

처음접한 nodejs+mongDB로 공부를 계속 해왔습니다.

그래서 플러터로 mongoDB 붙여서 쓸려고하니 Realm이라는게 mongoDB 인수 되었다고하고 서비스도 같은 홈페이지내에서 서비스가 되더라구요.

DB쪽은 공부를 안해놔서 RDBMS 쪽으로 가라면 당장엔 ... 못갈거 같아요.

요약

1.플러터에 붙일 DB는 Realm vs mongoDB 뭐가 더 좋은가요?

2.앱은 API를 써야한다고하는데 파이어베이스도 그것일단 빼고 ...... 혹시나 해서그런데 Realm은 API하고 하등 상관이 없는거죠?

 

답변 1

1

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

안녕하세요!

정확한 궁극정인 목표를 잘 모르겠어서 좋은 답변이 될지는 모르겠으나 최선을 다해보겠습니다.

일단 Realm의 경우 NoSQL의 일종이라고 보는게 '가까울' 것 같습니다. Object Database라고 표현을 하는데 사실상 이는 NoSQL 형태를 말합니다.

Realm에서 강조하듯이 어떤 이미 존재하는 데이터베이스에 wrapper는 아닙니다. 본인들이 직접 처음부터 엔진을 작성한 새로운 데이터베이스라고 생각하시면 됩니다.

SQLite의 경우 RDBMS의 경량화 버전이라고 표현 하셔도 큰 문제가 되지 않을 것 같습니다.

그리고 위에서 말씀드린걸로 결론을 내드리면 Realm은 MongoDB 같은 서비스의 경량화 버전이라고 봐도 무방할 것 같습니다.

SQLite를 다루려면 물론 SQL을 알면 좋습니다.

하지만 Drift 같은 ORM wrapper를 사용하시면 Realm을 사용하는 것 처럼 OOP를 이용해서 SQLite를 사용 할 수 있습니다.

데이터베이스를 선택하는데는 굉장히 많은 요소가 영향을 줍니다. 하지만 간략하게 주관적으로 말씀드리면 primary database가 아닌 secondary database (캐싱용 등)으로 사용한다면 NoSQL이 조금 더 유리하고 아니라면 SQL이 유리합니다.

하지만 역시 모든 기술은 내가 잘 사용 할 줄 알고 쉽다고 느끼는 기술이 최고입니다. 수강생분이 생각하시기에 Realm이 니즈에 맞을 것 같다고 생각 된다면 사용하시면 됩니다. 너무 과한 미래를 보면 상품 출시가 안됩니다.

 

1.플러터에 붙일 DB는 Realm vs mongoDB 뭐가 더 좋은가요?

개발 기술에서 뭐가 뭐보다 절대적으로 좋다는 존재하지 않습니다. 어느 하나가 다른 하나를 완벽히 대체한다면 해당 기술은 deprecate 됩니다. 각각의 장단점이 있다고 생각하셔야합니다.

2.앱은 API를 써야한다고하는데 파이어베이스도 그것일단 빼고 ...... 혹시나 해서그런데 Realm은 API하고 하등 상관이 없는거죠?

API는 Application Program Interface 즉 프로그램과 소통하는 연결고리일 뿐입니다. Realm을 사용할때 작성하는 코드와 MongoDB를 작성할때 쓰는 코드 모두 API의 일종입니다. 만약에 네트워크 통신이 필요한건지를 물어보신다면 로컬 데이터베이스로 사용하실때는 네트워크 통신이 필요없습니다.

감사합니다!

View K님의 프로필 이미지
View K

작성한 질문수

질문하기