'use strict';

var fs = require('fs');
var path = require('path');
var url = require('url');

var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }

var fs__default = /*#__PURE__*/_interopDefault(fs);
var path__default = /*#__PURE__*/_interopDefault(path);

// src/platform/prompts/markdown-assets.ts
var PACKAGE_JSON_FILE_NAME = "package.json";
function findPackageRoot(moduleFilePath) {
  let currentDirectoryPath = path__default.default.dirname(moduleFilePath);
  while (!fs__default.default.existsSync(path__default.default.join(currentDirectoryPath, PACKAGE_JSON_FILE_NAME))) {
    const parentDirectoryPath = path__default.default.dirname(currentDirectoryPath);
    if (parentDirectoryPath === currentDirectoryPath) {
      throw new Error(`markdown \uC790\uC0B0 package root\uB97C \uCC3E\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4. start=${moduleFilePath}`);
    }
    currentDirectoryPath = parentDirectoryPath;
  }
  return currentDirectoryPath;
}
function resolvePromptPackageFilePath(importMetaUrl, packageRelativeFilePath) {
  const moduleFilePath = url.fileURLToPath(importMetaUrl);
  const packageRoot = findPackageRoot(moduleFilePath);
  return path__default.default.normalize(path__default.default.resolve(packageRoot, packageRelativeFilePath));
}
function createPromptMarkdownFileAsset(importMetaUrl, packageRelativeFilePath) {
  return {
    filePath: resolvePromptPackageFilePath(importMetaUrl, packageRelativeFilePath),
    kind: "file-reference"
  };
}

// src/platform/assets/rules/be/commit.md
var commit_default = '---\ndescription: \uD604\uC7AC \uBCC0\uACBD\uC0AC\uD56D\uC744 \uBC31\uC5D4\uB4DC \uCEE4\uBC0B \uCEE8\uBCA4\uC158\uC5D0 \uB9DE\uB294 \uBA54\uC2DC\uC9C0\uB85C \uC815\uB9AC\uD55C\uB2E4.\n---\n\n\uD604\uC7AC \uBCC0\uACBD\uC0AC\uD56D\uC744 \uBD84\uC11D\uD558\uACE0 \uBC31\uC5D4\uB4DC \uAC1C\uBC1C \uB9E5\uB77D\uC5D0 \uB9DE\uB294 \uD55C \uC904 \uCEE4\uBC0B \uBA54\uC2DC\uC9C0\uB97C \uC791\uC131\uD55C\uB2E4.\n\n## \uC791\uC5C5 \uC808\uCC28\n\n1. \uD504\uB86C\uD504\uD2B8\uC5D0 \uC81C\uACF5\uB41C \uBCC0\uACBD \uD30C\uC77C \uBAA9\uB85D\uACFC diff \uCC38\uC870\uB97C \uD655\uC778\uD55C\uB2E4.\n2. \uC2E0\uADDC \uD30C\uC77C\uC774 \uC788\uC73C\uBA74 \uD30C\uC77C \uB0B4\uC6A9\uC744 \uC5F4\uC5B4 \uBCC0\uACBD \uBAA9\uC801\uACFC \uB3C4\uBA54\uC778\uC744 \uD30C\uC545\uD55C\uB2E4.\n3. \uBC31\uC5D4\uB4DC \uBAA8\uB4C8, API, \uBC30\uCE58, \uC778\uD504\uB77C, \uACF5\uD1B5 \uB77C\uC774\uBE0C\uB7EC\uB9AC \uC911 \uC5B4\uB514\uC5D0 \uC18D\uD558\uB294 \uBCC0\uACBD\uC778\uC9C0 \uBA3C\uC800 \uD310\uB2E8\uD55C\uB2E4.\n4. \uC544\uB798 \uCEE8\uBCA4\uC158\uC5D0 \uB9DE\uB294 \uCEE4\uBC0B \uBA54\uC2DC\uC9C0\uB97C \uC791\uC131\uD55C\uB2E4.\n5. \uC2A4\uD14C\uC774\uC9D5\uACFC \uCEE4\uBC0B \uC2E4\uD589\uC740 `/commit` \uBA85\uB839 \uC2E4\uD589 \uD750\uB984\uC5D0 \uB9E1\uAE34\uB2E4.\n\n## \uCEE4\uBC0B \uCEE8\uBCA4\uC158\n\n```\n<\uD0C0\uC785>[\uBC94\uC704(\uC120\uD0DD)]: <\uC124\uBA85> [(SR \uBC88\uD638, \uC120\uD0DD)]\n```\n\n### \uD0C0\uC785\n\n| \uD0C0\uC785 | \uC124\uBA85 |\n|------|------|\n| `feat` | \uC0C8 \uAE30\uB2A5 \uCD94\uAC00 |\n| `fix` | \uBC84\uADF8 \uC218\uC815 |\n| `refactor` | \uAE30\uB2A5 \uBCC0\uACBD \uC5C6\uB294 \uAD6C\uC870 \uAC1C\uC120 |\n| `chore` | \uBE4C\uB4DC, \uC124\uC815, \uC758\uC874\uC131, \uC2A4\uD06C\uB9BD\uD2B8 \uBCC0\uACBD |\n| `docs` | \uBB38\uC11C \uC218\uC815 |\n| `perf` | \uC131\uB2A5 \uAC1C\uC120 |\n| `test` | \uD14C\uC2A4\uD2B8 \uCD94\uAC00 \uB610\uB294 \uC218\uC815 |\n| `style` | \uD3EC\uB9F7, \uACF5\uBC31 \uB4F1 \uBE44\uAE30\uB2A5 \uC2A4\uD0C0\uC77C \uBCC0\uACBD |\n\n### \uC608\uC2DC\n\n```bash\ngit commit -m "feat(contract-api): \uACC4\uC57D \uC0C1\uC138 \uC870\uD68C API \uCD94\uAC00"\ngit commit -m "fix(batch): \uB9CC\uAE30 \uC548\uB0B4 \uBC30\uCE58 \uC911\uBCF5 \uBC1C\uC1A1 \uBC29\uC9C0"\ngit commit -m "refactor(common): \uC608\uC678 \uBCC0\uD658 \uB85C\uC9C1 \uBD84\uB9AC"\n```\n\n## \uADDC\uCE59\n\n- \uC124\uBA85\uC740 \uD55C\uAD6D\uC5B4\uB85C \uC791\uC131\uD55C\uB2E4.\n- \uC124\uBA85\uC740 \uBA85\uB839\uD615\uC774 \uC544\uB2C8\uB77C \uC791\uC5C5 \uACB0\uACFC \uC911\uC2EC\uC758 \uC9E7\uC740 \uAD6C\uBB38\uC73C\uB85C \uC791\uC131\uD55C\uB2E4. (\uC608: `\uC608\uC678 \uCC98\uB9AC \uBCF4\uAC15`, `\uC870\uD68C \uC870\uAC74 \uAC80\uC99D \uCD94\uAC00`)\n- \uBC94\uC704\uB294 \uBC31\uC5D4\uB4DC \uB3C4\uBA54\uC778 \uB610\uB294 \uBAA8\uB4C8\uBA85\uC744 \uAC04\uACB0\uD558\uAC8C \uC791\uC131\uD55C\uB2E4. (\uC608: `contract-api`, `batch`, `common`, `auth`)\n- \uAE30\uC220\uBA85\uBCF4\uB2E4 \uC5C5\uBB34 \uB3C4\uBA54\uC778 \uBC94\uC704\uAC00 \uB354 \uBA85\uD655\uD558\uBA74 \uB3C4\uBA54\uC778\uC744 \uC6B0\uC120\uD55C\uB2E4.\n- breaking change\uB294 \uD0C0\uC785 \uB4A4\uC5D0 `!` \uB97C \uBD99\uC778\uB2E4.\n- SR \uBC88\uD638\uAC00 \uC788\uC73C\uBA74 \uC124\uBA85 \uC55E\uC5D0 `(SR-XXXXX)` \uB97C \uBD99\uC778\uB2E4.\n- \uCEE4\uBC0B \uBA54\uC2DC\uC9C0\uC5D0 AI \uC0AC\uC6A9 \uD754\uC801, \uB9AC\uBDF0 \uD754\uC801, \uBD88\uD544\uC694\uD55C \uBD80\uC5F0 \uC124\uBA85\uC744 \uB123\uC9C0 \uC54A\uB294\uB2E4.\n';

