Mobil Uygulamalarda Kullanıcı Verilerinin Depolanması

Mobil uygulamalar, kullanıcı verilerini hem cihaz üzerinde yerel olarak hem de uzak sunucularda/bulut ortamlarında depolayarak işlevselliklerini sürdürürler. Özellikle arkadaşlık uygulamaları gibi yoğun kullanıcı etkileşimi ve medya içeriği barındıran platformlar, verilerin güvenli ve erişilebilir bir şekilde saklanması için karmaşık altyapılar kullanır.

1. Veri Türleri ve Depolama Yaklaşımları

Mobil uygulamalar tarafından depolanan veriler genellikle iki ana kategoriye ayrılır: yerel depolama ve uzak depolama. Her bir kategori, farklı veri türleri ve kullanım senaryoları için optimize edilmiş çeşitli teknolojileri barındırır.

1.1. Yerel Depolama (Cihaz Üzerinde)

Uygulama, kullanıcının cihazında küçük boyutlu ve sık erişilen verileri yerel olarak saklar. Bu tür veriler genellikle kullanıcı deneyimini hızlandırmak ve çevrimdışı erişim sağlamak amacıyla kullanılır. Örnek olarak, kullanıcı tercihleri, oturum bilgileri (tokenlar) ve uygulama ayarları verilebilir. Bu verilerin depolanması için Android tarafında SharedPreferences ve Room DB (SQLite tabanlı), iOS tarafında ise UserDefaults gibi teknolojiler kullanılır. Ayrıca, uygulamalar hız ve performans artışı için sıkça erişilen görselleri veya diğer içerikleri cihaz üzerinde önbelleğe (cache) alabilirler. Bu önbellek verileri genellikle geçicidir ve depolama alanı ihtiyacına göre silinebilir.

1.2. Uzak Sunucu / Bulut Depolama (Backend)

Arkadaşlık uygulamaları gibi platformlar, kullanıcı verilerinin büyük bir çoğunluğunu (%90’ından fazlasını) uzak sunucularda veya bulut tabanlı hizmetlerde saklar. Bu yaklaşım, verilere farklı cihazlardan erişim, veri bütünlüğü, ölçeklenebilirlik ve güvenlik gibi avantajlar sunar. Uzak depolama, yapılandırılmış veriler ve büyük dosyalar olmak üzere iki ana bileşene ayrılır.

1.2.1. Yapılandırılmış Veriler (Metinler)

Kullanıcı adı, yaş, biyografi, mesaj içerikleri, eşleşme bilgileri gibi metin tabanlı ve yapılandırılmış veriler, genellikle ilişkisel (SQL) veya ilişkisel olmayan (NoSQL) veritabanlarında saklanır. Popüler teknolojiler arasında MySQL, PostgreSQL (ilişkisel veritabanları), MongoDB, Firebase Firestore ve AWS DynamoDB (NoSQL veritabanları) bulunmaktadır. Bu veritabanları, kullanıcı profillerini, etkileşimlerini ve diğer uygulama içi bilgileri düzenli bir şekilde tutar.

1.2.2. Büyük Dosyalar (Medya)

Kullanıcıların yüklediği fotoğraflar, videolar, sesli mesajlar gibi büyük boyutlu medya dosyaları, özel olarak tasarlanmış nesne depolama (object storage) hizmetlerinde saklanır. Bu hizmetler, yüksek ölçeklenebilirlik, dayanıklılık ve maliyet etkinliği sunar. En yaygın kullanılan hizmetler arasında Amazon S3 (Simple Storage Service), Google Cloud Storage, Firebase Storage ve Azure Blob Storage yer alır. Bu sistemlerde, medya dosyası sunucuya yüklendiğinde, dosyanın kendisi depolama hizmetine kaydedilir ve bu hizmet, dosyaya erişim için benzersiz bir URL (bağlantı) oluşturur. Bu URL daha sonra kullanıcının profil bilgileriyle birlikte yapılandırılmış veri tabanında saklanır. Böylece, uygulama bir fotoğrafı göstermek istediğinde, veritabanından ilgili URL’yi çeker ve doğrudan nesne depolama hizmetinden medya dosyasını yükler.

2. Web Sitesi Hosting ve Mobil Uygulama Backend Farkı

Web siteleri ve mobil uygulamalar arasındaki veri depolama altyapısı benzerlikler gösterse de, temel farklılıklar mevcuttur. Bir web sitesi genellikle bir “web sunucusu” (Apache, Nginx) üzerinde HTML, CSS ve JavaScript dosyalarını barındırır ve bir veritabanı ile etkileşime girer. Mobil uygulamalar ise, uygulamanın kendisi (APK veya IPA dosyası) kullanıcının cihazında yüklü olsa da, verileri çekmek ve işlemek için bir API (Uygulama Programlama Arayüzü) aracılığıyla uzak bir sunucuya bağlanır. Bu uzak sunucu altyapısına genellikle “Backend” veya “Bulut Altyapısı” denir. “Hosting” terimi web siteleri için daha yaygınken, mobil uygulamalar için Backend-as-a-Service (BaaS) veya Platform-as-a-Service (PaaS) gibi bulut tabanlı hizmetler daha sık kullanılır.

3. Arkadaşlık Uygulamalarında Veri Depolama Mimarisi Örneği

Bir arkadaşlık uygulamasını ele alırsak, veri depolama mimarisi genellikle aşağıdaki gibi işler:
Fotoğraflar: Kullanıcı bir fotoğraf yüklediğinde, bu fotoğraf doğrudan Amazon S3, Google Cloud Storage veya Firebase Storage gibi bir nesne depolama hizmetine gönderilir. Bu hizmet, fotoğraf için bir URL oluşturur.
Profil Bilgileri: Kullanıcının adı, yaşı, biyografisi, ilgi alanları ve fotoğraf URL’si gibi yapılandırılmış bilgiler, bir NoSQL (örneğin MongoDB, Firebase Firestore) veya SQL (örneğin PostgreSQL) veritabanında saklanır.
Mesajlar: Kullanıcılar arasındaki mesajlaşma içerikleri genellikle gerçek zamanlı veritabanlarında (örneğin Firebase Realtime Database, AWS DynamoDB) veya mesaj kuyruk sistemleri (örneğin Apache Kafka) ile entegre edilmiş veritabanlarında tutulur.
Konum Verileri: Gerçek zamanlı konum verileri, coğrafi indeksleme yeteneklerine sahip özel veritabanlarında (örneğin Redis’in coğrafi modülleri, PostGIS uzantılı PostgreSQL) işlenir ve saklanır. Bu, yakındaki kullanıcıları bulma gibi özellikler için kritik öneme sahiptir.
Bu mimari, uygulamanın yüksek performans, ölçeklenebilirlik ve veri güvenliği sağlamasına olanak tanır. Kullanıcı verileri, farklı hizmetler arasında dağıtılmış olsa da, birbiriyle entegre bir sistem içinde yönetilir.