11.04.2024 • waktu baca 3 menit

Mengungkap Fondasi Menyelami Esensi Backend Engineering!

Cover Image

Pendahuluan

Setelah bikin aplikasi backend CRUD sederhana dan melewati masa-masa “wow ini seru banget”, jujur aja, saya masih sering bingung kalau denger istilah kayak Distributed Systems. Udah coba Googling dan nonton berbagai tutorial, tapi konsep-konsep kayak kenapa Kafka atau RabbitMQ itu penting, apa itu Microservices, dan alasan gRPC sering dipakai di arsitektur itu… masih suka bikin kening berkerut.

# nggak sepenuhnya bener!
backend_development == the_framework

Pemahaman saya dulu soal backend engineering

Dulu saya pikir backend itu ya cuma soal framework. Dan saya yakin banyak developer baru yang juga mikir kayak gitu. Kalau cari “Belajar Backend Development” di YouTube atau Udemy, hasilnya kebanyakan:

  • “Belajar Backend Development dengan Django”
  • “Mastering Node.js Backend Development”
  • “Kursus Lengkap Backend Development Spring Boot”

Nggak heran kalau gambaran besarnya susah kebentuk, karena fokusnya kebanyakan di satu teknologi. Padahal, backend itu jauh lebih luas dari sekadar nguasain satu bahasa atau framework.

Untungnya, ada juga orang-orang di komunitas yang mau bahas hal ini secara mendalam, dan dari mereka saya mulai dapat pencerahan.


Pemahaman saya sekarang

Backend engineering ternyata isinya banyak banget komponen penting yang bikin sebuah sistem bisa jalan mulus. Kita ngomongin mulai dari cara data mengalir antara client dan server, gimana nyimpen data di database secara aman, sampai menjaga keamanan sistem. Plus, ada juga tools-tools yang bisa bikin performa sistem makin kenceng dan development lebih gampang.

Beberapa hal yang sekarang saya pelajari dan bakal terus saya dalami:

  • Protokol Komunikasi – Atur gimana data bolak-balik antara client dan server (contoh: HTTP buat browsing, WebSocket buat real-time).
  • Web Server – Nanganin request, nyajikan konten, dan eksekusi logika backend.
  • Database – Tempat nyimpen dan ngambil data, baik yang relasional (tabel) maupun non-relasional (lebih fleksibel).
  • Proxy – Jadi perantara antara client dan server, bantu keamanan, caching, load balancing, dll.
  • Caching – Nyimpen data yang sering diakses biar loading-nya cepat.
  • Message Queue – Bikin komunikasi antar komponen sistem jadi asinkron dan nggak saling ganggu.
  • Web Framework – Memudahkan bikin aplikasi backend dengan komponen bawaan.
  • Keamanan – Dari enkripsi sampai autentikasi, semuanya demi backend yang aman.

Konsep inti backend engineering


Kenapa fondasi itu penting

Fokus ke konsep, bukan cuma framework atau bahasa. Alat itu bisa berganti, konsepnya tetap.

Pelajaran terbesar yang saya dapet: jangan nikah sama satu framework atau bahasa. Mending jadi framework/language-agnostic engineer, yang ngerti konsep dasarnya dan bisa adaptasi di teknologi apapun.

Contohnya, ngerti dulu apa itu concurrency atau asynchronous I/O sebelum nyemplung ke asyncio di Python atau Promise di JavaScript. Begitu juga dengan API — pahami dulu konsep REST, gRPC, atau GraphQL, baru kemudian belajar implementasinya.

Sayangnya, banyak developer baru langsung lompat ke teknologi, terus jadi ngerti sebatas sintaks. Masalahnya, pas bikin aplikasi yang kompleks atau debug yang tricky, mereka sering mentok. Apalagi kalau teknologinya udah ketinggalan zaman, konsepnya nggak ikut ke-refresh.

Saya sendiri pernah ngalamin hal unik: ngelamar jadi frontend developer, tapi malah keterima jadi backend developer, padahal pengalaman backend saya tipis banget. Kenapa bisa gitu? Karena saya nunjukin kalau…

Teknologi itu cuma alat. Yang penting tuh ide dan konsep di baliknya.


Sumber yang bener-bener ngebantu

  • Roadmap.sh – Kayak peta harta karun buat belajar backend.
  • Hussein Nasser – Penjelasannya enak, nyelam ke konsep tapi tetap gampang dicerna.
  • Amigos Code – Cocok buat yang main di Java/Spring, penjelasan simpel dan to the point.

Penutup

Ngulik backend itu nggak ada habisnya. Dari protokol komunikasi sampai keamanan, setiap konsep punya peran penting. Ke depan, saya mau bahas masing-masing topik ini lebih detail sambil bikin proyek nyata supaya pemahamannya makin nancep.

Stay tuned!