(TIL) 2020-09-08 기록

업데이트:

오늘 한 일

  • 보이스챗 앱의 DB 조작 로직을 스트레터지 패턴을 활용하여 구현하다가 문득 이런 식으로 중복된 쿼리가 Firestore에서 가능한가 싶어서 찾아 봤더니 다중 범위 필터링은 지원을 하지 않는다고 하더라. 물론 클라이언트 사이드에서 필터링해도 되지만 그렇게 되면 lazy하게 데이터를 불러와서 한 번에 20개 정도를 로딩해야 하는데 만약 조건에 맞는 데이터를 처음에 못 찾으면 20개를 채울 때까지 한없이 쿼리를 반복해야 하기 때문에 희귀한 필터를 적용해서 검색하게 됐을 때 그 성능은 절대 보장하지 못한다. 아마 끔찍한 UX를 안겨줄 가능성이 높다.
  • 그래서 나는 SQL이 필요하다고 생각했다. 생각보다 우리 앱이 복잡한 앱이었다. 그래서 AWS, Azure, GCP 등을 계속 살펴봤는데 전혀 이해가 가지 않았다. 왜냐하면 백엔드에 대한 지식이 전무하기 때문이고 파이어베이스는 데이터베이스를 만들면 알아서 서버를 꾸리고 API까지 제공하기 때문이다. 몇 시간을 머리를 싸매고 블로그와 공식 문서들을 탐방해보니 일단 서버를 만들고(가상머신을 만들고) 각종 필요한 서비스들을 활성화한 뒤(SQL, 푸시 메시지 서비스, 인증 서비스 등) 서버에 백엔드 애플리케이션을 만들어 클라이언트에서 서버 앱을 실행하고 서버 앱이 서비스에 접근하여 그 응답을 수신하여 다시 클라이언트로 넘겨주어야 하는 것이다. 그래서 사실 flutter 코드 내에서 쓸 API들을 내가 직접 짜야 한다. 아직 잘 모르기 때문에 당분간 web FE 공부보다는 클라우드 컴퓨팅 사용법에 대해서 익히려고 한다.
  • AWS가 유명하지만 왠지 요즘 github를 인수하고 .NET을 오픈하며 친오픈소스로 갈아탄 MS에서 서비스하는 Microsoft Azure가 잠재력이 높아 보이고 가격도 저렴해서 일단 Azure로 그렇게 하는 방법을 연구하고 찾아봐야겠다. 이러다가 풀스택 개발자 되겠다 ㅎㅎ..

내일 할 일

  • 그리디 문제 하나를 마저 풀고 DP 공부를 하고 시간이 남으면 백준 DP문제를 풀기 시작해야겠다.
  • 학교에서 하는 오픈소스 관련 강의를 듣는다.
  • 내일부터는 기존에 web 공부하던 시간과 플러터 프로젝트 코딩하던 시간을 모두 azure 사용법을 익히는 데 투자할 것이다.

태그:

카테고리:

업데이트:

댓글남기기