<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <!-- Main pages -->
  <url>
    <loc>https://rookieand.vercel.app/</loc>
    <lastmod>2026-06-30</lastmod>
    <changefreq>monthly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://rookieand.vercel.app/posts</loc>
    <lastmod>2026-06-30</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>

  <!-- Frontend -->
  <url><loc>https://rookieand.vercel.app/posts/gem-query-param-builder</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/elastic-apm-rum</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/frontend-test-thoughts</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/robots-txt-noindex</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/react-use-sync-external-store-internals</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/react-use-sync-external-store</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/sse-react-event-registry</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/react-display-name</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/partial-pre-rendering</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/zustand-slice-form-builder</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/react-use-suspensed-query</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/react-query-mutation</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/nextjs-image-optimization</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/useeffect-after-paint</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/zero-runtime-vanilla-extract</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/react-query-use-error-boundary</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/react-error-boundary</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/edge-runtime-internals</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/custom-event-observer</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/pointer-event</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/mz2mo-circular-progress-bar</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/react-key-props</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/react-windowing</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/react-state-usestate</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/react-18-auto-batching</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/useeffect-vs-uselayouteffect</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/react-rendering</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/browser-parsing</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/how-browser-works</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/server-state-react-query</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/csr-ssr-spa-mpa</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/react-deep-dive-13-performance-tools</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/react-deep-dive-12-core-web-vitals</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/react-deep-dive-7-devtools</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/react-deep-dive-4-ssr-nextjs</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/react-deep-dive-3-hooks</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/react-deep-dive-2-2-lifecycle-memoization</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/react-deep-dive-2-1-jsx-fiber</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/react-deep-dive-1-js-fundamentals</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/covidkorea-status-project</loc><priority>0.7</priority></url>

  <!-- TypeScript -->
  <url><loc>https://rookieand.vercel.app/posts/typescript-indexed-access-type</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/typescript-isolated-declarations</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/typescript-duck-typing-excess-property-check</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/typescript-module-resolution</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/typescript-union-contravariance</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/typescript-enum</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/typescript-satisfies</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/effective-typescript-week-7</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/effective-typescript-week-5</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/effective-typescript-week-4</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/effective-typescript-week-3</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/effective-typescript-week-2</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/effective-typescript-week-1</loc><priority>0.7</priority></url>

  <!-- JavaScript -->
  <url><loc>https://rookieand.vercel.app/posts/promise-with-resolver</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/cjs-module-evaluation-pipeline</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/cjs-require-module-resolution</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/javascript-event-loop</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/javascript-execution-context</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/javascript-object-deep-dive</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/event-bubbling-capturing-delegation</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/for-loop-let-var</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/javascript-equality-comparison</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/javascript-iterable</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/js-new-feature-es2020</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/js-async-await</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/js-new-feature-es2016-17</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/js-set-map-weakset-weakmap</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/js-promise</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/js-class</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/js-symbol</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/js-enhanced-object-literal</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/js-spread-rest-operator</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/js-array-method</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/js-loop</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/js-destructuring</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/js-string-method</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/js-template-literal</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/js-default-function-parameter</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/js-arrow-function</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/js-var-const-let</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/js-logical-operations</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/js-variables-data-types</loc><priority>0.7</priority></url>

  <!-- Backend -->
  <url><loc>https://rookieand.vercel.app/posts/suites-nestjs-auto-mock-testing</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/suites-nestjs-auto-mock</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/tsjest-to-swcjest-migration</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/queue-delayed-job-bullmq-fix</loc><priority>0.7</priority></url>

  <!-- Architecture -->
  <url><loc>https://rookieand.vercel.app/posts/gem-abac-nestjs-1</loc><priority>0.8</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/gem-abac-nestjs-2</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/gem-abac-nestjs-3</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/casl-library-intro</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/casl-typescript-deep-dive</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/plop-code-generator</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/http-cookie-samesite</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/cors-deep-dive</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/glob-pattern</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/tdd-introduction</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/jest-functional-test</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/web-server-vs-was</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/mime-content-type</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/git-hook-husky</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/eslint-prettier</loc><priority>0.7</priority></url>

  <!-- Tooling -->
  <url><loc>https://rookieand.vercel.app/posts/native-esm-importmap</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/modulepreload-preload</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/pnpm-v11-docker-deploy-optimization</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/pnpm-v11-sqlite-usage</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/vite-code-splitting-bundle</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/module-federation</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/how-bundler-works</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/turborepo-task-configuration</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/changesets-monorepo-versioning</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/gemc-monorepo-cli</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/turborepo-remote-cache-self-hosted</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/pnpm-dependency-deep-dive</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/pnpm-catalog</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/hard-link-symbolic-link</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/turbo-prune-monorepo</loc><priority>0.7</priority></url>

  <!-- DB / Infra -->
  <url><loc>https://rookieand.vercel.app/posts/gem-form-elastic-apm-rum</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/valkey-hash-key-expiration</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/mongoose-connection-internals</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/docker-kubernetes-ch1</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/docker-kubernetes-ch2</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/docker-kubernetes-ch2-2</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/docker-kubernetes-ch4</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/docker-compose-basics</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/mongodb-primary-election</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/mongodb-transaction-log</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/nestjs-docker-image-optimization</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/github-actions-docker-deploy</loc><priority>0.7</priority></url>

  <!-- Retrospective -->
  <url><loc>https://rookieand.vercel.app/posts/retrospective-2025-1h</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/theo-conference-3rd</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/retrospective-2024-1h</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/devmalsami-release</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/theo-sprint-17th</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/retrospective-2024</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/retrospective-2023</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/nexters-24th</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/retrospective-2023-1h</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/joining-company-4months</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/theo-sprint-15th</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/kb-software-competition</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/theo-sprint-14th</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/ict-internship-2023</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/joining-company-2weeks</loc><priority>0.7</priority></url>
  <url><loc>https://rookieand.vercel.app/posts/retrospective-2022</loc><priority>0.7</priority></url>

</urlset>
