JSON, YAML, and GraphQL each have different purposes and contexts, so it's important to understand their advantages and disadvantages.

JSON (JavaScript Object Notation)

What is it used for?

  • Web API (REST API)

  • Frontend-backend data communication

  • Configuration files (package.json, tsconfig.json, etc.)

Advantages

  • Versatility: Supported by almost all languages

  • Simple structure: Intuitive Key-Value format

  • Fast: Quick parsing speed (machine-friendly)

  • Easy debugging: Can view JSON directly in Chrome

Disadvantages

  • No comments: Cannot write explanations in configuration files

  • A bit rigid for human eyes: Large structures can be hard to read

  • Only data: No query functionality (compared to GraphQL)


YAML (YAML Ain't Markup Language)

What is it used for?

  • CI/CD configuration (.github/workflows/, GitLab, Jenkins)

  • Docker (docker-compose.yml)

  • Kubernetes (k8s manifest)

Advantages

  • Best readability: Indentation-based, easy on the eyes

  • Comments allowed: Can add explanations using #

  • Flexible structure representation: Good for lists and nested expressions