Full Stack Nedir?
Kısa tanım
Full stack, bir web uygulamasının ön yüzden (frontend) sunucu tarafına (backend), veritabanından yayına alma sürecine kadar tüm katmanlarını birlikte ifade eden terimdir. Full stack geliştirme, bir özelliği bu katmanların hepsine dokunarak uçtan uca hayata geçirebilmek anlamına gelir. Terim hem bu katmanları kapsayan teknoloji yığınını hem de bu genişlikte çalışan geliştirici rolünü anlatmak için kullanılır.
Diğer adları: Full-stack, Fullstack, Full Stack Geliştirme, Full Stack Developer, Tam Yığın

“Stack” kelimesi neyi anlatır?
Yazılımda “stack” (yığın), bir uygulamanın çalışması için üst üste konan teknolojilerin toplamıdır: işletim sistemi, web sunucusu, veritabanı, sunucu tarafı dil ve ön yüz kütüphanesi. Bazı yığınlar baş harfleriyle anılacak kadar yaygınlaşmıştır. LAMP Linux, Apache, MySQL ve PHP'den oluşur; MERN ise MongoDB, Express, React ve Node.js'ten. Bugün sık görülen bir başka kombinasyon, Next.js ile yazılmış bir uygulamanın PostgreSQL veritabanıyla birlikte container'larda çalıştırılmasıdır.
“Full” sıfatı bu yığının tamamını kapsamayı anlatır: kullanıcının gördüğü ön yüzden, iş kurallarının çalıştığı backend'e ve verinin tutulduğu katmana kadar.
Bir özelliği uçtan uca yazmak
Full stack yaklaşımın somut karşılığı, tek bir özelliği tüm katmanlarda tamamlayabilmektir. Bir sitenin e-bülten aboneliğini düşünün:
- Veritabanı: E-posta adresini tutacak tablo ve aynı adresin iki kez eklenmesini önleyen benzersizlik kısıtı.
- Backend: Adresi doğrulayan, kaydı oluşturan ve onay e-postasını kuyruğa bırakan bir uç nokta.
- Ön yüz: Erişilebilir bir form, gönderim sırasında yükleniyor durumu ve anlaşılır hata mesajları.
- Test ve yayın: Çift kayıt senaryosunu yakalayan bir test, yeni tablo için migration ve canlıya alma.
Bu işi tek kişi yaptığında katmanlar arasındaki el değiştirme ortadan kalkar; aynı iş iki ayrı ekip arasında bölündüğünde ise API sözleşmesinin önceden konuşulması gerekir.
Full stack geliştirici her konuda uzman değildir
Rolün en yaygın yanlış anlaşılması, full stack geliştiricinin tüm katmanlarda derin uzman olduğu varsayımıdır. Gerçekte bu profil genellikle “T” biçimindedir: bir alanda derinlik, diğerlerinde işi bağımsız yürütmeye yetecek kadar yetkinlik. Ön yüz kökenli bir full stack geliştirici veritabanı tasarımını çoğu zaman makul biçimde yapar; ancak yüksek trafikli bir sistemde sorgu planı analizi ya da replikasyon kurgusu bir veritabanı uzmanının işidir.
Full stack framework'ler
Bazı framework'ler tek bir projede hem sunucu hem istemci kodunu yazmaya izin verir: Ruby on Rails, Django ve Laravel uzun süredir bu işi sunucu tarafı şablonlarla yapıyor. Next.js gibi yeni nesil araçlar ise aynı bileşen ağacının bir kısmını sunucuda, bir kısmını tarayıcıda çalıştırarak katmanlar arasındaki sınırı daha da inceltir. Bu yaklaşım küçük ekiplerin hızını artırır; karşılığında hangi kodun hangi ortamda çalıştığını, dolayısıyla neyin tarayıcıya gönderildiğini dikkatle takip etmek gerekir.
Ne zaman full stack, ne zaman uzmanlaşma?
- Full stack güçlüdür: MVP ve erken aşama ürünlerde, küçük ekiplerde, katmanlar arasında sık değişen özelliklerde.
- Uzmanlaşma gerekir: Erişilebilirlik ve performans beklentisi yüksek, karmaşık arayüzlerde; yoğun veri işleyen ya da güvenlik gereksinimi sıkı sistemlerde; altyapının başlı başına bir iş hâline geldiği büyük ölçeklerde.
Pek çok ekip ikisini birleştirir: full stack çalışan geliştiriciler özellikleri uçtan uca taşır, belirli konularda uzmanlar inceleme ve rehberlik sağlar.

