본문 바로가기

전체 글

(107)
[TIL] Kotlin Firebase Firestore, Storage [ 1 ] 이미지가 포함된 게시글 쓰기 Topic = Cloud Firestore 데이터 저장하기 Why Realtime DB를 어느정도 학습했으니, Firestore에 대해서도 학습해보자. 전에 Firebase Service 각각에 대해서 간단하게 정리해둔 글에서도 Realtime DB와 Firestore가 동일하게 DB의 역할을 한다. 이 두가지 DB는 데이터 저장 방식 ( Realtime DB - 노드 트리의 형식으로 Json 으로 저장 , Firestore - Collection - Document 으로 저장 ) 의 차이와 지원하는 쿼리의 종류 등과 같은 차이점이 있어 필요한 상황에 따라 구분하여 사용할 수 있다. Firestore의 경우 정렬 및 필터링 조건을 동시에 사용이 가능하지만, Realtime DB는 동시에 사용 불가능 지금.. 2023. 10. 21. 23:54
[TIL] Kotlin Firebase Storage 단일, 복수 이미지 넣고 불러오기 Topic = FIrebase Storage 통해 이미지 넣고 불러오기 + Metadata 간단한 개념 Why Firebase DB에 이미지를 저장하기 위해서 Storage를 사용하는 이유 - Firebase Realtime DB, Cloud Firestore에도 uri 값을 저장하는 방식과 Base64로 변환하는 등의 방식으로 이미지를 저장하고 불러올 수 있지만, DB에 이미지 파일을 포함할 경우 DB 용량 크기의 문제 등으로 DB 상호작용의 성능 저하를 일으키는 원인이 된다. Storage를 사용할 경우 얻는 이점은 다음과 같다. 용량이 큰 이미지 파일을 DB와 분리하여 관리함으로 DB의 성능 저하를 방지할 수 있다. FIrebase Storage는 CDN ( Content Delivery Netwo.. 2023. 10. 20. 20:14
[TIL] Kotlin Firebase - Realtime Database [ 2 ] 저장된 데이터Listener로 가져오기 Topic = Firebase Realtime DB에 저장된 데이터를 여러가지 방식으로 가져오는 방법 학습 Why - DB를 가져오기 위해 사용하는 Listener에 대해서 학습해보고 차이점을 확인하기 Realtime DB의 데이터를 가져올 때 사용하는 Listener ChildEventListener ChildEventListener 인터페이스를 구현하여 특정 경로의 하위 항목에 대한 변경 사항을 감지하여 Data를 가져올 수 있지만 단일 읽기 기능을 제공하지 않는다. 특정 경로 내에서 발생하는 개별 항목의 변경 사항만 감지하기 때문에 대규모 DB에서도 효율적으로 사용 가능. 리스트 형태의 데이터를 처리할 때 유용하다 ValueEventListener ValueEventListener 인터페이스를 구현.. 2023. 10. 19. 23:28
[TIL] Kotlin Firebase Authentication [ 2 ] - 회원가입 시 추가로 회원정보 DB에 넣어주기. Topic = Realtime DB에 회원가입한 회원 uid와 회원정보 저장해주기 회원가입 시 UID와 함께 회원정보를 저장하기 회원가입 시 해당 유저 UID와 함께 회원정보를 DB에 저장함으로 DB의 UID 값을 통해서 회원정보 적용 및 수정을 할 수 있게 된다. 이 외에도 유저 DB 정보를 확인해서 게시글 정보, 좋아요 기능 구현이 가능하다. 현재 진행중인 프로젝트 뿐만 아니라 유저 로그인이 가능한 웹에서는 인증 정보 뿐만 아니라 유저별 UID에 따른 DB 구현은 반드시 필요한 기능인 것 같다. Firebase Console Email, Password 를 통해 회원가입 할 수 있도록 Firebase Authentication 의 SIgn-In method 의 이메일 / 비밀번호 로그인 메소드를 사용.. 2023. 10. 19. 02:27
[TIL] Kotlin Firebase Dynamic Link ( 2025.08 Deprecated ) Topic = Firebase Dynamic Link 를 통해 공유, 초대링크 만들기 Why - Firebase Dynamic Link - 앱 설치 여부와 상관없이 여러 플랫폼에서 작동할 수 있는 앱 링크 Dynamic Link Dynamic Link란 Firebase에서 제공하는 기능으로 기존의 Deep Link의 단점과 문제들을 해결하여 대체제로 나온 Link 생성 기능이다. Deep Link는 링크에 대한 처리 로직을 개발자가 직접 구현해야 하는 반면, Dynamic Link는 링크 처리 로직을 Firebase SDK로 자동으로 처리할 수 있도록 할 수 있으며, 링크에 대한 메타 데이터를 설정하여 동적으로 Data 를 변경할 수 있으며 앱이 설치되지 않은 경우에도 웹 페이지로 리디렉션하는 기능도 지.. 2023. 10. 18. 23:59
[TIL] Kotlin Firebase - Realtime Database [ 1 ] Data 저장하기 Topic = Firebase의 Realtime DB를 사용해서 Data를 저장하고, 저장된 Data를 불러오기 Realtime Database Database 앱 개발에 있어서 Database는 사용자 정보, 콘텐츠 등 다양한 데이터를 저장하고 관리하기 위해 필요한 요소이다. Local DB는 앱 설정과 같이 중앙 데이터에서 저장할 필요가 없거나, Data의 일부를 캐싱하는 것과 오프라인 모드를 지원할 때 사용되어지고, 서버 DB는 사용자의 정보, 콘텐츠 등 다양한 데이터를 서버 DB, 즉 중앙 데이터에서 저장하고 관리하여 사용자로 하여금 데이터의 동시성을 제공하며 이로인해 사용자간의 실시간 상호작용이 가능토록 한다. Realtiem DB 로컬 DB만으로 게시글이나 채팅 등과 같이 다른 사용자의 Dat.. 2023. 10. 17. 23:58
[TIL] Kotlin Architecture Pattern ( MVC, MVP, MVVM ) Topic =  Architecture와 Architecture Pattern들의 개념    Why - Architecture 의 필요성 Architecture   Architecture란, 단어 뜻 그대로 건축 방식, 설계 방식으로 프로젝트 구조의 설계도이다. Architecture는 앱의 전반적인 구조와 흐름의 방향을 제시한다. 이는 일관된 코드작성을 통해 복잡성을 줄이고 유지보수성을 높일 수 있으며 테스트가 용이하고, 코드 재사용성과 확장성을 촉진하는 등 앱 전반적인 품질 향상에 큰 요건이 된다.  Architecture의 적용은 프로젝트 초기에 아키텍처 선택, 작성해야 할 코드의 양의 증가 등으로 오히려 복잡성을 키울 수 있지만, 특정 지점이 지나면 NoDesign보다 좋은 생산성을 보여줄 수 있.. 2023. 10. 16. 23:58
[Sub TIL] Kotlin onBackPressed() deprecated된 이유와 대체재 Topic = OnBackPressedDispatcher와 OnBackPressedCallBack 으로 뒤로가기 버튼 이벤트 정의 Why - onBackPressed 가 deprecated 된 이유와 대체 Android Studio 13 ( API Level 33 ) 부터 onBackPressed() 메소드가 deprecated 되었으며 2023년 12월 31일 이후로는 지원 되지 않는다고 한다. deprecated 된 이유로는 화면 제스쳐를 통한 앱 화면 전환 기능의 지원과, onBackPressed로는 앱의 특정 상태에 따라 다른 동작을 제어하기가 어려운 점으로 인해 deprecated 되었다. Android Studio의 onBackPressed()는 Fragment에서는 지원하지 않아 Fragme.. 2023. 10. 16. 08:38