// src/platform/assets/rules/be/dsp-be-guide.md
var dsp_be_guide_default = '## \uBC31\uC5D4\uB4DC \uCF54\uB4DC \uB9AC\uBDF0 \uADDC\uCE59\n\n\uC774 \uBB38\uC11C\uB294 `[DSP-BE] \uAC1C\uBC1C \uAC00\uC774\uB4DC`\uC640 `NXL_\uAC1C\uBC1C\uD45C\uC900\uC815\uC758\uC11C(BE)_v1.6`\uC758 \uACF5\uD1B5 \uAE30\uC900\uC744 `ju-hong-e` \uB9AC\uBDF0 \uD504\uB86C\uD504\uD2B8\uC6A9\uC73C\uB85C \uC7AC\uAD6C\uC131\uD55C \uADDC\uCE59\uC774\uB2E4.\n\n\uBB38\uC11C \uAC04 \uCDA9\uB3CC\uC774 \uC788\uC73C\uBA74 \uC544\uB798 \uC6B0\uC120\uC21C\uC704\uB97C \uB530\uB978\uB2E4.\n\n1. \uD604\uC7AC \uD504\uB85C\uC81D\uD2B8 \uAD6C\uD604 \uACC4\uC57D\n2. `[DSP-BE] \uAC1C\uBC1C \uAC00\uC774\uB4DC`\n3. `NXL_\uAC1C\uBC1C\uD45C\uC900\uC815\uC758\uC11C(BE)`\n\n### \uC5B8\uC5B4\n\n- \uBAA8\uB4E0 \uB2F5\uBCC0\uC740 \uD55C\uAD6D\uC5B4\uB85C \uC791\uC131\uD55C\uB2E4.\n\n### \uB9AC\uBDF0 \uC6B0\uC120\uC21C\uC704\n\n- \uC544\uB798 \uC21C\uC11C\uB85C \uBB38\uC81C\uAC00 \uC788\uB294\uC9C0 \uBA3C\uC800 \uD655\uC778\uD55C\uB2E4.\n  1. \uACC4\uCE35 \uCC45\uC784 \uC704\uBC18\n  2. API \uACC4\uC57D \uC704\uBC18\n  3. \uC608\uC678/\uC751\uB2F5/\uD2B8\uB79C\uC7AD\uC158 \uC704\uBC18\n  4. \uAC1C\uC778\uC815\uBCF4/\uB85C\uADF8/\uBCF4\uC548 \uC704\uBC18\n  5. \uBA85\uBA85/\uD328\uD0A4\uC9C0/\uD3EC\uB9F7\uD305 \uC704\uBC18\n\n### \uC544\uD0A4\uD14D\uCC98 / \uACC4\uCE35 \uCC45\uC784\n\n- Controller\uB294 \uC694\uCCAD/\uC751\uB2F5 \uB9E4\uD551\uACFC \uC704\uC784\uB9CC \uB2F4\uB2F9\uD558\uACE0, \uBE44\uC988\uB2C8\uC2A4 \uB85C\uC9C1\uC744 \uC9C1\uC811 \uAD6C\uD604\uD558\uC9C0 \uC54A\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- Service\uB294 \uB2E8\uC77C \uCC45\uC784 \uC6D0\uCE59\uC744 \uC9C0\uD0A4\uBA70 \uBE44\uC988\uB2C8\uC2A4 \uD750\uB984\uACFC \uC870\uD569\uC744 \uB2F4\uB2F9\uD558\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- DTO\uB294 \uACC4\uCE35 \uAC04 \uC804\uB2EC \uAC1D\uCCB4\uB85C\uB9CC \uC0AC\uC6A9\uD558\uACE0, \uBE44\uC988\uB2C8\uC2A4 \uB85C\uC9C1\uC774\uB098 \uC601\uC18D\uC131 \uCC45\uC784\uC774 \uC11E\uC774\uC9C0 \uC54A\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- Entity\uB97C \uC678\uBD80 \uC751\uB2F5 \uBAA8\uB378\uB85C \uC9C1\uC811 \uB178\uCD9C\uD558\uC9C0 \uC54A\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- Repository\uB294 \uC601\uC18D\uC131 \uC811\uADFC \uCC45\uC784\uB9CC \uAC00\uC9C0\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uBCF5\uC7A1\uD55C \uCFFC\uB9AC \uB85C\uC9C1\uC774 Controller\uB098 Service\uC5D0 \uC9C1\uC811 \uBC15\uD600 \uC788\uC9C0 \uC54A\uC740\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n\n### \uD328\uD0A4\uC9C0 / \uBA85\uBA85 \uADDC\uCE59\n\n- \uD504\uB85C\uC81D\uD2B8/\uBAA8\uB4C8 \uBA85\uC774 \uC870\uC9C1 \uD45C\uC900 \uCF00\uBC25 \uD45C\uAE30\uBC95\uACFC \uD604\uC7AC \uC800\uC7A5\uC18C \uAD00\uB840\uB97C \uD06C\uAC8C \uBC97\uC5B4\uB098\uC9C0 \uC54A\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uD328\uD0A4\uC9C0\uB294 \uC601\uBB38 \uC18C\uBB38\uC790\uB9CC \uC0AC\uC6A9\uD558\uACE0, \uB3C4\uBA54\uC778 \uAE30\uC900\uC73C\uB85C \uAD6C\uC131\uD558\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uD328\uD0A4\uC9C0\uBA85\uC5D0 camelCase, \uB300\uBB38\uC790, \uC5B8\uB354\uC2A4\uCF54\uC5B4, \uBD88\uD544\uC694\uD55C \uD558\uC774\uD508\uC774 \uC11E\uC5EC \uC788\uC9C0 \uC54A\uC740\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uC5ED\uD560 \uD328\uD0A4\uC9C0(`controller`, `service`, `domain`, `infrastructure`)\uAC00 \uCC45\uC784\uC5D0 \uB9DE\uAC8C \uBD84\uB9AC\uB418\uC5B4 \uC788\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uD074\uB798\uC2A4\uBA85\uC740 PascalCase\uC778\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uBA54\uC11C\uB4DC\uBA85\uC740 lowerCamelCase\uC774\uBA70 \uB3D9\uC0AC\uB85C \uC2DC\uC791\uD558\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- Boolean \uBA54\uC11C\uB4DC/\uBCC0\uC218\uB294 `is`, `has`, `can` \uC811\uB450\uC0AC\uB97C \uC6B0\uC120\uD558\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uC57D\uC5B4\uB3C4 \uC77C\uBC18 Camel/Pascal \uADDC\uCE59\uC744 \uB530\uB974\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4. \uC608: `HttpUrlConnection`\n- DTO/Entity/Repository/Controller/Service \uC811\uBBF8\uC0AC\uAC00 \uC5ED\uD560\uC5D0 \uB9DE\uAC8C \uC0AC\uC6A9\uB418\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uBA54\uC11C\uB4DC\uBA85\uC5D0 \uD55C\uAE00\uC744 \uC0AC\uC6A9\uD558\uC9C0 \uC54A\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4. \uB2E8, \uD14C\uC2A4\uD2B8 \uBA54\uC11C\uB4DC\uB294 \uD504\uB85C\uC81D\uD2B8 \uAD00\uB840\uC5D0 \uB530\uB77C \uC608\uC678 \uAC00\uB2A5\uC131\uC744 \uACE0\uB824\uD55C\uB2E4.\n- \uC22B\uC790\uB9CC \uB2E4\uB978 \uD074\uB798\uC2A4/\uBA54\uC11C\uB4DC\uBA85\uC744 \uAD00\uC131\uC801\uC73C\uB85C \uB298\uB9AC\uC9C0 \uC54A\uC558\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n\n### Controller \uADDC\uCE59\n\n- `@RestController` \uAE30\uBC18 \uC751\uB2F5 \uAD6C\uC870\uB97C \uC0AC\uC6A9\uD558\uACE0 \uC788\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- `@RequestBody`, `@ModelAttribute`, `@RequestParam` \uC0AC\uC6A9\uC774 \uC785\uB825 \uD615\uD0DC\uC640 \uB9DE\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- `@GetMapping`\uC5D0\uC11C\uB294 `@RequestParam` \uC911\uC2EC, `@PostMapping`\uC5D0\uC11C\uB294 `@RequestBody` \uC911\uC2EC \uADDC\uCE59\uC744 \uBB34\uB108\uB728\uB9AC\uC9C0 \uC54A\uC558\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uC785\uB825 \uD30C\uB77C\uBBF8\uD130 \uC218\uC2E0 \uBC29\uC2DD\uC744 \uADFC\uAC70 \uC5C6\uC774 \uD63C\uC6A9\uD558\uC9C0 \uC54A\uC558\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- Controller\uC5D0\uC11C \uC11C\uBE44\uC2A4 \uD638\uCD9C \uC678\uC758 \uC9C1\uC811 DB \uC811\uADFC, \uBCF5\uC7A1\uD55C \uBD84\uAE30, \uB370\uC774\uD130 \uC870\uD569\uC774 \uC5C6\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uC694\uCCAD/\uC751\uB2F5 \uBAA8\uB378\uC774 \uBA85\uD655\uD788 \uBD84\uB9AC\uB418\uC5B4 \uC788\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uC751\uB2F5 \uACC4\uC57D\uC774 \uD504\uB85C\uC81D\uD2B8 \uACF5\uD1B5 \uB798\uD37C(`ApiResponse` \uB4F1)\uC640 \uB9DE\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uC870\uD68C/\uB4F1\uB85D/\uC218\uC815/\uC0AD\uC81C URI\uC640 \uBA54\uC11C\uB4DC \uC870\uD569\uC774 \uD604\uC7AC \uD504\uB85C\uC81D\uD2B8 API \uADDC\uCE59\uACFC \uC77C\uCE58\uD558\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n\n### Service \uADDC\uCE59\n\n- `@RequiredArgsConstructor` + `final` \uD544\uB4DC \uAE30\uBC18 \uC0DD\uC131\uC790 \uC8FC\uC785\uC744 \uC0AC\uC6A9\uD558\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uD544\uB4DC \uC8FC\uC785\uC744 \uC0AC\uC6A9\uD558\uC9C0 \uC54A\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- Service\uAC00 \uB2E8\uC77C \uCC45\uC784\uC744 \uC720\uC9C0\uD558\uACE0 \uC788\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- Service \uB0B4\uBD80\uC5D0\uC11C \uB2E4\uB978 \uACC4\uCE35 \uCC45\uC784\uAE4C\uC9C0 \uACFC\uB3C4\uD558\uAC8C \uB04C\uC5B4\uC548\uC9C0 \uC54A\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uBD88\uD544\uC694\uD55C \uB0B4\uBD80 \uD074\uB798\uC2A4, \uACFC\uB3C4\uD55C static \uC720\uD2F8 \uD328\uD134, \uC784\uC2DC\uC131 \uB124\uC774\uBC0D\uC774 \uC5C6\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- API/\uC571 \uD558\uC704 \uD638\uD658\uC131\uC774 \uD544\uC694\uD55C \uBCC0\uACBD\uC774\uB77C\uBA74 \uBC84\uC800\uB2DD \uB610\uB294 \uACC4\uC57D \uC720\uC9C0 \uADFC\uAC70\uAC00 \uC788\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n\n### DTO / Entity / Repository / MyBatis / JPA\n\n- DTO \uC774\uB984\uC774 `RequestDto`, `ResponseDto`, `Dto` \uB4F1 \uC5ED\uD560 \uC811\uBBF8\uC0AC\uB97C \uC77C\uAD00\uB418\uAC8C \uC0AC\uC6A9\uD558\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- DTO\uAC00 `Map`, `Object`, \uBE44\uC815\uD615 \uAD6C\uC870 \uB0A8\uBC1C \uC5C6\uC774 \uBA85\uC2DC\uC801 \uD0C0\uC785\uC73C\uB85C \uC815\uC758\uB418\uC5B4 \uC788\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uC11C\uBE44\uC2A4/\uBE44\uC988\uB2C8\uC2A4 \uCEF4\uD3EC\uB10C\uD2B8\uC758 input/output, \uACC4\uCE35 \uAC04 \uC804\uB2EC \uAC1D\uCCB4\uAC00 `Map` \uB300\uC2E0 DTO\uB97C \uC0AC\uC6A9\uD558\uACE0 \uC788\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- Lombok `@Data`\uB97C \uBB34\uBD84\uBCC4\uD558\uAC8C \uC0AC\uC6A9\uD558\uC9C0 \uC54A\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uC0DD\uC131\uC790 \uC778\uC790\uAC00 \uB9CE\uAC70\uB098 \uC758\uBBF8\uAC00 \uBD88\uBA85\uD655\uD55C DTO \uC0DD\uC131\uC5D0 \uBE4C\uB354 \uB610\uB294 \uD329\uD1A0\uB9AC \uBA54\uC11C\uB4DC\uAC00 \uD544\uC694\uD55C\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uAC1C\uC778\uC815\uBCF4 \uD544\uB4DC\uAC00 \uC788\uB294 DTO\uC5D0 `@ToString`\uC744 \uADF8\uB300\uB85C \uC0AC\uC6A9\uD574 \uBBFC\uAC10\uC815\uBCF4\uB97C \uB178\uCD9C\uD558\uC9C0 \uC54A\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- Entity\uB294 `@Entity`, `@Table`, `@Column` \uB4F1 \uB9E4\uD551 \uC758\uB3C4\uAC00 \uBA85\uD655\uD55C\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- Entity\uC5D0 \uBD88\uD544\uC694\uD55C setter, \uC678\uBD80 \uACC4\uCE35\uC6A9 \uC751\uB2F5 \uB85C\uC9C1, \uACFC\uB3C4\uD55C \uBCC0\uD658 \uB85C\uC9C1\uC774 \uC11E\uC5EC \uC788\uC9C0 \uC54A\uC740\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- Repository \uC778\uD130\uD398\uC774\uC2A4\uAC00 `JpaRepository` \uB4F1 \uD45C\uC900 \uBC29\uC2DD\uC5D0 \uB9DE\uAC8C \uC815\uC758\uB418\uC5B4 \uC788\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uCFFC\uB9AC\uAC00 \uBCF5\uC7A1\uD560 \uB54C QueryDSL, Native Query, MyBatis \uC0AC\uC6A9 \uC774\uC720\uAC00 \uC124\uBA85 \uAC00\uB2A5\uD55C\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- MyBatis \uC0AC\uC6A9 \uC2DC Mapper \uC774\uB984, SQL ID, XML \uC704\uCE58\uAC00 \uC77C\uAD00\uC801\uC778\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- MyBatis `INSERT` SQL\uC5D0\uC11C \uD544\uC694\uD55C `jdbcType` \uC9C0\uC815\uC774 \uB204\uB77D\uB418\uC9C0 \uC54A\uC558\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n\n### API / URL \uADDC\uCE59\n\n- URI\uB294 \uC601\uBB38 \uC18C\uBB38\uC790 \uC911\uC2EC\uC778\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uD30C\uC77C \uD655\uC7A5\uC790, \uD2B8\uB808\uC77C\uB9C1 \uC2AC\uB798\uC2DC, \uBD88\uD544\uC694\uD55C \uC5B8\uB354\uC2A4\uCF54\uC5B4 \uC0AC\uC6A9\uC774 \uC5C6\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uB9AC\uC18C\uC2A4\uBA85\uC740 \uBA85\uC0AC\uD615 \uC911\uC2EC\uC778\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uD504\uB85C\uC81D\uD2B8 \uAC00\uC774\uB4DC\uC5D0 \uB9DE\uB294 `get/post/put/delete` \uC138\uADF8\uBA3C\uD2B8 \uBC0F \uB3C4\uBA54\uC778 \uACBD\uB85C \uADDC\uCE59\uC744 \uB530\uB974\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uC0AC\uB0B4 \uD45C\uC900\uC0C1 GET/POST\uB9CC \uD5C8\uC6A9\uD558\uB294 \uD504\uB85C\uC81D\uD2B8\uC778\uC9C0, \uC870\uD68C `GET + /get`, \uB4F1\uB85D `POST + /post`, \uC218\uC815 `POST + /put`, \uC0AD\uC81C `POST + /delete` \uAD00\uB840\uB97C \uB530\uB77C\uC57C \uD558\uB294\uC9C0 \uD655\uC778\uD558\uACE0 \uC704\uBC18 \uC5EC\uBD80\uB97C \uCCB4\uD06C\uD55C\uB2E4.\n- \uBBFC\uAC10\uC815\uBCF4 \uC870\uD68C, \uB300\uC6A9\uB7C9 \uC870\uD68C, \uC6F9\uC11C\uBC84 \uB85C\uADF8 \uB178\uCD9C \uC6B0\uB824\uAC00 \uC788\uB294 \uACBD\uC6B0 \uC870\uD68C\uB3C4 POST\uB97C \uC120\uD0DD\uD560 \uC218 \uC788\uC74C\uC744 \uACE0\uB824\uD588\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uC77C\uBC18\uC801\uC778 REST \uC774\uB860\uB9CC\uC73C\uB85C \uD604\uC7AC \uD504\uB85C\uC81D\uD2B8 URI \uD45C\uC900\uC744 \uC784\uC758 \uBCC0\uACBD\uD558\uC9C0 \uC54A\uC558\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uBAA9\uB85D \uC790\uC6D0\uC5D0 `-list` \uB610\uB294 \uBCF5\uC218\uD615 \uADDC\uCE59\uC744 \uC77C\uAD00\uB418\uAC8C \uC801\uC6A9\uD558\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n\n### \uC608\uC678 / \uC751\uB2F5 / HTTP Status\n\n- \uC608\uC678\uB97C `try-catch`\uB85C \uC758\uBBF8 \uC5C6\uC774 \uC0BC\uD0A4\uC9C0 \uC54A\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uBE44\uC988\uB2C8\uC2A4 \uC608\uC678\uC640 \uC2DC\uC2A4\uD15C \uC608\uC678\uB97C \uAD6C\uBD84\uD558\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- `BusinessException`, `DspException` \uB610\uB294 \uD504\uB85C\uC81D\uD2B8 \uACF5\uD1B5 \uC608\uC678 \uCCB4\uACC4\uB97C \uC77C\uAD00\uB418\uAC8C \uC0AC\uC6A9\uD558\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uBC94\uC6A9 `Exception`\uB9CC \uB358\uC9C0\uC9C0 \uC54A\uACE0 \uC758\uBBF8 \uC788\uB294 \uD558\uC704 \uC608\uC678 \uB610\uB294 \uACF5\uD1B5 \uC608\uC678 \uD074\uB798\uC2A4\uB97C \uC0AC\uC6A9\uD558\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uB9AC\uC2A4\uD2B8 \uB2E8\uC21C \uC870\uD68C\uC5D0\uC11C \uB370\uC774\uD130 \uC5C6\uC74C\uACFC \uC2E4\uC81C \uC624\uB958\uB97C \uAD6C\uBD84\uD558\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uD504\uB85C\uC81D\uD2B8 \uACC4\uC57D\uC0C1 HTTP 200 + \uB0B4\uBD80 \uC624\uB958 \uCF54\uB4DC/\uBA54\uC2DC\uC9C0 \uCCB4\uACC4\uB97C \uC4F0\uB294 \uACBD\uC6B0, \uC774\uB97C \uC784\uC758\uB85C 4xx/5xx \uC911\uC2EC \uACC4\uC57D\uC73C\uB85C \uC11E\uC9C0 \uC54A\uC558\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uC0AC\uB0B4 \uD45C\uC900\uC0C1 2xx, 4xx \uC911\uC2EC \uC0C1\uD0DC\uCF54\uB4DC\uB97C \uC4F0\uB294 \uD504\uB85C\uC81D\uD2B8\uB77C\uBA74 \uADF8 \uACC4\uC57D\uC744 \uBC97\uC5B4\uB098\uC9C0 \uC54A\uC558\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uC608\uC678 \uBA54\uC2DC\uC9C0\uC640 \uC624\uB958 \uCF54\uB4DC\uB294 \uACC4\uCE35\uC744 \uB118\uAE38 \uB54C \uC758\uBBF8\uAC00 \uC720\uC9C0\uB418\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n\n### \uD2B8\uB79C\uC7AD\uC158\n\n- \uD2B8\uB79C\uC7AD\uC158\uC774 \uC11C\uBE44\uC2A4 \uBA54\uC11C\uB4DC \uACBD\uACC4\uC5D0 \uC704\uCE58\uD558\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uC870\uD68C \uC804\uC6A9 \uBA54\uC11C\uB4DC\uC5D0 `@Transactional(readOnly = true)` \uC801\uC6A9\uC774 \uD544\uC694\uD55C\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- CheckedException \uB864\uBC31\uC774 \uD544\uC694\uD55C\uB370 `rollbackFor`\uAC00 \uBE60\uC838 \uC788\uC9C0 \uC54A\uC740\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uC804\uD30C \uC18D\uC131(`REQUIRES_NEW`, `MANDATORY` \uB4F1)\uC744 \uC774\uC720 \uC5C6\uC774 \uB0A8\uC6A9\uD558\uC9C0 \uC54A\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uD55C \uD2B8\uB79C\uC7AD\uC158\uC5D0 \uBB34\uAD00\uD55C \uC791\uC5C5\uC744 \uACFC\uB3C4\uD558\uAC8C \uBB36\uC9C0 \uC54A\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- CheckedException\uACFC UncheckedException\uC758 \uB864\uBC31 \uCC28\uC774\uB97C \uC774\uD574\uD558\uC9C0 \uBABB\uD55C \uCF54\uB4DC\uAC00 \uC5C6\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n\n### Java \uCF54\uB529 / \uC8FC\uC11D\n\n- \uC758\uBBF8 \uC5C6\uB294 `try-catch`, \uBE48 `catch`, \uC608\uC678 \uB85C\uADF8\uB9CC \uB0A8\uAE30\uACE0 \uC815\uC0C1 \uD750\uB984\uCC98\uB7FC \uC228\uAE30\uB294 \uCF54\uB4DC\uAC00 \uC5C6\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uC2A4\uD504\uB9C1 singleton \uBE48\uC5D0 \uC694\uCCAD\uBCC4 \uAC00\uBCC0 \uC0C1\uD0DC\uB97C \uB2F4\uB294 \uC778\uC2A4\uD134\uC2A4 \uBCC0\uC218\uB97C \uB450\uC9C0 \uC54A\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- `import *`\uB97C \uC0AC\uC6A9\uD558\uC9C0 \uC54A\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- import, \uB4E4\uC5EC\uC4F0\uAE30, \uC911\uAD04\uD638, \uB744\uC5B4\uC4F0\uAE30, \uD074\uB798\uC2A4 \uBA64\uBC84 \uC815\uB82C\uC774 \uD504\uB85C\uC81D\uD2B8 \uD3EC\uB9F7\uD130\uC640 \uCDA9\uB3CC\uD558\uC9C0 \uC54A\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uC81C\uC5B4\uBB38 \uD55C \uC904 \uBCF8\uBB38\uC774\uB77C\uB3C4 \uC911\uAD04\uD638\uB97C \uC0DD\uB7B5\uD558\uC9C0 \uC54A\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uBA54\uC11C\uB4DC \uC0C1\uB2E8\uC5D0 \uC0AC\uC6A9\uD558\uC9C0\uB3C4 \uC54A\uC744 \uB85C\uCEEC \uBCC0\uC218\uB97C \uD55C\uAEBC\uBC88\uC5D0 \uBBF8\uB9AC \uC120\uC5B8\uD558\uB294 \uD328\uD134\uC774 \uC5C6\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- `do..while` \uC0AC\uC6A9\uC774 \uC815\uB9D0 \uD544\uC694\uD55C\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uD074\uB798\uC2A4/\uBA54\uC11C\uB4DC\uC758 \uC758\uB3C4\uAC00 \uCF54\uB4DC\uB9CC\uC73C\uB85C \uBA85\uD655\uD558\uC9C0 \uC54A\uC744 \uB54C \uC8FC\uC11D\uC774\uB098 \uBB38\uC11C\uD654\uAC00 \uBCF4\uAC15\uB418\uC5B4 \uC788\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- Swagger, \uC778\uD130\uD398\uC774\uC2A4, \uC624\uBC84\uB77C\uC774\uB4DC \uB4F1\uC73C\uB85C \uC124\uBA85\uC774 \uB300\uCCB4\uB418\uB294 \uACBD\uC6B0 \uBD88\uD544\uC694\uD55C \uC911\uBCF5 \uC8FC\uC11D\uC744 \uAC15\uC694\uD558\uC9C0 \uC54A\uB294\uB2E4.\n- \uC8FC\uC11D \uCCAB \uBB38\uC7A5\uC774 \uC5ED\uD560 \uC694\uC57D\uC774 \uB418\uB3C4\uB85D \uAC04\uACB0\uD558\uAC8C \uC791\uC131\uB418\uC5C8\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uC8FC\uC11D\uC774 "\uBB34\uC5C7\uC744 \uD558\uB294\uAC00"\uBCF4\uB2E4 "\uC5B4\uB5BB\uAC8C \uAD6C\uD604\uD588\uB294\uAC00"\uB9CC \uC7A5\uD669\uD558\uAC8C \uC124\uBA85\uD558\uC9C0 \uC54A\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uBD88\uD544\uC694\uD55C Javadoc \uD0DC\uADF8, \uC791\uC131\uC790\uBA85, \uB0A0\uC9DC, \uBCC0\uACBD\uC774\uB825 \uB098\uC5F4\uC774 \uB0A8\uC544 \uC788\uC9C0 \uC54A\uC740\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uC8FC\uC11D \uCC98\uB9AC\uB41C \uC8FD\uC740 \uCF54\uB4DC, \uC624\uB798\uB41C TODO, \uAD6C\uD604\uACFC \uB9DE\uC9C0 \uC54A\uB294 \uC8FC\uC11D\uC774 \uB0A8\uC544 \uC788\uC9C0 \uC54A\uC740\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n\n### \uB85C\uAE45 / \uAC1C\uC778\uC815\uBCF4 / \uBCF4\uC548\n\n- \uB85C\uADF8 \uB808\uBCA8\uC774 \uBAA9\uC801\uC5D0 \uB9DE\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n  - `DEBUG`: \uAC1C\uBC1C \uB514\uBC84\uAE45\n  - `INFO`: \uC77C\uBC18 \uD750\uB984/\uC6B4\uC601 \uD655\uC778\n  - `WARN`: \uBE44\uC988\uB2C8\uC2A4 \uC624\uB958/\uAC80\uC99D \uC2E4\uD328\n  - `ERROR`: \uC2DC\uC2A4\uD15C \uC624\uB958/\uC608\uC0C1\uD558\uC9C0 \uBABB\uD55C \uC608\uC678\n- `System.out.println()` \uB4F1 \uBE44\uD45C\uC900 \uCD9C\uB825\uC73C\uB85C \uB85C\uADF8\uB97C \uB0A8\uAE30\uC9C0 \uC54A\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uC6B4\uC601 \uCF54\uB4DC\uC5D0 \uBD88\uD544\uC694\uD55C \uB514\uBC84\uAE45 \uB85C\uADF8\uAC00 \uB0A8\uC544 \uC788\uC9C0 \uC54A\uC740\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- TRACE/DEBUG \uB85C\uADF8\uB294 \uD544\uC694\uD55C \uACBD\uC6B0 \uB808\uBCA8 \uCCB4\uD06C\uC640 \uD568\uAED8 \uC0AC\uC6A9\uD558\uACE0 \uC788\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- Logger\uAC00 \uD074\uB798\uC2A4 \uB0B4\uBD80\uC5D0\uC11C \uC77C\uAD00\uB41C \uBC29\uC2DD(`private final`, `@Slf4j` \uB4F1)\uC73C\uB85C \uC120\uC5B8\uB418\uC5B4 \uC788\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uB85C\uADF8 \uD638\uCD9C \uC778\uC790\uB85C \uBE44\uC988\uB2C8\uC2A4 \uC218\uD589 \uBA54\uC11C\uB4DC\uB97C \uC9C1\uC811 \uB123\uC5B4 \uBD80\uC218\uD6A8\uACFC\uB97C \uB9CC\uB4DC\uB294 \uCF54\uB4DC\uAC00 \uC5C6\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uC8FC\uBBFC\uBC88\uD638, \uACC4\uC88C\uBC88\uD638, \uCE74\uB4DC\uBC88\uD638, \uC804\uD654\uBC88\uD638, \uC774\uBA54\uC77C, \uC8FC\uC18C \uB4F1 \uAC1C\uC778\uC815\uBCF4\uAC00 \uB85C\uADF8/\uC751\uB2F5/\uD30C\uC77C\uC5D0 \uD3C9\uBB38 \uB178\uCD9C\uB418\uC9C0 \uC54A\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uAC1C\uC778\uC815\uBCF4 \uB9C8\uC2A4\uD0B9\uACFC \uC554\uD638\uD654\uAC00 \uD504\uB85C\uC81D\uD2B8 \uD45C\uC900\uC744 \uB530\uB974\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uBBFC\uAC10 \uC694\uCCAD \uBCF8\uBB38 \uC804\uCCB4\uB97C \uB85C\uADF8\uC5D0 \uADF8\uB300\uB85C \uB0A8\uAE30\uC9C0 \uC54A\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uAC1C\uC778\uC815\uBCF4\uB97C \uC800\uC7A5\uD574\uC57C \uD558\uB294 \uACBD\uC6B0 \uD3C9\uBB38 \uC801\uC7AC \uB300\uC2E0 \uB9C8\uC2A4\uD0B9 \uB610\uB294 \uC2B9\uC778\uB41C \uC554\uD638\uD654 \uCCB4\uACC4\uB97C \uC801\uC6A9\uD588\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uC2B9\uC778\uB41C \uACF5\uD1B5 \uC554\uD638\uD654 \uC720\uD2F8, `CGP`, `K-Sign` \uB4F1 \uC870\uC9C1 \uD45C\uC900 \uACBD\uB85C\uB97C \uC6B0\uD68C\uD558\uB294 \uC784\uC758 \uC554\uD638\uD654\uB97C \uB3C4\uC785\uD558\uC9C0 \uC54A\uC558\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n\n### \uC774\uBCA4\uD2B8 / \uBE44\uB3D9\uAE30 / Redis\n\n- \uC11C\uBC84 \uB0B4\uBD80 \uD6C4\uCC98\uB9AC \uBD84\uB9AC\uB294 `ApplicationEventPublisher`, `@EventListener`, `@Async`, `@TransactionalEventListener`\uB97C \uC801\uC808\uD788 \uC0AC\uC6A9\uD558\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uC774\uBCA4\uD2B8 \uAC1D\uCCB4\uB97C \uBD88\uBCC0 \uAC1D\uCCB4 \uB610\uB294 \uADF8\uC5D0 \uC900\uD558\uB294 \uD615\uD0DC\uB85C \uC124\uACC4\uD588\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uC624\uB798 \uAC78\uB9AC\uB294 \uD6C4\uCC98\uB9AC\uB97C \uB3D9\uAE30 \uD750\uB984\uC5D0 \uBB36\uC5B4 \uB450\uC9C0 \uC54A\uC558\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- Redis Pub/Sub\uB97C \uC0AC\uC6A9\uD560 \uB54C \uC21C\uC11C \uBCF4\uC7A5, \uB0B4\uAD6C\uC131, \uC7AC\uC2DC\uB3C4 \uBD80\uC7AC \uD55C\uACC4\uB97C \uC774\uD574\uD558\uACE0 \uC0AC\uC6A9\uD588\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uB2E8\uC21C \uBE0C\uB85C\uB4DC\uCE90\uC2A4\uD2B8/\uC0C1\uD0DC \uC804\uD30C\uAC00 \uC544\uB2CC\uB370 Redis Pub/Sub\uB97C \uBB34\uB9AC\uD558\uAC8C \uC4F0\uACE0 \uC788\uC9C0 \uC54A\uC740\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n\n### SQL\n\n- ANSI SQL \uAE30\uC900\uC744 \uD06C\uAC8C \uBC97\uC5B4\uB098\uC9C0 \uC54A\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- `JOIN` \uC0AC\uC6A9 \uC2DC Alias\uAC00 \uBA85\uD655\uD558\uACE0 \uC77C\uAD00\uB418\uAC8C \uC120\uC5B8\uB418\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- Alias\uC5D0 \uD55C\uAE00\uC774\uB098 \uC784\uC758 \uB09C\uC218\uC131 \uC774\uB984\uC744 \uC4F0\uC9C0 \uC54A\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- \uBD88\uD544\uC694\uD55C DB Function, Procedure, \uD504\uB85C\uC2DC\uC800 \uC758\uC874\uC744 \uB298\uB9AC\uC9C0 \uC54A\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- DBMS \uD2B9\uD654 \uBB38\uBC95\uC740 \uBD88\uAC00\uD53C\uD55C \uADFC\uAC70\uAC00 \uC788\uC744 \uB54C\uB9CC \uC0AC\uC6A9\uD558\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n\n### \uD3EC\uB9F7\uD305 / \uC124\uC815\n\n- \uD504\uB85C\uC81D\uD2B8 \uD3EC\uB9F7\uD305 \uB3C4\uAD6C(\uC608: Spotless + googleJavaFormat)\uC640 \uCDA9\uB3CC\uD558\uB294 \uC2A4\uD0C0\uC77C\uC774 \uC5C6\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n- import \uC815\uB9AC, \uBBF8\uC0AC\uC6A9 import \uC81C\uAC70, trailing whitespace \uC81C\uAC70 \uB4F1 \uAE30\uBCF8 \uC815\uB9AC \uC0C1\uD0DC\uB97C \uCCB4\uD06C\uD55C\uB2E4.\n- \uD658\uACBD\uC124\uC815 \uD0A4\uAC00 \uACC4\uCE35\uD615 \uAD6C\uC870\uC640 kebab-case \uC608\uC2DC\uC5D0 \uB9DE\uB294\uC9C0 \uCCB4\uD06C\uD55C\uB2E4.\n\n### \uAE30\uD0C0 \uB9AC\uBDF0\uC2DC \uC694\uAD6C\uC0AC\uD56D\n\n- \uACF5\uD1B5 \uC720\uD2F8, \uACF5\uD1B5 \uC608\uC678, \uACF5\uD1B5 \uC751\uB2F5 \uB798\uD37C, \uACF5\uD1B5 \uB85C\uAE45/\uBCF4\uC548 \uCC98\uB9AC\uB85C \uC77C\uBC18\uD654 \uAC00\uB2A5\uD55C \uBD80\uBD84\uC774 \uC788\uC73C\uBA74 \uC81C\uC548\uD55C\uB2E4.\n- \uB354 \uB098\uC740 \uC124\uACC4 \uAC00\uC774\uB4DC\uAC00 \uC788\uC73C\uBA74 \uD568\uAED8 \uC81C\uC548\uD558\uB418, \uD604\uC7AC \uD504\uB85C\uC81D\uD2B8 \uACC4\uC57D\uC744 \uAE68\uC9C0 \uC54A\uB294 \uC120\uC5D0\uC11C \uC81C\uC548\uD55C\uB2E4.\n- \uD655\uC778\uD55C \uD30C\uC77C \uBAA9\uB85D\uC744 \uBC18\uB4DC\uC2DC \uD45C\uD604\uD55C\uB2E4.\n- \uD30C\uC77C\uBCC4 \uC0C1\uD0DC\uB97C `\uD1B5\uACFC`, `\uD655\uC778\uD544\uC694`, `\uBB34\uC2DC`, `\uC704\uBC18` \uC911 \uD558\uB098\uB85C \uBA85\uC2DC\uD55C\uB2E4.\n- \uD1B5\uACFC\uD558\uC9C0 \uBABB\uD55C \uD30C\uC77C\uC740 \uC5B4\uB5A4 \uADDC\uCE59\uC744 \uC5B4\uACBC\uB294\uC9C0 \uAD6C\uCCB4\uC801\uC73C\uB85C \uC801\uB294\uB2E4.\n\n### ignore \uD30C\uC77C\uB4E4\n\n- package.json\n- *.yml\n- *.md\n- *.lock\n- dist \uD3F4\uB354 \uB0B4 \uD30C\uC77C\uB4E4\n- node_modules \uD3F4\uB354 \uB0B4 \uD30C\uC77C\uB4E4\n';

