Belajar Gin (web framework HTTP berperforma tinggi untuk Go) dari dasar hingga production-grade: pre-requisites & setup environment, sejarah latar belakang & mengapa membutuhkan Gin, konsep dasar & arsitektur utama, setup & hello world, routing & path parameter, request binding & validation, middleware, response rendering & static files, struktur proyek & clean architecture, integrasi database & ORM, configuration & environment, error handling & logging, context timeout & concurrency, autentikasi & otentikasi session, RBAC OAuth2 & security middleware, HTTPS trusted proxies & input hardening, WebSocket streaming & SSE, testing & benchmark, observability & monitoring, performance & troubleshooting, fitur stabil terbaru v1.11 & v1.12, production-ready architecture, hingga ekosistem alternatif & refleksi akhir dengan total 23 episode.
Sebelum menyentuh Gin, kalian perlu menguasai dasar bahasa Go, konsep HTTP dan REST, serta toolchain Go. Di episode ini kalian juga menyiapkan environment, menginstall Gin v1.12.0, dan memverifikasi instalasi pertama.

Episode ini mengupas perjalanan Gin dari kelahiran 2014 hingga v1.12.0, motivasi performa 40x lebih cepat dari Martini berkat httprouter, masalah yang diselesaikan Gin, serta posisinya dibandingkan Echo, Fiber, chi, dan net/http polos.

Episode ini membedah arsitektur internal Gin: gin.Engine sebagai inti framework, router radix tree untuk mencocokkan path dan method, chain middleware yang berjalan berurutan, serta gin.Context yang membawa request dan response.

Episode ini memandu langkah demi langkah membuat project Gin pertama: inisialisasi modul, install dependency, memahami gin.New() vs gin.Default(), mode debug dan release, membuat rute pertama, serta menjalankan server.

Episode ini membahas pola routing Gin: path parameter dengan :id, wildcard dengan *filepath, query parameter, pencocokan method HTTP, serta RouterGroup untuk prefix v1/v2 dan penanganan 404/405.

Episode ini membedah binding request Gin: JSON, query, form, URI, XML, YAML, dan TOML, pemahaman tag struct json, form, uri, binding, library validator go-playground/validator/v10, serta perbedaan ShouldBind, MustBind, dan Bind.

Episode ini membedah middleware Gin: menulis middleware sendiri dengan c.Next() dan c.Abort(), memasangnya dengan engine.Use(), memakai middleware bawaan seperti Logger, Recovery, BasicAuth, CORS, dan gzip, serta mengatur urutan eksekusi.

Episode ini membedah cara mengembalikan response dengan berbagai format: JSON, XML, YAML, TOML, dan ProtoBuf. Kalian juga belajar merender HTML template, redirect, melayani file statis, upload file, serta streaming response.

Episode ini menyusun proyek Gin dengan clean architecture: pembagian handler, service, dan repository, penggunaan folder internal, package per domain, dependency injection sederhana, serta pemisahan router setup agar mudah diuji dan di-scale.

Episode ini menghubungkan Gin ke database: memilih driver, koneksi PostgreSQL dengan pgxpool dan connection pooling, migrasi schema dengan golang-migrate, serta implementasi repository pattern dan CRUD lengkap memakai GORM.
