Ch 02. 신용카드 추천 리스트 만들기

2 분 소요

스크린샷 2022-07-13 오전 11 46 11 스크린샷 2022-07-13 오전 11 46 49 스크린샷 2022-07-13 오전 11 47 40

기능 상세:
  • FinTech 계열 앱에서 제공하는 신용카드 추천 앱
  • 여러 개의 신용카드를 순위에 따라 표현
  • 특정 카드를 선택하면 각 카드 별로 혜택을 보여줌
활용 기술:
  • Database
    • 데이터의 집합체
    • 일반적으로 관계형 데이터 베이스 형태
      • 행(row)과 열(column)로 이루어진 테이블(table)
      • 해당 위치에 대응하는 값을 가짐(key : value)
  • Firebase Realtime Database(실시간 데이터 베이스)
    • 비관계형 클라우드 데이터베이스(NoSQL 데이터 베이스)
      • 대량의 데이터를 대규모로 처리
      • 많은 데이터를 수집하고 활용하는 모바일, 웹, 어플리케이션 개발에 적합
      • JSON 기반의 데이터를 가져오고 내보내고 관리하는데 최적화
    • 실시간
      • HTTP 요청이 아닌 동기화 방식
      • SDK를 통해서 클라이언트와 직접 실시간으로 동기화
      • 실시간 데이터 베이스와 연결된 모든 기기는 거의 동시에 서버에 모든 변경사항을
        실시간으로 반영
    • 오프라인
      • 로컬에 저장 후 네트워크 연결시 동기화
      • 앱이 오프라인일 때 사용자 액션에 대한 변경사항을 로컬에 저장해 두었다가
        앱이 다시 네트워크에 연결되었을 때 자동적으로 실시간 데이터 베이스에 업데이트
      • 반대로 클라이언트 기기가 오프라인일 동안 놓쳤던 서버의 변경사항도 자동으로 수신해서 서버를 최신 상태로 동기화
    • 서버 없이
      • 데이터베이스와 클라이언트 직접 엑세스
      • 별도의 서버 개발없이 바로 데이터베이스에 엑세스 가능
      • 데이터를 읽거나 쓸 때 보완 규칙을 통해 데이터 베이스 접근 권한에 대한 보안, 데이터 검증을 제공하기 때문에 안전
  • Firebase Firestore Database(클라우드 파이어 스토어)
    • 실시간 데이터 베이스의 주요기능들과 동일한 기능을 제공
    • 제공하는 데이터 모델 차이로 데이터 베이스를 사용하고자 하는 앱이 어떤 특성을 가지냐에 따라서 권장하는 데이터 베이스가 다름
    • 비교적 최근에 나온 Firestore가 복합적인 고급 쿼리 기능 을 제공
      • 쿼리(Query)
        • 데이터 베이스에 정보를 요청하는 것
        • 특정 문자열, 단어, 값을 포함하는 데이터를 찾기 위해 사용
        • 정보를 요청하는 행위, 특정 데이터 베이스에서 원하는 조건의 데이터를 조작하는
          요청문, 명령문
  • Firebase Realtime Database & Cloud Firestore
    • 실시간 데이터 베이스
      • 하나의 큰 JSON 트리
        데이터 모델을 하나의 큰 JSON 트리로 저장
      • 정렬 || 필터링
        동시에 두가지 일x, 정렬을 하거나 필터링을 하거나
      • 깊고 좁은 쿼리
        결과값을 가지는 하위값 모두를 반환하기 때문에 하위값까지 한번에 엑세스 가능
      • 데이터 세트 ↑ 쿼리 성능 ↓
        하나의 큰 JSON 트리를 가지기 때문에 복잡한 계층을 가지는 데이터를 대규모로 저장하는 것이 어렵고 실제로 최대 32단계의 데이터 중첩만을 허용
        최대한 데이터를 평면화 하는 것을 권장
    • 파이어 스토어
      • 문서 컬렉션
        JSON과 유사하지만 JSON이 아닌 문서와 컬렉션의 조합을 제공
        하나의 컬렉션이 여러개의 문서를 가지고 각각의 문서는 하위의 컬렉션을 가질 수 있는 구조
      • 정렬 && 필터링
        여러 개의 필터를 연결하거나 필터와 정렬을 동시에 진행가능
      • 얕고 넓은 쿼리
        특정 컬렉션의 문서만 반환하고 해당 문서가 하위 컬렉션을 가지고 있더라도 하위의 컬렉션까지는 반환x
      • 데이터 세트 ↑ 쿼리 성능 ?
        전체적인 데이터 세트 크기는 쿼리 성능에 직접적인 영향x
        요청한 쿼리에 대한 결과에 따라서 쿼리 성능 영향
    • firebase에서 제공하는 문서
실시간 데이터 베이스 파이어 스토어
기본적인 데이터 동기화 고급 쿼리, 정렬, 트랜젝션
적은양의 데이터가 자주 변경 대용량 데이터가 자주 읽힘
간단한 JSON 트리 구조화된 컬렉션
많은 데이터베이스 단일 데이터베이스
에러:

queryOrdered 메서드 사용시 시뮬레이터에서 Cell이 안보임
KakaoTalk_Photo_2022-07-13-13-27-34
https://stackoverflow.com/questions/44727308/swift-firebase-queryordered 해결못함