-
Notifications
You must be signed in to change notification settings - Fork 1
서버리스 프로젝트, 이대로 괜찮은가 ?
yuncheol-AHN edited this page Nov 4, 2024
·
1 revision
- 멀티 미디어를 저장할 서버없이 프로젝트 진행하는 것
- 서버 도입 여부를 결정
-
서버: Firebase, NAVER cloud(database, object storage), SupaBase
-
안 쓰면 로컬 DB를 어떻게 쓸지
로컬DB: Realm, Swift Data, Core Data, SQLite
-
-
로컬로 저장해보자 → Path를 이용해 볼 수 있지 않을까?
- 생각한 이유: 앱에도 저장하고 서버에도 저장하면 용량이 2배가 될 것같다.
- 그런데 앨범이 삭제되거나, 권한을 없애면 어떻게 할까?
- 앨범이 삭제되거나 권한이 없다고 사진을 안띄우면 좋지 않은 경험이 되지 않을까?
그러나 위와 같은 의문이 들었다.
사진이나 영상 자체를 저장
- 로컬에 있는 Path만 저장한다.
- (사진삭제, 접근권한 문제 → 중간에 바꾸면?)
- 그 Path는 항상 유효함이 보장되는지?
- 속도비교: 네트워크로 매번 저장 vs 로컬 DB로 저장했다가 한번에 저장
- 매번 저장할 때 바뀐 부분만 저장하면 어떨까?
일기장에 사진을 저장(접근권한o) → 사용자가 설정에서 접근권한 없앰 → 일기장에 사진이 있는 페이지에 들어가면 다시 사진에 대한 접근권한 물어봄.
- 로컬 데이터베이스를 사용할 경우 디스크 사용량 문제
- 사진에 대한 Reference를 사용할 때 사진앱의 사진을 삭제 했을 때 문제
- 그래서, 서버 DB가 필요하다고 판단했고, Server Framework를 사용해 서버를 개발하고 Cloud Server에 올리는 건 많은 비용(시간적)이 든다고 판단
결론
⇒ 서버를 사용하기로 함, FireBase
vs Naver Cloud Platform
- 로그인 X + 서버
기기가 바뀌는 경우는 백업 식별자를 통해 백업가능
- 유저가 백업 안 하고 앱 삭제하면 서버 관리는 어떻게 할거 ? (용량 낭비 문제)
- 로그인 +서버 + 백업X
결론
⇒ 로그인 없는 서비스를 만든다. 대신 백업을 제공해줌
FireBase의 용량한계로 인해서 NaverCloud에서 제공하는 Object Storage를 이용하기로 함
- 또한 백업기능의 경우 추후 추가 논의를 하기로 결정
Naver Cloud Platform: Object Storage 도입
- 로컬 DB에 저장해서 용량 2배 이벤트는 별로라 판단함
-
NCP
의Object Storage
도입하여 서버에 저장하는 것으로 결정 - 로그인은 사용하지 않음, 대신 백업 기능을 추가하여 보완하고자 함
-
백업
기능에 대한 이야기 -
자동저장
기능에 대한 이야기 - 유저가 앱 삭제해버리면 서버 용량 낭비 문제 해결
-
디스크 캐싱
이야기 -
캐싱
-네트워킹
데이터 일관성 문제
https://github.com/boostcampwm-2021/iOS07-DoolDa
https://developer.apple.com/documentation/photokit/browsing_and_modifying_photo_albums