<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://geminikim.com/</loc></url><url><loc>https://geminikim.com/about/</loc></url><url><loc>https://geminikim.com/articles/</loc></url><url><loc>https://geminikim.com/articles/assign-cross-domain-actions-by-ownership/</loc></url><url><loc>https://geminikim.com/articles/authorization-without-redundant-reads/</loc></url><url><loc>https://geminikim.com/articles/choose-enums-or-code-tables-by-change-rate/</loc></url><url><loc>https://geminikim.com/articles/choose-foreign-keys-for-operational-reality/</loc></url><url><loc>https://geminikim.com/articles/choose-hexagonal-architecture-for-a-reason/</loc></url><url><loc>https://geminikim.com/articles/circuit-breaker-placement/</loc></url><url><loc>https://geminikim.com/articles/cohesive-packages-with-modules-and-layers/</loc></url><url><loc>https://geminikim.com/articles/compose-my-page-data-without-a-my-domain/</loc></url><url><loc>https://geminikim.com/articles/contain-messy-code-at-system-boundaries/</loc></url><url><loc>https://geminikim.com/articles/core-ownership-and-surrogate-keys/</loc></url><url><loc>https://geminikim.com/articles/decouple-ui-from-domain-models/</loc></url><url><loc>https://geminikim.com/articles/define-and-enforce-layering-rules/</loc></url><url><loc>https://geminikim.com/articles/define-problems-from-user-perspective/</loc></url><url><loc>https://geminikim.com/articles/delay-common-modules-until-boundaries-are-clear/</loc></url><url><loc>https://geminikim.com/articles/design-apis-for-clarity-not-rest-purity/</loc></url><url><loc>https://geminikim.com/articles/design-immutable-records-with-append-only-data/</loc></url><url><loc>https://geminikim.com/articles/design-provider-identity-and-auth-boundaries/</loc></url><url><loc>https://geminikim.com/articles/developer-career-lessons-from-failure/</loc></url><url><loc>https://geminikim.com/articles/discover-domain-concepts-in-everyday-artifacts/</loc></url><url><loc>https://geminikim.com/articles/domain-maturity-and-module-boundaries/</loc></url><url><loc>https://geminikim.com/articles/dto-boundaries-between-layers/</loc></url><url><loc>https://geminikim.com/articles/earn-trust-before-changing-a-new-team/</loc></url><url><loc>https://geminikim.com/articles/entering-a-frozen-junior-developer-market/</loc></url><url><loc>https://geminikim.com/articles/experience-over-development-jargon/</loc></url><url><loc>https://geminikim.com/articles/fix-domain-boundaries-before-circular-dependencies/</loc></url><url><loc>https://geminikim.com/articles/frequent-dependency-upgrades/</loc></url><url><loc>https://geminikim.com/articles/gradle-dependency-boundaries/</loc></url><url><loc>https://geminikim.com/articles/grow-as-a-developer-through-varied-experience/</loc></url><url><loc>https://geminikim.com/articles/grow-software-in-stages/</loc></url><url><loc>https://geminikim.com/articles/high-traffic-experience-without-traffic/</loc></url><url><loc>https://geminikim.com/articles/idempotent-ai-tool-calls/</loc></url><url><loc>https://geminikim.com/articles/interfaces-after-concrete-design/</loc></url><url><loc>https://geminikim.com/articles/isolate-admin-from-domain/</loc></url><url><loc>https://geminikim.com/articles/jpa-domain-modeling-without-association-overload/</loc></url><url><loc>https://geminikim.com/articles/keep-domain-enums-in-the-domain-module/</loc></url><url><loc>https://geminikim.com/articles/keep-test-convenience-from-distorting-production-code/</loc></url><url><loc>https://geminikim.com/articles/kotlin-jpa-new-entity-id-strategies/</loc></url><url><loc>https://geminikim.com/articles/learn-computer-science-through-engineering-work/</loc></url><url><loc>https://geminikim.com/articles/legacy-modernization-and-cache-operations/</loc></url><url><loc>https://geminikim.com/articles/measure-before-replacing-outbox-polling/</loc></url><url><loc>https://geminikim.com/articles/model-guest-and-member-reaction-state/</loc></url><url><loc>https://geminikim.com/articles/model-reactions-for-requirements-and-scale/</loc></url><url><loc>https://geminikim.com/articles/modules-layers-and-architecture/</loc></url><url><loc>https://geminikim.com/articles/move-from-si-to-product-development/</loc></url><url><loc>https://geminikim.com/articles/my-page-is-not-a-domain/</loc></url><url><loc>https://geminikim.com/articles/name-readers-finders-and-searchers-by-behavior/</loc></url><url><loc>https://geminikim.com/articles/normalization-from-requirements/</loc></url><url><loc>https://geminikim.com/articles/operate-toy-project-for-real-users/</loc></url><url><loc>https://geminikim.com/articles/performance-tests-from-traffic-and-failure-models/</loc></url><url><loc>https://geminikim.com/articles/persuade-with-small-prototypes-and-evidence/</loc></url><url><loc>https://geminikim.com/articles/place-cross-domain-work-by-business-ownership/</loc></url><url><loc>https://geminikim.com/articles/practical-git-commit-branch-rules/</loc></url><url><loc>https://geminikim.com/articles/premature-multi-module-complexity/</loc></url><url><loc>https://geminikim.com/articles/publish-events-where-business-flow-is-visible/</loc></url><url><loc>https://geminikim.com/articles/rank-domain-concepts-to-focus-design/</loc></url><url><loc>https://geminikim.com/articles/reader-writer-business-flow/</loc></url><url><loc>https://geminikim.com/articles/rebuild-first-migrate-second/</loc></url><url><loc>https://geminikim.com/articles/reliable-database-tests-with-testcontainers/</loc></url><url><loc>https://geminikim.com/articles/reuse-below-use-case-layer/</loc></url><url><loc>https://geminikim.com/articles/reversible-design-against-overengineering/</loc></url><url><loc>https://geminikim.com/articles/separate-api-requests-from-domain-models/</loc></url><url><loc>https://geminikim.com/articles/separate-data-access-by-domain-boundary/</loc></url><url><loc>https://geminikim.com/articles/separate-query-models-from-operational-tables/</loc></url><url><loc>https://geminikim.com/articles/separate-runnable-apps-by-operational-role/</loc></url><url><loc>https://geminikim.com/articles/separate-shared-and-personalized-cache-state/</loc></url><url><loc>https://geminikim.com/articles/software-is-not-done-until-deployed/</loc></url><url><loc>https://geminikim.com/articles/software-that-survives-developer-departure/</loc></url><url><loc>https://geminikim.com/articles/split-client-server-responsibility-by-change-cost/</loc></url><url><loc>https://geminikim.com/articles/split-large-service-class/</loc></url><url><loc>https://geminikim.com/articles/split-large-service-classes-by-responsibility/</loc></url><url><loc>https://geminikim.com/articles/start-tests-then-refactor-them/</loc></url><url><loc>https://geminikim.com/articles/timeouts-retries-and-failure-propagation/</loc></url><url><loc>https://geminikim.com/articles/trace-id-across-distributed-services/</loc></url><url><loc>https://geminikim.com/articles/track-database-changes-with-releases/</loc></url><url><loc>https://geminikim.com/articles/turn-production-incidents-into-shared-domain-knowledge/</loc></url><url><loc>https://geminikim.com/articles/unit-tests-protect-business-intent/</loc></url><url><loc>https://geminikim.com/articles/use-reader-writer-patterns-as-options-not-rules/</loc></url><url><loc>https://geminikim.com/articles/validate-at-boundaries-keep-core-flows-simple/</loc></url><url><loc>https://geminikim.com/ko/</loc></url><url><loc>https://geminikim.com/ko/about/</loc></url><url><loc>https://geminikim.com/ko/articles/</loc></url><url><loc>https://geminikim.com/ko/articles/assign-cross-domain-actions-by-ownership/</loc></url><url><loc>https://geminikim.com/ko/articles/authorization-without-redundant-reads/</loc></url><url><loc>https://geminikim.com/ko/articles/choose-enums-or-code-tables-by-change-rate/</loc></url><url><loc>https://geminikim.com/ko/articles/choose-foreign-keys-for-operational-reality/</loc></url><url><loc>https://geminikim.com/ko/articles/choose-hexagonal-architecture-for-a-reason/</loc></url><url><loc>https://geminikim.com/ko/articles/circuit-breaker-placement/</loc></url><url><loc>https://geminikim.com/ko/articles/cohesive-packages-with-modules-and-layers/</loc></url><url><loc>https://geminikim.com/ko/articles/compose-my-page-data-without-a-my-domain/</loc></url><url><loc>https://geminikim.com/ko/articles/contain-messy-code-at-system-boundaries/</loc></url><url><loc>https://geminikim.com/ko/articles/core-ownership-and-surrogate-keys/</loc></url><url><loc>https://geminikim.com/ko/articles/decouple-ui-from-domain-models/</loc></url><url><loc>https://geminikim.com/ko/articles/define-and-enforce-layering-rules/</loc></url><url><loc>https://geminikim.com/ko/articles/define-problems-from-user-perspective/</loc></url><url><loc>https://geminikim.com/ko/articles/delay-common-modules-until-boundaries-are-clear/</loc></url><url><loc>https://geminikim.com/ko/articles/design-apis-for-clarity-not-rest-purity/</loc></url><url><loc>https://geminikim.com/ko/articles/design-immutable-records-with-append-only-data/</loc></url><url><loc>https://geminikim.com/ko/articles/design-provider-identity-and-auth-boundaries/</loc></url><url><loc>https://geminikim.com/ko/articles/developer-career-lessons-from-failure/</loc></url><url><loc>https://geminikim.com/ko/articles/discover-domain-concepts-in-everyday-artifacts/</loc></url><url><loc>https://geminikim.com/ko/articles/domain-maturity-and-module-boundaries/</loc></url><url><loc>https://geminikim.com/ko/articles/dto-boundaries-between-layers/</loc></url><url><loc>https://geminikim.com/ko/articles/earn-trust-before-changing-a-new-team/</loc></url><url><loc>https://geminikim.com/ko/articles/entering-a-frozen-junior-developer-market/</loc></url><url><loc>https://geminikim.com/ko/articles/experience-over-development-jargon/</loc></url><url><loc>https://geminikim.com/ko/articles/fix-domain-boundaries-before-circular-dependencies/</loc></url><url><loc>https://geminikim.com/ko/articles/frequent-dependency-upgrades/</loc></url><url><loc>https://geminikim.com/ko/articles/gradle-dependency-boundaries/</loc></url><url><loc>https://geminikim.com/ko/articles/grow-as-a-developer-through-varied-experience/</loc></url><url><loc>https://geminikim.com/ko/articles/grow-software-in-stages/</loc></url><url><loc>https://geminikim.com/ko/articles/high-traffic-experience-without-traffic/</loc></url><url><loc>https://geminikim.com/ko/articles/idempotent-ai-tool-calls/</loc></url><url><loc>https://geminikim.com/ko/articles/interfaces-after-concrete-design/</loc></url><url><loc>https://geminikim.com/ko/articles/isolate-admin-from-domain/</loc></url><url><loc>https://geminikim.com/ko/articles/jpa-domain-modeling-without-association-overload/</loc></url><url><loc>https://geminikim.com/ko/articles/keep-domain-enums-in-the-domain-module/</loc></url><url><loc>https://geminikim.com/ko/articles/keep-test-convenience-from-distorting-production-code/</loc></url><url><loc>https://geminikim.com/ko/articles/kotlin-jpa-new-entity-id-strategies/</loc></url><url><loc>https://geminikim.com/ko/articles/learn-computer-science-through-engineering-work/</loc></url><url><loc>https://geminikim.com/ko/articles/legacy-modernization-and-cache-operations/</loc></url><url><loc>https://geminikim.com/ko/articles/measure-before-replacing-outbox-polling/</loc></url><url><loc>https://geminikim.com/ko/articles/model-guest-and-member-reaction-state/</loc></url><url><loc>https://geminikim.com/ko/articles/model-reactions-for-requirements-and-scale/</loc></url><url><loc>https://geminikim.com/ko/articles/modules-layers-and-architecture/</loc></url><url><loc>https://geminikim.com/ko/articles/move-from-si-to-product-development/</loc></url><url><loc>https://geminikim.com/ko/articles/my-page-is-not-a-domain/</loc></url><url><loc>https://geminikim.com/ko/articles/name-readers-finders-and-searchers-by-behavior/</loc></url><url><loc>https://geminikim.com/ko/articles/normalization-from-requirements/</loc></url><url><loc>https://geminikim.com/ko/articles/operate-toy-project-for-real-users/</loc></url><url><loc>https://geminikim.com/ko/articles/performance-tests-from-traffic-and-failure-models/</loc></url><url><loc>https://geminikim.com/ko/articles/persuade-with-small-prototypes-and-evidence/</loc></url><url><loc>https://geminikim.com/ko/articles/place-cross-domain-work-by-business-ownership/</loc></url><url><loc>https://geminikim.com/ko/articles/practical-git-commit-branch-rules/</loc></url><url><loc>https://geminikim.com/ko/articles/premature-multi-module-complexity/</loc></url><url><loc>https://geminikim.com/ko/articles/publish-events-where-business-flow-is-visible/</loc></url><url><loc>https://geminikim.com/ko/articles/rank-domain-concepts-to-focus-design/</loc></url><url><loc>https://geminikim.com/ko/articles/reader-writer-business-flow/</loc></url><url><loc>https://geminikim.com/ko/articles/rebuild-first-migrate-second/</loc></url><url><loc>https://geminikim.com/ko/articles/reliable-database-tests-with-testcontainers/</loc></url><url><loc>https://geminikim.com/ko/articles/reuse-below-use-case-layer/</loc></url><url><loc>https://geminikim.com/ko/articles/reversible-design-against-overengineering/</loc></url><url><loc>https://geminikim.com/ko/articles/separate-api-requests-from-domain-models/</loc></url><url><loc>https://geminikim.com/ko/articles/separate-data-access-by-domain-boundary/</loc></url><url><loc>https://geminikim.com/ko/articles/separate-query-models-from-operational-tables/</loc></url><url><loc>https://geminikim.com/ko/articles/separate-runnable-apps-by-operational-role/</loc></url><url><loc>https://geminikim.com/ko/articles/separate-shared-and-personalized-cache-state/</loc></url><url><loc>https://geminikim.com/ko/articles/software-is-not-done-until-deployed/</loc></url><url><loc>https://geminikim.com/ko/articles/software-that-survives-developer-departure/</loc></url><url><loc>https://geminikim.com/ko/articles/split-client-server-responsibility-by-change-cost/</loc></url><url><loc>https://geminikim.com/ko/articles/split-large-service-class/</loc></url><url><loc>https://geminikim.com/ko/articles/split-large-service-classes-by-responsibility/</loc></url><url><loc>https://geminikim.com/ko/articles/start-tests-then-refactor-them/</loc></url><url><loc>https://geminikim.com/ko/articles/timeouts-retries-and-failure-propagation/</loc></url><url><loc>https://geminikim.com/ko/articles/trace-id-across-distributed-services/</loc></url><url><loc>https://geminikim.com/ko/articles/track-database-changes-with-releases/</loc></url><url><loc>https://geminikim.com/ko/articles/turn-production-incidents-into-shared-domain-knowledge/</loc></url><url><loc>https://geminikim.com/ko/articles/unit-tests-protect-business-intent/</loc></url><url><loc>https://geminikim.com/ko/articles/use-reader-writer-patterns-as-options-not-rules/</loc></url><url><loc>https://geminikim.com/ko/articles/validate-at-boundaries-keep-core-flows-simple/</loc></url><url><loc>https://geminikim.com/ko/tags/</loc></url><url><loc>https://geminikim.com/ko/tags/api-design/</loc></url><url><loc>https://geminikim.com/ko/tags/architecture/</loc></url><url><loc>https://geminikim.com/ko/tags/backend/</loc></url><url><loc>https://geminikim.com/ko/tags/career-learning/</loc></url><url><loc>https://geminikim.com/ko/tags/collaboration/</loc></url><url><loc>https://geminikim.com/ko/tags/data/</loc></url><url><loc>https://geminikim.com/ko/tags/delivery/</loc></url><url><loc>https://geminikim.com/ko/tags/domain-modeling/</loc></url><url><loc>https://geminikim.com/ko/tags/performance/</loc></url><url><loc>https://geminikim.com/ko/tags/reliability-operations/</loc></url><url><loc>https://geminikim.com/ko/tags/testing-quality/</loc></url><url><loc>https://geminikim.com/tags/</loc></url><url><loc>https://geminikim.com/tags/api-design/</loc></url><url><loc>https://geminikim.com/tags/architecture/</loc></url><url><loc>https://geminikim.com/tags/backend/</loc></url><url><loc>https://geminikim.com/tags/career-learning/</loc></url><url><loc>https://geminikim.com/tags/collaboration/</loc></url><url><loc>https://geminikim.com/tags/data/</loc></url><url><loc>https://geminikim.com/tags/delivery/</loc></url><url><loc>https://geminikim.com/tags/domain-modeling/</loc></url><url><loc>https://geminikim.com/tags/performance/</loc></url><url><loc>https://geminikim.com/tags/reliability-operations/</loc></url><url><loc>https://geminikim.com/tags/testing-quality/</loc></url></urlset>