# YAML (YAML Ain't Markup Language)

Adres: https://softwaredictionary.org/tr/terimler/yaml
Kategori: DevOps ve Bulut
Son güncelleme: 2026-09-30
Okunuşu: yemıl

Kısaca: YAML, parantez yerine girinti kullanan, insanın okuyabileceği bir veri biçimidir; DevOps araçlarında ve CI/CD pipeline'larında yapılandırma için yaygındır.

## YAML nedir?

YAML, ayarlar, listeler ve iç içe nesneler gibi yapılandırılmış verileri insanların kolayca okuyup düzenleyebileceği biçimde yazmaya yarayan bir metin biçimidir. Dosyalar `.yaml` ya da `.yml` uzantısını kullanır. Ad, YAML Ain't Markup Language ifadesinin özyinelemeli bir kısaltmasıdır ve belgeler için değil veriler için tasarlandığını vurgulamak üzere seçilmiştir; başlangıçta Yet Another Markup Language anlamına geliyordu.

YAML yapıyı göstermek için boşluklarla girinti kullanır; bu yüzden süslü parantez ya da kapanış etiketi yoktur ve sekme karakterlerine izin verilmez. Bir `key: value` çifti bir alan tanımlar, `- ` ile başlayan bir satır bir liste öğesi tanımlar ve satırları bir anahtarın altında girintilemek onları o anahtarın içine yerleştirir. Yorumlar `#` ile başlar ve tek bir dosya `---` ile ayrılmış birden çok belge barındırabilir.

YAML'ı DevOps'ta neredeyse her yerde bulursunuz: Kubernetes manifest'leri, Docker Compose dosyaları, CI/CD pipeline tanımları ve OpenAPI biçiminde yazılmış API açıklamaları. Onu düzgünce girintilenmiş bir taslak gibi düşünün; hangi ayrıntının hangi başlığa ait olduğunu yalnızca girinti söyler.

YAML sıklıkla JSON ile karşılaştırılır. YAML 1.2, JSON'un bir üst kümesi olarak tasarlanmıştır; bu yüzden geçerli hemen her JSON belgesi aynı zamanda geçerli bir YAML'dır, ancak YAML yorumlar ve daha az kalabalık bir sözdizimi ekler. Ödünleşim, esnekliğinin sizi şaşırtabilmesidir: yanlış bir girinti anlamı sessizce değiştirir ve tırnaksız `no` ya da `on` gibi değerler, eski YAML 1.1 kurallarını izleyen ayrıştırıcılar tarafından boolean olarak okunabilir; bu yüzden şüpheye düştüğünüzde string'leri tırnak içine alın.

## Önemli noktalar

- YAML, yapılandırılmış veri ve yapılandırma için insan tarafından okunabilir bir biçimdir.
- Yapıyı boşluklarla girinti tanımlar; sekmelere izin verilmez.
- JSON'un aksine `#` ile yorumları destekler.
- YAML 1.2, JSON'un üst kümesidir; bu yüzden JSON'un çoğu geçerli bir YAML'dır.
- Beklenmedik tür dönüşümlerinden kaçınmak için `no`, `yes` ya da `on` gibi belirsiz değerleri tırnak içine alın.

## Örnek: Küçük bir YAML yapılandırma dosyası

```yaml
# A simple service configuration
name: web-app
version: 2
debug: false

server:
  host: 0.0.0.0
  port: 8080

# A list of allowed origins
allowedOrigins:
  - https://example.com
  - https://admin.example.com
```

## Sık sorulan sorular

**.yaml ile .yml arasındaki fark nedir?**

İçerik açısından fark yoktur; her iki uzantı da bir YAML dosyası anlamına gelir. Resmi öneri `.yaml`'dır, ancak bazı eski sistemler dosya uzantılarını üç karakterle sınırladığı için `.yml` de yaygındır.

**YAML, JSON'dan daha mı iyidir?**

Hiçbiri kesin olarak daha iyi değildir. YAML insanlar için yazması daha kolaydır ve yorumları destekler, bu da onu yapılandırma için popüler kılar; JSON ise daha basit, daha katı ve ayrıştırması daha hızlıdır, bu da onu API'ler için olağan seçim yapar.

**YAML'da neden girinti hataları alıyorum?**

Yapıyı girinti tanımladığı için sekme ile boşlukları karıştırmak ya da tek bir satırı yanlış hizalamak anlamı bozar veya değiştirir. Yalnızca boşluk kullanın, girintiyi tutarlı tutun ve hataları erken yakalamak için bir YAML linter'ı ya da doğrulayıcısı çalıştırın.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