// src/platform/assets/rules/be/reference-summary.md
var reference_summary_default = "# BE \uBB38\uC11C \uC694\uC57D\n\n## \uBAA9\uC801\n\n- \uC774 \uBB38\uC11C\uB294 `ju-hong-e`\uC758 BE \uCF54\uB4DC \uB9AC\uBDF0 \uADDC\uCE59\uC744 \uB9CC\uB4E4\uAE30 \uC704\uD574 \uCC38\uACE0\uD55C \uBB38\uC11C\uB97C \uC694\uC57D\uD55C \uC815\uB9AC\uBCF8\uC774\uB2E4.\n- \uC2E4\uC81C \uD504\uB86C\uD504\uD2B8\uC5D0 \uBC14\uB85C \uB123\uC744 \uADDC\uCE59\uC740 `review-rules.md`\uB97C \uC0AC\uC6A9\uD558\uACE0, \uC774 \uBB38\uC11C\uB294 \uC65C \uADF8\uB7F0 \uADDC\uCE59\uC774 \uB098\uC654\uB294\uC9C0 \uC124\uBA85\uD558\uB294 \uCC38\uACE0 \uBB38\uC11C\uB85C \uC0AC\uC6A9\uD55C\uB2E4.\n\n## \uCC38\uACE0 \uBB38\uC11C\n\n### 1. `[DSP-BE] \uAC1C\uBC1C \uAC00\uC774\uB4DC.pdf`\n\n- \uD504\uB85C\uC81D\uD2B8 \uB9DE\uCDA4\uD615 \uBC31\uC5D4\uB4DC \uAC1C\uBC1C \uAC00\uC774\uB4DC\n- \uC8FC\uC694 \uBC94\uC704\n  - \uD45C\uC900 \uAC1C\uBC1C/\uBC30\uD3EC \uD658\uACBD\n  - \uD328\uD0A4\uC9C0/\uD074\uB798\uC2A4/\uBA54\uC11C\uB4DC \uBA85\uBA85 \uADDC\uCE59\n  - API URI \uADDC\uCE59\n  - Java/Spring \uBC31\uC5D4\uB4DC \uAD6C\uC870\n  - Controller, Service, DTO, Entity, Repository, MyBatis, JPA \uADDC\uCE59\n  - Logging, Exception, Http Status, Transaction\n  - \uC774\uBCA4\uD2B8 \uCC98\uB9AC, Redis Pub/Sub\n  - Spotless, \uD658\uACBD\uC124\uC815 \uD0A4 \uADDC\uCE59, \uAC1C\uBC1C \uC0AC\uC774\uD2B8\n\n### 2. `NXL_\uAC1C\uBC1C\uD45C\uC900\uC815\uC758\uC11C(BE)_v1.6.txt`\n\n- \uC804\uC0AC \uD45C\uC900 \uBB38\uC11C\n- \uC6D0\uBCF8 `docx`\uB97C \uC0AC\uC804\uC5D0 \uD14D\uC2A4\uD2B8\uB85C \uBCC0\uD658\uD55C \uD30C\uC77C\n- `cp949/euc-kr` \uACC4\uC5F4\uB85C \uB514\uCF54\uB529\uD558\uBA74 \uBCF8\uBB38\uC744 \uC77D\uC744 \uC218 \uC788\uC5B4, \uC774\uBC88 \uC815\uB9AC\uC5D0\uC11C\uB294 \uC774 \uD30C\uC77C\uC744 NXL \uD45C\uC900\uC758 \uC8FC \uCC38\uACE0\uBCF8\uC73C\uB85C \uC0AC\uC6A9\uD588\uB2E4.\n- \uC9C1\uC811 \uD655\uC778\uD55C \uBC94\uC704\n  - \uD45C\uC900 \uAC1C\uBC1C/\uAC1C\uBC1C\uD658\uACBD\n  - \uD504\uB808\uC784\uC6CC\uD06C/\uB77C\uC774\uBE0C\uB7EC\uB9AC \uC815\uBCF4\n  - \uD504\uB85C\uC81D\uD2B8/\uD328\uD0A4\uC9C0/\uD074\uB798\uC2A4/\uBA54\uC11C\uB4DC/\uBCC0\uC218/\uC0C1\uC218/Enum/Mapper \uBA85\uBA85 \uADDC\uCE59\n  - \uC11C\uBE44\uC2A4 URL \uD45C\uC900\n  - Java/Application/SQL/\uC8FC\uC11D/\uD2B8\uB79C\uC7AD\uC158 \uADDC\uCE59\n  - \uAC1C\uC778\uC815\uBCF4 \uB9C8\uC2A4\uD0B9/\uC554\uD638\uD654 \uADDC\uCE59\n  - Logging / Exception / HTTP Status \uADDC\uCE59\n\n### 3. `NXL_\uAC1C\uBC1C\uD45C\uC900\uC815\uC758\uC11C(BE)_v1.6.xml`\n\n- \uD30C\uC77C\uBA85\uC740 `xml`\uC774\uC9C0\uB9CC, \uC2E4\uC81C\uB85C\uB294 Word \uBCF5\uD569 \uBB38\uC11C/DRM \uBA54\uD0C0\uB370\uC774\uD130\uAC00 \uC11E\uC778 \uBC14\uC774\uB108\uB9AC \uCEE8\uD14C\uC774\uB108\uC5D0 \uAC00\uAE5D\uB2E4.\n- \uB9AC\uBDF0 \uADDC\uCE59 \uC815\uB9AC\uC6A9 \uBCF8\uBB38 \uC18C\uC2A4\uB85C\uB294 \uD65C\uC6A9\uD558\uC9C0 \uC54A\uC558\uB2E4.\n\n## \uBB38\uC11C \uD574\uC11D \uC6B0\uC120\uC21C\uC704\n\n- \uD504\uB85C\uC81D\uD2B8 \uB9AC\uBDF0 \uADDC\uCE59\uC744 \uB9CC\uB4E4 \uB54C\uB294 `[DSP-BE] \uAC1C\uBC1C \uAC00\uC774\uB4DC.pdf`\uB97C \uC6B0\uC120 \uC801\uC6A9\uD55C\uB2E4.\n- \uC804\uC0AC \uD45C\uC900\uACFC \uD504\uB85C\uC81D\uD2B8 \uAC00\uC774\uB4DC\uAC00 \uCDA9\uB3CC\uD558\uC9C0 \uC54A\uB294 \uBC94\uC704\uC5D0\uC11C\uB294 `NXL_\uAC1C\uBC1C\uD45C\uC900\uC815\uC758\uC11C(BE)`\uC758 \uC77C\uBC18 \uC6D0\uCE59\uC744 \uBCF4\uC870 \uADFC\uAC70\uB85C \uC0AC\uC6A9\uD55C\uB2E4.\n- \uD504\uB85C\uC81D\uD2B8\uC5D0 \uC774\uBBF8 \uC874\uC7AC\uD558\uB294 API \uC751\uB2F5 \uACC4\uC57D, URL \uD328\uD134, \uC608\uC678 \uCC98\uB9AC \uADDC\uC57D\uC774 \uC788\uC73C\uBA74 \uADF8 \uAD6C\uD604 \uAD00\uC131\uC744 \uC6B0\uC120\uD55C\uB2E4.\n- \uAC1C\uBC1C\uD658\uACBD/\uD504\uB808\uC784\uC6CC\uD06C \uBC84\uC804 \uC815\uBCF4\uB294 \uBB38\uC11C \uAC04 \uCC28\uC774\uAC00 \uC788\uC73C\uBBC0\uB85C, \uB9AC\uBDF0 \uB8F0\uC5D0\uC11C\uB294 \uD558\uB4DC \uCCB4\uD06C \uD56D\uBAA9\uC73C\uB85C \uC2B9\uACA9\uD558\uC9C0 \uC54A\uB294\uB2E4.\n  - \uC608: NXL \uD45C\uC900\uC740 `OpenJDK 1.8`, `Spring Boot 2.7` \uC911\uC2EC\n  - \uC608: \uD504\uB85C\uC81D\uD2B8 \uAC00\uC774\uB4DC\uB294 \uB354 \uCD5C\uC2E0 \uC2A4\uD0DD \uAE30\uC900\n\n## \uD575\uC2EC \uC694\uC57D\n\n### \uC544\uD0A4\uD14D\uCC98 / \uACC4\uCE35 \uC5ED\uD560\n\n- Controller\uB294 \uC694\uCCAD/\uC751\uB2F5 \uB9E4\uD551\uACFC \uC704\uC784\uC5D0 \uC9D1\uC911\uD558\uACE0, \uBE44\uC988\uB2C8\uC2A4 \uB85C\uC9C1\uC744 \uC9C1\uC811 \uB2F4\uC9C0 \uC54A\uB294\uB2E4.\n- Service\uB294 \uB2E8\uC77C \uCC45\uC784 \uC6D0\uCE59\uC5D0 \uB530\uB77C \uBE44\uC988\uB2C8\uC2A4 \uC870\uD569\uACFC \uD750\uB984 \uC81C\uC5B4\uB97C \uB2F4\uB2F9\uD55C\uB2E4.\n- DTO\uB294 \uC21C\uC218 \uC804\uB2EC \uAC1D\uCCB4\uB85C \uC0AC\uC6A9\uD558\uACE0, Entity\uB97C \uC678\uBD80 \uC751\uB2F5\uC5D0 \uC9C1\uC811 \uB178\uCD9C\uD558\uC9C0 \uC54A\uB294\uB2E4.\n- JPA \uC0AC\uC6A9 \uC2DC Entity/Repository \uCC45\uC784\uC744 \uBA85\uD655\uD788 \uBD84\uB9AC\uD55C\uB2E4.\n- \uBCF5\uC7A1\uD55C \uC601\uC18D\uC131 \uC870\uD68C\uB294 QueryDSL, Native Query, MyBatis\uB97C \uC0C1\uD669\uC5D0 \uB9DE\uAC8C \uC81C\uD55C\uC801\uC73C\uB85C \uC0AC\uC6A9\uD55C\uB2E4.\n\n### \uBA85\uBA85 / \uD328\uD0A4\uC9C0 \uAD6C\uC870\n\n- \uD504\uB85C\uC81D\uD2B8\uBA85\uC740 \uCF00\uBC25 \uD45C\uAE30\uBC95\uC744 \uAE30\uC900\uC73C\uB85C \uD558\uBA70, \uC5C5\uBB34\uCF54\uB4DC/\uAE30\uB2A5\uCF54\uB4DC/\uC0C1\uC138\uAD6C\uBD84 \uC870\uD569 \uAD6C\uC870\uB97C \uC0AC\uC6A9\uD55C\uB2E4.\n- \uD328\uD0A4\uC9C0\uB294 \uC601\uBB38 \uC18C\uBB38\uC790, \uB3C4\uBA54\uC778 \uAE30\uBC18, \uC5ED\uD560 \uAE30\uC900 \uC138\uBD84\uD654(`controller`, `service`, `domain`, `infrastructure`)\uB97C \uB530\uB978\uB2E4.\n- \uD50C\uB7AB\uD3FC \uB300\uC0C1/\uBE44\uB300\uC0C1\uC5D0 \uB530\uB77C \uAE30\uBCF8 \uD328\uD0A4\uC9C0 \uC608\uC2DC\uAC00 `com.hanwhalife.nxl...`, `com.hanwhalife...`\uB85C \uAD6C\uBD84\uB41C\uB2E4.\n- \uD074\uB798\uC2A4\uB294 PascalCase, \uBA54\uC11C\uB4DC\uB294 lowerCamelCase\uB97C \uC0AC\uC6A9\uD55C\uB2E4.\n- \uC57D\uC5B4\uB3C4 \uC77C\uBC18 Pascal/Camel \uADDC\uCE59\uC744 \uB530\uB978\uB2E4. \uC608: `HttpUrlConnection`\n- Boolean \uBA54\uC11C\uB4DC\uB294 `is`, `has`, `can` \uC811\uB450\uC0AC\uB97C \uC6B0\uC120\uD55C\uB2E4.\n- DTO/Entity/Repository\uB294 \uC5ED\uD560 \uC811\uBBF8\uC0AC(`RequestDto`, `ResponseDto`, `Entity`, `Repository`)\uB97C \uC77C\uAD00\uB418\uAC8C \uC0AC\uC6A9\uD55C\uB2E4.\n- \uBA54\uC11C\uB4DC\uBA85\uC740 \uC601\uBB38 \uB3D9\uC0AC\uB85C \uC2DC\uC791\uD558\uACE0, \uC22B\uC790\uB294 \uBD88\uAC00\uD53C\uD560 \uB54C\uB9CC \uB9C8\uC9C0\uB9C9\uC5D0 \uC0AC\uC6A9\uD55C\uB2E4.\n\n### API / URL\n\n- URL\uC740 \uC601\uBB38 \uC18C\uBB38\uC790 \uC911\uC2EC, \uBA85\uC0AC\uD615 \uB9AC\uC18C\uC2A4 \uC911\uC2EC\uC73C\uB85C \uC124\uACC4\uD55C\uB2E4.\n- \uD30C\uC77C \uD655\uC7A5\uC790, \uD2B8\uB808\uC77C\uB9C1 \uC2AC\uB798\uC2DC, \uBD88\uD544\uC694\uD55C \uC5B8\uB354\uC2A4\uCF54\uC5B4\uB294 \uC9C0\uC591\uD55C\uB2E4.\n- \uD504\uB85C\uC81D\uD2B8 \uAC00\uC774\uB4DC\uC0C1 `get/post/put/delete`\uB97C URI \uC138\uADF8\uBA3C\uD2B8\uC5D0 \uD3EC\uD568\uD558\uB294 \uB0B4\uBD80 \uD45C\uC900\uC774 \uC874\uC7AC\uD558\uBBC0\uB85C, \uC678\uBD80 REST \uC77C\uBC18\uB860\uBCF4\uB2E4 \uD604\uC7AC \uD504\uB85C\uC81D\uD2B8 \uACC4\uC57D\uC744 \uC6B0\uC120 \uBCF8\uB2E4.\n- \uBBFC\uAC10\uC815\uBCF4 \uC870\uD68C, \uB300\uC6A9\uB7C9 \uC870\uD68C, \uC6F9\uC11C\uBC84 \uB85C\uADF8 \uB178\uCD9C \uC6B0\uB824\uAC00 \uC788\uC73C\uBA74 \uC870\uD68C\uB3C4 POST\uB97C \uD5C8\uC6A9\uD55C\uB2E4.\n- NXL \uD45C\uC900\uC740 GET/POST\uB9CC \uD5C8\uC6A9\uD558\uACE0, \uC870\uD68C\uB294 `GET + /get`, \uB4F1\uB85D\uC740 `POST + /post`, \uC218\uC815\uC740 `POST + /put`, \uC0AD\uC81C\uB294 `POST + /delete` \uD328\uD134\uC744 \uC608\uC2DC\uB85C \uB4E0\uB2E4.\n- \uBAA9\uB85D \uC790\uC6D0\uC740 `-list` \uB610\uB294 \uBCF5\uC218\uD615\uC744 \uC0AC\uC6A9\uD558\uB3C4\uB85D \uC548\uB0B4\uD55C\uB2E4.\n\n### \uC608\uC678 / \uC751\uB2F5 / \uC0C1\uD0DC\uCF54\uB4DC\n\n- \uBE44\uC988\uB2C8\uC2A4 \uC608\uC678\uC640 \uC2DC\uC2A4\uD15C \uC608\uC678\uB97C \uBD84\uB9AC\uD55C\uB2E4.\n- \uC608\uC678\uB97C \uBB34\uC2DC\uD558\uAC70\uB098 \uC758\uBBF8 \uC5C6\uC774 \uC0BC\uD0A4\uC9C0 \uC54A\uB294\uB2E4.\n- \uB9AC\uC2A4\uD2B8 \uB2E8\uC21C \uC870\uD68C\uC5D0\uC11C \uB370\uC774\uD130 \uC5C6\uC74C\uC740 \uBE48 \uB9AC\uC2A4\uD2B8 \uBC18\uD658\uC774 \uC6B0\uC120\uC774\uACE0, \uD6C4\uC18D \uBE44\uC988\uB2C8\uC2A4 \uCC98\uB9AC\uC5D0 \uC601\uD5A5\uC774 \uC788\uC73C\uBA74 \uC608\uC678\uB97C \uAC80\uD1A0\uD55C\uB2E4.\n- HTTP Status\uB294 \uD504\uB85C\uC81D\uD2B8 \uACC4\uC57D\uC744 \uC6B0\uC120\uD558\uBA70, \uB0B4\uBD80 \uC624\uB958 \uCF54\uB4DC/\uBA54\uC2DC\uC9C0 \uCCB4\uACC4\uB97C \uC784\uC758\uB85C \uBC14\uAFB8\uC9C0 \uC54A\uB294\uB2E4.\n- NXL \uD45C\uC900\uC740 2xx, 4xx \uC911\uC2EC \uC0C1\uD0DC\uCF54\uB4DC \uC0AC\uC6A9\uC744 \uBA85\uC2DC\uD55C\uB2E4.\n\n### \uD2B8\uB79C\uC7AD\uC158\n\n- \uD2B8\uB79C\uC7AD\uC158\uC740 \uC11C\uBE44\uC2A4 \uBA54\uC11C\uB4DC \uB2E8\uC704\uB85C \uAD00\uB9AC\uD55C\uB2E4.\n- \uC870\uD68C \uC804\uC6A9 \uBA54\uC11C\uB4DC\uB294 `@Transactional(readOnly = true)`\uB97C \uC6B0\uC120 \uAC80\uD1A0\uD55C\uB2E4.\n- CheckedException\uAE4C\uC9C0 \uB864\uBC31\uC774 \uD544\uC694\uD558\uBA74 `rollbackFor`\uB97C \uBA85\uC2DC\uD55C\uB2E4.\n- \uC804\uD30C \uC18D\uC131\uC740 \uAF2D \uD544\uC694\uD55C \uACBD\uC6B0\uC5D0\uB9CC \uC0AC\uC6A9\uD55C\uB2E4.\n\n### \uB85C\uAE45 / \uBCF4\uC548 / \uAC1C\uC778\uC815\uBCF4\n\n- \uB85C\uADF8 \uB808\uBCA8\uC740 \uC758\uB3C4\uC5D0 \uB9DE\uAC8C \uAD6C\uBD84\uD55C\uB2E4.\n  - `DEBUG`: \uAC1C\uBC1C \uB514\uBC84\uAE45\n  - `INFO`: \uC77C\uBC18 \uD750\uB984/\uC2DC\uC791/\uC885\uB8CC/\uC6B4\uC601 \uD655\uC778 \uC815\uBCF4\n  - `WARN`: \uBE44\uC988\uB2C8\uC2A4 \uC624\uB958/\uAC80\uC99D \uC2E4\uD328\n  - `ERROR`: \uC2DC\uC2A4\uD15C \uC624\uB958/\uC608\uC0C1\uD558\uC9C0 \uBABB\uD55C \uC608\uC678\n- \uC8FC\uBBFC\uBC88\uD638, \uACC4\uC88C\uBC88\uD638, \uCE74\uB4DC\uBC88\uD638, \uC804\uD654\uBC88\uD638, \uC774\uBA54\uC77C, \uC8FC\uC18C \uB4F1\uC740 \uB85C\uADF8/\uC751\uB2F5/\uC800\uC7A5 \uC2DC \uB9C8\uC2A4\uD0B9 \uB610\uB294 \uC554\uD638\uD654\uB97C \uC900\uC218\uD574\uC57C \uD55C\uB2E4.\n- \uC2B9\uC778\uB41C \uC554\uD638\uD654 \uCCB4\uACC4\uC640 \uC0AC\uB0B4 \uD45C\uC900 \uB77C\uC774\uBE0C\uB7EC\uB9AC \uC0AC\uC6A9\uC774 \uC804\uC81C\uB41C\uB2E4.\n\n### \uC774\uBCA4\uD2B8 / Redis\n\n- \uC11C\uBC84 \uB0B4\uBD80 \uD6C4\uCC98\uB9AC \uBD84\uB9AC\uAC00 \uD544\uC694\uD558\uBA74 `ApplicationEventPublisher`, `@EventListener`, `@Async`, `@TransactionalEventListener`\uB97C \uD65C\uC6A9\uD55C\uB2E4.\n- \uC774\uBCA4\uD2B8 \uAC1D\uCCB4\uB294 \uBD88\uBCC0 \uAC1D\uCCB4\uB97C \uC6B0\uC120\uD55C\uB2E4.\n- Redis Pub/Sub\uB294 \uACBD\uB7C9 \uBE0C\uB85C\uB4DC\uCE90\uC2A4\uD2B8 \uC6A9\uB3C4\uC5D0 \uC801\uD569\uD558\uC9C0\uB9CC, \uC21C\uC11C \uBCF4\uC7A5/\uB0B4\uAD6C\uC131/\uC7AC\uC2DC\uB3C4 \uBCF4\uC7A5\uC774 \uC57D\uD558\uBBC0\uB85C \uBB34\uAC70\uC6B4 \uC5C5\uBB34 \uC774\uBCA4\uD2B8\uC5D0\uB294 \uC2E0\uC911\uD574\uC57C \uD55C\uB2E4.\n\n### \uD3EC\uB9F7\uD305 / \uC124\uC815\n\n- Java \uD3EC\uB9F7\uD305\uC740 Spotless + googleJavaFormat \uC801\uC6A9 \uC608\uC2DC\uAC00 \uC788\uB2E4.\n- \uD658\uACBD\uC124\uC815 \uD0A4\uB294 \uACC4\uCE35\uD615 \uAD6C\uC870\uB97C \uC720\uC9C0\uD558\uACE0, \uC608\uC2DC\uC0C1 kebab-case \uD0A4\uB97C \uC0AC\uC6A9\uD55C\uB2E4.\n- \uC804\uC0AC \uD45C\uC900 \uBB38\uC11C \uAE30\uC900\uC73C\uB85C Java \uCF54\uB529 \uD45C\uC900\uC5D0\uB294 import, \uB4E4\uC5EC\uC4F0\uAE30, \uC911\uAD04\uD638, \uB744\uC5B4\uC4F0\uAE30, \uD074\uB798\uC2A4 \uBA64\uBC84 \uC815\uB82C, `try-catch`, \uC8FC\uC11D \uC791\uC131 \uC6D0\uCE59, \uD2B8\uB79C\uC7AD\uC158 \uADDC\uCE59\uC774 \uD3EC\uD568\uB41C\uB2E4.\n- \uC2A4\uD504\uB9C1 \uBE48\uC5D0 \uC694\uCCAD\uBCC4 \uAC00\uBCC0 \uC0C1\uD0DC\uB97C \uB2F4\uB294 \uC778\uC2A4\uD134\uC2A4 \uBCC0\uC218 \uC0AC\uC6A9\uC740 \uC2E0\uC911\uD574\uC57C \uD558\uBA70, \uB9AC\uBDF0 \uC2DC \uC0C1\uD0DC \uACF5\uC720 \uC704\uD5D8\uC744 \uAC19\uC774 \uD655\uC778\uD558\uB294 \uAC83\uC774 \uC801\uC808\uD558\uB2E4.\n- NXL \uD45C\uC900\uC740 `import *` \uAE08\uC9C0, `System.out.println()` \uAE08\uC9C0, `Map` \uAE30\uBC18 DTO \uC804\uB2EC \uAE08\uC9C0, `@Data` \uC9C0\uC591, \uAC1C\uC778\uC815\uBCF4 DTO\uC758 `@ToString` \uAE08\uC9C0 \uAC19\uC740 \uAD6C\uCCB4 \uADDC\uCE59\uC744 \uD3EC\uD568\uD55C\uB2E4.\n- SQL \uAE30\uC900\uC5D0\uB294 ANSI SQL \uC900\uC218, Alias \uC601\uBB38/\uC22B\uC790 \uC0AC\uC6A9, \uBD88\uD544\uC694\uD55C \uD504\uB85C\uC2DC\uC800/\uD568\uC218 \uC9C0\uC591, MyBatis `namespace`/`SQL_ID` \uADDC\uCE59 \uC900\uC218 \uB4F1\uC774 \uD3EC\uD568\uB41C\uB2E4.\n\n## \uB9AC\uBDF0 \uADDC\uCE59\uC73C\uB85C \uBCC0\uD658\uD560 \uB54C\uC758 \uD574\uC11D \uD3EC\uC778\uD2B8\n\n- \uC774 \uBB38\uC11C\uB4E4\uC758 \uBAA9\uC801\uC740 \u201C\uC88B\uC544 \uBCF4\uC774\uB294 \uC77C\uBC18\uB860\u201D\uBCF4\uB2E4 \u201C\uD604\uC7AC \uC870\uC9C1/\uD504\uB85C\uC81D\uD2B8 \uD45C\uC900 \uC704\uBC18 \uC5EC\uBD80\u201D\uB97C \uC7A1\uB294 \uAC83\uC774\uB2E4.\n- \uB2E4\uB9CC \uD658\uACBD \uBC84\uC804, \uD234 \uBC84\uC804, \uC77C\uBD80 \uB808\uAC70\uC2DC \uCDE8\uD5A5 \uADDC\uCE59\uC740 \uD604\uC7AC \uD504\uB85C\uC81D\uD2B8\uC640 \uCDA9\uB3CC\uD560 \uC218 \uC788\uC73C\uBBC0\uB85C \uAC15\uC81C \uADDC\uCE59\uC774 \uC544\uB2C8\uB77C \uCC38\uACE0 \uC218\uC900\uC73C\uB85C\uB9CC \uBC18\uC601\uD558\uB294 \uAC83\uC774 \uC801\uC808\uD558\uB2E4.\n- \uB530\uB77C\uC11C \uB9AC\uBDF0 \uADDC\uCE59\uC740 \uC544\uB798 \uC21C\uC11C\uB85C \uD310\uB2E8\uD558\uB3C4\uB85D \uAD6C\uC131\uD558\uB294 \uAC83\uC774 \uC801\uC808\uD558\uB2E4.\n  1. \uACC4\uCE35 \uCC45\uC784 \uC704\uBC18\n  2. API \uACC4\uC57D \uC704\uBC18\n  3. \uC608\uC678/\uD2B8\uB79C\uC7AD\uC158/\uC751\uB2F5 \uCC98\uB9AC \uC704\uBC18\n  4. \uAC1C\uC778\uC815\uBCF4/\uB85C\uADF8/\uBCF4\uC548 \uC704\uBC18\n  5. \uBA85\uBA85/\uD328\uD0A4\uC9C0/\uD3EC\uB9F7\uD305 \uC704\uBC18\n";

