강의

멘토링

로드맵

Inflearn brand logo image

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

Full Stack 개발자님의 프로필 이미지
Full Stack 개발자

작성한 질문수

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

Drift Table 모델 만들기

drift & sqflite

해결된 질문

작성

·

41

0

안녕하세요, 강사님. 강의 잘 듣고 있습니다.
driftsqflite에 대해 공부하다가 궁금한 점이 있어 질문드립니다.

drift는 내부적으로 sqflite를 사용하는 것으로 알고 있는데, 실제 앱 개발에서 driftsqflite를 사용하는 경우가 서버 없이 로컬 저장소만으로 사용하는 경우가 더 많은지, 아니면 서버와 함께 사용하는 하이브리드 구조로 활용되는 경우가 더 많은지 궁금합니다.

예를 들어,

  • 단순한 메모앱, TODO앱 같은 경우는 로컬 DB만으로 구현하는 경우도 많을 것 같고,

  • ERP 같은 구조에서는 서버만 사용하는 구조가 일반적인 것 같은데요.

실무에서 개발할 때, 어떤 방식(서버 DB 사용 vs 서버DB + 로컬DB 연동)이 더 일반적으로 활용되는지,
서버DB + 로컬DB 연동(drift, sqflite )하이브리드 구조로 가져간다면 어떠한 상황 이나 앱 또는 웹에서 많이 사용하는지 궁금합니다.

답변 2

0

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

안녕하세요!

단순히 뭐가 많은지 말씀드리면 당연히도 서버와 연동하는 방식이 훨씬 많습니다!

말씀하신 다같이 사용하는 케이스는 보통 로컬 스토리지를 캐시로 사용하는 방식입니다.

즉, 오프라인 지원이나 내부적으로 캐싱해둬야하는 (Draft 기능등?) 기능이 필요할때 같이 사용하는 경우가 꽤 있습니다.

감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다. Full Stack 개발자님,

앱 개발 시 driftsqflite 같은 로컬 데이터베이스 솔루션은 일반적으로 간단한 앱에서 많이 사용됩니다. 말씀하신 대로 메모 앱이나 TODO 앱 같은 경우에는 서버와의 연동 없이 로컬 저장소로 충분히 기능을 구현할 수 있습니다.

반면에 업체와 같은 구조에서는 실시간 데이터 동기화가 필요하고 보안이 중요한 요소이므로 서버 기반의 데이터베이스가 일반적입니다. 그러나 서버와 로컬 DB 연동(하이브리드 구조)은 다음과 같은 상황에서 유용할 수 있습니다:

  1. 오프라인 지원: 사용자가 네트워크에 연결되지 않은 상태에서도 앱을 이용할 수 있도록, 데이터가 로컬에 저장되고 네트워크 연결 시 서버와 동기화됩니다.
  2. 빠른 데이터 접근: 로컬 저장소를 이용하면 서버 요청 대비 데이터 접근 속도가 빠르기 때문에 사용자 경험을 향상시킬 수 있습니다.
  3. 데이터 캐싱: 자주 요구되는 데이터의 경우 서버로부터 매번 가져오는 대신 로컬에 캐싱하여 성능을 개선할 수 있습니다.

결국 사용하는 방식은 앱의 요구사항과 사용자의 요구에 따라 달라지게 됩니다. 예를 들어, 항공 앱이나 은행 앱과 같은 경우는 실시간 데이터가 중요한 반면, 오프라인에서도 사용할 수 있어야 하는 뉴스 앱이나 SNS에서는 로컬 DB 활용이 필요할 수 있습니다.

이러한 구조를 설계할 때는 데이터의 일관성 유지와 동기화 로직이 중요한 고려 사항이 됩니다.

추가로 Spring에서의 데이터베이스 초기화 및 마이그레이션 툴 관련 요약이 있으니 추가적 정보가 필요하다면 활용할 수 있습니다:
Spring Boot Database Migration Tool

감사합니다.

Full Stack 개발자님의 프로필 이미지
Full Stack 개발자

작성한 질문수

질문하기