해결된 질문
22.07.13 08:58 작성
·
3.7K
1
답변 3
1
2022. 07. 13. 12:46
우선 답변 감사드립니다.
말씀 주신 내용은 예상은 했었지만, API 연동을 통한 대량의 데이터 조회는 많은 성능적 문제점을 갖고 있을거 같아서 다른 방법이 있는지 여쭤본 것이었습니다.
다만, 대량의 데이터를 가지고 올때 조금씩 비동기 방식으로 갖고 오는 방안을 절충안으로 사용하고는 있지 않을까 예측도 해 보았고요..
또한, Firebase를 기본으로 하고, Firebase와 관계형DB를 서로 동기화하는 방안에 대해서도 생각해 보았는데, NoSQL DB와 관계형 DB 동기화는 한계가 있지 않을까도 생각했었고요.
결국, 실제 포털사이트에서는 분명 최종 중요 데이터들은 상용 관계형 DB를 쓸텐데,, 어떻게 사용하고 있을까 하는 궁금증 때문에 여쭤보았습니다.
그리고 답변 감사드립니다.
1
2022. 07. 13. 12:04
안녕하세요 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 입문 강의에서 백엔드까지 다루기엔 강의 주제를 벗어나는것 같아 위 내용은 향후 별도의 수업으로 준비하겠습니다.
감사합니다 :)