// src/platform/assets/rules/be/index.ts
var sharedBeCommitRuleReference = createPromptMarkdownFileAsset(
  (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)),
  "src/platform/assets/rules/be/commit.md"
);
var sharedBeDspBeGuideRuleReference = createPromptMarkdownFileAsset(
  (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)),
  "src/platform/assets/rules/be/dsp-be-guide.md"
);
var sharedBeReferenceSummaryRuleReference = createPromptMarkdownFileAsset(
  (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)),
  "src/platform/assets/rules/be/reference-summary.md"
);
var sharedBeCommitRule = commit_default;
var sharedBeDspBeGuideRule = dsp_be_guide_default;
var sharedBeReferenceSummaryRule = reference_summary_default;
var sharedBeRuleAssets = {
  commitRule: commit_default,
  dspBeGuideRule: dsp_be_guide_default,
  referenceSummaryRule: reference_summary_default
};
var sharedBePromptRuleAssets = {
  commitRule: sharedBeCommitRuleReference,
  dspBeGuideRule: sharedBeDspBeGuideRuleReference,
  referenceSummaryRule: sharedBeReferenceSummaryRuleReference
};

exports.sharedBeCommitRule = sharedBeCommitRule;
exports.sharedBeCommitRuleReference = sharedBeCommitRuleReference;
exports.sharedBeDspBeGuideRule = sharedBeDspBeGuideRule;
exports.sharedBeDspBeGuideRuleReference = sharedBeDspBeGuideRuleReference;
exports.sharedBePromptRuleAssets = sharedBePromptRuleAssets;
exports.sharedBeReferenceSummaryRule = sharedBeReferenceSummaryRule;
exports.sharedBeReferenceSummaryRuleReference = sharedBeReferenceSummaryRuleReference;
exports.sharedBeRuleAssets = sharedBeRuleAssets;
