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

011414님의 프로필 이미지
011414

작성한 질문수

Flutter 앱 개발 기초

flutter와 관계형DB (오라클 등) 연동 방법

해결된 질문

작성

·

3.8K

1

먼저 알찬 강의 잘 듣고 있습니다. 감사합니다.

원초적인 질문 하나 드릴까 합니다.
아직 배우는 과정이지만 궁금해서 질문 올립니다.

전체 범위를 쭉 훑어 보았는데,,
상태관리나 로컬DB나 Firebase 등에 대해서는 어느 정도 용도를 알겠으나

정작 실무에서 사용을 할 때에는
기간계에서 관계형DB를 기반으로 어플리케이션이 동작하는 경우가 대다수입니다.

Flutter 사이트나 서적에도 찾아보았지만 관련 내용이 없어 질문을 드리는 건데
Flutter 기반 어플이 관계형 DB와 연동은 어떻게 하는게 가장 적합할까요?

두서없는 질문 같지만 답변 부탁드려도 될까요?

답변 3

1

DevStory님의 프로필 이미지
DevStory
지식공유자

API 연동시 대량의 데이터 조회 문제는 페이징처리를 하여 해결하고 있습니다.
게시판에 페이지 별로 나누는 것과 같이 유저에게 필요한 데이터만 잘라서 가져온다고 보시면 됩니다.
보다 자세한 설계 방식 설명은 링크를 참고해 주세요.

감사합니다 :)

 

1

011414님의 프로필 이미지
011414
질문자

우선 답변 감사드립니다.

말씀 주신 내용은 예상은 했었지만, API 연동을 통한 대량의 데이터 조회는 많은 성능적 문제점을 갖고 있을거 같아서 다른 방법이 있는지 여쭤본 것이었습니다.

다만, 대량의 데이터를 가지고 올때 조금씩 비동기 방식으로 갖고 오는 방안을 절충안으로 사용하고는 있지 않을까 예측도 해 보았고요..

또한, Firebase를 기본으로 하고, Firebase와 관계형DB를 서로 동기화하는 방안에 대해서도 생각해 보았는데, NoSQL DB와 관계형 DB 동기화는 한계가 있지 않을까도 생각했었고요.

결국, 실제 포털사이트에서는 분명 최종 중요 데이터들은 상용 관계형 DB를 쓸텐데,, 어떻게 사용하고 있을까 하는 궁금증 때문에 여쭤보았습니다.

그리고 답변 감사드립니다. 

1

DevStory님의 프로필 이미지
DevStory
지식공유자

안녕하세요 011414님

DB를 Flutter 앱에 직접 연동할 수도 있으나 보안에 취약하므로, 일반적으로 API 서버를 앱과 DB 사이에 구축하는 방식으로 연동을 합니다.

API 서버 만드는 다양한 방법이 있는데 그 중 한 가지 방법을 말씀드리면,
1. AWS, Oracle, GCP과 같은 클라우드에서 컴퓨터를 임대합니다.
2. DB를 구축합니다. (클라우드에서 제공하는 DB 서비스를 사용하실 수도 있고, 임대한 컴퓨터에 직접 MySQL 등을 설치하여 운영하실 수도 있습니다)
3. 앱에서 보내는 HTTP 요청에 대해 응답해줄 임대한 컴퓨터에 API 서버를 구축합니다. API 서버는 WAS(Web Application Server)라고 부르기도 하며 다양한 언어와 프레임워크로 구현하실 수 있습니다.
(JavaScript - Node.js / Python - Flask, Django / Java - Spring / PHP - Lalabel, Codeigniter 등)
4. API 서버에 로그인, 회원가입와  같이 앱에서 사용할 기능을 구현하며, 앱에서 API를 호출하는 경우 API 서버가 DB로 CRUD 요청을 보내는 방식으로 동작합니다.

강의 4회차에서 배우신 API 사용법이 위와 같이 만들어진 API 서버의 기능을 호출하는 방법이라고 이해하시면 됩니다. 앱 이외에 API 서버 및 DB를 구축하는 영역은 보통 백엔드라고 부르는데, Flutter 입문 강의에서 백엔드까지 다루기엔 강의 주제를 벗어나는것 같아 위 내용은 향후 별도의 수업으로 준비하겠습니다.

감사합니다 :)

011414님의 프로필 이미지
011414

작성한 질문수

질문하기