From 538b4875db64e19b01441f065f7142412c34963b Mon Sep 17 00:00:00 2001 From: umsangdon Date: Fri, 17 Jul 2026 09:01:29 +0900 Subject: [PATCH] chore: remove docs directory from git tracking and sync changes --- .gitignore | 45 + A07_Register/A07_Register_Router.py | 15 +- common_util/common_util_auth.py | 7 +- docs/.obsidian/app.json | 3 - docs/.obsidian/appearance.json | 1 - docs/.obsidian/community-plugins.json | 1 - docs/.obsidian/core-plugins.json | 33 - docs/.obsidian/graph.json | 22 - docs/.obsidian/workspace.json | 222 - docs/AGENTS.md | 111 - docs/CLAUDE.md | 111 - docs/output/AGENTS.md | 7 - docs/output/CLAUDE.md | 7 - docs/raw/AGENTS.md | 15 - docs/raw/CLAUDE.md | 15 - docs/raw/PLAN.md | 24 - docs/raw/guidelines/agent.md | 200 - docs/raw/guidelines/backend.md | 300 - docs/raw/guidelines/db_schema.md | 851 -- docs/raw/guidelines/design.md | 445 - docs/raw/guidelines/frontend.md | 120 - docs/raw/guidelines/migration_plan.md | 278 - docs/raw/guidelines/structure.md | 189 - .../plans/plan_workflow_state_management.md | 207 - .../2026-07-12_verify_add_phase4_role.md | 8 - docs/wiki 관리 이유.md | 8 - docs/wiki/AGENTS.md | 20 - docs/wiki/CLAUDE.md | 20 - docs/wiki/concepts/a00_app_shell_framework.md | 86 - .../a00_app_shell_framework_scaffold.md | 37 - docs/wiki/concepts/api_common.md | 27 - docs/wiki/concepts/auth_rbac.md | 69 - docs/wiki/concepts/common_util.md | 35 - docs/wiki/concepts/db_schema/files_surface.md | 95 - .../concepts/db_schema/logs_monitoring.md | 102 - docs/wiki/concepts/db_schema/overview.md | 64 - docs/wiki/concepts/db_schema/projects.md | 56 - docs/wiki/concepts/db_schema/route_profile.md | 69 - .../concepts/db_schema/structure_output.md | 70 - .../concepts/db_schema/unconfirmed/README.md | 7 - docs/wiki/concepts/db_schema/users_auth.md | 92 - docs/wiki/concepts/dependencies.md | 36 - docs/wiki/concepts/schema_common.md | 19 - docs/wiki/concepts/storage_paths.md | 36 - docs/wiki/concepts/ui_templates.md | 85 - docs/wiki/concepts/workflow_state.md | 74 - docs/wiki/graphify-out/.graphify_labels.json | 48 - docs/wiki/graphify-out/.graphify_root | 1 - docs/wiki/graphify-out/GRAPH_REPORT.md | 275 - ...9630e320fd97ac8bfcec25673ffef09e4d059.json | 1 - ...d084ff2d4d330ad6ed1e67b99ee2b144d4d7d.json | 1 - ...4436bfa31f27f00ed2057e251ff2f7a31623a.json | 1 - ...de504af4b359fb90f4b29ba9688d1d6e17d2e.json | 1 - ...03d5dbd50d4d0b51975d3a17b60f7780055ca.json | 1 - ...5411d8b86d513511ea6df46b3348775ca49a4.json | 1 - ...1e324a92f283cd57fa229bc6d47bb5224d32b.json | 1 - ...6143b93b6e1c0a7e1073d8c15e0cdddbeb171.json | 1 - ...e6c96776d60ed81e47cd559330fd26a8da829.json | 1 - ...843557fcfffe8364feccc7ebc92f3ddc04155.json | 1 - ...085bf5df4a98ba74866cbe2f8697b00379869.json | 1 - ...05b84faf8b3e44cc65a78ac00683ff4cc92ea.json | 1 - ...d3fb89dbd706320402a4eccb759b58281fa0a.json | 1 - ...e801796b07a63f6a114bd2a2109e0b5806e12.json | 1 - ...1c1b0ff6b6f91aa809ee33b6be89c57ccd9fa.json | 1 - ...e58347f2b10bcc8843f04fffa74fbdca4d2a7.json | 1 - ...d57ad41156fa1bf6f636be896aa2d44899709.json | 1 - ...94b28850890191432179205576bde15298bf5.json | 1 - ...c2ac0767eeec0172efa0542cb863877908fcb.json | 1 - ...b552f3c4918332701b292c8140bd177fae0f3.json | 1 - ...3de2a3fd70d54fdde9b2002e15145901824c1.json | 1 - ...ac795f30c714099326f504dcf44364ffdfd63.json | 1 - ...03400b6239ad5460dfad3ccdeb03da87f41fb.json | 1 - ...a52131bedb7f8a770ad07dc99148df7e87c5b.json | 1 - ...fd9af63de315e299c5bfaa734f3dc729d25a1.json | 1 - ...11f92d55600a624ab7905ccbc6e3ad42a3352.json | 1 - ...536726d973ee824de69be0d36d0a60322cdaa.json | 1 - ...88633a2c58d466bff1f2e195d8ad42e74d686.json | 1 - ...d4b90fe7405d00db5ca205080ab8b2fcba450.json | 1 - ...ee06ec3918a47e2e33f1bba85cc3d586c424c.json | 1 - ...203c800db677004bc8ae75c253e28b0464ee1.json | 1 - ...6e3aefea664dc1af074865d994a02ceea83e7.json | 1 - ...a5354565d898bbb2169efed8ae55d8aba79cc.json | 1 - ...0488bcb975554ef4227b5d294117aa14d35bc.json | 1 - ...cff4eba1d7a96287360cb7c92afbf09ce3094.json | 1 - ...c865bd82059e3dd905065e164202716f19204.json | 1 - ...5cf4a4f34c2c07d0b440fe86da472081038b8.json | 1 - ...21d7179a7ae138805534d5a8f104afc477a40.json | 1 - ...ed9c5c4381d26906e595e1bf74b413f559880.json | 1 - ...245df62a5739b3547ecf4cabbdad69ea26f7d.json | 1 - ...ec59bea00a7f2d0eee6bacc57ecbf7b4f7e04.json | 1 - ...a4dfcd67d6a13bcfed08f9280892d055b7aec.json | 1 - ...ff3d9f78d8a6b70c16341450a63a15eea1e79.json | 1 - ...3e7a3d3a4a7c9d3c18d6994a3d65420b74bd8.json | 1 - ...b422cac5171f209ac35465cb3cf6afd457c55.json | 1 - ...99ffb11804957097d503d81077bbf581c6403.json | 1 - ...d4b9e8ef66c3d8458b9ea16a3f73dd370fe52.json | 1 - ...83c70b5229be9c7f932926aeb285b77807561.json | 1 - ...74905fe22139f5b049c3f7dc0ad6534c378cf.json | 1 - ...b219a2b94edecb3285f81207390133befebed.json | 1 - ...ecdc4407e949a7aa702a13130c8e1b70920ec.json | 1 - ...7d9d1e1c542bc8b65333fd5579891c9857361.json | 1 - ...506e5c74fa12760a92b9d72930d4a96d07742.json | 1 - ...4dfff812e4362029bf2900537a635cea03345.json | 1 - ...067fd18e7d17a741c99321bd6c782e82c7c82.json | 1 - ...ba29d570264ad0322202e9f907db6a7cd5717.json | 1 - ...d2a7813c06e0dc3f073f5680c831ecf7292f0.json | 1 - ...24e1459355dd7538f1577120a4b7ec9f8a0b6.json | 1 - ...6824b1050d0df0b0ee7719b7da9115e3e9d5b.json | 1 - ...9f371698a1070a1adbdffb079bbdb1ce3eb2c.json | 1 - ...9361b91e27034b72846bf1083ee3a0b9aaf35.json | 1 - ...8efd22932d394b41f00de2f065920df19c7b7.json | 1 - ...4df0f5db7fc40240c9b2dea195710e80aa456.json | 1 - ...28ca167883c8abfb32eff54161c461fcde509.json | 1 - ...82b3cf72360db91b22dd9337ef082385050cb.json | 1 - ...4dc21dc761794e098626c17dfffe673b47711.json | 1 - ...b5c4381fb4e5151386baa77d1ca9e6ce185a9.json | 1 - ...0a4b864c03ee044607301107af0e64c3d9bd9.json | 1 - ...6a67a90cebd48ce726060f43d64c696689583.json | 1 - docs/wiki/graphify-out/cache/stat-index.json | 1 - docs/wiki/graphify-out/graph.html | 307 - docs/wiki/graphify-out/graph.json | 10421 ---------------- docs/wiki/graphify-out/manifest.json | 347 - docs/wiki/index.md | 119 - docs/wiki/log.md | 330 - docs/wiki/pages/A01_Home/A01_components.md | 37 - docs/wiki/pages/A01_Home/A01_frontend.md | 60 - .../pages/A02_ProgDetail/A02_components.md | 38 - .../wiki/pages/A02_ProgDetail/A02_frontend.md | 33 - .../wiki/pages/A03_CompDetail/A03_frontend.md | 67 - .../pages/A04_NewsHistory/A04_frontend.md | 86 - docs/wiki/pages/A05_EduDetail/A05_frontend.md | 69 - docs/wiki/pages/A06_Login/A06_backend.md | 70 - docs/wiki/pages/A06_Login/A06_frontend.md | 85 - docs/wiki/pages/A07_Register/A07_backend.md | 57 - docs/wiki/pages/A07_Register/A07_frontend.md | 91 - docs/wiki/pages/A08_Support/A08_backend.md | 67 - docs/wiki/pages/A08_Support/A08_frontend.md | 76 - docs/wiki/pages/A09_Security/A09_backend.md | 77 - docs/wiki/pages/A09_Security/A09_frontend.md | 78 - docs/wiki/pages/B01_Dashboard/B01_api.md | 59 - docs/wiki/pages/B01_Dashboard/B01_backend.md | 58 - docs/wiki/pages/B01_Dashboard/B01_db.md | 32 - .../pages/B01_Dashboard/B01_dependencies.md | 29 - docs/wiki/pages/B01_Dashboard/B01_frontend.md | 55 - .../pages/B02_ProjRegister/B02_backend.md | 72 - docs/wiki/pages/B02_ProjRegister/B02_db.md | 30 - .../pages/B02_ProjRegister/B02_frontend.md | 83 - docs/wiki/pages/B03_FileInput/B03_api.md | 32 - docs/wiki/pages/B03_FileInput/B03_backend.md | 49 - docs/wiki/pages/B03_FileInput/B03_db.md | 29 - .../pages/B03_FileInput/B03_dependencies.md | 30 - docs/wiki/pages/B03_FileInput/B03_frontend.md | 46 - docs/wiki/pages/B04_wf1_Surface/B04_api.md | 43 - .../wiki/pages/B04_wf1_Surface/B04_backend.md | 71 - docs/wiki/pages/B04_wf1_Surface/B04_db.md | 34 - .../pages/B04_wf1_Surface/B04_dependencies.md | 34 - .../pages/B04_wf1_Surface/B04_frontend.md | 66 - docs/wiki/pages/B05_wf2_Route/B05_api.md | 28 - docs/wiki/pages/B05_wf2_Route/B05_backend.md | 50 - docs/wiki/pages/B05_wf2_Route/B05_db.md | 36 - .../pages/B05_wf2_Route/B05_dependencies.md | 29 - docs/wiki/pages/B05_wf2_Route/B05_frontend.md | 44 - .../pages/B06_wf3_ProfileCross/B06_api.md | 28 - .../pages/B06_wf3_ProfileCross/B06_backend.md | 43 - .../wiki/pages/B06_wf3_ProfileCross/B06_db.md | 35 - .../B06_wf3_ProfileCross/B06_dependencies.md | 27 - .../B06_wf3_ProfileCross/B06_frontend.md | 40 - .../B07_wf4_DesignDetail/B07_frontend.md | 45 - docs/wiki/pages/B08_wf5_Quantity/B08_db.md | 29 - .../pages/B08_wf5_Quantity/B08_frontend.md | 42 - .../pages/B09_wf6_Estimation/B09_frontend.md | 45 - 171 files changed, 62 insertions(+), 18564 deletions(-) create mode 100644 .gitignore delete mode 100644 docs/.obsidian/app.json delete mode 100644 docs/.obsidian/appearance.json delete mode 100644 docs/.obsidian/community-plugins.json delete mode 100644 docs/.obsidian/core-plugins.json delete mode 100644 docs/.obsidian/graph.json delete mode 100644 docs/.obsidian/workspace.json delete mode 100644 docs/AGENTS.md delete mode 100644 docs/CLAUDE.md delete mode 100644 docs/output/AGENTS.md delete mode 100644 docs/output/CLAUDE.md delete mode 100644 docs/raw/AGENTS.md delete mode 100644 docs/raw/CLAUDE.md delete mode 100644 docs/raw/PLAN.md delete mode 100644 docs/raw/guidelines/agent.md delete mode 100644 docs/raw/guidelines/backend.md delete mode 100644 docs/raw/guidelines/db_schema.md delete mode 100644 docs/raw/guidelines/design.md delete mode 100644 docs/raw/guidelines/frontend.md delete mode 100644 docs/raw/guidelines/migration_plan.md delete mode 100644 docs/raw/guidelines/structure.md delete mode 100644 docs/raw/plans/plan_workflow_state_management.md delete mode 100644 docs/raw/verification/2026-07-12_verify_add_phase4_role.md delete mode 100644 docs/wiki 관리 이유.md delete mode 100644 docs/wiki/AGENTS.md delete mode 100644 docs/wiki/CLAUDE.md delete mode 100644 docs/wiki/concepts/a00_app_shell_framework.md delete mode 100644 docs/wiki/concepts/a00_app_shell_framework_scaffold.md delete mode 100644 docs/wiki/concepts/api_common.md delete mode 100644 docs/wiki/concepts/auth_rbac.md delete mode 100644 docs/wiki/concepts/common_util.md delete mode 100644 docs/wiki/concepts/db_schema/files_surface.md delete mode 100644 docs/wiki/concepts/db_schema/logs_monitoring.md delete mode 100644 docs/wiki/concepts/db_schema/overview.md delete mode 100644 docs/wiki/concepts/db_schema/projects.md delete mode 100644 docs/wiki/concepts/db_schema/route_profile.md delete mode 100644 docs/wiki/concepts/db_schema/structure_output.md delete mode 100644 docs/wiki/concepts/db_schema/unconfirmed/README.md delete mode 100644 docs/wiki/concepts/db_schema/users_auth.md delete mode 100644 docs/wiki/concepts/dependencies.md delete mode 100644 docs/wiki/concepts/schema_common.md delete mode 100644 docs/wiki/concepts/storage_paths.md delete mode 100644 docs/wiki/concepts/ui_templates.md delete mode 100644 docs/wiki/concepts/workflow_state.md delete mode 100644 docs/wiki/graphify-out/.graphify_labels.json delete mode 100644 docs/wiki/graphify-out/.graphify_root delete mode 100644 docs/wiki/graphify-out/GRAPH_REPORT.md delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/0624d255f06a43b161abeb6fdee9630e320fd97ac8bfcec25673ffef09e4d059.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/0b2cdc6e3ca674d334281585329d084ff2d4d330ad6ed1e67b99ee2b144d4d7d.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/0dddf33216964b4bf97f34f8bce4436bfa31f27f00ed2057e251ff2f7a31623a.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/0f5b6dbb9bebbfa33f4d635f070de504af4b359fb90f4b29ba9688d1d6e17d2e.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/118279706a1eb23a45441e1ff8903d5dbd50d4d0b51975d3a17b60f7780055ca.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/145e767fcb59085a1ee13d461285411d8b86d513511ea6df46b3348775ca49a4.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/186d47f554f2e797fb63a3167221e324a92f283cd57fa229bc6d47bb5224d32b.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/1b226e5d018fc38a72090165fa26143b93b6e1c0a7e1073d8c15e0cdddbeb171.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/1d05c804dd886b8148e1a246412e6c96776d60ed81e47cd559330fd26a8da829.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/1dad047374ae3b973fcdcaa189f843557fcfffe8364feccc7ebc92f3ddc04155.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/1e373af97a118ae3015a3afa398085bf5df4a98ba74866cbe2f8697b00379869.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/1e9e4be64167f23705811ee00b005b84faf8b3e44cc65a78ac00683ff4cc92ea.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/2511b51e4eb20cf62e268122c88d3fb89dbd706320402a4eccb759b58281fa0a.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/2808d040f080236ab87ff5d059ee801796b07a63f6a114bd2a2109e0b5806e12.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/29bd2bdc39958157c52fe4e872b1c1b0ff6b6f91aa809ee33b6be89c57ccd9fa.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/2be5bc2fd35d20f0f1eb7c1c707e58347f2b10bcc8843f04fffa74fbdca4d2a7.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/2db81e60642ebe8f3ec8f7c3673d57ad41156fa1bf6f636be896aa2d44899709.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/32b6d000932825989e419a4136794b28850890191432179205576bde15298bf5.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/36e9c3aa280793956998877458fc2ac0767eeec0172efa0542cb863877908fcb.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/37aa0d07aa6c480aa555897c7a3b552f3c4918332701b292c8140bd177fae0f3.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/3db683a2cde7e94a133978113563de2a3fd70d54fdde9b2002e15145901824c1.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/430bcc25e31726266357a8339dcac795f30c714099326f504dcf44364ffdfd63.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/464194e04c304a155a3445c411403400b6239ad5460dfad3ccdeb03da87f41fb.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/474c775ef5ef23ed26e38b39828a52131bedb7f8a770ad07dc99148df7e87c5b.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/479a8e4089e3bb7a2cc81032c56fd9af63de315e299c5bfaa734f3dc729d25a1.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/49fd7d94d4b60db667d3b09b49911f92d55600a624ab7905ccbc6e3ad42a3352.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/4a5f18486fb810daf3f1c5b1551536726d973ee824de69be0d36d0a60322cdaa.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/4b09b67e025ab679214a595ed4288633a2c58d466bff1f2e195d8ad42e74d686.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/4df26e4d9121bc917f5542182c4d4b90fe7405d00db5ca205080ab8b2fcba450.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/50e6b6bf0066bb5b891dbcf8988ee06ec3918a47e2e33f1bba85cc3d586c424c.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/52811408853b074f152e72eca98203c800db677004bc8ae75c253e28b0464ee1.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/54d5ac3300a973b62932c4e49e96e3aefea664dc1af074865d994a02ceea83e7.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/5fec6364bd060aef3f2afe819bea5354565d898bbb2169efed8ae55d8aba79cc.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/645ae1caf18f1055571c195d5af0488bcb975554ef4227b5d294117aa14d35bc.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/646d6ab79be622a7ff0a6e70be8cff4eba1d7a96287360cb7c92afbf09ce3094.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/671505750d39bdfee5448654c63c865bd82059e3dd905065e164202716f19204.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/777dc18c8da82ae19d1ef4696015cf4a4f34c2c07d0b440fe86da472081038b8.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/7a20bcee60ba41e229ef85f767421d7179a7ae138805534d5a8f104afc477a40.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/7b7b025371ec01828e5296e1181ed9c5c4381d26906e595e1bf74b413f559880.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/7fb3857a81e71036c1ce149c4b7245df62a5739b3547ecf4cabbdad69ea26f7d.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/864c1304191de6468d4edc50434ec59bea00a7f2d0eee6bacc57ecbf7b4f7e04.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/87a19225130d879a47fa512b619a4dfcd67d6a13bcfed08f9280892d055b7aec.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/890159057c1b315dc2f987cc22cff3d9f78d8a6b70c16341450a63a15eea1e79.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/8d85ff410419578b818f52078b23e7a3d3a4a7c9d3c18d6994a3d65420b74bd8.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/90d7356198e73e4cc9f6377549bb422cac5171f209ac35465cb3cf6afd457c55.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/913554bc65be372e31038c5b6db99ffb11804957097d503d81077bbf581c6403.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/9216484c57c256629ee59314bc7d4b9e8ef66c3d8458b9ea16a3f73dd370fe52.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/944204e569fb7c208be3dd6b08b83c70b5229be9c7f932926aeb285b77807561.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/9691ebb53407e479750a796e82774905fe22139f5b049c3f7dc0ad6534c378cf.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/97478cabbb537844beae71898c5b219a2b94edecb3285f81207390133befebed.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/981095fcec47154f4626fb3eab7ecdc4407e949a7aa702a13130c8e1b70920ec.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/a38a8ca962fdacc272da8439e0d7d9d1e1c542bc8b65333fd5579891c9857361.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/a6d3afe6fc8285143b839973bd8506e5c74fa12760a92b9d72930d4a96d07742.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/aacc52798876b1c9f1528049e014dfff812e4362029bf2900537a635cea03345.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/ab34ed804dca07323ea78583add067fd18e7d17a741c99321bd6c782e82c7c82.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/b274d5ee1fd61e7bc3013ac1dfaba29d570264ad0322202e9f907db6a7cd5717.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/bc8f362e6683fa0ae51daf283b5d2a7813c06e0dc3f073f5680c831ecf7292f0.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/c0a1926f8af61577dc912e4ca9824e1459355dd7538f1577120a4b7ec9f8a0b6.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/c3a3a40df2648ee75578c94723b6824b1050d0df0b0ee7719b7da9115e3e9d5b.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/c6652706034c525ffeec3bbaf4f9f371698a1070a1adbdffb079bbdb1ce3eb2c.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/c7645ac1d9ed01c49738b733aa69361b91e27034b72846bf1083ee3a0b9aaf35.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/c82e36238d3bc7e9f58d7a65a208efd22932d394b41f00de2f065920df19c7b7.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/dbc60034a717404e311f43e3f724df0f5db7fc40240c9b2dea195710e80aa456.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/dc48367a69497d4965a076e5baa28ca167883c8abfb32eff54161c461fcde509.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/dc90c884f2f276e80a57bfc0e2b82b3cf72360db91b22dd9337ef082385050cb.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/e5a0d7854dc5f172c997de38f2c4dc21dc761794e098626c17dfffe673b47711.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/ec26c30de18a4df2b859538b4a3b5c4381fb4e5151386baa77d1ca9e6ce185a9.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/f43d7fb7c134b25445c9b5d16d30a4b864c03ee044607301107af0e64c3d9bd9.json delete mode 100644 docs/wiki/graphify-out/cache/ast/v0.9.12/f849b661543b4f07113704a24786a67a90cebd48ce726060f43d64c696689583.json delete mode 100644 docs/wiki/graphify-out/cache/stat-index.json delete mode 100644 docs/wiki/graphify-out/graph.html delete mode 100644 docs/wiki/graphify-out/graph.json delete mode 100644 docs/wiki/graphify-out/manifest.json delete mode 100644 docs/wiki/index.md delete mode 100644 docs/wiki/log.md delete mode 100644 docs/wiki/pages/A01_Home/A01_components.md delete mode 100644 docs/wiki/pages/A01_Home/A01_frontend.md delete mode 100644 docs/wiki/pages/A02_ProgDetail/A02_components.md delete mode 100644 docs/wiki/pages/A02_ProgDetail/A02_frontend.md delete mode 100644 docs/wiki/pages/A03_CompDetail/A03_frontend.md delete mode 100644 docs/wiki/pages/A04_NewsHistory/A04_frontend.md delete mode 100644 docs/wiki/pages/A05_EduDetail/A05_frontend.md delete mode 100644 docs/wiki/pages/A06_Login/A06_backend.md delete mode 100644 docs/wiki/pages/A06_Login/A06_frontend.md delete mode 100644 docs/wiki/pages/A07_Register/A07_backend.md delete mode 100644 docs/wiki/pages/A07_Register/A07_frontend.md delete mode 100644 docs/wiki/pages/A08_Support/A08_backend.md delete mode 100644 docs/wiki/pages/A08_Support/A08_frontend.md delete mode 100644 docs/wiki/pages/A09_Security/A09_backend.md delete mode 100644 docs/wiki/pages/A09_Security/A09_frontend.md delete mode 100644 docs/wiki/pages/B01_Dashboard/B01_api.md delete mode 100644 docs/wiki/pages/B01_Dashboard/B01_backend.md delete mode 100644 docs/wiki/pages/B01_Dashboard/B01_db.md delete mode 100644 docs/wiki/pages/B01_Dashboard/B01_dependencies.md delete mode 100644 docs/wiki/pages/B01_Dashboard/B01_frontend.md delete mode 100644 docs/wiki/pages/B02_ProjRegister/B02_backend.md delete mode 100644 docs/wiki/pages/B02_ProjRegister/B02_db.md delete mode 100644 docs/wiki/pages/B02_ProjRegister/B02_frontend.md delete mode 100644 docs/wiki/pages/B03_FileInput/B03_api.md delete mode 100644 docs/wiki/pages/B03_FileInput/B03_backend.md delete mode 100644 docs/wiki/pages/B03_FileInput/B03_db.md delete mode 100644 docs/wiki/pages/B03_FileInput/B03_dependencies.md delete mode 100644 docs/wiki/pages/B03_FileInput/B03_frontend.md delete mode 100644 docs/wiki/pages/B04_wf1_Surface/B04_api.md delete mode 100644 docs/wiki/pages/B04_wf1_Surface/B04_backend.md delete mode 100644 docs/wiki/pages/B04_wf1_Surface/B04_db.md delete mode 100644 docs/wiki/pages/B04_wf1_Surface/B04_dependencies.md delete mode 100644 docs/wiki/pages/B04_wf1_Surface/B04_frontend.md delete mode 100644 docs/wiki/pages/B05_wf2_Route/B05_api.md delete mode 100644 docs/wiki/pages/B05_wf2_Route/B05_backend.md delete mode 100644 docs/wiki/pages/B05_wf2_Route/B05_db.md delete mode 100644 docs/wiki/pages/B05_wf2_Route/B05_dependencies.md delete mode 100644 docs/wiki/pages/B05_wf2_Route/B05_frontend.md delete mode 100644 docs/wiki/pages/B06_wf3_ProfileCross/B06_api.md delete mode 100644 docs/wiki/pages/B06_wf3_ProfileCross/B06_backend.md delete mode 100644 docs/wiki/pages/B06_wf3_ProfileCross/B06_db.md delete mode 100644 docs/wiki/pages/B06_wf3_ProfileCross/B06_dependencies.md delete mode 100644 docs/wiki/pages/B06_wf3_ProfileCross/B06_frontend.md delete mode 100644 docs/wiki/pages/B07_wf4_DesignDetail/B07_frontend.md delete mode 100644 docs/wiki/pages/B08_wf5_Quantity/B08_db.md delete mode 100644 docs/wiki/pages/B08_wf5_Quantity/B08_frontend.md delete mode 100644 docs/wiki/pages/B09_wf6_Estimation/B09_frontend.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..bce1f1b7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,45 @@ +# 에이전트 및 IDE 설정 +.agent/ +.agents/ +.claude/ +.codex/ +.dependencygraph/ +.ruff_cache/ +.vscode/ +.workspace/ + +# 보안 및 환경 변수 +# .env +# .env.local +# .env.*.local + +# Python 캐시 및 가상환경 +venv/ +__pycache__/ +**/__pycache__/ +*.pyc +**/*.pyc +**/*.pyo +**/*.pyd +.pytest_cache/ +.ruff_cache/ +.mypy_cache/ + +# Node / Frontend +node_modules/ +dist/ +*.tsbuildinfo + +# 저장소 및 백업 데이터 +storage/ +0_old/ +docs/ + +# 로그 파일 +*.log + +# 루트 폴더 특정 파일 무시 (사용자 요청) +/.prettierrc +/.gitignore +/AGENTS.md +/CLAUDE.md \ No newline at end of file diff --git a/A07_Register/A07_Register_Router.py b/A07_Register/A07_Register_Router.py index 1fc558fb..4ceef3bd 100644 --- a/A07_Register/A07_Register_Router.py +++ b/A07_Register/A07_Register_Router.py @@ -2,9 +2,14 @@ from datetime import datetime -from fastapi import APIRouter, HTTPException, Query +from fastapi import APIRouter, HTTPException, Query, Request -from common_util.common_util_auth import generate_otp, hash_password, verify_password +from common_util.common_util_auth import ( + generate_otp, + hash_password, + hash_user_agent, + verify_password, +) from common_util.common_util_auth_repository import ( complete_registration, consume_otp, @@ -14,6 +19,7 @@ from common_util.common_util_auth_repository import ( refresh_pending_registration, replace_otp, search_companies, + trust_browser, ) from common_util.common_util_email import send_email_background from common_util.common_util_email_templates import otp_email @@ -54,7 +60,7 @@ async def request_registration(payload: RegisterRequest): @router.post("/register/verify") -async def verify_registration(payload: RegisterVerifyRequest): +async def verify_registration(payload: RegisterVerifyRequest, request: Request): user = await get_user_by_email(str(payload.email).lower()) if not user or user["status"] != "PENDING_EMAIL": raise HTTPException(status_code=400, detail="인증 대기 중인 가입 요청이 없습니다.") @@ -67,6 +73,9 @@ async def verify_registration(payload: RegisterVerifyRequest): raise HTTPException(status_code=400, detail="인증 코드가 유효하지 않습니다.") await consume_otp(otp["id"]) await complete_registration(user["id"], bool(user["is_master"])) + # 가입 인증한 브라우저를 신뢰 등록하여 첫 로그인 시 OTP를 생략한다. + agent = request.headers.get("user-agent", "unknown")[:1000] + await trust_browser(user["id"], hash_user_agent(agent)) # 회원가입 시점에는 회사가 없으므로(NO_COMPANY) 마스터 알림은 발송하지 않는다. # 회사 생성/연결은 로그인 후 B01_Dashboard에서 진행한다. return { diff --git a/common_util/common_util_auth.py b/common_util/common_util_auth.py index c3d79f24..ab123962 100644 --- a/common_util/common_util_auth.py +++ b/common_util/common_util_auth.py @@ -1,6 +1,7 @@ """비밀번호, OTP, 세션 쿠키와 권한 검증 공통 기능.""" import hashlib +import re import secrets from datetime import datetime, timedelta from typing import Any @@ -32,7 +33,10 @@ def generate_otp() -> str: def hash_user_agent(user_agent: str) -> str: - return hashlib.sha256(user_agent.encode("utf-8")).hexdigest() + # 브라우저 버전 업데이트(예: Chrome/138 → 139)로 신뢰 브라우저가 풀리지 않도록 + # 버전 숫자를 제거한 뒤 해시한다. + normalized = re.sub(r"[\d.]+", "", user_agent) + return hashlib.sha256(normalized.encode("utf-8")).hexdigest() def set_session_cookie(response: Response, session_id: str) -> None: @@ -145,4 +149,3 @@ async def require_company( if session["company_id"] is None and session["role"] != "SYSTEM_ADMIN": raise HTTPException(status_code=403, detail="회사 연결이 필요합니다.") return session - diff --git a/docs/.obsidian/app.json b/docs/.obsidian/app.json deleted file mode 100644 index e609a07e..00000000 --- a/docs/.obsidian/app.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "promptDelete": false -} \ No newline at end of file diff --git a/docs/.obsidian/appearance.json b/docs/.obsidian/appearance.json deleted file mode 100644 index 9e26dfee..00000000 --- a/docs/.obsidian/appearance.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/docs/.obsidian/community-plugins.json b/docs/.obsidian/community-plugins.json deleted file mode 100644 index 0637a088..00000000 --- a/docs/.obsidian/community-plugins.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/docs/.obsidian/core-plugins.json b/docs/.obsidian/core-plugins.json deleted file mode 100644 index 639b90da..00000000 --- a/docs/.obsidian/core-plugins.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "file-explorer": true, - "global-search": true, - "switcher": true, - "graph": true, - "backlink": true, - "canvas": true, - "outgoing-link": true, - "tag-pane": true, - "footnotes": false, - "properties": true, - "page-preview": true, - "daily-notes": true, - "templates": true, - "note-composer": true, - "command-palette": true, - "slash-command": false, - "editor-status": true, - "bookmarks": true, - "markdown-importer": false, - "zk-prefixer": false, - "random-note": false, - "outline": true, - "word-count": true, - "slides": false, - "audio-recorder": false, - "workspaces": false, - "file-recovery": true, - "publish": false, - "sync": true, - "bases": true, - "webviewer": false -} \ No newline at end of file diff --git a/docs/.obsidian/graph.json b/docs/.obsidian/graph.json deleted file mode 100644 index aee24be5..00000000 --- a/docs/.obsidian/graph.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "collapse-filter": false, - "search": "", - "showTags": false, - "showAttachments": false, - "hideUnresolved": false, - "showOrphans": true, - "collapse-color-groups": false, - "colorGroups": [], - "collapse-display": false, - "showArrow": false, - "textFadeMultiplier": 0, - "nodeSizeMultiplier": 1, - "lineSizeMultiplier": 1, - "collapse-forces": false, - "centerStrength": 0.390625, - "repelStrength": 10, - "linkStrength": 1, - "linkDistance": 250, - "scale": 0.5359795996225794, - "close": false -} \ No newline at end of file diff --git a/docs/.obsidian/workspace.json b/docs/.obsidian/workspace.json deleted file mode 100644 index 030322c5..00000000 --- a/docs/.obsidian/workspace.json +++ /dev/null @@ -1,222 +0,0 @@ -{ - "main": { - "id": "99c9496f9af0d35f", - "type": "split", - "children": [ - { - "id": "030658548bffdd02", - "type": "tabs", - "children": [ - { - "id": "c66e6631a498571e", - "type": "leaf", - "state": { - "type": "graph", - "state": {}, - "icon": "lucide-git-fork", - "title": "그래프 뷰" - } - } - ] - } - ], - "direction": "vertical" - }, - "left": { - "id": "1fdf49368d0b8d12", - "type": "split", - "children": [ - { - "id": "286216e41ef17318", - "type": "tabs", - "children": [ - { - "id": "bf4a66eeb6ba12b7", - "type": "leaf", - "state": { - "type": "file-explorer", - "state": { - "sortOrder": "alphabetical", - "autoReveal": false - }, - "icon": "lucide-folder-closed", - "title": "파일 탐색기" - } - }, - { - "id": "d69b070685f35c13", - "type": "leaf", - "state": { - "type": "search", - "state": { - "query": "", - "matchingCase": false, - "explainSearch": false, - "collapseAll": false, - "extraContext": false, - "sortOrder": "alphabetical" - }, - "icon": "lucide-search", - "title": "검색" - } - }, - { - "id": "f48a2962a3eee224", - "type": "leaf", - "state": { - "type": "bookmarks", - "state": {}, - "icon": "lucide-bookmark", - "title": "북마크" - } - } - ] - } - ], - "direction": "horizontal", - "width": 439.5 - }, - "right": { - "id": "47e841f62a2c8446", - "type": "split", - "children": [ - { - "id": "ed0c1ac6b73a8ced", - "type": "tabs", - "children": [ - { - "id": "9eee98dc05d3fde2", - "type": "leaf", - "state": { - "type": "backlink", - "state": { - "collapseAll": false, - "extraContext": false, - "sortOrder": "alphabetical", - "showSearch": false, - "searchQuery": "", - "backlinkCollapsed": false, - "unlinkedCollapsed": true - }, - "icon": "links-coming-in", - "title": "백링크" - } - }, - { - "id": "1e0ba87b26453941", - "type": "leaf", - "state": { - "type": "outgoing-link", - "state": { - "linksCollapsed": false, - "unlinkedCollapsed": true - }, - "icon": "links-going-out", - "title": "나가는 링크" - } - }, - { - "id": "aea498d48aaa60a0", - "type": "leaf", - "state": { - "type": "tag", - "state": { - "sortOrder": "frequency", - "useHierarchy": true, - "showSearch": false, - "searchQuery": "" - }, - "icon": "lucide-tags", - "title": "태그" - } - }, - { - "id": "dde952791b603350", - "type": "leaf", - "state": { - "type": "all-properties", - "state": { - "sortOrder": "frequency", - "showSearch": false, - "searchQuery": "" - }, - "icon": "lucide-archive", - "title": "모든 속성" - } - }, - { - "id": "2daeda4e90730082", - "type": "leaf", - "state": { - "type": "outline", - "state": { - "followCursor": false, - "showSearch": false, - "searchQuery": "" - }, - "icon": "lucide-list", - "title": "개요" - } - } - ] - } - ], - "direction": "horizontal", - "width": 300 - }, - "left-ribbon": { - "hiddenItems": { - "canvas:새 캔버스 만들기": false, - "graph:그래프 뷰 열기": false, - "switcher:빠른 전환기 열기": false, - "daily-notes:오늘의 일일 노트 열기": false, - "templates:템플릿 삽입": false, - "command-palette:명령어 팔레트 열기": false, - "bases:새 베이스 생성하기": false, - "terminal:Open terminal": false - } - }, - "active": "c66e6631a498571e", - "lastOpenFiles": [ - "raw/guidelines/backend.md", - "raw/AGENTS.md", - "wiki/pages/B02_ProjRegister/B02_backend.md", - "무제.canvas", - "raw/plans/plan_workflow_state_management.md", - "raw/PLAN.md.tmp.23164.6d84a6365004", - "wiki/graphify-out/graph.html", - "wiki/graphify-out/manifest.json", - "wiki/graphify-out/GRAPH_REPORT.md", - "wiki/graphify-out/graph.json", - "wiki/graphify-out/cache/stat-index.json", - "wiki/graphify-out/cache/ast/v0.9.12/9691ebb53407e479750a796e82774905fe22139f5b049c3f7dc0ad6534c378cf.json", - "wiki/graphify-out/cache/ast/v0.9.12/2808d040f080236ab87ff5d059ee801796b07a63f6a114bd2a2109e0b5806e12.json", - "wiki/graphify-out/cache/ast/v0.9.12/1b226e5d018fc38a72090165fa26143b93b6e1c0a7e1073d8c15e0cdddbeb171.json", - "wiki/graphify-out/cache/ast/v0.9.12/e5a0d7854dc5f172c997de38f2c4dc21dc761794e098626c17dfffe673b47711.json", - "wiki/graphify-out/cache/ast/v0.9.12/2be5bc2fd35d20f0f1eb7c1c707e58347f2b10bcc8843f04fffa74fbdca4d2a7.json", - "wiki/pages/B08_wf5_Quantity/B08_db.md", - "wiki/concepts/db_schema/unconfirmed/README.md", - "wiki/concepts/ui_templates.md", - "wiki/concepts/workflow_state.md", - "wiki/concepts/storage_paths.md", - "wiki/concepts/common_util.md", - "wiki/concepts/auth_rbac.md", - "wiki/concepts/dependencies.md", - "wiki/concepts/api_common.md", - "raw/PLAN.md", - "raw/plans/2026-07-12_plan_add_phase4_role.md", - "raw/verification/2026-07-12_verify_add_phase4_role.md", - "raw/guidelines/frontend.md", - "wiki/index.md", - "wiki/pages/A02_ProgDetail/A02_components.md", - "wiki/pages/A02_ProgDetail/A02_frontend.md", - "wiki/pages/A03_CompDetail/A03_frontend.md", - "wiki/pages/A01_Home/A01_components.md", - "wiki/pages/A01_Home/A01_frontend.md", - "wiki/concepts/db_schema/route_profile.md", - "무제 3.canvas", - "무제 2.canvas", - "무제 1.canvas", - "graphify-out/2026-07-12/GRAPH_REPORT.md" - ] -} \ No newline at end of file diff --git a/docs/AGENTS.md b/docs/AGENTS.md deleted file mode 100644 index 2d6ea29e..00000000 --- a/docs/AGENTS.md +++ /dev/null @@ -1,111 +0,0 @@ -## 나는 누구인가 -- 이름: -- 하는 일: 임도설계 실무자. Aislo(라이다 데이터 기반 임도 설계·견적 자동화 웹앱) 프로젝트의 기획·설계자. -- 핵심 가치: 코드를 직접 작성하거나 깊이 이해하지는 못하지만, 도메인 전문성을 바탕으로 결과물(화면, 산출물)을 보고 실무적으로 맞는지 검증할 수 있다. 이 검증력을 근거로 AI에게 방향성과 구체적 지시를 내린다. - -## 나의 역할들 - -### 임도설계 실무자 (도메인 전문가) -- 하는 일: 임도 설계 실무 지식을 바탕으로 요구사항을 정의하고, AI가 만든 결과물이 실무 기준에 맞는지 검증한다. -- 주요 관심사: 결과물의 실무적 타당성, 설계 로직의 정확성. - -### 프로젝트 기획·설계자 -- 하는 일: AI 코드 어시스턴트에게 방향성과 지시를 제공하고, 계획서 작성과 검토를 주도한다. -- 주요 관심사: AI와의 소통 효율, 문서·컨텍스트 구조화, 반복되는 방향성 이탈 방지. - -## 나의 비전과 목표 -- 이루고자 하는 것: 라이다 데이터를 활용해 임도 설계를 자동화하는 웹앱(Aislo)을 완성한다. 동시에, 개발 과정에서 문서(백엔드/프론트엔드/DB/구조/계획서/검증보고서)가 비대해져 컨텍스트·토큰을 낭비하지 않도록, 페이지 단위로 구조화·연결된 위키 체계를 구축한다. -- 타겟 독자/고객: - - 1차: AI 코드 어시스턴트 자신 — 코드 작성 전후로 필요한 부분만 효율적으로 찾아 읽는 용도. - - 2차: 6개월~1년 후의 AI 세션 및 팀원 — 프로젝트 구조, 설계 이유, 사용된 함수·변수, DB 정보를 스스로 파악해 개선하거나 인수인계받는 용도. (본인이 직접 위키를 다시 찾아볼 일은 거의 없음) - -## AI에게 기대하는 것 -- 코드 작성 전후로 관련된 위키·계획서만 효율적으로 찾아 읽고, 문서 전체를 뒤지지 않기. -- 계획서 작성 → 코드 작업 → 계획서 체크리스트 점검 → 코드 검증 → 검증보고서 작성 → 계획서 업데이트의 흐름을 주기적으로 관리하기. -- 같은 실수나 배경 설명을 반복하지 않기 — 이전 결정사항과 컨텍스트를 유지하기. -- 함수·변수 단위, DB 컬럼 단위까지 추적 가능하도록 문서화하기. - -## 작업 규칙 -- 톤: 간결하고 명확하게. 불필요한 수식어 없이 핵심만 -- 언어: 한국어 기본 -- 결과물 형태: 계획서와 검증보고서는 각각 하나의 파일로 구성하여 지속 업데이트한다. 문서는 비대해지지 않도록 페이지 단위로 구조화하고, 하위에 관련 백엔드·프론트엔드·DB·API·의존성 정보를 연결한다. - ---- - -## Wiki Schema (위키 운영 규칙) - -> 이 규칙은 `docs/` 볼트에만 적용된다. 프로젝트 루트의 docs 폴더 상위의 `.agent/` 폴더(실제 코딩 라우팅용)와는 완전히 독립적이며, 서로 건드리지 않는다. 위키가 충분히 성숙하면 그때 `.agent`를 대체할지 판단한다. - -### 레이어 구조 -- **raw/** — 불변 원본. 계획서·검증보고서·행동지침 등을 유형별로 넣는다. AI는 이 폴더를 절대 수정하지 않는다. -- **wiki/** — AI가 raw를 읽고 편집·유지하는 산출물. 페이지(B01~B09) 기준 폴더 + 개념(concepts) 폴더로 구성. -- **output/** — 최종 결과물(보고서, 슬라이드 등). - -### 위키 관리자(Librarian) 역할 -AI는 이 볼트에서 "위키 관리자"로 행동한다. 단순 챗봇이 아니라, raw를 읽고 wiki를 지속적으로 편집·정리·연결하는 책임을 진다. wiki는 사용자가 아니라 AI가 쓰고 관리한다. - -### 운영 방식 -- **Ingest** (원본 반영): raw/에 새 파일이 들어오면 → 내용을 읽고 핵심을 파악 → 관련된 `wiki/pages/B0x_*/`와 `wiki/concepts/*.md`를 갱신 → `wiki/index.md` 갱신 → `wiki/log.md`에 기록. -- **Query** (질의 응답): 코드 작업 전후로 질문을 받으면 → `wiki/index.md`를 먼저 확인 → 관련 페이지만 열어서 답변 → raw/는 위키에 없는 정보가 필요할 때만 최후 수단으로 참조. 답변 중 새로 정리된 내용(비교, 분석 등)은 대화에 흘려보내지 말고 관련 wiki 페이지에 다시 파일링한다. -- **Lint** (건강 점검): 요청 시 위키 전체를 점검 — 페이지 간 모순, 오래된 내용(최근 raw로 갱신되지 않은 부분), 고아 페이지(연결 없음), 빠진 크로스링크를 찾아 보고한다. - -### 위키 규칙 -1. **raw/는 절대 수정 금지** (불변 원본) -2. wiki 페이지 생성·삭제 시 **index.md 필수 업데이트** -3. 모든 오퍼레이션마다 **log.md에 기록** -4. 내부 참조는 **위키링크(`[[페이지명]]`)** 형식 사용 -5. 모든 wiki 페이지에 **YAML frontmatter** 작성. `status`는 반드시 아래 3개 값 중 하나만 사용: - - `draft` — 계획서만 반영됨, 아직 검증 안 됨 - - `stable` — 검증보고서로 확인된 내용까지 반영됨 - - `stale` — raw에 새 자료가 들어왔는데 아직 이 페이지에 반영 못함 (Lint 시 최우선 처리 대상) - 그 외 `related_pages`, `last_updated`도 함께 기록한다. **`wiki/pages/B0x_이름/`, `wiki/pages/A0x_이름/` 하위 파일은 다음 규칙을 따른다:** - - **파일명 형식:** `{page_id}_{기능명}.md` (예: `A01_frontend.md`, `B05_backend.md`, `B03_db.md`) - - **frontmatter에 `page_id` 필드 필수:** `page_id: A01_Home` 또는 `page_id: B05_wf2_Route` — 폴더 밖에서 파일 하나만 봐도 어느 페이지 소속인지 식별 가능해야 한다. - - concepts 페이지에는 이 규칙을 적용하지 않는다(페이지 단위가 아니므로). -6. 모순 발견 시 **양쪽 소스 모두 인용**하고 어느 쪽이 최신인지 명시. **계획서와 검증보고서가 충돌하면 검증보고서를 채택한다** (검증보고서 = 실제 코드가 검증된 상태, 계획서 = 그 시점의 의도). 계획서 쪽 내용은 지우지 말고 "계획 당시 의도"로 표시해 남긴다. -7. 소스 요약은 사실만 기록, 해석·종합은 concepts 페이지에서 -8. 질의 시 **index.md 먼저**, raw/는 마지막 수단 -9. **새 페이지 생성보다 기존 페이지 업데이트를 우선** -10. index 항목은 한 줄, 120자 이내로 요약 -11. **공유 자원은 1차 정의를 concepts에만 둔다.** 공유 자원이란 두 페이지 이상이 함께 쓰는 것 전부를 말한다 — DB 테이블·컬럼, 공통 함수(`common_util_*`), API 엔드포인트, Pydantic 요청/응답 스키마, 외부 라이브러리(의존성), workflow 상태 등. 페이지의 `db.md`/`backend.md`/`api.md`/`dependencies.md`에는 정의를 복사하지 않고, "이 페이지가 무슨 용도로 쓰는지" + `[[concepts/해당개념#항목명]]` 위키링크만 남긴다. -12. **concepts 페이지에는 사용처(역참조) 목록을 직접 적는다.** 예: `db_schema.md`의 "routes 테이블" 항목 아래에 `사용처: [[B05_wf2_Route]], [[B06_wf3_ProfileCross]]`. 새 페이지가 그 자원을 쓰게 되면 concepts 쪽 사용처 목록도 함께 갱신한다 (Obsidian 자동 백링크에만 의존하지 않음). -13. **함수·API·테이블 등 개별 항목은 표 형식으로만 기록한다** (서술문 금지). 최소 컬럼: `항목 | 위치(파일:줄번호) | 역할`. 코드 AI가 grep 없이 바로 해당 위치로 이동할 수 있어야 한다. - - | 항목 | 위치 | 역할 | - |---|---|---| - | `generate_dem()` | `B04_wf1_Surface/B04_wf1_Surface_Engine.py:142` | 포인트클라우드 → DEM 변환 | - -14. **페이지 하나(파일 하나)는 100줄을 넘지 않는다.** 넘으면 즉시 하위 주제별로 분할한다 (예: `concepts/db_schema.md` → `concepts/db_schema/routes.md`, `concepts/db_schema/input_files.md` ...). 분할 시 상위 페이지는 하위 페이지로 가는 링크 목록만 남기고, `index.md`도 함께 갱신한다. - -### 폴더 구조 -``` -docs/ -├── raw/ (불변 원본) -│ ├── plans/ 계획서 -│ ├── verification/ 검증보고서 -│ └── guidelines/ 행동지침 -├── wiki/ -│ ├── index.md 전체 카탈로그 (카테고리별 한 줄 목록) -│ ├── log.md 연대기 로그 (append-only) -│ ├── pages/ 페이지(B01~B09) 기준 — 프로젝트 구조의 B01~B09 폴더와 1:1 대응 -│ │ └── B0x_이름/ -│ │ ├── frontend.md -│ │ ├── backend.md -│ │ ├── db.md -│ │ ├── api.md -│ │ └── dependencies.md -│ └── concepts/ 페이지를 관통하는 공통 개념 (DB 스키마, 인증/RBAC, 저장 경로 규칙, 공통 유틸, API 공통, 의존성, 공통 스키마, workflow 상태 등) -└── output/ 최종 산출물 -``` -- 페이지 하위 파일은 raw 반영 시 **필요한 것만 생성**한다 (5개를 미리 다 만들지 않음). -- `wiki/pages/`의 카테고리는 프로젝트의 실제 B01~B09 폴더명과 항상 일치시킨다. - -## graphify - -This project has a knowledge graph at graphify-out/ with god nodes, community structure, and cross-file relationships. - -Rules: -- For codebase questions, first run `graphify query ""` when graphify-out/graph.json exists. Use `graphify path "" ""` for relationships and `graphify explain ""` for focused concepts. These return a scoped subgraph, usually much smaller than GRAPH_REPORT.md or raw grep output. -- If graphify-out/wiki/index.md exists, use it for broad navigation instead of raw source browsing. -- Read graphify-out/GRAPH_REPORT.md only for broad architecture review or when query/path/explain do not surface enough context. -- After modifying code, run `graphify update .` to keep the graph current (AST-only, no API cost). diff --git a/docs/CLAUDE.md b/docs/CLAUDE.md deleted file mode 100644 index 2d6ea29e..00000000 --- a/docs/CLAUDE.md +++ /dev/null @@ -1,111 +0,0 @@ -## 나는 누구인가 -- 이름: -- 하는 일: 임도설계 실무자. Aislo(라이다 데이터 기반 임도 설계·견적 자동화 웹앱) 프로젝트의 기획·설계자. -- 핵심 가치: 코드를 직접 작성하거나 깊이 이해하지는 못하지만, 도메인 전문성을 바탕으로 결과물(화면, 산출물)을 보고 실무적으로 맞는지 검증할 수 있다. 이 검증력을 근거로 AI에게 방향성과 구체적 지시를 내린다. - -## 나의 역할들 - -### 임도설계 실무자 (도메인 전문가) -- 하는 일: 임도 설계 실무 지식을 바탕으로 요구사항을 정의하고, AI가 만든 결과물이 실무 기준에 맞는지 검증한다. -- 주요 관심사: 결과물의 실무적 타당성, 설계 로직의 정확성. - -### 프로젝트 기획·설계자 -- 하는 일: AI 코드 어시스턴트에게 방향성과 지시를 제공하고, 계획서 작성과 검토를 주도한다. -- 주요 관심사: AI와의 소통 효율, 문서·컨텍스트 구조화, 반복되는 방향성 이탈 방지. - -## 나의 비전과 목표 -- 이루고자 하는 것: 라이다 데이터를 활용해 임도 설계를 자동화하는 웹앱(Aislo)을 완성한다. 동시에, 개발 과정에서 문서(백엔드/프론트엔드/DB/구조/계획서/검증보고서)가 비대해져 컨텍스트·토큰을 낭비하지 않도록, 페이지 단위로 구조화·연결된 위키 체계를 구축한다. -- 타겟 독자/고객: - - 1차: AI 코드 어시스턴트 자신 — 코드 작성 전후로 필요한 부분만 효율적으로 찾아 읽는 용도. - - 2차: 6개월~1년 후의 AI 세션 및 팀원 — 프로젝트 구조, 설계 이유, 사용된 함수·변수, DB 정보를 스스로 파악해 개선하거나 인수인계받는 용도. (본인이 직접 위키를 다시 찾아볼 일은 거의 없음) - -## AI에게 기대하는 것 -- 코드 작성 전후로 관련된 위키·계획서만 효율적으로 찾아 읽고, 문서 전체를 뒤지지 않기. -- 계획서 작성 → 코드 작업 → 계획서 체크리스트 점검 → 코드 검증 → 검증보고서 작성 → 계획서 업데이트의 흐름을 주기적으로 관리하기. -- 같은 실수나 배경 설명을 반복하지 않기 — 이전 결정사항과 컨텍스트를 유지하기. -- 함수·변수 단위, DB 컬럼 단위까지 추적 가능하도록 문서화하기. - -## 작업 규칙 -- 톤: 간결하고 명확하게. 불필요한 수식어 없이 핵심만 -- 언어: 한국어 기본 -- 결과물 형태: 계획서와 검증보고서는 각각 하나의 파일로 구성하여 지속 업데이트한다. 문서는 비대해지지 않도록 페이지 단위로 구조화하고, 하위에 관련 백엔드·프론트엔드·DB·API·의존성 정보를 연결한다. - ---- - -## Wiki Schema (위키 운영 규칙) - -> 이 규칙은 `docs/` 볼트에만 적용된다. 프로젝트 루트의 docs 폴더 상위의 `.agent/` 폴더(실제 코딩 라우팅용)와는 완전히 독립적이며, 서로 건드리지 않는다. 위키가 충분히 성숙하면 그때 `.agent`를 대체할지 판단한다. - -### 레이어 구조 -- **raw/** — 불변 원본. 계획서·검증보고서·행동지침 등을 유형별로 넣는다. AI는 이 폴더를 절대 수정하지 않는다. -- **wiki/** — AI가 raw를 읽고 편집·유지하는 산출물. 페이지(B01~B09) 기준 폴더 + 개념(concepts) 폴더로 구성. -- **output/** — 최종 결과물(보고서, 슬라이드 등). - -### 위키 관리자(Librarian) 역할 -AI는 이 볼트에서 "위키 관리자"로 행동한다. 단순 챗봇이 아니라, raw를 읽고 wiki를 지속적으로 편집·정리·연결하는 책임을 진다. wiki는 사용자가 아니라 AI가 쓰고 관리한다. - -### 운영 방식 -- **Ingest** (원본 반영): raw/에 새 파일이 들어오면 → 내용을 읽고 핵심을 파악 → 관련된 `wiki/pages/B0x_*/`와 `wiki/concepts/*.md`를 갱신 → `wiki/index.md` 갱신 → `wiki/log.md`에 기록. -- **Query** (질의 응답): 코드 작업 전후로 질문을 받으면 → `wiki/index.md`를 먼저 확인 → 관련 페이지만 열어서 답변 → raw/는 위키에 없는 정보가 필요할 때만 최후 수단으로 참조. 답변 중 새로 정리된 내용(비교, 분석 등)은 대화에 흘려보내지 말고 관련 wiki 페이지에 다시 파일링한다. -- **Lint** (건강 점검): 요청 시 위키 전체를 점검 — 페이지 간 모순, 오래된 내용(최근 raw로 갱신되지 않은 부분), 고아 페이지(연결 없음), 빠진 크로스링크를 찾아 보고한다. - -### 위키 규칙 -1. **raw/는 절대 수정 금지** (불변 원본) -2. wiki 페이지 생성·삭제 시 **index.md 필수 업데이트** -3. 모든 오퍼레이션마다 **log.md에 기록** -4. 내부 참조는 **위키링크(`[[페이지명]]`)** 형식 사용 -5. 모든 wiki 페이지에 **YAML frontmatter** 작성. `status`는 반드시 아래 3개 값 중 하나만 사용: - - `draft` — 계획서만 반영됨, 아직 검증 안 됨 - - `stable` — 검증보고서로 확인된 내용까지 반영됨 - - `stale` — raw에 새 자료가 들어왔는데 아직 이 페이지에 반영 못함 (Lint 시 최우선 처리 대상) - 그 외 `related_pages`, `last_updated`도 함께 기록한다. **`wiki/pages/B0x_이름/`, `wiki/pages/A0x_이름/` 하위 파일은 다음 규칙을 따른다:** - - **파일명 형식:** `{page_id}_{기능명}.md` (예: `A01_frontend.md`, `B05_backend.md`, `B03_db.md`) - - **frontmatter에 `page_id` 필드 필수:** `page_id: A01_Home` 또는 `page_id: B05_wf2_Route` — 폴더 밖에서 파일 하나만 봐도 어느 페이지 소속인지 식별 가능해야 한다. - - concepts 페이지에는 이 규칙을 적용하지 않는다(페이지 단위가 아니므로). -6. 모순 발견 시 **양쪽 소스 모두 인용**하고 어느 쪽이 최신인지 명시. **계획서와 검증보고서가 충돌하면 검증보고서를 채택한다** (검증보고서 = 실제 코드가 검증된 상태, 계획서 = 그 시점의 의도). 계획서 쪽 내용은 지우지 말고 "계획 당시 의도"로 표시해 남긴다. -7. 소스 요약은 사실만 기록, 해석·종합은 concepts 페이지에서 -8. 질의 시 **index.md 먼저**, raw/는 마지막 수단 -9. **새 페이지 생성보다 기존 페이지 업데이트를 우선** -10. index 항목은 한 줄, 120자 이내로 요약 -11. **공유 자원은 1차 정의를 concepts에만 둔다.** 공유 자원이란 두 페이지 이상이 함께 쓰는 것 전부를 말한다 — DB 테이블·컬럼, 공통 함수(`common_util_*`), API 엔드포인트, Pydantic 요청/응답 스키마, 외부 라이브러리(의존성), workflow 상태 등. 페이지의 `db.md`/`backend.md`/`api.md`/`dependencies.md`에는 정의를 복사하지 않고, "이 페이지가 무슨 용도로 쓰는지" + `[[concepts/해당개념#항목명]]` 위키링크만 남긴다. -12. **concepts 페이지에는 사용처(역참조) 목록을 직접 적는다.** 예: `db_schema.md`의 "routes 테이블" 항목 아래에 `사용처: [[B05_wf2_Route]], [[B06_wf3_ProfileCross]]`. 새 페이지가 그 자원을 쓰게 되면 concepts 쪽 사용처 목록도 함께 갱신한다 (Obsidian 자동 백링크에만 의존하지 않음). -13. **함수·API·테이블 등 개별 항목은 표 형식으로만 기록한다** (서술문 금지). 최소 컬럼: `항목 | 위치(파일:줄번호) | 역할`. 코드 AI가 grep 없이 바로 해당 위치로 이동할 수 있어야 한다. - - | 항목 | 위치 | 역할 | - |---|---|---| - | `generate_dem()` | `B04_wf1_Surface/B04_wf1_Surface_Engine.py:142` | 포인트클라우드 → DEM 변환 | - -14. **페이지 하나(파일 하나)는 100줄을 넘지 않는다.** 넘으면 즉시 하위 주제별로 분할한다 (예: `concepts/db_schema.md` → `concepts/db_schema/routes.md`, `concepts/db_schema/input_files.md` ...). 분할 시 상위 페이지는 하위 페이지로 가는 링크 목록만 남기고, `index.md`도 함께 갱신한다. - -### 폴더 구조 -``` -docs/ -├── raw/ (불변 원본) -│ ├── plans/ 계획서 -│ ├── verification/ 검증보고서 -│ └── guidelines/ 행동지침 -├── wiki/ -│ ├── index.md 전체 카탈로그 (카테고리별 한 줄 목록) -│ ├── log.md 연대기 로그 (append-only) -│ ├── pages/ 페이지(B01~B09) 기준 — 프로젝트 구조의 B01~B09 폴더와 1:1 대응 -│ │ └── B0x_이름/ -│ │ ├── frontend.md -│ │ ├── backend.md -│ │ ├── db.md -│ │ ├── api.md -│ │ └── dependencies.md -│ └── concepts/ 페이지를 관통하는 공통 개념 (DB 스키마, 인증/RBAC, 저장 경로 규칙, 공통 유틸, API 공통, 의존성, 공통 스키마, workflow 상태 등) -└── output/ 최종 산출물 -``` -- 페이지 하위 파일은 raw 반영 시 **필요한 것만 생성**한다 (5개를 미리 다 만들지 않음). -- `wiki/pages/`의 카테고리는 프로젝트의 실제 B01~B09 폴더명과 항상 일치시킨다. - -## graphify - -This project has a knowledge graph at graphify-out/ with god nodes, community structure, and cross-file relationships. - -Rules: -- For codebase questions, first run `graphify query ""` when graphify-out/graph.json exists. Use `graphify path "" ""` for relationships and `graphify explain ""` for focused concepts. These return a scoped subgraph, usually much smaller than GRAPH_REPORT.md or raw grep output. -- If graphify-out/wiki/index.md exists, use it for broad navigation instead of raw source browsing. -- Read graphify-out/GRAPH_REPORT.md only for broad architecture review or when query/path/explain do not surface enough context. -- After modifying code, run `graphify update .` to keep the graph current (AST-only, no API cost). diff --git a/docs/output/AGENTS.md b/docs/output/AGENTS.md deleted file mode 100644 index 0f67d15a..00000000 --- a/docs/output/AGENTS.md +++ /dev/null @@ -1,7 +0,0 @@ -# output/ 폴더 규칙 - -wiki/ 내용을 바탕으로 생성한 최종 산출물(보고서, 슬라이드, 요약 문서 등)을 둔다. - -## 규칙 -- 여기 있는 파일은 wiki/의 특정 시점 스냅샷이다. 원본이 아니므로, 내용 갱신이 필요하면 wiki/를 먼저 갱신한 뒤 다시 생성한다. -- 파일명에 생성 날짜를 포함해 버전을 구분한다. diff --git a/docs/output/CLAUDE.md b/docs/output/CLAUDE.md deleted file mode 100644 index 0f67d15a..00000000 --- a/docs/output/CLAUDE.md +++ /dev/null @@ -1,7 +0,0 @@ -# output/ 폴더 규칙 - -wiki/ 내용을 바탕으로 생성한 최종 산출물(보고서, 슬라이드, 요약 문서 등)을 둔다. - -## 규칙 -- 여기 있는 파일은 wiki/의 특정 시점 스냅샷이다. 원본이 아니므로, 내용 갱신이 필요하면 wiki/를 먼저 갱신한 뒤 다시 생성한다. -- 파일명에 생성 날짜를 포함해 버전을 구분한다. diff --git a/docs/raw/AGENTS.md b/docs/raw/AGENTS.md deleted file mode 100644 index fe25fc8f..00000000 --- a/docs/raw/AGENTS.md +++ /dev/null @@ -1,15 +0,0 @@ -# raw/ 폴더 규칙 - -이 폴더는 불변 원본 저장소다. 계획서, 검증보고서, 행동지침 등 사용자가 넣거나 세션 중 생성된 원본 자료를 유형별로 보관한다. - -## 제약 -- **절대 수정하지 않는다.** 이 폴더의 파일은 읽기 전용 소스로만 취급한다. 오탈자나 오래된 내용이 있어도 여기서 고치지 않고, wiki/ 쪽에서 반영·정정한다. -- 파일을 삭제하지 않는다. - -## 하위 폴더 -- `plans/` — 계획서 -- `verification/` — 검증보고서. **계획서와 내용이 충돌하면 이쪽을 채택한다** (실제 코드가 검증된 상태이므로). -- `guidelines/` — 행동지침 - -## 이 폴더가 업데이트되면 -`docs/CLAUDE.md`의 Wiki Schema에 따라 Ingest 절차를 수행한다: 새 파일을 읽고 → 관련 `wiki/pages/`, `wiki/concepts/` 갱신 → `wiki/index.md` 갱신 → `wiki/log.md`에 기록. diff --git a/docs/raw/CLAUDE.md b/docs/raw/CLAUDE.md deleted file mode 100644 index fe25fc8f..00000000 --- a/docs/raw/CLAUDE.md +++ /dev/null @@ -1,15 +0,0 @@ -# raw/ 폴더 규칙 - -이 폴더는 불변 원본 저장소다. 계획서, 검증보고서, 행동지침 등 사용자가 넣거나 세션 중 생성된 원본 자료를 유형별로 보관한다. - -## 제약 -- **절대 수정하지 않는다.** 이 폴더의 파일은 읽기 전용 소스로만 취급한다. 오탈자나 오래된 내용이 있어도 여기서 고치지 않고, wiki/ 쪽에서 반영·정정한다. -- 파일을 삭제하지 않는다. - -## 하위 폴더 -- `plans/` — 계획서 -- `verification/` — 검증보고서. **계획서와 내용이 충돌하면 이쪽을 채택한다** (실제 코드가 검증된 상태이므로). -- `guidelines/` — 행동지침 - -## 이 폴더가 업데이트되면 -`docs/CLAUDE.md`의 Wiki Schema에 따라 Ingest 절차를 수행한다: 새 파일을 읽고 → 관련 `wiki/pages/`, `wiki/concepts/` 갱신 → `wiki/index.md` 갱신 → `wiki/log.md`에 기록. diff --git a/docs/raw/PLAN.md b/docs/raw/PLAN.md deleted file mode 100644 index e8689fea..00000000 --- a/docs/raw/PLAN.md +++ /dev/null @@ -1,24 +0,0 @@ -# PLAN: .gitignore 재작성 및 Git 추적 정상화 - -사용자의 요청에 따라 `.gitignore` 파일을 처음부터 깔끔하게 다시 작성하고, 불필요하거나 누락된 무시 항목들을 정리한 뒤 기존에 추적되고 있던 파일들의 캐시를 지웁니다. - -## 작업 계획 및 체크리스트 - -### 1. `.gitignore` 파일 재작성 -- [ ] 기존 `.gitignore` 내용을 지우고 아래의 구성으로 처음부터 다시 작성합니다. - * **에이전트 및 IDE 캐시**: `.agent/`, `.agents/`, `.claude/`, `.codex/`, `.dependencygraph/`, `.ruff_cache/`, `.vscode/` - * **보안/설정 파일**: `.env`, `.env.*` (추적 제외) - * **Python 가상환경 및 캐시**: `venv/`, `__pycache__/`, `*.pyc` - * **Node/Frontend 의존성 및 빌드**: `node_modules/`, `dist/`, `*.tsbuildinfo` - * **로그 파일**: `*.log` (예: `vite-dev.err.log` 등) - * **임시/빌드 데이터**: `storage/` (필요 시 제외), `0_old/` (구버전 제외) - * **문서 폴더 보존**: `docs/` 폴더는 절대 무시(ignore) 목록에 포함하지 않습니다. - -### 2. 기존 추적 파일 캐시 삭제 (git rm --cached) -- [ ] Git 저장소에서 `node_modules/` 폴더 추적 해제 (`git rm -r --cached node_modules`) -- [ ] Git 저장소에서 `.env` 파일 추적 해제 (`git rm --cached .env`) -- [ ] 그 외 새로 지정한 무시 항목 중 이미 추적되고 있는 파일이 있다면 추적 해제 - -### 3. 상태 검증 및 커밋 -- [ ] `git status`로 변경 사항이 정상적으로 반영되었는지 검증 -- [ ] 커밋 및 푸시 가능 상태로 정리 diff --git a/docs/raw/guidelines/agent.md b/docs/raw/guidelines/agent.md deleted file mode 100644 index 56f275fb..00000000 --- a/docs/raw/guidelines/agent.md +++ /dev/null @@ -1,200 +0,0 @@ -# 프로젝트 행동지침 및 기술 스택 명세 (agent.md) - -## 프로젝트 & DB 정보 - -### 📌 프로그램명 -**Aislo (아이슬로)** -- **의미**: AI (인공지능) + Slotti (핀란드어: 임도/산림 도로) -- **콘셉트**: 산림의 미래를 열어가는 인공지능 경로 설계 솔루션 - ---- - -## 1. 기술 환경 및 기본 스택 (Technical Stack Baseline) -프로젝트의 코드를 작성, 테스트 또는 검증할 환경 명확화 및 호환 기준 제시. - -### A. 백엔드 프레임워크 (Python) -* **Runtime:** Python v3.12.7 -* **Framework:** FastAPI / Pydantic -* **Geometry/GIS Engine:** Trimesh, Whitebox, Geopandas, Shapely, Rasterio, Laspy - -### B. 데이터베이스 (MariaDB) -* **DBMS:** MariaDB v10.6+ -* **Character Set:** utf8mb4 (한글 완벽 지원) -* **Collation:** utf8mb4_unicode_ci -* **DB Driver (비동기):** `aiomysql` (순수 Python, Windows 호환. asyncmy는 Cython 빌드 필요로 미채택) -* **쿼리 방식:** Raw SQL (ORM 사용 금지) -* **공간 데이터:** JSON 기반 저장 (MariaDB는 PostGIS 미지원) - -### C. 프론트엔드 & WebCAD (TypeScript & WebGL) -* **Language/Runtime:** TypeScript / Node.js -* **Rendering:** HTML5 Canvas 및 WebGL 기반 WebCAD 시스템 구현 - -### D. 인코딩 및 다국어 표준 -* **인코딩:** 텍스트 파일은 UTF-8 표준으로 통일 - ---- - -## 2. 문맥 라우팅 및 문서 구조 (Context Routing) -코드 작성 및 기술 검증 시 문서 우선순위에 따른 계층적 레퍼런스 필수 읽기. - -* **1단계 (필수):** `.agent/structure.md` 읽기 후 신규 폴더 생성 기준 분석. -* **2단계 (선택 읽기):** 프로젝트 구현에 필요한 세부 기술 명세 읽기. - * **그룹 A (UI, 스타일, 컴포넌트, WebCAD):** `.agent/frontend.md` 필수 추가 읽기. - * **그룹 B (알고리즘, 저장, DB, MariaDB 값 제어):** `.agent/backend.md` 필수 추가 읽기. - * **그룹 C (DB 구조 변경):** DB 구조 변경 시 `.agent/db_schema.md` 선택적 읽기. - ---- - -## 3. 코드 작성 기본 제약 (Constraints) -* **구조 준수:** `.agent/structure.md` 트리 구조 엄격 준수. -* **700줄 제한:** 단일 파일 코드 작성/수정 시 700줄 이상이 될 경우 사전 공지. 기능별 파일 분할 후 `structure.md` 갱신 필수. -* **안전 보관:** 백엔드 작업 시 보안 저장소 경로 명시 및 임의 삭제 방지 필수. -* **경로 활용:** 단계별 페이지 기반 폴더 구조(B03~B09)와 DB 경로 열의 기준은 `.agent/db_schema_simple.md`의 「파일시스템 경로와 DB 링크」를 따른다. -* **일관성 검증:** 설계 단계에서부터 DB 설계, 파일 경로, API 라우팅이 모두 동일한 워크플로우 기준으로 통일되어야 한다. (불일치 발생 시 설계 단계에서 재논의 필수) -* **코드 포맷팅 (자동화 도구):** 프로젝트의 코드 작성이 완료되는 시, 반드시 프로젝트 루트에서 각 언어별 포맷터를 재실행하여 스타일을 통일해야 한다. - * *Python 포맷팅 명령어:* `ruff format [파일명]` 및 `ruff check --fix [파일명]` 실행 - * *TypeScript/CSS 포맷팅 명령어:* `npx prettier --write [파일명]` 실행 -* **외부 라이브러리 활용:** 외부 라이브러리 활용 시 프로젝트에 맞춰 호환 라이브러리 선정하고, 불필요한 함수는 작성하지 않도록 최소화. -* **서버실행은 사용자가 실행:** 필요한 경우 의존성 설치까지는 OK, 단 서버실행은 사용자가 진행 - ---- - -## 4. 데이터베이스 상세 명세 (Database Specification) - -### 4.1 스키마 기본 정보 -- **DB 명:** `aislo_db` -- **DBMS:** MariaDB v10.6+ -- **인코딩:** utf8mb4_unicode_ci -- **테이블 수:** 18개 -- **드라이버:** aiomysql (비동기) - -### 4.2 파일 경로 추적 (Path Tracking) -**모든 중간 산출물의 파일 경로를 DB에 기록:** -- `input_files.raw_file_path` — 원본 입력 파일 -- `processed_point_cloud.converted_file_path` — 변환된 포인트클라우드 -- `surface_models.model_file_path` — 지표면 모델 -- `routes.route_data_path` — 경로 데이터 -- `longitudinal_sections.longitudinal_file_path` — 종단면 -- `cross_sections.cross_section_file_path` — 횡단면 -- `structures.structure_data_path` — 구조물 배치 -- `quantity_items.quantity_data_path` — 수량 항목 -- `outputs.outputs_directory_path` — 산출물 폴더 -- `output_files.output_file_path` — 개별 산출 파일 - -### 4.3 저장소 구조 (Workflow-based Folder Structure) -``` -storage/{company_slug}/{user_slug}/{project_id}/ -├── B03_FileInput/input/ (WF0: 원본 입력) -├── B04_wf1_Surface/processed/ (WF1: 변환된 포인트클라우드 & 모델) -├── B05_wf2_Route/route/ (WF2: 경로 설계) -├── B06_wf3_ProfileCross/ (WF3: 종단면 & 횡단면) -├── B07_wf4_DesignDetail/structures/ (WF4: 구조물 배치) -├── B08_wf5_Quantity/quantities/ (WF5: 수량 산출) -└── B09_wf6_Estimation/v1,v2,.../ (WF6: 최종 산출물) -``` - -### 4.4 공간 데이터 처리 (MariaDB 특성) -- **지하형 기하 데이터:** GEOMETRY 타입 미지원 → JSON으로 저장 -- **좌표 저장 예:** `{"type": "Point", "coordinates": [127.5, 37.5]}` -- **경로 저장 예:** `{"type": "LineString", "coordinates": [[127.5, 37.5], [127.6, 37.6]]}` -- **애플리케이션 처리:** Python의 Shapely, Geopandas에서 JSON 파싱 후 기하 연산 - -### 4.5 역할 기반 접근 제어 (RBAC - Role-Based Access Control) - -**3가지 사용자 역할:** - -| 역할 | 영문 | 설명 | 접근 권한 | -|------|------|------|---------| -| 시스템 관리자 | SYSTEM_ADMIN | 최고 관리자 | 전체 회사/사용자/프로젝트 조회 및 관리 | -| 회사 관리자 | ADMIN | 회사의 주요 아이디 (초기 로그인) | 회사 내 팀원/프로젝트 관리, 가입 요청 승인 | -| 일반 사용자 | USER | 팀원 | 개인 프로젝트 생성/수정, 워크플로우 진행 | - -**회사 마스터 (is_master) 플래그:** -- TRUE: 회사 생성자 또는 ADMIN 역할 (팀원 승인/거부 권한) -- FALSE: 일반 팀원 - -**사용자 상태 생명주기:** -``` -PENDING_EMAIL (임시) - ↓ (이메일 인증) -NO_COMPANY (로그인 가능, 회사 미연결) - ↓ (회사 생성 또는 참여 신청) -PENDING (승인 대기) 또는 ACTIVE (회사 연결 완료) - ↓ -ACTIVE (모든 기능 접근) - ↓ (퇴사/비활성화) -INACTIVE 또는 REJECTED -``` - ---- - -## 5. 워크플로우 6단계 (6-Stage Workflow) - -``` -WF0: B03_FileInput (파일 입력) - ↓ (LAS, TIF, TFW, PRJ, DXF 업로드) -WF1: B04_wf1_Surface (지표면 분석) - ↓ (DEM, TIN, 포인트클라우드 변환) -WF2: B05_wf2_Route (경로 설계) - ↓ (최적 경로 계산) -WF3: B06_wf3_ProfileCross (종횡단 생성) - ↓ (종단면, 횡단면 생성) -WF4: B07_wf4_DesignDetail (상세 설계) - ↓ (구조물 배치) -WF5: B08_wf5_Quantity (수량 산출) - ↓ (수량 항목 계산) -WF6: B09_wf6_Estimation (견적·문서) - ↓ (Excel, PDF, DXF 생성) -``` - ---- - -## 6. 주요 문서 참고 순서 - -1. **계획서 읽기:** 구현 전 반드시 읽을 문서 - - `.agent/plan_register_split.md` — B01_Dashboard 설계 및 역할별 기능 - - `.agent/plan_register_split_validation.md` — 검증 항목 및 테스트 체크리스트 - -2. **구조 설계:** `.agent/structure.md` 읽기 - - 폴더/파일 명명 규칙 - - 전체 디렉토리 트리 구조 - -3. **DB 스키마:** `.agent/db_schema.md` 읽기 - - 사용자/회사/조직 테이블 (5개) - - 프로젝트 및 워크플로우 테이블 - - 테이블 관계도 - -4. **백엔드 구현:** `.agent/backend.md` 읽기 - - 아키텍처 및 라우팅 - - DB 및 MariaDB 설정 - - 인증 시스템 (로그인/역할/인가) - - 역할 기반 접근 제어 (RBAC) - -5. **프론트 구현:** `.agent/frontend.md` 읽기 - - UI 요소 및 레이아웃 제약 - - 인증 및 라우팅 가드 - - 역할 기반 대시보드 렌더링 - -6. **마이그레이션:** `.agent/migration_plan.md` 읽기 (필요 시) - -7. **프로젝트 정보:** `.agent/project_info.md` 읽기 (필요 시) - ---- - -## 7. 요약 - -| 항목 | 값 | -|------|-----| -| **프로그램명** | Aislo (아이슬로) | -| **DB 명** | aislo_db | -| **DBMS** | MariaDB v10.6+ | -| **인코딩** | utf8mb4_unicode_ci | -| **Backend** | Python 3.12+ / FastAPI | -| **Frontend** | TypeScript / Node.js | -| **드라이버** | aiomysql | -| **워크플로우** | 6단계 (WF0~WF6) | -| **테이블 수** | 23개 (조직/인증 5개 포함) | -| **폴더 구조** | 워크플로우 기반 (B03~B09) | -| **인증 방식** | HttpOnly Secure 세션 쿠키 | -| **사용자 역할** | SYSTEM_ADMIN, ADMIN, USER (3가지) | -| **대시보드** | B01_Dashboard (역할별 동적 렌더링) | diff --git a/docs/raw/guidelines/backend.md b/docs/raw/guidelines/backend.md deleted file mode 100644 index 1598afcc..00000000 --- a/docs/raw/guidelines/backend.md +++ /dev/null @@ -1,300 +0,0 @@ -# 백엔드 제어 명세서 (backend.md) - -## 1. 아키텍처 및 라우팅 (Architecture) -* **수직 통합:** 백엔드 로직은 페이지 폴더(`A01_`, `B01_` 등)별로 격리. 거대 단일 모듈 금지. -* **파일 분할:** 파일 수 제한 없음. 코드 집중 방지를 위해 기능별 분할 자율화. -* **파일명 규칙:** `[폴더명]_Router.py`, `[폴더명]_Engine.py`, `[폴더명]_Schema.py` 형태 준수. -* **루트 main.py:** 라우터 등록(`include_router`)만 수행. 비즈니스 로직 작성 금지. - ---- - -## 2. DB 및 MariaDB (Database) -* **비동기 통신:** `async/await` 및 `aiomysql` 드라이버 사용 강제. (asyncmy는 Cython 빌드 필요로 Windows 환경 미채택) -* **쿼리 방식:** ORM 사용 금지. **Raw SQL** 작성 원칙. 파라미터 바인딩은 `%s` 플레이스홀더 사용. -* **커넥션/트랜잭션:** 풀에서 `pool.acquire()`로 커넥션 확보 후 `connection.cursor()`로 커서 생성. 다건 쓰기는 `connection.begin()` → `commit()` / 예외 시 `rollback()`. -* **자동 증가 ID:** `INSERT` 후 `cursor.lastrowid`로 조회 (PostgreSQL의 `RETURNING id` 미지원). -* **공간 데이터:** GEOMETRY 타입 미지원. 좌표, 다각형, 경로 등은 JSON 형식으로 저장 후 애플리케이션에서 처리. - ---- - -## 3. 설정 및 저장소 (Config & Storage) -* **하드코딩 금지:** 제어 변수/파라미터 하드코딩 금지. `config/config_system.py`에서 `import` 필수. -* **물리 파일 격리:** 포인트 클라우드, 분석 중간 파일, 메쉬, 임시 커서는 DB 저장 금지. -* **저장 경로:** `storage/[고객사명]/[사용자명]/[프로젝트ID]/`에 물리 파일 저장 후 DB에는 경로만 기록. -* **단계별 루트 강제:** 프로젝트 저장소 내부는 실제 워크플로우 페이지명과 동일한 `B03_FileInput/` ~ `B09_wf6_Estimation/` 폴더로 분리한다. `raw/`, `processed/`, `computed/`를 프로젝트 루트의 공용 폴더로 만들지 않는다. -* **경로 정의 우선순위:** 단계별 세부 폴더와 DB 경로 열의 기준은 `.agent/db_schema_simple.md`의 「파일시스템 경로와 DB 링크」를 따른다. -* **경로 생성 책임:** 페이지별 백엔드는 자기 단계 폴더만 생성·수정한다. 다른 단계의 산출물을 직접 삭제하거나 덮어쓰지 않고 stale 상태를 통해 재계산 필요성을 전파한다. -* **DB 저장 형식:** DB에는 프로젝트 루트 기준 상대 경로를 기록하고, 실제 파일 접근 시 설정의 저장소 루트와 안전하게 결합한다. 사용자 입력 경로를 직접 결합하거나 절대 경로를 DB에 저장하지 않는다. -* **MariaDB 특성:** - - 공간 기하 데이터(좌표, 폴리곤, 경로 등)는 GEOMETRY 타입 미지원 → JSON 또는 TEXT로 저장 - - 예: `{"type": "Point", "coordinates": [127.5, 37.5]}` (GeoJSON 형식) - - 애플리케이션(Python)에서 JSON 파싱 후 기하 연산 처리 - ---- - -## 4. 검증 및 예외 처리 (Error Handling) -* **데이터 검증:** 모든 JSON 요청은 라우터 진입 전 Pydantic 모델로 타입/범위 필수 검증. -* **예외 포획:** 모든 지형/메쉬 연산은 `try-except` 필수 처리. -* **반환 포맷:** 에러 발생 시 `{"status": "error", "message": "원인"}` 표준 포맷 반환. - ---- - -## 5. 워크플로우 상태 동기화 (Workflow State Sync) - -### 5.1 다중 브라우저 동시 작업 원칙 -* **브라우저 독립성:** 같은 계정/프로젝트를 여러 브라우저에서 동시 접근 가능. 각 브라우저는 서버 데이터 기반 독립 작동. -* **클라이언트 상태 격리:** `localStorage`는 브라우저별 격리(도메인 단위 공유). 공유 데이터는 항상 서버 영구저장소 우선. -* **영구저장소 설계:** 계산 결과는 `.agent/db_schema_simple.md`에 정의된 페이지별 단계 폴더에 저장한다. - * `B03_FileInput/` — 원본 입력 및 파일 메타데이터 - * `B04_wf1_Surface/` — 변환 포인트클라우드, 지표면 모델 및 분석 결과 - * `B05_wf2_Route/` — 경로, 경로점 및 설계 파라미터 - * `B06_wf3_ProfileCross/` — 종단·횡단 결과 및 인덱스 -* **워크플로우 상태:** 여러 단계가 공유하는 `workflow.json`의 실제 위치는 저장소 경로 유틸에서 단일하게 정의하며, 원자적 쓰기를 적용한다. 단계별 결과 파일의 위치를 프로젝트 루트의 `result_*.json` 이름으로 추정하지 않는다. - -### 5.2 Stale 상태 감지 및 전파 -* **workflow.json 구조:** - ```json - { - "current_stage": "route", - "completed": ["scan", "surface"], - "stale_from": "route", - "stage1_confirmed": {...} - } - ``` -* **Stale 발생 조건:** - * 상위 단계(예: surface) 재계산 → 하위 단계(route, section) 자동으로 `stale_from` 설정 - * 다른 브라우저에서 변경 감지 → 기존 결과 무효화 -* **상태 업데이트 함수:** - ```python - def _patch_workflow_stale(project_id: str, stale_from: str | None) -> None: - """workflow.json의 stale_from 필드만 원자적 업데이트""" - wf_path = get_project_workflow_path(project_id) - # 기존 상태 유지하며 stale_from만 변경 - ``` - -### 5.3 클라이언트 폴링 패턴 (Polling) -* **주기:** GET `/api/projects/{project_id}/workflow` — 3초마다 호출 -* **응답:** workflow.json 전체 반환 (현재 단계, 완료 이력, stale 상태 포함) -* **클라이언트 동작:** - 1. stale 감지 → 사용자에게 선택지 제시 - 2. "계속하기" → 기존 결과 유지 (위험 경고) - 3. "재계산하기" → 상위 단계 재실행 (모든 하위 결과 초기화) -* **구현 예시:** - ```typescript - setInterval(async () => { - const workflow = await fetch(`/api/projects/${projectId}/workflow`); - if (workflow.stale_from && workflow.stale_from !== currentStage) { - handleStaleness(workflow.stale_from); // 사용자에게 알림 - } - }, 3000); - ``` - -### 5.4 WebSocket 확장 (미래 선택사항) -* **실시간 알림:** 폴링 대신 WebSocket으로 업그레이드 가능 (응답성 향상) -* **전송 메시지:** - ```json - { - "type": "workflow_changed", - "project_id": "...", - "stale_from": "route", - "changed_by": "other_browser" - } - ``` -* **마이그레이션 시기:** 사용자 수 증가 또는 실시간성 요구 시 적용 - ---- - -## 6. 로그인 및 인증 시스템 (Authentication & Authorization) - -### 6.1 이메일 기반 OTP 인증 (Email OTP) -* **OTP 생성:** 6자리 난수 (000000~999999) -* **저장 방식:** DB에 bcrypt/PBKDF2 해시값 저장 (평문 절대 금지) -* **유효 시간:** 5분 (config에서 설정 가능) -* **발송:** Google SMTP (개발) → AWS SES (상용화) 전환 예정 -* **재시도 로직:** 최대 3회 (지수 백오프: 2초, 4초, 8초) - -### 6.2 비밀번호 정책 (Password Policy) -* **최소 길이:** 8자 이상 -* **권장 구성:** 대문자/소문자/숫자/특수문자 (강제 아님, Google 기준) -* **해시 알고리즘:** bcrypt (라운드 12 이상) 또는 PBKDF2 -* **저장 방식:** 해시값만 DB에 저장 (평문 절대 금지) - -### 6.3 세션 관리 (Session Management) - 확정: Secure HttpOnly 세션 쿠키 - -* **방식:** Secure HttpOnly 세션 쿠키 (JWT 아님) -* **쿠키 이름:** `session_id` -* **유효 시간:** 12시간 -* **Secure 플래그:** true (HTTPS만 전송, 개발 환경 localhost에서는 false) -* **HttpOnly 플래그:** true (JavaScript 접근 불가) -* **SameSite:** Lax (CSRF 방지) -* **저장소:** MariaDB `sessions` 테이블 -* **활동 감지:** 마지막 요청으로부터 4시간 (파일 업로드 등 장시간 작업 고려) -* **세션 만료 판정:** - ```python - if (current_time - last_activity_at > 4시간) or (current_time - created_at > 12시간): - → 세션 자동 만료 - ``` -* **만료 처리:** 프론트엔드는 만료 5분 전 알림, 만료 후 모든 요청 거부 (401 Unauthorized) -* **DB 풀 설정:** `autocommit=True` (pooled 커넥션의 트랜잭션 스냅샷 문제 방지 — 새 세션 INSERT 후 다른 커넥션에서 즉시 조회 가능) - -### 6.4 로그인 이력 기록 (Audit Log) -* **기록 항목:** - - `user_id`, `email`, `login_timestamp`, `user_agent` (브라우저/OS), `status` (SUCCESS/FAILURE) -* **보관 기간:** 1년 (자동 삭제) -* **무차별 대입 방지:** 5회 이상 실패 시 계정 15분 잠금 -* **IP 주소:** 법적 이슈로 수집하지 않음 (권장) - -### 6.4.1 사용자 상태 생명주기 (User Status Lifecycle) -* **PENDING_EMAIL:** 회원가입 후 이메일 인증 전 (임시) -* **NO_COMPANY:** 이메일 인증 완료, 회사 미연결 (로그인 가능, B01_Dashboard 접근 가능, B02~B11 워크플로우 차단) -* **PENDING:** 회사 참여 신청 후 ADMIN 승인 대기 (로그인 가능, B01_Dashboard 접근 가능, B02~B11 워크플로우 차단) -* **ACTIVE:** 회사 연결 완료, 모든 기능 접근 가능 (B01_Dashboard + B02~B11) -* **INACTIVE:** 퇴사/계정 휴활성화 -* **REJECTED:** 회사 참여 신청 거부 - -### 6.5 회사 연결 필수화 (Mandatory Company Linking) -* **접근 제어:** - - B02~B11 워크플로우 라우터에 `Depends(require_company)` 의존성 추가 - - `session["company_id"] is None` 이면 403 Forbidden 반환 (`"회사 연결이 필요합니다."`) -* **라우팅 가드 (프론트):** - - B02~B11 진입 시 `fetchSessionUser()` → `company_id` 확인 - - 없으면 B01_ACCOUNT로 리다이렉트 -* **회사 생성/연결:** - - `POST /api/account/company/create`: 신규 회사 생성 후 사용자를 MASTER로 자동 연결 (status='ACTIVE') - - `POST /api/account/company/join`: 기존 회사 참여 신청 (status='PENDING', 마스터 승인 필요) - -### 6.6 권한 체크 (Authorization) -* **마스터 권한:** - - 팀원 목록 조회, 승인/거부, 내보내기 - - 회사 정보 수정, 구독 관리 - - 마스터 대시보드 접근 -* **팀원 권한:** - - 프로젝트 생성/수정/조회 - - 워크플로우 실행 (B03~B09) - - 개인 프로필 수정 -* **시스템관리자 권한:** - - 모든 회사/사용자 데이터 접근 (슈퍼유저) - - 회사/사용자 생성/수정/삭제 - - 관리자 대시보드 (모니터링, Q&A 관리) -* **검증 방식:** 라우터 진입 전 JWT/토큰 검증, 필요시 데이터베이스에서 권한 확인 - -### 6.7 로그인 기반 인증 갱신 (Login-based Auth Renewal) -* **목적:** 활성 사용자의 인증 유지, 비활성 사용자 자동 차단 -* **방식:** 로그인 시 인증 유효 기간 자동 연장 (3개월) -* **구현:** - - `users.last_login` → 마지막 로그인 시간 업데이트 - - `users.auth_expires_at` → 매 로그인 시 NOW() + 3개월로 설정 -* **인증 확인:** - - auth_expires_at > NOW() → 인증 유효 (바로 대시보드 이동) - - auth_expires_at <= NOW() → 재인증 모달 표시 -* **장점:** - - 활동적인 사용자: 지속적으로 인증 유지 - - 휴면 사용자: 자동으로 재인증 요구 - - 일관된 정책: 고정 3개월이 아닌 활동 기반 연장 - -### 6.8 역할 기반 접근 제어 (Role-Based Access Control) - -**사용자 역할 (users.role)** -- `SYSTEM_ADMIN`: 시스템 관리자 (최고 권한) -- `ADMIN`: 회사 관리자 (회사 내 관리권 한정) -- `USER`: 일반 사용자 - -### 6.9 대시보드 권한 검증 및 감시 로깅 (B01_Dashboard Authorization & Audit) -* **권한 검증 헬퍼 필수:** `.agent/plan_dashboard_management.md` 섹션 9의 Python 헬퍼 함수 구현 - - `can_edit_project(user, project)` - 프로젝트 수정 권한 - - `can_delete_project(user)` - 프로젝트 삭제 권한 (SYSTEM_ADMIN만) - - `can_change_role(user, target_user, new_role)` - 역할 변경 권한 - - ADMIN이 SYSTEM_ADMIN으로 변경 시도 시 즉시 False 반환 - - ADMIN은 USER ↔ ADMIN만 변경 가능 (같은 회사만) - - `can_manage_automation(user, automation)` - 자동화 로직 관리 권한 (USER 차단) - - `is_last_admin(company_id, exclude_user_id)` - 회사의 마지막 ADMIN 확인 - -* **백엔드 권한 재검증 필수:** 모든 수정/삭제/역할변경 API에서 권한 재검증 - - 클라이언트 UI 신뢰 금지 (프론트엔드는 UI만 제어) - - 권한 없는 사용자가 API 직접 호출 시도 → 403 Forbidden - - 권한 오류 메시지: `{"status": "error", "message": "Access denied"}` - -* **감시 로깅 (audit_logs):** 다음 행동들을 기록 - - 프로젝트 삭제: `action="DELETE_PROJECT"`, `resource_type="project"` - - 사용자 역할 변경: `action="CHANGE_ROLE_TO_{NEW_ROLE}"`, `resource_type="user"` - - 사용자 삭제: `action="DELETE_USER"`, `resource_type="user"` - - 자동화 로직 삭제: `action="DELETE_AUTOMATION"`, `resource_type="automation"` - -* **USER 자동화 조회 권한 차단:** `/api/projects/{pid}/automations` GET - - 요청 사용자의 role이 USER인 경우 403 Forbidden 반환 - - 메시지: `"Automation logic viewing is not allowed for users"` - -* **마지막 ADMIN 보호:** 사용자 삭제 API에서 체크 - - `is_last_admin(company_id, exclude_user_id=user_id)` 호출 - - True 반환 시 400 Bad Request: `"Cannot delete the last admin of the company"` - - 역할 변경 API에서도 동일 로직 적용 - -**마스터 플래그 (users.is_master)** -- `TRUE`: 회사 생성자 또는 ADMIN 역할 (팀원 승인/거부 권한) -- `FALSE`: 일반 팀원 - -**접근 제어 규칙:** - -| 기능 | SYSTEM_ADMIN | ADMIN | USER | -|------|-------------|-------|------| -| 전체 회사 조회 | ✅ | ✗ | ✗ | -| 전체 사용자 조회 | ✅ | ✗ | ✗ | -| 사용자 역할 변경 | ✅ | ✗ | ✗ | -| 회사 생성 | ✅ | ✅ | ✅ | -| 회사 팀원 관리 | ✅ | ✅ (자신 회사만) | ✗ | -| 가입 요청 승인 | ✅ | ✅ (자신 회사만) | ✗ | -| 시스템 로그 조회 | ✅ | ✗ | ✗ | -| 프로젝트 생성 | ✅ | ✅ | ✅ | -| 프로젝트 조회 | ✅ (전체) | ✅ (회사별) | ✅ (개인) | - -### 6.9 이메일 발송 (Email Infrastructure) -* **SMTP 설정:** - - **개발:** Google Gmail SMTP (umsangdon@gmail.com) - - **상용화:** Google Workspace 또는 AWS SES로 전환 -* **발송 유형:** - - OTP 인증 코드 - - 가입 확인 메일 - - 팀원 가입 승인 요청 (ADMIN 수신) - - 팀원 승인/거부 결과 (사용자에게) - - 회사 참여 신청 알림 (SYSTEM_ADMIN 수신) - - 로그인 기반 인증 갱신 알림 -* **구현:** `common_util/common_util_email.py` 모듈 - - 비동기 발송 (asyncio.create_task) - - 재시도 로직 (최대 3회) - - 템플릿 렌더링 (common_util_email_templates.py) -* **자세한 내용:** `.agent/email_infrastructure_plan.md` 참고 - ---- - -## 7. 시스템 리소스 모니터링 (System Resource Monitoring) - -### 7.1 계측 백그라운드 태스크 -* **구현:** `common_util/common_util_resource_monitor.py`의 `sample_resources_loop()` -* **등록:** `main.py` lifespan에서 `asyncio.create_task`로 시작, 종료 시 cancel (기존 `cleanup_expired_sessions` 패턴과 동일) -* **계측 주기:** 2분 (`config_system.RESOURCE_SAMPLE_INTERVAL_SEC = 120`) -* **계측 항목:** CPU(`psutil.cpu_percent`), 메모리(`psutil.virtual_memory().percent`), 디스크(`shutil.disk_usage`) -* **방어:** 계측 예외는 로깅 후 무시하여 앱 안정성 유지 - -### 7.2 이중 기록 (DB + 로그 파일) -* **DB 기록:** `system_resources` 테이블에 INSERT (활성 세션/프로젝트 수 포함) — 대시보드 그래프 조회 소스 -* **로그 파일:** 루트 `log/system_resources.log` 단일 파일에 탭 구분 1줄 append - - 형식: `\tcpu=\tmem=\tdisk=\tstorage_mb=` - - `log/`는 `.gitignore` 처리 (런타임 생성물) - -### 7.3 1개월 롤링 보관 (Retention) -* **보관 기간:** 30일 (`config_system.RESOURCE_LOG_RETENTION_DAYS = 30`) -* **DB:** 매 계측 시 `timestamp < NOW() - 30일` 행 DELETE -* **로그 파일:** 매 계측 시 30일 경과 줄 제거 후 새 줄 추가(오래된 줄 삭제 + 신규 줄 추가 방식) → 파일 크기 무한 증가 방지 - -### 7.4 리소스 API -* **엔드포인트:** `GET /api/dashboard/admin/resources?days=30` (SYSTEM_ADMIN 전용, 범위 1~90일) -* **응답:** - - `current`: 요청 시점 실시간 계측값 (그래프 미저장) - - `history`: `system_resources` 테이블의 최근 N일 시계열 (그래프 렌더링용, **다운샘플링 적용**) - - `stats`: 활성 사용자/프로젝트/저장소 지표 -* **다운샘플링 (조회 시):** - - 30일 원본은 약 21,600점(2분 간격) → 그대로 전송 시 페이로드 과다(~4MB) - - SQL에서 시간버킷 평균으로 축소: `bucket = max(120초, days*86400 / 300)` → 최대 약 300점 - - `GROUP BY FLOOR(UNIX_TIMESTAMP(timestamp) / bucket)` + `AVG(...)`로 집계 - - 계측 간격(2분)보다 버킷이 작으면 원본 해상도 유지 (하루 이하 조회 시) - - 효과: 30일 조회 페이로드 ~4MB → ~55KB 수준 diff --git a/docs/raw/guidelines/db_schema.md b/docs/raw/guidelines/db_schema.md deleted file mode 100644 index 5c6cace2..00000000 --- a/docs/raw/guidelines/db_schema.md +++ /dev/null @@ -1,851 +0,0 @@ -# DB 스키마 (테이블 및 열 목록) - -**최종 업데이트:** 2026-07-10 -**DB 명:** `aislo_db` (MariaDB v10.6+, utf8mb4_unicode_ci) -**총 테이블 수:** 34개 (33개 현재 운영 + 1개 향후 사용) - ---- - -## 1. 사용자 & 인증 & 조직 그룹 - -### 1-1. users 테이블 -``` -users -├── id (INT, PK) — 사용자 고유 번호 -├── email (VARCHAR(255), UNIQUE) — 로그인 이메일 -├── password_hash (VARCHAR(255)) — 비밀번호 암호화 저장 -├── name (VARCHAR(255)) — 사용자 이름 -├── position (VARCHAR(100), NULL) — 직급 (예: 과장, 대리, 사원) -├── department (VARCHAR(100), NULL) — 부서명 (예: 설계팀, 영업팀) -├── phone (VARCHAR(20), NULL) — 연락처 (예: 010-1234-5678) -├── company_id (INT, FK → companies.id, NULL) — 소속 회사 -├── role (ENUM) — 역할: SYSTEM_ADMIN, ADMIN, USER (기본값: USER) -├── is_master (TINYINT(1)) — 회사 마스터 여부 (기본값: 0) -├── status (ENUM) — 상태: PENDING_EMAIL, NO_COMPANY, PENDING, ACTIVE, INACTIVE, REJECTED (기본값: PENDING_EMAIL) -├── last_login (DATETIME, NULL) — 마지막 로그인 시간 -├── auth_expires_at (DATETIME, NULL) — 인증 유효 만료 시간 (3개월 주기) -├── last_email_verified_at (TIMESTAMP, NULL) — 마지막 이메일 인증 시간 -├── login_failures (INT) — 연속 로그인 실패 횟수 (기본값: 0, 보안) -├── last_failed_at (TIMESTAMP, NULL) — 마지막 로그인 실패 시간 -├── account_locked_until (TIMESTAMP, NULL) — 계정 잠금 해제 시간 -├── created_at (TIMESTAMP) — 가입일 -├── updated_at (TIMESTAMP) — 수정일 -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - -**상태 생명주기:** -- PENDING_EMAIL: 회원가입 후 이메일 인증 전 -- NO_COMPANY: 이메일 인증 완료, 회사 미연결 (로그인 가능, B02~B11 차단) -- PENDING: 회사 참여 신청 후 관리자 승인 대기 -- ACTIVE: 회사 연결 완료, 모든 기능 접근 가능 -- INACTIVE: 퇴사/계정 비활성화 -- REJECTED: 회사 참여 신청 거부 - -### 1-2. companies 테이블 -``` -companies -├── id (INT, PK) — 회사 고유 번호 -├── name (VARCHAR(255), UNIQUE) — 회사명 -├── business_registration_number (VARCHAR(20), UNIQUE, NULL) — 사업자등록번호 -├── business_address (VARCHAR(255), NULL) — 사업장 주소 -├── business_owner (VARCHAR(100), NULL) — 사업주 이름 -├── business_status (VARCHAR(50), NULL) — 기업 상태 -├── company_code (VARCHAR(20), NULL) — 회사 코드 -├── phone_number (VARCHAR(20), NULL) — 회사 연락처 -├── representative_name (VARCHAR(100), NULL) — 대표자명 -├── master_user_id (INT, NULL) — 마스터 사용자 ID -├── status (ENUM) — 상태: ACTIVE, INACTIVE, SUSPENDED (기본값: ACTIVE) -├── subscription_status (ENUM) — 구독 상태: FREE, TRIAL, PAID, EXPIRED (기본값: FREE) -├── created_by (INT, FK → users.id, NULL) — 회사 생성자 -├── created_at (TIMESTAMP) — 생성일 -├── updated_at (TIMESTAMP) — 수정일 -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - -### 1-3. join_requests 테이블 (가입 신청 - 향후 사용) -``` -join_requests -├── id (INT, PK) — 요청 고유 번호 -├── user_id (INT, FK → users.id) — 신청한 사용자 -├── company_id (INT, FK → companies.id) — 신청 대상 회사 -├── requested_at (TIMESTAMP) — 신청 시간 -├── status (ENUM) — 상태: PENDING, APPROVED, REJECTED (기본값: PENDING) -├── reviewed_by (INT, FK → users.id, NULL) — 검토한 관리자 -├── reviewed_at (TIMESTAMP, NULL) — 검토 시간 -├── review_comment (TEXT, NULL) — 검토 의견/거부 사유 -└── UNIQUE KEY (user_id, company_id) — 중복 신청 방지 -``` - -**동작 (향후 구현 예정):** -- 사용자 가입 신청 → status = PENDING 생성 -- 관리자 승인 → status = APPROVED, users.status = ACTIVE, users.company_id 세팅 -- 관리자 거부 → status = REJECTED, review_comment에 거부 사유 기록, 이메일 발송 - -### 1-5. email_otps 테이블 (이메일 인증) -``` -email_otps -├── id (INT, PK) — OTP 고유 번호 -├── email (VARCHAR(255)) — 이메일 주소 -├── otp_code (VARCHAR(10)) — OTP 코드 -├── purpose (VARCHAR(50)) — 목적: REGISTRATION, PASSWORD_RESET, EMAIL_VERIFICATION -├── expires_at (TIMESTAMP) — 만료 시간 -├── verified_at (TIMESTAMP, NULL) — 인증 시간 -├── created_at (TIMESTAMP) — 생성일 -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - -### 1-6. sessions 테이블 (세션 관리) -``` -sessions -├── id (INT, PK) — 세션 고유 번호 -├── user_id (INT, FK → users.id) — 사용자 ID -├── session_token (VARCHAR(255), UNIQUE) — 세션 토큰 -├── expires_at (TIMESTAMP) — 세션 만료 시간 -├── created_at (TIMESTAMP) — 생성일 -├── last_accessed_at (TIMESTAMP, NULL) — 마지막 접근 시간 -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - -### 1-7. trusted_devices 테이블 (장치 신뢰 관리) -``` -trusted_devices -├── id (INT, PK) — 장치 고유 번호 -├── user_id (INT, FK → users.id) — 사용자 ID -├── device_fingerprint (VARCHAR(255)) — 장치 지문 -├── device_name (VARCHAR(100), NULL) — 장치명 -├── ip_address (VARCHAR(50)) — IP 주소 -├── user_agent (TEXT) — 브라우저/OS 정보 -├── trusted_until (TIMESTAMP, NULL) — 신뢰 만료 시간 -├── created_at (TIMESTAMP) — 생성일 -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - -### 1-8. user_consents 테이블 (사용자 동의 관리) -``` -user_consents -├── id (INT, PK) — 동의 고유 번호 -├── user_id (INT, FK → users.id) — 사용자 ID -├── consent_type (VARCHAR(100)) — 동의 종류: TERMS, PRIVACY, MARKETING, etc -├── consented (TINYINT(1)) — 동의 여부 (1 = 동의, 0 = 미동의) -├── consent_version (VARCHAR(20)) — 약관 버전 -├── created_at (TIMESTAMP) — 생성일 -├── updated_at (TIMESTAMP) — 수정일 -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - -### 1-9. login_logs 테이블 (로그인 로그) -``` -login_logs -├── id (INT, PK) — 로그 고유 번호 -├── user_id (INT, FK → users.id, NULL) — 사용자 ID -├── email (VARCHAR(255), NULL) — 로그인 시도 이메일 -├── status (VARCHAR(50)) — 상태: SUCCESS, FAILURE, LOCKED -├── ip_address (VARCHAR(50), NULL) — IP 주소 -├── user_agent (TEXT, NULL) — 브라우저/OS 정보 -├── reason (TEXT, NULL) — 실패 사유 -├── created_at (TIMESTAMP) — 기록 시간 -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - -### 1-10. activity_logs 테이블 (활동 로그) -``` -activity_logs -├── id (INT, PK) — 로그 고유 번호 -├── user_id (INT, FK → users.id, NULL) — 사용자 ID -├── action (VARCHAR(100)) — 행동: LOGIN, LOGOUT, FILE_UPLOAD, PROJECT_CREATE, etc -├── entity_type (VARCHAR(100), NULL) — 대상 타입: project, file, route, etc -├── entity_id (VARCHAR(50), NULL) — 대상 ID -├── description (TEXT, NULL) — 행동 설명 -├── ip_address (VARCHAR(50), NULL) — IP 주소 -├── created_at (TIMESTAMP) — 기록 시간 -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - -### 1-11. audit_logs 테이블 (감시 로그 - 보안) -``` -audit_logs -├── id (INT, PK) — 로그 고유 번호 -├── user_id (INT, FK → users.id) — 행동 수행자 -├── action (VARCHAR(100)) — 행동: CREATE, READ, UPDATE, DELETE, EXPORT, DOWNLOAD -├── entity_type (VARCHAR(100)) — 대상 타입: projects, routes, structures, outputs -├── entity_id (VARCHAR(50)) — 대상 ID -├── details (LONGTEXT, NULL) — 상세 정보 (JSON 형식) -├── ip_address (VARCHAR(50), NULL) — IP 주소 -├── timestamp (TIMESTAMP) — 기록 시간 -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - -### 1-12. system_audit_logs 테이블 (시스템 감시) -``` -system_audit_logs -├── id (INT, PK) — 로그 고유 번호 -├── user_id (INT, FK → users.id) — 행동 수행자 -├── action (VARCHAR(50)) — 행동: LOGIN, LOGOUT, USER_CREATE, COMPANY_CREATE, ROLE_CHANGE -├── resource_type (VARCHAR(50)) — 대상 타입: user, company, project, join_request -├── resource_id (INT, NULL) — 대상 ID -├── ip_address (VARCHAR(50), NULL) — IP 주소 -├── user_agent (TEXT, NULL) — 브라우저/OS 정보 -├── timestamp (TIMESTAMP) — 기록 시간 -└── INDEX (timestamp, user_id) — 성능 최적화 -``` - -### 1-13. system_resources 테이블 (시스템 리소스 모니터링) -``` -system_resources -├── id (INT, PK) — 기록 고유 번호 -├── cpu_usage_percent (FLOAT, NULL) — CPU 사용률 (%) -├── memory_usage_percent (FLOAT, NULL) — 메모리 사용률 (%) -├── disk_usage_percent (FLOAT, NULL) — 디스크 사용률 (%) -├── active_user_count (INT, NULL) — 활성 사용자 수 -├── active_project_count (INT, NULL) — 활성 프로젝트 수 -├── total_storage_mb (FLOAT, NULL) — 전체 저장소 사용량 (MB) -├── timestamp (TIMESTAMP) — 기록 시간 -└── INDEX (timestamp) — 시계열 조회 최적화 -``` - -**리소스 측정 방식:** -- **현재값 실측:** 요청 시점 실시간 측정 (DB 저장 없이 응답에 포함) -- **이력 조회:** `system_resources` 테이블에서 기본 30일치 시계열 조회 -- **활성 지표:** active_user_count는 유효 세션 수, active_project_count는 미삭제 프로젝트 수 실시간 집계 - -### 1-14. support_requests 테이블 (고객 지원) -``` -support_requests -├── id (INT, PK) — 요청 고유 번호 -├── user_id (INT, FK → users.id) — 신청자 -├── title (VARCHAR(255)) — 제목 -├── description (LONGTEXT) — 설명 -├── category (VARCHAR(100), NULL) — 카테고리 -├── priority (VARCHAR(50), NULL) — 우선순위: LOW, MEDIUM, HIGH, URGENT -├── status (VARCHAR(50)) — 상태: OPEN, IN_PROGRESS, RESOLVED, CLOSED -├── assigned_to (INT, FK → users.id, NULL) — 담당자 -├── resolution (LONGTEXT, NULL) — 해결 내용 -├── created_at (TIMESTAMP) — 생성일 -├── updated_at (TIMESTAMP) — 수정일 -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - ---- - -## 2. 프로젝트 그룹 - -### 2-1. projects 테이블 -``` -projects -├── id (CHAR(36), PK) — 프로젝트 고유 ID (UUID) -├── user_id (INT, FK → users.id) — 프로젝트 소유자 -├── company_id (INT, FK → companies.id) — 소속 회사 -├── name (VARCHAR(255)) — 프로젝트명 (예: "2025년 산불진화임도") -├── region (VARCHAR(100), NULL) — 지역명 (예: "울진군 금강송면") -├── road_type (VARCHAR(100), NULL) — 임도 종류: 간선임도, 지선임도, 산불진화임도, 계류보전 -├── project_year (INT, NULL) — 사업 연도 (예: 2025) -├── estimated_length_m (FLOAT, NULL) — 추정 연장 (미터) -├── memo (TEXT, NULL) — 비고/메모 -├── status (VARCHAR(50), NULL) — 상태: NEW, FILE_UPLOADED, WF1_ANALYZING, WF1_COMPLETE, ... (기본값: NEW) -├── crs_epsg (INT, NULL) — 좌표계 (예: 5178 = 한국 표준, 기본값: 5178) -├── storage_path (VARCHAR(500), NULL) — 파일시스템 경로 (예: "storage/company/user/project_uuid") -├── created_at (TIMESTAMP) — 생성일 -├── updated_at (TIMESTAMP) — 수정일 -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - -### 2-2. project_versions 테이블 (프로젝트 버전 관리) -``` -project_versions -├── id (INT, PK) — 버전 고유 번호 -├── project_id (CHAR(36), FK → projects.id) — 프로젝트 ID -├── version_num (INT) — 버전 번호 (1, 2, 3, ...) -├── status (VARCHAR(50), NULL) — 저장된 상태 -├── data (LONGTEXT, NULL) — 설계 데이터 스냅샷 (JSON 형식) -├── snapshot_at (TIMESTAMP) — 스냅샷 시점 -└── created_at (TIMESTAMP) — 생성일 -``` - -### 2-3. project_automations 테이블 (프로젝트 자동화 규칙) -``` -project_automations -├── id (INT, PK) — 자동화 고유 번호 -├── project_id (CHAR(36), FK → projects.id) — 프로젝트 ID -├── name (VARCHAR(100)) — 자동화 규칙명 -├── logic_type (VARCHAR(50)) — 로직 타입: trigger_on_stage_complete, auto_notify, etc -├── config_json (LONGTEXT) — 자동화 설정 (JSON) -├── status (ENUM) — 상태: DRAFT, ACTIVE, INACTIVE (기본값: DRAFT) -├── created_by (INT, FK → users.id) — 생성자 -├── updated_by (INT, FK → users.id, NULL) — 마지막 수정자 -├── last_executed_at (DATETIME, NULL) — 마지막 실행 시간 -├── created_at (TIMESTAMP) — 생성일 -├── updated_at (TIMESTAMP) — 수정일 -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - ---- - -## 3. 파일 & 업로드 관리 그룹 - -### 3-1. upload_sessions 테이블 (파일 업로드 세션) -``` -upload_sessions -├── id (INT, PK) — 업로드 세션 고유 번호 -├── user_id (INT, FK → users.id) — 업로드자 -├── project_id (CHAR(36), FK → projects.id) — 프로젝트 ID -├── session_id (VARCHAR(255), UNIQUE) — 세션 ID -├── file_name (VARCHAR(255)) — 파일명 -├── file_size_mb (FLOAT) — 파일 크기 -├── chunk_count (INT) — 청크 개수 -├── uploaded_chunks (INT) — 업로드된 청크 수 -├── status (VARCHAR(50)) — 상태: PENDING, IN_PROGRESS, COMPLETED, FAILED (기본값: PENDING) -├── started_at (TIMESTAMP) — 시작 시간 -├── completed_at (TIMESTAMP, NULL) — 완료 시간 -└── expires_at (TIMESTAMP) — 세션 만료 시간 -``` - -### 3-2. upload_chunks 테이블 (파일 청크 관리) -``` -upload_chunks -├── id (INT, PK) — 청크 고유 번호 -├── upload_session_id (INT, FK → upload_sessions.id) — 업로드 세션 ID -├── chunk_index (INT) — 청크 순서 -├── chunk_size_mb (FLOAT) — 청크 크기 -├── checksum (VARCHAR(255), NULL) — 체크섬 (무결성 검사) -├── status (VARCHAR(50)) — 상태: PENDING, UPLOADED, VERIFIED (기본값: PENDING) -├── uploaded_at (TIMESTAMP, NULL) — 업로드 시간 -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - -### 3-3. input_files 테이블 (원본 입력 파일) -``` -input_files -├── id (INT, PK) — 파일 고유 번호 -├── project_id (CHAR(36), FK → projects.id) — 속한 프로젝트 -├── file_type (VARCHAR(50), NULL) — 파일 종류: las, tif, tfw, prj, dxf, dwg, other -├── original_filename (VARCHAR(255)) — 원래 파일명 (예: "cloud_merged.las") -├── raw_file_path (VARCHAR(500)) — 원본 저장 경로 (예: "storage/.../raw/las/cloud_merged.las") -├── file_size_mb (FLOAT, NULL) — 파일 크기 (MB) -├── upload_by (INT, FK → users.id, NULL) — 업로드한 사용자 -├── upload_at (TIMESTAMP) — 업로드 날짜 -├── crs_epsg (INT, NULL) — 파일 좌표계 (예: 5178) -├── metadata (LONGTEXT, NULL) — 파일 메타데이터 (JSON) -├── status (VARCHAR(50), NULL) — 상태: UPLOADED, PROCESSED, ARCHIVED (기본값: UPLOADED) -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - ---- - -## 4. 지표면 분석 & 처리 그룹 - -### 4-1. processed_point_cloud 테이블 (변환된 포인트클라우드) -``` -processed_point_cloud -├── id (INT, PK) — 변환 데이터 고유 번호 -├── input_file_id (INT, FK → input_files.id) — 원본 LAS 파일 참조 -├── project_id (CHAR(36), FK → projects.id) — 프로젝트 ID -├── process_type (VARCHAR(50), NULL) — 변환 방식: filtered, sampled, classified -├── processed_file_path (VARCHAR(500), NULL) — 변환된 파일 경로 -├── converted_format (VARCHAR(50), NULL) — 변환 포맷: las, ply, laz 등 -├── converted_file_path (VARCHAR(500), NULL) — 변환 포맷 저장 경로 -├── point_count (INT, NULL) — 포인트 개수 -├── min_z (FLOAT, NULL) — 최저 높이 -├── max_z (FLOAT, NULL) — 최고 높이 -├── mean_z (FLOAT, NULL) — 평균 높이 -├── x_min (FLOAT, NULL) — 최소 경도 -├── x_max (FLOAT, NULL) — 최대 경도 -├── y_min (FLOAT, NULL) — 최소 위도 -├── y_max (FLOAT, NULL) — 최대 위도 -├── density_per_sqm (FLOAT, NULL) — 단위 면적당 포인트 밀도 -├── classification_summary (LONGTEXT, NULL) — 분류 요약 (JSON) -├── processing_params (LONGTEXT, NULL) — 변환 파라미터 (JSON) -├── processed_at (TIMESTAMP) — 변환 완료 날짜 -├── status (VARCHAR(50), NULL) — 상태: PROCESSING, COMPLETE, FAILED (기본값: PROCESSING) -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - -### 4-2. surface_models 테이블 (지표면 모델) -``` -surface_models -├── id (INT, PK) — 지표면 모델 고유 번호 -├── project_id (CHAR(36), FK → projects.id) — 프로젝트 ID -├── model_type (VARCHAR(50), NULL) — 모델 종류: dem_grid, tin, mesh_triangulated, contour_lines -├── source_file_id (INT, FK → input_files.id, NULL) — 원본 LAS 파일 -├── processed_cloud_id (INT, FK → processed_point_cloud.id, NULL) — 변환된 포인트클라우드 참조 -├── status (VARCHAR(50), NULL) — 상태: PROCESSING, COMPLETE, FAILED (기본값: PROCESSING) -├── crs_epsg (INT, NULL) — 좌표계 -├── resolution_m (FLOAT, NULL) — 해상도 (래스터인 경우) -├── model_file_path (VARCHAR(500), NULL) — 모델 저장 경로 (예: "storage/.../surface/dem.tif") -├── generation_params (LONGTEXT, NULL) — 생성 파라미터 (JSON) -├── created_at (TIMESTAMP) — 생성일 -├── completed_at (TIMESTAMP, NULL) — 완료 시간 -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - -### 4-3. terrain_layers 테이블 (지형 레이어) -``` -terrain_layers -├── id (INT, PK) — 레이어 고유 번호 -├── surface_model_id (INT, FK → surface_models.id) — 지표면 모델 참조 -├── layer_name (VARCHAR(100), NULL) — 레이어명 (예: "지표", "제1층", "제2층") -├── geometry_type (VARCHAR(50), NULL) — 기하 종류: POINTCLOUD, GRID, MESH, CONTOUR -├── layer_file_path (VARCHAR(500), NULL) — 레이어 파일 저장 경로 -├── file_format (VARCHAR(50), NULL) — 파일 형식: geojson, geotiff, ply, obj 등 -├── file_size_mb (FLOAT, NULL) — 파일 크기 -├── statistics (LONGTEXT, NULL) — 통계 (JSON) -├── created_at (TIMESTAMP) — 생성일 -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - ---- - -## 5. 경로 & 설계 그룹 - -### 5-1. routes 테이블 (경로 설계) -``` -routes -├── id (INT, PK) — 경로 고유 번호 -├── project_id (CHAR(36), FK → projects.id) — 프로젝트 ID -├── surface_model_id (INT, FK → surface_models.id, NULL) — 기반 지표면 모델 -├── status (VARCHAR(50), NULL) — 상태: DRAFT, CONFIRMED, ARCHIVED (기본값: DRAFT) -├── start_chainage_m (FLOAT, NULL) — 시작점 측점 (m) -├── end_chainage_m (FLOAT, NULL) — 종료점 측점 (m) -├── total_length_m (FLOAT, NULL) — 총 연장 (m) -├── grade_percent (LONGTEXT, NULL) — 각 구간 종단 경사도 (JSON array) -├── constraints (LONGTEXT, NULL) — 설계 제약조건 (JSON) -├── algorithm_params (LONGTEXT, NULL) — 알고리즘 파라미터 (JSON) -├── route_data_path (VARCHAR(500), NULL) — 경로 데이터 저장 경로 (GeoJSON) -├── computed_at (TIMESTAMP, NULL) — 계산 완료 날짜 -├── created_at (TIMESTAMP) — 생성일 -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - -**참고:** 경로 좌표는 JSON 형식으로 `route_data_path` 파일에 저장됨 (GeoJSON LineString) - -### 5-2. route_points 테이블 (경로 샘플 포인트) -``` -route_points -├── id (INT, PK) — 포인트 고유 번호 -├── route_id (INT, FK → routes.id) — 경로 ID -├── chainage_m (FLOAT, NULL) — 측점 (m) -├── elevation_m (FLOAT, NULL) — 높이 -├── slope_percent (FLOAT, NULL) — 경사도 (%) -├── sequence_num (INT, NULL) — 순서번호 -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - -### 5-3. route_statistics 테이블 (경로 통계) -``` -route_statistics -├── id (INT, PK) — 통계 고유 번호 -├── route_id (INT, FK → routes.id) — 경로 ID -├── min_slope (FLOAT, NULL) — 최소 경사도 (%) -├── max_slope (FLOAT, NULL) — 최대 경사도 (%) -├── mean_slope (FLOAT, NULL) — 평균 경사도 (%) -├── cut_volume_m3 (FLOAT, NULL) — 절토량 (m³) -├── fill_volume_m3 (FLOAT, NULL) — 성토량 (m³) -├── tree_cutting_volume (FLOAT, NULL) — 목재 절감 추정량 -└── cost_score (FLOAT, NULL) — 알고리즘 점수 -``` - ---- - -## 6. 종단면 & 횡단면 그룹 - -### 6-1. longitudinal_sections 테이블 (종단면) -``` -longitudinal_sections -├── id (INT, PK) — 종단면 고유 번호 -├── project_id (CHAR(36), FK → projects.id) — 프로젝트 ID -├── route_id (INT, FK → routes.id) — 경로 ID -├── status (VARCHAR(50), NULL) — 상태: DRAFT, CONFIRMED (기본값: DRAFT) -├── data (LONGTEXT, NULL) — 상세 데이터 (JSON) -│ ├── chainages (측점 배열, m) -│ ├── elevations (지표 표고 배열) -│ ├── grades (경사도 배열, %) -│ └── design_elevations (설계 표고 배열) -├── longitudinal_file_path (VARCHAR(500), NULL) — 저장 경로 (JSON) -├── computed_at (TIMESTAMP, NULL) — 계산 날짜 -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - -### 6-2. cross_sections 테이블 (횡단면) -``` -cross_sections -├── id (INT, PK) — 횡단면 고유 번호 -├── project_id (CHAR(36), FK → projects.id) — 프로젝트 ID -├── route_id (INT, FK → routes.id) — 경로 ID -├── chainage_m (FLOAT, NULL) — 측점 (예: 0, 20, 40, ... m) -├── sequence_num (INT, NULL) — 횡단면 순번 (1, 2, ...) -├── status (VARCHAR(50), NULL) — 상태: DRAFT, CONFIRMED (기본값: DRAFT) -├── data (LONGTEXT, NULL) — 상세 데이터 (JSON) -│ ├── left_slope (좌측 사면 경사, %) -│ ├── right_slope (우측 사면 경사, %) -│ ├── width_m (노폭) -│ ├── cut_volume_m3 (절토량) -│ ├── fill_volume_m3 (성토량) -│ ├── structures (이 단면 내 구조물 ID 배열) -│ └── notes (메모) -├── cross_section_file_path (VARCHAR(500), NULL) — 저장 경로 (JSON) -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - ---- - -## 7. 구조물 & 수량 그룹 - -### 7-1. structures 테이블 (구조물) -``` -structures -├── id (INT, PK) — 구조물 고유 번호 -├── project_id (CHAR(36), FK → projects.id) — 프로젝트 ID -├── cross_section_id (INT, FK → cross_sections.id, NULL) — 횡단면 ID -├── structure_type (VARCHAR(100), NULL) — 종류: 낙석방지책, 돌붙임, 계간수로, 낙차공 등 -├── chainage_m (FLOAT, NULL) — 측점 (m) -├── location (VARCHAR(50), NULL) — 위치: LEFT, CENTER, RIGHT -├── length_m (FLOAT, NULL) — 길이 -├── width_m (FLOAT, NULL) — 폭 -├── height_m (FLOAT, NULL) — 높이 -├── material (VARCHAR(100), NULL) — 재료: 강재, 콘크리트, 목재, 돌 등 -├── quantity (INT, NULL) — 개수 -├── unit_price (FLOAT, NULL) — 단가 -├── design_notes (LONGTEXT, NULL) — 설계 노트 (JSON) -├── structure_data_path (VARCHAR(500), NULL) — 구조물 데이터 저장 경로 -├── last_modified_by (INT, FK → users.id, NULL) — 마지막 수정자 -├── created_at (TIMESTAMP) — 생성일 -├── updated_at (TIMESTAMP) — 수정일 -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - -### 7-2. quantity_items 테이블 (수량 항목) -``` -quantity_items -├── id (INT, PK) — 수량 항목 고유 번호 -├── project_id (CHAR(36), FK → projects.id) — 프로젝트 ID -├── category (VARCHAR(100), NULL) — 대분류: 토공, 구조물, 포장, 배수, 녹화, 안전시설 -├── item_name (VARCHAR(255), NULL) — 항목명 (예: "절토 일반", "낙석방지책 설치") -├── unit (VARCHAR(50), NULL) — 단위: m3, 개, m, m2 -├── quantity_design (FLOAT, NULL) — 설계 수량 -├── quantity_actual (FLOAT, NULL) — 실제 수량 (사용자 수정 가능) -├── unit_price (FLOAT, NULL) — 단가 -├── total_price (FLOAT, NULL) — 소계 (quantity_actual × unit_price) -├── standard_reference (VARCHAR(255), NULL) — 기준 참고 자료 -├── quantity_data_path (VARCHAR(500), NULL) — 수량 데이터 저장 경로 -├── data (LONGTEXT, NULL) — 계산 과정 메모 (JSON) -│ ├── formula (계산식) -│ ├── source (데이터 출처) -│ └── ... -├── computed_at (TIMESTAMP, NULL) — 계산 날짜 -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - ---- - -## 8. 산출물 & 문서 그룹 - -### 8-1. outputs 테이블 (최종 산출물 세트) -``` -outputs -├── id (INT, PK) — 산출물 세트 고유 번호 -├── project_id (CHAR(36), FK → projects.id) — 프로젝트 ID -├── output_type (VARCHAR(100), NULL) — 종류: estimation_excel, drawing_dxf, report_pdf, all_bundle -├── status (VARCHAR(50), NULL) — 상태: GENERATING, COMPLETE, FAILED (기본값: GENERATING) -├── generated_by (INT, FK → users.id, NULL) — 생성자 -├── generated_at (TIMESTAMP) — 생성 날짜 -├── version (INT, NULL) — 버전 (기본값: 1) -├── outputs_directory_path (VARCHAR(500), NULL) — 산출물 저장 폴더 (예: "storage/.../outputs/v1/") -├── metadata (LONGTEXT, NULL) — 메타데이터 (JSON) -│ ├── template_used (사용한 양식) -│ ├── company_name (회사명) -│ ├── project_name (프로젝트명) -│ ├── total_cost (총 비용) -│ └── generation_time_sec (생성 소요 시간) -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - -### 8-2. output_files 테이블 (최종 산출 파일) -``` -output_files -├── id (INT, PK) — 파일 고유 번호 -├── output_id (INT, FK → outputs.id) — 산출물 ID -├── file_type (VARCHAR(50), NULL) — 파일 형식: xlsx, pdf, dxf, dwg, json, zip -├── original_filename (VARCHAR(255), NULL) — 파일명 (예: "견적서_v1.xlsx") -├── output_file_path (VARCHAR(500), NULL) — 저장 경로 (예: "storage/.../outputs/v1/견적서.xlsx") -├── file_size_mb (FLOAT, NULL) — 파일 크기 -├── download_count (INT, NULL) — 다운로드 횟수 (기본값: 0) -├── created_at (TIMESTAMP) — 생성 날짜 -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - ---- - -## 9. 변경 이력 & 감시 그룹 - -### 9-1. change_logs 테이블 (설계 변경 기록) -``` -change_logs -├── id (INT, PK) — 변경 고유 번호 -├── project_id (CHAR(36), FK → projects.id) — 프로젝트 ID -├── changed_by (INT, FK → users.id) — 변경자 -├── changed_at (TIMESTAMP) — 변경 날짜 -├── entity_type (VARCHAR(100)) — 대상 타입: routes, cross_sections, structures, quantity_items -├── entity_id (VARCHAR(50)) — 대상 ID -├── old_value (LONGTEXT, NULL) — 변경 전 값 (JSON) -├── new_value (LONGTEXT, NULL) — 변경 후 값 (JSON) -├── reason (TEXT, NULL) — 변경 사유 -└── deleted_at (TIMESTAMP, NULL) — 삭제일 (soft delete) -``` - ---- - -## 10. 테이블 관계도 - -``` -users (사용자) -├── id (PK) -├── email -├── password_hash -├── role (SYSTEM_ADMIN | ADMIN | USER) -├── is_master -├── status (생명주기) -├── company_id (FK) ──→ companies.id -├── last_login -└── auth_expires_at - -companies (회사) -├── id (PK) -├── name -├── status (ACTIVE | INACTIVE | SUSPENDED) -├── subscription_status (FREE | TRIAL | PAID | EXPIRED) -├── created_by (FK) ──→ users.id -└── created_at - -projects (프로젝트) -├── id (UUID, PK) -├── user_id (FK) ──→ users.id -├── company_id (FK) ──→ companies.id -├── name -├── status -├── crs_epsg -├── storage_path -└── created_at - ↓ - ├─→ input_files (입력 파일) - │ └─→ processed_point_cloud (변환된 포인트클라우드) - │ └─→ surface_models (지표면 모델) - │ └─→ terrain_layers (지형 레이어) - ├─→ routes (경로) - │ ├─→ route_points (경로 포인트) - │ ├─→ route_statistics (경로 통계) - │ ├─→ longitudinal_sections (종단면) - │ └─→ cross_sections (횡단면) - │ └─→ structures (구조물) - ├─→ quantity_items (수량 항목) - ├─→ outputs (산출물) - │ └─→ output_files (산출물 파일) - ├─→ project_versions (프로젝트 버전) - ├─→ project_automations (프로젝트 자동화) - ├─→ audit_logs (감시 로그) - └─→ change_logs (변경 로그) -``` - ---- - -## 11. 파일시스템 경로와 DB 링크 (워크플로우 기반 구조) - -### 파일시스템 구조 (6단계 워크플로우) - -``` -storage/ -├── {company_slug}/ -│ └── {user_slug}/ -│ └── {project_id}/ ← projects.storage_path -│ │ -│ ├── B03_FileInput/ ← WF0: 파일 입력 -│ │ └── input/ (원본 입력 파일들) -│ │ ├── las/ -│ │ │ └── cloud_merged.las ← input_files.raw_file_path -│ │ ├── tif/ -│ │ ├── tfw/ -│ │ ├── prj/ -│ │ └── dxf/ -│ │ -│ ├── B04_wf1_Surface/ ← WF1: 지표면 분석 -│ │ ├── processed/ (변환된 포인트클라우드) -│ │ │ ├── cloud_filtered.las ← processed_point_cloud.processed_file_path -│ │ │ └── cloud_sampled.ply ← processed_point_cloud.converted_file_path -│ │ └── models/ (지표면 모델 & 레이어) -│ │ ├── dem_2m.tif ← surface_models.model_file_path -│ │ ├── tin_mesh.obj -│ │ ├── layer_ground.geojson ← terrain_layers.layer_file_path -│ │ └── layer_1.geojson -│ │ -│ ├── B05_wf2_Route/ ← WF2: 경로 설계 -│ │ └── route/ -│ │ ├── route_main.geojson ← routes.route_data_path -│ │ ├── route_points.json -│ │ └── route_statistics.json -│ │ -│ ├── B06_wf3_ProfileCross/ ← WF3: 종횡단 생성 -│ │ ├── longitudinal/ -│ │ │ └── longitudinal.json ← longitudinal_sections.longitudinal_file_path -│ │ └── cross_sections/ -│ │ ├── cross_0000m.json ← cross_sections.cross_section_file_path -│ │ ├── cross_0020m.json -│ │ └── ... -│ │ -│ ├── B07_wf4_DesignDetail/ ← WF4: 상세 설계 -│ │ └── structures/ -│ │ ├── struct_0020m_001.json ← structures.structure_data_path -│ │ └── ... -│ │ -│ ├── B08_wf5_Quantity/ ← WF5: 수량 산출 -│ │ ├── quantities/ -│ │ │ └── items.json ← quantity_items.quantity_data_path -│ │ └── ... -│ │ -│ └── B09_wf6_Estimation/ ← WF6: 견적·문서 -│ ├── v1/ ← outputs.outputs_directory_path -│ │ ├── 견적서.xlsx ← output_files.output_file_path -│ │ ├── 설계도.dxf -│ │ └── ... -│ └── v2/ -│ └── ... -``` - -**핵심 개념:** -- **B03~B09**: 워크플로우 6단계와 1:1 대응 -- **각 단계의 입력/출력**: 명확히 분리 -- **버전 관리**: B09 단계에서만 (v1, v2, ...) - ---- - -## 12. 핵심 쿼리 예제 - -### 예제 1: 사용자의 모든 프로젝트 조회 -```sql -SELECT p.id, p.name, p.status, p.created_at -FROM projects p -WHERE p.user_id = :user_id AND p.deleted_at IS NULL -ORDER BY p.created_at DESC; -``` - -### 예제 2: 프로젝트의 최신 경로 조회 -```sql -SELECT r.id, r.total_length_m, r.status -FROM routes r -WHERE r.project_id = :project_id AND r.deleted_at IS NULL -ORDER BY r.computed_at DESC -LIMIT 1; -``` - -### 예제 3: 경로의 모든 횡단면 조회 -```sql -SELECT cs.id, cs.chainage_m, cs.data -FROM cross_sections cs -WHERE cs.route_id = :route_id AND cs.deleted_at IS NULL -ORDER BY cs.chainage_m; -``` - -### 예제 4: 프로젝트 총 비용 계산 -```sql -SELECT - SUM(quantity_actual * unit_price) as total_cost, - category -FROM quantity_items -WHERE project_id = :project_id AND deleted_at IS NULL -GROUP BY category; -``` - -### 예제 5: 사용자의 감시 로그 (최근 30일) -```sql -SELECT action, entity_type, timestamp -FROM audit_logs -WHERE user_id = :user_id AND timestamp > DATE_SUB(NOW(), INTERVAL 30 DAY) -ORDER BY timestamp DESC; -``` - ---- - -## 13. 데이터 타입 가이드 - -| 타입 | 설명 | 예제 | -|------|------|------| -| INT | 정수 | 1, 2, 100 | -| FLOAT | 실수 | 1.5, 2.25, 100.75 | -| VARCHAR(n) | 문자열 (고정 길이) | "project_name" | -| TEXT / LONGTEXT | 문자열 (가변, 대용량) | 설명문, JSON 데이터 | -| TIMESTAMP | 날짜 + 시간 (자동 업데이트) | 2025-07-05 15:30:00 | -| DATETIME | 날짜 + 시간 (수동) | 2025-07-05 15:30:00 | -| TINYINT(1) | 참/거짓 (0 또는 1) | 0, 1 | -| ENUM | 열거형 | ACTIVE, INACTIVE | -| CHAR(36) | UUID (고정 36자) | 550e8400-e29b-41d4-a716-446655440000 | - ---- - -## 14. 총 테이블 수 및 분류 - -### 34개 테이블 분류 - -**1. 사용자/회사/조직 (14개)** -- users, companies, join_requests (향후), email_otps, sessions, trusted_devices, user_consents -- login_logs, activity_logs, audit_logs, system_audit_logs, system_resources, support_requests - -**2. 프로젝트 관리 (3개)** -- projects, project_versions, project_automations - -**3. 파일/업로드 (3개)** -- upload_sessions, upload_chunks, input_files - -**4. 지표면 분석 (3개)** -- processed_point_cloud, surface_models, terrain_layers - -**5. 경로 설계 (3개)** -- routes, route_points, route_statistics - -**6. 종횡단 설계 (2개)** -- longitudinal_sections, cross_sections - -**7. 구조물/수량 (2개)** -- structures, quantity_items - -**8. 산출물 (2개)** -- outputs, output_files - -**9. 변경/이력 (1개)** -- change_logs - ---- - -## 15. DB vs 파일시스템 역할 분리 - -| 저장 위치 | 내용 | 예시 | -|----------|------|------| -| **DB (MariaDB)** | 메타데이터 + 경로정보 + 상태 | 파일명, 크기, 좌표계, 상태, 저장경로, 통계 | -| **파일시스템** | 실제 파일 데이터 | LAS, PLY, TIF, DXF, Excel, PDF, JSON 파일들 | - -**설계 원칙:** -- DB에는 "어디에 무엇이 있는가"의 메타정보만 저장 -- 실제 대용량 파일은 파일시스템에 저장 -- 각 워크플로우 단계의 입력/출력 경로를 DB에 기록 -- JSON 형식으로 좌표 및 복잡한 데이터 구조를 저장 - ---- - -## 16. 마이그레이션 상태 - -### ✅ 완료됨 -- [x] 33개 테이블 생성 (MariaDB) -- [x] 관계(FK) 설정 -- [x] Soft delete (deleted_at) 지원 -- [x] 인덱스 추가 (주요 조회 경로) - -### 📋 진행 중 -- [ ] API 라우터에서 파일 경로 저장 로직 추가 - - B03 파일 업로드 → `input_files.raw_file_path` 저장 - - B04 WF1 실행 → `surface_models.model_file_path`, `terrain_layers.layer_file_path` 저장 - - B05 WF2 실행 → `routes.route_data_path` 저장 - - B06 WF3 실행 → `longitudinal_sections.longitudinal_file_path`, `cross_sections.cross_section_file_path` 저장 - - B07 WF4 실행 → `structures.structure_data_path` 저장 - - B08 WF5 실행 → `quantity_items.quantity_data_path` 저장 - - B09 WF6 실행 → `outputs.outputs_directory_path`, `output_files.output_file_path` 저장 - -### 🔮 향후 계획 -- [ ] Python Pydantic 모델 정의 (ORM 대신) -- [ ] API 엔드포인트 보안 감시 강화 -- [ ] 실시간 알림 시스템 (WebSocket) diff --git a/docs/raw/guidelines/design.md b/docs/raw/guidelines/design.md deleted file mode 100644 index eaad1446..00000000 --- a/docs/raw/guidelines/design.md +++ /dev/null @@ -1,445 +0,0 @@ -# Wiza — Style Reference -> Twilight prospecting observatory bathed in lavender mist - -**Theme:** light - -Wiza operates in a light-mode universe where deep violet ink commands attention against a soft lavender atmosphere. The brand lives between a confident enterprise tool and an approachable consumer product—white surfaces, thin borders, and compact Inter type for dense data interfaces, paired with Britti Sans display headlines that feel geometric and assured. The signature move is the gradient wash: pale lavender backgrounds bleeding white-to-violet-to-peach, making even a sprawling data table feel sunlit. Purple is reserved for authority—headlines, logo, filled actions—while the rest of the UI stays in quiet neutrals, letting contact data breathe. - -## Tokens — Colors - -| Name | Value | Token | Role | -|------|-------|-------|------| -| Deep Iris | `#26114a` | `--color-deep-iris` | Violet supporting accent for decorative details and low-frequency emphasis. Do not promote it to the primary CTA color | -| Plum Velvet | `#312749` | `--color-plum-velvet` | Navigation text, secondary headings, card titles, footer copy — slightly lighter companion to Deep Iris | -| Royal Amethyst | `#3e0079` | `--color-royal-amethyst` | Links, input focus rings, accent strokes, icon highlights — the most saturated violet | -| Mist Violet | `#edecff` | `--color-mist-violet` | Soft highlight washes, tinted section backgrounds, decorative blurs — the lavender atmosphere | -| Lavender Wash | `linear-gradient(90deg, rgb(185, 154, 255), rgb(125, 67, 255) 10%, rgba(125, 67, 255, 0))` | `--color-lavender-wash` | Decorative gradient stops and hero atmosphere | -| Twilight Beam | `linear-gradient(to right, rgb(207, 138, 255), rgb(255, 102, 193), rgb(255, 173, 116), rgb(170, 129, 255))` | `--color-twilight-beam` | Multi-stop decorative gradient for hero glow effects | -| Canvas | `#ffffff` | `--color-canvas` | Page background, card surfaces, input fields, button text on dark fills | -| Paper | `#f6f7fa` | `--color-paper` | Subtle surface lift, table row alternation, secondary card backgrounds | -| Mist | `#e6e2e3` | `--color-mist` | Hairline borders, dividers, subtle separators | -| Smoke | `#c1c7cf` | `--color-smoke` | Disabled states, skeleton placeholders, muted background blocks | -| Ash | `#9491a1` | `--color-ash` | Muted helper text, placeholder copy, secondary metadata | -| Slate | `#615e6e` | `--color-slate` | Secondary body text, descriptions, table metadata | -| Charcoal | `#333333` | `--color-charcoal` | Body text, link text, icon strokes in neutral contexts | -| Carbon | `#222222` | `--color-carbon` | Dark UI elements, near-black accents | -| Ink | `#000000` | `--color-ink` | Maximum contrast text and borders in specific dark UI elements | - -## Tokens — Typography - -### Britti Sans — Display and heading typeface used exclusively at 24–64px, always weight 500. The 1.0 line-height is distinctive — headings sit tight with no leading slack, creating geometric, almost architectural presence. Substitute with Plus Jakarta Sans (500) or General Sans (500) for closest geometric match. · `--font-britti-sans` -- **Substitute:** Plus Jakarta Sans -- **Weights:** 500 -- **Sizes:** 24px, 32px, 40px, 56px, 64px -- **Line height:** 1.00 -- **Role:** Display and heading typeface used exclusively at 24–64px, always weight 500. The 1.0 line-height is distinctive — headings sit tight with no leading slack, creating geometric, almost architectural presence. Substitute with Plus Jakarta Sans (500) or General Sans (500) for closest geometric match. - -### Inter — Workhorse UI and body typeface. Weight 400 for body, 500 for buttons/nav/table headers, 700 for emphasized labels. The tight size range (12–16px) and compact line-heights signal a data-dense product, not a marketing site. Substitute with Inter directly or IBM Plex Sans. · `--font-inter` -- **Substitute:** Inter -- **Weights:** 400, 500, 700 -- **Sizes:** 12px, 14px, 16px -- **Line height:** 1.30–1.50 -- **Role:** Workhorse UI and body typeface. Weight 400 for body, 500 for buttons/nav/table headers, 700 for emphasized labels. The tight size range (12–16px) and compact line-heights signal a data-dense product, not a marketing site. Substitute with Inter directly or IBM Plex Sans. - -### Type Scale - -| Role | Size | Line Height | Letter Spacing | Token | -|------|------|-------------|----------------|-------| -| caption | 12px | 1.3 | — | `--text-caption` | -| body-sm | 14px | 1.4 | — | `--text-body-sm` | -| body | 16px | 1.5 | — | `--text-body` | -| subheading | 24px | 1 | — | `--text-subheading` | -| heading-sm | 32px | 1 | — | `--text-heading-sm` | -| heading | 40px | 1 | — | `--text-heading` | -| heading-lg | 56px | 1 | — | `--text-heading-lg` | -| display | 64px | 1 | — | `--text-display` | - -## Tokens — Spacing & Shapes - -**Base unit:** 8px - -**Density:** compact - -### Spacing Scale - -| Name | Value | Token | -|------|-------|-------| -| 8 | 8px | `--spacing-8` | -| 16 | 16px | `--spacing-16` | -| 24 | 24px | `--spacing-24` | -| 32 | 32px | `--spacing-32` | -| 40 | 40px | `--spacing-40` | -| 48 | 48px | `--spacing-48` | -| 56 | 56px | `--spacing-56` | -| 64 | 64px | `--spacing-64` | -| 96 | 96px | `--spacing-96` | -| 104 | 104px | `--spacing-104` | -| 216 | 216px | `--spacing-216` | - -### Border Radius - -| Element | Value | -|---------|-------| -| cards | 8px | -| icons | 8px | -| large | 24px | -| pills | 1440px | -| inputs | 8px | -| buttons | 8px | - -### Shadows - -| Name | Value | Token | -|------|-------|-------| -| sm | `rgba(18, 55, 105, 0.08) 0px 2px 4px 0px, rgba(18, 55, 105...` | `--shadow-sm` | -| lg | `rgba(14, 59, 101, 0.06) 0px 32px 24px -12px, rgba(14, 59,...` | `--shadow-lg` | -| lg-2 | `rgba(114, 49, 255, 0.32) 0px -6px 20px 0px inset, rgba(47...` | `--shadow-lg-2` | -| sm-2 | `rgba(18, 55, 105, 0.08) 0px 2px 4px 0px, rgba(18, 55, 105...` | `--shadow-sm-2` | -| sm-3 | `rgba(47, 1, 151, 0.01) 0px 11px 4px 0px, rgba(47, 1, 151,...` | `--shadow-sm-3` | - -### Layout - -- **Page max-width:** 1200px -- **Section gap:** 64-80px -- **Card padding:** 16-24px -- **Element gap:** 8px - -## Components - -### Filled Brand Button -**Role:** Primary action trigger in hero and CTA blocks - -Background #26114a, text #ffffff, 8px radius, 16px vertical / 24px horizontal padding, Inter 500 at 16px. Carries the brand weight — only used for the most important conversion per screen. - -### Ghost Outlined Button -**Role:** Secondary action paired beside a filled button - -Background transparent, border 1px #26114a, text #26114a, 8px radius, 16px/24px padding, Inter 500 at 16px. Matches the filled button's exact dimensions for optical pairing. - -### Pill Navigation Button -**Role:** Top-level nav items in the floating header - -1440px radius, 8px/16px padding, Inter 500 at 14px, text #312749. Active state may use #edecff background. The full-pill shape is distinctive — not rounded rectangles, but true capsules. - -### Logo Lockup -**Role:** Brand identity in header and footer - -Purple triangular icon mark paired with 'wiza' wordmark in Britti Sans 500 or Inter 700. Icon uses a gradient from #b99aff to #7d43ff. Appears in a white pill container with 8px radius and subtle shadow. - -### Product Screenshot Frame -**Role:** Hero product demonstration and feature illustrations - -White surface with 8px radius, surrounded by the deep layered shadow stack (rgba(14,59,101,0.06) large blur). Floats over the lavender gradient background, creating depth without borders. - -### Data Table Row -**Role:** Contact/prospect list display in product mockups - -Alternating #ffffff and #f6f7fa backgrounds, 1px #e6e2e3 bottom border, 12px/16px cell padding, Inter 400 at 14px for data, Inter 500 for headers. Dense, compact rows with colored status dots. - -### Logo Cloud Bar -**Role:** Social proof — client brand logos - -Monochrome (Charcoal #333333) logo strip on white background, centered, with consistent 40–60px height per logo. No colorful logos — all desaturated for visual calm. - -### Rating Badge Pair -**Role:** Third-party validation scores (G2, Chrome Web Store) - -White pill cards (1440px radius), Inter 500 at 14px for score, 12px for platform name. Star icon in #3e0079 or #f5b800. Displayed in a centered pair with 24px gap. - -### Section Heading Block -**Role:** Intro text for content sections - -Optional pill tag above (Mist Violet #edecff background, Royal Amethyst #3e0079 text, 1440px radius, Inter 500 12px, 4px/12px padding). Main heading in Britti Sans 500 at 40–56px, Deep Iris #26114a. Subtext in Inter 400 at 16–18px, Slate #615e6e. - -### Profile Card (Magic Wand Feature) -**Role:** Contact preview cards in feature illustrations - -White surface, 8px radius, subtle border, 12px/16px padding. Contains circular avatar (32px), name in Inter 500 14px #26114a, title in Inter 400 12px #615e6, company in Inter 400 12px #9491a1. Arranged in 3-column grid with 16px gaps. - -### Floating Navigation Bar -**Role:** Sticky header container - -White background with 8px radius, floats over hero with the layered shadow. Contains logo, nav links (Pill Navigation Button style), and login/signup actions. Max-width contained with side padding. - -### Tag/Badge (Pill) -**Role:** Feature labels, job titles, status indicators - -1440px radius, 4px/12px padding, Inter 500 at 12px. Variants: #edecff bg with #3e0079 text (accent tags), #f6f7fa bg with #615e6 text (neutral tags), or status-specific colors. - -### Input Field -**Role:** Search and form inputs in product UI - -1px #e6e2e3 border, 8px radius, 10px/14px padding, Inter 400 at 14px, placeholder in Ash #9491a1. Focus state uses 2px Royal Amethyst #3e0079 border ring. - -### Feature Icon Tile -**Role:** Small decorative icon containers in section intros - -16px or 24px square tiles with 8px radius, Mist Violet #edecff background, purple stroke icon inside. Used sparingly to mark section types. - -## Do's and Don'ts - -### Do -- Use 8px radius for all rectangular UI surfaces — cards, buttons, inputs, icon containers. The 8px is the signature, not 4px or 12px. -- Use 1440px radius exclusively for pills, tags, and capsule-shaped nav items — never for cards or panels. -- Set Britti Sans headings to line-height 1.0 exactly. The tight leading is what makes the type feel architectural. -- Use Deep Iris #26114a for headlines and filled button backgrounds. Never use it for body text larger than 24px — it overwhelms at small sizes. -- Pair every filled button with an adjacent ghost button of identical dimensions for the hero CTA pattern. -- Anchor section intros with a small pill tag above the heading in Mist Violet + Royal Amethyst. -- Use the Lavender Wash gradient on hero and feature section backgrounds — it defines the atmosphere. -- Keep Inter at 12–16px for all UI text. The compact size range signals a data-dense product. - -### Don't -- Do not use Royal Amethyst #3e0079 for body text — it vibrates uncomfortably at small sizes; reserve it for links, icons, and accent strokes. -- Do not apply 4px or 12px radius to cards — the 8px is non-negotiable for visual consistency. -- Do not use line-height above 1.0 for Britti Sans headings — the tightness is the point. -- Do not introduce new chromatic colors outside the violet family — the palette is deliberately monochromatic-violet. -- Do not use heavy drop shadows. The blue-tinted shadows are subtle (max 32px blur at 6% opacity). -- Do not center body text in multi-line paragraphs — only headlines and short intros get center alignment. -- Do not place dark text directly on the lavender gradient — use a white surface card between them for legibility. -- Do not use rounded images or photos in feature illustrations — the design is iconographic, not photographic. - -## Surfaces - -| Level | Name | Value | Purpose | -|-------|------|-------|---------| -| 0 | Canvas | `#ffffff` | Page background, outermost layer | -| 1 | Paper | `#f6f7fa` | Card surfaces, table containers, subtle lifts | -| 2 | Mist Violet | `#edecff` | Tinted highlight sections, gradient start point | -| 3 | Lavender Glow | `#b99aff` | Hero gradient stops, atmospheric overlays | - -## Elevation - -- **Cards and elevated panels:** `rgba(14, 59, 101, 0.06) 0px 32px 24px -12px, rgba(14, 59, 101, 0.01) 0px 11px 4px 0px, rgba(14, 59, 101, 0.02) 0px 6px 4px 0px, rgba(14, 59, 101, 0.03) 0px 3px 3px 0px, rgba(14, 59, 101, 0.04) 0px 1px 1px 0px` -- **Buttons and nav items:** `rgba(18, 55, 105, 0.08) 0px 2px 4px 0px, rgba(18, 55, 105, 0.04) 0px 1px 1px 0px, rgba(18, 55, 105, 0.08) 0px 0px 0px 1px` -- **Product feature highlights:** `rgba(114, 49, 255, 0.32) 0px -6px 20px 0px inset, rgba(47, 1, 151, 0.12) 0px 11px 12px 0px, rgba(47, 1, 151, 0.12) 0px 3px 3px 0px, rgba(47, 1, 151, 0.12) 0px 1px 1px 0px, rgba(47, 1, 151, 0.08) 0px 0px 0px 1px` - -## Imagery - -The visual language is almost entirely product-screenshot and iconographic — no lifestyle photography, no stock imagery, no people in context. Product mockups show a contact-prospecting data table with purple status indicators, person avatars, and company logos. Decorative visuals use soft purple gradient washes with floating profile cards arranged in grid patterns. Icons are simple, single-stroke, geometric shapes (a triangle logo, outlined feature icons). Logos in the trust bar are desaturated to monochrome. The overall feel is that of a polished SaaS dashboard screenshot rather than a marketing site with imagery. - -## Layout - -Centered, max-width 1200px container with generous vertical breathing room (64–80px section gaps). The hero is a full-bleed lavender-to-white gradient with a centered headline stack and dual CTA buttons, followed by a floating product screenshot that breaks the container edge slightly. Below the fold, content alternates between white surface sections and light lavender tinted sections. The logo cloud is a single centered row. Feature sections use centered heading blocks followed by 2-column or 3-column card grids. A sticky floating navigation bar (pill-shaped, centered) sits over the hero. - -## Agent Prompt Guide - -primary action: no distinct CTA color -**Quick Color Reference** -- text (primary): #26114a -- text (secondary): #615e6e -- text (muted): #9491a1 -- background: #ffffff -- surface: #f6f7fa -- border: #e6e2e3 -- brand/accent: #3e0079 -- filled button background: #26114a - -**Example Component Prompts** - -1. **Hero Section**: White-to-lavender gradient background (linear-gradient from #ffffff to #edecff). Centered headline 'Find verified emails and phone numbers' in Britti Sans weight 500 at 56px, color #26114a, line-height 1.0. Subtext in Inter 400 at 18px, color #615e6e. Two buttons side by side: filled button (background #26114a, text #ffffff, 8px radius, 16px/24px padding, Inter 500 16px) and ghost button (border 1px #26114a, text #26114a, same dimensions). Below: a product screenshot framed in a white card with 8px radius and the deep blue-tinted shadow. - -2. **Data Table Card**: White surface card, 8px radius, 1px #e6e2e3 border, 16px/24px padding. Table header row in Inter 500 at 12px, color #615e6e, uppercase, with 1px #e6e2e3 bottom border. Data rows alternate #ffffff and #f6f7fa backgrounds, Inter 400 at 14px, color #26114a. Action buttons in each row: small pill tags with 1440px radius, #edecff background, #3e0079 text, Inter 500 at 12px. - -3. **Section Heading with Pill Tag**: Optional pill tag above heading: 1440px radius, #edecff background, #3e0079 text, Inter 500 at 12px, 4px/12px padding. Main heading in Britti Sans 500 at 40px, #26114a, line-height 1.0. Subtext in Inter 400 at 16px, #615e6e. All centered. - -4. **Profile Preview Card**: White surface, 8px radius, 1px #e6e2e3 border, 12px/16px padding. 32px circular avatar at top-left. Name in Inter 500 at 14px, #26114a. Title in Inter 400 at 12px, #615e6e. Company in Inter 400 at 12px, #9491a1. Arranged in 3-column grid with 16px gaps, centered in section. - -5. **Trust Logo Bar**: Single horizontal row of 6 client logos, all rendered in monochrome #333333, centered, each logo 40–50px height. White background, 64px vertical padding above and below. Below: two rating badge pills (1440px radius, white bg, subtle border) with star icon and score in Inter 500 14px, platform name in Inter 400 12px #615e6e. - -## Gradient System - -The lavender atmosphere is built from three gradient layers: -- **Hero wash**: linear-gradient(90deg, #b99aff, #7d43ff 10%, transparent) — fades right, creating a directional glow -- **Decorative multi-stop**: linear-gradient(to right, #cf8aff, #ff66c1, #ffad74, #ff63d1, #aa81ff) — used sparingly for special highlights -- **Section tint**: subtle white-to-#edecff vertical fade for alternating content sections -Gradients should always sit behind white content surfaces — never behind text directly. - -## Similar Brands - -- **Apollo.io** — Same deep-violet brand color, similar data-prospecting product, and comparable lavender gradient hero treatment -- **Lusha** — Shared violet/indigo palette, compact data table UI, and light-mode product-first layout -- **Clearbit** — Similar light-mode SaaS with subtle gradient backgrounds and confident sans-serif display type -- **ZoomInfo** — Enterprise data product with dense tabular UI, compact Inter type, and restrained brand color usage -- **Cognism** — Purple-tinted brand identity with soft gradient hero sections and data-table product showcases - -## Quick Start - -### CSS Custom Properties - -```css -:root { - /* Colors */ - --color-deep-iris: #26114a; - --color-plum-velvet: #312749; - --color-royal-amethyst: #3e0079; - --color-mist-violet: #edecff; - --color-lavender-wash: #b99aff; - --gradient-lavender-wash: linear-gradient(90deg, rgb(185, 154, 255), rgb(125, 67, 255) 10%, rgba(125, 67, 255, 0)); - --color-twilight-beam: #cf8aff; - --gradient-twilight-beam: linear-gradient(to right, rgb(207, 138, 255), rgb(255, 102, 193), rgb(255, 173, 116), rgb(170, 129, 255)); - --color-canvas: #ffffff; - --color-paper: #f6f7fa; - --color-mist: #e6e2e3; - --color-smoke: #c1c7cf; - --color-ash: #9491a1; - --color-slate: #615e6e; - --color-charcoal: #333333; - --color-carbon: #222222; - --color-ink: #000000; - - /* Typography — Font Families */ - --font-britti-sans: 'Britti Sans', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; - --font-inter: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; - - /* Typography — Scale */ - --text-caption: 12px; - --leading-caption: 1.3; - --text-body-sm: 14px; - --leading-body-sm: 1.4; - --text-body: 16px; - --leading-body: 1.5; - --text-subheading: 24px; - --leading-subheading: 1; - --text-heading-sm: 32px; - --leading-heading-sm: 1; - --text-heading: 40px; - --leading-heading: 1; - --text-heading-lg: 56px; - --leading-heading-lg: 1; - --text-display: 64px; - --leading-display: 1; - - /* Typography — Weights */ - --font-weight-regular: 400; - --font-weight-medium: 500; - --font-weight-bold: 700; - - /* Spacing */ - --spacing-unit: 8px; - --spacing-8: 8px; - --spacing-16: 16px; - --spacing-24: 24px; - --spacing-32: 32px; - --spacing-40: 40px; - --spacing-48: 48px; - --spacing-56: 56px; - --spacing-64: 64px; - --spacing-96: 96px; - --spacing-104: 104px; - --spacing-216: 216px; - - /* Layout */ - --page-max-width: 1200px; - --section-gap: 64-80px; - --card-padding: 16-24px; - --element-gap: 8px; - - /* Border Radius */ - --radius-sm: 2px; - --radius-lg: 8px; - --radius-xl: 12px; - --radius-2xl: 16px; - --radius-3xl: 24px; - --radius-3xl-2: 28px; - --radius-3xl-3: 40px; - --radius-full: 56px; - --radius-full-2: 1440px; - - /* Named Radii */ - --radius-cards: 8px; - --radius-icons: 8px; - --radius-large: 24px; - --radius-pills: 1440px; - --radius-inputs: 8px; - --radius-buttons: 8px; - - /* Shadows */ - --shadow-sm: rgba(18, 55, 105, 0.08) 0px 2px 4px 0px, rgba(18, 55, 105, 0.04) 0px 1px 1px 0px, rgba(18, 55, 105, 0.08) 0px 0px 0px 1px; - --shadow-lg: rgba(14, 59, 101, 0.06) 0px 32px 24px -12px, rgba(14, 59, 101, 0.01) 0px 11px 4px 0px, rgba(14, 59, 101, 0.02) 0px 6px 4px 0px, rgba(14, 59, 101, 0.03) 0px 3px 3px 0px, rgba(14, 59, 101, 0.04) 0px 1px 1px 0px; - --shadow-lg-2: rgba(114, 49, 255, 0.32) 0px -6px 20px 0px inset, rgba(47, 1, 151, 0.12) 0px 11px 12px 0px, rgba(47, 1, 151, 0.12) 0px 3px 3px 0px, rgba(47, 1, 151, 0.12) 0px 1px 1px 0px, rgba(47, 1, 151, 0.08) 0px 0px 0px 1px; - --shadow-sm-2: rgba(18, 55, 105, 0.08) 0px 2px 4px 0px, rgba(18, 55, 105, 0.04) 0px 1px 1px 0px; - --shadow-sm-3: rgba(47, 1, 151, 0.01) 0px 11px 4px 0px, rgba(47, 1, 151, 0.04) 0px 6px 4px 0px, rgba(47, 1, 151, 0.06) 0px 3px 3px 0px, rgba(47, 1, 151, 0.08) 0px 1px 1px 0px, rgba(47, 1, 151, 0.08) 0px 0px 0px 1px; - - /* Surfaces */ - --surface-canvas: #ffffff; - --surface-paper: #f6f7fa; - --surface-mist-violet: #edecff; - --surface-lavender-glow: #b99aff; -} -``` - -### Tailwind v4 - -```css -@theme { - /* Colors */ - --color-deep-iris: #26114a; - --color-plum-velvet: #312749; - --color-royal-amethyst: #3e0079; - --color-mist-violet: #edecff; - --color-lavender-wash: #b99aff; - --color-twilight-beam: #cf8aff; - --color-canvas: #ffffff; - --color-paper: #f6f7fa; - --color-mist: #e6e2e3; - --color-smoke: #c1c7cf; - --color-ash: #9491a1; - --color-slate: #615e6e; - --color-charcoal: #333333; - --color-carbon: #222222; - --color-ink: #000000; - - /* Typography */ - --font-britti-sans: 'Britti Sans', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; - --font-inter: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; - - /* Typography — Scale */ - --text-caption: 12px; - --leading-caption: 1.3; - --text-body-sm: 14px; - --leading-body-sm: 1.4; - --text-body: 16px; - --leading-body: 1.5; - --text-subheading: 24px; - --leading-subheading: 1; - --text-heading-sm: 32px; - --leading-heading-sm: 1; - --text-heading: 40px; - --leading-heading: 1; - --text-heading-lg: 56px; - --leading-heading-lg: 1; - --text-display: 64px; - --leading-display: 1; - - /* Spacing */ - --spacing-8: 8px; - --spacing-16: 16px; - --spacing-24: 24px; - --spacing-32: 32px; - --spacing-40: 40px; - --spacing-48: 48px; - --spacing-56: 56px; - --spacing-64: 64px; - --spacing-96: 96px; - --spacing-104: 104px; - --spacing-216: 216px; - - /* Border Radius */ - --radius-sm: 2px; - --radius-lg: 8px; - --radius-xl: 12px; - --radius-2xl: 16px; - --radius-3xl: 24px; - --radius-3xl-2: 28px; - --radius-3xl-3: 40px; - --radius-full: 56px; - --radius-full-2: 1440px; - - /* Shadows */ - --shadow-sm: rgba(18, 55, 105, 0.08) 0px 2px 4px 0px, rgba(18, 55, 105, 0.04) 0px 1px 1px 0px, rgba(18, 55, 105, 0.08) 0px 0px 0px 1px; - --shadow-lg: rgba(14, 59, 101, 0.06) 0px 32px 24px -12px, rgba(14, 59, 101, 0.01) 0px 11px 4px 0px, rgba(14, 59, 101, 0.02) 0px 6px 4px 0px, rgba(14, 59, 101, 0.03) 0px 3px 3px 0px, rgba(14, 59, 101, 0.04) 0px 1px 1px 0px; - --shadow-lg-2: rgba(114, 49, 255, 0.32) 0px -6px 20px 0px inset, rgba(47, 1, 151, 0.12) 0px 11px 12px 0px, rgba(47, 1, 151, 0.12) 0px 3px 3px 0px, rgba(47, 1, 151, 0.12) 0px 1px 1px 0px, rgba(47, 1, 151, 0.08) 0px 0px 0px 1px; - --shadow-sm-2: rgba(18, 55, 105, 0.08) 0px 2px 4px 0px, rgba(18, 55, 105, 0.04) 0px 1px 1px 0px; - --shadow-sm-3: rgba(47, 1, 151, 0.01) 0px 11px 4px 0px, rgba(47, 1, 151, 0.04) 0px 6px 4px 0px, rgba(47, 1, 151, 0.06) 0px 3px 3px 0px, rgba(47, 1, 151, 0.08) 0px 1px 1px 0px, rgba(47, 1, 151, 0.08) 0px 0px 0px 1px; -} -``` diff --git a/docs/raw/guidelines/frontend.md b/docs/raw/guidelines/frontend.md deleted file mode 100644 index c8545651..00000000 --- a/docs/raw/guidelines/frontend.md +++ /dev/null @@ -1,120 +0,0 @@ -# 인터페이스 및 UI 제어 명세서 (frontend.md) - -## 1. 글로벌 테마 변수 강제 (Theme Constraints) -* **임의 색상 지정 금지:** 하드코딩된 Hex 코드 직접 입력 금지. -* **CSS 변수 필수 참조:** 테마 전환(라이트/다크) 및 일관성을 위해 `ui_template_theme.css` 선언 변수(`var(--color-bg)`, `var(--color-text)` 등)만 사용. -* **신규 컴포넌트/템플릿:** 신규 컴포넌트나 템플릿이 필요한 경우`.agent\design.md` 파일을 참고하여 양식을 `ui_template\ui_template_elements.ts`, `ui_template\ui_template_locale.ts`, `ui_template\ui_template_theme.css` 양식화하여 사용할 것 - -## 2. UI 요소 및 레이아웃 제약 (Layout Constraints) -* **공통 컴포넌트 최우선:** 임의 스타일링 금지. `ui_template_elements.ts` 규격 및 공통 컴포넌트 최우선 상속/참조. -* **3단 기본 레이아웃 준수:** 워크플로우 페이지 기본 배치 강제 (예외 요청 제외) - 1. 상단 영역: 페이지 타이틀 및 현재 진행 단계 상태 - 2. 좌측 패널: 데이터 입력 폼 및 설정 제어 영역 (너비 고정) - 3. 우측 영역: WebCAD 도면 뷰어 또는 결과 데이터 그리드 (나머지 전체 너비) - -### 2.1 공통 컴포넌트 목록 (`ui_template_elements.ts`) -* **기본:** `createButton`, `createInputField`, `createCard`, `createTag`, `createWorkflowShell` -* **오버레이/알림:** `showLoadingOverlay`, `hideLoadingOverlay`, `showToast` -* **스플라인 차트:** `createLineChart(opts)` — 외부 라이브러리 없이 인라인 SVG로 시계열 렌더링 - - **곡선:** Catmull-Rom → 3차 베지어 변환으로 스플라인(부드러운 곡선) 렌더 - - **색상:** `--color-chart-0~3` 테마 변수 사용 (하드코딩 금지) - - **범례:** 그래프 영역 우상단에 반투명 오버레이 배치 (`opts.series[].name`) - - **X축:** `opts.xLabels` 전달 시 양끝 포함 5개 라벨 균등 표기 - - **결측:** `series[].values`에 `null` 포함 시 해당 구간 선 끊김 처리 - - 데이터 2점 미만이면 빈 상태(`—`) 반환 - - 사용 예: B01_Dashboard 리소스 현황(CPU/메모리/디스크 30일 추이, X축=시간) - ---- - -## 3. 인덱스 기반 다국어 제어 (i18n Constraints) -* **텍스트 하드코딩 금지:** 라벨, 버튼 문구, 안내 메시지 등 모든 UI 문자열의 컴포넌트 내 직접 입력 절대 금지. -* **🚨 동시 수정 프로토콜 (선언 후 구현):** - 1. **선(先) 등록:** 신규 문구 필요 시, `ui_template_locale.ts` 최하단에 키와 언어 배열 `[한국어, 영어]` 우선 추가. - 2. **후(後) 참조:** 컴포넌트 내 `ui_locales.키값[현재언어인덱스]` 형태로만 호출. - * *제약 조건:* UI 수정 요청 시 다국어 파일 업데이트 코드 미제시 경우 가이드 위반(에러) 처리. - ---- - -## 4. JS/TS 코드 제어 및 상태 (Logic Constraints) -* **이벤트 핸들러 명명법:** `on[페이지명]_[기능명]_[액션]` 패턴 필수 준수. (예: `onB04_Surface_Calculate_Click`) -* **비동기 상태 제어:** API 호출 시 즉시 로딩 스피너(Overlay) 활성화, 통신 완료(성공/실패) 후 해제 로직 필수 포함. -* **1차 유효성 검사:** 백엔드 전송 전 빈 값 및 데이터 타입(숫자 범위 등) 프론트엔드 선 검증, 에러 시 입력창 하단 표기. - -```typescript -export const ui_locales = { - A01_Home_Title: ["반갑습니다", "Welcome"], - B04_wf1_Surface_Btn: ["지표면 분석 실행", "Run Surface Analysis"] -}; -``` - ---- - -## 5. 인증, 인가, 역할 및 라우팅 (Authentication, Authorization, Roles & Routing) - -### 5.1 세션 쿠키 기반 인증 -* **방식:** HttpOnly Secure 세션 쿠키 (localStorage 토큰 미사용) -* **API 통신:** 모든 API 요청에 `credentials: "include"` 설정으로 쿠키 자동 전송 -* **로그아웃:** `/auth/logout` API 호출 → 서버 세션 삭제 → 쿠키 자동 제거 -* **인증 갱신:** 로그인 시 `users.auth_expires_at = NOW() + 3개월` 자동 설정 - - 유효한 인증: `auth_expires_at > NOW()` → 바로 대시보드 이동 - - 만료된 인증: `auth_expires_at <= NOW()` → 재인증 모달 표시 - -### 5.1.1 역할 기반 대시보드 렌더링 -* **USER 역할:** - - 프로젝트 리스트 섹션 - - 회사 정보 섹션 (회사 생성/연결 팝업) - - 기본정보 & 보안 섹션 - -* **ADMIN 역할:** - - 프로젝트 리스트 섹션 (회사 전체 프로젝트) - - 회사 정보 섹션 - - 팀원 관리 섹션 - - 가입 요청 섹션 - - 기본정보 & 보안 섹션 - -* **SYSTEM_ADMIN 역할:** - - 리소스 현황 섹션 (CPU, MEM, DISK, 활성 사용자/프로젝트) - - 회사 관리 섹션 (전체 회사 리스트 + 추가/수정/삭제) - - 사용자 관리 섹션 (전체 사용자 + 역할 변경 + 회사 할당) - - 가입 요청 관리 섹션 (전체 가입 신청 + 승인/거절) - - 시스템 로그 섹션 (필터링 지원) - - 리소스 모니터링 그래프 (시계열 데이터) - - 기본정보 & 보안 섹션 - -### 5.2 라우팅 가드 -* **인증 확인:** `isAuthenticated()` 함수로 세션 유효성 검사 (PROTECTED_ROUTES 진입 전) -* **회사 연결 확인:** B02~B11 워크플로우 진입 시 `fetchDashboardMe()` 호출 → `company_id` + `status` 확인 - - `status` 확인: - - NO_COMPANY: B01_Dashboard로 강제 리다이렉트 (회사 연결 필요) - - PENDING: B01_Dashboard로 강제 리다이렉트 (승인 대기 중) - - ACTIVE: 워크플로우 진입 허용 - - `company_id` 없으면 B01_Dashboard로 리다이렉트 -* **역할 기반 라우팅:** - - SYSTEM_ADMIN: 모든 페이지 접근 가능 - - ADMIN: B01_Dashboard (관리 섹션) + B02~B11 워크플로우 접근 가능 - - USER: B01_Dashboard (사용자 섹션) + B02~B11 워크플로우 접근 가능 -* **상태 전이:** - - 회원가입 후 이메일 인증 완료: `users.status = 'NO_COMPANY'` (로그인 가능, 회사 미연결) - - 회사 생성: `users.status = 'ACTIVE'`, `company_id` 세팅, `role = 'ADMIN'`, `is_master = TRUE` - - 회사 참여 신청: `users.status = 'PENDING'` (관리자 승인 대기) - - 관리자 승인: `users.status = 'ACTIVE'`, `company_id` 세팅 - -### 5.3 대시보드 권한 기반 UI 제어 (B01_Dashboard) -* **권한 검증 헬퍼 필수:** `.agent/plan_dashboard_management.md` 섹션 9의 헬퍼 함수 참고 - - `canEditProject(user, project)` - 프로젝트 수정 권한 - - `canDeleteProject(user)` - 프로젝트 삭제 권한 (SYSTEM_ADMIN만) - - `canAddUser(user)` - 사용자 추가 권한 - - `canChangeRole(user, targetUser)` - 역할 변경 권한 (ADMIN: USER↔ADMIN만, SYSTEM_ADMIN 제외) - - `canDeleteUser(user, targetUser)` - 사용자 삭제 권한 (마지막 ADMIN 보호) - - `canManageAutomation(user, automation)` - 자동화 로직 관리 권한 - - `isLastAdmin(company, excludeUserId)` - 회사의 마지막 ADMIN 확인 - -* **UI 컴포넌트 구현:** 권한에 따라 버튼/필드 표시/비활성화 - - 프로젝트: 수정 모달, 삭제 확인 모달 (삭제는 SYSTEM_ADMIN만) - - 사용자: 추가 모달 (가입 계정 목록), 수정 모달, 역할변경 모달, 삭제 확인 모달 - - 자동화 로직: 생성/수정/삭제 모달 (ADMIN/SYSTEM_ADMIN만) - - 모든 삭제 모달에 경고 메시지 포함 (되돌릴 수 없음) - -* **다국어 반영:** 계획서 8장의 모든 키를 `ui_template_locale.ts`에 추가 후 컴포넌트에서 `L(키)` 사용 - - 모달 제목, 버튼 레이블, 확인 메시지, 오류 메시지 모두 다국어 처리 - - 하드코딩된 문구 절대 금지 \ No newline at end of file diff --git a/docs/raw/guidelines/migration_plan.md b/docs/raw/guidelines/migration_plan.md deleted file mode 100644 index f0899d4b..00000000 --- a/docs/raw/guidelines/migration_plan.md +++ /dev/null @@ -1,278 +0,0 @@ -# B03~B06 기능 마이그레이션 계획서 - -**갱신일:** 2026-07-05 -**상태:** 백엔드 마이그레이션 완료 — Stage 0~4 (B03~B06) 백엔드 이전 완료. 남은 항목은 프론트엔드(Vanilla TS) 재작성과 실제 DB 연동 검증. -**범위:** `B03_FileInput` ~ `B06_wf3_ProfileCross` -**DB:** MariaDB v10.6+ (aiomysql 드라이버, Raw SQL) - -**진척 요약:** -- Stage 0 (공통 기반): ✅ 완료 -- Stage 1 B03 (파일 입력): ✅ 백엔드 완료 -- Stage 2 B04 (지표면 분석): ✅ 백엔드 완료 (필터 4종 + 모델 5종 + 스무딩 + 등고선 + 파이프라인) -- Stage 3 B05 (경로 설계): ✅ 백엔드 완료 (Dijkstra + ridge-valley + skeleton) -- Stage 4 B06 (종횡단 생성): ✅ 백엔드 완료 (sampler + 종횡단 + Repository/Router) -- 공통: 전 페이지 DB 접근을 aiomysql Raw SQL로 통일, 순수 계산부는 실데이터로 검증 -- Stage 2~4 프론트엔드 폼/결과 UI: ✅ 완료 (B04~B06 UI_Page + Api_Fetch + CSS + locale, tsc 타입체크 통과) -- 남은 작업: B04~B06 **WebCAD 3D/차트 뷰어**, 실제 aislo_db 연동·구형 수치 비교 - ---- - -## 1. 확정 기준 - -- 기능 동작의 기준 원본은 `0_old/main.py`와 `0_old/utils/`이다. -- `0_old/backend/app/`은 이전 프로토타입 참고 자료이며 최종 동작 기준으로 사용하지 않는다. -- 신규 배치 구조는 `.agent/structure.md`를 따른다. 구형 파일 구조는 승계하지 않는다. -- 백엔드는 `.agent/backend.md`, 프론트엔드는 `.agent/frontend.md`를 따른다. -- 저장 구조 및 DB 경로 열은 `.agent/db_schema_simple.md`의 단계별 파일시스템 구조를 따른다. -- DB 스키마 작성·수정은 별도 담당 작업이다. 이 마이그레이션은 확정된 DB 계약만 `aiomysql`와 Raw SQL로 사용한다. -- 루트 `main.py`에는 페이지 라우터 등록만 추가한다. -- 구형 React/TSX UI는 복사하지 않고 현재 Vanilla TypeScript 구조와 공통 UI 템플릿에 맞게 재작성한다. - ---- - -## 2. 작업 원칙 - -### 2.1 함수 하나씩 이전 - -각 작업 단위는 다음 순서를 지킨다. - -1. 대상 구형 함수와 직접 의존성 확인 -2. 신규 페이지 폴더에 책임에 맞는 파일 하나 생성 -3. 함수 하나만 이전·수정 -4. 해당 함수 단위 테스트 또는 최소 실행 검증 -5. 포맷터·린터 실행 -6. 검증 완료 후 다음 함수 진행 - -한 번에 구형 모듈 전체를 복사하지 않는다. 구형 전역 경로, 동기식 파일 처리, 하드코딩 설정은 그대로 가져오지 않는다. - -### 2.2 파일 분리 - -- `*_Router.py`: FastAPI 엔드포인트와 응답 변환 -- `*_Schema.py`: Pydantic 요청·응답 검증 -- `*_Engine_*.py`: 페이지 고유 연산 -- `*_Repository.py`: `asyncpg` Raw SQL과 DB 경로 메타데이터 처리 -- `common_util/`: 둘 이상의 페이지가 실제로 공유하는 경로·원자적 파일 쓰기·기하 유틸만 배치 -- 단일 파일이 700줄에 도달하기 전에 기능별 파일 분할을 제안하고 승인 후 `structure.md`를 갱신한다. - -### 2.3 저장소 경계 - -```text -storage/{company_slug}/{user_slug}/{project_id}/ -├── B03_FileInput/ -├── B04_wf1_Surface/ -├── B05_wf2_Route/ -└── B06_wf3_ProfileCross/ -``` - -각 페이지는 자기 폴더만 직접 생성·수정한다. 상위 단계 변경 시 하위 결과를 임의 삭제하지 않고 `stale_from`을 갱신한다. - ---- - -## 3. 구형 기능 분석 결과 - -### 3.1 B03_FileInput - -구형 원본: - -- `0_old/main.py`: `check_sample`, `upload_files` -- 보조 참고: `0_old/backend/app/analyzer.py`의 파일 분석 함수 - -책임: - -- LAS/TIF/TFW/PRJ/DXF 업로드 검증 -- `B03_FileInput/input/{file_type}/` 저장 -- 파일 메타데이터 추출 및 `input_files` 기록 -- 업로드 완료 상태 반환 - -B04로 넘길 기능: - -- `process_pipeline` -- `run_ground_analysis` -- 포인트 필터링 및 지표면 모델 생성 - -### 3.2 B04_wf1_Surface - -구형 원본: - -- `0_old/main.py`: `process_pipeline`, `ensure_terrain_models`, 지표면·포인트 API -- `0_old/utils/structurizer.py` -- `filter_grid_min_z.py`, `filter_csf.py`, `filter_pmf.py`, `filter_ransac.py` -- `terrain_model_converter.py`, `surface_smoother.py`, `contour_extractor.py` - -책임: - -- LAS 구조화와 지면 필터 생성 -- 변환 포인트클라우드 저장 -- TIN/DTM/NURBS/implicit/meshfree 모델 생성 -- 스무딩, 미리보기, 등고선 생성 -- 지표면 모델 선택 확정 및 하위 단계 stale 전파 - -### 3.3 B05_wf2_Route - -구형 원본: - -- `0_old/main.py`: 경로점 CRUD, solve/result/confirm, stale 서명 처리 -- `0_old/utils/route_solver.py` -- `0_old/utils/route_solver_ridgevalley.py` -- `0_old/utils/terrain_skeleton.py` - -책임: - -- BP/EP/CP/AP/FP 입력 검증과 저장 -- Dijkstra 및 ridge-valley 경로 계산 -- 경사·곡선반경·회피/금지 구역 검증 -- 경로 결과 조회·확정 및 B06 stale 전파 - -### 3.4 B06_wf3_ProfileCross - -구형 원본: - -- `0_old/main.py`: sections generate/get/confirm 및 입력 서명 처리 -- `0_old/utils/surface_elevation_sampler.py` -- `0_old/utils/section_generator.py` - -책임: - -- 확정 경로와 확정 지표면 모델 검증 -- 종단 표고 프로필 생성 -- 지정 측점 간격의 횡단면 생성 -- 결과 조회·확정 및 재현성 서명 관리 - ---- - -## 4. 함수 단위 실행 순서 - -### Stage 0 — 공통 기반 - -- [x] `config_system.py`의 저장 경로에서 불필요한 `projects` 경로 제거 -- [x] 프로젝트 루트와 B03~B06 단계별 경로를 안전하게 만드는 공통 경로 함수 추가 -- [x] JSON 원자적 쓰기 함수 이전 -- [x] `workflow.json` 읽기 및 stale 필드 원자적 갱신 함수 이전 -- [x] 공통 함수별 테스트 작성 - -### Stage 1 — B03_FileInput - -- [x] `B03_FileInput_Schema.py`: 파일 종류·크기·확장자 검증 모델 -- [x] `B03_FileInput_Engine.py`: 안전한 파일명과 목적 경로 결정 함수 -- [x] `B03_FileInput_Engine.py`: 업로드 스트림 저장 함수 -- [x] `B03_FileInput_Engine_Analyze.py`: LAS 메타데이터 분석 함수 -- [x] `B03_FileInput_Engine_Analyze.py`: PRJ/TIF/TFW 메타데이터 분석 함수 -- [x] `B03_FileInput_Repository.py`: `input_files` 저장 함수 -- [x] `B03_FileInput_Router.py`: 업로드 엔드포인트 -- [x] B03 프론트 드롭존·목록·검증·로딩 UI를 공통 컴포넌트 기반으로 작성 -- [x] 업로드 통합 테스트 - -### Stage 2 — B04_wf1_Surface - -- [x] LAS 구조화 함수 이전 -- [x] grid-min-z 필터 함수 이전 및 검증 -- [x] CSF 필터 함수 이전 및 검증 -- [x] PMF 필터 함수 이전 및 검증 -- [x] RANSAC 필터 함수 이전 및 검증 -- [x] 지표면 모델 공통 컨텍스트 생성 함수 이전 (ModelContext + 메시 유틸) -- [x] TIN 생성 함수 이전 -- [x] DTM 생성 함수 이전 -- [x] NURBS 생성 함수 이전 -- [x] implicit 생성 함수 이전 -- [x] meshfree 생성 함수 이전 -- [x] DTM/TIN 스무딩 함수 이전 -- [x] 등고선 생성 함수 이전 -- [x] 미리보기·메타데이터·모델 확정 라우트 추가 (analyze/models 라우트 + 파이프라인 manifest) -- [x] `processed_point_cloud`, `surface_models`, `terrain_layers` Raw SQL 저장 함수 추가 (aiomysql) -- [x] B04 폼·모델 목록 UI를 Vanilla TypeScript로 재작성 (UI_Page + Api_Fetch + CSS + locale) -- [ ] B04 WebCAD 3D 뷰어(포인트클라우드/메시 렌더) 추가 -- [ ] 샘플 LAS 결과를 구형 출력과 비교 검증 - -### Stage 3 — B05_wf2_Route - -- [x] 경로점 Pydantic 모델 및 유효성 검사 이전 (Schema) -- [x] 경로점 저장·조회·초기화 함수 이전 (Repository) -- [x] 비용면 생성 및 캐시 함수 이전 (Solver) -- [x] Dijkstra 단일 구간 탐색 함수 이전 (Geometry) -- [x] 최적 경로 조립 함수 이전 (Solver solve_optimal_route) -- [x] 지형 skeleton 생성 함수 이전 (Skeleton, D8 흐름누적) -- [x] ridge-valley 탐색 함수 이전 (RidgeValley, 정속경사+fillet) -- [ ] 입력 서명·stale 판정 함수 이전 -- [x] 경로 확정 함수 이전 (Repository confirm_route + confirm 라우트) -- [x] `routes`, `route_points`, `route_statistics` Raw SQL 저장 함수 추가 (aiomysql) -- [x] B05 경로점 입력·제약조건·결과 메트릭 UI를 Vanilla TypeScript로 재작성 (UI_Page + Api_Fetch + CSS + locale) -- [ ] B05 경로 WebCAD 뷰어(노선 폴리라인 렌더/편집) 추가 -- [x] 기존 route solver 테스트를 신규 구조로 이관·통과 - -### Stage 4 — B06_wf3_ProfileCross - -- [x] 지표면 sampler 인터페이스 이전 (Engine_Sampler: SurfaceElevationSampler Protocol) -- [x] DTM grid sampler 함수 이전 (DtmGridSampler, 4-꼭짓점 valid 검증) -- [x] 보간 sampler 함수 이전 (InterpolatedSurfaceSampler + build_surface_sampler 5종) -- [x] 측점 배열 생성 함수 이전 (Engine_Section: _chainages) -- [x] 경로 보간 및 접선 계산 함수 이전 (_interpolate_xy, _tangent_at) -- [x] 종단·횡단 생성 함수 이전 (generate_sections) -- [ ] 입력 서명·중복 실행 방지 함수 이전 (delete_sections_for_route로 멱등 재실행만 구현) -- [x] 결과 조회·확정 라우트 추가 (sections/generate·get·confirm 라우트) -- [x] `longitudinal_sections`, `cross_sections` Raw SQL 저장 함수 추가 (aiomysql Repository) -- [x] B06 측점·횡단 옵션·결과 메트릭 UI를 Vanilla TypeScript로 재작성 (UI_Page + Api_Fetch + CSS + locale) -- [ ] B06 종단도·횡단 카드 WebCAD 뷰어(프로필 차트 렌더) 추가 -- [ ] 구형 section 결과와 수치 비교 검증 - -**B06 백엔드 구현 파일:** -- `B06_wf3_ProfileCross_Engine_Sampler.py` — 표고 sampler (Protocol + DTM/보간 5종) -- `B06_wf3_ProfileCross_Engine_Section.py` — 종횡단 생성 (측점/접선/횡단 샘플) -- `B06_wf3_ProfileCross_Engine.py` — 오케스트레이터 (경로 GeoJSON→종횡단→파일 저장) -- `B06_wf3_ProfileCross_Repository.py` — aiomysql Raw SQL (2 테이블) -- `B06_wf3_ProfileCross_Schema.py` / `_Router.py` — Pydantic + FastAPI 라우트 - -**검증 상태:** B04(DTM)→B05(경로 70.71m)→B06(종단면+횡단면 5건) end-to-end 파일 생성 확인. -DB 저장 함수는 FakeCursor 기반 문법 검증만 수행 (실제 aislo_db 연동은 나스 서버 준비 후). - ---- - -## 5. API 및 상태 원칙 - -- API 경로는 `/api/projects/{project_id}/...` 형태를 유지하되 페이지별 Router에서 선언한다. -- 모든 JSON 요청은 Pydantic 검증 후 Engine으로 전달한다. -- 긴 지형 연산은 이벤트 루프를 막지 않도록 실행 방식을 별도 검토한다. -- 오류 응답은 `{"status": "error", "message": "원인"}` 형식을 유지한다. -- 프론트 API 호출은 로딩 Overlay를 항상 시작·해제한다. -- UI 문자열은 `ui_template_locale.ts`에 먼저 등록한 뒤 참조한다. -- 상위 단계 재계산 시 하위 결과는 stale 처리하며 다른 페이지 폴더를 직접 삭제하지 않는다. - ---- - -## 6. 검증 체크리스트 - -각 함수 이전 후: - -- [ ] 구형 함수의 입력·출력 계약 비교 -- [ ] 하드코딩 설정 제거 및 `config_system.py` 연결 -- [ ] 신규 단계별 저장 경로 사용 확인 -- [ ] 경로 이탈 및 파일명 공격 방지 확인 -- [ ] 예외 처리와 표준 오류 응답 확인 -- [ ] Python: `ruff format`, `ruff check --fix` -- [ ] TypeScript/CSS: `npx prettier --write` -- [ ] 단위 테스트 실행 -- [ ] 관련 통합 테스트 실행 -- [ ] 단일 파일 700줄 미만 확인 - -단계 완료 후: - -- [ ] B03 업로드 파일과 DB 메타데이터 일치 -- [ ] B04 지표면 모델의 범위·점 수·표고 통계 비교 -- [ ] B05 경로 길이·경사·곡선반경·제약 위반 비교 -- [ ] B06 측점 수·종단 표고·횡단 좌표 비교 -- [ ] 다중 브라우저 polling 및 stale 전파 확인 - ---- - -## 7. 작업 경계와 보류 항목 - -- DB 테이블·FK·인덱스 정의 변경은 본 작업에서 수행하지 않는다. -- `.agent/db_schema_simple.md`는 DB 담당자의 작업 영역이므로 직접 수정하지 않는다. -- DB 스키마가 확정되지 않은 Repository 함수는 인터페이스만 계획하고 임의 열을 만들지 않는다. -- B07 이후 기능은 이번 마이그레이션 범위에서 제외한다. -- 구형 샘플 데이터는 검증 입력으로만 사용하고 신규 영구저장소로 자동 복사하지 않는다. - ---- - -## 8. 다음 실행 단위 - -첫 구현은 Stage 0의 저장 경로 함수 하나로 시작한다. 함수와 테스트를 검증한 뒤 다음 공통 함수로 이동한다. diff --git a/docs/raw/guidelines/structure.md b/docs/raw/guidelines/structure.md deleted file mode 100644 index 01551104..00000000 --- a/docs/raw/guidelines/structure.md +++ /dev/null @@ -1,189 +0,0 @@ -# 프로젝트 구조 명세서 (structure.md) - -## 1. 폴더 및 파일 명명 규칙 (Naming Convention) - -- **기본 원칙:** 프론트엔드(TypeScript)와 백엔드(Python) 파일을 수직 통합 관리 -- **페이지 폴더 명명:** 로그인 전은 `A01_`, 로그인 후는 `B01_` 형태 적용, 워크플로우는 `wf[번호]` 접두사를 사용 -- **시스템 폴더 명명:** 공통 유틸, DB, 리소스, 영구저장소 등 시스템 및 데이터 인프라 폴더는 접두사 ID 없이 명확한 영문명 분리 -- **파일 명명:** 반드시 `폴더명(페이지명)_기능_기타사양.확장자` 형태 작성 -- **공통 모듈:** 공통 유틸 코드는 `common_util` 폴더 내에 `common_util_기능.확장자` 형태 보관 - ---- - -## 2. 전체 디렉토리 트리 구조 - -```text -my-project/ -├── .agent/ -│ ├── agent.md -│ └── structure.md # 본 파일 -├── A00_Common/ # 프론트엔드 공통 인프라 (부트스트랩, 라우팅, 셸) -│ ├── main.ts # 앱 진입점 (스타일 주입 → 테마 복원 → 셸 → 라우터) -│ ├── router.ts # 해시 기반 SPA 라우터 + 인증 가드 + 지연 로딩 (A·B 전 라우트 등록) -│ ├── app_shell.ts # 공통 헤더/푸터 (로고, 네비, 언어·테마·로그인 토글) -│ ├── b_page_scaffold.ts # B 그룹 공통 스캐폴드 (헤더+준비중 안내 / 워크플로우 셸 래퍼) -│ └── vite-env.d.ts # Vite 클라이언트 타입 선언 -├── common_util/ # 공통 유틸리티 (공통 기능 코드) -│ ├── common_util_validate.ts # 프론트 1차 유효성 검사 (이메일/빈값/최소길이) -│ ├── common_util_auth.py # 비밀번호·OTP·세션 쿠키·권한 검증 -│ ├── common_util_auth_repository.py # 인증·조직·관리 Raw SQL 저장소 -│ ├── common_util_email.py # 비동기 SMTP 발송 및 재시도 -│ ├── common_util_email_templates.py # 인증·조직 알림 이메일 템플릿 -│ ├── common_util_string.ts -│ ├── common_util_storage.py # 프로젝트 및 워크플로우 단계별 저장 경로 -│ ├── common_util_json.py # JSON 원자적 저장 -│ ├── common_util_workflow.py # 공유 workflow.json 상태 처리 -│ ├── common_util_resource_monitor.py # 시스템 리소스 계측(2분 주기) + log/ 로그 + DB 기록 -│ └── common_util_format.py -├── db_management/ # DB 관리 폴더 (PostgreSQL 마이그레이션 및 스키마 관리) -│ ├── schema.sql -│ ├── migration_v1.py -│ └── 002_auth_security.sql # 기존 DB 로그인·보안 증분 마이그레이션 -├── resources/ # 웹앱 UI 구성 리소스 (사진, 회사 로고 등 에셋) -│ ├── logo.png -│ ├── banner.jpg -│ └── legal/ # 약관 및 정책 텍스트 (회원가입 UI에서 사용) -│ ├── terms_of_service.txt # 이용약관 -│ ├── privacy_policy.txt # 개인정보처리방침 -│ └── marketing_consent.txt # 마케팅 정보 수신 동의 -├── storage/ # 영구 저장소 (데이터 커서 및 대용량 파일 별도 저장 로직용) -│ └── [고객사명]/ -│ └── [사용자명]/ -│ └── [프로젝트ID]/ # 프로젝트별 내부 폴더/파일 자동 생성 (별도 폴더 ID 미사용) -├── log/ # 런타임 리소스 로그 (.gitignore, 1개월 롤링) -│ └── system_resources.log # CPU/메모리/디스크 계측 단일 파일 (2분 주기) -├── ui_template/ # 공통 UI 템플릿 및 테마 -│ ├── ui_template_theme.css # 글로벌 디자인 테마 및 CSS 변수 (라이트/다크) -│ ├── ui_template_locale.ts # 다국어 텍스트 배열 방식 관리 파일 -│ └── ui_template_elements.ts # 공통 컴포넌트 및 그룹 템플릿 정의 -├── templates/ # 보고서 출력용 마스터 양식 (DWG, Excel, PPT 등 기본 원본 템플릿 파일) -│ ├── template_report_form.xlsx -│ └── template_drawing_base.dwg -├── config/ # 프로그램 내부 제어 및 시스템 환경 설정 폴더 -│ ├── config_system.py # 백엔드 작동 제어 및 알고리즘 파라미터 -│ ├── config_db.py # 데이터베이스 연결 제어 설정 -│ ├── config_frontend.ts # 프론트엔드 제어 및 웹 환경 설정 -│ ├── package.json # Node.js 의존성 (npm/vite) -│ ├── tsconfig.json # TypeScript 설정 -│ └── vite.config.ts # Vite 빌드 설정 -├── A01_Home/ # 로그인 전 01: 홈 (소개, 소식, 사이트맵 등) -│ ├── A01_Home_UI_Page.ts -│ ├── A01_Home_UI_Style.css -│ └── A01_Home_Api_Fetch.py -├── A02_ProgDetail/ # 로그인 전 02: 프로그램 상세 (6단계 워크플로우 + 핵심 기술) -│ ├── A02_ProgDetail_UI_Page.ts -│ └── A02_ProgDetail_UI_Style.css -├── A03_CompDetail/ # 로그인 전 03: 회사 상세 (미션 + 핵심 가치 + 연락처) -│ ├── A03_CompDetail_UI_Page.ts -│ └── A03_CompDetail_UI_Style.css -├── A04_NewsHistory/ # 로그인 전 04: 최신소식 및 개선 이력 (타임라인) -│ ├── A04_NewsHistory_UI_Page.ts -│ └── A04_NewsHistory_UI_Style.css -├── A05_EduDetail/ # 로그인 전 05: 교육 상세 (과정 소개 + 문의 CTA) -│ ├── A05_EduDetail_UI_Page.ts -│ └── A05_EduDetail_UI_Style.css -├── A06_Login/ # 로그인 전 06: 로그인 (이메일 + 비밀번호 폼) -│ ├── A06_Login_UI_Auth_Page.ts # 세션 쿠키·OTP 로그인 UI (현재 사용 중) -│ ├── A06_Login_UI_Style.css -│ ├── A06_Login_Api_Fetch.ts -│ ├── A06_Login_Schema.py -│ └── A06_Login_Router.py -├── A07_Register/ # 로그인 전 07: 회원가입 (회사/이름/이메일/비밀번호 폼) -│ ├── A07_Register_UI_Page.ts -│ ├── A07_Register_UI_Auth_Page.ts # 조직 유형·약관·OTP 회원가입 UI -│ ├── A07_Register_UI_Style.css -│ ├── A07_Register_Api_Fetch.ts -│ ├── A07_Register_Schema.py -│ └── A07_Register_Router.py -├── A08_Support/ # 로그인 전 08: 기술지원 요청 (문의 폼 + textarea) -│ ├── A08_Support_UI_Page.ts -│ └── A08_Support_UI_Style.css -├── A09_Security/ # 로그인 전 09: 보안 및 약관 동의 (필수/선택 약관 확인) -│ ├── A09_Security_UI_Page.ts # 약관 동의 페이지 (이용약관/개인정보/마케팅/보안정책) -│ ├── A09_Security_UI_Style.css # A09 고유 약관 박스/체크박스 스타일 -│ ├── A09_Security_Api_Fetch.ts # 동의 내용 제출 API 클라이언트 -│ ├── A09_Security_Terms.ts # 약관 텍스트 데이터 (한/영 다국어) -│ ├── A09_Security_Schema.py # 조직·관리자 보안 요청 검증 -│ └── A09_Security_Router.py # 마스터·시스템 관리자·활동 로그 API -│ -│ # ※ B01·B02 본문 완성 / B03~B11 헤더·셸만 (본문은 0_old 참고 후 구체화) -├── B01_Dashboard/ # 로그인 후 01: 대시보드 (역할별 정보 표시) -│ ├── B01_Dashboard_UI_Page.ts # 역할별 섹션 조건부 렌더링 -│ ├── B01_Dashboard_UI_Modals.ts # 프로젝트, 사용자, 자동화 제어 모달 모음 -│ ├── B01_Dashboard_UI_Helper.ts # 역할별 접근 권한 확인 헬퍼 -│ ├── B01_Dashboard_UI_Resources.ts # CPU/Memory/Disk 리소스 렌더링 컴포넌트 -│ ├── B01_Dashboard_UI_Style.css # 프로젝트 테이블, 워크플로우, 팝업 스타일 -│ ├── B01_Dashboard_Api_Fetch.ts # dashboard API 클라이언트 -│ ├── B01_Dashboard_Schema.py # 요청/응답 Pydantic 검증 -│ ├── B01_Dashboard_Repository.py # Raw SQL 저장소 (사용자, 회사, 팀원, 가입 신청) -│ └── B01_Dashboard_Router.py # 역할별 API 엔드포인트 -├── B02_ProjRegister/ # 로그인 후 02: 프로젝트 등록 (기본정보 입력 폼) -│ ├── B02_ProjRegister_UI_Page.ts -│ └── B02_ProjRegister_UI_Style.css -├── B03_FileInput/ # 로그인 후 03: 파일 입력 (헤더+준비중 안내) -│ ├── B03_FileInput_UI_Page.ts -│ ├── B03_FileInput_UI_Style.css -│ ├── B03_FileInput_Api_Fetch.ts # 다중 파일 업로드 API 클라이언트 -│ ├── B03_FileInput_Schema.py # 업로드 파일 Pydantic 검증 -│ ├── B03_FileInput_Engine.py # 업로드 저장 경로·스트림 처리 -│ ├── B03_FileInput_Engine_Analyze.py # 원본 파일 메타데이터 분석 -│ ├── B03_FileInput_Repository.py # input_files asyncpg Raw SQL -│ └── B03_FileInput_Router.py # 다중 파일 업로드 API -├── B04_wf1_Surface/ # 로그인 후 04: 1차 workflow (지표면 모델 분석) -│ ├── B04_wf1_Surface_UI_Page.ts # 3단 레이아웃 (필터/표현 선택 폼 + 모델 목록) -│ ├── B04_wf1_Surface_UI_Style.css # B04 고유 폼 그룹/모델 카드 스타일 -│ ├── B04_wf1_Surface_Api_Fetch.ts # surface/analyze·models API 클라이언트 -│ ├── B04_wf1_Surface_Schema.py # 분석 요청/응답 Pydantic 검증 -│ ├── B04_wf1_Surface_Engine.py # 지표면 분석 오케스트레이터 -│ ├── B04_wf1_Surface_Engine_Structurize.py # LAS/LAZ 구조화 -│ ├── B04_wf1_Surface_Engine_Ground.py # 지면 분석 진입 -│ ├── B04_wf1_Surface_Engine_Filter_Grid.py # grid minimum-Z 필터 -│ ├── B04_wf1_Surface_Engine_Filter_CSF.py # CSF 필터 -│ ├── B04_wf1_Surface_Engine_Filter_PMF.py # PMF 필터 -│ ├── B04_wf1_Surface_Engine_Filter_RANSAC.py # RANSAC 필터 -│ ├── B04_wf1_Surface_Engine_ModelContext.py # 모델 공통 컨텍스트/메시 유틸 -│ ├── B04_wf1_Surface_Engine_ModelBuild.py # TIN/DTM/NURBS/implicit/meshfree 생성 -│ ├── B04_wf1_Surface_Engine_Smooth.py # DTM/TIN 스무딩 -│ ├── B04_wf1_Surface_Engine_Contour.py # 등고선 생성 -│ ├── B04_wf1_Surface_Engine_Pipeline.py # 파이프라인 manifest -│ ├── B04_wf1_Surface_Repository.py # processed_point_cloud/surface_models aiomysql Raw SQL -│ └── B04_wf1_Surface_Router.py # surface/analyze·models API -├── B05_wf2_Route/ # 로그인 후 05: 2차 workflow (경로설계) -│ ├── B05_wf2_Route_UI_Page.ts # 3단 레이아웃 (제어점/제약 폼 + 결과 메트릭) -│ ├── B05_wf2_Route_UI_Style.css # B05 고유 제어점 행/제약 그룹 스타일 -│ ├── B05_wf2_Route_Api_Fetch.ts # route/solve·confirm API 클라이언트 -│ ├── B05_wf2_Route_Schema.py # 경로 탐색 요청/응답 Pydantic 검증 -│ ├── B05_wf2_Route_Engine.py # 경로 설계 오케스트레이터 -│ ├── B05_wf2_Route_Engine_Geometry.py # Dijkstra 단일 구간 탐색 -│ ├── B05_wf2_Route_Engine_Solver.py # 비용면 생성 + 최적 경로 조립 -│ ├── B05_wf2_Route_Engine_Skeleton.py # 지형 skeleton (D8 흐름누적) -│ ├── B05_wf2_Route_Engine_RidgeValley.py # ridge-valley 탐색 -│ ├── B05_wf2_Route_Repository.py # routes/route_points/route_statistics aiomysql Raw SQL -│ └── B05_wf2_Route_Router.py # route/solve·confirm API -├── B06_wf3_ProfileCross/ # 로그인 후 06: 3차 workflow (종횡단 생성) -│ ├── B06_wf3_ProfileCross_UI_Page.ts # 3단 레이아웃 (측점/횡단 옵션 폼 + 결과 메트릭) -│ ├── B06_wf3_ProfileCross_UI_Style.css # B06 고유 옵션 그룹/결과 메트릭 스타일 -│ ├── B06_wf3_ProfileCross_Api_Fetch.ts # sections/generate·get·confirm API 클라이언트 -│ ├── B06_wf3_ProfileCross_Schema.py # 종횡단 생성 요청/응답 Pydantic 검증 -│ ├── B06_wf3_ProfileCross_Engine.py # 종횡단 생성 오케스트레이터 -│ ├── B06_wf3_ProfileCross_Engine_Sampler.py # 표고 sampler (Protocol + DTM/보간 5종) -│ ├── B06_wf3_ProfileCross_Engine_Section.py # 종횡단 생성 (측점/접선/횡단 샘플) -│ ├── B06_wf3_ProfileCross_Repository.py # longitudinal/cross_sections aiomysql Raw SQL -│ └── B06_wf3_ProfileCross_Router.py # sections/generate·get·confirm API -├── B07_wf4_DesignDetail/ # 로그인 후 07: 4차 workflow (상세설계) — 워크플로우 셸 -│ └── B07_wf4_DesignDetail_UI_Page.ts -├── B08_wf5_Quantity/ # 로그인 후 08: 5차 workflow (수량 산출) — 워크플로우 셸 -│ └── B08_wf5_Quantity_UI_Page.ts -├── B09_wf6_Estimation/ # 로그인 후 09: 6차 workflow (견적/문서) — 워크플로우 셸 -│ └── B09_wf6_Estimation_UI_Page.ts -├── B10_Payment/ # 로그인 후 10: 결재 페이지 (헤더+준비중 안내) -│ └── B10_Payment_UI_Page.ts -└── B11_Status/ # 로그인 후 11: 상태 출력 페이지 (헤더+준비중 안내) - └── B11_Status_UI_Page.ts -│ -├── main.py # FastAPI 애플리케이션 진입점 -├── requirements.txt # Python 의존성 (pip) -├── .env.example # 환경 변수 템플릿 -└── node_modules/ # Node.js 패키지 (.gitignore) - └── .build/ # Vite 빌드 결과 (.gitignore) -``` diff --git a/docs/raw/plans/plan_workflow_state_management.md b/docs/raw/plans/plan_workflow_state_management.md deleted file mode 100644 index a8490adf..00000000 --- a/docs/raw/plans/plan_workflow_state_management.md +++ /dev/null @@ -1,207 +0,0 @@ -# 워크플로우 단계별 상태 관리 재설계 계획서 - -**작성일:** 2026-07-10 -**상태:** 설계 제안 (코드는 다른 AI가 진행) -**범위:** 프로젝트 워크플로우(WF0 파일입력 ~ WF6 견적) 단계별 완료 상태의 DB 저장·조회·무효화(stale) 로직, 그리고 이를 근거로 한 대시보드/파일입력/WF1~WF6 공통 UI의 단계 활성화·페이지 이동 제어 - ---- - -## 1. 현재 구조 진단 (코드 조사 결과) - -### 1.1 상태값이 단일 문자열 하나로 관리됨 - -- `projects.status` — **VARCHAR(50) 단일 컬럼** ([001_create_schema.sql:187](../db_management/001_create_schema.sql#L187)) - - 값 예: `NEW` → `FILE_UPLOADED` → `WF1_ANALYZING` → `WF1_COMPLETE` → `WF2_COMPLETE` → ... → `DONE` - - **하나의 값만 존재** — "지금 어느 단계까지 왔는가"만 표현, "각 단계가 개별적으로 완료됐는가"는 표현 불가 - -- 이 단일 값을 대시보드가 `_stage_from_status()`로 **순서 추론** ([B01_Dashboard_Repository.py:20](../B01_Dashboard/B01_Dashboard_Repository.py#L20)) - ```python - order = [("FILE_UPLOADED", 1), ("WF1_COMPLETE", 2), ("WF2_COMPLETE", 3), ...] - # status 문자열에 토큰이 "포함"되면 그 stage로 간주 → 부분 문자열 매칭 - ``` - -### 1.2 이로 인한 실제 문제 (사용자 보고와 일치) - -1. **단계 독립성 없음**: `WF2_COMPLETE`가 되면 WF1 완료 정보는 문자열에 없고 "순서상 앞이니까 됐겠지"로만 추론. WF1을 다시 열어 재분석해도 그 사실을 status가 담지 못함. - -2. **역방향 재작업(stale) 로직 부재**: 사용자가 WF1으로 돌아가 파일/분석을 바꾸면 WF2~WF6 결과는 **무효**가 되어야 하는데, 이를 표시·차단하는 로직이 전혀 없음. status를 WF1로 되돌리면 이후 완료 이력이 통째로 사라짐(반대로 안 되돌리면 낡은 하위 단계가 열린 채 유지됨). - -3. **이원화된 죽은 설계**: `workflow.json`(`completed: []`, `stale_from`, `current_stage` 필드)이 프로젝트 생성 시 초기화되지만 ([B02_ProjRegister_Repository.py:31](../B02_ProjRegister/B02_ProjRegister_Repository.py#L31)), **실제 단계 판정에는 쓰이지 않음**. `projects.status`가 사실상 유일한 근거. 두 메커니즘이 공존하나 어느 쪽도 완전하지 않음. - -4. **상태 갱신처 분산**: `status` UPDATE가 여러 라우터에 흩어져 있음 - - [B03_FileInput_Router.py:158,210,240](../B03_FileInput/B03_FileInput_Router.py#L158) (`WF1_ANALYZING`/`WF1_COMPLETE`/`WF1_FAILED`) - - [B04_wf1_Surface_Router.py:160,199,217](../B04_wf1_Surface/B04_wf1_Surface_Router.py#L160) (동일 값 중복 세팅) - - **B03과 B04가 같은 WF1 상태를 각자 세팅** → 경쟁·불일치 위험 - -### 1.3 각 단계 산출물 테이블에는 이미 개별 status가 있음 (활용 가능) - -- `surface_models.status` (`PROCESSING`/`COMPLETE`/`FAILED`) ([001_create_schema.sql:258](../db_management/001_create_schema.sql#L258)) -- `processed_point_cloud.status`, `input_files.status` 등 -- **즉 "단계별 완료"의 근거 데이터는 이미 DB에 존재** — 이를 요약할 상위 레이어만 없음 - ---- - -## 2. 재설계 목표 - -| # | 목표 | 설명 | -|---|------|------| -| G1 | 단계별 독립 상태 | 각 WF(0~6)의 상태를 개별적으로 저장 (`not_started` / `in_progress` / `complete` / `failed` / `stale`) | -| G2 | 단일 진실 원천(SSOT) | 상태의 근거를 **DB 한 곳**으로 통일. `projects.status` 단일 문자열 추론 폐기, `workflow.json` 이원화 제거 | -| G3 | 역방향 재작업 무효화 | N단계 재실행 시 N+1~6 단계를 자동 `stale`로 전환 (결과는 보존하되 "낡음" 표시) | -| G4 | UI 단일 규칙 | 대시보드·파일입력·WF1~6 공통 레이아웃이 **같은 상태 API**를 보고 버튼 활성/비활성·이동 결정 | -| G5 | 재실행 시 사용자 입력 보존 | 재분석 시 이전에 사용자가 선택/입력한 파라미터를 재사용 (초기 실행과 달리 값이 이미 있음) | - ---- - -## 3. 제안 설계 - -### 3.1 데이터 모델 — `project_workflow_stages` 테이블 신규 (권장안) - -프로젝트당 워크플로우 단계별로 1행. `projects.status` 문자열 추론을 대체하는 SSOT. - -```sql -CREATE TABLE IF NOT EXISTS project_workflow_stages ( - id INT AUTO_INCREMENT PRIMARY KEY, - project_id CHAR(36) NOT NULL, - stage_no TINYINT NOT NULL, -- 0=파일입력, 1=WF1 ... 6=WF6 - stage_key VARCHAR(30) NOT NULL, -- 'FILE_INPUT','WF1_SURFACE',...,'WF6_ESTIMATION' - state ENUM('NOT_STARTED','IN_PROGRESS','COMPLETE','FAILED','STALE') - NOT NULL DEFAULT 'NOT_STARTED', - progress_percent TINYINT NOT NULL DEFAULT 0, - params JSON NULL, -- 해당 단계에서 사용자가 선택/입력한 값 (재실행 시 재사용, G5) - message VARCHAR(255) NULL, -- 진행/오류 메시지 - started_at TIMESTAMP NULL, - completed_at TIMESTAMP NULL, - updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - UNIQUE KEY uq_project_stage (project_id, stage_no), - INDEX idx_pws_project (project_id) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -``` - -- 프로젝트 생성 시 7행(stage 0~6)을 `NOT_STARTED`로 시드. -- `projects.status`는 **표시용 요약 캐시로 강등**(호환 유지)하거나 제거. 판정 근거는 이 테이블로 일원화. -- `workflow.json` 초기화 로직은 제거하거나 이 테이블과 동기화(권장: 제거하고 DB로 통일 — MariaDB가 SSOT). - -**대안(경량):** 신규 테이블 없이 `projects`에 `stage_states JSON` 컬럼 하나 추가하여 `{"0":"COMPLETE","1":"COMPLETE","2":"STALE",...}` 저장. 마이그레이션은 가볍지만 단계별 params/타임스탬프 확장성이 낮음. **권장은 3.1 테이블 방식** (각 단계 params·이력 필요하므로). - -### 3.2 상태 전이 규칙 - -``` -NOT_STARTED ──(실행 시작)──▶ IN_PROGRESS ──(성공)──▶ COMPLETE - │ - └──(실패)──▶ FAILED ──(재실행)──▶ IN_PROGRESS -COMPLETE ──(하위 단계 재작업으로 상위가 재실행됨)──▶ STALE ──(재실행)──▶ IN_PROGRESS -``` - -- **stale 전파 (G3):** stage N이 `IN_PROGRESS`로 전이될 때, stage N+1..6 중 `COMPLETE`인 것을 모두 `STALE`로 변경. - - `STALE`은 결과 파일/DB 행을 삭제하지 않음 — "낡음" 플래그만. 사용자가 해당 단계를 다시 실행하면 `COMPLETE`로 복귀. -- **진입 가능 규칙 (활성화):** stage N은 stage N-1이 `COMPLETE`일 때만 진입(이동) 가능. 단 파일입력(stage 0)은 항상 가능. - - `STALE`/`FAILED` 단계는 진입 가능하되(재작업 목적) 이후 단계로는 못 넘어감. - -### 3.3 상태 조회 API (SSOT 단일 엔드포인트) - -기존 분산된 status 대신 프로젝트 단위 통합 조회를 신설: - -``` -GET /api/projects/{project_id}/workflow-state -→ { - "project_id": "...", - "current_stage": 2, // 진입 가능한 최고 단계 - "stages": [ - {"stage_no":0,"stage_key":"FILE_INPUT","state":"COMPLETE","progress_percent":100}, - {"stage_no":1,"stage_key":"WF1_SURFACE","state":"COMPLETE","progress_percent":100}, - {"stage_no":2,"stage_key":"WF2_ROUTE","state":"IN_PROGRESS","progress_percent":40}, - {"stage_no":3,"stage_key":"WF3_...","state":"STALE","progress_percent":0}, - ... - ] -} -``` - -- 대시보드 프로젝트 목록 API도 이 요약(`current_stage` + 단계별 state 배열)을 포함하도록 확장. -- 기존 `GET /surface/status`(WF1 진행률)는 이 테이블의 stage 1 행을 읽어 반환하도록 내부만 교체(외부 계약 유지 → B03 폴링 호환). - -### 3.4 상태 갱신 지점 통일 - -단계별 상태 전이를 **공통 유틸 함수**로 통일하여 라우터 중복 제거: - -```python -# common_util/common_util_workflow_state.py (신규) -async def start_stage(conn, project_id, stage_no, params=None): ... # IN_PROGRESS + 하위 STALE 전파 -async def complete_stage(conn, project_id, stage_no): ... # COMPLETE + completed_at -async def fail_stage(conn, project_id, stage_no, message): ... # FAILED -async def get_workflow_state(conn, project_id) -> list[dict]: ... # 조회 -``` - -- B03/B04가 각자 하던 `WF1_ANALYZING`/`WF1_COMPLETE` UPDATE를 이 함수 호출로 대체. -- **WF1 상태의 이중 세팅 문제 해소:** 파일입력 완료 후 자동 WF1 분석 흐름에서 stage 0 `complete` → stage 1 `start`/`complete`가 한 경로로만 일어나도록 정리. - -### 3.5 재실행 시 사용자 입력 보존 (G5) - -- 각 stage 행의 `params JSON`에 해당 단계 실행 시 사용자가 고른 값을 저장 - - WF1: `{source_filters, methods, force, input_file_id}` - - WF2: `{algorithm, road_grade, min_radius, ...}` -- 사용자가 단계 재진입 시 UI는 `params`를 불러와 폼 기본값으로 채움 → 초기 실행과 달리 재계산이 즉시 가능. - ---- - -## 4. 프론트엔드 반영 - -### 4.1 공통 규칙 (대시보드 + 파일입력 + WF1~6 레이아웃) - -- 세 곳 모두 **`workflow-state` API 하나**를 근거로 사용 (G4). 개별 페이지가 자체 추론하지 않음. -- 버튼 활성화: `stage.state === 'COMPLETE'`인 다음 단계까지 이동 가능. `STALE`은 "재작업 필요" 배지로 표시하되 진입 허용. -- 대시보드 워크플로우 버튼([B01_Dashboard_UI_Page.ts:370](../B01_Dashboard/B01_Dashboard_UI_Page.ts#L370) `workflow()`)의 `enabled` 계산을 `stages` 배열 기반으로 교체. - -### 4.2 헤더 토글과 전역 헤더 구분 (혼동 방지 메모) - -- WF1~6 공통 레이아웃(`ui_template_workflow_layout`)의 헤더 숨김/표시 토글은 **그 페이지 내부 작업 헤더**에만 작용. 로그인/로그아웃/사용자명이 있는 **전역 상단 헤더(`app_shell.ts`)와는 별개**임. -- 코더 주의: 화면 확장 목적으로 헤더를 숨길 때 전역 헤더(`app-header`)를 건드리지 말 것. 두 헤더는 DOM/스타일이 분리돼 있어야 함. - -### 4.3 페이지 이동 시점 (이미 구현됨 — 유지) - -- 파일 업로드 → WF1 분석 완료 폴링 → 완료 후 B04 이동은 이미 올바르게 구현([B03_FileInput_UI_Page.ts:606-609](../B03_FileInput/B03_FileInput_UI_Page.ts#L606)). -- 재설계 후에도 이 시점을 유지하되, "완료" 판정을 `workflow-state`의 stage 1 == COMPLETE로 통일. - ---- - -## 5. 마이그레이션 & 호환 - -1. `project_workflow_stages` 테이블 생성 SQL을 `db_management/`에 신규 번호로 추가. -2. 기존 프로젝트 백필: 현재 `projects.status` 문자열을 해석해 각 프로젝트의 stage 0~N을 `COMPLETE`로, 나머지는 `NOT_STARTED`로 시드하는 1회성 스크립트. -3. `projects.status`는 당분간 요약 캐시로 유지(외부 참조 호환), 신규 판정은 테이블 기준. 안정화 후 제거 검토. -4. `workflow.json` 초기화 로직 제거(또는 테이블과 동기화). `common_util_workflow.py`의 `stale_from`은 새 stale 전파로 대체되므로 정리 대상. - ---- - -## 6. 구현 순서 (코더용) - -| Phase | 작업 | 파일(예상) | -|-------|------|-----------| -| 1 | 테이블 생성 SQL + 생성 시 7행 시드 | `db_management/00X_*.sql`, B02 생성 로직 | -| 2 | 상태 전이 공통 유틸 (start/complete/fail/get + stale 전파) | `common_util/common_util_workflow_state.py` | -| 3 | `GET /workflow-state` API + 대시보드 목록 API 확장 | B01, 신규 라우터 or 공통 | -| 4 | B03/B04 등 기존 status UPDATE를 공통 유틸 호출로 교체 | B03/B04 Router | -| 5 | 각 단계 실행 시 `params` 저장 + 재진입 시 폼 프리필 | 각 WF Router/UI | -| 6 | 프론트: 세 UI를 `workflow-state` 기반 활성화로 통일 | B01, B03, `ui_template_workflow_layout` | -| 7 | 기존 프로젝트 백필 스크립트 + `workflow.json` 정리 | migration | - ---- - -## 7. 검증 체크리스트 - -- [x] 신규 프로젝트: 모든 단계 `NOT_STARTED`, stage 0만 진입 가능 -- [x] 파일 업로드 후 WF1 자동 분석 → stage 0/1 `COMPLETE`, stage 2 진입 가능 -- [x] WF2 완료 후 WF1으로 돌아가 재분석 → stage 2~6이 `STALE`로 전환되는지 -- [x] `STALE` 단계 재실행 시 `COMPLETE` 복귀 + 결과 파일 보존 확인 -- [x] 대시보드/파일입력/WF 레이아웃 세 곳의 버튼 활성화가 동일 규칙으로 일치 -- [x] 재분석 시 이전 `params`가 폼에 프리필되는지 (G5) -- [x] WF1 상태가 B03·B04 두 곳에서 중복 세팅되지 않는지 (단일 경로) -- [x] 전역 헤더(로그인/로그아웃)가 WF 레이아웃 헤더 토글과 무관하게 항상 표시되는지 - ---- - -## 8. 미해결/확인 필요 사항 (코더 착수 전 결정) - -1. **`projects.status` 유지 vs 제거**: 당장은 요약 캐시로 유지 권장(대시보드 정렬·필터 등 기존 참조 호환). 완전 제거는 참조처 전수 조사 후. -2. **STALE 하위 결과 파일 처리**: 낡은 결과 파일을 즉시 삭제할지, 재실행 시 덮어쓸지. 권장: **보존 후 재실행 시 덮어쓰기**(사용자가 비교/복구 가능). -3. **stage_key 명칭**: `FILE_INPUT`, `WF1_SURFACE`, `WF2_ROUTE`, `WF3_PROFILE_CROSS`, `WF4_DESIGN_DETAIL`, `WF5_QUANTITY`, `WF6_ESTIMATION` 로 확정 제안 (B0N 폴더명과 정합). diff --git a/docs/raw/verification/2026-07-12_verify_add_phase4_role.md b/docs/raw/verification/2026-07-12_verify_add_phase4_role.md deleted file mode 100644 index 12718f6f..00000000 --- a/docs/raw/verification/2026-07-12_verify_add_phase4_role.md +++ /dev/null @@ -1,8 +0,0 @@ -# 검증 보고서: 4단계 기타 작업자 역할 추가 검증 - -* **검증일**: 2026-07-12 -* **검증 대상 파일**: [AGENTS.md](file:///C:/Program_coding/%EC%9E%84%EB%8F%84%EC%84%A4%EA%B3%84%20%EB%B0%8F%20%EA%B2%AC%EC%A0%81%EC%9E%90%EB%8F%99%ED%99%94%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%20%EA%B0%9C%EB%B0%9C/AGENTS.md) -* **검증 결과**: - 1. `#### 4단계: 기타 작업자 (위키 관리 / 작업 보조)` 역할이 `AGENTS.md`에 성공적으로 기술되었습니다. - 2. 3중 역할 분담 협업 체계 다이어그램에도 `[4. 위키 관리]` 흐름이 정확히 명시되었습니다. - 3. 사용자가 요청한 세부 조건(인제스트/린트 시 `.agents/instructions.md` 참조, 위키 업데이트 시 `docs/wiki`로 이동하여 `graphify .` 실행)이 올바르게 반영된 것을 확인하였습니다. diff --git a/docs/wiki 관리 이유.md b/docs/wiki 관리 이유.md deleted file mode 100644 index ebc1a36c..00000000 --- a/docs/wiki 관리 이유.md +++ /dev/null @@ -1,8 +0,0 @@ -1. 나는 누구인가: 나는 임도설계 실무자이자 Aislo(라이다 기반 임도 설계·견적 자동화 웹앱) 프로젝트의 기획·설계자야. 코드를 직접 작성하거나 깊이 이해하지는 못하지만, 도메인 전문성을 바탕으로 결과물(프론트엔드 화면, 산출물)을 보고 검증할 수 있는 능력이 있고, 이를 바탕으로 AI 코드 어시스턴트들에게 방향성과 구체적 지시를 내리는 사람이야. - -2. 기록의 목적 : 내가 기록하는 목적은 바이브 코딩 할 때 AI 코드 어시스턴스들과 더 효율적은 소통을 하고 개발하고 싶어. 웹앱을 프론트엔드, 백엔드, DB, API 등을 구조화 및 연결하여 AI코드 어시스턴스가 더욱 쉽게 문서 전체를 찾는게 아니라. 효과적으로 관련 문서들만 찾게 도움을 주고 같은 실수나 배경 설명을 줄이기 위해 사용하려고해. 그리고 al 어시스턴트 에이전트도 계획서 작성 > 코드작업 > 계획서의 체크리스트 점검 > 코드 검증 > 검증보고서 > 계획서 업데이트를 함으로써 항상 계획를 업데이트 함으로써 주기적인 관리도 맡기고 싶어. - - 심화 배경: 현재 상위 `.agent` 폴더에 백엔드/프론트엔드/DB/폴더구조/계획서/검증보고서 등 5~10개의 md 파일로 관리 중인데, 개발이 진행될수록 이 문서들이 비대해져서 컨텍스트·토큰 낭비를 일으키고 있음. 그 결과 AI와의 작업 흐름이 자주 끊기고, 코딩 방향성이 반복적으로 틀어지는 문제가 재발하고 있음. 필요한 것은 더 많은 기록이 아니라, 문서를 비대해지지 않게 서로 연결하고 정리해서 여러 AI 코드 어시스턴트들에게 필요한 부분만 효율적으로 공유하는 것. - -3. 최종 결과 : 라이다 데이터를 활용하여 임도 설계에 대한 자동화하는 웹앱 프로그램을 개발하고 싶어. - - 위키의 주 독자: AI 코드 어시스턴트 자신 (코드 작성 전후로 읽는 용도). 흐름은 사용자와 대화 → AI가 계획서 작성/업데이트 → 계획서가 위키 내용을 참조 → AI가 위키를 효율적으로 추적하되 함수·변수 단위, DB 컬럼 정보까지 내려가서 확인 가능해야 함. - - 사용자 본인이 위키를 직접 다시 찾아볼 일은 거의 없음. 대신 6개월 후의 AI(또는 새 세션의 AI)와 팀원이 이 위키를 보고 "왜 이렇게 설계했는지, 어떤 함수/변수를 썼는지, DB에 뭐가 있는지"를 스스로 파악해서 개선 작업이나 인수인계에 활용하는 것이 1년 후 이상적인 모습. \ No newline at end of file diff --git a/docs/wiki/AGENTS.md b/docs/wiki/AGENTS.md deleted file mode 100644 index 9c293fd6..00000000 --- a/docs/wiki/AGENTS.md +++ /dev/null @@ -1,20 +0,0 @@ -# wiki/ 폴더 규칙 - -AI가 raw/의 원본을 읽고 편집·유지하는 산출물 계층. 자세한 운영 규칙(Ingest/Query/Lint, 위키 규칙 14가지)은 `docs/CLAUDE.md`의 Wiki Schema 섹션을 따른다. - -## 구조 -- `index.md` — 전체 카탈로그. 모든 질의는 여기서 시작한다. -- `log.md` — 연대기 로그. append-only. -- `pages/B0x_이름/` — 프로젝트의 실제 B01~B09 폴더와 1:1 대응하는 페이지 단위 폴더. 하위에 `frontend.md`, `backend.md`, `db.md`, `api.md`, `dependencies.md`를 필요한 것만 생성한다. -- `concepts/` — 여러 페이지가 함께 쓰는 공유 자원의 1차 정의처. DB 스키마, 인증/RBAC, 저장 경로 규칙, 공통 유틸(`common_util_*`), API 공통 엔드포인트, 공통 Pydantic 스키마, 외부 라이브러리 의존성, workflow 상태 관리 등. - -## 작성 규칙 -- 모든 페이지에 YAML frontmatter 포함. `status`는 `draft`/`stable`/`stale` 셋 중 하나만 사용 (draft=계획서만 반영, stable=검증보고서로 확인, stale=raw 갱신됐는데 미반영). -- **`pages/` 하위 파일에는 반드시 `page_id: B0x_이름`(또는 `A0x_이름`)을 frontmatter에 추가한다.** 파일명(`frontend.md` 등)만으로는 소속 페이지를 알 수 없으므로, 폴더 밖에서 봐도 식별 가능해야 한다. concepts 파일에는 해당 없음. -- 내부 참조는 `[[페이지명]]` 위키링크 형식. -- 새 페이지를 만들기 전에 기존 페이지를 업데이트할 수 있는지 먼저 확인한다. -- 소스 요약은 사실만, 해석·종합은 concepts 페이지에서 다룬다. -- 계획서와 검증보고서가 충돌하면 **검증보고서를 채택**한다 (실제 코드 상태에 더 가까운 소스). 계획서 내용은 지우지 않고 "계획 당시 의도"로 남긴다. -- **공유 자원(두 페이지 이상이 쓰는 테이블·함수·API·의존성 등)은 concepts에만 정의한다.** 페이지 쪽 파일(`db.md` 등)에는 용도 설명 + 위키링크만 남긴다. concepts 쪽에는 사용처(역참조) 목록을 직접 적어 유지한다. -- **함수·API·테이블 등 개별 항목은 `항목 | 위치(파일:줄번호) | 역할` 표 형식으로만 기록한다.** 서술문 금지 — grep 없이 바로 코드 위치를 찾을 수 있어야 한다. -- **페이지(파일) 하나는 100줄을 넘지 않는다.** 넘으면 하위 주제별로 즉시 분할하고 index.md를 갱신한다. diff --git a/docs/wiki/CLAUDE.md b/docs/wiki/CLAUDE.md deleted file mode 100644 index 9c293fd6..00000000 --- a/docs/wiki/CLAUDE.md +++ /dev/null @@ -1,20 +0,0 @@ -# wiki/ 폴더 규칙 - -AI가 raw/의 원본을 읽고 편집·유지하는 산출물 계층. 자세한 운영 규칙(Ingest/Query/Lint, 위키 규칙 14가지)은 `docs/CLAUDE.md`의 Wiki Schema 섹션을 따른다. - -## 구조 -- `index.md` — 전체 카탈로그. 모든 질의는 여기서 시작한다. -- `log.md` — 연대기 로그. append-only. -- `pages/B0x_이름/` — 프로젝트의 실제 B01~B09 폴더와 1:1 대응하는 페이지 단위 폴더. 하위에 `frontend.md`, `backend.md`, `db.md`, `api.md`, `dependencies.md`를 필요한 것만 생성한다. -- `concepts/` — 여러 페이지가 함께 쓰는 공유 자원의 1차 정의처. DB 스키마, 인증/RBAC, 저장 경로 규칙, 공통 유틸(`common_util_*`), API 공통 엔드포인트, 공통 Pydantic 스키마, 외부 라이브러리 의존성, workflow 상태 관리 등. - -## 작성 규칙 -- 모든 페이지에 YAML frontmatter 포함. `status`는 `draft`/`stable`/`stale` 셋 중 하나만 사용 (draft=계획서만 반영, stable=검증보고서로 확인, stale=raw 갱신됐는데 미반영). -- **`pages/` 하위 파일에는 반드시 `page_id: B0x_이름`(또는 `A0x_이름`)을 frontmatter에 추가한다.** 파일명(`frontend.md` 등)만으로는 소속 페이지를 알 수 없으므로, 폴더 밖에서 봐도 식별 가능해야 한다. concepts 파일에는 해당 없음. -- 내부 참조는 `[[페이지명]]` 위키링크 형식. -- 새 페이지를 만들기 전에 기존 페이지를 업데이트할 수 있는지 먼저 확인한다. -- 소스 요약은 사실만, 해석·종합은 concepts 페이지에서 다룬다. -- 계획서와 검증보고서가 충돌하면 **검증보고서를 채택**한다 (실제 코드 상태에 더 가까운 소스). 계획서 내용은 지우지 않고 "계획 당시 의도"로 남긴다. -- **공유 자원(두 페이지 이상이 쓰는 테이블·함수·API·의존성 등)은 concepts에만 정의한다.** 페이지 쪽 파일(`db.md` 등)에는 용도 설명 + 위키링크만 남긴다. concepts 쪽에는 사용처(역참조) 목록을 직접 적어 유지한다. -- **함수·API·테이블 등 개별 항목은 `항목 | 위치(파일:줄번호) | 역할` 표 형식으로만 기록한다.** 서술문 금지 — grep 없이 바로 코드 위치를 찾을 수 있어야 한다. -- **페이지(파일) 하나는 100줄을 넘지 않는다.** 넘으면 하위 주제별로 즉시 분할하고 index.md를 갱신한다. diff --git a/docs/wiki/concepts/a00_app_shell_framework.md b/docs/wiki/concepts/a00_app_shell_framework.md deleted file mode 100644 index 6b4dc8f7..00000000 --- a/docs/wiki/concepts/a00_app_shell_framework.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -status: stable -related_pages: ["[[A01_Home/A01_frontend]]", "[[A02_ProgDetail/A02_frontend]]", "[[B01_Dashboard/B01_frontend]]", "[[B08_wf5_Quantity/B08_frontend]]"] -last_updated: 2026-07-12 -source: A00_Common 공유 프레임워크 소스 코드 ---- - -# A00_Common — App Shell Framework - -모든 페이지의 공통 스켈레톤. 헤더(로고/네비/언어·테마/인증버튼) + 콘텐츠 아울렛 + 푸터를 통합 관리. - -## 파일 구성 - -| 파일 | 역할 | -|---|---| -| `app_shell.ts` (284줄) | 헤더·푸터 렌더링, 테마·언어 토글, 인증 상태별 버튼 채우기 | -| `b_page_scaffold.ts` (163줄) | B 그룹(B03~B09) 페이지용 스캐폴드—"준비 중" 임시 페이지 래퍼, 워크플로우 셸 헬퍼 | -| `router.ts` (158줄) | SPA 라우터(해시 기반), 인증 가드, 지연 로딩 | - -## app_shell 구성요소 - -### 테마 & 언어 관리 -- `initThemeAndLang()` — localStorage 복원 (THEME_STORAGE_KEY, LANG_STORAGE_KEY) -- `onApp_Theme_Toggle_Click()` — light ↔ dark 전환 -- `onApp_Lang_Toggle_Click()` — 한국어 ↔ 영문 전환 + 현재 페이지 재렌더 - -### 헤더 구성 (64px 높이, sticky) -- **로고**: `BRAND_ICON_URL`(prog_icon.jpg) + 브랜드명("Aislo") -- **네비게이션**: 5개 링크 - - App_Nav_Program → A02_PROG_DETAIL - - App_Nav_Company → A03_COMP_DETAIL - - App_Nav_News → A04_NEWS_HISTORY - - App_Nav_Education → A05_EDU_DETAIL - - App_Nav_Support → A08_SUPPORT -- **우측 액션**: - - 언어 버튼 ("EN" / "한") - - 테마 버튼 ("☀" / "☾") - - 인증 버튼 (로그인/회원가입 또는 계정/로그아웃) - -### 인증 버튼 (비동기 fillAuthActions) -**미로그인 상태**: "로그인", "회원가입" -**로그인 상태**: 사용자명(또는 "내 계정"), "로그아웃" - -### 로그아웃 (onApp_Logout_Click) -- `A06_Login.logout()` 호출 → 세션 쿠키 제거 -- 오류 무시 후 홈(`A01_HOME`)으로 이동 - -### 푸터 -- 높이 56px -- 저작권 텍스트 (App_Footer_Copyright) - -## router 라우팅 테이블 - -| 라우트 | 렌더 함수 위치 | -|---|---| -| A01_HOME | A01_Home/A01_Home_UI_Page.ts | -| A02_PROG_DETAIL | A02_ProgDetail/A02_ProgDetail_UI_Page.ts | -| A03_COMP_DETAIL | A03_CompDetail/A03_CompDetail_UI_Page.ts | -| A04_NEWS_HISTORY | A04_NewsHistory/A04_NewsHistory_UI_Page.ts | -| A05_EDU_DETAIL | A05_EduDetail/A05_EduDetail_UI_Page.ts | -| A06_LOGIN | A06_Login/A06_Login_UI_Auth_Page.ts | -| A07_REGISTER | A07_Register/A07_Register_UI_Auth_Page.ts | -| A08_SUPPORT | A08_Support/A08_Support_UI_Page.ts | -| A09_SECURITY | A09_Security/A09_Security_UI_Page.ts | -| B01_ACCOUNT | B01_Dashboard/B01_Dashboard_UI_Page.ts | -| B02_PROJ_REGISTER | B02_ProjRegister/B02_ProjRegister_UI_Page.ts | -| B03_FILE_INPUT | B03_FileInput/B03_FileInput_UI_Page.ts | -| B04_WF1_SURFACE | B04_wf1_Surface/B04_wf1_Surface_UI_Page.ts | -| B05_WF2_ROUTE | B05_wf2_Route/B05_wf2_Route_UI_Page.ts | -| B06_WF3_PROFILE_CROSS | B06_wf3_ProfileCross/B06_wf3_ProfileCross_UI_Page.ts | -| B07_WF4_DESIGN_DETAIL | B07_wf4_DesignDetail/B07_wf4_DesignDetail_UI_Page.ts | -| B08_WF5_QUANTITY | B08_wf5_Quantity/B08_wf5_Quantity_UI_Page.ts | -| B09_WF6_ESTIMATION | B09_wf6_Estimation/B09_wf6_Estimation_UI_Page.ts | -| B10_PAYMENT | B10_Payment/B10_Payment_UI_Page.ts | -| B11_STATUS | B11_Status/B11_Status_UI_Page.ts | - -## 인증 가드 - -- **PROTECTED_ROUTES** (config_frontend.ts 정의): 토큰 없으면 A06_LOGIN으로 리다이렉트 -- **워크플로우 라우트** (B02~B11): 추가 검증 - - 사용자 없음 → A06_LOGIN으로 리다이렉트 - - company_id 미보유 & SYSTEM_ADMIN 아님 → B01_ACCOUNT로 리다이렉트 (회사 가입 강제) - -## 세부 스캐폴드·CSS·종속성 - -`b_page_scaffold`, CSS 주입, 공통 종속성, 전체 사용처는 [[a00_app_shell_framework_scaffold]]에 분리했다. diff --git a/docs/wiki/concepts/a00_app_shell_framework_scaffold.md b/docs/wiki/concepts/a00_app_shell_framework_scaffold.md deleted file mode 100644 index 1c9755b9..00000000 --- a/docs/wiki/concepts/a00_app_shell_framework_scaffold.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -type: concept -status: stable -related_pages: ["[[a00_app_shell_framework]]", "[[B08_wf5_Quantity/B08_frontend]]", "[[B09_wf6_Estimation/B09_frontend]]"] -last_updated: 2026-07-12 -source: 상위 프로젝트 A00_Common 코드 및 페이지 인제스트 대조 (2026-07-12) ---- - -# A00_Common — 스캐폴드·CSS·종속성 - -## b_page_scaffold -| 항목 | 역할 | -|---|---| -| `renderPendingContent` | 비 workflow 페이지용 준비 중 블록 | -| `renderPendingWorkflow` | workflow 셸과 좌·우 준비 중 영역 | -| `workflowSteps()` | 7단계 workflow 라벨 배열 | - -## CSS 인젝션 -| 항목 | 역할 | -|---|---| -| `injectShellStyles` | 셸 스타일을 ``에 1회 주입 | -| `app-shell-style` | 헤더·아울렛·푸터 스타일 ID | -| theme 변수 | 헤더 64px·푸터 56px·아울렛 최소높이 | - -## 종속성 -| 항목 | 역할 | -|---|---| -| `ui_template_locale.ts` | 언어 상태·문자열 | -| `ui_template_elements.ts` | 버튼·workflow 셸 | -| `config_frontend.ts` | routes·theme·protected routes | -| `A06_Login_Api_Fetch.ts` | 세션 조회·로그아웃 | - -## 사용처 -| 페이지 | 역할 | -|---|---| -| A01~A09 | 공통 헤더·푸터·아울렛 | -| B01~B09 | 페이지별 workflow 셸·단계 내비게이션 | diff --git a/docs/wiki/concepts/api_common.md b/docs/wiki/concepts/api_common.md deleted file mode 100644 index bf1359ae..00000000 --- a/docs/wiki/concepts/api_common.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -type: concept -status: stable -related_pages: ["[[B01_Dashboard/B01_backend]]", "[[B03_FileInput/B03_backend]]", "[[B04_wf1_Surface/B04_backend]]"] -last_updated: 2026-07-12 -source: raw/plans/plan_workflow_state_management.md, raw/guidelines/backend.md + 실 코드 확인 2026-07-12 ---- - -# API 공통 (여러 페이지가 공유하는 엔드포인트) - -## 공통 오류 응답 포맷 (전 라우터) -```json -{"status": "error", "message": "원인"} -``` -→ [[schema_common]] - -## 워크플로우 상태 조회 -| 항목 | 위치 | 역할 | -|---|---|---| -| `GET /api/projects/{project_id}/workflow-state` | `B03_FileInput_Router.py:667` | 단일 프로젝트의 `current_stage`와 `stages[]` 조회 | -| `get_workflow_states_for_projects()` | `B01_Dashboard_Repository.py:83` | [[B01_Dashboard/B01_backend|B01_Dashboard]] 목록용 다중 프로젝트 상태 배치 조회 | - -상태 모델과 사용처: [[workflow_state]]. - -## 폴링 패턴 (legacy workflow.json 설계; 현재 구현은 workflow-state API 사용) -- 클라이언트가 3초마다 `GET /api/projects/{project_id}/workflow` 호출 -- 과거 설계의 stale 감지 UX 참고용이며, 실제 상태 조회는 [[workflow_state]] API를 사용한다. diff --git a/docs/wiki/concepts/auth_rbac.md b/docs/wiki/concepts/auth_rbac.md deleted file mode 100644 index 8ef5e827..00000000 --- a/docs/wiki/concepts/auth_rbac.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -type: concept -status: stable -related_pages: ["[[B01_Dashboard/B01_backend]]"] -last_updated: 2026-07-12 -source: raw/guidelines/backend.md, raw/guidelines/frontend.md, raw/guidelines/agent.md ---- - -# 인증 / RBAC - -## 세션 인증 (backend.md 6.3) -- 방식: Secure HttpOnly 세션 쿠키 (`session_id`, JWT 아님), `SameSite=Lax` -- 저장소: `sessions` 테이블 → [[db_schema/users_auth]] -- 유효시간: 활동 기준 4시간 또는 절대 12시간 중 먼저 도달하는 쪽 -- DB 풀: `autocommit=True` (세션 즉시 조회 가능하도록) -- 프론트: 모든 API 요청에 `credentials: "include"` (frontend.md 5.1) - -## OTP / 비밀번호 -- OTP 6자리, 5분 유효, 해시 저장(bcrypt/PBKDF2), 재시도 최대 3회(2s/4s/8s 백오프) -- 비밀번호 최소 8자, bcrypt(라운드≥12) 또는 PBKDF2, 평문 저장 절대 금지 -- 5회 연속 실패 시 계정 15분 잠금 - -## 사용자 상태 생명주기 -``` -PENDING_EMAIL → NO_COMPANY → (PENDING | ACTIVE) → (INACTIVE | REJECTED) -``` -| 상태 | 접근 가능 범위 | -|---|---| -| NO_COMPANY | 로그인 가능, B01만 (B02~B11 차단) | -| PENDING | 로그인 가능, B01만 (승인 대기) | -| ACTIVE | 전체 (B01 + B02~B11) | - -## 역할 (users.role) -| 역할 | 전체회사조회 | 역할변경 | 팀원관리 | 가입승인 | 프로젝트조회 범위 | -|---|---|---|---|---|---| -| SYSTEM_ADMIN | ✅ | ✅ | ✅ | ✅ | 전체 | -| ADMIN | ✗ | ✗ | ✅(자기회사) | ✅(자기회사) | 회사별 | -| USER | ✗ | ✗ | ✗ | ✗ | 회사별 | - -`is_master` 플래그: TRUE=회사 생성자/ADMIN(팀원 승인권), FALSE=일반 팀원 - -## 권한 검증 헬퍼 (B01_Dashboard) -| 항목 | 위치 | 역할 | -|---|---|---| -| `_can_edit_project()` | `B01_Dashboard_Router.py:79` | 역할·회사 기준 프로젝트 수정 권한 | -| `_can_manage_automation()` | `B01_Dashboard_Router.py:87` | USER 차단과 프로젝트 범위 검사 | -| `_can_edit_user()` | `B01_Dashboard_Router.py:93` | 사용자 수정 범위 검사 | -| `count_company_admins()` | `B01_Dashboard_Repository.py:584` | 마지막 ADMIN 삭제·강등 방지 | -| `canEditProject()` 외 5개 | `B01_Dashboard_UI_Helper.ts:3` | 프론트 표시 제어; 백엔드 권한을 대체하지 않음 | - -**원칙:** 백엔드가 모든 수정/삭제/역할변경 API에서 반드시 재검증 (프론트 UI는 표시 제어만, 신뢰 금지). 위반 시 403 `{"status":"error","message":"Access denied"}`. - -## 인증 갱신 -로그인 시 `users.auth_expires_at = NOW() + 3개월` 자동 연장. 만료 시 재인증 모달. - -## 라우팅 가드 (frontend.md 5.2) -B02~B11 진입 시 `fetchDashboardMe()` → `company_id`+`status` 확인 → NO_COMPANY/PENDING이면 B01로 강제 리다이렉트. - -## 사용처 (역참조) -- [[B01_Dashboard/B01_backend|B01_Dashboard]] — 권한 헬퍼 5종, RBAC 접근제어 -- [[A06_Login/A06_backend]] — 세션 발급/OTP 재인증, 상태 확인 -- [[A07_Register/A07_backend]] — 사용자 상태 생명주기(PENDING_EMAIL→NO_COMPANY) -- [[A09_Security/A09_backend]] — require_master/require_system_admin 권한 데코레이터 - -## ⚠️ 계획서-실코드 불일치 (A그룹 인제스트 발견) -이 페이지의 세션/OTP 정책은 **계획서 기준**(세션 12h/4h 만료, OTP 5분·재시도3회·5회실패 15분잠금)이나, -실 코드([[A06_Login/A06_backend]])는 `auth_expires_at = NOW()+3개월` 갱신·신규브라우저/주기 재인증 OTP·5회실패시 관리자 알림 메일 방식. -[[A09_Security/A09_frontend]] 약관 텍스트도 계획서 기준(12h/4h)으로 표기됨. -→ 규칙6(실 코드 우선)에 따라 실 정책 검증 후 이 페이지 갱신 필요. 계획 당시 의도로 위 내용은 보존. diff --git a/docs/wiki/concepts/common_util.md b/docs/wiki/concepts/common_util.md deleted file mode 100644 index 52b7fd89..00000000 --- a/docs/wiki/concepts/common_util.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -type: concept -status: stable -related_pages: ["[[B01_Dashboard/B01_backend]]", "[[B03_FileInput/B03_backend]]", "[[B04_wf1_Surface/B04_backend]]", "[[B05_wf2_Route/B05_backend]]", "[[B06_wf3_ProfileCross/B06_backend]]"] -last_updated: 2026-07-12 -source: raw/guidelines/structure.md, raw/guidelines/backend.md ---- - -# 공통 유틸 (common_util/) - -> 둘 이상의 페이지가 실제로 공유하는 경로·원자적 파일쓰기·기하 유틸만 이 폴더에 배치 (migration_plan.md 2.2) - -| 파일 | 역할 | 사용처 | -|---|---|---| -| `common_util_validate.ts` | 프론트 1차 유효성 검사 (이메일/빈값/최소길이) | 전 페이지 | -| `common_util_auth.py` | 비밀번호·OTP·세션 쿠키·권한 검증 | 전 페이지 → [[auth_rbac]] | -| `common_util_auth_repository.py` | 인증·조직·관리 Raw SQL 저장소 | 인증 관련 | -| `common_util_email.py` | 비동기 SMTP 발송+재시도(최대3회) | OTP/승인 알림 | -| `common_util_email_templates.py` | 인증·조직 알림 이메일 템플릿 | common_util_email.py | -| `common_util_string.ts` | 문자열 유틸 | 미상세 | -| `common_util_storage.py` | 프로젝트·워크플로우 단계별 저장 경로 | → [[storage_paths]] | -| `common_util_json.py` | JSON 원자적 저장 | workflow.json 등 | -| `common_util_workflow.py` | 공유 workflow.json 상태 처리 | ⚠️ [[workflow_state]] 재설계로 대체/정리 예정 | -| `common_util_resource_monitor.py` | 시스템 리소스 계측(2분 주기) + log + DB 기록 | `sample_resources_loop()` → [[B01_Dashboard/B01_backend|B01_Dashboard]] | -| `common_util_format.py` | 포맷 유틸 | 미상세 | - -## 이메일 발송 (common_util_email.py) -- 개발: Google Gmail SMTP / 상용: Google Workspace 또는 AWS SES -- 발송 유형: OTP, 가입확인, 팀원승인요청(ADMIN), 승인/거부결과, 회사참여신청(SYSTEM_ADMIN), 인증갱신알림 - -## 리소스 모니터링 (common_util_resource_monitor.py) -- `main.py` lifespan에서 `asyncio.create_task` 등록/취소 -- 계측: `psutil.cpu_percent`, `psutil.virtual_memory().percent`, `shutil.disk_usage` -- 이중 기록: `system_resources` 테이블 (DB) + `log/system_resources.log` (탭 구분 1줄, `.gitignore`) -- 30일 롤링 삭제 (DB `DELETE`, 로그파일 오래된 줄 제거) diff --git a/docs/wiki/concepts/db_schema/files_surface.md b/docs/wiki/concepts/db_schema/files_surface.md deleted file mode 100644 index 67fa16b9..00000000 --- a/docs/wiki/concepts/db_schema/files_surface.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -type: concept -status: stable -related_pages: ["[[B03_FileInput/B03_backend]]", "[[B04_wf1_Surface/B04_backend]]"] -last_updated: 2026-07-12 -source: raw/guidelines/db_schema.md ---- - -# DB: 파일/지표면분석 테이블 - -← [[overview]] - -## upload_sessions (업로드 세션) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `varchar(36)` | NO | PRI | 세션 UUID | -| `project_id` | `varchar(36)` | NO | MUL | FK→projects.id | -| `original_filename` | `varchar(255)` | NO | | 원본 파일명 | -| `file_size_bytes` / `chunk_size_bytes` | `bigint(20)` | NO | | 파일크기 / 청크크기 | -| `total_chunks` / `completed_chunks` | `int(11)` | - | | 전체 청크수 / 완료 청크수 | -| `status` | `enum('PENDING','IN_PROGRESS','COMPLETED','FAILED')` | YES | MUL | `PENDING` | -| `created_at` / `updated_at` | `timestamp` | YES | | 생성 / 최종수정 일시 | - -## upload_chunks (업로드 청크 데이터) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `int(11)` | NO | PRI | `auto_increment` | -| `session_id` | `varchar(36)` | NO | MUL | FK→upload_sessions.id | -| `chunk_index` | `int(11)` | NO | | 청크 인덱스 (0, 1, 2...) | -| `chunk_hash` | `varchar(64)` | YES | | 청크 검증용 체크섬 | -| `size_bytes` | `bigint(20)` | NO | | 청크 용량 | -| `stored_at` | `varchar(255)` | YES | | 임시 파일 저장 경로 | -| `completed_at` | `timestamp` | YES | MUL | 완료 일시 | - -## input_files (입력 원본 파일) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `int(11)` | NO | PRI | `auto_increment` | -| `project_id` | `char(36)` | NO | MUL | FK→projects.id | -| `file_type` | `varchar(50)` | YES | | `las`/`tif`/`prj`/`tfw`/`dxf` 등 | -| `original_filename` / `raw_file_path` | `varchar` | NO | | 파일명 / storage 상대경로 | -| `file_size_mb` | `float` | YES | | 파일 크기 (MB) | -| `upload_by` / `upload_at` | - | - | MUL | 업로드 유저 FK / 일시 | -| `crs_epsg` | `int(11)` | YES | | EPSG 좌표계 정보 | -| `metadata` | `longtext` | YES | | 헤더/포인트수 등 분석 JSON | -| `status` | `varchar(50)` | YES | | `UPLOADED` ➡️ `PROCESSED` ➡️ `ARCHIVED` | - -## processed_point_cloud (필터/변환 포인트클라우드) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `int(11)` | NO | PRI | `auto_increment` | -| `input_file_id` / `project_id` | - | NO | MUL | FK→input_files / projects | -| `process_type` | `varchar(50)` | YES | | 변환 필터 분류 | -| `processed_file_path` / `converted_file_path` | `varchar` | YES | | 저장 경로 / PLY/LAZ 경로 | -| `converted_format` | `varchar(50)` | YES | | 변환 포맷 | -| `point_count` | `int(11)` | YES | | 포인트 개수 | -| `min_z` / `max_z` / `mean_z` | `float` | YES | | 고도 최저 / 최고 / 평균 | -| `x_min` ~ `y_max` | `float` | YES | | X/Y 좌표 바운딩 박스 범위 | -| `density_per_sqm` | `float` | YES | | ㎡당 점 밀도 | -| `classification_summary` | `longtext` | YES | | ground/unclassified 통계 | -| `processing_params` | `longtext` | YES | | 분석 파라미터 JSON | -| `processed_at` / `status` | - | - | | 변환 일시 / `PROCESSING`\|`COMPLETE`\|`FAILED` | - -## surface_models (지표면 모델 및 등고선) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `int(11)` | NO | PRI | `auto_increment` | -| `project_id` | `char(36)` | NO | MUL | FK→projects.id | -| `model_type` | `varchar(50)` | YES | | `dem_grid`/`tin`/`mesh`/`contour` | -| `source_file_id` / `processed_cloud_id` | `int(11)` | YES | MUL | FK→input_files / processed | -| `status` | `varchar(50)` | YES | | `PROCESSING` ➡️ `COMPLETE` / `FAILED` | -| `crs_epsg` / `resolution_m` | - | YES | | EPSG 좌표 / DEM 격자 해상도 | -| `model_file_path` | `varchar(500)` | YES | | 스토리지 상대 경로 | -| `generation_params` | `longtext` | YES | | 격자화 알고리즘 인자 JSON | -| `created_at` / `completed_at` | `timestamp` | - | | 생성 / 완료 일시 | - -## terrain_layers (지형 레이어) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `int(11)` | NO | PRI | `auto_increment` | -| `surface_model_id` | `int(11)` | NO | MUL | FK→surface_models.id | -| `layer_name` | `varchar(100)` | YES | | 레이어 영문/한글 식별자 | -| `geometry_type` | `varchar(50)` | YES | | `POINTCLOUD`/`GRID`/`MESH`/`CONTOUR` | -| `layer_file_path` | `varchar(500)` | YES | | 개별 레이어 실 파일 경로 | -| `file_format` / `file_size_mb` | - | YES | | 포맷 (ply, tfw, las 등) / 크기 | -| `statistics` | `longtext` | YES | | 통계 수치 JSON | -| `created_at` | `timestamp` | NO | | 생성 일시 | - -## input_files.status 값 -`UPLOADED → PROCESSED → ARCHIVED` - -## surface_models.status / processed_point_cloud.status 값 -`PROCESSING → COMPLETE / FAILED` - -관련 함수 위치 → [[B04_wf1_Surface/B04_db]], 사용 라이브러리 → [[dependencies]] diff --git a/docs/wiki/concepts/db_schema/logs_monitoring.md b/docs/wiki/concepts/db_schema/logs_monitoring.md deleted file mode 100644 index 571f9f0f..00000000 --- a/docs/wiki/concepts/db_schema/logs_monitoring.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -type: concept -status: stable -related_pages: ["[[B01_Dashboard/B01_backend]]"] -last_updated: 2026-07-12 -source: raw/guidelines/db_schema.md, raw/guidelines/backend.md ---- - -# DB: 로그/모니터링 테이블 - -← [[overview]] - -## login_logs (로그인 시도 로그) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `bigint(20)` | NO | PRI | `auto_increment` | -| `user_id` | `int(11)` | YES | MUL | FK→users.id | -| `email` | `varchar(255)` | NO | | | -| `status` | `enum('SUCCESS','FAILURE')` | NO | | | -| `failure_reason` / `user_agent` | `varchar(100)` / `text` | YES | | | -| `login_at` | `timestamp` | NO | MUL | `current_timestamp()` | - -## activity_logs (사용자 활동 로그) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `bigint(20)` | NO | PRI | `auto_increment` | -| `user_id` | `int(11)` | NO | MUL | FK→users.id | -| `action_type` | `varchar(100)` | NO | | 행위 종류 | -| `action_at` | `timestamp` | NO | | `current_timestamp()` | -| `resource_id` / `status` | `varchar(255)` / `enum` | - | | 리소스 ID / SUCCESS\|FAILURE | -| `details` | `longtext` | YES | | JSON 상세 데이터 | - -## audit_logs (감사 로그) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `int(11)` | NO | PRI | `auto_increment` | -| `user_id` | `int(11)` | YES | MUL | FK→users.id | -| `action` / `entity_type` | `varchar(100)` | YES | | CRUD/EXPORT/DOWNLOAD 등 | -| `entity_id` | `varchar(36)` | YES | | 대상 UUID 등 | -| `timestamp` / `ip_address` | `timestamp` / `varchar(45)` | - | | 발생시각 / IP 주소 | -| `details` | `longtext` | YES | | JSON 상세 | - -## system_audit_logs (프로젝트/조직 변경 감사 로그) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `int(11)` | NO | PRI | `auto_increment` | -| `user_id` | `int(11)` | NO | MUL | FK→users.id (행위자) | -| `action` / `resource_type` | `varchar(50)` | - | | PROJECT_CREATE 등 / 종류 | -| `resource_id` | `int(11)` | YES | | | -| `timestamp` | `timestamp` | YES | MUL | `current_timestamp()` | -| `ip_address` / `user_agent` | `varchar(50)` / `text` | YES | | IP 주소 / 브라우저 에이전트 | - -## system_admin_logs (시스템 관리자 행위 로그) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `bigint(20)` | NO | PRI | `auto_increment` | -| `admin_user_id` | `int(11)` | NO | MUL | FK→users.id (관리자 ID) | -| `action_type` / `target_id` | `varchar(100)` / `varchar(255)`| - | | 변경종류(USER_STATUS) / 대상 ID | -| `action_at` | `timestamp` | NO | | `current_timestamp()` | -| `details` | `longtext` | YES | | JSON 형태의 변경 상세 | - -## system_resources (시스템 자원 계측) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `int(11)` | NO | PRI | `auto_increment` | -| `timestamp` | `timestamp` | YES | MUL | `current_timestamp()` | -| `cpu_usage_percent` / `memory_usage_percent` | `float` | YES | | | -| `disk_usage_percent` / `total_storage_mb` | `float` | - | | 디스크사용률 / 전체 스토리지 용량 | -| `active_user_count` / `active_project_count` | `int(11)` | NO | | 활성 사용자 / 프로젝트 수 | - -## support_requests (기술 지원 요청) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `int(11)` | NO | PRI | `auto_increment` | -| `company_id` | `int(11)` | YES | MUL | FK→companies.id | -| `company_name` / `user_name` | `varchar(255)` | - | | 회사명 / 작성자명 | -| `user_email` / `user_phone` | `varchar(255)` / `varchar(30)` | - | | 이메일 / 전화번호 | -| `subject` / `message` | `varchar(255)` / `text` | NO | | 제목 / 문의 메시지 본문 | -| `status` | `enum('NEW','REVIEWED','RESOLVED','DELETED')` | NO | MUL | `NEW` | -| `reviewed_by` | `int(11)` | YES | MUL | FK→users.id (검토자) | -| `created_at` / `reviewed_at` / `review_notes` | - | - | | 접수 / 검토일시 / 메모 | - -## change_logs (설계 변경 이력) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `int(11)` | NO | PRI | `auto_increment` | -| `project_id` | `char(36)` | NO | | FK→projects.id | -| `changed_by` | `int(11)` | YES | MUL | FK→users.id (수정자) | -| `changed_at` | `timestamp` | NO | | `current_timestamp()` | -| `entity_type` / `entity_id` | `varchar(100)` / `int(11)` | YES | | 대상엔티티(routes 등) / 대상 PK | -| `old_value` / `new_value` | `longtext` | YES | | 변경 전 / 후 JSON 스냅샷 | -| `reason` | `varchar(255)` | YES | | 변경 사유 | - -**사용처:** [[B01_Dashboard/B01_backend|B01_Dashboard]] (SYSTEM_ADMIN 리소스 현황·시스템 로그 섹션), [[A08_Support/A08_backend|A08_Support]] (support_requests INSERT) - -## system_audit_logs — 사용처 (B01, B02) -- **프로젝트 생성**: `B02_ProjRegister_Repository.py:92` (`PROJECT_CREATE` 기록 ➡️ [[B02_ProjRegister/B02_backend]]) -- **기타 관리 행위**: `B01_Dashboard_Repository.py:245,265` (수정·삭제), `:336,367` (회사 생성), `:609` (감사 로그 조회), `:758,779` (자동화 제어) - -## 리소스 API (SYSTEM_ADMIN 전용) -`GET /api/dashboard/admin/resources?days=30` -- 실시간 계측(`current`), 30일 다운샘플링 시계열 조회(`history`, ~4MB ➡️ ~55KB 압축), 활성 지표(`stats`) 제공. diff --git a/docs/wiki/concepts/db_schema/overview.md b/docs/wiki/concepts/db_schema/overview.md deleted file mode 100644 index d871c974..00000000 --- a/docs/wiki/concepts/db_schema/overview.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -type: concept -status: stable -related_pages: [] -last_updated: 2026-07-12 -source: raw/guidelines/db_schema.md, raw/guidelines/agent.md ---- - -# DB 스키마 개요 - -**DB명:** `aislo_db` / MariaDB v10.6+ / utf8mb4_unicode_ci / 드라이버 aiomysql - -> ✅ **모순 해결 (2026-07-12, 실 DB 직접 조회 `SHOW TABLES`로 검증):** 실제 운영 DB는 **34개 테이블**. `db_schema.md`(34개)가 정확했고 `agent.md`의 18개/23개는 갱신 안 된 값 — agent.md 쪽 오기로 판정. -> -> **raw 문서에 없던 실제 테이블 2개 발견:** -> - `project_workflow_stages` — [[../workflow_state]] 설계가 **이미 구현되어 실 DB에 존재**함 (컬럼 구성이 계획서와 정확히 일치). status를 draft→stable로 갱신함. -> - `system_admin_logs` — 시스템 관리자(SYSTEM_ADMIN)가 회원/조직 상태(`status`) 등을 변경할 때 감사 이력을 INSERT하는 Write-Only 성격의 테이블 ➡️ [[logs_monitoring]]. -> -> ⚠️ **미확정/미연동 테이블 격리 규칙**: -> - 분석 중이거나 소스코드와의 구체적인 연결고리(백엔드/프론트엔드 실사용처)가 아직 확정되지 않은 테이블이 신규 추가될 경우, 상위 공식 그룹 파일에 포함하지 않고 [[unconfirmed/README|미확정 폴더(unconfirmed/)]] 내에 개별 `[테이블명].md` 마크다운 파일로 저장하여 격리 관리합니다. - -## 테이블 그룹 (9개) - -| 그룹 | 테이블 수 | 상세 페이지 | -|---|---|---| -| 사용자/인증/조직 (핵심) | 7 | [[users_auth]] | -| 로그/모니터링 | 8 | [[logs_monitoring]] | -| 프로젝트 관리 | 3 | [[projects]] | -| 파일/지표면분석 | 6 | [[files_surface]] | -| 경로/종횡단 | 5 | [[route_profile]] | -| 구조물/수량/산출물 | 4 | [[structure_output]] | -| 미확정/연결 대기 테이블 | 0 | [[unconfirmed/README]] | - -## 파일 경로 추적 컬럼 (DB에 경로만 기록, 실 파일은 파일시스템) - -| 테이블.컬럼 | 용도 | 사용 단계 | -|---|---|---| -| `input_files.raw_file_path` | 원본 입력 파일 | B03 | -| `processed_point_cloud.converted_file_path` | 변환된 포인트클라우드 | B04 | -| `surface_models.model_file_path` | 지표면 모델 | B04 | -| `routes.route_data_path` | 경로 데이터(GeoJSON) | B05 | -| `longitudinal_sections.longitudinal_file_path` | 종단면 | B06 | -| `cross_sections.cross_section_file_path` | 횡단면 | B06 | -| `structures.structure_data_path` | 구조물 배치 | B07 | -| `quantity_items.quantity_data_path` | 수량 항목 | B08 | -| `outputs.outputs_directory_path` | 산출물 폴더 | B09 | -| `output_files.output_file_path` | 개별 산출 파일 | B09 | - -상세 경로 규칙 → [[storage_paths]] - -## 설계 원칙 -- DB에는 "어디에 무엇이 있는가"의 메타정보만 저장. 실제 대용량 파일(LAS/PLY/TIF/DXF/Excel/PDF/JSON)은 파일시스템. -- 공간 기하 데이터(GEOMETRY 타입 미지원) → JSON(GeoJSON 형식)으로 저장, 애플리케이션(Shapely/Geopandas)에서 파싱. -- 모든 주요 테이블에 soft delete(`deleted_at`) 적용. - -## 테이블 관계 (핵심 흐름) -``` -users ─company_id→ companies -projects ─user_id/company_id→ users/companies - └→ input_files → processed_point_cloud → surface_models → terrain_layers - └→ routes → route_points/route_statistics/longitudinal_sections/cross_sections → structures - └→ quantity_items - └→ outputs → output_files -``` diff --git a/docs/wiki/concepts/db_schema/projects.md b/docs/wiki/concepts/db_schema/projects.md deleted file mode 100644 index 6ef1efc0..00000000 --- a/docs/wiki/concepts/db_schema/projects.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -type: concept -status: stable -related_pages: ["[[B01_Dashboard/B01_backend]]", "[[B02_ProjRegister/B02_backend]]"] -last_updated: 2026-07-12 -source: raw/guidelines/db_schema.md, raw/plans/plan_workflow_state_management.md ---- - -# DB: 프로젝트 관리 테이블 - -← [[overview]] - -## projects (프로젝트) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `char(36)` | NO | PRI | 프로젝트 UUID | -| `user_id` / `company_id` | `int(11)` | NO | MUL | FK→users/companies | -| `name` | `varchar(255)` | NO | | 프로젝트명 | -| `region` / `road_type` | `varchar(100)` | YES | | 지역 / 임도종류 | -| `project_year` | `int(11)` | YES | | 사업년도 | -| `estimated_length_m` | `float` | YES | | 계획 연장(m) | -| `memo` | `text` | YES | | 메모 | -| `status` | `varchar(50)` | YES | | `NEW` (호환용 캐시) | -| `crs_epsg` | `int(11)` | YES | | `5178` (좌표계 EPSG) | -| `storage_path` | `varchar(500)` | YES | | 상대경로 ➡️ [[storage_paths]] | -| `created_at` / `updated_at` / `deleted_at` | `timestamp` | - | | 생성 / 수정 / soft-delete | - -**사용처:** [[B01_Dashboard/B01_backend|B01_Dashboard]] (목록), [[B02_ProjRegister/B02_backend|B02_ProjRegister]] (생성) - -## project_versions (프로젝트 버전 스냅샷) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `int(11)` | NO | PRI | `auto_increment` | -| `project_id` | `char(36)` | NO | MUL | FK→projects.id | -| `version_num` | `int(11)` | NO | | 버전 번호 | -| `status` | `varchar(50)` | YES | | 버전 상태 | -| `data` | `longtext` | YES | | 설계 스냅샷 JSON 데이터 | -| `snapshot_at` / `created_at` | `timestamp` | NO | | 생성일시 | - -## project_automations (프로젝트 자동화 정책) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `int(11)` | NO | PRI | `auto_increment` | -| `project_id` | `char(36)` | NO | MUL | FK→projects.id | -| `name` | `varchar(100)` | NO | | 자동화 명칭 | -| `logic_type` | `varchar(50)` | NO | | `trigger_on_stage_complete` 등 | -| `config_json` | `longtext` | NO | | 설정 값 JSON | -| `status` | `enum('DRAFT','ACTIVE','INACTIVE')` | NO | MUL | `DRAFT` | -| `created_by` / `updated_by` | `int(11)` | - | MUL | FK→users.id | -| `last_executed_at` | `datetime` | YES | | 최종 실행 일시 | - -**사용처:** [[B01_Dashboard/B01_backend|B01_Dashboard]] (자동화 로직 관리, USER는 조회 차단) - -## project_workflow_stages (단계별 상세 상태) -- 본 테이블은 워크플로우 7단계(stage 0~6)의 세부 진행도(state, params, progress_percent 등)를 관리하는 SSOT입니다. -- 상세 테이블 정보 및 사용처 ➡️ [[workflow_state]] diff --git a/docs/wiki/concepts/db_schema/route_profile.md b/docs/wiki/concepts/db_schema/route_profile.md deleted file mode 100644 index b412faf9..00000000 --- a/docs/wiki/concepts/db_schema/route_profile.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -type: concept -status: stable -related_pages: ["[[B05_wf2_Route/B05_backend]]", "[[B06_wf3_ProfileCross/B06_backend]]"] -last_updated: 2026-07-12 -source: raw/guidelines/db_schema.md ---- - -# DB: 경로/종횡단 테이블 - -← [[overview]] - -## routes (노선 경로) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `int(11)` | NO | PRI | `auto_increment` | -| `project_id` | `char(36)` | NO | MUL | FK→projects.id | -| `surface_model_id` | `int(11)` | YES | MUL | FK→surface_models.id | -| `status` | `varchar(50)` | YES | | `DRAFT` ➡️ `CONFIRMED` ➡️ `ARCHIVED` | -| `start_chainage_m` / `end_chainage_m` | `float` | YES | | 시작 시점 / 끝 시점 연장(m) | -| `total_length_m` | `float` | YES | | 총 연장(m) | -| `grade_percent` | `longtext` | YES | | 경사도 정보 JSON | -| `constraints` / `algorithm_params` | `longtext` | YES | | 회피 구역 JSON / 알고리즘 가중치 파라미터 JSON | -| `route_data_path` | `varchar(500)` | YES | | 노선 데이터 (GeoJSON) 파일 경로 | -| `computed_at` / `created_at` | - | - | | 연산 완료 일시 / 생성 일시 | - -## route_points (경로 좌표점) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `int(11)` | NO | PRI | `auto_increment` | -| `route_id` | `int(11)` | NO | MUL | FK→routes.id | -| `chainage_m` | `float` | YES | | 시점 거리(m) | -| `elevation_m` / `slope_percent` | `float` | YES | | 표고(m) / 종단 경사율(%) | -| `sequence_num` | `int(11)` | YES | | 점 순서 | - -## route_statistics (노선 통계) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `int(11)` | NO | PRI | `auto_increment` | -| `route_id` | `int(11)` | NO | MUL | FK→routes.id | -| `min_slope` / `max_slope` / `mean_slope` | `float` | YES | | 최저 / 최고 / 평균 경사(%) | -| `cut_volume_m3` / `fill_volume_m3` | `float` | YES | | 절토량(㎥) / 성토량(㎥) | -| `tree_cutting_volume` / `cost_score` | `float` | YES | | 벌채량 / 평점 비용 스코어 | - -## longitudinal_sections (종단면 설계) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `int(11)` | NO | PRI | `auto_increment` | -| `project_id` / `route_id` | `char(36)` / `int` | NO | MUL | FK→projects / routes | -| `computed_at` | `timestamp` | YES | | 종단 계산 일시 | -| `data` | `longtext` | YES | | 지반고/계획고/구배 등 설계 데이터 JSON | -| `longitudinal_file_path` | `varchar(500)` | YES | | 종단도면 캐드 파일 경로 | -| `status` | `varchar(50)` | YES | | `DRAFT` / `CONFIRMED` | - -## cross_sections (횡단면 설계) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `int(11)` | NO | PRI | `auto_increment` | -| `project_id` / `route_id` | `char(36)` / `int` | NO | MUL | FK→projects / routes | -| `chainage_m` / `sequence_num` | - | YES | | 측정 체인 거리(m) / 단면 순서 | -| `data` | `longtext` | YES | | 좌우 사면 경사, 폭, 절성토 단면적 JSON | -| `cross_section_file_path` | `varchar(500)` | YES | | 횡단도면 캐드 파일 경로 | -| `status` | `varchar(50)` | YES | | `DRAFT` / `CONFIRMED` | - -## routes.status 흐름 -`DRAFT → CONFIRMED → ARCHIVED` - -## cross_sections.data.structures -횡단면 하나에 배치된 구조물 ID 배열 → [[structure_output]]#structures 참조 diff --git a/docs/wiki/concepts/db_schema/structure_output.md b/docs/wiki/concepts/db_schema/structure_output.md deleted file mode 100644 index b873247f..00000000 --- a/docs/wiki/concepts/db_schema/structure_output.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -type: concept -status: stable -related_pages: ["[[B07_wf4_DesignDetail/B07_frontend]]", "[[B08_wf5_Quantity/B08_frontend]]", "[[B09_wf6_Estimation/B09_frontend]]"] -last_updated: 2026-07-12 -source: raw/guidelines/db_schema.md ---- - -# DB: 구조물/수량/산출물 테이블 - -← [[overview]] - -## structures (배치 구조물) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `int(11)` | NO | PRI | `auto_increment` | -| `project_id` / `cross_section_id` | - | - | MUL | FK→projects / cross_sections | -| `structure_type` | `varchar(100)` | YES | | 낙석방지책 / 계간수로 / 돌붙임 등 | -| `chainage_m` | `float` | YES | | 구조물 배치 체인 시점 거리(m) | -| `location` | `varchar(50)` | YES | | 좌 / 우 / 종단 등 배치 위치 | -| `length_m` / `width_m` / `height_m` | `float` | YES | | 길이 / 폭 / 높이 규격(m) | -| `material` | `varchar(100)` | YES | | 구조물 재질/자재 | -| `quantity` / `unit_price` | - | YES | | 수량 / 단가 | -| `design_notes` | `longtext` | YES | | 특기사항 등 메모 | -| `structure_data_path` | `varchar(500)` | YES | | 세부 구조 상세 데이터 파일 경로 | -| `last_modified_by` | `int(11)` | YES | MUL | FK→users.id (최종 수정자) | -| `created_at` / `updated_at` | `timestamp` | - | | 생성 / 수정 일시 | - -## quantity_items (수량 산출 항목) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `int(11)` | NO | PRI | `auto_increment` | -| `project_id` | `char(36)` | NO | MUL | FK→projects.id | -| `category` | `varchar(100)` | YES | | 토공 / 구조물 / 포장 / 배수 등 공종 | -| `item_name` / `unit` | `varchar` | YES | | 품목 항목명 / 단위 (㎡, m 등) | -| `quantity_design` / `quantity_actual` | `float` | YES | | 설계 수량 / 최종 반영 수량 | -| `unit_price` / `total_price` | `float` | YES | | 단가 / 총 금액 | -| `standard_reference` | `varchar(255)` | YES | | 품셈 근거 코드/출처 | -| `computed_at` / `quantity_data_path` | - | YES | | 계산 일시 / 상세 산출근거 데이터 파일 경로 | -| `data` | `longtext` | YES | | 계산 세부 과정 통계 JSON | - -## outputs (최종 견적/도면 산출 세션) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `int(11)` | NO | PRI | `auto_increment` | -| `project_id` | `char(36)` | NO | MUL | FK→projects.id | -| `output_type` | `varchar(100)` | YES | | `estimation_excel`/`drawing_dxf`/`report_pdf`/`all_bundle` | -| `status` | `varchar(50)` | YES | | `GENERATING` ➡️ `COMPLETE` / `FAILED` | -| `generated_by` / `generated_at` | - | - | MUL | 생성자 FK / 생성일시 | -| `version` | `int(11)` | YES | | 산출 버전 | -| `outputs_directory_path` | `varchar(500)` | YES | | 산출 파일 번들 디렉토리 경로 | -| `metadata` | `longtext` | YES | | 기타 도면 스케일 등 정보 JSON | - -## output_files (개별 산출 파일 리스트) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `int(11)` | NO | PRI | `auto_increment` | -| `output_id` | `int(11)` | NO | MUL | FK→outputs.id | -| `file_type` | `varchar(50)` | YES | | `xlsx`/`pdf`/`dxf`/`dwg`/`json`/`zip` 등 | -| `original_filename` | `varchar(255)` | YES | | 원본 파일 식별 이름 | -| `output_file_path` | `varchar(500)` | YES | | 개별 파일 저장 경로 | -| `file_size_mb` / `download_count` | - | YES | | 파일 용량 / 다운로드 누적 카운트 | -| `created_at` | `timestamp` | NO | | 생성일시 | - -## quantity_items 총비용 계산 예 -```sql -SELECT SUM(quantity_actual * unit_price) AS total_cost, category -FROM quantity_items WHERE project_id = :project_id AND deleted_at IS NULL -GROUP BY category; -``` diff --git a/docs/wiki/concepts/db_schema/unconfirmed/README.md b/docs/wiki/concepts/db_schema/unconfirmed/README.md deleted file mode 100644 index 0ae87859..00000000 --- a/docs/wiki/concepts/db_schema/unconfirmed/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# 미확정 테이블 보관소 (Unconfirmed DB Schemas) - -본 디렉토리는 소스코드 연동 처리가 완료되지 않았거나, 비즈니스 로직(백엔드/프론트엔드) 상의 구체적인 연결고리가 식별되지 않은 미확정 테이블의 명세서 및 임시 분석 내용을 개별 마크다운 파일로 저장·격리하는 공간입니다. - -## 운영 규칙 -1. **임시 격리**: 신규 테이블 추가 또는 레거시 테이블 중 사용처를 즉시 규명하기 어려운 경우 `[테이블명].md`로 파일을 생성해 기록합니다. -2. **확정 이관**: 소스코드에서의 실제 사용처(라우터, 리포지토리 등)가 명확해지면, 상위의 공식 테이블 그룹(예: `users_auth.md`, `logs_monitoring.md` 등)으로 표 명세를 이관하고 본 폴더 내의 마크다운은 삭제합니다. diff --git a/docs/wiki/concepts/db_schema/users_auth.md b/docs/wiki/concepts/db_schema/users_auth.md deleted file mode 100644 index 921ef135..00000000 --- a/docs/wiki/concepts/db_schema/users_auth.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -type: concept -status: stable -related_pages: ["[[B01_Dashboard/B01_backend]]"] -last_updated: 2026-07-12 -source: raw/guidelines/db_schema.md ---- - -# DB: 사용자/인증/조직 테이블 - -← [[overview]] - -## users (사용자) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `int(11)` | NO | PRI | `auto_increment` | -| `email` | `varchar(255)` | NO | UNI | | -| `password_hash` | `varchar(255)` | NO | | | -| `name` | `varchar(255)` | NO | | | -| `position` / `department` | `varchar(100)` | YES | | 직위 / 부서 | -| `phone` | `varchar(20)` | YES | | | -| `company_id` | `int(11)` | YES | MUL | FK→companies.id | -| `role` | `enum('SYSTEM_ADMIN','ADMIN','USER')` | NO | MUL | `USER` | -| `is_master` | `tinyint(1)` | NO | | `0` (마스터 여부) | -| `status` | `enum('PENDING_EMAIL','NO_COMPANY','PENDING','ACTIVE','INACTIVE','REJECTED')` | NO | MUL | `PENDING_EMAIL` | -| `auth_expires_at` / `last_login` | `datetime` | YES | | 인증만료 / 최종로그인 | -| `login_failures` | `int(11)` | NO | | `0` (실패 횟수) | -| `created_at` / `updated_at` / `deleted_at` | `timestamp` | - | | 생성 / 수정 / soft-delete | - -**사용처:** [[B01_Dashboard/B01_backend|B01_Dashboard]] (사용자 관리), 전 페이지 공통 인증 - -## companies (회사) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `int(11)` | NO | PRI | `auto_increment` | -| `name` | `varchar(255)` | NO | UNI | 회사명 | -| `business_registration_number` | `varchar(20)` | YES | UNI | 사업자번호 | -| `status` | `enum('ACTIVE','INACTIVE','SUSPENDED')` | NO | | `ACTIVE` | -| `subscription_status` | `enum('FREE','TRIAL','PAID','EXPIRED')` | NO | | `FREE` | -| `created_by` | `int(11)` | YES | MUL | FK→users.id (생성자) | -| `company_code` | `varchar(20)` | YES | | 참여용 코드 | - -**사용처:** [[B01_Dashboard/B01_backend|B01_Dashboard]] - -## sessions (세션) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `varchar(255)` | NO | PRI | 세션 ID (쿠키 값) | -| `user_id` | `int(11)` | NO | MUL | FK→users.id | -| `user_agent_hash` | `char(64)` | NO | | | -| `expires_at` | `timestamp` | NO | MUL | 만료일시 | -| `last_activity_at` | `timestamp` | NO | | 최종 활동일시 | - -**사용처:** 전 페이지 공통 (세션 인증) — 상세 → [[auth_rbac]] - -## email_otps (이메일 OTP) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `bigint(20)` | NO | PRI | `auto_increment` | -| `user_id` | `int(11)` | NO | MUL | FK→users.id | -| `purpose` | `enum('REGISTER','LOGIN','REVERIFY','PASSWORD_CHANGE')` | NO | | 용도 | -| `otp_hash` | `varchar(255)` | NO | | OTP 해시값 | -| `expires_at` / `consumed_at` | `timestamp` | - | | 만료일시 / 사용일시 | - -## trusted_devices (신뢰 기기) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `bigint(20)` | NO | PRI | `auto_increment` | -| `user_id` | `int(11)` | NO | MUL | FK→users.id | -| `user_agent_hash` | `char(64)` | NO | | 브라우저 지문 해시 | -| `verified_at` / `last_used_at` | `timestamp` | NO | | 검증 / 최종 사용 일시 | - -## join_requests (회사 가입 신청) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `int(11)` | NO | PRI | `auto_increment` | -| `user_id` / `company_id` | `int(11)` | NO | MUL | FK→users/companies | -| `status` | `enum('PENDING','APPROVED','REJECTED')` | NO | | `PENDING` | -| `requested_at` / `reviewed_at` | `timestamp` | - | | 신청 / 검토 일시 | -| `reviewed_by` | `int(11)` | YES | MUL | FK→users.id (검토자) | - -**사용처:** [[B01_Dashboard/B01_backend|B01_Dashboard]] (`B01_Dashboard_Repository.py:378` 가입 신청·처리) - -## user_consents (약관 동의) -| 컬럼 | 타입 | Null | Key | Default / Extra | -|---|---|---|---|---| -| `id` | `bigint(20)` | NO | PRI | `auto_increment` | -| `user_id` | `int(11)` | NO | MUL | FK→users.id | -| `terms_version` | `varchar(20)` | NO | | 동의한 약관 버전 | -| `terms_agreed` / `privacy_agreed` | `tinyint(1)` | NO | | 필수 동의여부 (1=동의) | -| `marketing_agreed` | `tinyint(1)` | NO | | `0` (선택 마케팅동의) | -| `agreed_at` | `timestamp` | NO | | 동의 일시 | diff --git a/docs/wiki/concepts/dependencies.md b/docs/wiki/concepts/dependencies.md deleted file mode 100644 index 5546bc64..00000000 --- a/docs/wiki/concepts/dependencies.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -type: concept -status: stable -related_pages: ["[[B01_Dashboard/B01_backend]]", "[[B03_FileInput/B03_backend]]", "[[B04_wf1_Surface/B04_backend]]", "[[B05_wf2_Route/B05_backend]]", "[[B06_wf3_ProfileCross/B06_backend]]"] -last_updated: 2026-07-12 -source: raw/guidelines/agent.md, raw/guidelines/migration_plan.md ---- - -# 외부 라이브러리 의존성 - -## 백엔드 (Python 3.12.7) -| 라이브러리 | 용도 | 사용 페이지 | -|---|---|---| -| FastAPI / Pydantic | API 프레임워크 / 요청·응답 검증 | 전체; [[B01_Dashboard/B01_backend|B01_Dashboard]] 라우터·요청 모델 | -| Trimesh | 3D 메시 처리 | [[B04_wf1_Surface/B04_backend|B04_wf1_Surface]] (모델 생성) | -| Whitebox | 지형 분석(D8 흐름누적 등) | [[B04_wf1_Surface/B04_backend|B04_wf1_Surface]], [[B05_wf2_Route/B05_backend|B05_wf2_Route]] (skeleton) | -| Geopandas | 공간 데이터프레임 | [[B04_wf1_Surface/B04_backend|B04_wf1_Surface]], [[B05_wf2_Route/B05_backend|B05_wf2_Route]] | -| Shapely | 기하 연산 (JSON 파싱 후) | [[B05_wf2_Route/B05_backend|B05_wf2_Route]], [[B06_wf3_ProfileCross/B06_backend|B06_wf3_ProfileCross]] | -| NumPy | 격자·통계·비용면 및 LAS 통계 계산 | [[B03_FileInput/B03_backend|B03_FileInput]], [[B05_wf2_Route/B05_backend|B05_wf2_Route]] | -| SciPy | 수치 보간·계산 보조 | [[B05_wf2_Route/B05_backend|B05_wf2_Route]] | -| Rasterio | 래스터(DEM/TIF) 입출력·메타데이터 | [[B03_FileInput/B03_backend|B03_FileInput]], [[B04_wf1_Surface/B04_backend|B04_wf1_Surface]] | -| Laspy | LAS/LAZ 포인트클라우드 파싱 | [[B03_FileInput/B03_backend|B03_FileInput]], [[B04_wf1_Surface/B04_backend|B04_wf1_Surface]] | -| Pyproj | PRJ/TIF 좌표계 해석 | [[B03_FileInput/B03_backend|B03_FileInput]] | -| aiomysql | 비동기 MariaDB 드라이버 (Raw SQL) | 전체 | -| psutil | CPU·메모리 사용률 계측 | [[B01_Dashboard/B01_backend|B01_Dashboard]] 리소스 현황 | - -## 프론트엔드 (TypeScript/Node.js) -| 항목 | 용도 | 사용처 | -|---|---|---| -| **three.js** (WebGL) | 3D 뷰어(WebGLRenderer, OrbitControls, Points/Mesh) | [[B04_wf1_Surface/B04_backend|B04_wf1_Surface]] 구현 확인. B05/B06은 각 페이지에서 미구현 확인 | -| Vite | 빌드 도구 | 전 프론트 | - -> ⚠️ B04는 three.js 기반 3D 뷰어가 구현되어 있고, B05/B06은 현재 문서 기준 WebCAD 노선·프로필 뷰어가 미구현이다. - -## 선정 원칙 (agent.md 3절) -프로젝트에 맞춰 호환 라이브러리 선정, 불필요한 함수 작성 최소화. `asyncmy` 대신 `aiomysql` 채택 이유: Cython 빌드가 Windows 환경에서 불필요. diff --git a/docs/wiki/concepts/schema_common.md b/docs/wiki/concepts/schema_common.md deleted file mode 100644 index 1b3992db..00000000 --- a/docs/wiki/concepts/schema_common.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -type: concept -status: stable -related_pages: [] -last_updated: 2026-07-12 -source: raw/guidelines/backend.md ---- - -# 공통 스키마 (Pydantic 요청/응답 규칙) - -## 검증 원칙 (backend.md 4절) -- 모든 JSON 요청은 라우터 진입 전 Pydantic 모델로 타입·범위 검증. -- 모든 지형/메쉬 연산은 `try-except` 필수. -- 에러 응답 표준 포맷: `{"status": "error", "message": "원인"}` — 전 라우터 공통, 프론트도 동일 포맷 기대. - -## 명명 규칙 -파일명 `[폴더명]_Schema.py`, 페이지 폴더 내부 배치 (전역 공유 스키마 폴더 없음 — 필요 시 여기에 항목 추가). - -> 현재 raw 자료에서 페이지 간 공유되는 구체적 Pydantic 모델(예: 공통 페이지네이션, 공통 좌표 타입)은 확인되지 않음. 발견 시 이 페이지에 추가. diff --git a/docs/wiki/concepts/storage_paths.md b/docs/wiki/concepts/storage_paths.md deleted file mode 100644 index 87e7ba1b..00000000 --- a/docs/wiki/concepts/storage_paths.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -type: concept -status: stable -related_pages: ["[[B02_ProjRegister/B02_backend]]", "[[B03_FileInput/B03_backend]]", "[[B04_wf1_Surface/B04_backend]]", "[[B05_wf2_Route/B05_backend]]", "[[B06_wf3_ProfileCross/B06_backend]]", "[[B07_wf4_DesignDetail/B07_frontend]]", "[[B08_wf5_Quantity/B08_frontend]]", "[[B09_wf6_Estimation/B09_frontend]]"] -last_updated: 2026-07-12 -source: raw/guidelines/structure.md, raw/guidelines/db_schema.md, raw/guidelines/backend.md, raw/guidelines/agent.md ---- - -# 저장 경로 규칙 (Workflow-based Folder Structure) - -## 경로 패턴 -``` -storage/{company_slug}/{user_slug}/{project_id}/ -├── B03_FileInput/input/{file_type}/ WF0 원본 입력 -├── B04_wf1_Surface/processed/, models/ WF1 변환·모델 -├── B05_wf2_Route/route/ WF2 경로 -├── B06_wf3_ProfileCross/longitudinal/, cross_sections/ WF3 종횡단 -├── B07_wf4_DesignDetail/structures/ WF4 구조물 -├── B08_wf5_Quantity/quantities/ WF5 수량 -└── B09_wf6_Estimation/v1/, v2/, ... WF6 산출물 (버전은 여기서만) -``` - -## 원칙 (backend.md 3절) -1. **하드코딩 금지** — 경로는 `config/config_system.py`에서 import. -2. **물리 파일은 DB 저장 금지** — 대용량 파일은 파일시스템, DB에는 경로만. -3. **단계별 루트 강제** — 각 B0x 폴더명은 실제 워크플로우 페이지명과 동일해야 함. `raw/`, `processed/`, `computed/`를 프로젝트 루트 공용 폴더로 만들지 않음. -4. **경로 생성 책임 분리** — 페이지별 백엔드는 자기 단계 폴더만 생성·수정. 다른 단계 산출물을 직접 삭제·덮어쓰지 않고 stale로 전파 → [[workflow_state]]. -5. **상대 경로만 DB 저장** — 프로젝트 루트 기준 상대경로. 사용자 입력 경로 직접 결합 금지(경로 이탈 방지), 절대경로 저장 금지. - -## DB 컬럼 ↔ 실제 경로 매핑 -상세 표 → [[db_schema/overview]] "파일 경로 추적 컬럼" - -## 파일명 규칙 (structure.md 1절) -- 페이지 폴더: 로그인 전 `A0x_`, 로그인 후 `B0x_`, 워크플로우는 `wf[번호]` 접두사 -- 파일명: `폴더명(페이지명)_기능_기타사양.확장자` -- 공통 유틸: `common_util/common_util_기능.확장자` diff --git a/docs/wiki/concepts/ui_templates.md b/docs/wiki/concepts/ui_templates.md deleted file mode 100644 index 94270bb9..00000000 --- a/docs/wiki/concepts/ui_templates.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -status: stable -related_pages: ["[[A01_Home/A01_frontend]]", "[[A02_ProgDetail/A02_frontend]]", "[[B01_Dashboard/B01_frontend]]", "[[B08_wf5_Quantity/B08_frontend]]"] -last_updated: 2026-07-12 -source: ui_template/ 공통 UI 소스 코드 및 스타일시트 ---- - -# UI Templates — Localization & Components - -프론트엔드 공통 UI 요소: 다국어(i18n), 공통 컴포넌트, 테마 스타일. 디자인 시스템: [[design.md]] - -## ui_template_locale.ts (다국어 관리) - -**파일**: `ui_template/ui_template_locale.ts` - -### 핵심 기능 - -| 항목 | 위치 | 역할 | -|---|---|---| -| `currentLanguageIndex` | `ui_template/ui_template_locale.ts:12` | 현재 활성화된 언어 인덱스 (ko=0, en=1) | -| `ui_locales` | `ui_template/ui_template_locale.ts:25` | 다국어 문구가 등록된 2차원 사전 객체 | -| `t(key)` | `ui_template/ui_template_locale.ts:152` | 지정된 키에 대응하는 현재 언어 텍스트 반환 헬퍼 | - -### 사용처 (역참조) -- [[A01_Home/A01_frontend]] — MOCK_NEWS 태그, 섹션 제목 -- [[A02_ProgDetail/A02_frontend]] — 워크플로우 스텝, 기술 카드 -- [[a00_app_shell_framework]] — 헤더 네비, 언어 토글, 버튼 라벨 -- 모든 A0x/B0x 페이지 — 동적 텍스트 로드 - -## ui_template_elements.ts (공통 컴포넌트) - -**파일**: `ui_template/ui_template_elements.ts` - -### 제공 컴포넌트 - -| 항목 | 위치 | 역할 | -|---|---|---| -| `createButton(opts)` | `ui_template/ui_template_elements.ts:60` | 버튼. variant: `filled`(기본)/`ghost`/`pill`/`danger` | -| `createInputField(opts)` | `ui_template/ui_template_elements.ts:102` | 입력필드(라벨+입력+에러슬롯), setError 핸들 반환 | -| `createSelectField(opts)` | `ui_template/ui_template_elements.ts:164` | 드롭다운 select 필드 | -| `createCard(opts)` | `ui_template/ui_template_elements.ts:209` | 카드(title + body 배열, raised 옵션) | -| `createTag(label, variant?)` | `ui_template/ui_template_elements.ts:228` | 태그. variant: `accent`/`neutral`(기본)/`success`/`warning`/`danger` | -| `showLoadingOverlay()` | `ui_template/ui_template_elements.ts:253` | 로딩 스피너 오버레이 표시(참조카운트) | -| `hideLoadingOverlay()` | `ui_template/ui_template_elements.ts:259` | 로딩 오버레이 해제 | -| `showToast(msg, kind?, ms?)` | `ui_template/ui_template_elements.ts:282` | 토스트 알림. kind: success/error/info/warning | -| `createWorkflowShell(opts)` | `ui_template/ui_template_elements.ts:315` | 워크플로우 3단 레이아웃(헤더+좌측패널+우측뷰어) | -| `createLineChart(opts)` | `ui_template/ui_template_elements.ts:402` | 시계열 스플라인 차트(인라인 SVG, 외부 라이브러리 없음) | -| `injectBaseStyles()` | `ui_template/ui_template_elements.ts:843` | 공통 컴포넌트 기본 스타일 1회 주입 | - -### 사용처 (역참조) -- [[A01_Home/A01_frontend]] — createButton, createCard, createTag -- [[A02_ProgDetail/A02_frontend]] — createButton, createCard -- [[A03_CompDetail/A03_frontend]] — createCard -- [[A04_NewsHistory/A04_frontend]] — createTag -- [[A05_EduDetail/A05_frontend]] — createButton, createCard -- [[a00_app_shell_framework]] — createButton(헤더 네비/인증), createWorkflowShell -- B그룹 모든 페이지 — createWorkflowShell, createLineChart(B01 대시보드) - -## theme.css (스타일 변수) - -**파일**: `ui_template/theme.css` - -### 핵심 변수 - -| 항목 | 위치 | 역할 | -|---|---|---| -| `--color-primary`, `--color-primary-text` | `ui_template/theme.css:10` | 기본 색상 및 기본 텍스트 색상 | -| `--color-canvas`, `--color-paper` | `ui_template/theme.css:15` | 기본 캔버스 배경 및 레이어 카드 배경 | -| `--color-deep-iris`, `--color-mist-violet` | `ui_template/theme.css:22` | 라벤더 그라디언트 및 브랜드 서브 컬러 | -| `--spacing-8`, `--spacing-16` 등 | `ui_template/theme.css:45` | 기본 마진/패딩 간격 시스템 (8px 배수) | -| `--text-heading-lg`, `--text-body` 등 | `ui_template/theme.css:70` | 타이포그래피 크기 및 라인하이트 스케일 | -| `--radius-cards`, `--radius-icons` | `ui_template/theme.css:110` | 8px 등의 둥근 테두리 곡률 반지름 변수 | -| `--z-header` | `ui_template/theme.css:125` | 전역 헤더 고정용 z-index 인덱스 값 | - -## 제약 (backend.md §1) - -1. **다국어**: 모든 UI 문구는 반드시 `ui_locales` 등록 후 `L(key)` 또는 `t(key)`로만 참조 -2. **스타일**: CSS는 `theme.css` 변수만 사용, 하드코드 색상/단위 금지 -3. **컴포넌트 재사용**: `createButton`, `createCard`, `createTag`, `createWorkflowShell` 우선 사용 -4. **명명**: 이벤트 핸들러는 `on[페이지]_[기능]_[액션]` 규칙 준수 - -## 의존성 - -- **Locale**: 모든 페이지에서 `currentLanguageIndex` 조회 -- **요소**: 페이지별로 필요한 컴포넌트만 import diff --git a/docs/wiki/concepts/workflow_state.md b/docs/wiki/concepts/workflow_state.md deleted file mode 100644 index 98c7ac4e..00000000 --- a/docs/wiki/concepts/workflow_state.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -type: concept -status: stable -related_pages: ["[[B01_Dashboard/B01_backend]]", "[[B02_ProjRegister/B02_backend]]", "[[B03_FileInput/B03_backend]]", "[[B04_wf1_Surface/B04_backend]]", "[[B05_wf2_Route/B05_backend]]", "[[B06_wf3_ProfileCross/B06_backend]]", "[[B07_wf4_DesignDetail/B07_frontend]]", "[[B08_wf5_Quantity/B08_frontend]]", "[[B09_wf6_Estimation/B09_frontend]]"] -last_updated: 2026-07-12 -source: raw/plans/plan_workflow_state_management.md (계획, 2026-07-10) + 실 코드/DB 직접 확인 (2026-07-12) ---- - -# Workflow 상태 관리 — 구현 완료 (실 DB 확인됨) - -> **status: stable.** 2026-07-12 실 코드 전수 확인 + DB 직접 접속(`SHOW TABLES`/`DESCRIBE`)으로 검증. 계획서(2026-07-10)의 설계가 **B01~B06 전 단계에 이미 적용 완료**됨. 정식 검증보고서는 없지만 코드·DB 실측이 계획과 일치해 stable로 채택. 남은 잔재 1건은 아래 참고. - -## SSOT: `project_workflow_stages` 테이블 (실 DB 확인) -| 컬럼 | 타입 | -| --------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -| id | INT PK | -| project_id | CHAR(36), FK | -| stage_no | TINYINT (0~6) | -| stage_key | VARCHAR(30) — FILE_INPUT/WF1_SURFACE/WF2_ROUTE/WF3_PROFILE_CROSS/WF4_DESIGN_DETAIL/WF5_QUANTITY/WF6_ESTIMATION | -| state | ENUM('NOT_STARTED','IN_PROGRESS','COMPLETE','FAILED','STALE') | -| progress_percent | TINYINT | -| params | LONGTEXT(JSON) — 재실행 시 폼 프리필용 | -| message, started_at, completed_at, updated_at | 진행/이력 | - -생성 SQL: `db_management/006_workflow_state.sql`, 백필: `db_management/migrate_workflow_state.py` (기존 프로젝트 `projects.status` 해석 후 시드) - -## 공통 유틸 `common_util/common_util_workflow_state.py` -| 함수 | 역할 | -|---|---| -| `initialize_project_stages(cursor, project_id)` | 프로젝트 생성 시 7행 NOT_STARTED 시드 | -| `start_stage(cursor, project_id, stage_no, params)` | IN_PROGRESS 전이 + N+1~6의 COMPLETE를 STALE로 전파 + `projects.status` 캐시 갱신 | -| `complete_stage(cursor, project_id, stage_no)` | COMPLETE 전이 (stage 6 완료 시 `projects.status='DONE'`) | -| `fail_stage(cursor, project_id, stage_no, message)` | FAILED 전이 | -| `update_stage_progress(cursor, project_id, stage_no, progress)` | 진행률만 갱신 | -| `get_workflow_state(cursor, project_id)` | 단건 조회, `current_stage` 계산 포함 | - -## 실 연동 현황 (파일:줄번호) -| 페이지 | 위치 | 연동 stage_no | -|---|---|---| -| [[B02_ProjRegister/B02_backend|B02_ProjRegister]] | `B02_ProjRegister_Repository.py:90` `initialize_project_stages` 호출 | 시드(0~6) | -| [[B03_FileInput/B03_backend|B03_FileInput]] | `B03_FileInput_Router.py:175,224,256,347,570` | stage 0, 1 | -| [[B04_wf1_Surface/B04_backend|B04_wf1_Surface]] | `B04_wf1_Surface_Router.py:168,209,227,233` | stage 1 | -| [[B05_wf2_Route/B05_backend|B05_wf2_Route]] | `B05_wf2_Route_Router.py:51,96,112,117,122,128,152` | stage 2 | -| [[B06_wf3_ProfileCross/B06_backend|B06_wf3_ProfileCross]] | `B06_wf3_ProfileCross_Router.py:68,111,127,132,137,143,187` | stage 3 | -| [[B01_Dashboard/B01_backend|B01_Dashboard]] | `B01_Dashboard_Repository.py:83` `get_workflow_states_for_projects()` (배치 조회, 프로젝트 목록에 `workflow_state` 필드 포함) | 조회 전용 | - -## 조회 API (실제 존재, 계획서와 경로 일치) -`GET /{project_id}/workflow-state` — `B03_FileInput_Router.py:667` -```json -{"status": "success", "workflow_state": {"project_id": "...", "current_stage": 2, "stages": [...]}} -``` -실제 전체 경로는 B03 라우터 prefix를 포함한 `/api/projects/{project_id}/workflow-state`이다. - -## 상태 전이 (구현대로) -``` -NOT_STARTED → IN_PROGRESS → COMPLETE - └→ FAILED → (재실행) IN_PROGRESS -COMPLETE → (하위 단계 재작업) → STALE → (재실행) IN_PROGRESS -``` -stage N이 IN_PROGRESS 전이 시 N+1~6의 COMPLETE를 전부 STALE로 전파 (`start_stage` 내부 UPDATE 쿼리로 확인됨). - -## projects.status 문자열 캐시 (호환용, 계획서 방침대로 유지 중) -`start_stage`/`complete_stage`/`fail_stage`가 `project_workflow_stages`와 `projects.status`를 **동시에** 갱신 (`WF{n}_ANALYZING`/`WF{n}_COMPLETE`/`WF{n}_FAILED`, stage6 COMPLETE 시 `DONE`). - -## B04 상태 조회 — 레거시 폴백 (당초 "잔재"로 표기했으나 정정) -`get_wf1_analysis_status()`([[B04_wf1_Surface/B04_backend]], `B04_wf1_Surface_Router.py:372`)는 -`project_workflow_stages`(SSOT)를 **우선** 조회하고, 행이 없을 때만(백필 미작동 대비) -`projects.status` 문자열 비교로 폴백함(416 `WF1_COMPLETE`, 420 `WF1_ANALYZING`, `:412-427`). -→ B04 실 코드 확인 결과 **정상 경로가 아닌 방어적 폴백**. SSOT 안정화 후 제거 가능하나 현재는 안전장치로 유효. -별개로 `update_project_status()`(`:76`)는 정의만 있고 미호출(죽은 코드) → 정리 권장. - -## 미해결 사항 (계획서 원문, 아직 결정 안 됨) -- `projects.status` 완전 제거 여부 — 현재는 유지 중(위 확인) -- STALE 하위 결과 파일: 즉시 삭제 vs 재실행 시 덮어쓰기 — 코드 레벨 확인 안 함, 별도 점검 필요 diff --git a/docs/wiki/graphify-out/.graphify_labels.json b/docs/wiki/graphify-out/.graphify_labels.json deleted file mode 100644 index f65269e7..00000000 --- a/docs/wiki/graphify-out/.graphify_labels.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "0": "DB: 로그/모니터링 테이블", - "1": "auth_rbac.md", - "2": "workflow_state.md", - "3": "개념 (Concepts)", - "4": "Wiki Log", - "5": "ui_templates.md", - "6": "A09_Security — Backend", - "7": "A00_Common — App Shell Framework", - "8": "UI Templates — Localization & Components", - "9": "A04_NewsHistory — Frontend", - "10": "A07_Register — Frontend", - "11": "A08_Support — Backend", - "12": "A08_Support — Frontend", - "13": "B02_ProjRegister — Frontend", - "14": "인증 / RBAC", - "15": "A01_Home — Frontend", - "16": "A05_EduDetail — Frontend", - "17": "A06_Login — Backend", - "18": "A06_Login — Frontend", - "19": "A09_Security — Frontend", - "20": "B02_ProjRegister — Backend", - "21": "Workflow 상태 관리 — 구현 완료 (실 DB 확인됨)", - "22": "A03_CompDetail — Frontend", - "23": "B04_wf1_Surface — Backend", - "24": "DB: 경로/종횡단 테이블", - "25": "A07_Register — Backend", - "26": "B04_wf1_Surface — Frontend", - "27": "B07_wf4_DesignDetail — Frontend", - "28": "B09_wf6_Estimation — Frontend", - "29": "B05_wf2_Route — Backend", - "30": "A01_Home — 세부 구현", - "31": "A02_ProgDetail — 세부 구현", - "32": "A02_ProgDetail — Frontend", - "33": "B05_wf2_Route — Frontend", - "34": "B02_ProjRegister — DB", - "35": "B04_wf1_Surface — DB", - "36": "B04_wf1_Surface — Dependencies", - "37": "B06_wf3_ProfileCross — Frontend", - "38": "wiki/ 폴더 규칙", - "39": "wiki/ 폴더 규칙", - "40": "B04_wf1_Surface — API", - "41": "B05_wf2_Route — DB 사용 관계", - "42": "B06_wf3_ProfileCross — DB 사용 관계", - "43": "B01_Dashboard — DB 사용 관계", - "44": "B03_FileInput — DB 사용 관계", - "45": "B08_wf5_Quantity — DB" -} diff --git a/docs/wiki/graphify-out/.graphify_root b/docs/wiki/graphify-out/.graphify_root deleted file mode 100644 index 945c9b46..00000000 --- a/docs/wiki/graphify-out/.graphify_root +++ /dev/null @@ -1 +0,0 @@ -. \ No newline at end of file diff --git a/docs/wiki/graphify-out/GRAPH_REPORT.md b/docs/wiki/graphify-out/GRAPH_REPORT.md deleted file mode 100644 index 441abc01..00000000 --- a/docs/wiki/graphify-out/GRAPH_REPORT.md +++ /dev/null @@ -1,275 +0,0 @@ -# Graph Report - wiki (2026-07-12) - -## Corpus Check -- 69 files · ~23,462 words -- Verdict: corpus is large enough that graph structure adds value. - -## Summary -- 530 nodes · 511 edges · 46 communities (43 shown, 3 thin omitted) -- Extraction: 100% EXTRACTED · 0% INFERRED · 0% AMBIGUOUS -- Token cost: 0 input · 0 output - -## Graph Freshness -- Built from commit: `35c65c92` -- Run `git rev-parse HEAD` and compare to check if the graph is stale. -- Run `graphify update .` after code changes (no API cost). - -## Community Hubs (Navigation) -- DB: 로그/모니터링 테이블 -- auth_rbac.md -- workflow_state.md -- 개념 (Concepts) -- Wiki Log -- ui_templates.md -- A09_Security — Backend -- A00_Common — App Shell Framework -- UI Templates — Localization & Components -- A04_NewsHistory — Frontend -- A07_Register — Frontend -- A08_Support — Backend -- A08_Support — Frontend -- B02_ProjRegister — Frontend -- 인증 / RBAC -- A01_Home — Frontend -- A05_EduDetail — Frontend -- A06_Login — Backend -- A06_Login — Frontend -- A09_Security — Frontend -- B02_ProjRegister — Backend -- Workflow 상태 관리 — 구현 완료 (실 DB 확인됨) -- A03_CompDetail — Frontend -- B04_wf1_Surface — Backend -- DB: 경로/종횡단 테이블 -- A07_Register — Backend -- B04_wf1_Surface — Frontend -- B07_wf4_DesignDetail — Frontend -- B09_wf6_Estimation — Frontend -- B05_wf2_Route — Backend -- A01_Home — 세부 구현 -- A02_ProgDetail — 세부 구현 -- A02_ProgDetail — Frontend -- B05_wf2_Route — Frontend -- B02_ProjRegister — DB -- B04_wf1_Surface — DB -- B04_wf1_Surface — Dependencies -- B06_wf3_ProfileCross — Frontend -- wiki/ 폴더 규칙 -- wiki/ 폴더 규칙 -- B04_wf1_Surface — API -- B05_wf2_Route — DB 사용 관계 -- B06_wf3_ProfileCross — DB 사용 관계 -- B01_Dashboard — DB 사용 관계 -- B03_FileInput — DB 사용 관계 -- B08_wf5_Quantity — DB - -## God Nodes (most connected - your core abstractions) -1. `Wiki Log` - 33 edges -2. `개념 (Concepts)` - 12 edges -3. `DB: 로그/모니터링 테이블` - 11 edges -4. `인증 / RBAC` - 10 edges -5. `페이지 — 로그인 후 워크플로우 (B01~B09)` - 10 edges -6. `페이지 — 로그인 전 (A01~A09)` - 10 edges -7. `A07_Register — Frontend` - 10 edges -8. `A08_Support — Backend` - 10 edges -9. `A08_Support — Frontend` - 10 edges -10. `B02_ProjRegister — Frontend` - 10 edges - -## Surprising Connections (you probably didn't know these) -- None detected - all connections are within the same source files. - -## Communities (46 total, 3 thin omitted) - -### Community 0 - "DB: 로그/모니터링 테이블" -Cohesion: 0.05 -Nodes (38): DB: 파일/지표면분석 테이블, input_files.status 값, input_files (입력 원본 파일), processed_point_cloud (필터/변환 포인트클라우드), surface_models.status / processed_point_cloud.status 값, surface_models (지표면 모델 및 등고선), terrain_layers (지형 레이어), upload_chunks (업로드 청크 데이터) (+30 more) - -### Community 1 - "auth_rbac.md" -Cohesion: 0.05 -Nodes (33): API 공통 (여러 페이지가 공유하는 엔드포인트), 공통 오류 응답 포맷 (전 라우터), 워크플로우 상태 조회, 폴링 패턴 (legacy workflow.json 설계; 현재 구현은 workflow-state API 사용), companies (회사), DB: 사용자/인증/조직 테이블, email_otps (이메일 OTP), join_requests (회사 가입 신청) (+25 more) - -### Community 2 - "workflow_state.md" -Cohesion: 0.06 -Nodes (28): 공통 유틸 (common_util/), 리소스 모니터링 (common_util_resource_monitor.py), 이메일 발송 (common_util_email.py), 백엔드 (Python 3.12.7), 선정 원칙 (agent.md 3절), 외부 라이브러리 의존성, 프론트엔드 (TypeScript/Node.js), DB 컬럼 ↔ 실제 경로 매핑 (+20 more) - -### Community 3 - "개념 (Concepts)" -Cohesion: 0.06 -Nodes (35): [[a00_app_shell_framework]], [[a00_app_shell_framework_scaffold]], [[A01_Home/A01_frontend|A01_Home]], [[A02_ProgDetail/A02_frontend|A02_ProgDetail]], [[A03_CompDetail/A03_frontend|A03_CompDetail]], [[A04_NewsHistory/A04_frontend|A04_NewsHistory]], [[A05_EduDetail/A05_frontend|A05_EduDetail]], [[A06_Login/A06_backend|A06_Login]] (+27 more) - -### Community 4 - "Wiki Log" -Cohesion: 0.06 -Nodes (33): [2026-07-12] ingest | A01_Home 실 코드 반영, [2026-07-12] ingest | A02_ProgDetail + A00_Common Framework, [2026-07-12] ingest | A03_CompDetail, [2026-07-12] ingest | A04_NewsHistory, [2026-07-12] ingest | A05_EduDetail, [2026-07-12] ingest | A06_Login (backend + frontend 상세화), [2026-07-12] ingest | A07_Register (backend + frontend 상세화), [2026-07-12] ingest | A08_Support (backend + frontend 상세화) (+25 more) - -### Community 5 - "ui_templates.md" -Cohesion: 0.07 -Nodes (23): A00_Common — 스캐폴드·CSS·종속성, b_page_scaffold, CSS 인젝션, 사용처, 종속성, B01_Dashboard — Dependencies, 프로젝트 공통 모듈, B01_Dashboard — Frontend (+15 more) - -### Community 6 - "A09_Security — Backend" -Cohesion: 0.17 -Nodes (11): A09_Security — Backend, API 엔드포인트, DB 저장 (activity_logs), 권한 헬퍼, 마스터(회사 관리자) 전용 — `require_master`, 시스템 관리자 전용 — `require_system_admin`, 요청 스키마 (Pydantic), 의존성 (공통 유틸) (+3 more) - -### Community 7 - "A00_Common — App Shell Framework" -Cohesion: 0.18 -Nodes (11): A00_Common — App Shell Framework, app_shell 구성요소, router 라우팅 테이블, 로그아웃 (onApp_Logout_Click), 세부 스캐폴드·CSS·종속성, 인증 가드, 인증 버튼 (비동기 fillAuthActions), 테마 & 언어 관리 (+3 more) - -### Community 8 - "UI Templates — Localization & Components" -Cohesion: 0.18 -Nodes (11): theme.css (스타일 변수), ui_template_elements.ts (공통 컴포넌트), ui_template_locale.ts (다국어 관리), UI Templates — Localization & Components, 사용처 (역참조), 사용처 (역참조), 의존성, 제공 컴포넌트 (+3 more) - -### Community 9 - "A04_NewsHistory — Frontend" -Cohesion: 0.18 -Nodes (10): A04_NewsHistory — Frontend, CSS 클래스 구조, Mock 데이터 구조, 로컬라이제이션, 미해결 사항, 반응형, 스타일 (CSS), 의존성 (+2 more) - -### Community 10 - "A07_Register — Frontend" -Cohesion: 0.18 -Nodes (10): A07_Register — Frontend, API 클라이언트 함수, 로컬라이제이션, 스타일 (CSS), 약관 동의 (아코디언), 의존성, 이벤트 핸들러, 제출 로직 (2단계 폼 전환) (+2 more) - -### Community 11 - "A08_Support — Backend" -Cohesion: 0.18 -Nodes (10): A08_Support — Backend, API 엔드포인트, ⚠️ DB 스키마 불일치 (확인 필요), DB 저장 컬럼 (실 코드 INSERT 기준), 내부 헬퍼, 요청 스키마 (Pydantic), 의존성 (공통 유틸), 접수 로직 (+2 more) - -### Community 12 - "A08_Support — Frontend" -Cohesion: 0.18 -Nodes (10): A08_Support — Frontend, 로컬라이제이션, 세션 자동 채움, 스타일 (CSS), 의존성, 이벤트 핸들러, 제출 로직, 참고 (+2 more) - -### Community 13 - "B02_ProjRegister — Frontend" -Cohesion: 0.18 -Nodes (10): B02_ProjRegister — Frontend, 로컬라이제이션, 스타일 (CSS), 의존성, 이벤트 핸들러, 입력 필드, 제출 로직, 참고 (+2 more) - -### Community 14 - "인증 / RBAC" -Cohesion: 0.20 -Nodes (10): OTP / 비밀번호, ⚠️ 계획서-실코드 불일치 (A그룹 인제스트 발견), 권한 검증 헬퍼 (B01_Dashboard), 라우팅 가드 (frontend.md 5.2), 사용자 상태 생명주기, 사용처 (역참조), 세션 인증 (backend.md 6.3), 역할 (users.role) (+2 more) - -### Community 15 - "A01_Home — Frontend" -Cohesion: 0.20 -Nodes (9): A01_Home — Frontend, Hero 섹션, 로컬라이제이션, 세부 구현, 이벤트 핸들러, 주요 기능 섹션, 최신 소식 섹션, 컴포넌트 (+1 more) - -### Community 16 - "A05_EduDetail — Frontend" -Cohesion: 0.20 -Nodes (9): A05_EduDetail — Frontend, CSS 클래스 구조, 로컬라이제이션, 반응형, 스타일 (CSS), 의존성, 이벤트 핸들러, 컴포넌트 (섹션 빌더) (+1 more) - -### Community 17 - "A06_Login — Backend" -Cohesion: 0.20 -Nodes (9): A06_Login — Backend, API 엔드포인트, ⚠️ 계획서와 실 코드 불일치, 내부 헬퍼, 로그인 로직 흐름, 보안 정책 (실 코드 기준), 요청 스키마 (Pydantic), 의존성 (공통 유틸) (+1 more) - -### Community 18 - "A06_Login — Frontend" -Cohesion: 0.20 -Nodes (9): A06_Login — Frontend, API 클라이언트 함수, 로컬라이제이션, 스타일 (CSS), 의존성, 이벤트 핸들러, 제출 로직 (2단계 폼 전환), 컴포넌트 / 함수 (+1 more) - -### Community 19 - "A09_Security — Frontend" -Cohesion: 0.20 -Nodes (9): A09_Security — Frontend, API 클라이언트 함수 (⚠️ 미사용, 정의만), 로컬라이제이션, 스타일 (CSS), 약관 데이터 (A09_Security_Terms.ts), ⚠️ 약관 텍스트와 실 코드 불일치, 의존성, 컴포넌트 / 함수 (+1 more) - -### Community 20 - "B02_ProjRegister — Backend" -Cohesion: 0.20 -Nodes (9): API 엔드포인트, B02_ProjRegister — Backend, DB 저장 컬럼 (projects INSERT), 생성 로직 (create_project 트랜잭션), 요청/응답 스키마 (Pydantic), 의존성 (공통 유틸), 참고, 파일 구조 (+1 more) - -### Community 21 - "Workflow 상태 관리 — 구현 완료 (실 DB 확인됨)" -Cohesion: 0.22 -Nodes (9): B04 상태 조회 — 레거시 폴백 (당초 "잔재"로 표기했으나 정정), projects.status 문자열 캐시 (호환용, 계획서 방침대로 유지 중), SSOT: `project_workflow_stages` 테이블 (실 DB 확인), Workflow 상태 관리 — 구현 완료 (실 DB 확인됨), 공통 유틸 `common_util/common_util_workflow_state.py`, 미해결 사항 (계획서 원문, 아직 결정 안 됨), 상태 전이 (구현대로), 실 연동 현황 (파일:줄번호) (+1 more) - -### Community 22 - "A03_CompDetail — Frontend" -Cohesion: 0.22 -Nodes (8): A03_CompDetail — Frontend, CSS 클래스 구조, 로컬라이제이션, 반응형, 스타일 (CSS), 의존성, 컴포넌트 (섹션 빌더), 파일 구조 - -### Community 23 - "B04_wf1_Surface — Backend" -Cohesion: 0.22 -Nodes (8): B04_wf1_Surface — Backend, ⚠️ 레거시 폴백 (416,420줄), 엔진 서브모듈, 워크플로우 상태 전이, 의존성, 주요 함수 (Router), 책임, 파일 구성 (오케스트레이터/저장소/라우터) - -### Community 24 - "DB: 경로/종횡단 테이블" -Cohesion: 0.25 -Nodes (8): cross_sections.data.structures, cross_sections (횡단면 설계), DB: 경로/종횡단 테이블, longitudinal_sections (종단면 설계), route_points (경로 좌표점), route_statistics (노선 통계), routes.status 흐름, routes (노선 경로) - -### Community 25 - "A07_Register — Backend" -Cohesion: 0.25 -Nodes (7): A07_Register — Backend, API 엔드포인트, 가입 로직 흐름, 요청 스키마 (Pydantic), 의존성 (공통 유틸), 참고, 파일 구조 - -### Community 26 - "B04_wf1_Surface — Frontend" -Cohesion: 0.25 -Nodes (7): API 클라이언트 함수, B04_wf1_Surface — Frontend, ⚠️ 계획서와 실 코드 불일치 (3D 뷰어), 의존성, 처리 흐름, 컴포넌트 / 함수, 파일 구조 - -### Community 27 - "B07_wf4_DesignDetail — Frontend" -Cohesion: 0.25 -Nodes (7): B07_wf4_DesignDetail — Frontend, 로컬라이제이션, 백엔드/DB — 미착수 (계획적 범위 제외), 의존성, 참고, 컴포넌트 / 함수, 파일 구조 - -### Community 28 - "B09_wf6_Estimation — Frontend" -Cohesion: 0.25 -Nodes (7): B09_wf6_Estimation — Frontend, 로컬라이제이션, 백엔드/DB — 미착수, 의존성, 참고, 컴포넌트 / 함수, 파일 구조 - -### Community 29 - "B05_wf2_Route — Backend" -Cohesion: 0.29 -Nodes (6): B05_wf2_Route — Backend, 경로 계산 엔진, 기술부채, 기하·결과 변환, 라우터·workflow, 요청·응답 모델 - -### Community 30 - "A01_Home — 세부 구현" -Cohesion: 0.33 -Nodes (5): A01_Home — 세부 구현, 데이터 흐름, 미해결, 스타일, 의존성 - -### Community 31 - "A02_ProgDetail — 세부 구현" -Cohesion: 0.33 -Nodes (5): A02_ProgDetail — 세부 구현, 데이터 흐름, 미해결 / 특이사항, 스타일 (CSS), 의존성 - -### Community 32 - "A02_ProgDetail — Frontend" -Cohesion: 0.33 -Nodes (5): A02_ProgDetail — Frontend, 구조, 세부 구현, 제약 준수, 컴포넌트 분석 - -### Community 33 - "B05_wf2_Route — Frontend" -Cohesion: 0.33 -Nodes (5): API 클라이언트, B05_wf2_Route — Frontend, 기술부채, 입력 그룹, 화면과 상호작용 - -### Community 34 - "B02_ProjRegister — DB" -Cohesion: 0.40 -Nodes (4): B02_ProjRegister — DB, 쓰는 테이블, 저장소(파일시스템), 참고 (계획 당시 의도) - -### Community 35 - "B04_wf1_Surface — DB" -Cohesion: 0.40 -Nodes (4): B04_wf1_Surface — DB, Repository 함수, 쓰는 테이블, 참고 - -### Community 36 - "B04_wf1_Surface — Dependencies" -Cohesion: 0.40 -Nodes (4): B04_wf1_Surface — Dependencies, ⚠️ dependencies concept 정정 필요, 백엔드 (Python), 프론트엔드 (TypeScript) - -### Community 37 - "B06_wf3_ProfileCross — Frontend" -Cohesion: 0.40 -Nodes (4): API 클라이언트, B06_wf3_ProfileCross — Frontend, 입력 옵션, 화면·workflow - -### Community 38 - "wiki/ 폴더 규칙" -Cohesion: 0.50 -Nodes (3): wiki/ 폴더 규칙, 구조, 작성 규칙 - -### Community 39 - "wiki/ 폴더 규칙" -Cohesion: 0.50 -Nodes (3): wiki/ 폴더 규칙, 구조, 작성 규칙 - -### Community 40 - "B04_wf1_Surface — API" -Cohesion: 0.50 -Nodes (3): B04_wf1_Surface — API, 엔드포인트, 요청/응답 스키마 (Pydantic) - -### Community 41 - "B05_wf2_Route — DB 사용 관계" -Cohesion: 0.50 -Nodes (3): B05_wf2_Route — DB 사용 관계, Repository 함수, 저장 경로 - -### Community 42 - "B06_wf3_ProfileCross — DB 사용 관계" -Cohesion: 0.50 -Nodes (3): B06_wf3_ProfileCross — DB 사용 관계, Repository 함수, 파일 경로 - -## Knowledge Gaps -- **379 isolated node(s):** `구조`, `작성 규칙`, `구조`, `작성 규칙`, `파일 구성` (+374 more) - These have ≤1 connection - possible missing edges or undocumented components. -- **3 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. - -## Suggested Questions -_Questions this graph is uniquely positioned to answer:_ - -- **Why does `UI Templates — Localization & Components` connect `UI Templates — Localization & Components` to `ui_templates.md`?** - _High betweenness centrality (0.015) - this node is a cross-community bridge._ -- **Why does `A00_Common — App Shell Framework` connect `A00_Common — App Shell Framework` to `ui_templates.md`?** - _High betweenness centrality (0.014) - this node is a cross-community bridge._ -- **What connects `구조`, `작성 규칙`, `구조` to the rest of the system?** - _379 weakly-connected nodes found - possible documentation gaps or missing edges._ -- **Should `DB: 로그/모니터링 테이블` be split into smaller, more focused modules?** - _Cohesion score 0.045454545454545456 - nodes in this community are weakly interconnected._ -- **Should `auth_rbac.md` be split into smaller, more focused modules?** - _Cohesion score 0.05110336817653891 - nodes in this community are weakly interconnected._ -- **Should `workflow_state.md` be split into smaller, more focused modules?** - _Cohesion score 0.06156156156156156 - nodes in this community are weakly interconnected._ -- **Should `개념 (Concepts)` be split into smaller, more focused modules?** - _Cohesion score 0.05555555555555555 - nodes in this community are weakly interconnected._ \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/0624d255f06a43b161abeb6fdee9630e320fd97ac8bfcec25673ffef09e4d059.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/0624d255f06a43b161abeb6fdee9630e320fd97ac8bfcec25673ffef09e4d059.json deleted file mode 100644 index 1dd52990..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/0624d255f06a43b161abeb6fdee9630e320fd97ac8bfcec25673ffef09e4d059.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_db_md", "label": "B02_db.md", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_db.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_db_b02_projregister_db", "label": "B02_ProjRegister \u2014 DB", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_db.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_db_\uc4f0\ub294_\ud14c\uc774\ube14", "label": "\uc4f0\ub294 \ud14c\uc774\ube14", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_db.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_db_\uc800\uc7a5\uc18c_\ud30c\uc77c\uc2dc\uc2a4\ud15c", "label": "\uc800\uc7a5\uc18c(\ud30c\uc77c\uc2dc\uc2a4\ud15c)", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_db.md", "source_location": "L20"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_db_\ucc38\uace0_\uacc4\ud68d_\ub2f9\uc2dc_\uc758\ub3c4", "label": "\ucc38\uace0 (\uacc4\ud68d \ub2f9\uc2dc \uc758\ub3c4)", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_db.md", "source_location": "L26"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_projregister_b02_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_db.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_projregister_b02_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_db.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_db_schema_projects_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_db.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_workflow_state_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_db.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_db_b02_projregister_db", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_db.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_db_b02_projregister_db", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_db_\uc4f0\ub294_\ud14c\uc774\ube14", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_db.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_db_schema_logs_monitoring_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_db.md", "source_location": "L18", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_db_b02_projregister_db", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_db_\uc800\uc7a5\uc18c_\ud30c\uc77c\uc2dc\uc2a4\ud15c", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_db.md", "source_location": "L20", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_storage_paths_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_db.md", "source_location": "L23", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_db_b02_projregister_db", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_db_\ucc38\uace0_\uacc4\ud68d_\ub2f9\uc2dc_\uc758\ub3c4", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_db.md", "source_location": "L26", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/0b2cdc6e3ca674d334281585329d084ff2d4d330ad6ed1e67b99ee2b144d4d7d.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/0b2cdc6e3ca674d334281585329d084ff2d4d330ad6ed1e67b99ee2b144d4d7d.json deleted file mode 100644 index 53b2593a..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/0b2cdc6e3ca674d334281585329d084ff2d4d330ad6ed1e67b99ee2b144d4d7d.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_md", "label": "B09_frontend.md", "file_type": "document", "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_b09_wf6_estimation_frontend", "label": "B09_wf6_Estimation \u2014 Frontend", "file_type": "document", "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_\ud30c\uc77c_\uad6c\uc870", "label": "\ud30c\uc77c \uad6c\uc870", "file_type": "document", "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", "label": "\ucef4\ud3ec\ub10c\ud2b8 / \ud568\uc218", "file_type": "document", "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", "source_location": "L18"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "label": "\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "file_type": "document", "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", "source_location": "L24"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_\uc758\uc874\uc131", "label": "\uc758\uc874\uc131", "file_type": "document", "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", "source_location": "L30"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_\ubc31\uc5d4\ub4dc_db_\ubbf8\ucc29\uc218", "label": "\ubc31\uc5d4\ub4dc/DB \u2014 \ubbf8\ucc29\uc218", "file_type": "document", "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", "source_location": "L35"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_\ucc38\uace0", "label": "\ucc38\uace0", "file_type": "document", "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", "source_location": "L42"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b08_wf5_quantity_b08_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_db_schema_structure_output_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_storage_paths_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_b09_wf6_estimation_frontend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_b09_wf6_estimation_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_\ud30c\uc77c_\uad6c\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_b09_wf6_estimation_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", "source_location": "L18", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_b09_wf6_estimation_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", "source_location": "L24", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_b09_wf6_estimation_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_\uc758\uc874\uc131", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", "source_location": "L30", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_a00_app_shell_framework_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", "source_location": "L32", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_ui_templates_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", "source_location": "L33", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_b09_wf6_estimation_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_\ubc31\uc5d4\ub4dc_db_\ubbf8\ucc29\uc218", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", "source_location": "L35", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_b09_wf6_estimation_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b09_wf6_estimation_b09_frontend_\ucc38\uace0", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", "source_location": "L42", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/0dddf33216964b4bf97f34f8bce4436bfa31f27f00ed2057e251ff2f7a31623a.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/0dddf33216964b4bf97f34f8bce4436bfa31f27f00ed2057e251ff2f7a31623a.json deleted file mode 100644 index 005d54aa..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/0dddf33216964b4bf97f34f8bce4436bfa31f27f00ed2057e251ff2f7a31623a.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_dependencies_md", "label": "dependencies.md", "file_type": "document", "source_file": "concepts/dependencies.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_dependencies_\uc678\ubd80_\ub77c\uc774\ube0c\ub7ec\ub9ac_\uc758\uc874\uc131", "label": "\uc678\ubd80 \ub77c\uc774\ube0c\ub7ec\ub9ac \uc758\uc874\uc131", "file_type": "document", "source_file": "concepts/dependencies.md", "source_location": "L9"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_dependencies_\ubc31\uc5d4\ub4dc_python_3_12_7", "label": "\ubc31\uc5d4\ub4dc (Python 3.12.7)", "file_type": "document", "source_file": "concepts/dependencies.md", "source_location": "L11"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_dependencies_\ud504\ub860\ud2b8\uc5d4\ub4dc_typescript_node_js", "label": "\ud504\ub860\ud2b8\uc5d4\ub4dc (TypeScript/Node.js)", "file_type": "document", "source_file": "concepts/dependencies.md", "source_location": "L27"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_dependencies_\uc120\uc815_\uc6d0\uce59_agent_md_3\uc808", "label": "\uc120\uc815 \uc6d0\uce59 (agent.md 3\uc808)", "file_type": "document", "source_file": "concepts/dependencies.md", "source_location": "L35"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b01_dashboard_b01_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/dependencies.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b03_fileinput_b03_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/dependencies.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b04_wf1_surface_b04_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/dependencies.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b05_wf2_route_b05_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/dependencies.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b06_wf3_profilecross_b06_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/dependencies.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_dependencies_\uc678\ubd80_\ub77c\uc774\ube0c\ub7ec\ub9ac_\uc758\uc874\uc131", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/dependencies.md", "source_location": "L9", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_dependencies_\uc678\ubd80_\ub77c\uc774\ube0c\ub7ec\ub9ac_\uc758\uc874\uc131", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_dependencies_\ubc31\uc5d4\ub4dc_python_3_12_7", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/dependencies.md", "source_location": "L11", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_dependencies_\uc678\ubd80_\ub77c\uc774\ube0c\ub7ec\ub9ac_\uc758\uc874\uc131", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_dependencies_\ud504\ub860\ud2b8\uc5d4\ub4dc_typescript_node_js", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/dependencies.md", "source_location": "L27", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_dependencies_\uc678\ubd80_\ub77c\uc774\ube0c\ub7ec\ub9ac_\uc758\uc874\uc131", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_dependencies_\uc120\uc815_\uc6d0\uce59_agent_md_3\uc808", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/dependencies.md", "source_location": "L35", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/0f5b6dbb9bebbfa33f4d635f070de504af4b359fb90f4b29ba9688d1d6e17d2e.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/0f5b6dbb9bebbfa33f4d635f070de504af4b359fb90f4b29ba9688d1d6e17d2e.json deleted file mode 100644 index 40b1de34..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/0f5b6dbb9bebbfa33f4d635f070de504af4b359fb90f4b29ba9688d1d6e17d2e.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_scaffold_md", "label": "a00_app_shell_framework_scaffold.md", "file_type": "document", "source_file": "concepts/a00_app_shell_framework_scaffold.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_scaffold_a00_common_\uc2a4\uce90\ud3f4\ub4dc_css_\uc885\uc18d\uc131", "label": "A00_Common \u2014 \uc2a4\uce90\ud3f4\ub4dc\u00b7CSS\u00b7\uc885\uc18d\uc131", "file_type": "document", "source_file": "concepts/a00_app_shell_framework_scaffold.md", "source_location": "L9"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_scaffold_b_page_scaffold", "label": "b_page_scaffold", "file_type": "document", "source_file": "concepts/a00_app_shell_framework_scaffold.md", "source_location": "L11"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_scaffold_css_\uc778\uc81d\uc158", "label": "CSS \uc778\uc81d\uc158", "file_type": "document", "source_file": "concepts/a00_app_shell_framework_scaffold.md", "source_location": "L18"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_scaffold_\uc885\uc18d\uc131", "label": "\uc885\uc18d\uc131", "file_type": "document", "source_file": "concepts/a00_app_shell_framework_scaffold.md", "source_location": "L25"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_scaffold_\uc0ac\uc6a9\ucc98", "label": "\uc0ac\uc6a9\ucc98", "file_type": "document", "source_file": "concepts/a00_app_shell_framework_scaffold.md", "source_location": "L33"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_scaffold_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/a00_app_shell_framework_scaffold.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_scaffold_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b08_wf5_quantity_b08_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/a00_app_shell_framework_scaffold.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_scaffold_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b09_wf6_estimation_b09_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/a00_app_shell_framework_scaffold.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_scaffold_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_scaffold_a00_common_\uc2a4\uce90\ud3f4\ub4dc_css_\uc885\uc18d\uc131", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/a00_app_shell_framework_scaffold.md", "source_location": "L9", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_scaffold_a00_common_\uc2a4\uce90\ud3f4\ub4dc_css_\uc885\uc18d\uc131", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_scaffold_b_page_scaffold", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/a00_app_shell_framework_scaffold.md", "source_location": "L11", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_scaffold_a00_common_\uc2a4\uce90\ud3f4\ub4dc_css_\uc885\uc18d\uc131", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_scaffold_css_\uc778\uc81d\uc158", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/a00_app_shell_framework_scaffold.md", "source_location": "L18", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_scaffold_a00_common_\uc2a4\uce90\ud3f4\ub4dc_css_\uc885\uc18d\uc131", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_scaffold_\uc885\uc18d\uc131", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/a00_app_shell_framework_scaffold.md", "source_location": "L25", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_scaffold_a00_common_\uc2a4\uce90\ud3f4\ub4dc_css_\uc885\uc18d\uc131", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_scaffold_\uc0ac\uc6a9\ucc98", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/a00_app_shell_framework_scaffold.md", "source_location": "L33", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/118279706a1eb23a45441e1ff8903d5dbd50d4d0b51975d3a17b60f7780055ca.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/118279706a1eb23a45441e1ff8903d5dbd50d4d0b51975d3a17b60f7780055ca.json deleted file mode 100644 index 29989f49..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/118279706a1eb23a45441e1ff8903d5dbd50d4d0b51975d3a17b60f7780055ca.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_api_md", "label": "B01_api.md", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_api.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_api_b01_dashboard_api", "label": "B01_Dashboard \u2014 API", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_api.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_api_\uc0ac\uc6a9\uc790_\ud68c\uc0ac", "label": "\uc0ac\uc6a9\uc790\u00b7\ud68c\uc0ac", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_api.md", "source_location": "L14"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_api_\ud68c\uc0ac_\uad00\ub9ac\uc790", "label": "\ud68c\uc0ac \uad00\ub9ac\uc790", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_api.md", "source_location": "L25"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_api_\ud504\ub85c\uc81d\ud2b8_\uc790\ub3d9\ud654", "label": "\ud504\ub85c\uc81d\ud2b8\u00b7\uc790\ub3d9\ud654", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_api.md", "source_location": "L35"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_api_\uc2dc\uc2a4\ud15c_\uad00\ub9ac\uc790", "label": "\uc2dc\uc2a4\ud15c \uad00\ub9ac\uc790", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_api.md", "source_location": "L46"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dashboard_b01_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_api.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dashboard_b01_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_api.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dashboard_b01_db_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_api.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_api_b01_dashboard_api", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_api.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_api.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_api_common_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_api.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_api_b01_dashboard_api", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_api_\uc0ac\uc6a9\uc790_\ud68c\uc0ac", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_api.md", "source_location": "L14", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_api_b01_dashboard_api", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_api_\ud68c\uc0ac_\uad00\ub9ac\uc790", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_api.md", "source_location": "L25", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_api_b01_dashboard_api", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_api_\ud504\ub85c\uc81d\ud2b8_\uc790\ub3d9\ud654", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_api.md", "source_location": "L35", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_api_b01_dashboard_api", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_api_\uc2dc\uc2a4\ud15c_\uad00\ub9ac\uc790", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_api.md", "source_location": "L46", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/145e767fcb59085a1ee13d461285411d8b86d513511ea6df46b3348775ca49a4.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/145e767fcb59085a1ee13d461285411d8b86d513511ea6df46b3348775ca49a4.json deleted file mode 100644 index c776e29c..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/145e767fcb59085a1ee13d461285411d8b86d513511ea6df46b3348775ca49a4.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_backend_md", "label": "B03_backend.md", "file_type": "document", "source_file": "pages/B03_FileInput/B03_backend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_backend_b03_fileinput_backend", "label": "B03_FileInput \u2014 Backend", "file_type": "document", "source_file": "pages/B03_FileInput/B03_backend.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_backend_\uc785\ub825_\uac80\uc99d_\ud30c\uc77c_\ucc98\ub9ac", "label": "\uc785\ub825 \uac80\uc99d\u00b7\ud30c\uc77c \ucc98\ub9ac", "file_type": "document", "source_file": "pages/B03_FileInput/B03_backend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_backend_\uba54\ud0c0\ub370\uc774\ud130_\ubd84\uc11d", "label": "\uba54\ud0c0\ub370\uc774\ud130 \ubd84\uc11d", "file_type": "document", "source_file": "pages/B03_FileInput/B03_backend.md", "source_location": "L22"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_backend_\uc800\uc7a5\uc18c", "label": "\uc800\uc7a5\uc18c", "file_type": "document", "source_file": "pages/B03_FileInput/B03_backend.md", "source_location": "L31"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_backend_workflow_\uc54c\ub9bc", "label": "workflow\u00b7\uc54c\ub9bc", "file_type": "document", "source_file": "pages/B03_FileInput/B03_backend.md", "source_location": "L40"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_fileinput_b03_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_backend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_fileinput_b03_api_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_backend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_fileinput_b03_db_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_backend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_backend_b03_fileinput_backend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_backend.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_backend_b03_fileinput_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_backend_\uc785\ub825_\uac80\uc99d_\ud30c\uc77c_\ucc98\ub9ac", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_backend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_backend_b03_fileinput_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_backend_\uba54\ud0c0\ub370\uc774\ud130_\ubd84\uc11d", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_backend.md", "source_location": "L22", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_backend_b03_fileinput_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_backend_\uc800\uc7a5\uc18c", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_backend.md", "source_location": "L31", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_backend_b03_fileinput_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_backend_workflow_\uc54c\ub9bc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_backend.md", "source_location": "L40", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_backend.md", "source_location": "L49", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_backend.md", "source_location": "L49", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/186d47f554f2e797fb63a3167221e324a92f283cd57fa229bc6d47bb5224d32b.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/186d47f554f2e797fb63a3167221e324a92f283cd57fa229bc6d47bb5224d32b.json deleted file mode 100644 index 726f4600..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/186d47f554f2e797fb63a3167221e324a92f283cd57fa229bc6d47bb5224d32b.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_db_md", "label": "B03_db.md", "file_type": "document", "source_file": "pages/B03_FileInput/B03_db.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_db_b03_fileinput_db_\uc0ac\uc6a9_\uad00\uacc4", "label": "B03_FileInput \u2014 DB \uc0ac\uc6a9 \uad00\uacc4", "file_type": "document", "source_file": "pages/B03_FileInput/B03_db.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_db_\ud30c\uc77c_\uacbd\ub85c", "label": "\ud30c\uc77c \uacbd\ub85c", "file_type": "document", "source_file": "pages/B03_FileInput/B03_db.md", "source_location": "L22"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_fileinput_b03_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_db.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_fileinput_b03_api_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_db.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_db_b03_fileinput_db_\uc0ac\uc6a9_\uad00\uacc4", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_db.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_db_schema_files_surface_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_db.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_db_b03_fileinput_db_\uc0ac\uc6a9_\uad00\uacc4", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_db_\ud30c\uc77c_\uacbd\ub85c", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_db.md", "source_location": "L22", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_storage_paths_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_db.md", "source_location": "L29", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/1b226e5d018fc38a72090165fa26143b93b6e1c0a7e1073d8c15e0cdddbeb171.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/1b226e5d018fc38a72090165fa26143b93b6e1c0a7e1073d8c15e0cdddbeb171.json deleted file mode 100644 index 566e845f..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/1b226e5d018fc38a72090165fa26143b93b6e1c0a7e1073d8c15e0cdddbeb171.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_unconfirmed_readme_md", "label": "README.md", "file_type": "document", "source_file": "concepts/db_schema/unconfirmed/README.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_unconfirmed_readme_\ubbf8\ud655\uc815_\ud14c\uc774\ube14_\ubcf4\uad00\uc18c_unconfirmed_db_schemas", "label": "\ubbf8\ud655\uc815 \ud14c\uc774\ube14 \ubcf4\uad00\uc18c (Unconfirmed DB Schemas)", "file_type": "document", "source_file": "concepts/db_schema/unconfirmed/README.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_unconfirmed_readme_\uc6b4\uc601_\uaddc\uce59", "label": "\uc6b4\uc601 \uaddc\uce59", "file_type": "document", "source_file": "concepts/db_schema/unconfirmed/README.md", "source_location": "L5"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_unconfirmed_readme_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_unconfirmed_readme_\ubbf8\ud655\uc815_\ud14c\uc774\ube14_\ubcf4\uad00\uc18c_unconfirmed_db_schemas", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/unconfirmed/README.md", "source_location": "L1", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_unconfirmed_readme_\ubbf8\ud655\uc815_\ud14c\uc774\ube14_\ubcf4\uad00\uc18c_unconfirmed_db_schemas", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_unconfirmed_readme_\uc6b4\uc601_\uaddc\uce59", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/unconfirmed/README.md", "source_location": "L5", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/1d05c804dd886b8148e1a246412e6c96776d60ed81e47cd559330fd26a8da829.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/1d05c804dd886b8148e1a246412e6c96776d60ed81e47cd559330fd26a8da829.json deleted file mode 100644 index 3dc48dba..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/1d05c804dd886b8148e1a246412e6c96776d60ed81e47cd559330fd26a8da829.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_md", "label": "A08_backend.md", "file_type": "document", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_a08_support_backend", "label": "A08_Support \u2014 Backend", "file_type": "document", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_\ud30c\uc77c_\uad6c\uc870", "label": "\ud30c\uc77c \uad6c\uc870", "file_type": "document", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", "label": "API \uc5d4\ub4dc\ud3ec\uc778\ud2b8", "file_type": "document", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L19"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_\ub0b4\ubd80_\ud5ec\ud37c", "label": "\ub0b4\ubd80 \ud5ec\ud37c", "file_type": "document", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L25"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_\uc694\uccad_\uc2a4\ud0a4\ub9c8_pydantic", "label": "\uc694\uccad \uc2a4\ud0a4\ub9c8 (Pydantic)", "file_type": "document", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L31"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_\uc811\uc218_\ub85c\uc9c1", "label": "\uc811\uc218 \ub85c\uc9c1", "file_type": "document", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L37"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_db_\uc800\uc7a5_\uceec\ub7fc_\uc2e4_\ucf54\ub4dc_insert_\uae30\uc900", "label": "DB \uc800\uc7a5 \uceec\ub7fc (\uc2e4 \ucf54\ub4dc INSERT \uae30\uc900)", "file_type": "document", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L44"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_\ud2b9\uc9d5", "label": "\ud2b9\uc9d5", "file_type": "document", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L51"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_\uc758\uc874\uc131_\uacf5\ud1b5_\uc720\ud2f8", "label": "\uc758\uc874\uc131 (\uacf5\ud1b5 \uc720\ud2f8)", "file_type": "document", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L56"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_db_\uc2a4\ud0a4\ub9c8_\ubd88\uc77c\uce58_\ud655\uc778_\ud544\uc694", "label": "\u26a0\ufe0f DB \uc2a4\ud0a4\ub9c8 \ubd88\uc77c\uce58 (\ud655\uc778 \ud544\uc694)", "file_type": "document", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L62"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_support_a08_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a06_login_a06_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_db_schema_logs_monitoring_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_a08_support_backend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_a08_support_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_\ud30c\uc77c_\uad6c\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_a08_support_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L19", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_a08_support_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_\ub0b4\ubd80_\ud5ec\ud37c", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L25", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_a08_support_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_\uc694\uccad_\uc2a4\ud0a4\ub9c8_pydantic", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L31", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_a08_support_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_\uc811\uc218_\ub85c\uc9c1", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L37", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_a08_support_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_db_\uc800\uc7a5_\uceec\ub7fc_\uc2e4_\ucf54\ub4dc_insert_\uae30\uc900", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L44", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_a08_support_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_\ud2b9\uc9d5", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L51", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_a08_support_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_\uc758\uc874\uc131_\uacf5\ud1b5_\uc720\ud2f8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L56", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_common_util_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L58", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_a08_support_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_backend_db_\uc2a4\ud0a4\ub9c8_\ubd88\uc77c\uce58_\ud655\uc778_\ud544\uc694", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_backend.md", "source_location": "L62", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/1dad047374ae3b973fcdcaa189f843557fcfffe8364feccc7ebc92f3ddc04155.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/1dad047374ae3b973fcdcaa189f843557fcfffe8364feccc7ebc92f3ddc04155.json deleted file mode 100644 index 64d4f546..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/1dad047374ae3b973fcdcaa189f843557fcfffe8364feccc7ebc92f3ddc04155.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_dependencies_md", "label": "B06_dependencies.md", "file_type": "document", "source_file": "pages/B06_wf3_ProfileCross/B06_dependencies.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_dependencies_b06_wf3_profilecross_dependencies", "label": "B06_wf3_ProfileCross \u2014 Dependencies", "file_type": "document", "source_file": "pages/B06_wf3_ProfileCross/B06_dependencies.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_dependencies_\uacf5\ud1b5_\ubaa8\ub4c8", "label": "\uacf5\ud1b5 \ubaa8\ub4c8", "file_type": "document", "source_file": "pages/B06_wf3_ProfileCross/B06_dependencies.md", "source_location": "L22"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_wf3_profilecross_b06_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_dependencies.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_wf3_profilecross_b06_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_dependencies.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_dependencies_b06_wf3_profilecross_dependencies", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_dependencies.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_dependencies_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_dependencies.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_dependencies_b06_wf3_profilecross_dependencies", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_dependencies_\uacf5\ud1b5_\ubaa8\ub4c8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_dependencies.md", "source_location": "L22", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_dependencies.md", "source_location": "L25", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_dependencies.md", "source_location": "L26", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/1e373af97a118ae3015a3afa398085bf5df4a98ba74866cbe2f8697b00379869.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/1e373af97a118ae3015a3afa398085bf5df4a98ba74866cbe2f8697b00379869.json deleted file mode 100644 index 34a60802..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/1e373af97a118ae3015a3afa398085bf5df4a98ba74866cbe2f8697b00379869.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_md", "label": "B01_frontend.md", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_frontend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_b01_dashboard_frontend", "label": "B01_Dashboard \u2014 Frontend", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_frontend.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_\ud30c\uc77c\uacfc_\uc9c4\uc785\uc810", "label": "\ud30c\uc77c\uacfc \uc9c4\uc785\uc810", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_frontend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_ui_\uad8c\ud55c_\ud5ec\ud37c", "label": "UI \uad8c\ud55c \ud5ec\ud37c", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_frontend.md", "source_location": "L20"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_\ubaa8\ub2ec", "label": "\ubaa8\ub2ec", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_frontend.md", "source_location": "L32"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_\uacf5\uc720_\uc790\uc6d0_\uc5f0\uacb0", "label": "\uacf5\uc720 \uc790\uc6d0 \uc5f0\uacb0", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_frontend.md", "source_location": "L45"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_\uae30\uc220\ubd80\ucc44", "label": "\uae30\uc220\ubd80\ucc44", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_frontend.md", "source_location": "L52"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dashboard_b01_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_frontend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dashboard_b01_api_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_frontend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dashboard_b01_db_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_frontend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_b01_dashboard_frontend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_frontend.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_b01_dashboard_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_\ud30c\uc77c\uacfc_\uc9c4\uc785\uc810", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_frontend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_b01_dashboard_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_ui_\uad8c\ud55c_\ud5ec\ud37c", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_frontend.md", "source_location": "L20", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_frontend.md", "source_location": "L30", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_b01_dashboard_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_\ubaa8\ub2ec", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_frontend.md", "source_location": "L32", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_b01_dashboard_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_\uacf5\uc720_\uc790\uc6d0_\uc5f0\uacb0", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_frontend.md", "source_location": "L45", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_frontend.md", "source_location": "L49", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_frontend.md", "source_location": "L50", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_b01_dashboard_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_frontend_\uae30\uc220\ubd80\ucc44", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_frontend.md", "source_location": "L52", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/1e9e4be64167f23705811ee00b005b84faf8b3e44cc65a78ac00683ff4cc92ea.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/1e9e4be64167f23705811ee00b005b84faf8b3e44cc65a78ac00683ff4cc92ea.json deleted file mode 100644 index a40c71d2..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/1e9e4be64167f23705811ee00b005b84faf8b3e44cc65a78ac00683ff4cc92ea.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_frontend_md", "label": "B05_frontend.md", "file_type": "document", "source_file": "pages/B05_wf2_Route/B05_frontend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_frontend_b05_wf2_route_frontend", "label": "B05_wf2_Route \u2014 Frontend", "file_type": "document", "source_file": "pages/B05_wf2_Route/B05_frontend.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_frontend_\ud654\uba74\uacfc_\uc0c1\ud638\uc791\uc6a9", "label": "\ud654\uba74\uacfc \uc0c1\ud638\uc791\uc6a9", "file_type": "document", "source_file": "pages/B05_wf2_Route/B05_frontend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8", "label": "API \ud074\ub77c\uc774\uc5b8\ud2b8", "file_type": "document", "source_file": "pages/B05_wf2_Route/B05_frontend.md", "source_location": "L21"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_frontend_\uc785\ub825_\uadf8\ub8f9", "label": "\uc785\ub825 \uadf8\ub8f9", "file_type": "document", "source_file": "pages/B05_wf2_Route/B05_frontend.md", "source_location": "L29"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_frontend_\uae30\uc220\ubd80\ucc44", "label": "\uae30\uc220\ubd80\ucc44", "file_type": "document", "source_file": "pages/B05_wf2_Route/B05_frontend.md", "source_location": "L40"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_wf2_route_b05_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_frontend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_wf2_route_b05_api_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_frontend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_wf2_route_b05_db_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_frontend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_frontend_b05_wf2_route_frontend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_frontend.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_frontend_b05_wf2_route_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_frontend_\ud654\uba74\uacfc_\uc0c1\ud638\uc791\uc6a9", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_frontend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_frontend_b05_wf2_route_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_frontend.md", "source_location": "L21", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_frontend_b05_wf2_route_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_frontend_\uc785\ub825_\uadf8\ub8f9", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_frontend.md", "source_location": "L29", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_frontend_b05_wf2_route_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_frontend_\uae30\uc220\ubd80\ucc44", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_frontend.md", "source_location": "L40", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/2511b51e4eb20cf62e268122c88d3fb89dbd706320402a4eccb759b58281fa0a.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/2511b51e4eb20cf62e268122c88d3fb89dbd706320402a4eccb759b58281fa0a.json deleted file mode 100644 index e669bec9..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/2511b51e4eb20cf62e268122c88d3fb89dbd706320402a4eccb759b58281fa0a.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_md", "label": "B02_backend.md", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_b02_projregister_backend", "label": "B02_ProjRegister \u2014 Backend", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_\ud30c\uc77c_\uad6c\uc870", "label": "\ud30c\uc77c \uad6c\uc870", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L14"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", "label": "API \uc5d4\ub4dc\ud3ec\uc778\ud2b8", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L22"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_\ud568\uc218", "label": "\ud568\uc218", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L28"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_\uc694\uccad_\uc751\ub2f5_\uc2a4\ud0a4\ub9c8_pydantic", "label": "\uc694\uccad/\uc751\ub2f5 \uc2a4\ud0a4\ub9c8 (Pydantic)", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L38"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_\uc0dd\uc131_\ub85c\uc9c1_create_project_\ud2b8\ub79c\uc7ad\uc158", "label": "\uc0dd\uc131 \ub85c\uc9c1 (create_project \ud2b8\ub79c\uc7ad\uc158)", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L45"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_db_\uc800\uc7a5_\uceec\ub7fc_projects_insert", "label": "DB \uc800\uc7a5 \uceec\ub7fc (projects INSERT)", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L56"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_\uc758\uc874\uc131_\uacf5\ud1b5_\uc720\ud2f8", "label": "\uc758\uc874\uc131 (\uacf5\ud1b5 \uc720\ud2f8)", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L61"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_\ucc38\uace0", "label": "\ucc38\uace0", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L69"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_projregister_b02_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_projregister_b02_db_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b01_dashboard_b01_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b03_fileinput_b03_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_workflow_state_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_storage_paths_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_b02_projregister_backend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_b02_projregister_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_\ud30c\uc77c_\uad6c\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L14", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_b02_projregister_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L22", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_b02_projregister_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_\ud568\uc218", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L28", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_b02_projregister_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_\uc694\uccad_\uc751\ub2f5_\uc2a4\ud0a4\ub9c8_pydantic", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L38", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_b02_projregister_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_\uc0dd\uc131_\ub85c\uc9c1_create_project_\ud2b8\ub79c\uc7ad\uc158", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L45", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_b02_projregister_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_db_\uc800\uc7a5_\uceec\ub7fc_projects_insert", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L56", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_db_schema_projects_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L59", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_b02_projregister_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_\uc758\uc874\uc131_\uacf5\ud1b5_\uc720\ud2f8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L61", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_common_util_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L63", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_db_schema_logs_monitoring_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L67", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_b02_projregister_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_backend_\ucc38\uace0", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_backend.md", "source_location": "L69", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/2808d040f080236ab87ff5d059ee801796b07a63f6a114bd2a2109e0b5806e12.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/2808d040f080236ab87ff5d059ee801796b07a63f6a114bd2a2109e0b5806e12.json deleted file mode 100644 index c0b7868e..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/2808d040f080236ab87ff5d059ee801796b07a63f6a114bd2a2109e0b5806e12.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_components_md", "label": "A02_components.md", "file_type": "document", "source_file": "pages/A02_ProgDetail/A02_components.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_components_a02_progdetail_\uc138\ubd80_\uad6c\ud604", "label": "A02_ProgDetail \u2014 \uc138\ubd80 \uad6c\ud604", "file_type": "document", "source_file": "pages/A02_ProgDetail/A02_components.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_components_\uc2a4\ud0c0\uc77c_css", "label": "\uc2a4\ud0c0\uc77c (CSS)", "file_type": "document", "source_file": "pages/A02_ProgDetail/A02_components.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_components_\uc758\uc874\uc131", "label": "\uc758\uc874\uc131", "file_type": "document", "source_file": "pages/A02_ProgDetail/A02_components.md", "source_location": "L21"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_components_\ub370\uc774\ud130_\ud750\ub984", "label": "\ub370\uc774\ud130 \ud750\ub984", "file_type": "document", "source_file": "pages/A02_ProgDetail/A02_components.md", "source_location": "L29"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_components_\ubbf8\ud574\uacb0_\ud2b9\uc774\uc0ac\ud56d", "label": "\ubbf8\ud574\uacb0 / \ud2b9\uc774\uc0ac\ud56d", "file_type": "document", "source_file": "pages/A02_ProgDetail/A02_components.md", "source_location": "L35"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_components_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_progdetail_a02_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A02_ProgDetail/A02_components.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_components_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_ui_templates_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A02_ProgDetail/A02_components.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_components_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a00_app_shell_framework_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A02_ProgDetail/A02_components.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_components_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_components_a02_progdetail_\uc138\ubd80_\uad6c\ud604", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A02_ProgDetail/A02_components.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_components_a02_progdetail_\uc138\ubd80_\uad6c\ud604", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_components_\uc2a4\ud0c0\uc77c_css", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A02_ProgDetail/A02_components.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_components_a02_progdetail_\uc138\ubd80_\uad6c\ud604", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_components_\uc758\uc874\uc131", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A02_ProgDetail/A02_components.md", "source_location": "L21", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_components_a02_progdetail_\uc138\ubd80_\uad6c\ud604", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_components_\ub370\uc774\ud130_\ud750\ub984", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A02_ProgDetail/A02_components.md", "source_location": "L29", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_components_a02_progdetail_\uc138\ubd80_\uad6c\ud604", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_components_\ubbf8\ud574\uacb0_\ud2b9\uc774\uc0ac\ud56d", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A02_ProgDetail/A02_components.md", "source_location": "L35", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/29bd2bdc39958157c52fe4e872b1c1b0ff6b6f91aa809ee33b6be89c57ccd9fa.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/29bd2bdc39958157c52fe4e872b1c1b0ff6b6f91aa809ee33b6be89c57ccd9fa.json deleted file mode 100644 index ba700c22..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/29bd2bdc39958157c52fe4e872b1c1b0ff6b6f91aa809ee33b6be89c57ccd9fa.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_md", "label": "users_auth.md", "file_type": "document", "source_file": "concepts/db_schema/users_auth.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_db_\uc0ac\uc6a9\uc790_\uc778\uc99d_\uc870\uc9c1_\ud14c\uc774\ube14", "label": "DB: \uc0ac\uc6a9\uc790/\uc778\uc99d/\uc870\uc9c1 \ud14c\uc774\ube14", "file_type": "document", "source_file": "concepts/db_schema/users_auth.md", "source_location": "L9"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_users_\uc0ac\uc6a9\uc790", "label": "users (\uc0ac\uc6a9\uc790)", "file_type": "document", "source_file": "concepts/db_schema/users_auth.md", "source_location": "L13"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_companies_\ud68c\uc0ac", "label": "companies (\ud68c\uc0ac)", "file_type": "document", "source_file": "concepts/db_schema/users_auth.md", "source_location": "L32"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_sessions_\uc138\uc158", "label": "sessions (\uc138\uc158)", "file_type": "document", "source_file": "concepts/db_schema/users_auth.md", "source_location": "L45"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_email_otps_\uc774\uba54\uc77c_otp", "label": "email_otps (\uc774\uba54\uc77c OTP)", "file_type": "document", "source_file": "concepts/db_schema/users_auth.md", "source_location": "L56"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_trusted_devices_\uc2e0\ub8b0_\uae30\uae30", "label": "trusted_devices (\uc2e0\ub8b0 \uae30\uae30)", "file_type": "document", "source_file": "concepts/db_schema/users_auth.md", "source_location": "L65"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_join_requests_\ud68c\uc0ac_\uac00\uc785_\uc2e0\uccad", "label": "join_requests (\ud68c\uc0ac \uac00\uc785 \uc2e0\uccad)", "file_type": "document", "source_file": "concepts/db_schema/users_auth.md", "source_location": "L73"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_user_consents_\uc57d\uad00_\ub3d9\uc758", "label": "user_consents (\uc57d\uad00 \ub3d9\uc758)", "file_type": "document", "source_file": "concepts/db_schema/users_auth.md", "source_location": "L84"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_b01_dashboard_b01_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/users_auth.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_db_\uc0ac\uc6a9\uc790_\uc778\uc99d_\uc870\uc9c1_\ud14c\uc774\ube14", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/users_auth.md", "source_location": "L9", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/users_auth.md", "source_location": "L11", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_db_\uc0ac\uc6a9\uc790_\uc778\uc99d_\uc870\uc9c1_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_users_\uc0ac\uc6a9\uc790", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/users_auth.md", "source_location": "L13", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_db_\uc0ac\uc6a9\uc790_\uc778\uc99d_\uc870\uc9c1_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_companies_\ud68c\uc0ac", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/users_auth.md", "source_location": "L32", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_db_\uc0ac\uc6a9\uc790_\uc778\uc99d_\uc870\uc9c1_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_sessions_\uc138\uc158", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/users_auth.md", "source_location": "L45", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_auth_rbac_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/users_auth.md", "source_location": "L54", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_db_\uc0ac\uc6a9\uc790_\uc778\uc99d_\uc870\uc9c1_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_email_otps_\uc774\uba54\uc77c_otp", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/users_auth.md", "source_location": "L56", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_db_\uc0ac\uc6a9\uc790_\uc778\uc99d_\uc870\uc9c1_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_trusted_devices_\uc2e0\ub8b0_\uae30\uae30", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/users_auth.md", "source_location": "L65", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_db_\uc0ac\uc6a9\uc790_\uc778\uc99d_\uc870\uc9c1_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_join_requests_\ud68c\uc0ac_\uac00\uc785_\uc2e0\uccad", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/users_auth.md", "source_location": "L73", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_db_\uc0ac\uc6a9\uc790_\uc778\uc99d_\uc870\uc9c1_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_user_consents_\uc57d\uad00_\ub3d9\uc758", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/users_auth.md", "source_location": "L84", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/2be5bc2fd35d20f0f1eb7c1c707e58347f2b10bcc8843f04fffa74fbdca4d2a7.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/2be5bc2fd35d20f0f1eb7c1c707e58347f2b10bcc8843f04fffa74fbdca4d2a7.json deleted file mode 100644 index 01833bdc..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/2be5bc2fd35d20f0f1eb7c1c707e58347f2b10bcc8843f04fffa74fbdca4d2a7.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_md", "label": "A03_frontend.md", "file_type": "document", "source_file": "pages/A03_CompDetail/A03_frontend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_a03_compdetail_frontend", "label": "A03_CompDetail \u2014 Frontend", "file_type": "document", "source_file": "pages/A03_CompDetail/A03_frontend.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_\ud30c\uc77c_\uad6c\uc870", "label": "\ud30c\uc77c \uad6c\uc870", "file_type": "document", "source_file": "pages/A03_CompDetail/A03_frontend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_\ucef4\ud3ec\ub10c\ud2b8_\uc139\uc158_\ube4c\ub354", "label": "\ucef4\ud3ec\ub10c\ud2b8 (\uc139\uc158 \ube4c\ub354)", "file_type": "document", "source_file": "pages/A03_CompDetail/A03_frontend.md", "source_location": "L19"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "label": "\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "file_type": "document", "source_file": "pages/A03_CompDetail/A03_frontend.md", "source_location": "L29"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_\uc2a4\ud0c0\uc77c_css", "label": "\uc2a4\ud0c0\uc77c (CSS)", "file_type": "document", "source_file": "pages/A03_CompDetail/A03_frontend.md", "source_location": "L45"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_css_\ud074\ub798\uc2a4_\uad6c\uc870", "label": "CSS \ud074\ub798\uc2a4 \uad6c\uc870", "file_type": "document", "source_file": "pages/A03_CompDetail/A03_frontend.md", "source_location": "L47"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_\ubc18\uc751\ud615", "label": "\ubc18\uc751\ud615", "file_type": "document", "source_file": "pages/A03_CompDetail/A03_frontend.md", "source_location": "L61"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_\uc758\uc874\uc131", "label": "\uc758\uc874\uc131", "file_type": "document", "source_file": "pages/A03_CompDetail/A03_frontend.md", "source_location": "L64"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a00_app_shell_framework_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A03_CompDetail/A03_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_ui_templates_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A03_CompDetail/A03_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_a03_compdetail_frontend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A03_CompDetail/A03_frontend.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_a03_compdetail_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_\ud30c\uc77c_\uad6c\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A03_CompDetail/A03_frontend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_a03_compdetail_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_\ucef4\ud3ec\ub10c\ud2b8_\uc139\uc158_\ube4c\ub354", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A03_CompDetail/A03_frontend.md", "source_location": "L19", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_a03_compdetail_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A03_CompDetail/A03_frontend.md", "source_location": "L29", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_a03_compdetail_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_\uc2a4\ud0c0\uc77c_css", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A03_CompDetail/A03_frontend.md", "source_location": "L45", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_\uc2a4\ud0c0\uc77c_css", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_css_\ud074\ub798\uc2a4_\uad6c\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A03_CompDetail/A03_frontend.md", "source_location": "L47", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_\uc2a4\ud0c0\uc77c_css", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_\ubc18\uc751\ud615", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A03_CompDetail/A03_frontend.md", "source_location": "L61", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_a03_compdetail_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a03_compdetail_a03_frontend_\uc758\uc874\uc131", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A03_CompDetail/A03_frontend.md", "source_location": "L64", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/2db81e60642ebe8f3ec8f7c3673d57ad41156fa1bf6f636be896aa2d44899709.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/2db81e60642ebe8f3ec8f7c3673d57ad41156fa1bf6f636be896aa2d44899709.json deleted file mode 100644 index 152215c6..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/2db81e60642ebe8f3ec8f7c3673d57ad41156fa1bf6f636be896aa2d44899709.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_db_md", "label": "B06_db.md", "file_type": "document", "source_file": "pages/B06_wf3_ProfileCross/B06_db.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_db_b06_wf3_profilecross_db_\uc0ac\uc6a9_\uad00\uacc4", "label": "B06_wf3_ProfileCross \u2014 DB \uc0ac\uc6a9 \uad00\uacc4", "file_type": "document", "source_file": "pages/B06_wf3_ProfileCross/B06_db.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_db_repository_\ud568\uc218", "label": "Repository \ud568\uc218", "file_type": "document", "source_file": "pages/B06_wf3_ProfileCross/B06_db.md", "source_location": "L19"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_db_\ud30c\uc77c_\uacbd\ub85c", "label": "\ud30c\uc77c \uacbd\ub85c", "file_type": "document", "source_file": "pages/B06_wf3_ProfileCross/B06_db.md", "source_location": "L29"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_wf3_profilecross_b06_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_db.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_wf3_profilecross_b06_api_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_db.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_db_b06_wf3_profilecross_db_\uc0ac\uc6a9_\uad00\uacc4", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_db.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_db_schema_route_profile_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_db.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_db_b06_wf3_profilecross_db_\uc0ac\uc6a9_\uad00\uacc4", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_db_repository_\ud568\uc218", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_db.md", "source_location": "L19", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_db_b06_wf3_profilecross_db_\uc0ac\uc6a9_\uad00\uacc4", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_db_\ud30c\uc77c_\uacbd\ub85c", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_db.md", "source_location": "L29", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_storage_paths_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_db.md", "source_location": "L35", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/32b6d000932825989e419a4136794b28850890191432179205576bde15298bf5.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/32b6d000932825989e419a4136794b28850890191432179205576bde15298bf5.json deleted file mode 100644 index 1361e970..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/32b6d000932825989e419a4136794b28850890191432179205576bde15298bf5.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_md", "label": "files_surface.md", "file_type": "document", "source_file": "concepts/db_schema/files_surface.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_db_\ud30c\uc77c_\uc9c0\ud45c\uba74\ubd84\uc11d_\ud14c\uc774\ube14", "label": "DB: \ud30c\uc77c/\uc9c0\ud45c\uba74\ubd84\uc11d \ud14c\uc774\ube14", "file_type": "document", "source_file": "concepts/db_schema/files_surface.md", "source_location": "L9"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_upload_sessions_\uc5c5\ub85c\ub4dc_\uc138\uc158", "label": "upload_sessions (\uc5c5\ub85c\ub4dc \uc138\uc158)", "file_type": "document", "source_file": "concepts/db_schema/files_surface.md", "source_location": "L13"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_upload_chunks_\uc5c5\ub85c\ub4dc_\uccad\ud06c_\ub370\uc774\ud130", "label": "upload_chunks (\uc5c5\ub85c\ub4dc \uccad\ud06c \ub370\uc774\ud130)", "file_type": "document", "source_file": "concepts/db_schema/files_surface.md", "source_location": "L24"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_input_files_\uc785\ub825_\uc6d0\ubcf8_\ud30c\uc77c", "label": "input_files (\uc785\ub825 \uc6d0\ubcf8 \ud30c\uc77c)", "file_type": "document", "source_file": "concepts/db_schema/files_surface.md", "source_location": "L35"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_processed_point_cloud_\ud544\ud130_\ubcc0\ud658_\ud3ec\uc778\ud2b8\ud074\ub77c\uc6b0\ub4dc", "label": "processed_point_cloud (\ud544\ud130/\ubcc0\ud658 \ud3ec\uc778\ud2b8\ud074\ub77c\uc6b0\ub4dc)", "file_type": "document", "source_file": "concepts/db_schema/files_surface.md", "source_location": "L48"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_surface_models_\uc9c0\ud45c\uba74_\ubaa8\ub378_\ubc0f_\ub4f1\uace0\uc120", "label": "surface_models (\uc9c0\ud45c\uba74 \ubaa8\ub378 \ubc0f \ub4f1\uace0\uc120)", "file_type": "document", "source_file": "concepts/db_schema/files_surface.md", "source_location": "L64"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_terrain_layers_\uc9c0\ud615_\ub808\uc774\uc5b4", "label": "terrain_layers (\uc9c0\ud615 \ub808\uc774\uc5b4)", "file_type": "document", "source_file": "concepts/db_schema/files_surface.md", "source_location": "L77"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_input_files_status_\uac12", "label": "input_files.status \uac12", "file_type": "document", "source_file": "concepts/db_schema/files_surface.md", "source_location": "L89"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_surface_models_status_processed_point_cloud_status_\uac12", "label": "surface_models.status / processed_point_cloud.status \uac12", "file_type": "document", "source_file": "concepts/db_schema/files_surface.md", "source_location": "L92"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_b03_fileinput_b03_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/files_surface.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_b04_wf1_surface_b04_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/files_surface.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_db_\ud30c\uc77c_\uc9c0\ud45c\uba74\ubd84\uc11d_\ud14c\uc774\ube14", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/files_surface.md", "source_location": "L9", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/files_surface.md", "source_location": "L11", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_db_\ud30c\uc77c_\uc9c0\ud45c\uba74\ubd84\uc11d_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_upload_sessions_\uc5c5\ub85c\ub4dc_\uc138\uc158", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/files_surface.md", "source_location": "L13", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_db_\ud30c\uc77c_\uc9c0\ud45c\uba74\ubd84\uc11d_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_upload_chunks_\uc5c5\ub85c\ub4dc_\uccad\ud06c_\ub370\uc774\ud130", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/files_surface.md", "source_location": "L24", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_db_\ud30c\uc77c_\uc9c0\ud45c\uba74\ubd84\uc11d_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_input_files_\uc785\ub825_\uc6d0\ubcf8_\ud30c\uc77c", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/files_surface.md", "source_location": "L35", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_db_\ud30c\uc77c_\uc9c0\ud45c\uba74\ubd84\uc11d_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_processed_point_cloud_\ud544\ud130_\ubcc0\ud658_\ud3ec\uc778\ud2b8\ud074\ub77c\uc6b0\ub4dc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/files_surface.md", "source_location": "L48", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_db_\ud30c\uc77c_\uc9c0\ud45c\uba74\ubd84\uc11d_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_surface_models_\uc9c0\ud45c\uba74_\ubaa8\ub378_\ubc0f_\ub4f1\uace0\uc120", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/files_surface.md", "source_location": "L64", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_db_\ud30c\uc77c_\uc9c0\ud45c\uba74\ubd84\uc11d_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_terrain_layers_\uc9c0\ud615_\ub808\uc774\uc5b4", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/files_surface.md", "source_location": "L77", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_db_\ud30c\uc77c_\uc9c0\ud45c\uba74\ubd84\uc11d_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_input_files_status_\uac12", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/files_surface.md", "source_location": "L89", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_db_\ud30c\uc77c_\uc9c0\ud45c\uba74\ubd84\uc11d_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_surface_models_status_processed_point_cloud_status_\uac12", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/files_surface.md", "source_location": "L92", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_b04_wf1_surface_b04_db_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/files_surface.md", "source_location": "L95", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_dependencies_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/files_surface.md", "source_location": "L95", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/36e9c3aa280793956998877458fc2ac0767eeec0172efa0542cb863877908fcb.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/36e9c3aa280793956998877458fc2ac0767eeec0172efa0542cb863877908fcb.json deleted file mode 100644 index d5f979f1..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/36e9c3aa280793956998877458fc2ac0767eeec0172efa0542cb863877908fcb.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_db_md", "label": "B05_db.md", "file_type": "document", "source_file": "pages/B05_wf2_Route/B05_db.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_db_b05_wf2_route_db_\uc0ac\uc6a9_\uad00\uacc4", "label": "B05_wf2_Route \u2014 DB \uc0ac\uc6a9 \uad00\uacc4", "file_type": "document", "source_file": "pages/B05_wf2_Route/B05_db.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_db_repository_\ud568\uc218", "label": "Repository \ud568\uc218", "file_type": "document", "source_file": "pages/B05_wf2_Route/B05_db.md", "source_location": "L20"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_db_\uc800\uc7a5_\uacbd\ub85c", "label": "\uc800\uc7a5 \uacbd\ub85c", "file_type": "document", "source_file": "pages/B05_wf2_Route/B05_db.md", "source_location": "L30"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_wf2_route_b05_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_db.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_wf2_route_b05_api_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_db.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_db_b05_wf2_route_db_\uc0ac\uc6a9_\uad00\uacc4", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_db.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_db_schema_route_profile_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_db.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_db_b05_wf2_route_db_\uc0ac\uc6a9_\uad00\uacc4", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_db_repository_\ud568\uc218", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_db.md", "source_location": "L20", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_db_b05_wf2_route_db_\uc0ac\uc6a9_\uad00\uacc4", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_db_\uc800\uc7a5_\uacbd\ub85c", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_db.md", "source_location": "L30", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_storage_paths_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_db.md", "source_location": "L36", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/37aa0d07aa6c480aa555897c7a3b552f3c4918332701b292c8140bd177fae0f3.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/37aa0d07aa6c480aa555897c7a3b552f3c4918332701b292c8140bd177fae0f3.json deleted file mode 100644 index b8b57b8e..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/37aa0d07aa6c480aa555897c7a3b552f3c4918332701b292c8140bd177fae0f3.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_frontend_md", "label": "B06_frontend.md", "file_type": "document", "source_file": "pages/B06_wf3_ProfileCross/B06_frontend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_frontend_b06_wf3_profilecross_frontend", "label": "B06_wf3_ProfileCross \u2014 Frontend", "file_type": "document", "source_file": "pages/B06_wf3_ProfileCross/B06_frontend.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_frontend_\ud654\uba74_workflow", "label": "\ud654\uba74\u00b7workflow", "file_type": "document", "source_file": "pages/B06_wf3_ProfileCross/B06_frontend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8", "label": "API \ud074\ub77c\uc774\uc5b8\ud2b8", "file_type": "document", "source_file": "pages/B06_wf3_ProfileCross/B06_frontend.md", "source_location": "L21"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_frontend_\uc785\ub825_\uc635\uc158", "label": "\uc785\ub825 \uc635\uc158", "file_type": "document", "source_file": "pages/B06_wf3_ProfileCross/B06_frontend.md", "source_location": "L30"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_wf3_profilecross_b06_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_frontend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_wf3_profilecross_b06_api_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_frontend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_wf3_profilecross_b06_db_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_frontend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_frontend_b06_wf3_profilecross_frontend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_frontend.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_frontend_b06_wf3_profilecross_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_frontend_\ud654\uba74_workflow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_frontend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_frontend_b06_wf3_profilecross_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_frontend.md", "source_location": "L21", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_frontend_b06_wf3_profilecross_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_frontend_\uc785\ub825_\uc635\uc158", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_frontend.md", "source_location": "L30", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/3db683a2cde7e94a133978113563de2a3fd70d54fdde9b2002e15145901824c1.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/3db683a2cde7e94a133978113563de2a3fd70d54fdde9b2002e15145901824c1.json deleted file mode 100644 index aaae741f..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/3db683a2cde7e94a133978113563de2a3fd70d54fdde9b2002e15145901824c1.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_md", "label": "A09_frontend.md", "file_type": "document", "source_file": "pages/A09_Security/A09_frontend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_a09_security_frontend", "label": "A09_Security \u2014 Frontend", "file_type": "document", "source_file": "pages/A09_Security/A09_frontend.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_\ud30c\uc77c_\uad6c\uc870", "label": "\ud30c\uc77c \uad6c\uc870", "file_type": "document", "source_file": "pages/A09_Security/A09_frontend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", "label": "\ucef4\ud3ec\ub10c\ud2b8 / \ud568\uc218", "file_type": "document", "source_file": "pages/A09_Security/A09_frontend.md", "source_location": "L25"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_\uc57d\uad00_\ub370\uc774\ud130_a09_security_terms_ts", "label": "\uc57d\uad00 \ub370\uc774\ud130 (A09_Security_Terms.ts)", "file_type": "document", "source_file": "pages/A09_Security/A09_frontend.md", "source_location": "L31"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8_\ud568\uc218_\ubbf8\uc0ac\uc6a9_\uc815\uc758\ub9cc", "label": "API \ud074\ub77c\uc774\uc5b8\ud2b8 \ud568\uc218 (\u26a0\ufe0f \ubbf8\uc0ac\uc6a9, \uc815\uc758\ub9cc)", "file_type": "document", "source_file": "pages/A09_Security/A09_frontend.md", "source_location": "L40"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "label": "\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "file_type": "document", "source_file": "pages/A09_Security/A09_frontend.md", "source_location": "L53"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_\uc2a4\ud0c0\uc77c_css", "label": "\uc2a4\ud0c0\uc77c (CSS)", "file_type": "document", "source_file": "pages/A09_Security/A09_frontend.md", "source_location": "L64"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_\uc57d\uad00_\ud14d\uc2a4\ud2b8\uc640_\uc2e4_\ucf54\ub4dc_\ubd88\uc77c\uce58", "label": "\u26a0\ufe0f \uc57d\uad00 \ud14d\uc2a4\ud2b8\uc640 \uc2e4 \ucf54\ub4dc \ubd88\uc77c\uce58", "file_type": "document", "source_file": "pages/A09_Security/A09_frontend.md", "source_location": "L69"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_\uc758\uc874\uc131", "label": "\uc758\uc874\uc131", "file_type": "document", "source_file": "pages/A09_Security/A09_frontend.md", "source_location": "L75"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_security_a09_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a06_login_a06_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_auth_rbac_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_a09_security_frontend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_frontend.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_a09_security_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_\ud30c\uc77c_\uad6c\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_frontend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_a09_security_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_frontend.md", "source_location": "L25", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_a09_security_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_\uc57d\uad00_\ub370\uc774\ud130_a09_security_terms_ts", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_frontend.md", "source_location": "L31", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_a09_security_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8_\ud568\uc218_\ubbf8\uc0ac\uc6a9_\uc815\uc758\ub9cc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_frontend.md", "source_location": "L40", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_a09_security_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_frontend.md", "source_location": "L53", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_ui_templates_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_frontend.md", "source_location": "L55", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_a09_security_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_\uc2a4\ud0c0\uc77c_css", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_frontend.md", "source_location": "L64", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_a09_security_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_\uc57d\uad00_\ud14d\uc2a4\ud2b8\uc640_\uc2e4_\ucf54\ub4dc_\ubd88\uc77c\uce58", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_frontend.md", "source_location": "L69", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a06_login_a06_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_frontend.md", "source_location": "L72", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_a09_security_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_frontend_\uc758\uc874\uc131", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_frontend.md", "source_location": "L75", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/430bcc25e31726266357a8339dcac795f30c714099326f504dcf44364ffdfd63.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/430bcc25e31726266357a8339dcac795f30c714099326f504dcf44364ffdfd63.json deleted file mode 100644 index 036a7343..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/430bcc25e31726266357a8339dcac795f30c714099326f504dcf44364ffdfd63.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_frontend_md", "label": "A02_frontend.md", "file_type": "document", "source_file": "pages/A02_ProgDetail/A02_frontend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_frontend_a02_progdetail_frontend", "label": "A02_ProgDetail \u2014 Frontend", "file_type": "document", "source_file": "pages/A02_ProgDetail/A02_frontend.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_frontend_\uad6c\uc870", "label": "\uad6c\uc870", "file_type": "document", "source_file": "pages/A02_ProgDetail/A02_frontend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ubd84\uc11d", "label": "\ucef4\ud3ec\ub10c\ud2b8 \ubd84\uc11d", "file_type": "document", "source_file": "pages/A02_ProgDetail/A02_frontend.md", "source_location": "L16"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_frontend_\uc81c\uc57d_\uc900\uc218", "label": "\uc81c\uc57d \uc900\uc218", "file_type": "document", "source_file": "pages/A02_ProgDetail/A02_frontend.md", "source_location": "L24"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_frontend_\uc138\ubd80_\uad6c\ud604", "label": "\uc138\ubd80 \uad6c\ud604", "file_type": "document", "source_file": "pages/A02_ProgDetail/A02_frontend.md", "source_location": "L31"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a01_home_a01_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A02_ProgDetail/A02_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a00_app_shell_framework_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A02_ProgDetail/A02_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_ui_templates_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A02_ProgDetail/A02_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_progdetail_a02_components_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A02_ProgDetail/A02_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_frontend_a02_progdetail_frontend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A02_ProgDetail/A02_frontend.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_frontend_a02_progdetail_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_frontend_\uad6c\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A02_ProgDetail/A02_frontend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_frontend_a02_progdetail_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ubd84\uc11d", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A02_ProgDetail/A02_frontend.md", "source_location": "L16", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_frontend_a02_progdetail_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_frontend_\uc81c\uc57d_\uc900\uc218", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A02_ProgDetail/A02_frontend.md", "source_location": "L24", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_frontend_a02_progdetail_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a02_progdetail_a02_frontend_\uc138\ubd80_\uad6c\ud604", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A02_ProgDetail/A02_frontend.md", "source_location": "L31", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/464194e04c304a155a3445c411403400b6239ad5460dfad3ccdeb03da87f41fb.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/464194e04c304a155a3445c411403400b6239ad5460dfad3ccdeb03da87f41fb.json deleted file mode 100644 index 738dc180..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/464194e04c304a155a3445c411403400b6239ad5460dfad3ccdeb03da87f41fb.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_backend_md", "label": "B06_backend.md", "file_type": "document", "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_backend_b06_wf3_profilecross_backend", "label": "B06_wf3_ProfileCross \u2014 Backend", "file_type": "document", "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_backend_\uc694\uccad_\uc751\ub2f5_\ubaa8\ub378", "label": "\uc694\uccad\u00b7\uc751\ub2f5 \ubaa8\ub378", "file_type": "document", "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_backend_\uc0dd\uc131_\uc5d4\uc9c4", "label": "\uc0dd\uc131 \uc5d4\uc9c4", "file_type": "document", "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", "source_location": "L20"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_backend_\ub77c\uc6b0\ud130_workflow", "label": "\ub77c\uc6b0\ud130\u00b7workflow", "file_type": "document", "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", "source_location": "L31"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_backend_\uc7ac\uc2e4\ud589", "label": "\uc7ac\uc2e4\ud589", "file_type": "document", "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", "source_location": "L39"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_wf3_profilecross_b06_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_wf3_profilecross_b06_api_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_wf3_profilecross_b06_db_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_backend_b06_wf3_profilecross_backend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_backend_b06_wf3_profilecross_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_backend_\uc694\uccad_\uc751\ub2f5_\ubaa8\ub378", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_backend_b06_wf3_profilecross_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_backend_\uc0dd\uc131_\uc5d4\uc9c4", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", "source_location": "L20", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_backend_b06_wf3_profilecross_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_backend_\ub77c\uc6b0\ud130_workflow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", "source_location": "L31", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", "source_location": "L37", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_backend_b06_wf3_profilecross_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_backend_\uc7ac\uc2e4\ud589", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", "source_location": "L39", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/474c775ef5ef23ed26e38b39828a52131bedb7f8a770ad07dc99148df7e87c5b.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/474c775ef5ef23ed26e38b39828a52131bedb7f8a770ad07dc99148df7e87c5b.json deleted file mode 100644 index d1a62ad4..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/474c775ef5ef23ed26e38b39828a52131bedb7f8a770ad07dc99148df7e87c5b.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_md", "label": "B04_backend.md", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_b04_wf1_surface_backend", "label": "B04_wf1_Surface \u2014 Backend", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_\ud30c\uc77c_\uad6c\uc131_\uc624\ucf00\uc2a4\ud2b8\ub808\uc774\ud130_\uc800\uc7a5\uc18c_\ub77c\uc6b0\ud130", "label": "\ud30c\uc77c \uad6c\uc131 (\uc624\ucf00\uc2a4\ud2b8\ub808\uc774\ud130/\uc800\uc7a5\uc18c/\ub77c\uc6b0\ud130)", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_\uc5d4\uc9c4_\uc11c\ube0c\ubaa8\ub4c8", "label": "\uc5d4\uc9c4 \uc11c\ube0c\ubaa8\ub4c8", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L21"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_\uc8fc\uc694_\ud568\uc218_router", "label": "\uc8fc\uc694 \ud568\uc218 (Router)", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L35"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_\uc6cc\ud06c\ud50c\ub85c\uc6b0_\uc0c1\ud0dc_\uc804\uc774", "label": "\uc6cc\ud06c\ud50c\ub85c\uc6b0 \uc0c1\ud0dc \uc804\uc774", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L44"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_\ub808\uac70\uc2dc_\ud3f4\ubc31_416_420\uc904", "label": "\u26a0\ufe0f \ub808\uac70\uc2dc \ud3f4\ubc31 (416,420\uc904)", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L53"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_\ucc45\uc784", "label": "\ucc45\uc784", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L62"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_\uc758\uc874\uc131", "label": "\uc758\uc874\uc131", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L66"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_wf1_surface_b04_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_wf1_surface_b04_api_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_wf1_surface_b04_db_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_wf1_surface_b04_dependencies_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b03_fileinput_b03_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b05_wf2_route_b05_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_b04_wf1_surface_backend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_b04_wf1_surface_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_\ud30c\uc77c_\uad6c\uc131_\uc624\ucf00\uc2a4\ud2b8\ub808\uc774\ud130_\uc800\uc7a5\uc18c_\ub77c\uc6b0\ud130", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_b04_wf1_surface_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_\uc5d4\uc9c4_\uc11c\ube0c\ubaa8\ub4c8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L21", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_b04_wf1_surface_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_\uc8fc\uc694_\ud568\uc218_router", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L35", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_b04_wf1_surface_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_\uc6cc\ud06c\ud50c\ub85c\uc6b0_\uc0c1\ud0dc_\uc804\uc774", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L44", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_workflow_state_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L51", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_b04_wf1_surface_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_\ub808\uac70\uc2dc_\ud3f4\ubc31_416_420\uc904", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L53", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_b04_wf1_surface_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_\ucc45\uc784", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L62", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_b04_wf1_surface_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_\uc758\uc874\uc131", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L66", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_common_util_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_backend.md", "source_location": "L68", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/479a8e4089e3bb7a2cc81032c56fd9af63de315e299c5bfaa734f3dc729d25a1.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/479a8e4089e3bb7a2cc81032c56fd9af63de315e299c5bfaa734f3dc729d25a1.json deleted file mode 100644 index b85aeb9d..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/479a8e4089e3bb7a2cc81032c56fd9af63de315e299c5bfaa734f3dc729d25a1.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_md", "label": "route_profile.md", "file_type": "document", "source_file": "concepts/db_schema/route_profile.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_db_\uacbd\ub85c_\uc885\ud6a1\ub2e8_\ud14c\uc774\ube14", "label": "DB: \uacbd\ub85c/\uc885\ud6a1\ub2e8 \ud14c\uc774\ube14", "file_type": "document", "source_file": "concepts/db_schema/route_profile.md", "source_location": "L9"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_routes_\ub178\uc120_\uacbd\ub85c", "label": "routes (\ub178\uc120 \uacbd\ub85c)", "file_type": "document", "source_file": "concepts/db_schema/route_profile.md", "source_location": "L13"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_route_points_\uacbd\ub85c_\uc88c\ud45c\uc810", "label": "route_points (\uacbd\ub85c \uc88c\ud45c\uc810)", "file_type": "document", "source_file": "concepts/db_schema/route_profile.md", "source_location": "L27"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_route_statistics_\ub178\uc120_\ud1b5\uacc4", "label": "route_statistics (\ub178\uc120 \ud1b5\uacc4)", "file_type": "document", "source_file": "concepts/db_schema/route_profile.md", "source_location": "L36"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_longitudinal_sections_\uc885\ub2e8\uba74_\uc124\uacc4", "label": "longitudinal_sections (\uc885\ub2e8\uba74 \uc124\uacc4)", "file_type": "document", "source_file": "concepts/db_schema/route_profile.md", "source_location": "L45"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_cross_sections_\ud6a1\ub2e8\uba74_\uc124\uacc4", "label": "cross_sections (\ud6a1\ub2e8\uba74 \uc124\uacc4)", "file_type": "document", "source_file": "concepts/db_schema/route_profile.md", "source_location": "L55"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_routes_status_\ud750\ub984", "label": "routes.status \ud750\ub984", "file_type": "document", "source_file": "concepts/db_schema/route_profile.md", "source_location": "L65"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_cross_sections_data_structures", "label": "cross_sections.data.structures", "file_type": "document", "source_file": "concepts/db_schema/route_profile.md", "source_location": "L68"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_b05_wf2_route_b05_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/route_profile.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_b06_wf3_profilecross_b06_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/route_profile.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_db_\uacbd\ub85c_\uc885\ud6a1\ub2e8_\ud14c\uc774\ube14", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/route_profile.md", "source_location": "L9", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/route_profile.md", "source_location": "L11", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_db_\uacbd\ub85c_\uc885\ud6a1\ub2e8_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_routes_\ub178\uc120_\uacbd\ub85c", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/route_profile.md", "source_location": "L13", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_db_\uacbd\ub85c_\uc885\ud6a1\ub2e8_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_route_points_\uacbd\ub85c_\uc88c\ud45c\uc810", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/route_profile.md", "source_location": "L27", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_db_\uacbd\ub85c_\uc885\ud6a1\ub2e8_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_route_statistics_\ub178\uc120_\ud1b5\uacc4", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/route_profile.md", "source_location": "L36", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_db_\uacbd\ub85c_\uc885\ud6a1\ub2e8_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_longitudinal_sections_\uc885\ub2e8\uba74_\uc124\uacc4", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/route_profile.md", "source_location": "L45", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_db_\uacbd\ub85c_\uc885\ud6a1\ub2e8_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_cross_sections_\ud6a1\ub2e8\uba74_\uc124\uacc4", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/route_profile.md", "source_location": "L55", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_db_\uacbd\ub85c_\uc885\ud6a1\ub2e8_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_routes_status_\ud750\ub984", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/route_profile.md", "source_location": "L65", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_db_\uacbd\ub85c_\uc885\ud6a1\ub2e8_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_cross_sections_data_structures", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/route_profile.md", "source_location": "L68", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/route_profile.md", "source_location": "L69", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/49fd7d94d4b60db667d3b09b49911f92d55600a624ab7905ccbc6e3ad42a3352.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/49fd7d94d4b60db667d3b09b49911f92d55600a624ab7905ccbc6e3ad42a3352.json deleted file mode 100644 index ce0ab548..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/49fd7d94d4b60db667d3b09b49911f92d55600a624ab7905ccbc6e3ad42a3352.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_components_md", "label": "A01_components.md", "file_type": "document", "source_file": "pages/A01_Home/A01_components.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_components_a01_home_\uc138\ubd80_\uad6c\ud604", "label": "A01_Home \u2014 \uc138\ubd80 \uad6c\ud604", "file_type": "document", "source_file": "pages/A01_Home/A01_components.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_components_\uc2a4\ud0c0\uc77c", "label": "\uc2a4\ud0c0\uc77c", "file_type": "document", "source_file": "pages/A01_Home/A01_components.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_components_\uc758\uc874\uc131", "label": "\uc758\uc874\uc131", "file_type": "document", "source_file": "pages/A01_Home/A01_components.md", "source_location": "L20"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_components_\ub370\uc774\ud130_\ud750\ub984", "label": "\ub370\uc774\ud130 \ud750\ub984", "file_type": "document", "source_file": "pages/A01_Home/A01_components.md", "source_location": "L27"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_components_\ubbf8\ud574\uacb0", "label": "\ubbf8\ud574\uacb0", "file_type": "document", "source_file": "pages/A01_Home/A01_components.md", "source_location": "L34"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_components_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_home_a01_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A01_Home/A01_components.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_components_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_ui_templates_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A01_Home/A01_components.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_components_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a00_app_shell_framework_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A01_Home/A01_components.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_components_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_components_a01_home_\uc138\ubd80_\uad6c\ud604", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A01_Home/A01_components.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_components_a01_home_\uc138\ubd80_\uad6c\ud604", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_components_\uc2a4\ud0c0\uc77c", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A01_Home/A01_components.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_components_a01_home_\uc138\ubd80_\uad6c\ud604", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_components_\uc758\uc874\uc131", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A01_Home/A01_components.md", "source_location": "L20", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_components_a01_home_\uc138\ubd80_\uad6c\ud604", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_components_\ub370\uc774\ud130_\ud750\ub984", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A01_Home/A01_components.md", "source_location": "L27", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_components_a01_home_\uc138\ubd80_\uad6c\ud604", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_components_\ubbf8\ud574\uacb0", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A01_Home/A01_components.md", "source_location": "L34", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/4a5f18486fb810daf3f1c5b1551536726d973ee824de69be0d36d0a60322cdaa.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/4a5f18486fb810daf3f1c5b1551536726d973ee824de69be0d36d0a60322cdaa.json deleted file mode 100644 index b7734144..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/4a5f18486fb810daf3f1c5b1551536726d973ee824de69be0d36d0a60322cdaa.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_md", "label": "B02_frontend.md", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_b02_projregister_frontend", "label": "B02_ProjRegister \u2014 Frontend", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_\ud30c\uc77c_\uad6c\uc870", "label": "\ud30c\uc77c \uad6c\uc870", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", "label": "\ucef4\ud3ec\ub10c\ud2b8 / \ud568\uc218", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L19"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_\uc785\ub825_\ud544\ub4dc", "label": "\uc785\ub825 \ud544\ub4dc", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L26"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_\uc81c\ucd9c_\ub85c\uc9c1", "label": "\uc81c\ucd9c \ub85c\uc9c1", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L37"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "label": "\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L45"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_\uc2a4\ud0c0\uc77c_css", "label": "\uc2a4\ud0c0\uc77c (CSS)", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L57"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_\uc774\ubca4\ud2b8_\ud578\ub4e4\ub7ec", "label": "\uc774\ubca4\ud2b8 \ud578\ub4e4\ub7ec", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L66"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_\uc758\uc874\uc131", "label": "\uc758\uc874\uc131", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L72"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_\ucc38\uace0", "label": "\ucc38\uace0", "file_type": "document", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L80"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_projregister_b02_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_projregister_b02_db_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_ui_templates_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_a00_app_shell_framework_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_b02_projregister_frontend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_b02_projregister_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_\ud30c\uc77c_\uad6c\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_b02_projregister_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L19", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_b02_projregister_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_\uc785\ub825_\ud544\ub4dc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L26", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_b02_projregister_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_\uc81c\ucd9c_\ub85c\uc9c1", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L37", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_b02_projregister_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L45", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_b02_projregister_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_\uc2a4\ud0c0\uc77c_css", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L57", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_b02_projregister_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_\uc774\ubca4\ud2b8_\ud578\ub4e4\ub7ec", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L66", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_b02_projregister_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_\uc758\uc874\uc131", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L72", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_b02_projregister_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b02_projregister_b02_frontend_\ucc38\uace0", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B02_ProjRegister/B02_frontend.md", "source_location": "L80", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/4b09b67e025ab679214a595ed4288633a2c58d466bff1f2e195d8ad42e74d686.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/4b09b67e025ab679214a595ed4288633a2c58d466bff1f2e195d8ad42e74d686.json deleted file mode 100644 index 53c6dff1..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/4b09b67e025ab679214a595ed4288633a2c58d466bff1f2e195d8ad42e74d686.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_db_md", "label": "B08_db.md", "file_type": "document", "source_file": "pages/B08_wf5_Quantity/B08_db.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_db_b08_wf5_quantity_db", "label": "B08_wf5_Quantity \u2014 DB", "file_type": "document", "source_file": "pages/B08_wf5_Quantity/B08_db.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_db_\uad6c\ud604_\ub300\uae30_\ud56d\ubaa9", "label": "\uad6c\ud604 \ub300\uae30 \ud56d\ubaa9", "file_type": "document", "source_file": "pages/B08_wf5_Quantity/B08_db.md", "source_location": "L19"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_wf5_quantity_b08_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B08_wf5_Quantity/B08_db.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_db_b08_wf5_quantity_db", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B08_wf5_Quantity/B08_db.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_db_schema_structure_output_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B08_wf5_Quantity/B08_db.md", "source_location": "L16", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_db_schema_overview_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B08_wf5_Quantity/B08_db.md", "source_location": "L17", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_db_b08_wf5_quantity_db", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_db_\uad6c\ud604_\ub300\uae30_\ud56d\ubaa9", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B08_wf5_Quantity/B08_db.md", "source_location": "L19", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_storage_paths_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B08_wf5_Quantity/B08_db.md", "source_location": "L29", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/4df26e4d9121bc917f5542182c4d4b90fe7405d00db5ca205080ab8b2fcba450.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/4df26e4d9121bc917f5542182c4d4b90fe7405d00db5ca205080ab8b2fcba450.json deleted file mode 100644 index 376bdb75..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/4df26e4d9121bc917f5542182c4d4b90fe7405d00db5ca205080ab8b2fcba450.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "label": "index.md", "file_type": "document", "source_file": "index.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_wiki_index", "label": "Wiki Index", "file_type": "document", "source_file": "index.md", "source_location": "L6"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\ud6c4_\uc6cc\ud06c\ud50c\ub85c\uc6b0_b01_b09", "label": "\ud398\uc774\uc9c0 \u2014 \ub85c\uadf8\uc778 \ud6c4 \uc6cc\ud06c\ud50c\ub85c\uc6b0 (B01~B09)", "file_type": "document", "source_file": "index.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_b01_dashboard_b01_backend_b01_dashboard", "label": "[[B01_Dashboard/B01_backend|B01_Dashboard]]", "file_type": "document", "source_file": "index.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_b02_projregister_b02_backend_b02_projregister", "label": "[[B02_ProjRegister/B02_backend|B02_ProjRegister]]", "file_type": "document", "source_file": "index.md", "source_location": "L15"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_b03_fileinput_b03_backend_b03_fileinput", "label": "[[B03_FileInput/B03_backend|B03_FileInput]]", "file_type": "document", "source_file": "index.md", "source_location": "L18"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_b04_wf1_surface_b04_backend_b04_wf1_surface", "label": "[[B04_wf1_Surface/B04_backend|B04_wf1_Surface]]", "file_type": "document", "source_file": "index.md", "source_location": "L21"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_b05_wf2_route_b05_backend_b05_wf2_route", "label": "[[B05_wf2_Route/B05_backend|B05_wf2_Route]]", "file_type": "document", "source_file": "index.md", "source_location": "L24"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_b06_wf3_profilecross_b06_backend_b06_wf3_profilecross", "label": "[[B06_wf3_ProfileCross/B06_backend|B06_wf3_ProfileCross]]", "file_type": "document", "source_file": "index.md", "source_location": "L27"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_b07_wf4_designdetail_b07_frontend_b07_wf4_designdetail", "label": "[[B07_wf4_DesignDetail/B07_frontend|B07_wf4_DesignDetail]]", "file_type": "document", "source_file": "index.md", "source_location": "L30"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_b08_wf5_quantity_b08_frontend_b08_wf5_quantity", "label": "[[B08_wf5_Quantity/B08_frontend|B08_wf5_Quantity]]", "file_type": "document", "source_file": "index.md", "source_location": "L33"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_b09_wf6_estimation_b09_frontend_b09_wf6_estimation", "label": "[[B09_wf6_Estimation/B09_frontend|B09_wf6_Estimation]]", "file_type": "document", "source_file": "index.md", "source_location": "L36"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\uc804_a01_a09", "label": "\ud398\uc774\uc9c0 \u2014 \ub85c\uadf8\uc778 \uc804 (A01~A09)", "file_type": "document", "source_file": "index.md", "source_location": "L39"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_a01_home_a01_frontend_a01_home", "label": "[[A01_Home/A01_frontend|A01_Home]]", "file_type": "document", "source_file": "index.md", "source_location": "L41"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_a02_progdetail_a02_frontend_a02_progdetail", "label": "[[A02_ProgDetail/A02_frontend|A02_ProgDetail]]", "file_type": "document", "source_file": "index.md", "source_location": "L44"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_a03_compdetail_a03_frontend_a03_compdetail", "label": "[[A03_CompDetail/A03_frontend|A03_CompDetail]]", "file_type": "document", "source_file": "index.md", "source_location": "L47"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_a04_newshistory_a04_frontend_a04_newshistory", "label": "[[A04_NewsHistory/A04_frontend|A04_NewsHistory]]", "file_type": "document", "source_file": "index.md", "source_location": "L50"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_a05_edudetail_a05_frontend_a05_edudetail", "label": "[[A05_EduDetail/A05_frontend|A05_EduDetail]]", "file_type": "document", "source_file": "index.md", "source_location": "L53"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_a06_login_a06_backend_a06_login", "label": "[[A06_Login/A06_backend|A06_Login]]", "file_type": "document", "source_file": "index.md", "source_location": "L56"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_a07_register_a07_backend_a07_register", "label": "[[A07_Register/A07_backend|A07_Register]]", "file_type": "document", "source_file": "index.md", "source_location": "L59"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_a08_support_a08_backend_a08_support", "label": "[[A08_Support/A08_backend|A08_Support]]", "file_type": "document", "source_file": "index.md", "source_location": "L62"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_a09_security_a09_backend_a09_security", "label": "[[A09_Security/A09_backend|A09_Security]]", "file_type": "document", "source_file": "index.md", "source_location": "L65"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\uac1c\ub150_concepts", "label": "\uac1c\ub150 (Concepts)", "file_type": "document", "source_file": "index.md", "source_location": "L68"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_a00_app_shell_framework", "label": "[[a00_app_shell_framework]]", "file_type": "document", "source_file": "index.md", "source_location": "L70"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_a00_app_shell_framework_scaffold", "label": "[[a00_app_shell_framework_scaffold]]", "file_type": "document", "source_file": "index.md", "source_location": "L73"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_ui_templates", "label": "[[ui_templates]]", "file_type": "document", "source_file": "index.md", "source_location": "L76"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_db_\uc2a4\ud0a4\ub9c8", "label": "DB \uc2a4\ud0a4\ub9c8", "file_type": "document", "source_file": "index.md", "source_location": "L79"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_auth_rbac", "label": "[[auth_rbac]]", "file_type": "document", "source_file": "index.md", "source_location": "L89"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_storage_paths", "label": "[[storage_paths]]", "file_type": "document", "source_file": "index.md", "source_location": "L92"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_common_util", "label": "[[common_util]]", "file_type": "document", "source_file": "index.md", "source_location": "L95"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_api_\uacf5\ud1b5_\uc5ec\ub7ec_\ud398\uc774\uc9c0\uac00_\uacf5\uc720\ud558\ub294_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", "label": "API \uacf5\ud1b5 (\uc5ec\ub7ec \ud398\uc774\uc9c0\uac00 \uacf5\uc720\ud558\ub294 \uc5d4\ub4dc\ud3ec\uc778\ud2b8)", "file_type": "document", "source_file": "index.md", "source_location": "L98"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\uc758\uc874\uc131_\uc5ec\ub7ec_\ud398\uc774\uc9c0\uac00_\uacf5\uc720\ud558\ub294_\uc678\ubd80_\ub77c\uc774\ube0c\ub7ec\ub9ac", "label": "\uc758\uc874\uc131 (\uc5ec\ub7ec \ud398\uc774\uc9c0\uac00 \uacf5\uc720\ud558\ub294 \uc678\ubd80 \ub77c\uc774\ube0c\ub7ec\ub9ac)", "file_type": "document", "source_file": "index.md", "source_location": "L101"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\uacf5\ud1b5_\uc2a4\ud0a4\ub9c8_pydantic_\uc694\uccad_\uc751\ub2f5_\ubaa8\ub378", "label": "\uacf5\ud1b5 \uc2a4\ud0a4\ub9c8 (Pydantic \uc694\uccad/\uc751\ub2f5 \ubaa8\ub378)", "file_type": "document", "source_file": "index.md", "source_location": "L104"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_workflow_\uc0c1\ud0dc_\uad00\ub9ac", "label": "Workflow \uc0c1\ud0dc \uad00\ub9ac", "file_type": "document", "source_file": "index.md", "source_location": "L107"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ubbf8\ud574\uacb0_\ud56d\ubaa9", "label": "\u26a0\ufe0f \ubbf8\ud574\uacb0 \ud56d\ubaa9", "file_type": "document", "source_file": "index.md", "source_location": "L110"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_a\uadf8\ub8f9_\uc778\uc81c\uc2a4\ud2b8_\uc774\uc288", "label": "A\uadf8\ub8f9 \uc778\uc81c\uc2a4\ud2b8 \uc774\uc288", "file_type": "document", "source_file": "index.md", "source_location": "L116"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_wiki_index", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L6", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_wiki_index", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\ud6c4_\uc6cc\ud06c\ud50c\ub85c\uc6b0_b01_b09", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_b01_dashboard_b01_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\ud6c4_\uc6cc\ud06c\ud50c\ub85c\uc6b0_b01_b09", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_b01_dashboard_b01_backend_b01_dashboard", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_b02_projregister_b02_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L15", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\ud6c4_\uc6cc\ud06c\ud50c\ub85c\uc6b0_b01_b09", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_b02_projregister_b02_backend_b02_projregister", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L15", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_b03_fileinput_b03_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L18", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\ud6c4_\uc6cc\ud06c\ud50c\ub85c\uc6b0_b01_b09", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_b03_fileinput_b03_backend_b03_fileinput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L18", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_b04_wf1_surface_b04_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L21", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\ud6c4_\uc6cc\ud06c\ud50c\ub85c\uc6b0_b01_b09", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_b04_wf1_surface_b04_backend_b04_wf1_surface", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L21", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_b05_wf2_route_b05_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L24", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\ud6c4_\uc6cc\ud06c\ud50c\ub85c\uc6b0_b01_b09", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_b05_wf2_route_b05_backend_b05_wf2_route", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L24", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_b06_wf3_profilecross_b06_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L27", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\ud6c4_\uc6cc\ud06c\ud50c\ub85c\uc6b0_b01_b09", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_b06_wf3_profilecross_b06_backend_b06_wf3_profilecross", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L27", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_b07_wf4_designdetail_b07_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L30", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\ud6c4_\uc6cc\ud06c\ud50c\ub85c\uc6b0_b01_b09", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_b07_wf4_designdetail_b07_frontend_b07_wf4_designdetail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L30", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_b08_wf5_quantity_b08_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L33", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\ud6c4_\uc6cc\ud06c\ud50c\ub85c\uc6b0_b01_b09", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_b08_wf5_quantity_b08_frontend_b08_wf5_quantity", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L33", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_b09_wf6_estimation_b09_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L36", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\ud6c4_\uc6cc\ud06c\ud50c\ub85c\uc6b0_b01_b09", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_b09_wf6_estimation_b09_frontend_b09_wf6_estimation", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L36", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_wiki_index", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\uc804_a01_a09", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L39", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_a01_home_a01_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L41", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\uc804_a01_a09", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_a01_home_a01_frontend_a01_home", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L41", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_a02_progdetail_a02_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L44", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\uc804_a01_a09", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_a02_progdetail_a02_frontend_a02_progdetail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L44", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_a03_compdetail_a03_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L47", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\uc804_a01_a09", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_a03_compdetail_a03_frontend_a03_compdetail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L47", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_a04_newshistory_a04_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L50", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\uc804_a01_a09", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_a04_newshistory_a04_frontend_a04_newshistory", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L50", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_a05_edudetail_a05_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L53", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\uc804_a01_a09", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_a05_edudetail_a05_frontend_a05_edudetail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L53", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_a06_login_a06_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L56", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\uc804_a01_a09", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_a06_login_a06_backend_a06_login", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L56", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_a07_register_a07_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L59", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\uc804_a01_a09", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_a07_register_a07_backend_a07_register", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L59", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_a08_support_a08_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L62", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\uc804_a01_a09", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_a08_support_a08_backend_a08_support", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L62", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_a09_security_a09_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L65", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\uc804_a01_a09", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_a09_security_a09_backend_a09_security", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L65", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_wiki_index", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\uac1c\ub150_concepts", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L68", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_a00_app_shell_framework_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L70", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\uac1c\ub150_concepts", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_a00_app_shell_framework", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L70", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_a00_app_shell_framework_scaffold_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L73", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\uac1c\ub150_concepts", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_a00_app_shell_framework_scaffold", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L73", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_ui_templates_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L76", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\uac1c\ub150_concepts", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_ui_templates", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L76", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\uac1c\ub150_concepts", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_db_\uc2a4\ud0a4\ub9c8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L79", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_db_schema_overview_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L80", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_db_schema_users_auth_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L81", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_db_schema_logs_monitoring_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L82", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_db_schema_projects_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L83", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_db_schema_files_surface_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L84", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_db_schema_route_profile_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L85", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_db_schema_structure_output_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L86", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_db_schema_unconfirmed_readme_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L87", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_auth_rbac_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L89", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\uac1c\ub150_concepts", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_auth_rbac", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L89", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_storage_paths_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L92", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\uac1c\ub150_concepts", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_storage_paths", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L92", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_common_util_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L95", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\uac1c\ub150_concepts", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_common_util", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L95", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\uac1c\ub150_concepts", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_api_\uacf5\ud1b5_\uc5ec\ub7ec_\ud398\uc774\uc9c0\uac00_\uacf5\uc720\ud558\ub294_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L98", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_api_common_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L99", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\uac1c\ub150_concepts", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\uc758\uc874\uc131_\uc5ec\ub7ec_\ud398\uc774\uc9c0\uac00_\uacf5\uc720\ud558\ub294_\uc678\ubd80_\ub77c\uc774\ube0c\ub7ec\ub9ac", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L101", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_dependencies_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L102", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\uac1c\ub150_concepts", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\uacf5\ud1b5_\uc2a4\ud0a4\ub9c8_pydantic_\uc694\uccad_\uc751\ub2f5_\ubaa8\ub378", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L104", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_schema_common_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L105", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\uac1c\ub150_concepts", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_workflow_\uc0c1\ud0dc_\uad00\ub9ac", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L107", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_workflow_state_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L108", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_wiki_index", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ubbf8\ud574\uacb0_\ud56d\ubaa9", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L110", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_\ubbf8\ud574\uacb0_\ud56d\ubaa9", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_index_a\uadf8\ub8f9_\uc778\uc81c\uc2a4\ud2b8_\uc774\uc288", "relation": "contains", "confidence": "EXTRACTED", "source_file": "index.md", "source_location": "L116", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/50e6b6bf0066bb5b891dbcf8988ee06ec3918a47e2e33f1bba85cc3d586c424c.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/50e6b6bf0066bb5b891dbcf8988ee06ec3918a47e2e33f1bba85cc3d586c424c.json deleted file mode 100644 index 62ed5feb..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/50e6b6bf0066bb5b891dbcf8988ee06ec3918a47e2e33f1bba85cc3d586c424c.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_md", "label": "A08_frontend.md", "file_type": "document", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_a08_support_frontend", "label": "A08_Support \u2014 Frontend", "file_type": "document", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_\ud30c\uc77c_\uad6c\uc870", "label": "\ud30c\uc77c \uad6c\uc870", "file_type": "document", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", "label": "\ucef4\ud3ec\ub10c\ud2b8 / \ud568\uc218", "file_type": "document", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L19"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_\uc81c\ucd9c_\ub85c\uc9c1", "label": "\uc81c\ucd9c \ub85c\uc9c1", "file_type": "document", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L27"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_\uc138\uc158_\uc790\ub3d9_\ucc44\uc6c0", "label": "\uc138\uc158 \uc790\ub3d9 \ucc44\uc6c0", "file_type": "document", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L34"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "label": "\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "file_type": "document", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L39"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_\uc2a4\ud0c0\uc77c_css", "label": "\uc2a4\ud0c0\uc77c (CSS)", "file_type": "document", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L51"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_\uc774\ubca4\ud2b8_\ud578\ub4e4\ub7ec", "label": "\uc774\ubca4\ud2b8 \ud578\ub4e4\ub7ec", "file_type": "document", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L59"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_\uc758\uc874\uc131", "label": "\uc758\uc874\uc131", "file_type": "document", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L65"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_\ucc38\uace0", "label": "\ucc38\uace0", "file_type": "document", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L73"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_support_a08_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a00_app_shell_framework_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_ui_templates_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_a08_support_frontend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_a08_support_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_\ud30c\uc77c_\uad6c\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_a08_support_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L19", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_a08_support_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_\uc81c\ucd9c_\ub85c\uc9c1", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L27", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_a08_support_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_\uc138\uc158_\uc790\ub3d9_\ucc44\uc6c0", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L34", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a06_login_a06_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L36", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_a08_support_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L39", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_a08_support_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_\uc2a4\ud0c0\uc77c_css", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L51", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_a08_support_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_\uc774\ubca4\ud2b8_\ud578\ub4e4\ub7ec", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L59", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_a08_support_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_\uc758\uc874\uc131", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L65", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_a08_support_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a08_support_a08_frontend_\ucc38\uace0", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A08_Support/A08_frontend.md", "source_location": "L73", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/52811408853b074f152e72eca98203c800db677004bc8ae75c253e28b0464ee1.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/52811408853b074f152e72eca98203c800db677004bc8ae75c253e28b0464ee1.json deleted file mode 100644 index fbf4cea9..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/52811408853b074f152e72eca98203c800db677004bc8ae75c253e28b0464ee1.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_md", "label": "overview.md", "file_type": "document", "source_file": "concepts/db_schema/overview.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_db_\uc2a4\ud0a4\ub9c8_\uac1c\uc694", "label": "DB \uc2a4\ud0a4\ub9c8 \uac1c\uc694", "file_type": "document", "source_file": "concepts/db_schema/overview.md", "source_location": "L9"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_\ud14c\uc774\ube14_\uadf8\ub8f9_9\uac1c", "label": "\ud14c\uc774\ube14 \uadf8\ub8f9 (9\uac1c)", "file_type": "document", "source_file": "concepts/db_schema/overview.md", "source_location": "L22"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_\ud30c\uc77c_\uacbd\ub85c_\ucd94\uc801_\uceec\ub7fc_db\uc5d0_\uacbd\ub85c\ub9cc_\uae30\ub85d_\uc2e4_\ud30c\uc77c\uc740_\ud30c\uc77c\uc2dc\uc2a4\ud15c", "label": "\ud30c\uc77c \uacbd\ub85c \ucd94\uc801 \uceec\ub7fc (DB\uc5d0 \uacbd\ub85c\ub9cc \uae30\ub85d, \uc2e4 \ud30c\uc77c\uc740 \ud30c\uc77c\uc2dc\uc2a4\ud15c)", "file_type": "document", "source_file": "concepts/db_schema/overview.md", "source_location": "L34"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_\uc124\uacc4_\uc6d0\uce59", "label": "\uc124\uacc4 \uc6d0\uce59", "file_type": "document", "source_file": "concepts/db_schema/overview.md", "source_location": "L51"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_\ud14c\uc774\ube14_\uad00\uacc4_\ud575\uc2ec_\ud750\ub984", "label": "\ud14c\uc774\ube14 \uad00\uacc4 (\ud575\uc2ec \ud750\ub984)", "file_type": "document", "source_file": "concepts/db_schema/overview.md", "source_location": "L56"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_db_\uc2a4\ud0a4\ub9c8_\uac1c\uc694", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/overview.md", "source_location": "L9", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/overview.md", "source_location": "L16", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/overview.md", "source_location": "L17", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_unconfirmed_readme_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/overview.md", "source_location": "L20", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_db_\uc2a4\ud0a4\ub9c8_\uac1c\uc694", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_\ud14c\uc774\ube14_\uadf8\ub8f9_9\uac1c", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/overview.md", "source_location": "L22", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/overview.md", "source_location": "L26", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_projects_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/overview.md", "source_location": "L28", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_files_surface_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/overview.md", "source_location": "L29", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_route_profile_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/overview.md", "source_location": "L30", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/overview.md", "source_location": "L31", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_db_\uc2a4\ud0a4\ub9c8_\uac1c\uc694", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_\ud30c\uc77c_\uacbd\ub85c_\ucd94\uc801_\uceec\ub7fc_db\uc5d0_\uacbd\ub85c\ub9cc_\uae30\ub85d_\uc2e4_\ud30c\uc77c\uc740_\ud30c\uc77c\uc2dc\uc2a4\ud15c", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/overview.md", "source_location": "L34", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_storage_paths_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/overview.md", "source_location": "L49", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_db_\uc2a4\ud0a4\ub9c8_\uac1c\uc694", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_\uc124\uacc4_\uc6d0\uce59", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/overview.md", "source_location": "L51", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_db_\uc2a4\ud0a4\ub9c8_\uac1c\uc694", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_\ud14c\uc774\ube14_\uad00\uacc4_\ud575\uc2ec_\ud750\ub984", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/overview.md", "source_location": "L56", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/54d5ac3300a973b62932c4e49e96e3aefea664dc1af074865d994a02ceea83e7.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/54d5ac3300a973b62932c4e49e96e3aefea664dc1af074865d994a02ceea83e7.json deleted file mode 100644 index 9237eb1b..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/54d5ac3300a973b62932c4e49e96e3aefea664dc1af074865d994a02ceea83e7.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_api_md", "label": "B06_api.md", "file_type": "document", "source_file": "pages/B06_wf3_ProfileCross/B06_api.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_api_b06_wf3_profilecross_api", "label": "B06_wf3_ProfileCross \u2014 API", "file_type": "document", "source_file": "pages/B06_wf3_ProfileCross/B06_api.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_api_\uc0dd\uc131_\uc751\ub2f5", "label": "\uc0dd\uc131 \uc751\ub2f5", "file_type": "document", "source_file": "pages/B06_wf3_ProfileCross/B06_api.md", "source_location": "L20"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_wf3_profilecross_b06_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_api.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_wf3_profilecross_b06_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_api.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_wf3_profilecross_b06_db_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_api.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_api_b06_wf3_profilecross_api", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_api.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_api.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_api_common_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_api.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_api_b06_wf3_profilecross_api", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b06_wf3_profilecross_b06_api_\uc0dd\uc131_\uc751\ub2f5", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B06_wf3_ProfileCross/B06_api.md", "source_location": "L20", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/5fec6364bd060aef3f2afe819bea5354565d898bbb2169efed8ae55d8aba79cc.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/5fec6364bd060aef3f2afe819bea5354565d898bbb2169efed8ae55d8aba79cc.json deleted file mode 100644 index 8c3d2290..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/5fec6364bd060aef3f2afe819bea5354565d898bbb2169efed8ae55d8aba79cc.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_md", "label": "A01_frontend.md", "file_type": "document", "source_file": "pages/A01_Home/A01_frontend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_a01_home_frontend", "label": "A01_Home \u2014 Frontend", "file_type": "document", "source_file": "pages/A01_Home/A01_frontend.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_\ud30c\uc77c_\uad6c\uc870", "label": "\ud30c\uc77c \uad6c\uc870", "file_type": "document", "source_file": "pages/A01_Home/A01_frontend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_\ucef4\ud3ec\ub10c\ud2b8", "label": "\ucef4\ud3ec\ub10c\ud2b8", "file_type": "document", "source_file": "pages/A01_Home/A01_frontend.md", "source_location": "L19"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_hero_\uc139\uc158", "label": "Hero \uc139\uc158", "file_type": "document", "source_file": "pages/A01_Home/A01_frontend.md", "source_location": "L21"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_\ucd5c\uc2e0_\uc18c\uc2dd_\uc139\uc158", "label": "\ucd5c\uc2e0 \uc18c\uc2dd \uc139\uc158", "file_type": "document", "source_file": "pages/A01_Home/A01_frontend.md", "source_location": "L26"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_\uc8fc\uc694_\uae30\ub2a5_\uc139\uc158", "label": "\uc8fc\uc694 \uae30\ub2a5 \uc139\uc158", "file_type": "document", "source_file": "pages/A01_Home/A01_frontend.md", "source_location": "L31"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_\uc774\ubca4\ud2b8_\ud578\ub4e4\ub7ec", "label": "\uc774\ubca4\ud2b8 \ud578\ub4e4\ub7ec", "file_type": "document", "source_file": "pages/A01_Home/A01_frontend.md", "source_location": "L36"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "label": "\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "file_type": "document", "source_file": "pages/A01_Home/A01_frontend.md", "source_location": "L43"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_\uc138\ubd80_\uad6c\ud604", "label": "\uc138\ubd80 \uad6c\ud604", "file_type": "document", "source_file": "pages/A01_Home/A01_frontend.md", "source_location": "L58"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a02_progdetail_a02_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A01_Home/A01_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a04_newshistory_a04_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A01_Home/A01_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a00_app_shell_framework_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A01_Home/A01_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_ui_templates_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A01_Home/A01_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_a01_home_frontend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A01_Home/A01_frontend.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_a01_home_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_\ud30c\uc77c_\uad6c\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A01_Home/A01_frontend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_a01_home_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_\ucef4\ud3ec\ub10c\ud2b8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A01_Home/A01_frontend.md", "source_location": "L19", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_\ucef4\ud3ec\ub10c\ud2b8", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_hero_\uc139\uc158", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A01_Home/A01_frontend.md", "source_location": "L21", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_\ucef4\ud3ec\ub10c\ud2b8", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_\ucd5c\uc2e0_\uc18c\uc2dd_\uc139\uc158", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A01_Home/A01_frontend.md", "source_location": "L26", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_\ucef4\ud3ec\ub10c\ud2b8", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_\uc8fc\uc694_\uae30\ub2a5_\uc139\uc158", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A01_Home/A01_frontend.md", "source_location": "L31", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_a01_home_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_\uc774\ubca4\ud2b8_\ud578\ub4e4\ub7ec", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A01_Home/A01_frontend.md", "source_location": "L36", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_a01_home_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A01_Home/A01_frontend.md", "source_location": "L43", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_a01_home_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_\uc138\ubd80_\uad6c\ud604", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A01_Home/A01_frontend.md", "source_location": "L58", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a01_home_a01_home_a01_components_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A01_Home/A01_frontend.md", "source_location": "L60", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/645ae1caf18f1055571c195d5af0488bcb975554ef4227b5d294117aa14d35bc.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/645ae1caf18f1055571c195d5af0488bcb975554ef4227b5d294117aa14d35bc.json deleted file mode 100644 index 75ade423..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/645ae1caf18f1055571c195d5af0488bcb975554ef4227b5d294117aa14d35bc.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_projects_md", "label": "projects.md", "file_type": "document", "source_file": "concepts/db_schema/projects.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_projects_db_\ud504\ub85c\uc81d\ud2b8_\uad00\ub9ac_\ud14c\uc774\ube14", "label": "DB: \ud504\ub85c\uc81d\ud2b8 \uad00\ub9ac \ud14c\uc774\ube14", "file_type": "document", "source_file": "concepts/db_schema/projects.md", "source_location": "L9"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_projects_projects_\ud504\ub85c\uc81d\ud2b8", "label": "projects (\ud504\ub85c\uc81d\ud2b8)", "file_type": "document", "source_file": "concepts/db_schema/projects.md", "source_location": "L13"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_projects_project_versions_\ud504\ub85c\uc81d\ud2b8_\ubc84\uc804_\uc2a4\ub0c5\uc0f7", "label": "project_versions (\ud504\ub85c\uc81d\ud2b8 \ubc84\uc804 \uc2a4\ub0c5\uc0f7)", "file_type": "document", "source_file": "concepts/db_schema/projects.md", "source_location": "L30"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_projects_project_automations_\ud504\ub85c\uc81d\ud2b8_\uc790\ub3d9\ud654_\uc815\ucc45", "label": "project_automations (\ud504\ub85c\uc81d\ud2b8 \uc790\ub3d9\ud654 \uc815\ucc45)", "file_type": "document", "source_file": "concepts/db_schema/projects.md", "source_location": "L40"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_projects_project_workflow_stages_\ub2e8\uacc4\ubcc4_\uc0c1\uc138_\uc0c1\ud0dc", "label": "project_workflow_stages (\ub2e8\uacc4\ubcc4 \uc0c1\uc138 \uc0c1\ud0dc)", "file_type": "document", "source_file": "concepts/db_schema/projects.md", "source_location": "L54"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_projects_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_b01_dashboard_b01_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/projects.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_projects_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_b02_projregister_b02_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/projects.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_projects_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_projects_db_\ud504\ub85c\uc81d\ud2b8_\uad00\ub9ac_\ud14c\uc774\ube14", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/projects.md", "source_location": "L9", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_projects_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/projects.md", "source_location": "L11", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_projects_db_\ud504\ub85c\uc81d\ud2b8_\uad00\ub9ac_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_projects_projects_\ud504\ub85c\uc81d\ud2b8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/projects.md", "source_location": "L13", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_projects_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_storage_paths_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/projects.md", "source_location": "L25", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_projects_db_\ud504\ub85c\uc81d\ud2b8_\uad00\ub9ac_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_projects_project_versions_\ud504\ub85c\uc81d\ud2b8_\ubc84\uc804_\uc2a4\ub0c5\uc0f7", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/projects.md", "source_location": "L30", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_projects_db_\ud504\ub85c\uc81d\ud2b8_\uad00\ub9ac_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_projects_project_automations_\ud504\ub85c\uc81d\ud2b8_\uc790\ub3d9\ud654_\uc815\ucc45", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/projects.md", "source_location": "L40", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_projects_db_\ud504\ub85c\uc81d\ud2b8_\uad00\ub9ac_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_projects_project_workflow_stages_\ub2e8\uacc4\ubcc4_\uc0c1\uc138_\uc0c1\ud0dc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/projects.md", "source_location": "L54", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_projects_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_workflow_state_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/projects.md", "source_location": "L56", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/646d6ab79be622a7ff0a6e70be8cff4eba1d7a96287360cb7c92afbf09ce3094.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/646d6ab79be622a7ff0a6e70be8cff4eba1d7a96287360cb7c92afbf09ce3094.json deleted file mode 100644 index ed1d5718..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/646d6ab79be622a7ff0a6e70be8cff4eba1d7a96287360cb7c92afbf09ce3094.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_backend_md", "label": "B01_backend.md", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_backend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_backend_b01_dashboard_backend", "label": "B01_Dashboard \u2014 Backend", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_backend.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_backend_\ub77c\uc6b0\ud130_\uad8c\ud55c_\ud5ec\ud37c", "label": "\ub77c\uc6b0\ud130 \uad8c\ud55c \ud5ec\ud37c", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_backend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_backend_\uc800\uc7a5\uc18c_\ud568\uc218", "label": "\uc800\uc7a5\uc18c \ud568\uc218", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_backend.md", "source_location": "L24"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_backend_\uc694\uccad_\uc2a4\ud0a4\ub9c8", "label": "\uc694\uccad \uc2a4\ud0a4\ub9c8", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_backend.md", "source_location": "L44"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_backend_\uae30\uc220\ubd80\ucc44", "label": "\uae30\uc220\ubd80\ucc44", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_backend.md", "source_location": "L54"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dashboard_b01_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_backend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dashboard_b01_api_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_backend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dashboard_b01_db_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_backend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_backend_b01_dashboard_backend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_backend.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_backend_b01_dashboard_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_backend_\ub77c\uc6b0\ud130_\uad8c\ud55c_\ud5ec\ud37c", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_backend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_backend.md", "source_location": "L22", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_backend_b01_dashboard_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_backend_\uc800\uc7a5\uc18c_\ud568\uc218", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_backend.md", "source_location": "L24", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_backend_b01_dashboard_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_backend_\uc694\uccad_\uc2a4\ud0a4\ub9c8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_backend.md", "source_location": "L44", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_backend_b01_dashboard_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_backend_\uae30\uc220\ubd80\ucc44", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_backend.md", "source_location": "L54", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/671505750d39bdfee5448654c63c865bd82059e3dd905065e164202716f19204.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/671505750d39bdfee5448654c63c865bd82059e3dd905065e164202716f19204.json deleted file mode 100644 index 3d3d9578..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/671505750d39bdfee5448654c63c865bd82059e3dd905065e164202716f19204.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_md", "label": "structure_output.md", "file_type": "document", "source_file": "concepts/db_schema/structure_output.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_db_\uad6c\uc870\ubb3c_\uc218\ub7c9_\uc0b0\ucd9c\ubb3c_\ud14c\uc774\ube14", "label": "DB: \uad6c\uc870\ubb3c/\uc218\ub7c9/\uc0b0\ucd9c\ubb3c \ud14c\uc774\ube14", "file_type": "document", "source_file": "concepts/db_schema/structure_output.md", "source_location": "L9"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_structures_\ubc30\uce58_\uad6c\uc870\ubb3c", "label": "structures (\ubc30\uce58 \uad6c\uc870\ubb3c)", "file_type": "document", "source_file": "concepts/db_schema/structure_output.md", "source_location": "L13"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_quantity_items_\uc218\ub7c9_\uc0b0\ucd9c_\ud56d\ubaa9", "label": "quantity_items (\uc218\ub7c9 \uc0b0\ucd9c \ud56d\ubaa9)", "file_type": "document", "source_file": "concepts/db_schema/structure_output.md", "source_location": "L29"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_outputs_\ucd5c\uc885_\uacac\uc801_\ub3c4\uba74_\uc0b0\ucd9c_\uc138\uc158", "label": "outputs (\ucd5c\uc885 \uacac\uc801/\ub3c4\uba74 \uc0b0\ucd9c \uc138\uc158)", "file_type": "document", "source_file": "concepts/db_schema/structure_output.md", "source_location": "L42"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_output_files_\uac1c\ubcc4_\uc0b0\ucd9c_\ud30c\uc77c_\ub9ac\uc2a4\ud2b8", "label": "output_files (\uac1c\ubcc4 \uc0b0\ucd9c \ud30c\uc77c \ub9ac\uc2a4\ud2b8)", "file_type": "document", "source_file": "concepts/db_schema/structure_output.md", "source_location": "L54"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_quantity_items_\ucd1d\ube44\uc6a9_\uacc4\uc0b0_\uc608", "label": "quantity_items \ucd1d\ube44\uc6a9 \uacc4\uc0b0 \uc608", "file_type": "document", "source_file": "concepts/db_schema/structure_output.md", "source_location": "L65"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_b07_wf4_designdetail_b07_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/structure_output.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_b08_wf5_quantity_b08_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/structure_output.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_b09_wf6_estimation_b09_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/structure_output.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_db_\uad6c\uc870\ubb3c_\uc218\ub7c9_\uc0b0\ucd9c\ubb3c_\ud14c\uc774\ube14", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/structure_output.md", "source_location": "L9", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/structure_output.md", "source_location": "L11", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_db_\uad6c\uc870\ubb3c_\uc218\ub7c9_\uc0b0\ucd9c\ubb3c_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_structures_\ubc30\uce58_\uad6c\uc870\ubb3c", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/structure_output.md", "source_location": "L13", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_db_\uad6c\uc870\ubb3c_\uc218\ub7c9_\uc0b0\ucd9c\ubb3c_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_quantity_items_\uc218\ub7c9_\uc0b0\ucd9c_\ud56d\ubaa9", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/structure_output.md", "source_location": "L29", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_db_\uad6c\uc870\ubb3c_\uc218\ub7c9_\uc0b0\ucd9c\ubb3c_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_outputs_\ucd5c\uc885_\uacac\uc801_\ub3c4\uba74_\uc0b0\ucd9c_\uc138\uc158", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/structure_output.md", "source_location": "L42", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_db_\uad6c\uc870\ubb3c_\uc218\ub7c9_\uc0b0\ucd9c\ubb3c_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_output_files_\uac1c\ubcc4_\uc0b0\ucd9c_\ud30c\uc77c_\ub9ac\uc2a4\ud2b8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/structure_output.md", "source_location": "L54", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_db_\uad6c\uc870\ubb3c_\uc218\ub7c9_\uc0b0\ucd9c\ubb3c_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_structure_output_quantity_items_\ucd1d\ube44\uc6a9_\uacc4\uc0b0_\uc608", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/structure_output.md", "source_location": "L65", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/777dc18c8da82ae19d1ef4696015cf4a4f34c2c07d0b440fe86da472081038b8.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/777dc18c8da82ae19d1ef4696015cf4a4f34c2c07d0b440fe86da472081038b8.json deleted file mode 100644 index 81fe0a9e..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/777dc18c8da82ae19d1ef4696015cf4a4f34c2c07d0b440fe86da472081038b8.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_agents_md", "label": "AGENTS.md", "file_type": "document", "source_file": "AGENTS.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_agents_wiki_\ud3f4\ub354_\uaddc\uce59", "label": "wiki/ \ud3f4\ub354 \uaddc\uce59", "file_type": "document", "source_file": "AGENTS.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_agents_\uad6c\uc870", "label": "\uad6c\uc870", "file_type": "document", "source_file": "AGENTS.md", "source_location": "L5"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_agents_\uc791\uc131_\uaddc\uce59", "label": "\uc791\uc131 \uaddc\uce59", "file_type": "document", "source_file": "AGENTS.md", "source_location": "L11"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_agents_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_agents_wiki_\ud3f4\ub354_\uaddc\uce59", "relation": "contains", "confidence": "EXTRACTED", "source_file": "AGENTS.md", "source_location": "L1", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_agents_wiki_\ud3f4\ub354_\uaddc\uce59", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_agents_\uad6c\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "AGENTS.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_agents_wiki_\ud3f4\ub354_\uaddc\uce59", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_agents_\uc791\uc131_\uaddc\uce59", "relation": "contains", "confidence": "EXTRACTED", "source_file": "AGENTS.md", "source_location": "L11", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_agents_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_\ud398\uc774\uc9c0\uba85_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "AGENTS.md", "source_location": "L14", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/7a20bcee60ba41e229ef85f767421d7179a7ae138805534d5a8f104afc477a40.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/7a20bcee60ba41e229ef85f767421d7179a7ae138805534d5a8f104afc477a40.json deleted file mode 100644 index 2a8bb4a4..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/7a20bcee60ba41e229ef85f767421d7179a7ae138805534d5a8f104afc477a40.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_claude_md", "label": "CLAUDE.md", "file_type": "document", "source_file": "CLAUDE.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_claude_wiki_\ud3f4\ub354_\uaddc\uce59", "label": "wiki/ \ud3f4\ub354 \uaddc\uce59", "file_type": "document", "source_file": "CLAUDE.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_claude_\uad6c\uc870", "label": "\uad6c\uc870", "file_type": "document", "source_file": "CLAUDE.md", "source_location": "L5"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_claude_\uc791\uc131_\uaddc\uce59", "label": "\uc791\uc131 \uaddc\uce59", "file_type": "document", "source_file": "CLAUDE.md", "source_location": "L11"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_claude_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_claude_wiki_\ud3f4\ub354_\uaddc\uce59", "relation": "contains", "confidence": "EXTRACTED", "source_file": "CLAUDE.md", "source_location": "L1", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_claude_wiki_\ud3f4\ub354_\uaddc\uce59", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_claude_\uad6c\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "CLAUDE.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_claude_wiki_\ud3f4\ub354_\uaddc\uce59", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_claude_\uc791\uc131_\uaddc\uce59", "relation": "contains", "confidence": "EXTRACTED", "source_file": "CLAUDE.md", "source_location": "L11", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_claude_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_\ud398\uc774\uc9c0\uba85_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "CLAUDE.md", "source_location": "L14", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/7b7b025371ec01828e5296e1181ed9c5c4381d26906e595e1bf74b413f559880.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/7b7b025371ec01828e5296e1181ed9c5c4381d26906e595e1bf74b413f559880.json deleted file mode 100644 index 4ebb1a16..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/7b7b025371ec01828e5296e1181ed9c5c4381d26906e595e1bf74b413f559880.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_schema_common_md", "label": "schema_common.md", "file_type": "document", "source_file": "concepts/schema_common.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_schema_common_\uacf5\ud1b5_\uc2a4\ud0a4\ub9c8_pydantic_\uc694\uccad_\uc751\ub2f5_\uaddc\uce59", "label": "\uacf5\ud1b5 \uc2a4\ud0a4\ub9c8 (Pydantic \uc694\uccad/\uc751\ub2f5 \uaddc\uce59)", "file_type": "document", "source_file": "concepts/schema_common.md", "source_location": "L9"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_schema_common_\uac80\uc99d_\uc6d0\uce59_backend_md_4\uc808", "label": "\uac80\uc99d \uc6d0\uce59 (backend.md 4\uc808)", "file_type": "document", "source_file": "concepts/schema_common.md", "source_location": "L11"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_schema_common_\uba85\uba85_\uaddc\uce59", "label": "\uba85\uba85 \uaddc\uce59", "file_type": "document", "source_file": "concepts/schema_common.md", "source_location": "L16"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_schema_common_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_schema_common_\uacf5\ud1b5_\uc2a4\ud0a4\ub9c8_pydantic_\uc694\uccad_\uc751\ub2f5_\uaddc\uce59", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/schema_common.md", "source_location": "L9", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_schema_common_\uacf5\ud1b5_\uc2a4\ud0a4\ub9c8_pydantic_\uc694\uccad_\uc751\ub2f5_\uaddc\uce59", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_schema_common_\uac80\uc99d_\uc6d0\uce59_backend_md_4\uc808", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/schema_common.md", "source_location": "L11", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_schema_common_\uacf5\ud1b5_\uc2a4\ud0a4\ub9c8_pydantic_\uc694\uccad_\uc751\ub2f5_\uaddc\uce59", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_schema_common_\uba85\uba85_\uaddc\uce59", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/schema_common.md", "source_location": "L16", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/7fb3857a81e71036c1ce149c4b7245df62a5739b3547ecf4cabbdad69ea26f7d.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/7fb3857a81e71036c1ce149c4b7245df62a5739b3547ecf4cabbdad69ea26f7d.json deleted file mode 100644 index 9dd018f2..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/7fb3857a81e71036c1ce149c4b7245df62a5739b3547ecf4cabbdad69ea26f7d.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_md", "label": "logs_monitoring.md", "file_type": "document", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_db_\ub85c\uadf8_\ubaa8\ub2c8\ud130\ub9c1_\ud14c\uc774\ube14", "label": "DB: \ub85c\uadf8/\ubaa8\ub2c8\ud130\ub9c1 \ud14c\uc774\ube14", "file_type": "document", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L9"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_login_logs_\ub85c\uadf8\uc778_\uc2dc\ub3c4_\ub85c\uadf8", "label": "login_logs (\ub85c\uadf8\uc778 \uc2dc\ub3c4 \ub85c\uadf8)", "file_type": "document", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L13"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_activity_logs_\uc0ac\uc6a9\uc790_\ud65c\ub3d9_\ub85c\uadf8", "label": "activity_logs (\uc0ac\uc6a9\uc790 \ud65c\ub3d9 \ub85c\uadf8)", "file_type": "document", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L23"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_audit_logs_\uac10\uc0ac_\ub85c\uadf8", "label": "audit_logs (\uac10\uc0ac \ub85c\uadf8)", "file_type": "document", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L33"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_system_audit_logs_\ud504\ub85c\uc81d\ud2b8_\uc870\uc9c1_\ubcc0\uacbd_\uac10\uc0ac_\ub85c\uadf8", "label": "system_audit_logs (\ud504\ub85c\uc81d\ud2b8/\uc870\uc9c1 \ubcc0\uacbd \uac10\uc0ac \ub85c\uadf8)", "file_type": "document", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L43"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_system_admin_logs_\uc2dc\uc2a4\ud15c_\uad00\ub9ac\uc790_\ud589\uc704_\ub85c\uadf8", "label": "system_admin_logs (\uc2dc\uc2a4\ud15c \uad00\ub9ac\uc790 \ud589\uc704 \ub85c\uadf8)", "file_type": "document", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L53"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_system_resources_\uc2dc\uc2a4\ud15c_\uc790\uc6d0_\uacc4\uce21", "label": "system_resources (\uc2dc\uc2a4\ud15c \uc790\uc6d0 \uacc4\uce21)", "file_type": "document", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L62"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_support_requests_\uae30\uc220_\uc9c0\uc6d0_\uc694\uccad", "label": "support_requests (\uae30\uc220 \uc9c0\uc6d0 \uc694\uccad)", "file_type": "document", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L71"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_change_logs_\uc124\uacc4_\ubcc0\uacbd_\uc774\ub825", "label": "change_logs (\uc124\uacc4 \ubcc0\uacbd \uc774\ub825)", "file_type": "document", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L83"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_system_audit_logs_\uc0ac\uc6a9\ucc98_b01_b02", "label": "system_audit_logs \u2014 \uc0ac\uc6a9\ucc98 (B01, B02)", "file_type": "document", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L96"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_\ub9ac\uc18c\uc2a4_api_system_admin_\uc804\uc6a9", "label": "\ub9ac\uc18c\uc2a4 API (SYSTEM_ADMIN \uc804\uc6a9)", "file_type": "document", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L100"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_b01_dashboard_b01_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_db_\ub85c\uadf8_\ubaa8\ub2c8\ud130\ub9c1_\ud14c\uc774\ube14", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L9", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L11", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_db_\ub85c\uadf8_\ubaa8\ub2c8\ud130\ub9c1_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_login_logs_\ub85c\uadf8\uc778_\uc2dc\ub3c4_\ub85c\uadf8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L13", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_db_\ub85c\uadf8_\ubaa8\ub2c8\ud130\ub9c1_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_activity_logs_\uc0ac\uc6a9\uc790_\ud65c\ub3d9_\ub85c\uadf8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L23", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_db_\ub85c\uadf8_\ubaa8\ub2c8\ud130\ub9c1_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_audit_logs_\uac10\uc0ac_\ub85c\uadf8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L33", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_db_\ub85c\uadf8_\ubaa8\ub2c8\ud130\ub9c1_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_system_audit_logs_\ud504\ub85c\uc81d\ud2b8_\uc870\uc9c1_\ubcc0\uacbd_\uac10\uc0ac_\ub85c\uadf8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L43", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_db_\ub85c\uadf8_\ubaa8\ub2c8\ud130\ub9c1_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_system_admin_logs_\uc2dc\uc2a4\ud15c_\uad00\ub9ac\uc790_\ud589\uc704_\ub85c\uadf8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L53", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_db_\ub85c\uadf8_\ubaa8\ub2c8\ud130\ub9c1_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_system_resources_\uc2dc\uc2a4\ud15c_\uc790\uc6d0_\uacc4\uce21", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L62", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_db_\ub85c\uadf8_\ubaa8\ub2c8\ud130\ub9c1_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_support_requests_\uae30\uc220_\uc9c0\uc6d0_\uc694\uccad", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L71", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_db_\ub85c\uadf8_\ubaa8\ub2c8\ud130\ub9c1_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_change_logs_\uc124\uacc4_\ubcc0\uacbd_\uc774\ub825", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L83", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_a08_support_a08_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L94", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_db_\ub85c\uadf8_\ubaa8\ub2c8\ud130\ub9c1_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_system_audit_logs_\uc0ac\uc6a9\ucc98_b01_b02", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L96", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_b02_projregister_b02_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L97", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_db_\ub85c\uadf8_\ubaa8\ub2c8\ud130\ub9c1_\ud14c\uc774\ube14", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_logs_monitoring_\ub9ac\uc18c\uc2a4_api_system_admin_\uc804\uc6a9", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/db_schema/logs_monitoring.md", "source_location": "L100", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/864c1304191de6468d4edc50434ec59bea00a7f2d0eee6bacc57ecbf7b4f7e04.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/864c1304191de6468d4edc50434ec59bea00a7f2d0eee6bacc57ecbf7b4f7e04.json deleted file mode 100644 index d8c2b489..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/864c1304191de6468d4edc50434ec59bea00a7f2d0eee6bacc57ecbf7b4f7e04.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_md", "label": "storage_paths.md", "file_type": "document", "source_file": "concepts/storage_paths.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_\uc800\uc7a5_\uacbd\ub85c_\uaddc\uce59_workflow_based_folder_structure", "label": "\uc800\uc7a5 \uacbd\ub85c \uaddc\uce59 (Workflow-based Folder Structure)", "file_type": "document", "source_file": "concepts/storage_paths.md", "source_location": "L9"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_\uacbd\ub85c_\ud328\ud134", "label": "\uacbd\ub85c \ud328\ud134", "file_type": "document", "source_file": "concepts/storage_paths.md", "source_location": "L11"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_\uc6d0\uce59_backend_md_3\uc808", "label": "\uc6d0\uce59 (backend.md 3\uc808)", "file_type": "document", "source_file": "concepts/storage_paths.md", "source_location": "L23"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_db_\uceec\ub7fc_\uc2e4\uc81c_\uacbd\ub85c_\ub9e4\ud551", "label": "DB \uceec\ub7fc \u2194 \uc2e4\uc81c \uacbd\ub85c \ub9e4\ud551", "file_type": "document", "source_file": "concepts/storage_paths.md", "source_location": "L30"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_\ud30c\uc77c\uba85_\uaddc\uce59_structure_md_1\uc808", "label": "\ud30c\uc77c\uba85 \uaddc\uce59 (structure.md 1\uc808)", "file_type": "document", "source_file": "concepts/storage_paths.md", "source_location": "L33"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b02_projregister_b02_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/storage_paths.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b03_fileinput_b03_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/storage_paths.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b04_wf1_surface_b04_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/storage_paths.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b05_wf2_route_b05_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/storage_paths.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b06_wf3_profilecross_b06_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/storage_paths.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b07_wf4_designdetail_b07_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/storage_paths.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b08_wf5_quantity_b08_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/storage_paths.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b09_wf6_estimation_b09_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/storage_paths.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_\uc800\uc7a5_\uacbd\ub85c_\uaddc\uce59_workflow_based_folder_structure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/storage_paths.md", "source_location": "L9", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_\uc800\uc7a5_\uacbd\ub85c_\uaddc\uce59_workflow_based_folder_structure", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_\uacbd\ub85c_\ud328\ud134", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/storage_paths.md", "source_location": "L11", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_\uc800\uc7a5_\uacbd\ub85c_\uaddc\uce59_workflow_based_folder_structure", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_\uc6d0\uce59_backend_md_3\uc808", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/storage_paths.md", "source_location": "L23", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/storage_paths.md", "source_location": "L27", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_\uc800\uc7a5_\uacbd\ub85c_\uaddc\uce59_workflow_based_folder_structure", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_db_\uceec\ub7fc_\uc2e4\uc81c_\uacbd\ub85c_\ub9e4\ud551", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/storage_paths.md", "source_location": "L30", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_overview_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/storage_paths.md", "source_location": "L31", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_\uc800\uc7a5_\uacbd\ub85c_\uaddc\uce59_workflow_based_folder_structure", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_\ud30c\uc77c\uba85_\uaddc\uce59_structure_md_1\uc808", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/storage_paths.md", "source_location": "L33", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/87a19225130d879a47fa512b619a4dfcd67d6a13bcfed08f9280892d055b7aec.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/87a19225130d879a47fa512b619a4dfcd67d6a13bcfed08f9280892d055b7aec.json deleted file mode 100644 index b67e1b7a..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/87a19225130d879a47fa512b619a4dfcd67d6a13bcfed08f9280892d055b7aec.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_md", "label": "A06_frontend.md", "file_type": "document", "source_file": "pages/A06_Login/A06_frontend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_a06_login_frontend", "label": "A06_Login \u2014 Frontend", "file_type": "document", "source_file": "pages/A06_Login/A06_frontend.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_\ud30c\uc77c_\uad6c\uc870", "label": "\ud30c\uc77c \uad6c\uc870", "file_type": "document", "source_file": "pages/A06_Login/A06_frontend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", "label": "\ucef4\ud3ec\ub10c\ud2b8 / \ud568\uc218", "file_type": "document", "source_file": "pages/A06_Login/A06_frontend.md", "source_location": "L20"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8_\ud568\uc218", "label": "API \ud074\ub77c\uc774\uc5b8\ud2b8 \ud568\uc218", "file_type": "document", "source_file": "pages/A06_Login/A06_frontend.md", "source_location": "L27"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_\uc81c\ucd9c_\ub85c\uc9c1_2\ub2e8\uacc4_\ud3fc_\uc804\ud658", "label": "\uc81c\ucd9c \ub85c\uc9c1 (2\ub2e8\uacc4 \ud3fc \uc804\ud658)", "file_type": "document", "source_file": "pages/A06_Login/A06_frontend.md", "source_location": "L40"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "label": "\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "file_type": "document", "source_file": "pages/A06_Login/A06_frontend.md", "source_location": "L51"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_\uc2a4\ud0c0\uc77c_css", "label": "\uc2a4\ud0c0\uc77c (CSS)", "file_type": "document", "source_file": "pages/A06_Login/A06_frontend.md", "source_location": "L64"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_\uc774\ubca4\ud2b8_\ud578\ub4e4\ub7ec", "label": "\uc774\ubca4\ud2b8 \ud578\ub4e4\ub7ec", "file_type": "document", "source_file": "pages/A06_Login/A06_frontend.md", "source_location": "L72"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_\uc758\uc874\uc131", "label": "\uc758\uc874\uc131", "file_type": "document", "source_file": "pages/A06_Login/A06_frontend.md", "source_location": "L79"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_login_a06_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a07_register_a07_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_auth_rbac_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_a06_login_frontend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_frontend.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_a06_login_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_\ud30c\uc77c_\uad6c\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_frontend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_a06_login_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_frontend.md", "source_location": "L20", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_a06_login_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8_\ud568\uc218", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_frontend.md", "source_location": "L27", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a00_app_shell_framework_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_frontend.md", "source_location": "L38", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_a06_login_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_\uc81c\ucd9c_\ub85c\uc9c1_2\ub2e8\uacc4_\ud3fc_\uc804\ud658", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_frontend.md", "source_location": "L40", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_a06_login_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_frontend.md", "source_location": "L51", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_ui_templates_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_frontend.md", "source_location": "L53", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_a06_login_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_\uc2a4\ud0c0\uc77c_css", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_frontend.md", "source_location": "L64", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_a06_login_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_\uc774\ubca4\ud2b8_\ud578\ub4e4\ub7ec", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_frontend.md", "source_location": "L72", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_a06_login_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_frontend_\uc758\uc874\uc131", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_frontend.md", "source_location": "L79", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/890159057c1b315dc2f987cc22cff3d9f78d8a6b70c16341450a63a15eea1e79.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/890159057c1b315dc2f987cc22cff3d9f78d8a6b70c16341450a63a15eea1e79.json deleted file mode 100644 index 029d493c..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/890159057c1b315dc2f987cc22cff3d9f78d8a6b70c16341450a63a15eea1e79.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_md", "label": "A04_frontend.md", "file_type": "document", "source_file": "pages/A04_NewsHistory/A04_frontend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_a04_newshistory_frontend", "label": "A04_NewsHistory \u2014 Frontend", "file_type": "document", "source_file": "pages/A04_NewsHistory/A04_frontend.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_\ud30c\uc77c_\uad6c\uc870", "label": "\ud30c\uc77c \uad6c\uc870", "file_type": "document", "source_file": "pages/A04_NewsHistory/A04_frontend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_\ucef4\ud3ec\ub10c\ud2b8_\uc139\uc158_\ube4c\ub354", "label": "\ucef4\ud3ec\ub10c\ud2b8 (\uc139\uc158 \ube4c\ub354)", "file_type": "document", "source_file": "pages/A04_NewsHistory/A04_frontend.md", "source_location": "L19"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_mock_\ub370\uc774\ud130_\uad6c\uc870", "label": "Mock \ub370\uc774\ud130 \uad6c\uc870", "file_type": "document", "source_file": "pages/A04_NewsHistory/A04_frontend.md", "source_location": "L30"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "label": "\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "file_type": "document", "source_file": "pages/A04_NewsHistory/A04_frontend.md", "source_location": "L48"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_\uc2a4\ud0c0\uc77c_css", "label": "\uc2a4\ud0c0\uc77c (CSS)", "file_type": "document", "source_file": "pages/A04_NewsHistory/A04_frontend.md", "source_location": "L60"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_css_\ud074\ub798\uc2a4_\uad6c\uc870", "label": "CSS \ud074\ub798\uc2a4 \uad6c\uc870", "file_type": "document", "source_file": "pages/A04_NewsHistory/A04_frontend.md", "source_location": "L62"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_\ubc18\uc751\ud615", "label": "\ubc18\uc751\ud615", "file_type": "document", "source_file": "pages/A04_NewsHistory/A04_frontend.md", "source_location": "L75"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_\uc758\uc874\uc131", "label": "\uc758\uc874\uc131", "file_type": "document", "source_file": "pages/A04_NewsHistory/A04_frontend.md", "source_location": "L78"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_\ubbf8\ud574\uacb0_\uc0ac\ud56d", "label": "\ubbf8\ud574\uacb0 \uc0ac\ud56d", "file_type": "document", "source_file": "pages/A04_NewsHistory/A04_frontend.md", "source_location": "L83"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a01_home_a01_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A04_NewsHistory/A04_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a00_app_shell_framework_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A04_NewsHistory/A04_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_ui_templates_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A04_NewsHistory/A04_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_a04_newshistory_frontend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A04_NewsHistory/A04_frontend.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_a04_newshistory_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_\ud30c\uc77c_\uad6c\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A04_NewsHistory/A04_frontend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_a04_newshistory_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_\ucef4\ud3ec\ub10c\ud2b8_\uc139\uc158_\ube4c\ub354", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A04_NewsHistory/A04_frontend.md", "source_location": "L19", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_a04_newshistory_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_mock_\ub370\uc774\ud130_\uad6c\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A04_NewsHistory/A04_frontend.md", "source_location": "L30", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_a04_newshistory_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A04_NewsHistory/A04_frontend.md", "source_location": "L48", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_a04_newshistory_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_\uc2a4\ud0c0\uc77c_css", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A04_NewsHistory/A04_frontend.md", "source_location": "L60", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_\uc2a4\ud0c0\uc77c_css", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_css_\ud074\ub798\uc2a4_\uad6c\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A04_NewsHistory/A04_frontend.md", "source_location": "L62", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_\uc2a4\ud0c0\uc77c_css", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_\ubc18\uc751\ud615", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A04_NewsHistory/A04_frontend.md", "source_location": "L75", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_a04_newshistory_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_\uc758\uc874\uc131", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A04_NewsHistory/A04_frontend.md", "source_location": "L78", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_a04_newshistory_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a04_newshistory_a04_frontend_\ubbf8\ud574\uacb0_\uc0ac\ud56d", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A04_NewsHistory/A04_frontend.md", "source_location": "L83", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/8d85ff410419578b818f52078b23e7a3d3a4a7c9d3c18d6994a3d65420b74bd8.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/8d85ff410419578b818f52078b23e7a3d3a4a7c9d3c18d6994a3d65420b74bd8.json deleted file mode 100644 index b7a1ce47..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/8d85ff410419578b818f52078b23e7a3d3a4a7c9d3c18d6994a3d65420b74bd8.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_md", "label": "B04_frontend.md", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_frontend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_b04_wf1_surface_frontend", "label": "B04_wf1_Surface \u2014 Frontend", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_frontend.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_\ud30c\uc77c_\uad6c\uc870", "label": "\ud30c\uc77c \uad6c\uc870", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_frontend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_\uacc4\ud68d\uc11c\uc640_\uc2e4_\ucf54\ub4dc_\ubd88\uc77c\uce58_3d_\ubdf0\uc5b4", "label": "\u26a0\ufe0f \uacc4\ud68d\uc11c\uc640 \uc2e4 \ucf54\ub4dc \ubd88\uc77c\uce58 (3D \ubdf0\uc5b4)", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_frontend.md", "source_location": "L22"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", "label": "\ucef4\ud3ec\ub10c\ud2b8 / \ud568\uc218", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_frontend.md", "source_location": "L32"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8_\ud568\uc218", "label": "API \ud074\ub77c\uc774\uc5b8\ud2b8 \ud568\uc218", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_frontend.md", "source_location": "L40"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_\ucc98\ub9ac_\ud750\ub984", "label": "\ucc98\ub9ac \ud750\ub984", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_frontend.md", "source_location": "L53"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_\uc758\uc874\uc131", "label": "\uc758\uc874\uc131", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_frontend.md", "source_location": "L60"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_wf1_surface_b04_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_wf1_surface_b04_api_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_wf1_surface_b04_dependencies_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_ui_templates_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_b04_wf1_surface_frontend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_frontend.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_b04_wf1_surface_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_\ud30c\uc77c_\uad6c\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_frontend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_b04_wf1_surface_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_\uacc4\ud68d\uc11c\uc640_\uc2e4_\ucf54\ub4dc_\ubd88\uc77c\uce58_3d_\ubdf0\uc5b4", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_frontend.md", "source_location": "L22", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_b04_wf1_surface_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_frontend.md", "source_location": "L32", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_b04_wf1_surface_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8_\ud568\uc218", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_frontend.md", "source_location": "L40", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_b04_wf1_surface_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_\ucc98\ub9ac_\ud750\ub984", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_frontend.md", "source_location": "L53", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_b04_wf1_surface_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_\uc758\uc874\uc131", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_frontend.md", "source_location": "L60", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_a00_app_shell_framework_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_frontend.md", "source_location": "L62", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/90d7356198e73e4cc9f6377549bb422cac5171f209ac35465cb3cf6afd457c55.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/90d7356198e73e4cc9f6377549bb422cac5171f209ac35465cb3cf6afd457c55.json deleted file mode 100644 index 5142a683..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/90d7356198e73e4cc9f6377549bb422cac5171f209ac35465cb3cf6afd457c55.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_md", "label": "a00_app_shell_framework.md", "file_type": "document", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_a00_common_app_shell_framework", "label": "A00_Common \u2014 App Shell Framework", "file_type": "document", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_\ud30c\uc77c_\uad6c\uc131", "label": "\ud30c\uc77c \uad6c\uc131", "file_type": "document", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_app_shell_\uad6c\uc131\uc694\uc18c", "label": "app_shell \uad6c\uc131\uc694\uc18c", "file_type": "document", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L20"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_\ud14c\ub9c8_\uc5b8\uc5b4_\uad00\ub9ac", "label": "\ud14c\ub9c8 & \uc5b8\uc5b4 \uad00\ub9ac", "file_type": "document", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L22"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_\ud5e4\ub354_\uad6c\uc131_64px_\ub192\uc774_sticky", "label": "\ud5e4\ub354 \uad6c\uc131 (64px \ub192\uc774, sticky)", "file_type": "document", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L27"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_\uc778\uc99d_\ubc84\ud2bc_\ube44\ub3d9\uae30_fillauthactions", "label": "\uc778\uc99d \ubc84\ud2bc (\ube44\ub3d9\uae30 fillAuthActions)", "file_type": "document", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L40"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_\ub85c\uadf8\uc544\uc6c3_onapp_logout_click", "label": "\ub85c\uadf8\uc544\uc6c3 (onApp_Logout_Click)", "file_type": "document", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L44"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_\ud478\ud130", "label": "\ud478\ud130", "file_type": "document", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L48"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_router_\ub77c\uc6b0\ud305_\ud14c\uc774\ube14", "label": "router \ub77c\uc6b0\ud305 \ud14c\uc774\ube14", "file_type": "document", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L52"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_\uc778\uc99d_\uac00\ub4dc", "label": "\uc778\uc99d \uac00\ub4dc", "file_type": "document", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L77"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_\uc138\ubd80_\uc2a4\uce90\ud3f4\ub4dc_css_\uc885\uc18d\uc131", "label": "\uc138\ubd80 \uc2a4\uce90\ud3f4\ub4dc\u00b7CSS\u00b7\uc885\uc18d\uc131", "file_type": "document", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L84"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a01_home_a01_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L3", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a02_progdetail_a02_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L3", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b01_dashboard_b01_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L3", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b08_wf5_quantity_b08_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L3", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_a00_common_app_shell_framework", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_a00_common_app_shell_framework", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_\ud30c\uc77c_\uad6c\uc131", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_a00_common_app_shell_framework", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_app_shell_\uad6c\uc131\uc694\uc18c", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L20", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_app_shell_\uad6c\uc131\uc694\uc18c", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_\ud14c\ub9c8_\uc5b8\uc5b4_\uad00\ub9ac", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L22", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_app_shell_\uad6c\uc131\uc694\uc18c", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_\ud5e4\ub354_\uad6c\uc131_64px_\ub192\uc774_sticky", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L27", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_app_shell_\uad6c\uc131\uc694\uc18c", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_\uc778\uc99d_\ubc84\ud2bc_\ube44\ub3d9\uae30_fillauthactions", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L40", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_app_shell_\uad6c\uc131\uc694\uc18c", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_\ub85c\uadf8\uc544\uc6c3_onapp_logout_click", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L44", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_app_shell_\uad6c\uc131\uc694\uc18c", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_\ud478\ud130", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L48", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_a00_common_app_shell_framework", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_router_\ub77c\uc6b0\ud305_\ud14c\uc774\ube14", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L52", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_a00_common_app_shell_framework", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_\uc778\uc99d_\uac00\ub4dc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L77", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_a00_common_app_shell_framework", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_\uc138\ubd80_\uc2a4\uce90\ud3f4\ub4dc_css_\uc885\uc18d\uc131", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L84", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_scaffold_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/a00_app_shell_framework.md", "source_location": "L86", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/913554bc65be372e31038c5b6db99ffb11804957097d503d81077bbf581c6403.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/913554bc65be372e31038c5b6db99ffb11804957097d503d81077bbf581c6403.json deleted file mode 100644 index ee9bab07..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/913554bc65be372e31038c5b6db99ffb11804957097d503d81077bbf581c6403.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_md", "label": "workflow_state.md", "file_type": "document", "source_file": "concepts/workflow_state.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_workflow_\uc0c1\ud0dc_\uad00\ub9ac_\uad6c\ud604_\uc644\ub8cc_\uc2e4_db_\ud655\uc778\ub428", "label": "Workflow \uc0c1\ud0dc \uad00\ub9ac \u2014 \uad6c\ud604 \uc644\ub8cc (\uc2e4 DB \ud655\uc778\ub428)", "file_type": "document", "source_file": "concepts/workflow_state.md", "source_location": "L9"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_ssot_project_workflow_stages_\ud14c\uc774\ube14_\uc2e4_db_\ud655\uc778", "label": "SSOT: `project_workflow_stages` \ud14c\uc774\ube14 (\uc2e4 DB \ud655\uc778)", "file_type": "document", "source_file": "concepts/workflow_state.md", "source_location": "L13"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_\uacf5\ud1b5_\uc720\ud2f8_common_util_common_util_workflow_state_py", "label": "\uacf5\ud1b5 \uc720\ud2f8 `common_util/common_util_workflow_state.py`", "file_type": "document", "source_file": "concepts/workflow_state.md", "source_location": "L27"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_\uc2e4_\uc5f0\ub3d9_\ud604\ud669_\ud30c\uc77c_\uc904\ubc88\ud638", "label": "\uc2e4 \uc5f0\ub3d9 \ud604\ud669 (\ud30c\uc77c:\uc904\ubc88\ud638)", "file_type": "document", "source_file": "concepts/workflow_state.md", "source_location": "L37"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_\uc870\ud68c_api_\uc2e4\uc81c_\uc874\uc7ac_\uacc4\ud68d\uc11c\uc640_\uacbd\ub85c_\uc77c\uce58", "label": "\uc870\ud68c API (\uc2e4\uc81c \uc874\uc7ac, \uacc4\ud68d\uc11c\uc640 \uacbd\ub85c \uc77c\uce58)", "file_type": "document", "source_file": "concepts/workflow_state.md", "source_location": "L47"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_\uc0c1\ud0dc_\uc804\uc774_\uad6c\ud604\ub300\ub85c", "label": "\uc0c1\ud0dc \uc804\uc774 (\uad6c\ud604\ub300\ub85c)", "file_type": "document", "source_file": "concepts/workflow_state.md", "source_location": "L54"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_projects_status_\ubb38\uc790\uc5f4_\uce90\uc2dc_\ud638\ud658\uc6a9_\uacc4\ud68d\uc11c_\ubc29\uce68\ub300\ub85c_\uc720\uc9c0_\uc911", "label": "projects.status \ubb38\uc790\uc5f4 \uce90\uc2dc (\ud638\ud658\uc6a9, \uacc4\ud68d\uc11c \ubc29\uce68\ub300\ub85c \uc720\uc9c0 \uc911)", "file_type": "document", "source_file": "concepts/workflow_state.md", "source_location": "L62"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_b04_\uc0c1\ud0dc_\uc870\ud68c_\ub808\uac70\uc2dc_\ud3f4\ubc31_\ub2f9\ucd08_\uc794\uc7ac_\ub85c_\ud45c\uae30\ud588\uc73c\ub098_\uc815\uc815", "label": "B04 \uc0c1\ud0dc \uc870\ud68c \u2014 \ub808\uac70\uc2dc \ud3f4\ubc31 (\ub2f9\ucd08 \"\uc794\uc7ac\"\ub85c \ud45c\uae30\ud588\uc73c\ub098 \uc815\uc815)", "file_type": "document", "source_file": "concepts/workflow_state.md", "source_location": "L65"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_\ubbf8\ud574\uacb0_\uc0ac\ud56d_\uacc4\ud68d\uc11c_\uc6d0\ubb38_\uc544\uc9c1_\uacb0\uc815_\uc548_\ub428", "label": "\ubbf8\ud574\uacb0 \uc0ac\ud56d (\uacc4\ud68d\uc11c \uc6d0\ubb38, \uc544\uc9c1 \uacb0\uc815 \uc548 \ub428)", "file_type": "document", "source_file": "concepts/workflow_state.md", "source_location": "L72"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b01_dashboard_b01_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/workflow_state.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b02_projregister_b02_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/workflow_state.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b03_fileinput_b03_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/workflow_state.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b04_wf1_surface_b04_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/workflow_state.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b05_wf2_route_b05_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/workflow_state.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b06_wf3_profilecross_b06_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/workflow_state.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b07_wf4_designdetail_b07_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/workflow_state.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b08_wf5_quantity_b08_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/workflow_state.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b09_wf6_estimation_b09_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/workflow_state.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_workflow_\uc0c1\ud0dc_\uad00\ub9ac_\uad6c\ud604_\uc644\ub8cc_\uc2e4_db_\ud655\uc778\ub428", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/workflow_state.md", "source_location": "L9", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_workflow_\uc0c1\ud0dc_\uad00\ub9ac_\uad6c\ud604_\uc644\ub8cc_\uc2e4_db_\ud655\uc778\ub428", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_ssot_project_workflow_stages_\ud14c\uc774\ube14_\uc2e4_db_\ud655\uc778", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/workflow_state.md", "source_location": "L13", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_workflow_\uc0c1\ud0dc_\uad00\ub9ac_\uad6c\ud604_\uc644\ub8cc_\uc2e4_db_\ud655\uc778\ub428", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_\uacf5\ud1b5_\uc720\ud2f8_common_util_common_util_workflow_state_py", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/workflow_state.md", "source_location": "L27", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_workflow_\uc0c1\ud0dc_\uad00\ub9ac_\uad6c\ud604_\uc644\ub8cc_\uc2e4_db_\ud655\uc778\ub428", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_\uc2e4_\uc5f0\ub3d9_\ud604\ud669_\ud30c\uc77c_\uc904\ubc88\ud638", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/workflow_state.md", "source_location": "L37", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_workflow_\uc0c1\ud0dc_\uad00\ub9ac_\uad6c\ud604_\uc644\ub8cc_\uc2e4_db_\ud655\uc778\ub428", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_\uc870\ud68c_api_\uc2e4\uc81c_\uc874\uc7ac_\uacc4\ud68d\uc11c\uc640_\uacbd\ub85c_\uc77c\uce58", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/workflow_state.md", "source_location": "L47", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_workflow_\uc0c1\ud0dc_\uad00\ub9ac_\uad6c\ud604_\uc644\ub8cc_\uc2e4_db_\ud655\uc778\ub428", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_\uc0c1\ud0dc_\uc804\uc774_\uad6c\ud604\ub300\ub85c", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/workflow_state.md", "source_location": "L54", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_workflow_\uc0c1\ud0dc_\uad00\ub9ac_\uad6c\ud604_\uc644\ub8cc_\uc2e4_db_\ud655\uc778\ub428", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_projects_status_\ubb38\uc790\uc5f4_\uce90\uc2dc_\ud638\ud658\uc6a9_\uacc4\ud68d\uc11c_\ubc29\uce68\ub300\ub85c_\uc720\uc9c0_\uc911", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/workflow_state.md", "source_location": "L62", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_workflow_\uc0c1\ud0dc_\uad00\ub9ac_\uad6c\ud604_\uc644\ub8cc_\uc2e4_db_\ud655\uc778\ub428", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_b04_\uc0c1\ud0dc_\uc870\ud68c_\ub808\uac70\uc2dc_\ud3f4\ubc31_\ub2f9\ucd08_\uc794\uc7ac_\ub85c_\ud45c\uae30\ud588\uc73c\ub098_\uc815\uc815", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/workflow_state.md", "source_location": "L65", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_workflow_\uc0c1\ud0dc_\uad00\ub9ac_\uad6c\ud604_\uc644\ub8cc_\uc2e4_db_\ud655\uc778\ub428", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_\ubbf8\ud574\uacb0_\uc0ac\ud56d_\uacc4\ud68d\uc11c_\uc6d0\ubb38_\uc544\uc9c1_\uacb0\uc815_\uc548_\ub428", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/workflow_state.md", "source_location": "L72", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/9216484c57c256629ee59314bc7d4b9e8ef66c3d8458b9ea16a3f73dd370fe52.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/9216484c57c256629ee59314bc7d4b9e8ef66c3d8458b9ea16a3f73dd370fe52.json deleted file mode 100644 index a6b4e789..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/9216484c57c256629ee59314bc7d4b9e8ef66c3d8458b9ea16a3f73dd370fe52.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_frontend_md", "label": "B08_frontend.md", "file_type": "document", "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_frontend_b08_wf5_quantity_frontend", "label": "B08_wf5_Quantity \u2014 Frontend", "file_type": "document", "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_frontend_\ud604\uc7ac_\uad6c\ud604", "label": "\ud604\uc7ac \uad6c\ud604", "file_type": "document", "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_frontend_\ud654\uba74_\uc0c1\ud0dc", "label": "\ud654\uba74 \uc0c1\ud0dc", "file_type": "document", "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", "source_location": "L20"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_frontend_\uacc4\ud68d_\ucc45\uc784", "label": "\uacc4\ud68d \ucc45\uc784", "file_type": "document", "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", "source_location": "L30"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_frontend_\uae30\uc220\ubd80\ucc44", "label": "\uae30\uc220\ubd80\ucc44", "file_type": "document", "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", "source_location": "L39"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_wf5_quantity_b08_db_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_frontend_b08_wf5_quantity_frontend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_frontend_b08_wf5_quantity_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_frontend_\ud604\uc7ac_\uad6c\ud604", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_frontend_b08_wf5_quantity_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_frontend_\ud654\uba74_\uc0c1\ud0dc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", "source_location": "L20", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_frontend_b08_wf5_quantity_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_frontend_\uacc4\ud68d_\ucc45\uc784", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", "source_location": "L30", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", "source_location": "L37", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", "source_location": "L37", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_frontend_b08_wf5_quantity_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b08_wf5_quantity_b08_frontend_\uae30\uc220\ubd80\ucc44", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", "source_location": "L39", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/944204e569fb7c208be3dd6b08b83c70b5229be9c7f932926aeb285b77807561.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/944204e569fb7c208be3dd6b08b83c70b5229be9c7f932926aeb285b77807561.json deleted file mode 100644 index 6f683e05..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/944204e569fb7c208be3dd6b08b83c70b5229be9c7f932926aeb285b77807561.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_dependencies_md", "label": "B03_dependencies.md", "file_type": "document", "source_file": "pages/B03_FileInput/B03_dependencies.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_dependencies_b03_fileinput_dependencies", "label": "B03_FileInput \u2014 Dependencies", "file_type": "document", "source_file": "pages/B03_FileInput/B03_dependencies.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_dependencies_\uacf5\ud1b5_\ubaa8\ub4c8", "label": "\uacf5\ud1b5 \ubaa8\ub4c8", "file_type": "document", "source_file": "pages/B03_FileInput/B03_dependencies.md", "source_location": "L24"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_fileinput_b03_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_dependencies.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_fileinput_b03_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_dependencies.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_dependencies_b03_fileinput_dependencies", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_dependencies.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_dependencies_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_dependencies.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_dependencies_b03_fileinput_dependencies", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_dependencies_\uacf5\ud1b5_\ubaa8\ub4c8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_dependencies.md", "source_location": "L24", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_dependencies.md", "source_location": "L27", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_dependencies.md", "source_location": "L28", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/9691ebb53407e479750a796e82774905fe22139f5b049c3f7dc0ad6534c378cf.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/9691ebb53407e479750a796e82774905fe22139f5b049c3f7dc0ad6534c378cf.json deleted file mode 100644 index ff1bebf7..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/9691ebb53407e479750a796e82774905fe22139f5b049c3f7dc0ad6534c378cf.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_dependencies_md", "label": "B05_dependencies.md", "file_type": "document", "source_file": "pages/B05_wf2_Route/B05_dependencies.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_dependencies_b05_wf2_route_dependencies", "label": "B05_wf2_Route \u2014 Dependencies", "file_type": "document", "source_file": "pages/B05_wf2_Route/B05_dependencies.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_dependencies_\ud398\uc774\uc9c0_\ud30c\uc77c\ubcc4_\uc5f0\uacb0", "label": "\ud398\uc774\uc9c0 \ud30c\uc77c\ubcc4 \uc5f0\uacb0", "file_type": "document", "source_file": "pages/B05_wf2_Route/B05_dependencies.md", "source_location": "L23"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_wf2_route_b05_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_dependencies.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_wf2_route_b05_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_dependencies.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_dependencies_b05_wf2_route_dependencies", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_dependencies.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_dependencies_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_dependencies.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_dependencies_b05_wf2_route_dependencies", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_dependencies_\ud398\uc774\uc9c0_\ud30c\uc77c\ubcc4_\uc5f0\uacb0", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_dependencies.md", "source_location": "L23", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/97478cabbb537844beae71898c5b219a2b94edecb3285f81207390133befebed.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/97478cabbb537844beae71898c5b219a2b94edecb3285f81207390133befebed.json deleted file mode 100644 index dd43ef1c..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/97478cabbb537844beae71898c5b219a2b94edecb3285f81207390133befebed.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_dependencies_md", "label": "B04_dependencies.md", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_dependencies.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_dependencies_b04_wf1_surface_dependencies", "label": "B04_wf1_Surface \u2014 Dependencies", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_dependencies.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_dependencies_\ubc31\uc5d4\ub4dc_python", "label": "\ubc31\uc5d4\ub4dc (Python)", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_dependencies.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_dependencies_\ud504\ub860\ud2b8\uc5d4\ub4dc_typescript", "label": "\ud504\ub860\ud2b8\uc5d4\ub4dc (TypeScript)", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_dependencies.md", "source_location": "L24"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_dependencies_dependencies_concept_\uc815\uc815_\ud544\uc694", "label": "\u26a0\ufe0f dependencies concept \uc815\uc815 \ud544\uc694", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_dependencies.md", "source_location": "L30"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_wf1_surface_b04_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_dependencies.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_wf1_surface_b04_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_dependencies.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_dependencies_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_dependencies.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_dependencies_b04_wf1_surface_dependencies", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_dependencies.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_dependencies_b04_wf1_surface_dependencies", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_dependencies_\ubc31\uc5d4\ub4dc_python", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_dependencies.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_dependencies_b04_wf1_surface_dependencies", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_dependencies_\ud504\ub860\ud2b8\uc5d4\ub4dc_typescript", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_dependencies.md", "source_location": "L24", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_dependencies_b04_wf1_surface_dependencies", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_dependencies_dependencies_concept_\uc815\uc815_\ud544\uc694", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_dependencies.md", "source_location": "L30", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/981095fcec47154f4626fb3eab7ecdc4407e949a7aa702a13130c8e1b70920ec.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/981095fcec47154f4626fb3eab7ecdc4407e949a7aa702a13130c8e1b70920ec.json deleted file mode 100644 index 1379e4ed..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/981095fcec47154f4626fb3eab7ecdc4407e949a7aa702a13130c8e1b70920ec.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dependencies_md", "label": "B01_dependencies.md", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_dependencies.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dependencies_b01_dashboard_dependencies", "label": "B01_Dashboard \u2014 Dependencies", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_dependencies.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dependencies_\ud504\ub85c\uc81d\ud2b8_\uacf5\ud1b5_\ubaa8\ub4c8", "label": "\ud504\ub85c\uc81d\ud2b8 \uacf5\ud1b5 \ubaa8\ub4c8", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_dependencies.md", "source_location": "L23"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dashboard_b01_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_dependencies.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dashboard_b01_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_dependencies.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dependencies_b01_dashboard_dependencies", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_dependencies.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_dependencies_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_dependencies.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dependencies_b01_dashboard_dependencies", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dependencies_\ud504\ub85c\uc81d\ud2b8_\uacf5\ud1b5_\ubaa8\ub4c8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_dependencies.md", "source_location": "L23", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_dependencies.md", "source_location": "L26", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dependencies_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_dependencies.md", "source_location": "L28", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/a38a8ca962fdacc272da8439e0d7d9d1e1c542bc8b65333fd5579891c9857361.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/a38a8ca962fdacc272da8439e0d7d9d1e1c542bc8b65333fd5579891c9857361.json deleted file mode 100644 index fdc66c5f..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/a38a8ca962fdacc272da8439e0d7d9d1e1c542bc8b65333fd5579891c9857361.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_api_common_md", "label": "api_common.md", "file_type": "document", "source_file": "concepts/api_common.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_api_common_api_\uacf5\ud1b5_\uc5ec\ub7ec_\ud398\uc774\uc9c0\uac00_\uacf5\uc720\ud558\ub294_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", "label": "API \uacf5\ud1b5 (\uc5ec\ub7ec \ud398\uc774\uc9c0\uac00 \uacf5\uc720\ud558\ub294 \uc5d4\ub4dc\ud3ec\uc778\ud2b8)", "file_type": "document", "source_file": "concepts/api_common.md", "source_location": "L9"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_api_common_\uacf5\ud1b5_\uc624\ub958_\uc751\ub2f5_\ud3ec\ub9f7_\uc804_\ub77c\uc6b0\ud130", "label": "\uacf5\ud1b5 \uc624\ub958 \uc751\ub2f5 \ud3ec\ub9f7 (\uc804 \ub77c\uc6b0\ud130)", "file_type": "document", "source_file": "concepts/api_common.md", "source_location": "L11"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_api_common_\uc6cc\ud06c\ud50c\ub85c\uc6b0_\uc0c1\ud0dc_\uc870\ud68c", "label": "\uc6cc\ud06c\ud50c\ub85c\uc6b0 \uc0c1\ud0dc \uc870\ud68c", "file_type": "document", "source_file": "concepts/api_common.md", "source_location": "L17"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_api_common_\ud3f4\ub9c1_\ud328\ud134_legacy_workflow_json_\uc124\uacc4_\ud604\uc7ac_\uad6c\ud604\uc740_workflow_state_api_\uc0ac\uc6a9", "label": "\ud3f4\ub9c1 \ud328\ud134 (legacy workflow.json \uc124\uacc4; \ud604\uc7ac \uad6c\ud604\uc740 workflow-state API \uc0ac\uc6a9)", "file_type": "document", "source_file": "concepts/api_common.md", "source_location": "L25"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_api_common_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b01_dashboard_b01_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/api_common.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_api_common_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b03_fileinput_b03_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/api_common.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_api_common_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b04_wf1_surface_b04_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/api_common.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_api_common_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_api_common_api_\uacf5\ud1b5_\uc5ec\ub7ec_\ud398\uc774\uc9c0\uac00_\uacf5\uc720\ud558\ub294_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/api_common.md", "source_location": "L9", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_api_common_api_\uacf5\ud1b5_\uc5ec\ub7ec_\ud398\uc774\uc9c0\uac00_\uacf5\uc720\ud558\ub294_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_api_common_\uacf5\ud1b5_\uc624\ub958_\uc751\ub2f5_\ud3ec\ub9f7_\uc804_\ub77c\uc6b0\ud130", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/api_common.md", "source_location": "L11", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_api_common_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_schema_common_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/api_common.md", "source_location": "L15", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_api_common_api_\uacf5\ud1b5_\uc5ec\ub7ec_\ud398\uc774\uc9c0\uac00_\uacf5\uc720\ud558\ub294_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_api_common_\uc6cc\ud06c\ud50c\ub85c\uc6b0_\uc0c1\ud0dc_\uc870\ud68c", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/api_common.md", "source_location": "L17", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_api_common_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/api_common.md", "source_location": "L23", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_api_common_api_\uacf5\ud1b5_\uc5ec\ub7ec_\ud398\uc774\uc9c0\uac00_\uacf5\uc720\ud558\ub294_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_api_common_\ud3f4\ub9c1_\ud328\ud134_legacy_workflow_json_\uc124\uacc4_\ud604\uc7ac_\uad6c\ud604\uc740_workflow_state_api_\uc0ac\uc6a9", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/api_common.md", "source_location": "L25", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/a6d3afe6fc8285143b839973bd8506e5c74fa12760a92b9d72930d4a96d07742.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/a6d3afe6fc8285143b839973bd8506e5c74fa12760a92b9d72930d4a96d07742.json deleted file mode 100644 index e5e4a24a..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/a6d3afe6fc8285143b839973bd8506e5c74fa12760a92b9d72930d4a96d07742.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_backend_md", "label": "B05_backend.md", "file_type": "document", "source_file": "pages/B05_wf2_Route/B05_backend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_backend_b05_wf2_route_backend", "label": "B05_wf2_Route \u2014 Backend", "file_type": "document", "source_file": "pages/B05_wf2_Route/B05_backend.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_backend_\uc694\uccad_\uc751\ub2f5_\ubaa8\ub378", "label": "\uc694\uccad\u00b7\uc751\ub2f5 \ubaa8\ub378", "file_type": "document", "source_file": "pages/B05_wf2_Route/B05_backend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_backend_\uacbd\ub85c_\uacc4\uc0b0_\uc5d4\uc9c4", "label": "\uacbd\ub85c \uacc4\uc0b0 \uc5d4\uc9c4", "file_type": "document", "source_file": "pages/B05_wf2_Route/B05_backend.md", "source_location": "L20"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_backend_\uae30\ud558_\uacb0\uacfc_\ubcc0\ud658", "label": "\uae30\ud558\u00b7\uacb0\uacfc \ubcc0\ud658", "file_type": "document", "source_file": "pages/B05_wf2_Route/B05_backend.md", "source_location": "L31"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_backend_\ub77c\uc6b0\ud130_workflow", "label": "\ub77c\uc6b0\ud130\u00b7workflow", "file_type": "document", "source_file": "pages/B05_wf2_Route/B05_backend.md", "source_location": "L39"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_backend_\uae30\uc220\ubd80\ucc44", "label": "\uae30\uc220\ubd80\ucc44", "file_type": "document", "source_file": "pages/B05_wf2_Route/B05_backend.md", "source_location": "L46"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_wf2_route_b05_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_backend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_wf2_route_b05_api_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_backend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_wf2_route_b05_db_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_backend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_backend_b05_wf2_route_backend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_backend.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_backend_b05_wf2_route_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_backend_\uc694\uccad_\uc751\ub2f5_\ubaa8\ub378", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_backend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_backend_b05_wf2_route_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_backend_\uacbd\ub85c_\uacc4\uc0b0_\uc5d4\uc9c4", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_backend.md", "source_location": "L20", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_backend_b05_wf2_route_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_backend_\uae30\ud558_\uacb0\uacfc_\ubcc0\ud658", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_backend.md", "source_location": "L31", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_backend_b05_wf2_route_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_backend_\ub77c\uc6b0\ud130_workflow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_backend.md", "source_location": "L39", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_backend.md", "source_location": "L44", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_backend_b05_wf2_route_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_backend_\uae30\uc220\ubd80\ucc44", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_backend.md", "source_location": "L46", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/aacc52798876b1c9f1528049e014dfff812e4362029bf2900537a635cea03345.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/aacc52798876b1c9f1528049e014dfff812e4362029bf2900537a635cea03345.json deleted file mode 100644 index 1348d63b..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/aacc52798876b1c9f1528049e014dfff812e4362029bf2900537a635cea03345.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_md", "label": "A06_backend.md", "file_type": "document", "source_file": "pages/A06_Login/A06_backend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_a06_login_backend", "label": "A06_Login \u2014 Backend", "file_type": "document", "source_file": "pages/A06_Login/A06_backend.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_\ud30c\uc77c_\uad6c\uc870", "label": "\ud30c\uc77c \uad6c\uc870", "file_type": "document", "source_file": "pages/A06_Login/A06_backend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", "label": "API \uc5d4\ub4dc\ud3ec\uc778\ud2b8", "file_type": "document", "source_file": "pages/A06_Login/A06_backend.md", "source_location": "L19"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_\ub0b4\ubd80_\ud5ec\ud37c", "label": "\ub0b4\ubd80 \ud5ec\ud37c", "file_type": "document", "source_file": "pages/A06_Login/A06_backend.md", "source_location": "L29"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_\uc694\uccad_\uc2a4\ud0a4\ub9c8_pydantic", "label": "\uc694\uccad \uc2a4\ud0a4\ub9c8 (Pydantic)", "file_type": "document", "source_file": "pages/A06_Login/A06_backend.md", "source_location": "L37"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_\ub85c\uadf8\uc778_\ub85c\uc9c1_\ud750\ub984", "label": "\ub85c\uadf8\uc778 \ub85c\uc9c1 \ud750\ub984", "file_type": "document", "source_file": "pages/A06_Login/A06_backend.md", "source_location": "L45"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_\ubcf4\uc548_\uc815\ucc45_\uc2e4_\ucf54\ub4dc_\uae30\uc900", "label": "\ubcf4\uc548 \uc815\ucc45 (\uc2e4 \ucf54\ub4dc \uae30\uc900)", "file_type": "document", "source_file": "pages/A06_Login/A06_backend.md", "source_location": "L54"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_\uc758\uc874\uc131_\uacf5\ud1b5_\uc720\ud2f8", "label": "\uc758\uc874\uc131 (\uacf5\ud1b5 \uc720\ud2f8)", "file_type": "document", "source_file": "pages/A06_Login/A06_backend.md", "source_location": "L60"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_\uacc4\ud68d\uc11c\uc640_\uc2e4_\ucf54\ub4dc_\ubd88\uc77c\uce58", "label": "\u26a0\ufe0f \uacc4\ud68d\uc11c\uc640 \uc2e4 \ucf54\ub4dc \ubd88\uc77c\uce58", "file_type": "document", "source_file": "pages/A06_Login/A06_backend.md", "source_location": "L66"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_login_a06_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a07_register_a07_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a09_security_a09_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_auth_rbac_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_a06_login_backend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_backend.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_a06_login_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_\ud30c\uc77c_\uad6c\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_backend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_a06_login_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_backend.md", "source_location": "L19", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_a06_login_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_\ub0b4\ubd80_\ud5ec\ud37c", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_backend.md", "source_location": "L29", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_a06_login_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_\uc694\uccad_\uc2a4\ud0a4\ub9c8_pydantic", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_backend.md", "source_location": "L37", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_a06_login_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_\ub85c\uadf8\uc778_\ub85c\uc9c1_\ud750\ub984", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_backend.md", "source_location": "L45", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_a06_login_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_\ubcf4\uc548_\uc815\ucc45_\uc2e4_\ucf54\ub4dc_\uae30\uc900", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_backend.md", "source_location": "L54", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_a06_login_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_\uc758\uc874\uc131_\uacf5\ud1b5_\uc720\ud2f8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_backend.md", "source_location": "L60", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_common_util_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_backend.md", "source_location": "L62", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_a06_login_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a06_login_a06_backend_\uacc4\ud68d\uc11c\uc640_\uc2e4_\ucf54\ub4dc_\ubd88\uc77c\uce58", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A06_Login/A06_backend.md", "source_location": "L66", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/ab34ed804dca07323ea78583add067fd18e7d17a741c99321bd6c782e82c7c82.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/ab34ed804dca07323ea78583add067fd18e7d17a741c99321bd6c782e82c7c82.json deleted file mode 100644 index 3214b02a..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/ab34ed804dca07323ea78583add067fd18e7d17a741c99321bd6c782e82c7c82.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_md", "label": "A05_frontend.md", "file_type": "document", "source_file": "pages/A05_EduDetail/A05_frontend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_a05_edudetail_frontend", "label": "A05_EduDetail \u2014 Frontend", "file_type": "document", "source_file": "pages/A05_EduDetail/A05_frontend.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_\ud30c\uc77c_\uad6c\uc870", "label": "\ud30c\uc77c \uad6c\uc870", "file_type": "document", "source_file": "pages/A05_EduDetail/A05_frontend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_\ucef4\ud3ec\ub10c\ud2b8_\uc139\uc158_\ube4c\ub354", "label": "\ucef4\ud3ec\ub10c\ud2b8 (\uc139\uc158 \ube4c\ub354)", "file_type": "document", "source_file": "pages/A05_EduDetail/A05_frontend.md", "source_location": "L19"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "label": "\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "file_type": "document", "source_file": "pages/A05_EduDetail/A05_frontend.md", "source_location": "L28"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_\uc2a4\ud0c0\uc77c_css", "label": "\uc2a4\ud0c0\uc77c (CSS)", "file_type": "document", "source_file": "pages/A05_EduDetail/A05_frontend.md", "source_location": "L41"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_css_\ud074\ub798\uc2a4_\uad6c\uc870", "label": "CSS \ud074\ub798\uc2a4 \uad6c\uc870", "file_type": "document", "source_file": "pages/A05_EduDetail/A05_frontend.md", "source_location": "L43"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_\ubc18\uc751\ud615", "label": "\ubc18\uc751\ud615", "file_type": "document", "source_file": "pages/A05_EduDetail/A05_frontend.md", "source_location": "L56"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_\uc774\ubca4\ud2b8_\ud578\ub4e4\ub7ec", "label": "\uc774\ubca4\ud2b8 \ud578\ub4e4\ub7ec", "file_type": "document", "source_file": "pages/A05_EduDetail/A05_frontend.md", "source_location": "L59"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_\uc758\uc874\uc131", "label": "\uc758\uc874\uc131", "file_type": "document", "source_file": "pages/A05_EduDetail/A05_frontend.md", "source_location": "L65"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a00_app_shell_framework_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A05_EduDetail/A05_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_ui_templates_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A05_EduDetail/A05_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_a05_edudetail_frontend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A05_EduDetail/A05_frontend.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_a05_edudetail_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_\ud30c\uc77c_\uad6c\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A05_EduDetail/A05_frontend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_a05_edudetail_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_\ucef4\ud3ec\ub10c\ud2b8_\uc139\uc158_\ube4c\ub354", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A05_EduDetail/A05_frontend.md", "source_location": "L19", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_a05_edudetail_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A05_EduDetail/A05_frontend.md", "source_location": "L28", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_a05_edudetail_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_\uc2a4\ud0c0\uc77c_css", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A05_EduDetail/A05_frontend.md", "source_location": "L41", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_\uc2a4\ud0c0\uc77c_css", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_css_\ud074\ub798\uc2a4_\uad6c\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A05_EduDetail/A05_frontend.md", "source_location": "L43", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_\uc2a4\ud0c0\uc77c_css", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_\ubc18\uc751\ud615", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A05_EduDetail/A05_frontend.md", "source_location": "L56", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_a05_edudetail_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_\uc774\ubca4\ud2b8_\ud578\ub4e4\ub7ec", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A05_EduDetail/A05_frontend.md", "source_location": "L59", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_a05_edudetail_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a05_edudetail_a05_frontend_\uc758\uc874\uc131", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A05_EduDetail/A05_frontend.md", "source_location": "L65", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/b274d5ee1fd61e7bc3013ac1dfaba29d570264ad0322202e9f907db6a7cd5717.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/b274d5ee1fd61e7bc3013ac1dfaba29d570264ad0322202e9f907db6a7cd5717.json deleted file mode 100644 index bad26167..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/b274d5ee1fd61e7bc3013ac1dfaba29d570264ad0322202e9f907db6a7cd5717.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_md", "label": "A09_backend.md", "file_type": "document", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_a09_security_backend", "label": "A09_Security \u2014 Backend", "file_type": "document", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_\ud30c\uc77c_\uad6c\uc870", "label": "\ud30c\uc77c \uad6c\uc870", "file_type": "document", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", "label": "API \uc5d4\ub4dc\ud3ec\uc778\ud2b8", "file_type": "document", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L19"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_\ub9c8\uc2a4\ud130_\ud68c\uc0ac_\uad00\ub9ac\uc790_\uc804\uc6a9_require_master", "label": "\ub9c8\uc2a4\ud130(\ud68c\uc0ac \uad00\ub9ac\uc790) \uc804\uc6a9 \u2014 `require_master`", "file_type": "document", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L21"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_\uc2dc\uc2a4\ud15c_\uad00\ub9ac\uc790_\uc804\uc6a9_require_system_admin", "label": "\uc2dc\uc2a4\ud15c \uad00\ub9ac\uc790 \uc804\uc6a9 \u2014 `require_system_admin`", "file_type": "document", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L31"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_\uc778\uc99d_\uc0ac\uc6a9\uc790_\uacf5\ud1b5_verify_session", "label": "\uc778\uc99d \uc0ac\uc6a9\uc790 \uacf5\ud1b5 \u2014 `verify_session`", "file_type": "document", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L39"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_\uc694\uccad_\uc2a4\ud0a4\ub9c8_pydantic", "label": "\uc694\uccad \uc2a4\ud0a4\ub9c8 (Pydantic)", "file_type": "document", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L45"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_db_\uc800\uc7a5_activity_logs", "label": "DB \uc800\uc7a5 (activity_logs)", "file_type": "document", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L55"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_\uad8c\ud55c_\ud5ec\ud37c", "label": "\uad8c\ud55c \ud5ec\ud37c", "file_type": "document", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L60"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_\uc758\uc874\uc131_\uacf5\ud1b5_\uc720\ud2f8", "label": "\uc758\uc874\uc131 (\uacf5\ud1b5 \uc720\ud2f8)", "file_type": "document", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L67"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_\ucc38\uace0", "label": "\ucc38\uace0", "file_type": "document", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L73"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_security_a09_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a06_login_a06_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a07_register_a07_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_auth_rbac_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_a09_security_backend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_a09_security_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_\ud30c\uc77c_\uad6c\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_a09_security_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L19", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_\ub9c8\uc2a4\ud130_\ud68c\uc0ac_\uad00\ub9ac\uc790_\uc804\uc6a9_require_master", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L21", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_\uc2dc\uc2a4\ud15c_\uad00\ub9ac\uc790_\uc804\uc6a9_require_system_admin", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L31", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_\uc778\uc99d_\uc0ac\uc6a9\uc790_\uacf5\ud1b5_verify_session", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L39", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_a09_security_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_\uc694\uccad_\uc2a4\ud0a4\ub9c8_pydantic", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L45", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_a09_security_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_db_\uc800\uc7a5_activity_logs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L55", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_db_schema_logs_monitoring_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L58", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_a09_security_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_\uad8c\ud55c_\ud5ec\ud37c", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L60", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_a09_security_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_\uc758\uc874\uc131_\uacf5\ud1b5_\uc720\ud2f8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L67", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_common_util_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L69", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_dependencies_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L70", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_db_schema_users_auth_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L71", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_a09_security_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a09_security_a09_backend_\ucc38\uace0", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A09_Security/A09_backend.md", "source_location": "L73", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/bc8f362e6683fa0ae51daf283b5d2a7813c06e0dc3f073f5680c831ecf7292f0.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/bc8f362e6683fa0ae51daf283b5d2a7813c06e0dc3f073f5680c831ecf7292f0.json deleted file mode 100644 index 9344507b..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/bc8f362e6683fa0ae51daf283b5d2a7813c06e0dc3f073f5680c831ecf7292f0.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "label": "log.md", "file_type": "document", "source_file": "log.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "label": "Wiki Log", "file_type": "document", "source_file": "log.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_lint_\uad6c\ud615_\uc0c1\uc704_\ud3f4\ub354_\ud0c8\ucd9c_\ub9c1\ud06c_concepts_\uc804\uc218_\uc815\ubc00_\uad50\uc815", "label": "[2026-07-12] lint | \uad6c\ud615 \uc0c1\uc704 \ud3f4\ub354 \ud0c8\ucd9c \ub9c1\ud06c(../../concepts/) \uc804\uc218 \uc815\ubc00 \uad50\uc815", "file_type": "document", "source_file": "log.md", "source_location": "L6"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_lint_5\ud68c_\ubc18\ubcf5_\ub9b0\ud2b8_\uac1c\uc120_\uc0ac\uc774\ud074_\uc218\ud589_\ubc0f_\uc704\ud0a4_\uba54\ud0c0_\uc815\ubcf4_\uc815\ubc00_\ubcf4\uc644", "label": "[2026-07-12] lint | 5\ud68c \ubc18\ubcf5 \ub9b0\ud2b8-\uac1c\uc120 \uc0ac\uc774\ud074 \uc218\ud589 \ubc0f \uc704\ud0a4 \uba54\ud0c0 \uc815\ubcf4 \uc815\ubc00 \ubcf4\uc644", "file_type": "document", "source_file": "log.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_db_34\uac1c_\ud14c\uc774\ube14_\uc804\uc218_\uceec\ub7fc_\uc2e4\uce21_\ubc0f_\uc704\ud0a4_\ucd5c\uc2e0\ud654", "label": "[2026-07-12] ingest | DB 34\uac1c \ud14c\uc774\ube14 \uc804\uc218 \uceec\ub7fc \uc2e4\uce21 \ubc0f \uc704\ud0a4 \ucd5c\uc2e0\ud654", "file_type": "document", "source_file": "log.md", "source_location": "L17"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_lint_3\ud68c_\ubc18\ubcf5_\ub9b0\ud2b8_\uac1c\uc120_\uc0ac\uc774\ud074_\uc218\ud589_\ubc0f_\uc704\ud0a4_\ubb34\uacb0\uc131_\ud655\ubcf4", "label": "[2026-07-12] ingest+lint | 3\ud68c \ubc18\ubcf5 \ub9b0\ud2b8-\uac1c\uc120 \uc0ac\uc774\ud074 \uc218\ud589 \ubc0f \uc704\ud0a4 \ubb34\uacb0\uc131 \ud655\ubcf4", "file_type": "document", "source_file": "log.md", "source_location": "L30"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_b09_wf6_estimation_\uc2e4_\ucf54\ub4dc_\ub300\uc870_\ubbf8\ucc29\uc218_\ud655\uc778", "label": "[2026-07-12] ingest | B09_wf6_Estimation (\uc2e4 \ucf54\ub4dc \ub300\uc870, \ubbf8\ucc29\uc218 \ud655\uc778)", "file_type": "document", "source_file": "log.md", "source_location": "L36"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_b07_wf4_designdetail_\uc2e4_\ucf54\ub4dc_\ub300\uc870_\ubbf8\ucc29\uc218_\ud655\uc778", "label": "[2026-07-12] ingest | B07_wf4_DesignDetail (\uc2e4 \ucf54\ub4dc \ub300\uc870, \ubbf8\ucc29\uc218 \ud655\uc778)", "file_type": "document", "source_file": "log.md", "source_location": "L47"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_b04_wf1_surface_\uc2e4_\ucf54\ub4dc_\ub300\uc870_5\ubd84\ud560_\uc0c1\uc138\ud654", "label": "[2026-07-12] ingest | B04_wf1_Surface (\uc2e4 \ucf54\ub4dc \ub300\uc870\u00b75\ubd84\ud560 \uc0c1\uc138\ud654)", "file_type": "document", "source_file": "log.md", "source_location": "L57"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_b02_projregister_backend_frontend_db_\uc0c1\uc138\ud654", "label": "[2026-07-12] ingest | B02_ProjRegister (backend + frontend + db \uc0c1\uc138\ud654)", "file_type": "document", "source_file": "log.md", "source_location": "L69"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_query_b01_dashboard_\uc2e4_\ucf54\ub4dc_\uae30\uc900_\ucd5c\uc2e0\ud654", "label": "[2026-07-12] query | B01_Dashboard \uc2e4 \ucf54\ub4dc \uae30\uc900 \ucd5c\uc2e0\ud654", "file_type": "document", "source_file": "log.md", "source_location": "L85"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_query_b03_fileinput_\uc2e4_\ucf54\ub4dc_\uae30\uc900_\ucd5c\uc2e0\ud654", "label": "[2026-07-12] query | B03_FileInput \uc2e4 \ucf54\ub4dc \uae30\uc900 \ucd5c\uc2e0\ud654", "file_type": "document", "source_file": "log.md", "source_location": "L93"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_query_b05_wf2_route_\uc2e4_\ucf54\ub4dc_\uae30\uc900_\ucd5c\uc2e0\ud654", "label": "[2026-07-12] query | B05_wf2_Route \uc2e4 \ucf54\ub4dc \uae30\uc900 \ucd5c\uc2e0\ud654", "file_type": "document", "source_file": "log.md", "source_location": "L102"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_query_b06_wf3_profilecross_\uc2e4_\ucf54\ub4dc_\uae30\uc900_\ucd5c\uc2e0\ud654", "label": "[2026-07-12] query | B06_wf3_ProfileCross \uc2e4 \ucf54\ub4dc \uae30\uc900 \ucd5c\uc2e0\ud654", "file_type": "document", "source_file": "log.md", "source_location": "L111"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_query_b08_wf5_quantity_\uc2e4_\ucf54\ub4dc_\uae30\uc900_\ucd5c\uc2e0\ud654", "label": "[2026-07-12] query | B08_wf5_Quantity \uc2e4 \ucf54\ub4dc \uae30\uc900 \ucd5c\uc2e0\ud654", "file_type": "document", "source_file": "log.md", "source_location": "L119"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_lint_\uc804\uccb4_\uc704\ud0a4_\uad6c\uc870_\uc0c1\ud0dc_\uacf5\uc720_\uac1c\ub150_\uc815\ub9ac", "label": "[2026-07-12] lint | \uc804\uccb4 \uc704\ud0a4 \uad6c\uc870\u00b7\uc0c1\ud0dc\u00b7\uacf5\uc720 \uac1c\ub150 \uc815\ub9ac", "file_type": "document", "source_file": "log.md", "source_location": "L126"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_lint_\uc804\uccb4_\uc704\ud0a4_\uad6c\uc870_\uc0c1\ud0dc_\uacf5\uc720_\uac1c\ub150_\uc815\ub9ac_134", "label": "[2026-07-12] lint | \uc804\uccb4 \uc704\ud0a4 \uad6c\uc870\u00b7\uc0c1\ud0dc\u00b7\uacf5\uc720 \uac1c\ub150 \uc815\ub9ac", "file_type": "document", "source_file": "log.md", "source_location": "L134"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_lint_\uc704\ud0a4_\uc2dc\uc2a4\ud15c_\ucd08\uae30_\uc138\ud305", "label": "[2026-07-12] lint | \uc704\ud0a4 \uc2dc\uc2a4\ud15c \ucd08\uae30 \uc138\ud305", "file_type": "document", "source_file": "log.md", "source_location": "L141"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_guidelines_plans_7\uac74_\uc77c\uad04_\ubc18\uc601", "label": "[2026-07-12] ingest | guidelines/plans 7\uac74 \uc77c\uad04 \ubc18\uc601", "file_type": "document", "source_file": "log.md", "source_location": "L148"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_query_lint_\uc2e4_db_\uc2e4_\ucf54\ub4dc_\ub300\uc870_\uac80\uc99d_\uc77d\uae30_\uc804\uc6a9", "label": "[2026-07-12] query+lint | \uc2e4 DB/\uc2e4 \ucf54\ub4dc \ub300\uc870 \uac80\uc99d (\uc77d\uae30 \uc804\uc6a9)", "file_type": "document", "source_file": "log.md", "source_location": "L157"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_lint_page_id_frontmatter_\ud544\ub4dc_\ub3c4\uc785", "label": "[2026-07-12] lint | page_id frontmatter \ud544\ub4dc \ub3c4\uc785", "file_type": "document", "source_file": "log.md", "source_location": "L167"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_a01_home_\uc2e4_\ucf54\ub4dc_\ubc18\uc601", "label": "[2026-07-12] ingest | A01_Home \uc2e4 \ucf54\ub4dc \ubc18\uc601", "file_type": "document", "source_file": "log.md", "source_location": "L173"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_refactor_\ud30c\uc77c\uba85_\uaddc\uce59_\ub3c4\uc785_\ubc0f_\ub9c1\ud06c_\uc218\uc815", "label": "[2026-07-12] refactor | \ud30c\uc77c\uba85 \uaddc\uce59 \ub3c4\uc785 \ubc0f \ub9c1\ud06c \uc218\uc815", "file_type": "document", "source_file": "log.md", "source_location": "L180"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_lint_a\uadf8\ub8f9_a01_a09_\uc804\uccb4_\uac80\uc99d_\ubc0f_\uc815\ud569\uc131_\uc810\uac80", "label": "[2026-07-12] lint | A\uadf8\ub8f9(A01~A09) \uc804\uccb4 \uac80\uc99d \ubc0f \uc815\ud569\uc131 \uc810\uac80", "file_type": "document", "source_file": "log.md", "source_location": "L188"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_a09_security_backend_frontend_\uc0c1\uc138\ud654", "label": "[2026-07-12] ingest | A09_Security (backend + frontend \uc0c1\uc138\ud654)", "file_type": "document", "source_file": "log.md", "source_location": "L204"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_a08_support_backend_frontend_\uc0c1\uc138\ud654", "label": "[2026-07-12] ingest | A08_Support (backend + frontend \uc0c1\uc138\ud654)", "file_type": "document", "source_file": "log.md", "source_location": "L219"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_a07_register_backend_frontend_\uc0c1\uc138\ud654", "label": "[2026-07-12] ingest | A07_Register (backend + frontend \uc0c1\uc138\ud654)", "file_type": "document", "source_file": "log.md", "source_location": "L233"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_a06_login_backend_frontend_\uc0c1\uc138\ud654", "label": "[2026-07-12] ingest | A06_Login (backend + frontend \uc0c1\uc138\ud654)", "file_type": "document", "source_file": "log.md", "source_location": "L248"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_lint_a03_a05_\uc778\uc81c\uc2a4\ud2b8_\uc7ac\uc810\uac80", "label": "[2026-07-12] lint | A03~A05 \uc778\uc81c\uc2a4\ud2b8 \uc7ac\uc810\uac80", "file_type": "document", "source_file": "log.md", "source_location": "L263"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_a05_edudetail", "label": "[2026-07-12] ingest | A05_EduDetail", "file_type": "document", "source_file": "log.md", "source_location": "L274"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_a04_newshistory", "label": "[2026-07-12] ingest | A04_NewsHistory", "file_type": "document", "source_file": "log.md", "source_location": "L284"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_a03_compdetail", "label": "[2026-07-12] ingest | A03_CompDetail", "file_type": "document", "source_file": "log.md", "source_location": "L295"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_lint_a01_home_\ud398\uc774\uc9c0_\uac80\uc0ac_\ubc0f_\uc218\uc815", "label": "[2026-07-12] lint | A01_Home \ud398\uc774\uc9c0 \uac80\uc0ac \ubc0f \uc218\uc815", "file_type": "document", "source_file": "log.md", "source_location": "L305"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_a02_progdetail_a00_common_framework", "label": "[2026-07-12] ingest | A02_ProgDetail + A00_Common Framework", "file_type": "document", "source_file": "log.md", "source_location": "L318"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L1", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_lint_\uad6c\ud615_\uc0c1\uc704_\ud3f4\ub354_\ud0c8\ucd9c_\ub9c1\ud06c_concepts_\uc804\uc218_\uc815\ubc00_\uad50\uc815", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L6", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_concepts_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L7", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_db_schema_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_storage_paths_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_lint_5\ud68c_\ubc18\ubcf5_\ub9b0\ud2b8_\uac1c\uc120_\uc0ac\uc774\ud074_\uc218\ud589_\ubc0f_\uc704\ud0a4_\uba54\ud0c0_\uc815\ubcf4_\uc815\ubc00_\ubcf4\uc644", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_b02_projregister_b02_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L14", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_b07_wf4_designdetail_b07_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L15", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_b08_wf5_quantity_b08_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L15", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_b09_wf6_estimation_b09_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L15", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_db_34\uac1c_\ud14c\uc774\ube14_\uc804\uc218_\uceec\ub7fc_\uc2e4\uce21_\ubc0f_\uc704\ud0a4_\ucd5c\uc2e0\ud654", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L17", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_unconfirmed_readme_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L27", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_lint_3\ud68c_\ubc18\ubcf5_\ub9b0\ud2b8_\uac1c\uc120_\uc0ac\uc774\ud074_\uc218\ud589_\ubc0f_\uc704\ud0a4_\ubb34\uacb0\uc131_\ud655\ubcf4", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L30", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_db_schema_logs_monitoring_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L33", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_b09_wf6_estimation_\uc2e4_\ucf54\ub4dc_\ub300\uc870_\ubbf8\ucc29\uc218_\ud655\uc778", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L36", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_b09_wf6_estimation_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L43", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_b07_wf4_designdetail_\uc2e4_\ucf54\ub4dc_\ub300\uc870_\ubbf8\ucc29\uc218_\ud655\uc778", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L47", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_b07_wf4_designdetail_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L54", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_b04_wf1_surface_\uc2e4_\ucf54\ub4dc_\ub300\uc870_5\ubd84\ud560_\uc0c1\uc138\ud654", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L57", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_b02_projregister_backend_frontend_db_\uc0c1\uc138\ud654", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L69", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_b02_projregister_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L82", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_query_b01_dashboard_\uc2e4_\ucf54\ub4dc_\uae30\uc900_\ucd5c\uc2e0\ud654", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L85", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_query_b03_fileinput_\uc2e4_\ucf54\ub4dc_\uae30\uc900_\ucd5c\uc2e0\ud654", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L93", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_query_b05_wf2_route_\uc2e4_\ucf54\ub4dc_\uae30\uc900_\ucd5c\uc2e0\ud654", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L102", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_query_b06_wf3_profilecross_\uc2e4_\ucf54\ub4dc_\uae30\uc900_\ucd5c\uc2e0\ud654", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L111", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_query_b08_wf5_quantity_\uc2e4_\ucf54\ub4dc_\uae30\uc900_\ucd5c\uc2e0\ud654", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L119", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_lint_\uc804\uccb4_\uc704\ud0a4_\uad6c\uc870_\uc0c1\ud0dc_\uacf5\uc720_\uac1c\ub150_\uc815\ub9ac", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L126", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_lint_\uc804\uccb4_\uc704\ud0a4_\uad6c\uc870_\uc0c1\ud0dc_\uacf5\uc720_\uac1c\ub150_\uc815\ub9ac_134", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L134", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_lint_\uc704\ud0a4_\uc2dc\uc2a4\ud15c_\ucd08\uae30_\uc138\ud305", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L141", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_guidelines_plans_7\uac74_\uc77c\uad04_\ubc18\uc601", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L148", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_db_schema_overview_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L153", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_workflow_state_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L154", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_query_lint_\uc2e4_db_\uc2e4_\ucf54\ub4dc_\ub300\uc870_\uac80\uc99d_\uc77d\uae30_\uc804\uc6a9", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L157", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_concepts_db_schema_overview_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L159", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_concepts_workflow_state_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L161", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_lint_page_id_frontmatter_\ud544\ub4dc_\ub3c4\uc785", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L167", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_a01_home_\uc2e4_\ucf54\ub4dc_\ubc18\uc601", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L173", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_refactor_\ud30c\uc77c\uba85_\uaddc\uce59_\ub3c4\uc785_\ubc0f_\ub9c1\ud06c_\uc218\uc815", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L180", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_a01_home_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L184", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_a01_home_a01_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L184", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_lint_a\uadf8\ub8f9_a01_a09_\uc804\uccb4_\uac80\uc99d_\ubc0f_\uc815\ud569\uc131_\uc810\uac80", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L188", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_b01_dashboard_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L200", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_a09_security_backend_frontend_\uc0c1\uc138\ud654", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L204", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_a09_security_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L217", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_a09_security_a09_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L217", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_a08_support_backend_frontend_\uc0c1\uc138\ud654", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L219", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_a08_support_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L231", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_a08_support_a08_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L231", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_a07_register_backend_frontend_\uc0c1\uc138\ud654", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L233", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_a07_register_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L246", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_a07_register_a07_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L246", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_a06_login_backend_frontend_\uc0c1\uc138\ud654", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L248", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_auth_rbac_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L260", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_a06_login_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L261", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_a06_login_a06_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L261", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_lint_a03_a05_\uc778\uc81c\uc2a4\ud2b8_\uc7ac\uc810\uac80", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L263", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_a00_common_app_shell_framework_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L270", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_a00_app_shell_framework_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L270", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_a05_edudetail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L274", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_a04_newshistory", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L284", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_a03_compdetail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L295", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_lint_a01_home_\ud398\uc774\uc9c0_\uac80\uc0ac_\ubc0f_\uc218\uc815", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L305", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_ui_template_locale_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L310", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_ui_template_elements_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L310", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_ui_templates_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L314", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_wiki_log", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_log_2026_07_12_ingest_a02_progdetail_a00_common_framework", "relation": "contains", "confidence": "EXTRACTED", "source_file": "log.md", "source_location": "L318", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/c0a1926f8af61577dc912e4ca9824e1459355dd7538f1577120a4b7ec9f8a0b6.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/c0a1926f8af61577dc912e4ca9824e1459355dd7538f1577120a4b7ec9f8a0b6.json deleted file mode 100644 index 4379bda1..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/c0a1926f8af61577dc912e4ca9824e1459355dd7538f1577120a4b7ec9f8a0b6.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_md", "label": "A07_backend.md", "file_type": "document", "source_file": "pages/A07_Register/A07_backend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_a07_register_backend", "label": "A07_Register \u2014 Backend", "file_type": "document", "source_file": "pages/A07_Register/A07_backend.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_\ud30c\uc77c_\uad6c\uc870", "label": "\ud30c\uc77c \uad6c\uc870", "file_type": "document", "source_file": "pages/A07_Register/A07_backend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", "label": "API \uc5d4\ub4dc\ud3ec\uc778\ud2b8", "file_type": "document", "source_file": "pages/A07_Register/A07_backend.md", "source_location": "L19"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_\uc694\uccad_\uc2a4\ud0a4\ub9c8_pydantic", "label": "\uc694\uccad \uc2a4\ud0a4\ub9c8 (Pydantic)", "file_type": "document", "source_file": "pages/A07_Register/A07_backend.md", "source_location": "L27"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_\uac00\uc785_\ub85c\uc9c1_\ud750\ub984", "label": "\uac00\uc785 \ub85c\uc9c1 \ud750\ub984", "file_type": "document", "source_file": "pages/A07_Register/A07_backend.md", "source_location": "L36"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_\uc758\uc874\uc131_\uacf5\ud1b5_\uc720\ud2f8", "label": "\uc758\uc874\uc131 (\uacf5\ud1b5 \uc720\ud2f8)", "file_type": "document", "source_file": "pages/A07_Register/A07_backend.md", "source_location": "L48"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_\ucc38\uace0", "label": "\ucc38\uace0", "file_type": "document", "source_file": "pages/A07_Register/A07_backend.md", "source_location": "L54"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_register_a07_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a06_login_a06_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_auth_rbac_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_backend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_a07_register_backend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_backend.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_a07_register_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_\ud30c\uc77c_\uad6c\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_backend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_a07_register_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_backend.md", "source_location": "L19", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_a07_register_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_\uc694\uccad_\uc2a4\ud0a4\ub9c8_pydantic", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_backend.md", "source_location": "L27", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_a07_register_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_\uac00\uc785_\ub85c\uc9c1_\ud750\ub984", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_backend.md", "source_location": "L36", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_a07_register_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_\uc758\uc874\uc131_\uacf5\ud1b5_\uc720\ud2f8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_backend.md", "source_location": "L48", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_common_util_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_backend.md", "source_location": "L50", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_db_schema_users_auth_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_backend.md", "source_location": "L52", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_a07_register_backend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_\ucc38\uace0", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_backend.md", "source_location": "L54", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_backend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_b01_dashboard_b01_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_backend.md", "source_location": "L57", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/c3a3a40df2648ee75578c94723b6824b1050d0df0b0ee7719b7da9115e3e9d5b.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/c3a3a40df2648ee75578c94723b6824b1050d0df0b0ee7719b7da9115e3e9d5b.json deleted file mode 100644 index 30812f71..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/c3a3a40df2648ee75578c94723b6824b1050d0df0b0ee7719b7da9115e3e9d5b.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_md", "label": "ui_templates.md", "file_type": "document", "source_file": "concepts/ui_templates.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_ui_templates_localization_components", "label": "UI Templates \u2014 Localization & Components", "file_type": "document", "source_file": "concepts/ui_templates.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_ui_template_locale_ts_\ub2e4\uad6d\uc5b4_\uad00\ub9ac", "label": "ui_template_locale.ts (\ub2e4\uad6d\uc5b4 \uad00\ub9ac)", "file_type": "document", "source_file": "concepts/ui_templates.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_\ud575\uc2ec_\uae30\ub2a5", "label": "\ud575\uc2ec \uae30\ub2a5", "file_type": "document", "source_file": "concepts/ui_templates.md", "source_location": "L16"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_\uc0ac\uc6a9\ucc98_\uc5ed\ucc38\uc870", "label": "\uc0ac\uc6a9\ucc98 (\uc5ed\ucc38\uc870)", "file_type": "document", "source_file": "concepts/ui_templates.md", "source_location": "L24"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_ui_template_elements_ts_\uacf5\ud1b5_\ucef4\ud3ec\ub10c\ud2b8", "label": "ui_template_elements.ts (\uacf5\ud1b5 \ucef4\ud3ec\ub10c\ud2b8)", "file_type": "document", "source_file": "concepts/ui_templates.md", "source_location": "L30"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_\uc81c\uacf5_\ucef4\ud3ec\ub10c\ud2b8", "label": "\uc81c\uacf5 \ucef4\ud3ec\ub10c\ud2b8", "file_type": "document", "source_file": "concepts/ui_templates.md", "source_location": "L34"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_\uc0ac\uc6a9\ucc98_\uc5ed\ucc38\uc870_50", "label": "\uc0ac\uc6a9\ucc98 (\uc5ed\ucc38\uc870)", "file_type": "document", "source_file": "concepts/ui_templates.md", "source_location": "L50"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_theme_css_\uc2a4\ud0c0\uc77c_\ubcc0\uc218", "label": "theme.css (\uc2a4\ud0c0\uc77c \ubcc0\uc218)", "file_type": "document", "source_file": "concepts/ui_templates.md", "source_location": "L59"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_\ud575\uc2ec_\ubcc0\uc218", "label": "\ud575\uc2ec \ubcc0\uc218", "file_type": "document", "source_file": "concepts/ui_templates.md", "source_location": "L63"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_\uc81c\uc57d_backend_md_1", "label": "\uc81c\uc57d (backend.md \u00a71)", "file_type": "document", "source_file": "concepts/ui_templates.md", "source_location": "L75"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_\uc758\uc874\uc131", "label": "\uc758\uc874\uc131", "file_type": "document", "source_file": "concepts/ui_templates.md", "source_location": "L82"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a01_home_a01_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/ui_templates.md", "source_location": "L3", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a02_progdetail_a02_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/ui_templates.md", "source_location": "L3", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b01_dashboard_b01_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/ui_templates.md", "source_location": "L3", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b08_wf5_quantity_b08_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/ui_templates.md", "source_location": "L3", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_ui_templates_localization_components", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/ui_templates.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_ui_templates_localization_components", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_ui_template_locale_ts_\ub2e4\uad6d\uc5b4_\uad00\ub9ac", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/ui_templates.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_ui_template_locale_ts_\ub2e4\uad6d\uc5b4_\uad00\ub9ac", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_\ud575\uc2ec_\uae30\ub2a5", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/ui_templates.md", "source_location": "L16", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_ui_template_locale_ts_\ub2e4\uad6d\uc5b4_\uad00\ub9ac", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_\uc0ac\uc6a9\ucc98_\uc5ed\ucc38\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/ui_templates.md", "source_location": "L24", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a00_app_shell_framework_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/ui_templates.md", "source_location": "L27", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_ui_templates_localization_components", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_ui_template_elements_ts_\uacf5\ud1b5_\ucef4\ud3ec\ub10c\ud2b8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/ui_templates.md", "source_location": "L30", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_ui_template_elements_ts_\uacf5\ud1b5_\ucef4\ud3ec\ub10c\ud2b8", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_\uc81c\uacf5_\ucef4\ud3ec\ub10c\ud2b8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/ui_templates.md", "source_location": "L34", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_ui_template_elements_ts_\uacf5\ud1b5_\ucef4\ud3ec\ub10c\ud2b8", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_\uc0ac\uc6a9\ucc98_\uc5ed\ucc38\uc870_50", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/ui_templates.md", "source_location": "L50", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a03_compdetail_a03_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/ui_templates.md", "source_location": "L53", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a04_newshistory_a04_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/ui_templates.md", "source_location": "L54", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a05_edudetail_a05_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/ui_templates.md", "source_location": "L55", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_ui_templates_localization_components", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_theme_css_\uc2a4\ud0c0\uc77c_\ubcc0\uc218", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/ui_templates.md", "source_location": "L59", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_theme_css_\uc2a4\ud0c0\uc77c_\ubcc0\uc218", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_\ud575\uc2ec_\ubcc0\uc218", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/ui_templates.md", "source_location": "L63", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_ui_templates_localization_components", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_\uc81c\uc57d_backend_md_1", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/ui_templates.md", "source_location": "L75", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_ui_templates_localization_components", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_\uc758\uc874\uc131", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/ui_templates.md", "source_location": "L82", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/c6652706034c525ffeec3bbaf4f9f371698a1070a1adbdffb079bbdb1ce3eb2c.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/c6652706034c525ffeec3bbaf4f9f371698a1070a1adbdffb079bbdb1ce3eb2c.json deleted file mode 100644 index dbe85a15..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/c6652706034c525ffeec3bbaf4f9f371698a1070a1adbdffb079bbdb1ce3eb2c.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_db_md", "label": "B04_db.md", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_db.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_db_b04_wf1_surface_db", "label": "B04_wf1_Surface \u2014 DB", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_db.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_db_\uc4f0\ub294_\ud14c\uc774\ube14", "label": "\uc4f0\ub294 \ud14c\uc774\ube14", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_db.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_db_repository_\ud568\uc218", "label": "Repository \ud568\uc218", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_db.md", "source_location": "L23"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_db_\ucc38\uace0", "label": "\ucc38\uace0", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_db.md", "source_location": "L31"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_wf1_surface_b04_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_db.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_wf1_surface_b04_api_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_db.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_wf1_surface_b04_dependencies_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_db.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_db_schema_files_surface_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_db.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_db_b04_wf1_surface_db", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_db.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_db_b04_wf1_surface_db", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_db_\uc4f0\ub294_\ud14c\uc774\ube14", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_db.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_workflow_state_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_db.md", "source_location": "L19", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_db_schema_projects_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_db.md", "source_location": "L21", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_db_b04_wf1_surface_db", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_db_repository_\ud568\uc218", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_db.md", "source_location": "L23", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_db_b04_wf1_surface_db", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_db_\ucc38\uace0", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_db.md", "source_location": "L31", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/c7645ac1d9ed01c49738b733aa69361b91e27034b72846bf1083ee3a0b9aaf35.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/c7645ac1d9ed01c49738b733aa69361b91e27034b72846bf1083ee3a0b9aaf35.json deleted file mode 100644 index 36f25efd..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/c7645ac1d9ed01c49738b733aa69361b91e27034b72846bf1083ee3a0b9aaf35.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_api_md", "label": "B05_api.md", "file_type": "document", "source_file": "pages/B05_wf2_Route/B05_api.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_api_b05_wf2_route_api", "label": "B05_wf2_Route \u2014 API", "file_type": "document", "source_file": "pages/B05_wf2_Route/B05_api.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_api_solve_\ucc98\ub9ac_\uacb0\uacfc", "label": "solve \ucc98\ub9ac \uacb0\uacfc", "file_type": "document", "source_file": "pages/B05_wf2_Route/B05_api.md", "source_location": "L19"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_wf2_route_b05_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_api.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_wf2_route_b05_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_api.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_wf2_route_b05_db_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_api.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_api_b05_wf2_route_api", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_api.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_api.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_api_common_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_api.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_api_b05_wf2_route_api", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b05_wf2_route_b05_api_solve_\ucc98\ub9ac_\uacb0\uacfc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B05_wf2_Route/B05_api.md", "source_location": "L19", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/c82e36238d3bc7e9f58d7a65a208efd22932d394b41f00de2f065920df19c7b7.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/c82e36238d3bc7e9f58d7a65a208efd22932d394b41f00de2f065920df19c7b7.json deleted file mode 100644 index e1066a71..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/c82e36238d3bc7e9f58d7a65a208efd22932d394b41f00de2f065920df19c7b7.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_common_util_md", "label": "common_util.md", "file_type": "document", "source_file": "concepts/common_util.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_common_util_\uacf5\ud1b5_\uc720\ud2f8_common_util", "label": "\uacf5\ud1b5 \uc720\ud2f8 (common_util/)", "file_type": "document", "source_file": "concepts/common_util.md", "source_location": "L9"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_common_util_\uc774\uba54\uc77c_\ubc1c\uc1a1_common_util_email_py", "label": "\uc774\uba54\uc77c \ubc1c\uc1a1 (common_util_email.py)", "file_type": "document", "source_file": "concepts/common_util.md", "source_location": "L27"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_common_util_\ub9ac\uc18c\uc2a4_\ubaa8\ub2c8\ud130\ub9c1_common_util_resource_monitor_py", "label": "\ub9ac\uc18c\uc2a4 \ubaa8\ub2c8\ud130\ub9c1 (common_util_resource_monitor.py)", "file_type": "document", "source_file": "concepts/common_util.md", "source_location": "L31"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_common_util_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b01_dashboard_b01_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/common_util.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_common_util_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b03_fileinput_b03_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/common_util.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_common_util_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b04_wf1_surface_b04_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/common_util.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_common_util_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b05_wf2_route_b05_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/common_util.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_common_util_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b06_wf3_profilecross_b06_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/common_util.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_common_util_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_common_util_\uacf5\ud1b5_\uc720\ud2f8_common_util", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/common_util.md", "source_location": "L9", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_common_util_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/common_util.md", "source_location": "L16", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_common_util_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_storage_paths_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/common_util.md", "source_location": "L21", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_common_util_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/common_util.md", "source_location": "L23", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_common_util_\uacf5\ud1b5_\uc720\ud2f8_common_util", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_common_util_\uc774\uba54\uc77c_\ubc1c\uc1a1_common_util_email_py", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/common_util.md", "source_location": "L27", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_common_util_\uacf5\ud1b5_\uc720\ud2f8_common_util", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_common_util_\ub9ac\uc18c\uc2a4_\ubaa8\ub2c8\ud130\ub9c1_common_util_resource_monitor_py", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/common_util.md", "source_location": "L31", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/dbc60034a717404e311f43e3f724df0f5db7fc40240c9b2dea195710e80aa456.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/dbc60034a717404e311f43e3f724df0f5db7fc40240c9b2dea195710e80aa456.json deleted file mode 100644 index 4b10a1d7..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/dbc60034a717404e311f43e3f724df0f5db7fc40240c9b2dea195710e80aa456.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_md", "label": "A07_frontend.md", "file_type": "document", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_a07_register_frontend", "label": "A07_Register \u2014 Frontend", "file_type": "document", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_\ud30c\uc77c_\uad6c\uc870", "label": "\ud30c\uc77c \uad6c\uc870", "file_type": "document", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218_ui_auth_page_\uc2e4\uc0ac\uc6a9", "label": "\ucef4\ud3ec\ub10c\ud2b8 / \ud568\uc218 (UI_Auth_Page \u2014 \uc2e4\uc0ac\uc6a9)", "file_type": "document", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L24"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8_\ud568\uc218", "label": "API \ud074\ub77c\uc774\uc5b8\ud2b8 \ud568\uc218", "file_type": "document", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L33"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_\uc81c\ucd9c_\ub85c\uc9c1_2\ub2e8\uacc4_\ud3fc_\uc804\ud658", "label": "\uc81c\ucd9c \ub85c\uc9c1 (2\ub2e8\uacc4 \ud3fc \uc804\ud658)", "file_type": "document", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L43"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_\uc57d\uad00_\ub3d9\uc758_\uc544\ucf54\ub514\uc5b8", "label": "\uc57d\uad00 \ub3d9\uc758 (\uc544\ucf54\ub514\uc5b8)", "file_type": "document", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L50"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "label": "\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "file_type": "document", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L56"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_\uc2a4\ud0c0\uc77c_css", "label": "\uc2a4\ud0c0\uc77c (CSS)", "file_type": "document", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L70"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_\uc774\ubca4\ud2b8_\ud578\ub4e4\ub7ec", "label": "\uc774\ubca4\ud2b8 \ud578\ub4e4\ub7ec", "file_type": "document", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L77"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_\uc758\uc874\uc131", "label": "\uc758\uc874\uc131", "file_type": "document", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L85"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_register_a07_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a06_login_a06_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_auth_rbac_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_a07_register_frontend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_a07_register_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_\ud30c\uc77c_\uad6c\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_a07_register_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218_ui_auth_page_\uc2e4\uc0ac\uc6a9", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L24", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_a07_register_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8_\ud568\uc218", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L33", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_a07_register_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_\uc81c\ucd9c_\ub85c\uc9c1_2\ub2e8\uacc4_\ud3fc_\uc804\ud658", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L43", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_a07_register_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_\uc57d\uad00_\ub3d9\uc758_\uc544\ucf54\ub514\uc5b8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L50", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_a07_register_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L56", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_ui_templates_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L58", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_a07_register_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_\uc2a4\ud0c0\uc77c_css", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L70", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_a07_register_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_\uc774\ubca4\ud2b8_\ud578\ub4e4\ub7ec", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L77", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_a07_register_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_\uc758\uc874\uc131", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L85", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a07_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_a07_register_a00_app_shell_framework_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/A07_Register/A07_frontend.md", "source_location": "L87", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/dc48367a69497d4965a076e5baa28ca167883c8abfb32eff54161c461fcde509.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/dc48367a69497d4965a076e5baa28ca167883c8abfb32eff54161c461fcde509.json deleted file mode 100644 index a35574f8..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/dc48367a69497d4965a076e5baa28ca167883c8abfb32eff54161c461fcde509.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_api_md", "label": "B03_api.md", "file_type": "document", "source_file": "pages/B03_FileInput/B03_api.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_api_b03_fileinput_api", "label": "B03_FileInput \u2014 API", "file_type": "document", "source_file": "pages/B03_FileInput/B03_api.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_api_\uc77c\ubc18_\uc5c5\ub85c\ub4dc", "label": "\uc77c\ubc18 \uc5c5\ub85c\ub4dc", "file_type": "document", "source_file": "pages/B03_FileInput/B03_api.md", "source_location": "L14"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_api_\uccad\ud06c_\uc5c5\ub85c\ub4dc", "label": "\uccad\ud06c \uc5c5\ub85c\ub4dc", "file_type": "document", "source_file": "pages/B03_FileInput/B03_api.md", "source_location": "L19"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_api_workflow_\uc870\ud68c", "label": "workflow \uc870\ud68c", "file_type": "document", "source_file": "pages/B03_FileInput/B03_api.md", "source_location": "L27"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_fileinput_b03_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_api.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_fileinput_b03_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_api.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_fileinput_b03_db_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_api.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_api_b03_fileinput_api", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_api.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_api.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_api_common_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_api.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_api_b03_fileinput_api", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_api_\uc77c\ubc18_\uc5c5\ub85c\ub4dc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_api.md", "source_location": "L14", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_api_b03_fileinput_api", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_api_\uccad\ud06c_\uc5c5\ub85c\ub4dc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_api.md", "source_location": "L19", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_api_b03_fileinput_api", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_api_workflow_\uc870\ud68c", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_api.md", "source_location": "L27", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_api.md", "source_location": "L32", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/dc90c884f2f276e80a57bfc0e2b82b3cf72360db91b22dd9337ef082385050cb.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/dc90c884f2f276e80a57bfc0e2b82b3cf72360db91b22dd9337ef082385050cb.json deleted file mode 100644 index dcfd616a..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/dc90c884f2f276e80a57bfc0e2b82b3cf72360db91b22dd9337ef082385050cb.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_frontend_md", "label": "B03_frontend.md", "file_type": "document", "source_file": "pages/B03_FileInput/B03_frontend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_frontend_b03_fileinput_frontend", "label": "B03_FileInput \u2014 Frontend", "file_type": "document", "source_file": "pages/B03_FileInput/B03_frontend.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_frontend_\ud398\uc774\uc9c0_\uc5c5\ub85c\ub4dc_\ud750\ub984", "label": "\ud398\uc774\uc9c0\u00b7\uc5c5\ub85c\ub4dc \ud750\ub984", "file_type": "document", "source_file": "pages/B03_FileInput/B03_frontend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8", "label": "API \ud074\ub77c\uc774\uc5b8\ud2b8", "file_type": "document", "source_file": "pages/B03_FileInput/B03_frontend.md", "source_location": "L21"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_frontend_\ube0c\ub77c\uc6b0\uc800_\uc0c1\ud0dc_\uc624\ud504\ub77c\uc778_\ubcf4\uc870", "label": "\ube0c\ub77c\uc6b0\uc800 \uc0c1\ud0dc\u00b7\uc624\ud504\ub77c\uc778 \ubcf4\uc870", "file_type": "document", "source_file": "pages/B03_FileInput/B03_frontend.md", "source_location": "L31"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_frontend_\uae30\uc220\ubd80\ucc44", "label": "\uae30\uc220\ubd80\ucc44", "file_type": "document", "source_file": "pages/B03_FileInput/B03_frontend.md", "source_location": "L42"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_fileinput_b03_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_frontend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_fileinput_b03_api_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_frontend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_fileinput_b03_db_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_frontend.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_frontend_b03_fileinput_frontend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_frontend.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_frontend_b03_fileinput_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_frontend_\ud398\uc774\uc9c0_\uc5c5\ub85c\ub4dc_\ud750\ub984", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_frontend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_frontend_b03_fileinput_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_frontend.md", "source_location": "L21", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_frontend_b03_fileinput_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_frontend_\ube0c\ub77c\uc6b0\uc800_\uc0c1\ud0dc_\uc624\ud504\ub77c\uc778_\ubcf4\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_frontend.md", "source_location": "L31", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_ui_templates_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_frontend.md", "source_location": "L40", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_workflow_state_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_frontend.md", "source_location": "L40", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_frontend_b03_fileinput_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b03_fileinput_b03_frontend_\uae30\uc220\ubd80\ucc44", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B03_FileInput/B03_frontend.md", "source_location": "L42", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/e5a0d7854dc5f172c997de38f2c4dc21dc761794e098626c17dfffe673b47711.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/e5a0d7854dc5f172c997de38f2c4dc21dc761794e098626c17dfffe673b47711.json deleted file mode 100644 index e0af1673..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/e5a0d7854dc5f172c997de38f2c4dc21dc761794e098626c17dfffe673b47711.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_md", "label": "auth_rbac.md", "file_type": "document", "source_file": "concepts/auth_rbac.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uc778\uc99d_rbac", "label": "\uc778\uc99d / RBAC", "file_type": "document", "source_file": "concepts/auth_rbac.md", "source_location": "L9"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uc138\uc158_\uc778\uc99d_backend_md_6_3", "label": "\uc138\uc158 \uc778\uc99d (backend.md 6.3)", "file_type": "document", "source_file": "concepts/auth_rbac.md", "source_location": "L11"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_otp_\ube44\ubc00\ubc88\ud638", "label": "OTP / \ube44\ubc00\ubc88\ud638", "file_type": "document", "source_file": "concepts/auth_rbac.md", "source_location": "L18"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uc0ac\uc6a9\uc790_\uc0c1\ud0dc_\uc0dd\uba85\uc8fc\uae30", "label": "\uc0ac\uc6a9\uc790 \uc0c1\ud0dc \uc0dd\uba85\uc8fc\uae30", "file_type": "document", "source_file": "concepts/auth_rbac.md", "source_location": "L23"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uc5ed\ud560_users_role", "label": "\uc5ed\ud560 (users.role)", "file_type": "document", "source_file": "concepts/auth_rbac.md", "source_location": "L33"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uad8c\ud55c_\uac80\uc99d_\ud5ec\ud37c_b01_dashboard", "label": "\uad8c\ud55c \uac80\uc99d \ud5ec\ud37c (B01_Dashboard)", "file_type": "document", "source_file": "concepts/auth_rbac.md", "source_location": "L42"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uc778\uc99d_\uac31\uc2e0", "label": "\uc778\uc99d \uac31\uc2e0", "file_type": "document", "source_file": "concepts/auth_rbac.md", "source_location": "L53"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\ub77c\uc6b0\ud305_\uac00\ub4dc_frontend_md_5_2", "label": "\ub77c\uc6b0\ud305 \uac00\ub4dc (frontend.md 5.2)", "file_type": "document", "source_file": "concepts/auth_rbac.md", "source_location": "L56"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uc0ac\uc6a9\ucc98_\uc5ed\ucc38\uc870", "label": "\uc0ac\uc6a9\ucc98 (\uc5ed\ucc38\uc870)", "file_type": "document", "source_file": "concepts/auth_rbac.md", "source_location": "L59"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uacc4\ud68d\uc11c_\uc2e4\ucf54\ub4dc_\ubd88\uc77c\uce58_a\uadf8\ub8f9_\uc778\uc81c\uc2a4\ud2b8_\ubc1c\uacac", "label": "\u26a0\ufe0f \uacc4\ud68d\uc11c-\uc2e4\ucf54\ub4dc \ubd88\uc77c\uce58 (A\uadf8\ub8f9 \uc778\uc81c\uc2a4\ud2b8 \ubc1c\uacac)", "file_type": "document", "source_file": "concepts/auth_rbac.md", "source_location": "L65"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_b01_dashboard_b01_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/auth_rbac.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uc778\uc99d_rbac", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/auth_rbac.md", "source_location": "L9", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uc778\uc99d_rbac", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uc138\uc158_\uc778\uc99d_backend_md_6_3", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/auth_rbac.md", "source_location": "L11", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_db_schema_users_auth_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/auth_rbac.md", "source_location": "L13", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uc778\uc99d_rbac", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_otp_\ube44\ubc00\ubc88\ud638", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/auth_rbac.md", "source_location": "L18", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uc778\uc99d_rbac", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uc0ac\uc6a9\uc790_\uc0c1\ud0dc_\uc0dd\uba85\uc8fc\uae30", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/auth_rbac.md", "source_location": "L23", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uc778\uc99d_rbac", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uc5ed\ud560_users_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/auth_rbac.md", "source_location": "L33", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uc778\uc99d_rbac", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uad8c\ud55c_\uac80\uc99d_\ud5ec\ud37c_b01_dashboard", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/auth_rbac.md", "source_location": "L42", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uc778\uc99d_rbac", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uc778\uc99d_\uac31\uc2e0", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/auth_rbac.md", "source_location": "L53", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uc778\uc99d_rbac", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\ub77c\uc6b0\ud305_\uac00\ub4dc_frontend_md_5_2", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/auth_rbac.md", "source_location": "L56", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uc778\uc99d_rbac", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uc0ac\uc6a9\ucc98_\uc5ed\ucc38\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/auth_rbac.md", "source_location": "L59", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a06_login_a06_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/auth_rbac.md", "source_location": "L61", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a07_register_a07_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/auth_rbac.md", "source_location": "L62", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a09_security_a09_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/auth_rbac.md", "source_location": "L63", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uc778\uc99d_rbac", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_\uacc4\ud68d\uc11c_\uc2e4\ucf54\ub4dc_\ubd88\uc77c\uce58_a\uadf8\ub8f9_\uc778\uc81c\uc2a4\ud2b8_\ubc1c\uacac", "relation": "contains", "confidence": "EXTRACTED", "source_file": "concepts/auth_rbac.md", "source_location": "L65", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_auth_rbac_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_concepts_a09_security_a09_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "concepts/auth_rbac.md", "source_location": "L68", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/ec26c30de18a4df2b859538b4a3b5c4381fb4e5151386baa77d1ca9e6ce185a9.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/ec26c30de18a4df2b859538b4a3b5c4381fb4e5151386baa77d1ca9e6ce185a9.json deleted file mode 100644 index 16a6df61..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/ec26c30de18a4df2b859538b4a3b5c4381fb4e5151386baa77d1ca9e6ce185a9.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_db_md", "label": "B01_db.md", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_db.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_db_b01_dashboard_db_\uc0ac\uc6a9_\uad00\uacc4", "label": "B01_Dashboard \u2014 DB \uc0ac\uc6a9 \uad00\uacc4", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_db.md", "source_location": "L10"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_db_\ud2b8\ub79c\uc7ad\uc158_\uacbd\uacc4", "label": "\ud2b8\ub79c\uc7ad\uc158 \uacbd\uacc4", "file_type": "document", "source_file": "pages/B01_Dashboard/B01_db.md", "source_location": "L25"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dashboard_b01_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_db.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_dashboard_b01_api_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_db.md", "source_location": "L5", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_db_b01_dashboard_db_\uc0ac\uc6a9_\uad00\uacc4", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_db.md", "source_location": "L10", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_db_schema_users_auth_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_db.md", "source_location": "L16", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_db_schema_projects_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_db.md", "source_location": "L19", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_workflow_state_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_db.md", "source_location": "L20", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_db_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_db_schema_logs_monitoring_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_db.md", "source_location": "L22", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_db_b01_dashboard_db_\uc0ac\uc6a9_\uad00\uacc4", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b01_dashboard_b01_db_\ud2b8\ub79c\uc7ad\uc158_\uacbd\uacc4", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B01_Dashboard/B01_db.md", "source_location": "L25", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/f43d7fb7c134b25445c9b5d16d30a4b864c03ee044607301107af0e64c3d9bd9.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/f43d7fb7c134b25445c9b5d16d30a4b864c03ee044607301107af0e64c3d9bd9.json deleted file mode 100644 index 1d8bded9..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/f43d7fb7c134b25445c9b5d16d30a4b864c03ee044607301107af0e64c3d9bd9.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_md", "label": "B07_frontend.md", "file_type": "document", "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_b07_wf4_designdetail_frontend", "label": "B07_wf4_DesignDetail \u2014 Frontend", "file_type": "document", "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_\ud30c\uc77c_\uad6c\uc870", "label": "\ud30c\uc77c \uad6c\uc870", "file_type": "document", "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", "source_location": "L12"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", "label": "\ucef4\ud3ec\ub10c\ud2b8 / \ud568\uc218", "file_type": "document", "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", "source_location": "L18"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "label": "\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "file_type": "document", "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", "source_location": "L24"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_\uc758\uc874\uc131", "label": "\uc758\uc874\uc131", "file_type": "document", "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", "source_location": "L30"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_\ubc31\uc5d4\ub4dc_db_\ubbf8\ucc29\uc218_\uacc4\ud68d\uc801_\ubc94\uc704_\uc81c\uc678", "label": "\ubc31\uc5d4\ub4dc/DB \u2014 \ubbf8\ucc29\uc218 (\uacc4\ud68d\uc801 \ubc94\uc704 \uc81c\uc678)", "file_type": "document", "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", "source_location": "L35"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_\ucc38\uace0", "label": "\ucc38\uace0", "file_type": "document", "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", "source_location": "L42"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b06_wf3_profilecross_b06_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b08_wf5_quantity_b08_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_db_schema_structure_output_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_storage_paths_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_b07_wf4_designdetail_frontend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_b07_wf4_designdetail_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_\ud30c\uc77c_\uad6c\uc870", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", "source_location": "L12", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_b07_wf4_designdetail_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", "source_location": "L18", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_b07_wf4_designdetail_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", "source_location": "L24", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_b07_wf4_designdetail_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_\uc758\uc874\uc131", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", "source_location": "L30", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_a00_app_shell_framework_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", "source_location": "L32", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_ui_templates_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", "source_location": "L33", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_b07_wf4_designdetail_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_\ubc31\uc5d4\ub4dc_db_\ubbf8\ucc29\uc218_\uacc4\ud68d\uc801_\ubc94\uc704_\uc81c\uc678", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", "source_location": "L35", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_b07_wf4_designdetail_frontend", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b07_wf4_designdetail_b07_frontend_\ucc38\uace0", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", "source_location": "L42", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/ast/v0.9.12/f849b661543b4f07113704a24786a67a90cebd48ce726060f43d64c696689583.json b/docs/wiki/graphify-out/cache/ast/v0.9.12/f849b661543b4f07113704a24786a67a90cebd48ce726060f43d64c696689583.json deleted file mode 100644 index 9ed6c8f6..00000000 --- a/docs/wiki/graphify-out/cache/ast/v0.9.12/f849b661543b4f07113704a24786a67a90cebd48ce726060f43d64c696689583.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_api_md", "label": "B04_api.md", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_api.md", "source_location": "L1"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_api_b04_wf1_surface_api", "label": "B04_wf1_Surface \u2014 API", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_api.md", "source_location": "L8"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", "label": "\uc5d4\ub4dc\ud3ec\uc778\ud2b8", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_api.md", "source_location": "L15"}, {"id": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_api_\uc694\uccad_\uc751\ub2f5_\uc2a4\ud0a4\ub9c8_pydantic", "label": "\uc694\uccad/\uc751\ub2f5 \uc2a4\ud0a4\ub9c8 (Pydantic)", "file_type": "document", "source_file": "pages/B04_wf1_Surface/B04_api.md", "source_location": "L31"}], "edges": [{"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_wf1_surface_b04_backend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_api.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_wf1_surface_b04_frontend_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_api.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_wf1_surface_b04_db_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_api.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_wf1_surface_b04_dependencies_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_api.md", "source_location": "L4", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_api_b04_wf1_surface_api", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_api.md", "source_location": "L8", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_api_b04_wf1_surface_api", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_api.md", "source_location": "L15", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_api_b04_wf1_surface_api", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_api_\uc694\uccad_\uc751\ub2f5_\uc2a4\ud0a4\ub9c8_pydantic", "relation": "contains", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_api.md", "source_location": "L31", "weight": 1.0}, {"source": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_b04_api_md", "target": "c_program_coding_\uc784\ub3c4\uc124\uacc4_\ubc0f_\uacac\uc801\uc790\ub3d9\ud654_\ud504\ub85c\uadf8\ub7a8_\uac1c\ubc1c_docs_wiki_pages_b04_wf1_surface_schema_common_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "pages/B04_wf1_Surface/B04_api.md", "source_location": "L42", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/docs/wiki/graphify-out/cache/stat-index.json b/docs/wiki/graphify-out/cache/stat-index.json deleted file mode 100644 index 40b8f995..00000000 --- a/docs/wiki/graphify-out/cache/stat-index.json +++ /dev/null @@ -1 +0,0 @@ -{"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\AGENTS.md":{"size":2464,"mtime_ns":1783834983060468500,"word_count":251,"hash":"777dc18c8da82ae19d1ef4696015cf4a4f34c2c07d0b440fe86da472081038b8"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\CLAUDE.md":{"size":2464,"mtime_ns":1783834983060468500,"word_count":251,"hash":"7a20bcee60ba41e229ef85f767421d7179a7ae138805534d5a8f104afc477a40"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\concepts\\a00_app_shell_framework.md":{"size":3819,"mtime_ns":1783850530414116200,"word_count":373,"hash":"90d7356198e73e4cc9f6377549bb422cac5171f209ac35465cb3cf6afd457c55"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\concepts\\a00_app_shell_framework_scaffold.md":{"size":1287,"mtime_ns":1783844389012691200,"word_count":150,"hash":"0f5b6dbb9bebbfa33f4d635f070de504af4b359fb90f4b29ba9688d1d6e17d2e"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\concepts\\api_common.md":{"size":1211,"mtime_ns":1783849575585575500,"word_count":113,"hash":"a38a8ca962fdacc272da8439e0d7d9d1e1c542bc8b65333fd5579891c9857361"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\concepts\\auth_rbac.md":{"size":3720,"mtime_ns":1783849578467314400,"word_count":424,"hash":"e5a0d7854dc5f172c997de38f2c4dc21dc761794e098626c17dfffe673b47711"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\concepts\\common_util.md":{"size":2298,"mtime_ns":1783849579200175200,"word_count":227,"hash":"c82e36238d3bc7e9f58d7a65a208efd22932d394b41f00de2f065920df19c7b7"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\concepts\\db_schema\\files_surface.md":{"size":5079,"mtime_ns":1783850268591737200,"word_count":826,"hash":"32b6d000932825989e419a4136794b28850890191432179205576bde15298bf5"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\concepts\\db_schema\\logs_monitoring.md":{"size":5440,"mtime_ns":1783850257642213500,"word_count":848,"hash":"7fb3857a81e71036c1ce149c4b7245df62a5739b3547ecf4cabbdad69ea26f7d"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\concepts\\db_schema\\overview.md":{"size":3515,"mtime_ns":1783850340580860400,"word_count":380,"hash":"52811408853b074f152e72eca98203c800db677004bc8ae75c253e28b0464ee1"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\concepts\\db_schema\\projects.md":{"size":2769,"mtime_ns":1783850262520236500,"word_count":410,"hash":"645ae1caf18f1055571c195d5af0488bcb975554ef4227b5d294117aa14d35bc"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\concepts\\db_schema\\route_profile.md":{"size":3423,"mtime_ns":1783850288182818000,"word_count":560,"hash":"479a8e4089e3bb7a2cc81032c56fd9af63de315e299c5bfaa734f3dc729d25a1"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\concepts\\db_schema\\structure_output.md":{"size":3789,"mtime_ns":1783850297429242900,"word_count":618,"hash":"671505750d39bdfee5448654c63c865bd82059e3dd905065e164202716f19204"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\concepts\\db_schema\\unconfirmed\\README.md":{"size":851,"mtime_ns":1783850335081333800,"word_count":79,"hash":"1b226e5d018fc38a72090165fa26143b93b6e1c0a7e1073d8c15e0cdddbeb171"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\concepts\\db_schema\\users_auth.md":{"size":4342,"mtime_ns":1783850220271142800,"word_count":689,"hash":"29bd2bdc39958157c52fe4e872b1c1b0ff6b6f91aa809ee33b6be89c57ccd9fa"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\concepts\\dependencies.md":{"size":2620,"mtime_ns":1783850549511564200,"word_count":244,"hash":"0dddf33216964b4bf97f34f8bce4436bfa31f27f00ed2057e251ff2f7a31623a"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\concepts\\schema_common.md":{"size":855,"mtime_ns":1783844389016639700,"word_count":99,"hash":"7b7b025371ec01828e5296e1181ed9c5c4381d26906e595e1bf74b413f559880"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\concepts\\storage_paths.md":{"size":2305,"mtime_ns":1783850555214286100,"word_count":197,"hash":"864c1304191de6468d4edc50434ec59bea00a7f2d0eee6bacc57ecbf7b4f7e04"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\concepts\\ui_templates.md":{"size":4829,"mtime_ns":1783850532482036500,"word_count":463,"hash":"c3a3a40df2648ee75578c94723b6824b1050d0df0b0ee7719b7da9115e3e9d5b"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\concepts\\workflow_state.md":{"size":6332,"mtime_ns":1783850560332646600,"word_count":494,"hash":"913554bc65be372e31038c5b6db99ffb11804957097d503d81077bbf581c6403"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\index.md":{"size":7464,"mtime_ns":1783850468542085500,"word_count":617,"hash":"4df26e4d9121bc917f5542182c4d4b90fe7405d00db5ca205080ab8b2fcba450"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\log.md":{"size":34477,"mtime_ns":1783850724188808200,"word_count":3348,"hash":"bc8f362e6683fa0ae51daf283b5d2a7813c06e0dc3f073f5680c831ecf7292f0"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\A01_Home\\A01_components.md":{"size":1202,"mtime_ns":1783849656616777200,"word_count":150,"hash":"49fd7d94d4b60db667d3b09b49911f92d55600a624ab7905ccbc6e3ad42a3352"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\A01_Home\\A01_frontend.md":{"size":2355,"mtime_ns":1783849659828017600,"word_count":245,"hash":"5fec6364bd060aef3f2afe819bea5354565d898bbb2169efed8ae55d8aba79cc"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\A02_ProgDetail\\A02_components.md":{"size":1807,"mtime_ns":1783849775265680000,"word_count":203,"hash":"2808d040f080236ab87ff5d059ee801796b07a63f6a114bd2a2109e0b5806e12"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\A02_ProgDetail\\A02_frontend.md":{"size":1459,"mtime_ns":1783849775266683300,"word_count":119,"hash":"430bcc25e31726266357a8339dcac795f30c714099326f504dcf44364ffdfd63"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\A03_CompDetail\\A03_frontend.md":{"size":2898,"mtime_ns":1783844088302852900,"word_count":305,"hash":"2be5bc2fd35d20f0f1eb7c1c707e58347f2b10bcc8843f04fffa74fbdca4d2a7"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\A04_NewsHistory\\A04_frontend.md":{"size":3337,"mtime_ns":1783844098325878300,"word_count":353,"hash":"890159057c1b315dc2f987cc22cff3d9f78d8a6b70c16341450a63a15eea1e79"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\A05_EduDetail\\A05_frontend.md":{"size":2731,"mtime_ns":1783844108812844900,"word_count":294,"hash":"ab34ed804dca07323ea78583add067fd18e7d17a741c99321bd6c782e82c7c82"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\A06_Login\\A06_backend.md":{"size":3844,"mtime_ns":1783849775268766500,"word_count":400,"hash":"aacc52798876b1c9f1528049e014dfff812e4362029bf2900537a635cea03345"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\A06_Login\\A06_frontend.md":{"size":3934,"mtime_ns":1783849775268766500,"word_count":398,"hash":"87a19225130d879a47fa512b619a4dfcd67d6a13bcfed08f9280892d055b7aec"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\A07_Register\\A07_backend.md":{"size":2748,"mtime_ns":1783849775269772500,"word_count":258,"hash":"c0a1926f8af61577dc912e4ca9824e1459355dd7538f1577120a4b7ec9f8a0b6"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\A07_Register\\A07_frontend.md":{"size":5058,"mtime_ns":1783849775270772200,"word_count":464,"hash":"dbc60034a717404e311f43e3f724df0f5db7fc40240c9b2dea195710e80aa456"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\A08_Support\\A08_backend.md":{"size":2671,"mtime_ns":1783849900589599200,"word_count":268,"hash":"1d05c804dd886b8148e1a246412e6c96776d60ed81e47cd559330fd26a8da829"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\A08_Support\\A08_frontend.md":{"size":3167,"mtime_ns":1783849775273060500,"word_count":321,"hash":"50e6b6bf0066bb5b891dbcf8988ee06ec3918a47e2e33f1bba85cc3d586c424c"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\A09_Security\\A09_backend.md":{"size":4013,"mtime_ns":1783849775274067100,"word_count":354,"hash":"b274d5ee1fd61e7bc3013ac1dfaba29d570264ad0322202e9f907db6a7cd5717"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\A09_Security\\A09_frontend.md":{"size":4171,"mtime_ns":1783849775275076800,"word_count":380,"hash":"3db683a2cde7e94a133978113563de2a3fd70d54fdde9b2002e15145901824c1"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B01_Dashboard\\B01_api.md":{"size":3782,"mtime_ns":1783849775277077100,"word_count":405,"hash":"118279706a1eb23a45441e1ff8903d5dbd50d4d0b51975d3a17b60f7780055ca"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B01_Dashboard\\B01_backend.md":{"size":5363,"mtime_ns":1783849775278077000,"word_count":440,"hash":"646d6ab79be622a7ff0a6e70be8cff4eba1d7a96287360cb7c92afbf09ce3094"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B01_Dashboard\\B01_db.md":{"size":2201,"mtime_ns":1783850631766598100,"word_count":216,"hash":"ec26c30de18a4df2b859538b4a3b5c4381fb4e5151386baa77d1ca9e6ce185a9"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B01_Dashboard\\B01_dependencies.md":{"size":1523,"mtime_ns":1783849775280134300,"word_count":157,"hash":"981095fcec47154f4626fb3eab7ecdc4407e949a7aa702a13130c8e1b70920ec"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B01_Dashboard\\B01_frontend.md":{"size":3177,"mtime_ns":1783849775280134300,"word_count":337,"hash":"1e373af97a118ae3015a3afa398085bf5df4a98ba74866cbe2f8697b00379869"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B02_ProjRegister\\B02_backend.md":{"size":4260,"mtime_ns":1783849775282399000,"word_count":382,"hash":"2511b51e4eb20cf62e268122c88d3fb89dbd706320402a4eccb759b58281fa0a"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B02_ProjRegister\\B02_db.md":{"size":1450,"mtime_ns":1783849775282399000,"word_count":129,"hash":"0624d255f06a43b161abeb6fdee9630e320fd97ac8bfcec25673ffef09e4d059"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B02_ProjRegister\\B02_frontend.md":{"size":3727,"mtime_ns":1783849775283398800,"word_count":379,"hash":"4a5f18486fb810daf3f1c5b1551536726d973ee824de69be0d36d0a60322cdaa"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B03_FileInput\\B03_api.md":{"size":1547,"mtime_ns":1783849775284398900,"word_count":151,"hash":"dc48367a69497d4965a076e5baa28ca167883c8abfb32eff54161c461fcde509"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B03_FileInput\\B03_backend.md":{"size":2973,"mtime_ns":1783849775285399000,"word_count":290,"hash":"145e767fcb59085a1ee13d461285411d8b86d513511ea6df46b3348775ca49a4"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B03_FileInput\\B03_db.md":{"size":1423,"mtime_ns":1783850637448416300,"word_count":147,"hash":"186d47f554f2e797fb63a3167221e324a92f283cd57fa229bc6d47bb5224d32b"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B03_FileInput\\B03_dependencies.md":{"size":1552,"mtime_ns":1783849775287398800,"word_count":160,"hash":"944204e569fb7c208be3dd6b08b83c70b5229be9c7f932926aeb285b77807561"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B03_FileInput\\B03_frontend.md":{"size":2550,"mtime_ns":1783849775287398800,"word_count":278,"hash":"dc90c884f2f276e80a57bfc0e2b82b3cf72360db91b22dd9337ef082385050cb"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B04_wf1_Surface\\B04_api.md":{"size":3006,"mtime_ns":1783849775291034500,"word_count":262,"hash":"f849b661543b4f07113704a24786a67a90cebd48ce726060f43d64c696689583"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B04_wf1_Surface\\B04_backend.md":{"size":4043,"mtime_ns":1783849775292158500,"word_count":355,"hash":"474c775ef5ef23ed26e38b39828a52131bedb7f8a770ad07dc99148df7e87c5b"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B04_wf1_Surface\\B04_db.md":{"size":1681,"mtime_ns":1783849775292957100,"word_count":160,"hash":"c6652706034c525ffeec3bbaf4f9f371698a1070a1adbdffb079bbdb1ce3eb2c"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B04_wf1_Surface\\B04_dependencies.md":{"size":1295,"mtime_ns":1783849775292957100,"word_count":142,"hash":"97478cabbb537844beae71898c5b219a2b94edecb3285f81207390133befebed"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B04_wf1_Surface\\B04_frontend.md":{"size":3750,"mtime_ns":1783849775293959500,"word_count":321,"hash":"8d85ff410419578b818f52078b23e7a3d3a4a7c9d3c18d6994a3d65420b74bd8"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B05_wf2_Route\\B05_api.md":{"size":1194,"mtime_ns":1783849775295465300,"word_count":123,"hash":"c7645ac1d9ed01c49738b733aa69361b91e27034b72846bf1083ee3a0b9aaf35"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B05_wf2_Route\\B05_backend.md":{"size":3005,"mtime_ns":1783849775295465300,"word_count":303,"hash":"a6d3afe6fc8285143b839973bd8506e5c74fa12760a92b9d72930d4a96d07742"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B05_wf2_Route\\B05_db.md":{"size":1676,"mtime_ns":1783850658484400400,"word_count":175,"hash":"36e9c3aa280793956998877458fc2ac0767eeec0172efa0542cb863877908fcb"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B05_wf2_Route\\B05_dependencies.md":{"size":1133,"mtime_ns":1783849775298166400,"word_count":131,"hash":"9691ebb53407e479750a796e82774905fe22139f5b049c3f7dc0ad6534c378cf"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B05_wf2_Route\\B05_frontend.md":{"size":2138,"mtime_ns":1783849775298166400,"word_count":236,"hash":"1e9e4be64167f23705811ee00b005b84faf8b3e44cc65a78ac00683ff4cc92ea"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B06_wf3_ProfileCross\\B06_api.md":{"size":1332,"mtime_ns":1783849775299166300,"word_count":126,"hash":"54d5ac3300a973b62932c4e49e96e3aefea664dc1af074865d994a02ceea83e7"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B06_wf3_ProfileCross\\B06_backend.md":{"size":2674,"mtime_ns":1783849775300166200,"word_count":259,"hash":"464194e04c304a155a3445c411403400b6239ad5460dfad3ccdeb03da87f41fb"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B06_wf3_ProfileCross\\B06_db.md":{"size":1718,"mtime_ns":1783850703123485300,"word_count":158,"hash":"2db81e60642ebe8f3ec8f7c3673d57ad41156fa1bf6f636be896aa2d44899709"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B06_wf3_ProfileCross\\B06_dependencies.md":{"size":1348,"mtime_ns":1783849775301572100,"word_count":130,"hash":"1dad047374ae3b973fcdcaa189f843557fcfffe8364feccc7ebc92f3ddc04155"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B06_wf3_ProfileCross\\B06_frontend.md":{"size":2137,"mtime_ns":1783849775302093500,"word_count":221,"hash":"37aa0d07aa6c480aa555897c7a3b552f3c4918332701b292c8140bd177fae0f3"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B07_wf4_DesignDetail\\B07_frontend.md":{"size":2037,"mtime_ns":1783844389053690900,"word_count":192,"hash":"f43d7fb7c134b25445c9b5d16d30a4b864c03ee044607301107af0e64c3d9bd9"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B08_wf5_Quantity\\B08_db.md":{"size":1112,"mtime_ns":1783850708284249100,"word_count":134,"hash":"4b09b67e025ab679214a595ed4288633a2c58d466bff1f2e195d8ad42e74d686"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B08_wf5_Quantity\\B08_frontend.md":{"size":1694,"mtime_ns":1783849775303746000,"word_count":203,"hash":"9216484c57c256629ee59314bc7d4b9e8ef66c3d8458b9ea16a3f73dd370fe52"},"C:\\Program_coding\\\uc784\ub3c4\uc124\uacc4 \ubc0f \uacac\uc801\uc790\ub3d9\ud654 \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\\docs\\wiki\\pages\\B09_wf6_Estimation\\B09_frontend.md":{"size":1941,"mtime_ns":1783844389057481200,"word_count":187,"hash":"0b2cdc6e3ca674d334281585329d084ff2d4d330ad6ed1e67b99ee2b144d4d7d"}} \ No newline at end of file diff --git a/docs/wiki/graphify-out/graph.html b/docs/wiki/graphify-out/graph.html deleted file mode 100644 index 7e333937..00000000 --- a/docs/wiki/graphify-out/graph.html +++ /dev/null @@ -1,307 +0,0 @@ - - - - -graphify - graphify-out\graph.html - - - - -
- - - - - \ No newline at end of file diff --git a/docs/wiki/graphify-out/graph.json b/docs/wiki/graphify-out/graph.json deleted file mode 100644 index 08ca3369..00000000 --- a/docs/wiki/graphify-out/graph.json +++ /dev/null @@ -1,10421 +0,0 @@ -{ - "directed": false, - "multigraph": false, - "graph": {}, - "nodes": [ - { - "label": "AGENTS.md", - "file_type": "document", - "source_file": "AGENTS.md", - "source_location": "L1", - "_origin": "ast", - "id": "agents", - "community": 38, - "norm_label": "agents.md" - }, - { - "label": "wiki/ \ud3f4\ub354 \uaddc\uce59", - "file_type": "document", - "source_file": "AGENTS.md", - "source_location": "L1", - "_origin": "ast", - "id": "agents_wiki_\ud3f4\ub354_\uaddc\uce59", - "community": 38, - "norm_label": "wiki/ \u1111\u1169\u11af\u1103\u1165 \u1100\u1172\u110e\u1175\u11a8" - }, - { - "label": "\uad6c\uc870", - "file_type": "document", - "source_file": "AGENTS.md", - "source_location": "L5", - "_origin": "ast", - "id": "agents_\uad6c\uc870", - "community": 38, - "norm_label": "\u1100\u116e\u110c\u1169" - }, - { - "label": "\uc791\uc131 \uaddc\uce59", - "file_type": "document", - "source_file": "AGENTS.md", - "source_location": "L11", - "_origin": "ast", - "id": "agents_\uc791\uc131_\uaddc\uce59", - "community": 38, - "norm_label": "\u110c\u1161\u11a8\u1109\u1165\u11bc \u1100\u1172\u110e\u1175\u11a8" - }, - { - "label": "CLAUDE.md", - "file_type": "document", - "source_file": "CLAUDE.md", - "source_location": "L1", - "_origin": "ast", - "id": "claude", - "community": 39, - "norm_label": "claude.md" - }, - { - "label": "wiki/ \ud3f4\ub354 \uaddc\uce59", - "file_type": "document", - "source_file": "CLAUDE.md", - "source_location": "L1", - "_origin": "ast", - "id": "claude_wiki_\ud3f4\ub354_\uaddc\uce59", - "community": 39, - "norm_label": "wiki/ \u1111\u1169\u11af\u1103\u1165 \u1100\u1172\u110e\u1175\u11a8" - }, - { - "label": "\uad6c\uc870", - "file_type": "document", - "source_file": "CLAUDE.md", - "source_location": "L5", - "_origin": "ast", - "id": "claude_\uad6c\uc870", - "community": 39, - "norm_label": "\u1100\u116e\u110c\u1169" - }, - { - "label": "\uc791\uc131 \uaddc\uce59", - "file_type": "document", - "source_file": "CLAUDE.md", - "source_location": "L11", - "_origin": "ast", - "id": "claude_\uc791\uc131_\uaddc\uce59", - "community": 39, - "norm_label": "\u110c\u1161\u11a8\u1109\u1165\u11bc \u1100\u1172\u110e\u1175\u11a8" - }, - { - "label": "a00_app_shell_framework.md", - "file_type": "document", - "source_file": "concepts/a00_app_shell_framework.md", - "source_location": "L1", - "_origin": "ast", - "id": "concepts_a00_app_shell_framework", - "community": 5, - "norm_label": "a00_app_shell_framework.md" - }, - { - "label": "A00_Common \u2014 App Shell Framework", - "file_type": "document", - "source_file": "concepts/a00_app_shell_framework.md", - "source_location": "L8", - "_origin": "ast", - "id": "concepts_a00_app_shell_framework_a00_common_app_shell_framework", - "community": 7, - "norm_label": "a00_common \u2014 app shell framework" - }, - { - "label": "\ud30c\uc77c \uad6c\uc131", - "file_type": "document", - "source_file": "concepts/a00_app_shell_framework.md", - "source_location": "L12", - "_origin": "ast", - "id": "concepts_a00_app_shell_framework_\ud30c\uc77c_\uad6c\uc131", - "community": 7, - "norm_label": "\u1111\u1161\u110b\u1175\u11af \u1100\u116e\u1109\u1165\u11bc" - }, - { - "label": "app_shell \uad6c\uc131\uc694\uc18c", - "file_type": "document", - "source_file": "concepts/a00_app_shell_framework.md", - "source_location": "L20", - "_origin": "ast", - "id": "concepts_a00_app_shell_framework_app_shell_\uad6c\uc131\uc694\uc18c", - "community": 7, - "norm_label": "app_shell \u1100\u116e\u1109\u1165\u11bc\u110b\u116d\u1109\u1169" - }, - { - "label": "\ud14c\ub9c8 & \uc5b8\uc5b4 \uad00\ub9ac", - "file_type": "document", - "source_file": "concepts/a00_app_shell_framework.md", - "source_location": "L22", - "_origin": "ast", - "id": "concepts_a00_app_shell_framework_\ud14c\ub9c8_\uc5b8\uc5b4_\uad00\ub9ac", - "community": 7, - "norm_label": "\u1110\u1166\u1106\u1161 & \u110b\u1165\u11ab\u110b\u1165 \u1100\u116a\u11ab\u1105\u1175" - }, - { - "label": "\ud5e4\ub354 \uad6c\uc131 (64px \ub192\uc774, sticky)", - "file_type": "document", - "source_file": "concepts/a00_app_shell_framework.md", - "source_location": "L27", - "_origin": "ast", - "id": "concepts_a00_app_shell_framework_\ud5e4\ub354_\uad6c\uc131_64px_\ub192\uc774_sticky", - "community": 7, - "norm_label": "\u1112\u1166\u1103\u1165 \u1100\u116e\u1109\u1165\u11bc (64px \u1102\u1169\u11c1\u110b\u1175, sticky)" - }, - { - "label": "\uc778\uc99d \ubc84\ud2bc (\ube44\ub3d9\uae30 fillAuthActions)", - "file_type": "document", - "source_file": "concepts/a00_app_shell_framework.md", - "source_location": "L40", - "_origin": "ast", - "id": "concepts_a00_app_shell_framework_\uc778\uc99d_\ubc84\ud2bc_\ube44\ub3d9\uae30_fillauthactions", - "community": 7, - "norm_label": "\u110b\u1175\u11ab\u110c\u1173\u11bc \u1107\u1165\u1110\u1173\u11ab (\u1107\u1175\u1103\u1169\u11bc\u1100\u1175 fillauthactions)" - }, - { - "label": "\ub85c\uadf8\uc544\uc6c3 (onApp_Logout_Click)", - "file_type": "document", - "source_file": "concepts/a00_app_shell_framework.md", - "source_location": "L44", - "_origin": "ast", - "id": "concepts_a00_app_shell_framework_\ub85c\uadf8\uc544\uc6c3_onapp_logout_click", - "community": 7, - "norm_label": "\u1105\u1169\u1100\u1173\u110b\u1161\u110b\u116e\u11ba (onapp_logout_click)" - }, - { - "label": "\ud478\ud130", - "file_type": "document", - "source_file": "concepts/a00_app_shell_framework.md", - "source_location": "L48", - "_origin": "ast", - "id": "concepts_a00_app_shell_framework_\ud478\ud130", - "community": 7, - "norm_label": "\u1111\u116e\u1110\u1165" - }, - { - "label": "router \ub77c\uc6b0\ud305 \ud14c\uc774\ube14", - "file_type": "document", - "source_file": "concepts/a00_app_shell_framework.md", - "source_location": "L52", - "_origin": "ast", - "id": "concepts_a00_app_shell_framework_router_\ub77c\uc6b0\ud305_\ud14c\uc774\ube14", - "community": 7, - "norm_label": "router \u1105\u1161\u110b\u116e\u1110\u1175\u11bc \u1110\u1166\u110b\u1175\u1107\u1173\u11af" - }, - { - "label": "\uc778\uc99d \uac00\ub4dc", - "file_type": "document", - "source_file": "concepts/a00_app_shell_framework.md", - "source_location": "L77", - "_origin": "ast", - "id": "concepts_a00_app_shell_framework_\uc778\uc99d_\uac00\ub4dc", - "community": 7, - "norm_label": "\u110b\u1175\u11ab\u110c\u1173\u11bc \u1100\u1161\u1103\u1173" - }, - { - "label": "\uc138\ubd80 \uc2a4\uce90\ud3f4\ub4dc\u00b7CSS\u00b7\uc885\uc18d\uc131", - "file_type": "document", - "source_file": "concepts/a00_app_shell_framework.md", - "source_location": "L84", - "_origin": "ast", - "id": "concepts_a00_app_shell_framework_\uc138\ubd80_\uc2a4\uce90\ud3f4\ub4dc_css_\uc885\uc18d\uc131", - "community": 7, - "norm_label": "\u1109\u1166\u1107\u116e \u1109\u1173\u110f\u1162\u1111\u1169\u11af\u1103\u1173\u00b7css\u00b7\u110c\u1169\u11bc\u1109\u1169\u11a8\u1109\u1165\u11bc" - }, - { - "label": "a00_app_shell_framework_scaffold.md", - "file_type": "document", - "source_file": "concepts/a00_app_shell_framework_scaffold.md", - "source_location": "L1", - "_origin": "ast", - "id": "concepts_a00_app_shell_framework_scaffold", - "community": 5, - "norm_label": "a00_app_shell_framework_scaffold.md" - }, - { - "label": "A00_Common \u2014 \uc2a4\uce90\ud3f4\ub4dc\u00b7CSS\u00b7\uc885\uc18d\uc131", - "file_type": "document", - "source_file": "concepts/a00_app_shell_framework_scaffold.md", - "source_location": "L9", - "_origin": "ast", - "id": "concepts_a00_app_shell_framework_scaffold_a00_common_\uc2a4\uce90\ud3f4\ub4dc_css_\uc885\uc18d\uc131", - "community": 5, - "norm_label": "a00_common \u2014 \u1109\u1173\u110f\u1162\u1111\u1169\u11af\u1103\u1173\u00b7css\u00b7\u110c\u1169\u11bc\u1109\u1169\u11a8\u1109\u1165\u11bc" - }, - { - "label": "b_page_scaffold", - "file_type": "document", - "source_file": "concepts/a00_app_shell_framework_scaffold.md", - "source_location": "L11", - "_origin": "ast", - "id": "concepts_a00_app_shell_framework_scaffold_b_page_scaffold", - "community": 5, - "norm_label": "b_page_scaffold" - }, - { - "label": "CSS \uc778\uc81d\uc158", - "file_type": "document", - "source_file": "concepts/a00_app_shell_framework_scaffold.md", - "source_location": "L18", - "_origin": "ast", - "id": "concepts_a00_app_shell_framework_scaffold_css_\uc778\uc81d\uc158", - "community": 5, - "norm_label": "css \u110b\u1175\u11ab\u110c\u1166\u11a8\u1109\u1167\u11ab" - }, - { - "label": "\uc885\uc18d\uc131", - "file_type": "document", - "source_file": "concepts/a00_app_shell_framework_scaffold.md", - "source_location": "L25", - "_origin": "ast", - "id": "concepts_a00_app_shell_framework_scaffold_\uc885\uc18d\uc131", - "community": 5, - "norm_label": "\u110c\u1169\u11bc\u1109\u1169\u11a8\u1109\u1165\u11bc" - }, - { - "label": "\uc0ac\uc6a9\ucc98", - "file_type": "document", - "source_file": "concepts/a00_app_shell_framework_scaffold.md", - "source_location": "L33", - "_origin": "ast", - "id": "concepts_a00_app_shell_framework_scaffold_\uc0ac\uc6a9\ucc98", - "community": 5, - "norm_label": "\u1109\u1161\u110b\u116d\u11bc\u110e\u1165" - }, - { - "label": "api_common.md", - "file_type": "document", - "source_file": "concepts/api_common.md", - "source_location": "L1", - "_origin": "ast", - "id": "concepts_api_common", - "community": 1, - "norm_label": "api_common.md" - }, - { - "label": "API \uacf5\ud1b5 (\uc5ec\ub7ec \ud398\uc774\uc9c0\uac00 \uacf5\uc720\ud558\ub294 \uc5d4\ub4dc\ud3ec\uc778\ud2b8)", - "file_type": "document", - "source_file": "concepts/api_common.md", - "source_location": "L9", - "_origin": "ast", - "id": "concepts_api_common_api_\uacf5\ud1b5_\uc5ec\ub7ec_\ud398\uc774\uc9c0\uac00_\uacf5\uc720\ud558\ub294_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "community": 1, - "norm_label": "api \u1100\u1169\u11bc\u1110\u1169\u11bc (\u110b\u1167\u1105\u1165 \u1111\u1166\u110b\u1175\u110c\u1175\u1100\u1161 \u1100\u1169\u11bc\u110b\u1172\u1112\u1161\u1102\u1173\u11ab \u110b\u1166\u11ab\u1103\u1173\u1111\u1169\u110b\u1175\u11ab\u1110\u1173)" - }, - { - "label": "\uacf5\ud1b5 \uc624\ub958 \uc751\ub2f5 \ud3ec\ub9f7 (\uc804 \ub77c\uc6b0\ud130)", - "file_type": "document", - "source_file": "concepts/api_common.md", - "source_location": "L11", - "_origin": "ast", - "id": "concepts_api_common_\uacf5\ud1b5_\uc624\ub958_\uc751\ub2f5_\ud3ec\ub9f7_\uc804_\ub77c\uc6b0\ud130", - "community": 1, - "norm_label": "\u1100\u1169\u11bc\u1110\u1169\u11bc \u110b\u1169\u1105\u1172 \u110b\u1173\u11bc\u1103\u1161\u11b8 \u1111\u1169\u1106\u1162\u11ba (\u110c\u1165\u11ab \u1105\u1161\u110b\u116e\u1110\u1165)" - }, - { - "label": "\uc6cc\ud06c\ud50c\ub85c\uc6b0 \uc0c1\ud0dc \uc870\ud68c", - "file_type": "document", - "source_file": "concepts/api_common.md", - "source_location": "L17", - "_origin": "ast", - "id": "concepts_api_common_\uc6cc\ud06c\ud50c\ub85c\uc6b0_\uc0c1\ud0dc_\uc870\ud68c", - "community": 1, - "norm_label": "\u110b\u116f\u110f\u1173\u1111\u1173\u11af\u1105\u1169\u110b\u116e \u1109\u1161\u11bc\u1110\u1162 \u110c\u1169\u1112\u116c" - }, - { - "label": "\ud3f4\ub9c1 \ud328\ud134 (legacy workflow.json \uc124\uacc4; \ud604\uc7ac \uad6c\ud604\uc740 workflow-state API \uc0ac\uc6a9)", - "file_type": "document", - "source_file": "concepts/api_common.md", - "source_location": "L25", - "_origin": "ast", - "id": "concepts_api_common_\ud3f4\ub9c1_\ud328\ud134_legacy_workflow_json_\uc124\uacc4_\ud604\uc7ac_\uad6c\ud604\uc740_workflow_state_api_\uc0ac\uc6a9", - "community": 1, - "norm_label": "\u1111\u1169\u11af\u1105\u1175\u11bc \u1111\u1162\u1110\u1165\u11ab (legacy workflow.json \u1109\u1165\u11af\u1100\u1168; \u1112\u1167\u11ab\u110c\u1162 \u1100\u116e\u1112\u1167\u11ab\u110b\u1173\u11ab workflow-state api \u1109\u1161\u110b\u116d\u11bc)" - }, - { - "label": "auth_rbac.md", - "file_type": "document", - "source_file": "concepts/auth_rbac.md", - "source_location": "L1", - "_origin": "ast", - "id": "concepts_auth_rbac", - "community": 1, - "norm_label": "auth_rbac.md" - }, - { - "label": "\uc778\uc99d / RBAC", - "file_type": "document", - "source_file": "concepts/auth_rbac.md", - "source_location": "L9", - "_origin": "ast", - "id": "concepts_auth_rbac_\uc778\uc99d_rbac", - "community": 14, - "norm_label": "\u110b\u1175\u11ab\u110c\u1173\u11bc / rbac" - }, - { - "label": "\uc138\uc158 \uc778\uc99d (backend.md 6.3)", - "file_type": "document", - "source_file": "concepts/auth_rbac.md", - "source_location": "L11", - "_origin": "ast", - "id": "concepts_auth_rbac_\uc138\uc158_\uc778\uc99d_backend_md_6_3", - "community": 14, - "norm_label": "\u1109\u1166\u1109\u1167\u11ab \u110b\u1175\u11ab\u110c\u1173\u11bc (backend.md 6.3)" - }, - { - "label": "OTP / \ube44\ubc00\ubc88\ud638", - "file_type": "document", - "source_file": "concepts/auth_rbac.md", - "source_location": "L18", - "_origin": "ast", - "id": "concepts_auth_rbac_otp_\ube44\ubc00\ubc88\ud638", - "community": 14, - "norm_label": "otp / \u1107\u1175\u1106\u1175\u11af\u1107\u1165\u11ab\u1112\u1169" - }, - { - "label": "\uc0ac\uc6a9\uc790 \uc0c1\ud0dc \uc0dd\uba85\uc8fc\uae30", - "file_type": "document", - "source_file": "concepts/auth_rbac.md", - "source_location": "L23", - "_origin": "ast", - "id": "concepts_auth_rbac_\uc0ac\uc6a9\uc790_\uc0c1\ud0dc_\uc0dd\uba85\uc8fc\uae30", - "community": 14, - "norm_label": "\u1109\u1161\u110b\u116d\u11bc\u110c\u1161 \u1109\u1161\u11bc\u1110\u1162 \u1109\u1162\u11bc\u1106\u1167\u11bc\u110c\u116e\u1100\u1175" - }, - { - "label": "\uc5ed\ud560 (users.role)", - "file_type": "document", - "source_file": "concepts/auth_rbac.md", - "source_location": "L33", - "_origin": "ast", - "id": "concepts_auth_rbac_\uc5ed\ud560_users_role", - "community": 14, - "norm_label": "\u110b\u1167\u11a8\u1112\u1161\u11af (users.role)" - }, - { - "label": "\uad8c\ud55c \uac80\uc99d \ud5ec\ud37c (B01_Dashboard)", - "file_type": "document", - "source_file": "concepts/auth_rbac.md", - "source_location": "L42", - "_origin": "ast", - "id": "concepts_auth_rbac_\uad8c\ud55c_\uac80\uc99d_\ud5ec\ud37c_b01_dashboard", - "community": 14, - "norm_label": "\u1100\u116f\u11ab\u1112\u1161\u11ab \u1100\u1165\u11b7\u110c\u1173\u11bc \u1112\u1166\u11af\u1111\u1165 (b01_dashboard)" - }, - { - "label": "\uc778\uc99d \uac31\uc2e0", - "file_type": "document", - "source_file": "concepts/auth_rbac.md", - "source_location": "L53", - "_origin": "ast", - "id": "concepts_auth_rbac_\uc778\uc99d_\uac31\uc2e0", - "community": 14, - "norm_label": "\u110b\u1175\u11ab\u110c\u1173\u11bc \u1100\u1162\u11bc\u1109\u1175\u11ab" - }, - { - "label": "\ub77c\uc6b0\ud305 \uac00\ub4dc (frontend.md 5.2)", - "file_type": "document", - "source_file": "concepts/auth_rbac.md", - "source_location": "L56", - "_origin": "ast", - "id": "concepts_auth_rbac_\ub77c\uc6b0\ud305_\uac00\ub4dc_frontend_md_5_2", - "community": 14, - "norm_label": "\u1105\u1161\u110b\u116e\u1110\u1175\u11bc \u1100\u1161\u1103\u1173 (frontend.md 5.2)" - }, - { - "label": "\uc0ac\uc6a9\ucc98 (\uc5ed\ucc38\uc870)", - "file_type": "document", - "source_file": "concepts/auth_rbac.md", - "source_location": "L59", - "_origin": "ast", - "id": "concepts_auth_rbac_\uc0ac\uc6a9\ucc98_\uc5ed\ucc38\uc870", - "community": 14, - "norm_label": "\u1109\u1161\u110b\u116d\u11bc\u110e\u1165 (\u110b\u1167\u11a8\u110e\u1161\u11b7\u110c\u1169)" - }, - { - "label": "\u26a0\ufe0f \uacc4\ud68d\uc11c-\uc2e4\ucf54\ub4dc \ubd88\uc77c\uce58 (A\uadf8\ub8f9 \uc778\uc81c\uc2a4\ud2b8 \ubc1c\uacac)", - "file_type": "document", - "source_file": "concepts/auth_rbac.md", - "source_location": "L65", - "_origin": "ast", - "id": "concepts_auth_rbac_\uacc4\ud68d\uc11c_\uc2e4\ucf54\ub4dc_\ubd88\uc77c\uce58_a\uadf8\ub8f9_\uc778\uc81c\uc2a4\ud2b8_\ubc1c\uacac", - "community": 14, - "norm_label": "\u26a0\ufe0f \u1100\u1168\u1112\u116c\u11a8\u1109\u1165-\u1109\u1175\u11af\u110f\u1169\u1103\u1173 \u1107\u116e\u11af\u110b\u1175\u11af\u110e\u1175 (a\u1100\u1173\u1105\u116e\u11b8 \u110b\u1175\u11ab\u110c\u1166\u1109\u1173\u1110\u1173 \u1107\u1161\u11af\u1100\u1167\u11ab)" - }, - { - "label": "common_util.md", - "file_type": "document", - "source_file": "concepts/common_util.md", - "source_location": "L1", - "_origin": "ast", - "id": "concepts_common_util", - "community": 2, - "norm_label": "common_util.md" - }, - { - "label": "\uacf5\ud1b5 \uc720\ud2f8 (common_util/)", - "file_type": "document", - "source_file": "concepts/common_util.md", - "source_location": "L9", - "_origin": "ast", - "id": "concepts_common_util_\uacf5\ud1b5_\uc720\ud2f8_common_util", - "community": 2, - "norm_label": "\u1100\u1169\u11bc\u1110\u1169\u11bc \u110b\u1172\u1110\u1175\u11af (common_util/)" - }, - { - "label": "\uc774\uba54\uc77c \ubc1c\uc1a1 (common_util_email.py)", - "file_type": "document", - "source_file": "concepts/common_util.md", - "source_location": "L27", - "_origin": "ast", - "id": "concepts_common_util_\uc774\uba54\uc77c_\ubc1c\uc1a1_common_util_email_py", - "community": 2, - "norm_label": "\u110b\u1175\u1106\u1166\u110b\u1175\u11af \u1107\u1161\u11af\u1109\u1169\u11bc (common_util_email.py)" - }, - { - "label": "\ub9ac\uc18c\uc2a4 \ubaa8\ub2c8\ud130\ub9c1 (common_util_resource_monitor.py)", - "file_type": "document", - "source_file": "concepts/common_util.md", - "source_location": "L31", - "_origin": "ast", - "id": "concepts_common_util_\ub9ac\uc18c\uc2a4_\ubaa8\ub2c8\ud130\ub9c1_common_util_resource_monitor_py", - "community": 2, - "norm_label": "\u1105\u1175\u1109\u1169\u1109\u1173 \u1106\u1169\u1102\u1175\u1110\u1165\u1105\u1175\u11bc (common_util_resource_monitor.py)" - }, - { - "label": "files_surface.md", - "file_type": "document", - "source_file": "concepts/db_schema/files_surface.md", - "source_location": "L1", - "_origin": "ast", - "id": "concepts_db_schema_files_surface", - "community": 0, - "norm_label": "files_surface.md" - }, - { - "label": "DB: \ud30c\uc77c/\uc9c0\ud45c\uba74\ubd84\uc11d \ud14c\uc774\ube14", - "file_type": "document", - "source_file": "concepts/db_schema/files_surface.md", - "source_location": "L9", - "_origin": "ast", - "id": "concepts_db_schema_files_surface_db_\ud30c\uc77c_\uc9c0\ud45c\uba74\ubd84\uc11d_\ud14c\uc774\ube14", - "community": 0, - "norm_label": "db: \u1111\u1161\u110b\u1175\u11af/\u110c\u1175\u1111\u116d\u1106\u1167\u11ab\u1107\u116e\u11ab\u1109\u1165\u11a8 \u1110\u1166\u110b\u1175\u1107\u1173\u11af" - }, - { - "label": "upload_sessions (\uc5c5\ub85c\ub4dc \uc138\uc158)", - "file_type": "document", - "source_file": "concepts/db_schema/files_surface.md", - "source_location": "L13", - "_origin": "ast", - "id": "concepts_db_schema_files_surface_upload_sessions_\uc5c5\ub85c\ub4dc_\uc138\uc158", - "community": 0, - "norm_label": "upload_sessions (\u110b\u1165\u11b8\u1105\u1169\u1103\u1173 \u1109\u1166\u1109\u1167\u11ab)" - }, - { - "label": "upload_chunks (\uc5c5\ub85c\ub4dc \uccad\ud06c \ub370\uc774\ud130)", - "file_type": "document", - "source_file": "concepts/db_schema/files_surface.md", - "source_location": "L24", - "_origin": "ast", - "id": "concepts_db_schema_files_surface_upload_chunks_\uc5c5\ub85c\ub4dc_\uccad\ud06c_\ub370\uc774\ud130", - "community": 0, - "norm_label": "upload_chunks (\u110b\u1165\u11b8\u1105\u1169\u1103\u1173 \u110e\u1165\u11bc\u110f\u1173 \u1103\u1166\u110b\u1175\u1110\u1165)" - }, - { - "label": "input_files (\uc785\ub825 \uc6d0\ubcf8 \ud30c\uc77c)", - "file_type": "document", - "source_file": "concepts/db_schema/files_surface.md", - "source_location": "L35", - "_origin": "ast", - "id": "concepts_db_schema_files_surface_input_files_\uc785\ub825_\uc6d0\ubcf8_\ud30c\uc77c", - "community": 0, - "norm_label": "input_files (\u110b\u1175\u11b8\u1105\u1167\u11a8 \u110b\u116f\u11ab\u1107\u1169\u11ab \u1111\u1161\u110b\u1175\u11af)" - }, - { - "label": "processed_point_cloud (\ud544\ud130/\ubcc0\ud658 \ud3ec\uc778\ud2b8\ud074\ub77c\uc6b0\ub4dc)", - "file_type": "document", - "source_file": "concepts/db_schema/files_surface.md", - "source_location": "L48", - "_origin": "ast", - "id": "concepts_db_schema_files_surface_processed_point_cloud_\ud544\ud130_\ubcc0\ud658_\ud3ec\uc778\ud2b8\ud074\ub77c\uc6b0\ub4dc", - "community": 0, - "norm_label": "processed_point_cloud (\u1111\u1175\u11af\u1110\u1165/\u1107\u1167\u11ab\u1112\u116a\u11ab \u1111\u1169\u110b\u1175\u11ab\u1110\u1173\u110f\u1173\u11af\u1105\u1161\u110b\u116e\u1103\u1173)" - }, - { - "label": "surface_models (\uc9c0\ud45c\uba74 \ubaa8\ub378 \ubc0f \ub4f1\uace0\uc120)", - "file_type": "document", - "source_file": "concepts/db_schema/files_surface.md", - "source_location": "L64", - "_origin": "ast", - "id": "concepts_db_schema_files_surface_surface_models_\uc9c0\ud45c\uba74_\ubaa8\ub378_\ubc0f_\ub4f1\uace0\uc120", - "community": 0, - "norm_label": "surface_models (\u110c\u1175\u1111\u116d\u1106\u1167\u11ab \u1106\u1169\u1103\u1166\u11af \u1106\u1175\u11be \u1103\u1173\u11bc\u1100\u1169\u1109\u1165\u11ab)" - }, - { - "label": "terrain_layers (\uc9c0\ud615 \ub808\uc774\uc5b4)", - "file_type": "document", - "source_file": "concepts/db_schema/files_surface.md", - "source_location": "L77", - "_origin": "ast", - "id": "concepts_db_schema_files_surface_terrain_layers_\uc9c0\ud615_\ub808\uc774\uc5b4", - "community": 0, - "norm_label": "terrain_layers (\u110c\u1175\u1112\u1167\u11bc \u1105\u1166\u110b\u1175\u110b\u1165)" - }, - { - "label": "input_files.status \uac12", - "file_type": "document", - "source_file": "concepts/db_schema/files_surface.md", - "source_location": "L89", - "_origin": "ast", - "id": "concepts_db_schema_files_surface_input_files_status_\uac12", - "community": 0, - "norm_label": "input_files.status \u1100\u1161\u11b9" - }, - { - "label": "surface_models.status / processed_point_cloud.status \uac12", - "file_type": "document", - "source_file": "concepts/db_schema/files_surface.md", - "source_location": "L92", - "_origin": "ast", - "id": "concepts_db_schema_files_surface_surface_models_status_processed_point_cloud_status_\uac12", - "community": 0, - "norm_label": "surface_models.status / processed_point_cloud.status \u1100\u1161\u11b9" - }, - { - "label": "logs_monitoring.md", - "file_type": "document", - "source_file": "concepts/db_schema/logs_monitoring.md", - "source_location": "L1", - "_origin": "ast", - "id": "concepts_db_schema_logs_monitoring", - "community": 0, - "norm_label": "logs_monitoring.md" - }, - { - "label": "DB: \ub85c\uadf8/\ubaa8\ub2c8\ud130\ub9c1 \ud14c\uc774\ube14", - "file_type": "document", - "source_file": "concepts/db_schema/logs_monitoring.md", - "source_location": "L9", - "_origin": "ast", - "id": "concepts_db_schema_logs_monitoring_db_\ub85c\uadf8_\ubaa8\ub2c8\ud130\ub9c1_\ud14c\uc774\ube14", - "community": 0, - "norm_label": "db: \u1105\u1169\u1100\u1173/\u1106\u1169\u1102\u1175\u1110\u1165\u1105\u1175\u11bc \u1110\u1166\u110b\u1175\u1107\u1173\u11af" - }, - { - "label": "login_logs (\ub85c\uadf8\uc778 \uc2dc\ub3c4 \ub85c\uadf8)", - "file_type": "document", - "source_file": "concepts/db_schema/logs_monitoring.md", - "source_location": "L13", - "_origin": "ast", - "id": "concepts_db_schema_logs_monitoring_login_logs_\ub85c\uadf8\uc778_\uc2dc\ub3c4_\ub85c\uadf8", - "community": 0, - "norm_label": "login_logs (\u1105\u1169\u1100\u1173\u110b\u1175\u11ab \u1109\u1175\u1103\u1169 \u1105\u1169\u1100\u1173)" - }, - { - "label": "activity_logs (\uc0ac\uc6a9\uc790 \ud65c\ub3d9 \ub85c\uadf8)", - "file_type": "document", - "source_file": "concepts/db_schema/logs_monitoring.md", - "source_location": "L23", - "_origin": "ast", - "id": "concepts_db_schema_logs_monitoring_activity_logs_\uc0ac\uc6a9\uc790_\ud65c\ub3d9_\ub85c\uadf8", - "community": 0, - "norm_label": "activity_logs (\u1109\u1161\u110b\u116d\u11bc\u110c\u1161 \u1112\u116a\u11af\u1103\u1169\u11bc \u1105\u1169\u1100\u1173)" - }, - { - "label": "audit_logs (\uac10\uc0ac \ub85c\uadf8)", - "file_type": "document", - "source_file": "concepts/db_schema/logs_monitoring.md", - "source_location": "L33", - "_origin": "ast", - "id": "concepts_db_schema_logs_monitoring_audit_logs_\uac10\uc0ac_\ub85c\uadf8", - "community": 0, - "norm_label": "audit_logs (\u1100\u1161\u11b7\u1109\u1161 \u1105\u1169\u1100\u1173)" - }, - { - "label": "system_audit_logs (\ud504\ub85c\uc81d\ud2b8/\uc870\uc9c1 \ubcc0\uacbd \uac10\uc0ac \ub85c\uadf8)", - "file_type": "document", - "source_file": "concepts/db_schema/logs_monitoring.md", - "source_location": "L43", - "_origin": "ast", - "id": "concepts_db_schema_logs_monitoring_system_audit_logs_\ud504\ub85c\uc81d\ud2b8_\uc870\uc9c1_\ubcc0\uacbd_\uac10\uc0ac_\ub85c\uadf8", - "community": 0, - "norm_label": "system_audit_logs (\u1111\u1173\u1105\u1169\u110c\u1166\u11a8\u1110\u1173/\u110c\u1169\u110c\u1175\u11a8 \u1107\u1167\u11ab\u1100\u1167\u11bc \u1100\u1161\u11b7\u1109\u1161 \u1105\u1169\u1100\u1173)" - }, - { - "label": "system_admin_logs (\uc2dc\uc2a4\ud15c \uad00\ub9ac\uc790 \ud589\uc704 \ub85c\uadf8)", - "file_type": "document", - "source_file": "concepts/db_schema/logs_monitoring.md", - "source_location": "L53", - "_origin": "ast", - "id": "concepts_db_schema_logs_monitoring_system_admin_logs_\uc2dc\uc2a4\ud15c_\uad00\ub9ac\uc790_\ud589\uc704_\ub85c\uadf8", - "community": 0, - "norm_label": "system_admin_logs (\u1109\u1175\u1109\u1173\u1110\u1166\u11b7 \u1100\u116a\u11ab\u1105\u1175\u110c\u1161 \u1112\u1162\u11bc\u110b\u1171 \u1105\u1169\u1100\u1173)" - }, - { - "label": "system_resources (\uc2dc\uc2a4\ud15c \uc790\uc6d0 \uacc4\uce21)", - "file_type": "document", - "source_file": "concepts/db_schema/logs_monitoring.md", - "source_location": "L62", - "_origin": "ast", - "id": "concepts_db_schema_logs_monitoring_system_resources_\uc2dc\uc2a4\ud15c_\uc790\uc6d0_\uacc4\uce21", - "community": 0, - "norm_label": "system_resources (\u1109\u1175\u1109\u1173\u1110\u1166\u11b7 \u110c\u1161\u110b\u116f\u11ab \u1100\u1168\u110e\u1173\u11a8)" - }, - { - "label": "support_requests (\uae30\uc220 \uc9c0\uc6d0 \uc694\uccad)", - "file_type": "document", - "source_file": "concepts/db_schema/logs_monitoring.md", - "source_location": "L71", - "_origin": "ast", - "id": "concepts_db_schema_logs_monitoring_support_requests_\uae30\uc220_\uc9c0\uc6d0_\uc694\uccad", - "community": 0, - "norm_label": "support_requests (\u1100\u1175\u1109\u116e\u11af \u110c\u1175\u110b\u116f\u11ab \u110b\u116d\u110e\u1165\u11bc)" - }, - { - "label": "change_logs (\uc124\uacc4 \ubcc0\uacbd \uc774\ub825)", - "file_type": "document", - "source_file": "concepts/db_schema/logs_monitoring.md", - "source_location": "L83", - "_origin": "ast", - "id": "concepts_db_schema_logs_monitoring_change_logs_\uc124\uacc4_\ubcc0\uacbd_\uc774\ub825", - "community": 0, - "norm_label": "change_logs (\u1109\u1165\u11af\u1100\u1168 \u1107\u1167\u11ab\u1100\u1167\u11bc \u110b\u1175\u1105\u1167\u11a8)" - }, - { - "label": "system_audit_logs \u2014 \uc0ac\uc6a9\ucc98 (B01, B02)", - "file_type": "document", - "source_file": "concepts/db_schema/logs_monitoring.md", - "source_location": "L96", - "_origin": "ast", - "id": "concepts_db_schema_logs_monitoring_system_audit_logs_\uc0ac\uc6a9\ucc98_b01_b02", - "community": 0, - "norm_label": "system_audit_logs \u2014 \u1109\u1161\u110b\u116d\u11bc\u110e\u1165 (b01, b02)" - }, - { - "label": "\ub9ac\uc18c\uc2a4 API (SYSTEM_ADMIN \uc804\uc6a9)", - "file_type": "document", - "source_file": "concepts/db_schema/logs_monitoring.md", - "source_location": "L100", - "_origin": "ast", - "id": "concepts_db_schema_logs_monitoring_\ub9ac\uc18c\uc2a4_api_system_admin_\uc804\uc6a9", - "community": 0, - "norm_label": "\u1105\u1175\u1109\u1169\u1109\u1173 api (system_admin \u110c\u1165\u11ab\u110b\u116d\u11bc)" - }, - { - "label": "overview.md", - "file_type": "document", - "source_file": "concepts/db_schema/overview.md", - "source_location": "L1", - "_origin": "ast", - "id": "concepts_db_schema_overview", - "community": 0, - "norm_label": "overview.md" - }, - { - "label": "DB \uc2a4\ud0a4\ub9c8 \uac1c\uc694", - "file_type": "document", - "source_file": "concepts/db_schema/overview.md", - "source_location": "L9", - "_origin": "ast", - "id": "concepts_db_schema_overview_db_\uc2a4\ud0a4\ub9c8_\uac1c\uc694", - "community": 0, - "norm_label": "db \u1109\u1173\u110f\u1175\u1106\u1161 \u1100\u1162\u110b\u116d" - }, - { - "label": "\ud14c\uc774\ube14 \uadf8\ub8f9 (9\uac1c)", - "file_type": "document", - "source_file": "concepts/db_schema/overview.md", - "source_location": "L22", - "_origin": "ast", - "id": "concepts_db_schema_overview_\ud14c\uc774\ube14_\uadf8\ub8f9_9\uac1c", - "community": 0, - "norm_label": "\u1110\u1166\u110b\u1175\u1107\u1173\u11af \u1100\u1173\u1105\u116e\u11b8 (9\u1100\u1162)" - }, - { - "label": "\ud30c\uc77c \uacbd\ub85c \ucd94\uc801 \uceec\ub7fc (DB\uc5d0 \uacbd\ub85c\ub9cc \uae30\ub85d, \uc2e4 \ud30c\uc77c\uc740 \ud30c\uc77c\uc2dc\uc2a4\ud15c)", - "file_type": "document", - "source_file": "concepts/db_schema/overview.md", - "source_location": "L34", - "_origin": "ast", - "id": "concepts_db_schema_overview_\ud30c\uc77c_\uacbd\ub85c_\ucd94\uc801_\uceec\ub7fc_db\uc5d0_\uacbd\ub85c\ub9cc_\uae30\ub85d_\uc2e4_\ud30c\uc77c\uc740_\ud30c\uc77c\uc2dc\uc2a4\ud15c", - "community": 0, - "norm_label": "\u1111\u1161\u110b\u1175\u11af \u1100\u1167\u11bc\u1105\u1169 \u110e\u116e\u110c\u1165\u11a8 \u110f\u1165\u11af\u1105\u1165\u11b7 (db\u110b\u1166 \u1100\u1167\u11bc\u1105\u1169\u1106\u1161\u11ab \u1100\u1175\u1105\u1169\u11a8, \u1109\u1175\u11af \u1111\u1161\u110b\u1175\u11af\u110b\u1173\u11ab \u1111\u1161\u110b\u1175\u11af\u1109\u1175\u1109\u1173\u1110\u1166\u11b7)" - }, - { - "label": "\uc124\uacc4 \uc6d0\uce59", - "file_type": "document", - "source_file": "concepts/db_schema/overview.md", - "source_location": "L51", - "_origin": "ast", - "id": "concepts_db_schema_overview_\uc124\uacc4_\uc6d0\uce59", - "community": 0, - "norm_label": "\u1109\u1165\u11af\u1100\u1168 \u110b\u116f\u11ab\u110e\u1175\u11a8" - }, - { - "label": "\ud14c\uc774\ube14 \uad00\uacc4 (\ud575\uc2ec \ud750\ub984)", - "file_type": "document", - "source_file": "concepts/db_schema/overview.md", - "source_location": "L56", - "_origin": "ast", - "id": "concepts_db_schema_overview_\ud14c\uc774\ube14_\uad00\uacc4_\ud575\uc2ec_\ud750\ub984", - "community": 0, - "norm_label": "\u1110\u1166\u110b\u1175\u1107\u1173\u11af \u1100\u116a\u11ab\u1100\u1168 (\u1112\u1162\u11a8\u1109\u1175\u11b7 \u1112\u1173\u1105\u1173\u11b7)" - }, - { - "label": "projects.md", - "file_type": "document", - "source_file": "concepts/db_schema/projects.md", - "source_location": "L1", - "_origin": "ast", - "id": "concepts_db_schema_projects", - "community": 0, - "norm_label": "projects.md" - }, - { - "label": "DB: \ud504\ub85c\uc81d\ud2b8 \uad00\ub9ac \ud14c\uc774\ube14", - "file_type": "document", - "source_file": "concepts/db_schema/projects.md", - "source_location": "L9", - "_origin": "ast", - "id": "concepts_db_schema_projects_db_\ud504\ub85c\uc81d\ud2b8_\uad00\ub9ac_\ud14c\uc774\ube14", - "community": 0, - "norm_label": "db: \u1111\u1173\u1105\u1169\u110c\u1166\u11a8\u1110\u1173 \u1100\u116a\u11ab\u1105\u1175 \u1110\u1166\u110b\u1175\u1107\u1173\u11af" - }, - { - "label": "projects (\ud504\ub85c\uc81d\ud2b8)", - "file_type": "document", - "source_file": "concepts/db_schema/projects.md", - "source_location": "L13", - "_origin": "ast", - "id": "concepts_db_schema_projects_projects_\ud504\ub85c\uc81d\ud2b8", - "community": 0, - "norm_label": "projects (\u1111\u1173\u1105\u1169\u110c\u1166\u11a8\u1110\u1173)" - }, - { - "label": "project_versions (\ud504\ub85c\uc81d\ud2b8 \ubc84\uc804 \uc2a4\ub0c5\uc0f7)", - "file_type": "document", - "source_file": "concepts/db_schema/projects.md", - "source_location": "L30", - "_origin": "ast", - "id": "concepts_db_schema_projects_project_versions_\ud504\ub85c\uc81d\ud2b8_\ubc84\uc804_\uc2a4\ub0c5\uc0f7", - "community": 0, - "norm_label": "project_versions (\u1111\u1173\u1105\u1169\u110c\u1166\u11a8\u1110\u1173 \u1107\u1165\u110c\u1165\u11ab \u1109\u1173\u1102\u1162\u11b8\u1109\u1163\u11ba)" - }, - { - "label": "project_automations (\ud504\ub85c\uc81d\ud2b8 \uc790\ub3d9\ud654 \uc815\ucc45)", - "file_type": "document", - "source_file": "concepts/db_schema/projects.md", - "source_location": "L40", - "_origin": "ast", - "id": "concepts_db_schema_projects_project_automations_\ud504\ub85c\uc81d\ud2b8_\uc790\ub3d9\ud654_\uc815\ucc45", - "community": 0, - "norm_label": "project_automations (\u1111\u1173\u1105\u1169\u110c\u1166\u11a8\u1110\u1173 \u110c\u1161\u1103\u1169\u11bc\u1112\u116a \u110c\u1165\u11bc\u110e\u1162\u11a8)" - }, - { - "label": "project_workflow_stages (\ub2e8\uacc4\ubcc4 \uc0c1\uc138 \uc0c1\ud0dc)", - "file_type": "document", - "source_file": "concepts/db_schema/projects.md", - "source_location": "L54", - "_origin": "ast", - "id": "concepts_db_schema_projects_project_workflow_stages_\ub2e8\uacc4\ubcc4_\uc0c1\uc138_\uc0c1\ud0dc", - "community": 0, - "norm_label": "project_workflow_stages (\u1103\u1161\u11ab\u1100\u1168\u1107\u1167\u11af \u1109\u1161\u11bc\u1109\u1166 \u1109\u1161\u11bc\u1110\u1162)" - }, - { - "label": "route_profile.md", - "file_type": "document", - "source_file": "concepts/db_schema/route_profile.md", - "source_location": "L1", - "_origin": "ast", - "id": "concepts_db_schema_route_profile", - "community": 0, - "norm_label": "route_profile.md" - }, - { - "label": "DB: \uacbd\ub85c/\uc885\ud6a1\ub2e8 \ud14c\uc774\ube14", - "file_type": "document", - "source_file": "concepts/db_schema/route_profile.md", - "source_location": "L9", - "_origin": "ast", - "id": "concepts_db_schema_route_profile_db_\uacbd\ub85c_\uc885\ud6a1\ub2e8_\ud14c\uc774\ube14", - "community": 24, - "norm_label": "db: \u1100\u1167\u11bc\u1105\u1169/\u110c\u1169\u11bc\u1112\u116c\u11bc\u1103\u1161\u11ab \u1110\u1166\u110b\u1175\u1107\u1173\u11af" - }, - { - "label": "routes (\ub178\uc120 \uacbd\ub85c)", - "file_type": "document", - "source_file": "concepts/db_schema/route_profile.md", - "source_location": "L13", - "_origin": "ast", - "id": "concepts_db_schema_route_profile_routes_\ub178\uc120_\uacbd\ub85c", - "community": 24, - "norm_label": "routes (\u1102\u1169\u1109\u1165\u11ab \u1100\u1167\u11bc\u1105\u1169)" - }, - { - "label": "route_points (\uacbd\ub85c \uc88c\ud45c\uc810)", - "file_type": "document", - "source_file": "concepts/db_schema/route_profile.md", - "source_location": "L27", - "_origin": "ast", - "id": "concepts_db_schema_route_profile_route_points_\uacbd\ub85c_\uc88c\ud45c\uc810", - "community": 24, - "norm_label": "route_points (\u1100\u1167\u11bc\u1105\u1169 \u110c\u116a\u1111\u116d\u110c\u1165\u11b7)" - }, - { - "label": "route_statistics (\ub178\uc120 \ud1b5\uacc4)", - "file_type": "document", - "source_file": "concepts/db_schema/route_profile.md", - "source_location": "L36", - "_origin": "ast", - "id": "concepts_db_schema_route_profile_route_statistics_\ub178\uc120_\ud1b5\uacc4", - "community": 24, - "norm_label": "route_statistics (\u1102\u1169\u1109\u1165\u11ab \u1110\u1169\u11bc\u1100\u1168)" - }, - { - "label": "longitudinal_sections (\uc885\ub2e8\uba74 \uc124\uacc4)", - "file_type": "document", - "source_file": "concepts/db_schema/route_profile.md", - "source_location": "L45", - "_origin": "ast", - "id": "concepts_db_schema_route_profile_longitudinal_sections_\uc885\ub2e8\uba74_\uc124\uacc4", - "community": 24, - "norm_label": "longitudinal_sections (\u110c\u1169\u11bc\u1103\u1161\u11ab\u1106\u1167\u11ab \u1109\u1165\u11af\u1100\u1168)" - }, - { - "label": "cross_sections (\ud6a1\ub2e8\uba74 \uc124\uacc4)", - "file_type": "document", - "source_file": "concepts/db_schema/route_profile.md", - "source_location": "L55", - "_origin": "ast", - "id": "concepts_db_schema_route_profile_cross_sections_\ud6a1\ub2e8\uba74_\uc124\uacc4", - "community": 24, - "norm_label": "cross_sections (\u1112\u116c\u11bc\u1103\u1161\u11ab\u1106\u1167\u11ab \u1109\u1165\u11af\u1100\u1168)" - }, - { - "label": "routes.status \ud750\ub984", - "file_type": "document", - "source_file": "concepts/db_schema/route_profile.md", - "source_location": "L65", - "_origin": "ast", - "id": "concepts_db_schema_route_profile_routes_status_\ud750\ub984", - "community": 24, - "norm_label": "routes.status \u1112\u1173\u1105\u1173\u11b7" - }, - { - "label": "cross_sections.data.structures", - "file_type": "document", - "source_file": "concepts/db_schema/route_profile.md", - "source_location": "L68", - "_origin": "ast", - "id": "concepts_db_schema_route_profile_cross_sections_data_structures", - "community": 24, - "norm_label": "cross_sections.data.structures" - }, - { - "label": "structure_output.md", - "file_type": "document", - "source_file": "concepts/db_schema/structure_output.md", - "source_location": "L1", - "_origin": "ast", - "id": "concepts_db_schema_structure_output", - "community": 0, - "norm_label": "structure_output.md" - }, - { - "label": "DB: \uad6c\uc870\ubb3c/\uc218\ub7c9/\uc0b0\ucd9c\ubb3c \ud14c\uc774\ube14", - "file_type": "document", - "source_file": "concepts/db_schema/structure_output.md", - "source_location": "L9", - "_origin": "ast", - "id": "concepts_db_schema_structure_output_db_\uad6c\uc870\ubb3c_\uc218\ub7c9_\uc0b0\ucd9c\ubb3c_\ud14c\uc774\ube14", - "community": 0, - "norm_label": "db: \u1100\u116e\u110c\u1169\u1106\u116e\u11af/\u1109\u116e\u1105\u1163\u11bc/\u1109\u1161\u11ab\u110e\u116e\u11af\u1106\u116e\u11af \u1110\u1166\u110b\u1175\u1107\u1173\u11af" - }, - { - "label": "structures (\ubc30\uce58 \uad6c\uc870\ubb3c)", - "file_type": "document", - "source_file": "concepts/db_schema/structure_output.md", - "source_location": "L13", - "_origin": "ast", - "id": "concepts_db_schema_structure_output_structures_\ubc30\uce58_\uad6c\uc870\ubb3c", - "community": 0, - "norm_label": "structures (\u1107\u1162\u110e\u1175 \u1100\u116e\u110c\u1169\u1106\u116e\u11af)" - }, - { - "label": "quantity_items (\uc218\ub7c9 \uc0b0\ucd9c \ud56d\ubaa9)", - "file_type": "document", - "source_file": "concepts/db_schema/structure_output.md", - "source_location": "L29", - "_origin": "ast", - "id": "concepts_db_schema_structure_output_quantity_items_\uc218\ub7c9_\uc0b0\ucd9c_\ud56d\ubaa9", - "community": 0, - "norm_label": "quantity_items (\u1109\u116e\u1105\u1163\u11bc \u1109\u1161\u11ab\u110e\u116e\u11af \u1112\u1161\u11bc\u1106\u1169\u11a8)" - }, - { - "label": "outputs (\ucd5c\uc885 \uacac\uc801/\ub3c4\uba74 \uc0b0\ucd9c \uc138\uc158)", - "file_type": "document", - "source_file": "concepts/db_schema/structure_output.md", - "source_location": "L42", - "_origin": "ast", - "id": "concepts_db_schema_structure_output_outputs_\ucd5c\uc885_\uacac\uc801_\ub3c4\uba74_\uc0b0\ucd9c_\uc138\uc158", - "community": 0, - "norm_label": "outputs (\u110e\u116c\u110c\u1169\u11bc \u1100\u1167\u11ab\u110c\u1165\u11a8/\u1103\u1169\u1106\u1167\u11ab \u1109\u1161\u11ab\u110e\u116e\u11af \u1109\u1166\u1109\u1167\u11ab)" - }, - { - "label": "output_files (\uac1c\ubcc4 \uc0b0\ucd9c \ud30c\uc77c \ub9ac\uc2a4\ud2b8)", - "file_type": "document", - "source_file": "concepts/db_schema/structure_output.md", - "source_location": "L54", - "_origin": "ast", - "id": "concepts_db_schema_structure_output_output_files_\uac1c\ubcc4_\uc0b0\ucd9c_\ud30c\uc77c_\ub9ac\uc2a4\ud2b8", - "community": 0, - "norm_label": "output_files (\u1100\u1162\u1107\u1167\u11af \u1109\u1161\u11ab\u110e\u116e\u11af \u1111\u1161\u110b\u1175\u11af \u1105\u1175\u1109\u1173\u1110\u1173)" - }, - { - "label": "quantity_items \ucd1d\ube44\uc6a9 \uacc4\uc0b0 \uc608", - "file_type": "document", - "source_file": "concepts/db_schema/structure_output.md", - "source_location": "L65", - "_origin": "ast", - "id": "concepts_db_schema_structure_output_quantity_items_\ucd1d\ube44\uc6a9_\uacc4\uc0b0_\uc608", - "community": 0, - "norm_label": "quantity_items \u110e\u1169\u11bc\u1107\u1175\u110b\u116d\u11bc \u1100\u1168\u1109\u1161\u11ab \u110b\u1168" - }, - { - "label": "README.md", - "file_type": "document", - "source_file": "concepts/db_schema/unconfirmed/README.md", - "source_location": "L1", - "_origin": "ast", - "id": "concepts_db_schema_unconfirmed_readme", - "community": 0, - "norm_label": "readme.md" - }, - { - "label": "\ubbf8\ud655\uc815 \ud14c\uc774\ube14 \ubcf4\uad00\uc18c (Unconfirmed DB Schemas)", - "file_type": "document", - "source_file": "concepts/db_schema/unconfirmed/README.md", - "source_location": "L1", - "_origin": "ast", - "id": "concepts_db_schema_unconfirmed_readme_\ubbf8\ud655\uc815_\ud14c\uc774\ube14_\ubcf4\uad00\uc18c_unconfirmed_db_schemas", - "community": 0, - "norm_label": "\u1106\u1175\u1112\u116a\u11a8\u110c\u1165\u11bc \u1110\u1166\u110b\u1175\u1107\u1173\u11af \u1107\u1169\u1100\u116a\u11ab\u1109\u1169 (unconfirmed db schemas)" - }, - { - "label": "\uc6b4\uc601 \uaddc\uce59", - "file_type": "document", - "source_file": "concepts/db_schema/unconfirmed/README.md", - "source_location": "L5", - "_origin": "ast", - "id": "concepts_db_schema_unconfirmed_readme_\uc6b4\uc601_\uaddc\uce59", - "community": 0, - "norm_label": "\u110b\u116e\u11ab\u110b\u1167\u11bc \u1100\u1172\u110e\u1175\u11a8" - }, - { - "label": "users_auth.md", - "file_type": "document", - "source_file": "concepts/db_schema/users_auth.md", - "source_location": "L1", - "_origin": "ast", - "id": "concepts_db_schema_users_auth", - "community": 1, - "norm_label": "users_auth.md" - }, - { - "label": "DB: \uc0ac\uc6a9\uc790/\uc778\uc99d/\uc870\uc9c1 \ud14c\uc774\ube14", - "file_type": "document", - "source_file": "concepts/db_schema/users_auth.md", - "source_location": "L9", - "_origin": "ast", - "id": "concepts_db_schema_users_auth_db_\uc0ac\uc6a9\uc790_\uc778\uc99d_\uc870\uc9c1_\ud14c\uc774\ube14", - "community": 1, - "norm_label": "db: \u1109\u1161\u110b\u116d\u11bc\u110c\u1161/\u110b\u1175\u11ab\u110c\u1173\u11bc/\u110c\u1169\u110c\u1175\u11a8 \u1110\u1166\u110b\u1175\u1107\u1173\u11af" - }, - { - "label": "users (\uc0ac\uc6a9\uc790)", - "file_type": "document", - "source_file": "concepts/db_schema/users_auth.md", - "source_location": "L13", - "_origin": "ast", - "id": "concepts_db_schema_users_auth_users_\uc0ac\uc6a9\uc790", - "community": 1, - "norm_label": "users (\u1109\u1161\u110b\u116d\u11bc\u110c\u1161)" - }, - { - "label": "companies (\ud68c\uc0ac)", - "file_type": "document", - "source_file": "concepts/db_schema/users_auth.md", - "source_location": "L32", - "_origin": "ast", - "id": "concepts_db_schema_users_auth_companies_\ud68c\uc0ac", - "community": 1, - "norm_label": "companies (\u1112\u116c\u1109\u1161)" - }, - { - "label": "sessions (\uc138\uc158)", - "file_type": "document", - "source_file": "concepts/db_schema/users_auth.md", - "source_location": "L45", - "_origin": "ast", - "id": "concepts_db_schema_users_auth_sessions_\uc138\uc158", - "community": 1, - "norm_label": "sessions (\u1109\u1166\u1109\u1167\u11ab)" - }, - { - "label": "email_otps (\uc774\uba54\uc77c OTP)", - "file_type": "document", - "source_file": "concepts/db_schema/users_auth.md", - "source_location": "L56", - "_origin": "ast", - "id": "concepts_db_schema_users_auth_email_otps_\uc774\uba54\uc77c_otp", - "community": 1, - "norm_label": "email_otps (\u110b\u1175\u1106\u1166\u110b\u1175\u11af otp)" - }, - { - "label": "trusted_devices (\uc2e0\ub8b0 \uae30\uae30)", - "file_type": "document", - "source_file": "concepts/db_schema/users_auth.md", - "source_location": "L65", - "_origin": "ast", - "id": "concepts_db_schema_users_auth_trusted_devices_\uc2e0\ub8b0_\uae30\uae30", - "community": 1, - "norm_label": "trusted_devices (\u1109\u1175\u11ab\u1105\u116c \u1100\u1175\u1100\u1175)" - }, - { - "label": "join_requests (\ud68c\uc0ac \uac00\uc785 \uc2e0\uccad)", - "file_type": "document", - "source_file": "concepts/db_schema/users_auth.md", - "source_location": "L73", - "_origin": "ast", - "id": "concepts_db_schema_users_auth_join_requests_\ud68c\uc0ac_\uac00\uc785_\uc2e0\uccad", - "community": 1, - "norm_label": "join_requests (\u1112\u116c\u1109\u1161 \u1100\u1161\u110b\u1175\u11b8 \u1109\u1175\u11ab\u110e\u1165\u11bc)" - }, - { - "label": "user_consents (\uc57d\uad00 \ub3d9\uc758)", - "file_type": "document", - "source_file": "concepts/db_schema/users_auth.md", - "source_location": "L84", - "_origin": "ast", - "id": "concepts_db_schema_users_auth_user_consents_\uc57d\uad00_\ub3d9\uc758", - "community": 1, - "norm_label": "user_consents (\u110b\u1163\u11a8\u1100\u116a\u11ab \u1103\u1169\u11bc\u110b\u1174)" - }, - { - "label": "dependencies.md", - "file_type": "document", - "source_file": "concepts/dependencies.md", - "source_location": "L1", - "_origin": "ast", - "id": "concepts_dependencies", - "community": 2, - "norm_label": "dependencies.md" - }, - { - "label": "\uc678\ubd80 \ub77c\uc774\ube0c\ub7ec\ub9ac \uc758\uc874\uc131", - "file_type": "document", - "source_file": "concepts/dependencies.md", - "source_location": "L9", - "_origin": "ast", - "id": "concepts_dependencies_\uc678\ubd80_\ub77c\uc774\ube0c\ub7ec\ub9ac_\uc758\uc874\uc131", - "community": 2, - "norm_label": "\u110b\u116c\u1107\u116e \u1105\u1161\u110b\u1175\u1107\u1173\u1105\u1165\u1105\u1175 \u110b\u1174\u110c\u1169\u11ab\u1109\u1165\u11bc" - }, - { - "label": "\ubc31\uc5d4\ub4dc (Python 3.12.7)", - "file_type": "document", - "source_file": "concepts/dependencies.md", - "source_location": "L11", - "_origin": "ast", - "id": "concepts_dependencies_\ubc31\uc5d4\ub4dc_python_3_12_7", - "community": 2, - "norm_label": "\u1107\u1162\u11a8\u110b\u1166\u11ab\u1103\u1173 (python 3.12.7)" - }, - { - "label": "\ud504\ub860\ud2b8\uc5d4\ub4dc (TypeScript/Node.js)", - "file_type": "document", - "source_file": "concepts/dependencies.md", - "source_location": "L27", - "_origin": "ast", - "id": "concepts_dependencies_\ud504\ub860\ud2b8\uc5d4\ub4dc_typescript_node_js", - "community": 2, - "norm_label": "\u1111\u1173\u1105\u1169\u11ab\u1110\u1173\u110b\u1166\u11ab\u1103\u1173 (typescript/node.js)" - }, - { - "label": "\uc120\uc815 \uc6d0\uce59 (agent.md 3\uc808)", - "file_type": "document", - "source_file": "concepts/dependencies.md", - "source_location": "L35", - "_origin": "ast", - "id": "concepts_dependencies_\uc120\uc815_\uc6d0\uce59_agent_md_3\uc808", - "community": 2, - "norm_label": "\u1109\u1165\u11ab\u110c\u1165\u11bc \u110b\u116f\u11ab\u110e\u1175\u11a8 (agent.md 3\u110c\u1165\u11af)" - }, - { - "label": "schema_common.md", - "file_type": "document", - "source_file": "concepts/schema_common.md", - "source_location": "L1", - "_origin": "ast", - "id": "concepts_schema_common", - "community": 1, - "norm_label": "schema_common.md" - }, - { - "label": "\uacf5\ud1b5 \uc2a4\ud0a4\ub9c8 (Pydantic \uc694\uccad/\uc751\ub2f5 \uaddc\uce59)", - "file_type": "document", - "source_file": "concepts/schema_common.md", - "source_location": "L9", - "_origin": "ast", - "id": "concepts_schema_common_\uacf5\ud1b5_\uc2a4\ud0a4\ub9c8_pydantic_\uc694\uccad_\uc751\ub2f5_\uaddc\uce59", - "community": 1, - "norm_label": "\u1100\u1169\u11bc\u1110\u1169\u11bc \u1109\u1173\u110f\u1175\u1106\u1161 (pydantic \u110b\u116d\u110e\u1165\u11bc/\u110b\u1173\u11bc\u1103\u1161\u11b8 \u1100\u1172\u110e\u1175\u11a8)" - }, - { - "label": "\uac80\uc99d \uc6d0\uce59 (backend.md 4\uc808)", - "file_type": "document", - "source_file": "concepts/schema_common.md", - "source_location": "L11", - "_origin": "ast", - "id": "concepts_schema_common_\uac80\uc99d_\uc6d0\uce59_backend_md_4\uc808", - "community": 1, - "norm_label": "\u1100\u1165\u11b7\u110c\u1173\u11bc \u110b\u116f\u11ab\u110e\u1175\u11a8 (backend.md 4\u110c\u1165\u11af)" - }, - { - "label": "\uba85\uba85 \uaddc\uce59", - "file_type": "document", - "source_file": "concepts/schema_common.md", - "source_location": "L16", - "_origin": "ast", - "id": "concepts_schema_common_\uba85\uba85_\uaddc\uce59", - "community": 1, - "norm_label": "\u1106\u1167\u11bc\u1106\u1167\u11bc \u1100\u1172\u110e\u1175\u11a8" - }, - { - "label": "storage_paths.md", - "file_type": "document", - "source_file": "concepts/storage_paths.md", - "source_location": "L1", - "_origin": "ast", - "id": "concepts_storage_paths", - "community": 2, - "norm_label": "storage_paths.md" - }, - { - "label": "\uc800\uc7a5 \uacbd\ub85c \uaddc\uce59 (Workflow-based Folder Structure)", - "file_type": "document", - "source_file": "concepts/storage_paths.md", - "source_location": "L9", - "_origin": "ast", - "id": "concepts_storage_paths_\uc800\uc7a5_\uacbd\ub85c_\uaddc\uce59_workflow_based_folder_structure", - "community": 2, - "norm_label": "\u110c\u1165\u110c\u1161\u11bc \u1100\u1167\u11bc\u1105\u1169 \u1100\u1172\u110e\u1175\u11a8 (workflow-based folder structure)" - }, - { - "label": "\uacbd\ub85c \ud328\ud134", - "file_type": "document", - "source_file": "concepts/storage_paths.md", - "source_location": "L11", - "_origin": "ast", - "id": "concepts_storage_paths_\uacbd\ub85c_\ud328\ud134", - "community": 2, - "norm_label": "\u1100\u1167\u11bc\u1105\u1169 \u1111\u1162\u1110\u1165\u11ab" - }, - { - "label": "\uc6d0\uce59 (backend.md 3\uc808)", - "file_type": "document", - "source_file": "concepts/storage_paths.md", - "source_location": "L23", - "_origin": "ast", - "id": "concepts_storage_paths_\uc6d0\uce59_backend_md_3\uc808", - "community": 2, - "norm_label": "\u110b\u116f\u11ab\u110e\u1175\u11a8 (backend.md 3\u110c\u1165\u11af)" - }, - { - "label": "DB \uceec\ub7fc \u2194 \uc2e4\uc81c \uacbd\ub85c \ub9e4\ud551", - "file_type": "document", - "source_file": "concepts/storage_paths.md", - "source_location": "L30", - "_origin": "ast", - "id": "concepts_storage_paths_db_\uceec\ub7fc_\uc2e4\uc81c_\uacbd\ub85c_\ub9e4\ud551", - "community": 2, - "norm_label": "db \u110f\u1165\u11af\u1105\u1165\u11b7 \u2194 \u1109\u1175\u11af\u110c\u1166 \u1100\u1167\u11bc\u1105\u1169 \u1106\u1162\u1111\u1175\u11bc" - }, - { - "label": "\ud30c\uc77c\uba85 \uaddc\uce59 (structure.md 1\uc808)", - "file_type": "document", - "source_file": "concepts/storage_paths.md", - "source_location": "L33", - "_origin": "ast", - "id": "concepts_storage_paths_\ud30c\uc77c\uba85_\uaddc\uce59_structure_md_1\uc808", - "community": 2, - "norm_label": "\u1111\u1161\u110b\u1175\u11af\u1106\u1167\u11bc \u1100\u1172\u110e\u1175\u11a8 (structure.md 1\u110c\u1165\u11af)" - }, - { - "label": "ui_templates.md", - "file_type": "document", - "source_file": "concepts/ui_templates.md", - "source_location": "L1", - "_origin": "ast", - "id": "concepts_ui_templates", - "community": 5, - "norm_label": "ui_templates.md" - }, - { - "label": "UI Templates \u2014 Localization & Components", - "file_type": "document", - "source_file": "concepts/ui_templates.md", - "source_location": "L8", - "_origin": "ast", - "id": "concepts_ui_templates_ui_templates_localization_components", - "community": 8, - "norm_label": "ui templates \u2014 localization & components" - }, - { - "label": "ui_template_locale.ts (\ub2e4\uad6d\uc5b4 \uad00\ub9ac)", - "file_type": "document", - "source_file": "concepts/ui_templates.md", - "source_location": "L12", - "_origin": "ast", - "id": "concepts_ui_templates_ui_template_locale_ts_\ub2e4\uad6d\uc5b4_\uad00\ub9ac", - "community": 8, - "norm_label": "ui_template_locale.ts (\u1103\u1161\u1100\u116e\u11a8\u110b\u1165 \u1100\u116a\u11ab\u1105\u1175)" - }, - { - "label": "\ud575\uc2ec \uae30\ub2a5", - "file_type": "document", - "source_file": "concepts/ui_templates.md", - "source_location": "L16", - "_origin": "ast", - "id": "concepts_ui_templates_\ud575\uc2ec_\uae30\ub2a5", - "community": 8, - "norm_label": "\u1112\u1162\u11a8\u1109\u1175\u11b7 \u1100\u1175\u1102\u1173\u11bc" - }, - { - "label": "\uc0ac\uc6a9\ucc98 (\uc5ed\ucc38\uc870)", - "file_type": "document", - "source_file": "concepts/ui_templates.md", - "source_location": "L24", - "_origin": "ast", - "id": "concepts_ui_templates_\uc0ac\uc6a9\ucc98_\uc5ed\ucc38\uc870", - "community": 8, - "norm_label": "\u1109\u1161\u110b\u116d\u11bc\u110e\u1165 (\u110b\u1167\u11a8\u110e\u1161\u11b7\u110c\u1169)" - }, - { - "label": "ui_template_elements.ts (\uacf5\ud1b5 \ucef4\ud3ec\ub10c\ud2b8)", - "file_type": "document", - "source_file": "concepts/ui_templates.md", - "source_location": "L30", - "_origin": "ast", - "id": "concepts_ui_templates_ui_template_elements_ts_\uacf5\ud1b5_\ucef4\ud3ec\ub10c\ud2b8", - "community": 8, - "norm_label": "ui_template_elements.ts (\u1100\u1169\u11bc\u1110\u1169\u11bc \u110f\u1165\u11b7\u1111\u1169\u1102\u1165\u11ab\u1110\u1173)" - }, - { - "label": "\uc81c\uacf5 \ucef4\ud3ec\ub10c\ud2b8", - "file_type": "document", - "source_file": "concepts/ui_templates.md", - "source_location": "L34", - "_origin": "ast", - "id": "concepts_ui_templates_\uc81c\uacf5_\ucef4\ud3ec\ub10c\ud2b8", - "community": 8, - "norm_label": "\u110c\u1166\u1100\u1169\u11bc \u110f\u1165\u11b7\u1111\u1169\u1102\u1165\u11ab\u1110\u1173" - }, - { - "label": "\uc0ac\uc6a9\ucc98 (\uc5ed\ucc38\uc870)", - "file_type": "document", - "source_file": "concepts/ui_templates.md", - "source_location": "L50", - "_origin": "ast", - "id": "concepts_ui_templates_\uc0ac\uc6a9\ucc98_\uc5ed\ucc38\uc870_50", - "community": 8, - "norm_label": "\u1109\u1161\u110b\u116d\u11bc\u110e\u1165 (\u110b\u1167\u11a8\u110e\u1161\u11b7\u110c\u1169)" - }, - { - "label": "theme.css (\uc2a4\ud0c0\uc77c \ubcc0\uc218)", - "file_type": "document", - "source_file": "concepts/ui_templates.md", - "source_location": "L59", - "_origin": "ast", - "id": "concepts_ui_templates_theme_css_\uc2a4\ud0c0\uc77c_\ubcc0\uc218", - "community": 8, - "norm_label": "theme.css (\u1109\u1173\u1110\u1161\u110b\u1175\u11af \u1107\u1167\u11ab\u1109\u116e)" - }, - { - "label": "\ud575\uc2ec \ubcc0\uc218", - "file_type": "document", - "source_file": "concepts/ui_templates.md", - "source_location": "L63", - "_origin": "ast", - "id": "concepts_ui_templates_\ud575\uc2ec_\ubcc0\uc218", - "community": 8, - "norm_label": "\u1112\u1162\u11a8\u1109\u1175\u11b7 \u1107\u1167\u11ab\u1109\u116e" - }, - { - "label": "\uc81c\uc57d (backend.md \u00a71)", - "file_type": "document", - "source_file": "concepts/ui_templates.md", - "source_location": "L75", - "_origin": "ast", - "id": "concepts_ui_templates_\uc81c\uc57d_backend_md_1", - "community": 8, - "norm_label": "\u110c\u1166\u110b\u1163\u11a8 (backend.md \u00a71)" - }, - { - "label": "\uc758\uc874\uc131", - "file_type": "document", - "source_file": "concepts/ui_templates.md", - "source_location": "L82", - "_origin": "ast", - "id": "concepts_ui_templates_\uc758\uc874\uc131", - "community": 8, - "norm_label": "\u110b\u1174\u110c\u1169\u11ab\u1109\u1165\u11bc" - }, - { - "label": "workflow_state.md", - "file_type": "document", - "source_file": "concepts/workflow_state.md", - "source_location": "L1", - "_origin": "ast", - "id": "concepts_workflow_state", - "community": 2, - "norm_label": "workflow_state.md" - }, - { - "label": "Workflow \uc0c1\ud0dc \uad00\ub9ac \u2014 \uad6c\ud604 \uc644\ub8cc (\uc2e4 DB \ud655\uc778\ub428)", - "file_type": "document", - "source_file": "concepts/workflow_state.md", - "source_location": "L9", - "_origin": "ast", - "id": "concepts_workflow_state_workflow_\uc0c1\ud0dc_\uad00\ub9ac_\uad6c\ud604_\uc644\ub8cc_\uc2e4_db_\ud655\uc778\ub428", - "community": 21, - "norm_label": "workflow \u1109\u1161\u11bc\u1110\u1162 \u1100\u116a\u11ab\u1105\u1175 \u2014 \u1100\u116e\u1112\u1167\u11ab \u110b\u116a\u11ab\u1105\u116d (\u1109\u1175\u11af db \u1112\u116a\u11a8\u110b\u1175\u11ab\u1103\u116c\u11b7)" - }, - { - "label": "SSOT: `project_workflow_stages` \ud14c\uc774\ube14 (\uc2e4 DB \ud655\uc778)", - "file_type": "document", - "source_file": "concepts/workflow_state.md", - "source_location": "L13", - "_origin": "ast", - "id": "concepts_workflow_state_ssot_project_workflow_stages_\ud14c\uc774\ube14_\uc2e4_db_\ud655\uc778", - "community": 21, - "norm_label": "ssot: `project_workflow_stages` \u1110\u1166\u110b\u1175\u1107\u1173\u11af (\u1109\u1175\u11af db \u1112\u116a\u11a8\u110b\u1175\u11ab)" - }, - { - "label": "\uacf5\ud1b5 \uc720\ud2f8 `common_util/common_util_workflow_state.py`", - "file_type": "document", - "source_file": "concepts/workflow_state.md", - "source_location": "L27", - "_origin": "ast", - "id": "concepts_workflow_state_\uacf5\ud1b5_\uc720\ud2f8_common_util_common_util_workflow_state_py", - "community": 21, - "norm_label": "\u1100\u1169\u11bc\u1110\u1169\u11bc \u110b\u1172\u1110\u1175\u11af `common_util/common_util_workflow_state.py`" - }, - { - "label": "\uc2e4 \uc5f0\ub3d9 \ud604\ud669 (\ud30c\uc77c:\uc904\ubc88\ud638)", - "file_type": "document", - "source_file": "concepts/workflow_state.md", - "source_location": "L37", - "_origin": "ast", - "id": "concepts_workflow_state_\uc2e4_\uc5f0\ub3d9_\ud604\ud669_\ud30c\uc77c_\uc904\ubc88\ud638", - "community": 21, - "norm_label": "\u1109\u1175\u11af \u110b\u1167\u11ab\u1103\u1169\u11bc \u1112\u1167\u11ab\u1112\u116a\u11bc (\u1111\u1161\u110b\u1175\u11af:\u110c\u116e\u11af\u1107\u1165\u11ab\u1112\u1169)" - }, - { - "label": "\uc870\ud68c API (\uc2e4\uc81c \uc874\uc7ac, \uacc4\ud68d\uc11c\uc640 \uacbd\ub85c \uc77c\uce58)", - "file_type": "document", - "source_file": "concepts/workflow_state.md", - "source_location": "L47", - "_origin": "ast", - "id": "concepts_workflow_state_\uc870\ud68c_api_\uc2e4\uc81c_\uc874\uc7ac_\uacc4\ud68d\uc11c\uc640_\uacbd\ub85c_\uc77c\uce58", - "community": 21, - "norm_label": "\u110c\u1169\u1112\u116c api (\u1109\u1175\u11af\u110c\u1166 \u110c\u1169\u11ab\u110c\u1162, \u1100\u1168\u1112\u116c\u11a8\u1109\u1165\u110b\u116a \u1100\u1167\u11bc\u1105\u1169 \u110b\u1175\u11af\u110e\u1175)" - }, - { - "label": "\uc0c1\ud0dc \uc804\uc774 (\uad6c\ud604\ub300\ub85c)", - "file_type": "document", - "source_file": "concepts/workflow_state.md", - "source_location": "L54", - "_origin": "ast", - "id": "concepts_workflow_state_\uc0c1\ud0dc_\uc804\uc774_\uad6c\ud604\ub300\ub85c", - "community": 21, - "norm_label": "\u1109\u1161\u11bc\u1110\u1162 \u110c\u1165\u11ab\u110b\u1175 (\u1100\u116e\u1112\u1167\u11ab\u1103\u1162\u1105\u1169)" - }, - { - "label": "projects.status \ubb38\uc790\uc5f4 \uce90\uc2dc (\ud638\ud658\uc6a9, \uacc4\ud68d\uc11c \ubc29\uce68\ub300\ub85c \uc720\uc9c0 \uc911)", - "file_type": "document", - "source_file": "concepts/workflow_state.md", - "source_location": "L62", - "_origin": "ast", - "id": "concepts_workflow_state_projects_status_\ubb38\uc790\uc5f4_\uce90\uc2dc_\ud638\ud658\uc6a9_\uacc4\ud68d\uc11c_\ubc29\uce68\ub300\ub85c_\uc720\uc9c0_\uc911", - "community": 21, - "norm_label": "projects.status \u1106\u116e\u11ab\u110c\u1161\u110b\u1167\u11af \u110f\u1162\u1109\u1175 (\u1112\u1169\u1112\u116a\u11ab\u110b\u116d\u11bc, \u1100\u1168\u1112\u116c\u11a8\u1109\u1165 \u1107\u1161\u11bc\u110e\u1175\u11b7\u1103\u1162\u1105\u1169 \u110b\u1172\u110c\u1175 \u110c\u116e\u11bc)" - }, - { - "label": "B04 \uc0c1\ud0dc \uc870\ud68c \u2014 \ub808\uac70\uc2dc \ud3f4\ubc31 (\ub2f9\ucd08 \"\uc794\uc7ac\"\ub85c \ud45c\uae30\ud588\uc73c\ub098 \uc815\uc815)", - "file_type": "document", - "source_file": "concepts/workflow_state.md", - "source_location": "L65", - "_origin": "ast", - "id": "concepts_workflow_state_b04_\uc0c1\ud0dc_\uc870\ud68c_\ub808\uac70\uc2dc_\ud3f4\ubc31_\ub2f9\ucd08_\uc794\uc7ac_\ub85c_\ud45c\uae30\ud588\uc73c\ub098_\uc815\uc815", - "community": 21, - "norm_label": "b04 \u1109\u1161\u11bc\u1110\u1162 \u110c\u1169\u1112\u116c \u2014 \u1105\u1166\u1100\u1165\u1109\u1175 \u1111\u1169\u11af\u1107\u1162\u11a8 (\u1103\u1161\u11bc\u110e\u1169 \"\u110c\u1161\u11ab\u110c\u1162\"\u1105\u1169 \u1111\u116d\u1100\u1175\u1112\u1162\u11bb\u110b\u1173\u1102\u1161 \u110c\u1165\u11bc\u110c\u1165\u11bc)" - }, - { - "label": "\ubbf8\ud574\uacb0 \uc0ac\ud56d (\uacc4\ud68d\uc11c \uc6d0\ubb38, \uc544\uc9c1 \uacb0\uc815 \uc548 \ub428)", - "file_type": "document", - "source_file": "concepts/workflow_state.md", - "source_location": "L72", - "_origin": "ast", - "id": "concepts_workflow_state_\ubbf8\ud574\uacb0_\uc0ac\ud56d_\uacc4\ud68d\uc11c_\uc6d0\ubb38_\uc544\uc9c1_\uacb0\uc815_\uc548_\ub428", - "community": 21, - "norm_label": "\u1106\u1175\u1112\u1162\u1100\u1167\u11af \u1109\u1161\u1112\u1161\u11bc (\u1100\u1168\u1112\u116c\u11a8\u1109\u1165 \u110b\u116f\u11ab\u1106\u116e\u11ab, \u110b\u1161\u110c\u1175\u11a8 \u1100\u1167\u11af\u110c\u1165\u11bc \u110b\u1161\u11ab \u1103\u116c\u11b7)" - }, - { - "label": "index.md", - "file_type": "document", - "source_file": "index.md", - "source_location": "L1", - "_origin": "ast", - "id": "index", - "community": 3, - "norm_label": "index.md" - }, - { - "label": "Wiki Index", - "file_type": "document", - "source_file": "index.md", - "source_location": "L6", - "_origin": "ast", - "id": "index_wiki_index", - "community": 3, - "norm_label": "wiki index" - }, - { - "label": "\ud398\uc774\uc9c0 \u2014 \ub85c\uadf8\uc778 \ud6c4 \uc6cc\ud06c\ud50c\ub85c\uc6b0 (B01~B09)", - "file_type": "document", - "source_file": "index.md", - "source_location": "L10", - "_origin": "ast", - "id": "index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\ud6c4_\uc6cc\ud06c\ud50c\ub85c\uc6b0_b01_b09", - "community": 3, - "norm_label": "\u1111\u1166\u110b\u1175\u110c\u1175 \u2014 \u1105\u1169\u1100\u1173\u110b\u1175\u11ab \u1112\u116e \u110b\u116f\u110f\u1173\u1111\u1173\u11af\u1105\u1169\u110b\u116e (b01~b09)" - }, - { - "label": "[[B01_Dashboard/B01_backend|B01_Dashboard]]", - "file_type": "document", - "source_file": "index.md", - "source_location": "L12", - "_origin": "ast", - "id": "index_b01_dashboard_b01_backend_b01_dashboard", - "community": 3, - "norm_label": "[[b01_dashboard/b01_backend|b01_dashboard]]" - }, - { - "label": "[[B02_ProjRegister/B02_backend|B02_ProjRegister]]", - "file_type": "document", - "source_file": "index.md", - "source_location": "L15", - "_origin": "ast", - "id": "index_b02_projregister_b02_backend_b02_projregister", - "community": 3, - "norm_label": "[[b02_projregister/b02_backend|b02_projregister]]" - }, - { - "label": "[[B03_FileInput/B03_backend|B03_FileInput]]", - "file_type": "document", - "source_file": "index.md", - "source_location": "L18", - "_origin": "ast", - "id": "index_b03_fileinput_b03_backend_b03_fileinput", - "community": 3, - "norm_label": "[[b03_fileinput/b03_backend|b03_fileinput]]" - }, - { - "label": "[[B04_wf1_Surface/B04_backend|B04_wf1_Surface]]", - "file_type": "document", - "source_file": "index.md", - "source_location": "L21", - "_origin": "ast", - "id": "index_b04_wf1_surface_b04_backend_b04_wf1_surface", - "community": 3, - "norm_label": "[[b04_wf1_surface/b04_backend|b04_wf1_surface]]" - }, - { - "label": "[[B05_wf2_Route/B05_backend|B05_wf2_Route]]", - "file_type": "document", - "source_file": "index.md", - "source_location": "L24", - "_origin": "ast", - "id": "index_b05_wf2_route_b05_backend_b05_wf2_route", - "community": 3, - "norm_label": "[[b05_wf2_route/b05_backend|b05_wf2_route]]" - }, - { - "label": "[[B06_wf3_ProfileCross/B06_backend|B06_wf3_ProfileCross]]", - "file_type": "document", - "source_file": "index.md", - "source_location": "L27", - "_origin": "ast", - "id": "index_b06_wf3_profilecross_b06_backend_b06_wf3_profilecross", - "community": 3, - "norm_label": "[[b06_wf3_profilecross/b06_backend|b06_wf3_profilecross]]" - }, - { - "label": "[[B07_wf4_DesignDetail/B07_frontend|B07_wf4_DesignDetail]]", - "file_type": "document", - "source_file": "index.md", - "source_location": "L30", - "_origin": "ast", - "id": "index_b07_wf4_designdetail_b07_frontend_b07_wf4_designdetail", - "community": 3, - "norm_label": "[[b07_wf4_designdetail/b07_frontend|b07_wf4_designdetail]]" - }, - { - "label": "[[B08_wf5_Quantity/B08_frontend|B08_wf5_Quantity]]", - "file_type": "document", - "source_file": "index.md", - "source_location": "L33", - "_origin": "ast", - "id": "index_b08_wf5_quantity_b08_frontend_b08_wf5_quantity", - "community": 3, - "norm_label": "[[b08_wf5_quantity/b08_frontend|b08_wf5_quantity]]" - }, - { - "label": "[[B09_wf6_Estimation/B09_frontend|B09_wf6_Estimation]]", - "file_type": "document", - "source_file": "index.md", - "source_location": "L36", - "_origin": "ast", - "id": "index_b09_wf6_estimation_b09_frontend_b09_wf6_estimation", - "community": 3, - "norm_label": "[[b09_wf6_estimation/b09_frontend|b09_wf6_estimation]]" - }, - { - "label": "\ud398\uc774\uc9c0 \u2014 \ub85c\uadf8\uc778 \uc804 (A01~A09)", - "file_type": "document", - "source_file": "index.md", - "source_location": "L39", - "_origin": "ast", - "id": "index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\uc804_a01_a09", - "community": 3, - "norm_label": "\u1111\u1166\u110b\u1175\u110c\u1175 \u2014 \u1105\u1169\u1100\u1173\u110b\u1175\u11ab \u110c\u1165\u11ab (a01~a09)" - }, - { - "label": "[[A01_Home/A01_frontend|A01_Home]]", - "file_type": "document", - "source_file": "index.md", - "source_location": "L41", - "_origin": "ast", - "id": "index_a01_home_a01_frontend_a01_home", - "community": 3, - "norm_label": "[[a01_home/a01_frontend|a01_home]]" - }, - { - "label": "[[A02_ProgDetail/A02_frontend|A02_ProgDetail]]", - "file_type": "document", - "source_file": "index.md", - "source_location": "L44", - "_origin": "ast", - "id": "index_a02_progdetail_a02_frontend_a02_progdetail", - "community": 3, - "norm_label": "[[a02_progdetail/a02_frontend|a02_progdetail]]" - }, - { - "label": "[[A03_CompDetail/A03_frontend|A03_CompDetail]]", - "file_type": "document", - "source_file": "index.md", - "source_location": "L47", - "_origin": "ast", - "id": "index_a03_compdetail_a03_frontend_a03_compdetail", - "community": 3, - "norm_label": "[[a03_compdetail/a03_frontend|a03_compdetail]]" - }, - { - "label": "[[A04_NewsHistory/A04_frontend|A04_NewsHistory]]", - "file_type": "document", - "source_file": "index.md", - "source_location": "L50", - "_origin": "ast", - "id": "index_a04_newshistory_a04_frontend_a04_newshistory", - "community": 3, - "norm_label": "[[a04_newshistory/a04_frontend|a04_newshistory]]" - }, - { - "label": "[[A05_EduDetail/A05_frontend|A05_EduDetail]]", - "file_type": "document", - "source_file": "index.md", - "source_location": "L53", - "_origin": "ast", - "id": "index_a05_edudetail_a05_frontend_a05_edudetail", - "community": 3, - "norm_label": "[[a05_edudetail/a05_frontend|a05_edudetail]]" - }, - { - "label": "[[A06_Login/A06_backend|A06_Login]]", - "file_type": "document", - "source_file": "index.md", - "source_location": "L56", - "_origin": "ast", - "id": "index_a06_login_a06_backend_a06_login", - "community": 3, - "norm_label": "[[a06_login/a06_backend|a06_login]]" - }, - { - "label": "[[A07_Register/A07_backend|A07_Register]]", - "file_type": "document", - "source_file": "index.md", - "source_location": "L59", - "_origin": "ast", - "id": "index_a07_register_a07_backend_a07_register", - "community": 3, - "norm_label": "[[a07_register/a07_backend|a07_register]]" - }, - { - "label": "[[A08_Support/A08_backend|A08_Support]]", - "file_type": "document", - "source_file": "index.md", - "source_location": "L62", - "_origin": "ast", - "id": "index_a08_support_a08_backend_a08_support", - "community": 3, - "norm_label": "[[a08_support/a08_backend|a08_support]]" - }, - { - "label": "[[A09_Security/A09_backend|A09_Security]]", - "file_type": "document", - "source_file": "index.md", - "source_location": "L65", - "_origin": "ast", - "id": "index_a09_security_a09_backend_a09_security", - "community": 3, - "norm_label": "[[a09_security/a09_backend|a09_security]]" - }, - { - "label": "\uac1c\ub150 (Concepts)", - "file_type": "document", - "source_file": "index.md", - "source_location": "L68", - "_origin": "ast", - "id": "index_\uac1c\ub150_concepts", - "community": 3, - "norm_label": "\u1100\u1162\u1102\u1167\u11b7 (concepts)" - }, - { - "label": "[[a00_app_shell_framework]]", - "file_type": "document", - "source_file": "index.md", - "source_location": "L70", - "_origin": "ast", - "id": "index_a00_app_shell_framework", - "community": 3, - "norm_label": "[[a00_app_shell_framework]]" - }, - { - "label": "[[a00_app_shell_framework_scaffold]]", - "file_type": "document", - "source_file": "index.md", - "source_location": "L73", - "_origin": "ast", - "id": "index_a00_app_shell_framework_scaffold", - "community": 3, - "norm_label": "[[a00_app_shell_framework_scaffold]]" - }, - { - "label": "[[ui_templates]]", - "file_type": "document", - "source_file": "index.md", - "source_location": "L76", - "_origin": "ast", - "id": "index_ui_templates", - "community": 3, - "norm_label": "[[ui_templates]]" - }, - { - "label": "DB \uc2a4\ud0a4\ub9c8", - "file_type": "document", - "source_file": "index.md", - "source_location": "L79", - "_origin": "ast", - "id": "index_db_\uc2a4\ud0a4\ub9c8", - "community": 3, - "norm_label": "db \u1109\u1173\u110f\u1175\u1106\u1161" - }, - { - "label": "[[auth_rbac]]", - "file_type": "document", - "source_file": "index.md", - "source_location": "L89", - "_origin": "ast", - "id": "index_auth_rbac", - "community": 3, - "norm_label": "[[auth_rbac]]" - }, - { - "label": "[[storage_paths]]", - "file_type": "document", - "source_file": "index.md", - "source_location": "L92", - "_origin": "ast", - "id": "index_storage_paths", - "community": 3, - "norm_label": "[[storage_paths]]" - }, - { - "label": "[[common_util]]", - "file_type": "document", - "source_file": "index.md", - "source_location": "L95", - "_origin": "ast", - "id": "index_common_util", - "community": 3, - "norm_label": "[[common_util]]" - }, - { - "label": "API \uacf5\ud1b5 (\uc5ec\ub7ec \ud398\uc774\uc9c0\uac00 \uacf5\uc720\ud558\ub294 \uc5d4\ub4dc\ud3ec\uc778\ud2b8)", - "file_type": "document", - "source_file": "index.md", - "source_location": "L98", - "_origin": "ast", - "id": "index_api_\uacf5\ud1b5_\uc5ec\ub7ec_\ud398\uc774\uc9c0\uac00_\uacf5\uc720\ud558\ub294_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "community": 3, - "norm_label": "api \u1100\u1169\u11bc\u1110\u1169\u11bc (\u110b\u1167\u1105\u1165 \u1111\u1166\u110b\u1175\u110c\u1175\u1100\u1161 \u1100\u1169\u11bc\u110b\u1172\u1112\u1161\u1102\u1173\u11ab \u110b\u1166\u11ab\u1103\u1173\u1111\u1169\u110b\u1175\u11ab\u1110\u1173)" - }, - { - "label": "\uc758\uc874\uc131 (\uc5ec\ub7ec \ud398\uc774\uc9c0\uac00 \uacf5\uc720\ud558\ub294 \uc678\ubd80 \ub77c\uc774\ube0c\ub7ec\ub9ac)", - "file_type": "document", - "source_file": "index.md", - "source_location": "L101", - "_origin": "ast", - "id": "index_\uc758\uc874\uc131_\uc5ec\ub7ec_\ud398\uc774\uc9c0\uac00_\uacf5\uc720\ud558\ub294_\uc678\ubd80_\ub77c\uc774\ube0c\ub7ec\ub9ac", - "community": 3, - "norm_label": "\u110b\u1174\u110c\u1169\u11ab\u1109\u1165\u11bc (\u110b\u1167\u1105\u1165 \u1111\u1166\u110b\u1175\u110c\u1175\u1100\u1161 \u1100\u1169\u11bc\u110b\u1172\u1112\u1161\u1102\u1173\u11ab \u110b\u116c\u1107\u116e \u1105\u1161\u110b\u1175\u1107\u1173\u1105\u1165\u1105\u1175)" - }, - { - "label": "\uacf5\ud1b5 \uc2a4\ud0a4\ub9c8 (Pydantic \uc694\uccad/\uc751\ub2f5 \ubaa8\ub378)", - "file_type": "document", - "source_file": "index.md", - "source_location": "L104", - "_origin": "ast", - "id": "index_\uacf5\ud1b5_\uc2a4\ud0a4\ub9c8_pydantic_\uc694\uccad_\uc751\ub2f5_\ubaa8\ub378", - "community": 3, - "norm_label": "\u1100\u1169\u11bc\u1110\u1169\u11bc \u1109\u1173\u110f\u1175\u1106\u1161 (pydantic \u110b\u116d\u110e\u1165\u11bc/\u110b\u1173\u11bc\u1103\u1161\u11b8 \u1106\u1169\u1103\u1166\u11af)" - }, - { - "label": "Workflow \uc0c1\ud0dc \uad00\ub9ac", - "file_type": "document", - "source_file": "index.md", - "source_location": "L107", - "_origin": "ast", - "id": "index_workflow_\uc0c1\ud0dc_\uad00\ub9ac", - "community": 3, - "norm_label": "workflow \u1109\u1161\u11bc\u1110\u1162 \u1100\u116a\u11ab\u1105\u1175" - }, - { - "label": "\u26a0\ufe0f \ubbf8\ud574\uacb0 \ud56d\ubaa9", - "file_type": "document", - "source_file": "index.md", - "source_location": "L110", - "_origin": "ast", - "id": "index_\ubbf8\ud574\uacb0_\ud56d\ubaa9", - "community": 3, - "norm_label": "\u26a0\ufe0f \u1106\u1175\u1112\u1162\u1100\u1167\u11af \u1112\u1161\u11bc\u1106\u1169\u11a8" - }, - { - "label": "A\uadf8\ub8f9 \uc778\uc81c\uc2a4\ud2b8 \uc774\uc288", - "file_type": "document", - "source_file": "index.md", - "source_location": "L116", - "_origin": "ast", - "id": "index_a\uadf8\ub8f9_\uc778\uc81c\uc2a4\ud2b8_\uc774\uc288", - "community": 3, - "norm_label": "a\u1100\u1173\u1105\u116e\u11b8 \u110b\u1175\u11ab\u110c\u1166\u1109\u1173\u1110\u1173 \u110b\u1175\u1109\u1172" - }, - { - "label": "log.md", - "file_type": "document", - "source_file": "log.md", - "source_location": "L1", - "_origin": "ast", - "id": "log", - "community": 4, - "norm_label": "log.md" - }, - { - "label": "Wiki Log", - "file_type": "document", - "source_file": "log.md", - "source_location": "L1", - "_origin": "ast", - "id": "log_wiki_log", - "community": 4, - "norm_label": "wiki log" - }, - { - "label": "[2026-07-12] lint | \uad6c\ud615 \uc0c1\uc704 \ud3f4\ub354 \ud0c8\ucd9c \ub9c1\ud06c(../../concepts/) \uc804\uc218 \uc815\ubc00 \uad50\uc815", - "file_type": "document", - "source_file": "log.md", - "source_location": "L6", - "_origin": "ast", - "id": "log_2026_07_12_lint_\uad6c\ud615_\uc0c1\uc704_\ud3f4\ub354_\ud0c8\ucd9c_\ub9c1\ud06c_concepts_\uc804\uc218_\uc815\ubc00_\uad50\uc815", - "community": 4, - "norm_label": "[2026-07-12] lint | \u1100\u116e\u1112\u1167\u11bc \u1109\u1161\u11bc\u110b\u1171 \u1111\u1169\u11af\u1103\u1165 \u1110\u1161\u11af\u110e\u116e\u11af \u1105\u1175\u11bc\u110f\u1173(../../concepts/) \u110c\u1165\u11ab\u1109\u116e \u110c\u1165\u11bc\u1106\u1175\u11af \u1100\u116d\u110c\u1165\u11bc" - }, - { - "label": "[2026-07-12] lint | 5\ud68c \ubc18\ubcf5 \ub9b0\ud2b8-\uac1c\uc120 \uc0ac\uc774\ud074 \uc218\ud589 \ubc0f \uc704\ud0a4 \uba54\ud0c0 \uc815\ubcf4 \uc815\ubc00 \ubcf4\uc644", - "file_type": "document", - "source_file": "log.md", - "source_location": "L10", - "_origin": "ast", - "id": "log_2026_07_12_lint_5\ud68c_\ubc18\ubcf5_\ub9b0\ud2b8_\uac1c\uc120_\uc0ac\uc774\ud074_\uc218\ud589_\ubc0f_\uc704\ud0a4_\uba54\ud0c0_\uc815\ubcf4_\uc815\ubc00_\ubcf4\uc644", - "community": 4, - "norm_label": "[2026-07-12] lint | 5\u1112\u116c \u1107\u1161\u11ab\u1107\u1169\u11a8 \u1105\u1175\u11ab\u1110\u1173-\u1100\u1162\u1109\u1165\u11ab \u1109\u1161\u110b\u1175\u110f\u1173\u11af \u1109\u116e\u1112\u1162\u11bc \u1106\u1175\u11be \u110b\u1171\u110f\u1175 \u1106\u1166\u1110\u1161 \u110c\u1165\u11bc\u1107\u1169 \u110c\u1165\u11bc\u1106\u1175\u11af \u1107\u1169\u110b\u116a\u11ab" - }, - { - "label": "[2026-07-12] ingest | DB 34\uac1c \ud14c\uc774\ube14 \uc804\uc218 \uceec\ub7fc \uc2e4\uce21 \ubc0f \uc704\ud0a4 \ucd5c\uc2e0\ud654", - "file_type": "document", - "source_file": "log.md", - "source_location": "L17", - "_origin": "ast", - "id": "log_2026_07_12_ingest_db_34\uac1c_\ud14c\uc774\ube14_\uc804\uc218_\uceec\ub7fc_\uc2e4\uce21_\ubc0f_\uc704\ud0a4_\ucd5c\uc2e0\ud654", - "community": 4, - "norm_label": "[2026-07-12] ingest | db 34\u1100\u1162 \u1110\u1166\u110b\u1175\u1107\u1173\u11af \u110c\u1165\u11ab\u1109\u116e \u110f\u1165\u11af\u1105\u1165\u11b7 \u1109\u1175\u11af\u110e\u1173\u11a8 \u1106\u1175\u11be \u110b\u1171\u110f\u1175 \u110e\u116c\u1109\u1175\u11ab\u1112\u116a" - }, - { - "label": "[2026-07-12] ingest+lint | 3\ud68c \ubc18\ubcf5 \ub9b0\ud2b8-\uac1c\uc120 \uc0ac\uc774\ud074 \uc218\ud589 \ubc0f \uc704\ud0a4 \ubb34\uacb0\uc131 \ud655\ubcf4", - "file_type": "document", - "source_file": "log.md", - "source_location": "L30", - "_origin": "ast", - "id": "log_2026_07_12_ingest_lint_3\ud68c_\ubc18\ubcf5_\ub9b0\ud2b8_\uac1c\uc120_\uc0ac\uc774\ud074_\uc218\ud589_\ubc0f_\uc704\ud0a4_\ubb34\uacb0\uc131_\ud655\ubcf4", - "community": 4, - "norm_label": "[2026-07-12] ingest+lint | 3\u1112\u116c \u1107\u1161\u11ab\u1107\u1169\u11a8 \u1105\u1175\u11ab\u1110\u1173-\u1100\u1162\u1109\u1165\u11ab \u1109\u1161\u110b\u1175\u110f\u1173\u11af \u1109\u116e\u1112\u1162\u11bc \u1106\u1175\u11be \u110b\u1171\u110f\u1175 \u1106\u116e\u1100\u1167\u11af\u1109\u1165\u11bc \u1112\u116a\u11a8\u1107\u1169" - }, - { - "label": "[2026-07-12] ingest | B09_wf6_Estimation (\uc2e4 \ucf54\ub4dc \ub300\uc870, \ubbf8\ucc29\uc218 \ud655\uc778)", - "file_type": "document", - "source_file": "log.md", - "source_location": "L36", - "_origin": "ast", - "id": "log_2026_07_12_ingest_b09_wf6_estimation_\uc2e4_\ucf54\ub4dc_\ub300\uc870_\ubbf8\ucc29\uc218_\ud655\uc778", - "community": 4, - "norm_label": "[2026-07-12] ingest | b09_wf6_estimation (\u1109\u1175\u11af \u110f\u1169\u1103\u1173 \u1103\u1162\u110c\u1169, \u1106\u1175\u110e\u1161\u11a8\u1109\u116e \u1112\u116a\u11a8\u110b\u1175\u11ab)" - }, - { - "label": "[2026-07-12] ingest | B07_wf4_DesignDetail (\uc2e4 \ucf54\ub4dc \ub300\uc870, \ubbf8\ucc29\uc218 \ud655\uc778)", - "file_type": "document", - "source_file": "log.md", - "source_location": "L47", - "_origin": "ast", - "id": "log_2026_07_12_ingest_b07_wf4_designdetail_\uc2e4_\ucf54\ub4dc_\ub300\uc870_\ubbf8\ucc29\uc218_\ud655\uc778", - "community": 4, - "norm_label": "[2026-07-12] ingest | b07_wf4_designdetail (\u1109\u1175\u11af \u110f\u1169\u1103\u1173 \u1103\u1162\u110c\u1169, \u1106\u1175\u110e\u1161\u11a8\u1109\u116e \u1112\u116a\u11a8\u110b\u1175\u11ab)" - }, - { - "label": "[2026-07-12] ingest | B04_wf1_Surface (\uc2e4 \ucf54\ub4dc \ub300\uc870\u00b75\ubd84\ud560 \uc0c1\uc138\ud654)", - "file_type": "document", - "source_file": "log.md", - "source_location": "L57", - "_origin": "ast", - "id": "log_2026_07_12_ingest_b04_wf1_surface_\uc2e4_\ucf54\ub4dc_\ub300\uc870_5\ubd84\ud560_\uc0c1\uc138\ud654", - "community": 4, - "norm_label": "[2026-07-12] ingest | b04_wf1_surface (\u1109\u1175\u11af \u110f\u1169\u1103\u1173 \u1103\u1162\u110c\u1169\u00b75\u1107\u116e\u11ab\u1112\u1161\u11af \u1109\u1161\u11bc\u1109\u1166\u1112\u116a)" - }, - { - "label": "[2026-07-12] ingest | B02_ProjRegister (backend + frontend + db \uc0c1\uc138\ud654)", - "file_type": "document", - "source_file": "log.md", - "source_location": "L69", - "_origin": "ast", - "id": "log_2026_07_12_ingest_b02_projregister_backend_frontend_db_\uc0c1\uc138\ud654", - "community": 4, - "norm_label": "[2026-07-12] ingest | b02_projregister (backend + frontend + db \u1109\u1161\u11bc\u1109\u1166\u1112\u116a)" - }, - { - "label": "[2026-07-12] query | B01_Dashboard \uc2e4 \ucf54\ub4dc \uae30\uc900 \ucd5c\uc2e0\ud654", - "file_type": "document", - "source_file": "log.md", - "source_location": "L85", - "_origin": "ast", - "id": "log_2026_07_12_query_b01_dashboard_\uc2e4_\ucf54\ub4dc_\uae30\uc900_\ucd5c\uc2e0\ud654", - "community": 4, - "norm_label": "[2026-07-12] query | b01_dashboard \u1109\u1175\u11af \u110f\u1169\u1103\u1173 \u1100\u1175\u110c\u116e\u11ab \u110e\u116c\u1109\u1175\u11ab\u1112\u116a" - }, - { - "label": "[2026-07-12] query | B03_FileInput \uc2e4 \ucf54\ub4dc \uae30\uc900 \ucd5c\uc2e0\ud654", - "file_type": "document", - "source_file": "log.md", - "source_location": "L93", - "_origin": "ast", - "id": "log_2026_07_12_query_b03_fileinput_\uc2e4_\ucf54\ub4dc_\uae30\uc900_\ucd5c\uc2e0\ud654", - "community": 4, - "norm_label": "[2026-07-12] query | b03_fileinput \u1109\u1175\u11af \u110f\u1169\u1103\u1173 \u1100\u1175\u110c\u116e\u11ab \u110e\u116c\u1109\u1175\u11ab\u1112\u116a" - }, - { - "label": "[2026-07-12] query | B05_wf2_Route \uc2e4 \ucf54\ub4dc \uae30\uc900 \ucd5c\uc2e0\ud654", - "file_type": "document", - "source_file": "log.md", - "source_location": "L102", - "_origin": "ast", - "id": "log_2026_07_12_query_b05_wf2_route_\uc2e4_\ucf54\ub4dc_\uae30\uc900_\ucd5c\uc2e0\ud654", - "community": 4, - "norm_label": "[2026-07-12] query | b05_wf2_route \u1109\u1175\u11af \u110f\u1169\u1103\u1173 \u1100\u1175\u110c\u116e\u11ab \u110e\u116c\u1109\u1175\u11ab\u1112\u116a" - }, - { - "label": "[2026-07-12] query | B06_wf3_ProfileCross \uc2e4 \ucf54\ub4dc \uae30\uc900 \ucd5c\uc2e0\ud654", - "file_type": "document", - "source_file": "log.md", - "source_location": "L111", - "_origin": "ast", - "id": "log_2026_07_12_query_b06_wf3_profilecross_\uc2e4_\ucf54\ub4dc_\uae30\uc900_\ucd5c\uc2e0\ud654", - "community": 4, - "norm_label": "[2026-07-12] query | b06_wf3_profilecross \u1109\u1175\u11af \u110f\u1169\u1103\u1173 \u1100\u1175\u110c\u116e\u11ab \u110e\u116c\u1109\u1175\u11ab\u1112\u116a" - }, - { - "label": "[2026-07-12] query | B08_wf5_Quantity \uc2e4 \ucf54\ub4dc \uae30\uc900 \ucd5c\uc2e0\ud654", - "file_type": "document", - "source_file": "log.md", - "source_location": "L119", - "_origin": "ast", - "id": "log_2026_07_12_query_b08_wf5_quantity_\uc2e4_\ucf54\ub4dc_\uae30\uc900_\ucd5c\uc2e0\ud654", - "community": 4, - "norm_label": "[2026-07-12] query | b08_wf5_quantity \u1109\u1175\u11af \u110f\u1169\u1103\u1173 \u1100\u1175\u110c\u116e\u11ab \u110e\u116c\u1109\u1175\u11ab\u1112\u116a" - }, - { - "label": "[2026-07-12] lint | \uc804\uccb4 \uc704\ud0a4 \uad6c\uc870\u00b7\uc0c1\ud0dc\u00b7\uacf5\uc720 \uac1c\ub150 \uc815\ub9ac", - "file_type": "document", - "source_file": "log.md", - "source_location": "L126", - "_origin": "ast", - "id": "log_2026_07_12_lint_\uc804\uccb4_\uc704\ud0a4_\uad6c\uc870_\uc0c1\ud0dc_\uacf5\uc720_\uac1c\ub150_\uc815\ub9ac", - "community": 4, - "norm_label": "[2026-07-12] lint | \u110c\u1165\u11ab\u110e\u1166 \u110b\u1171\u110f\u1175 \u1100\u116e\u110c\u1169\u00b7\u1109\u1161\u11bc\u1110\u1162\u00b7\u1100\u1169\u11bc\u110b\u1172 \u1100\u1162\u1102\u1167\u11b7 \u110c\u1165\u11bc\u1105\u1175" - }, - { - "label": "[2026-07-12] lint | \uc804\uccb4 \uc704\ud0a4 \uad6c\uc870\u00b7\uc0c1\ud0dc\u00b7\uacf5\uc720 \uac1c\ub150 \uc815\ub9ac", - "file_type": "document", - "source_file": "log.md", - "source_location": "L134", - "_origin": "ast", - "id": "log_2026_07_12_lint_\uc804\uccb4_\uc704\ud0a4_\uad6c\uc870_\uc0c1\ud0dc_\uacf5\uc720_\uac1c\ub150_\uc815\ub9ac_134", - "community": 4, - "norm_label": "[2026-07-12] lint | \u110c\u1165\u11ab\u110e\u1166 \u110b\u1171\u110f\u1175 \u1100\u116e\u110c\u1169\u00b7\u1109\u1161\u11bc\u1110\u1162\u00b7\u1100\u1169\u11bc\u110b\u1172 \u1100\u1162\u1102\u1167\u11b7 \u110c\u1165\u11bc\u1105\u1175" - }, - { - "label": "[2026-07-12] lint | \uc704\ud0a4 \uc2dc\uc2a4\ud15c \ucd08\uae30 \uc138\ud305", - "file_type": "document", - "source_file": "log.md", - "source_location": "L141", - "_origin": "ast", - "id": "log_2026_07_12_lint_\uc704\ud0a4_\uc2dc\uc2a4\ud15c_\ucd08\uae30_\uc138\ud305", - "community": 4, - "norm_label": "[2026-07-12] lint | \u110b\u1171\u110f\u1175 \u1109\u1175\u1109\u1173\u1110\u1166\u11b7 \u110e\u1169\u1100\u1175 \u1109\u1166\u1110\u1175\u11bc" - }, - { - "label": "[2026-07-12] ingest | guidelines/plans 7\uac74 \uc77c\uad04 \ubc18\uc601", - "file_type": "document", - "source_file": "log.md", - "source_location": "L148", - "_origin": "ast", - "id": "log_2026_07_12_ingest_guidelines_plans_7\uac74_\uc77c\uad04_\ubc18\uc601", - "community": 4, - "norm_label": "[2026-07-12] ingest | guidelines/plans 7\u1100\u1165\u11ab \u110b\u1175\u11af\u1100\u116a\u11af \u1107\u1161\u11ab\u110b\u1167\u11bc" - }, - { - "label": "[2026-07-12] query+lint | \uc2e4 DB/\uc2e4 \ucf54\ub4dc \ub300\uc870 \uac80\uc99d (\uc77d\uae30 \uc804\uc6a9)", - "file_type": "document", - "source_file": "log.md", - "source_location": "L157", - "_origin": "ast", - "id": "log_2026_07_12_query_lint_\uc2e4_db_\uc2e4_\ucf54\ub4dc_\ub300\uc870_\uac80\uc99d_\uc77d\uae30_\uc804\uc6a9", - "community": 4, - "norm_label": "[2026-07-12] query+lint | \u1109\u1175\u11af db/\u1109\u1175\u11af \u110f\u1169\u1103\u1173 \u1103\u1162\u110c\u1169 \u1100\u1165\u11b7\u110c\u1173\u11bc (\u110b\u1175\u11b0\u1100\u1175 \u110c\u1165\u11ab\u110b\u116d\u11bc)" - }, - { - "label": "[2026-07-12] lint | page_id frontmatter \ud544\ub4dc \ub3c4\uc785", - "file_type": "document", - "source_file": "log.md", - "source_location": "L167", - "_origin": "ast", - "id": "log_2026_07_12_lint_page_id_frontmatter_\ud544\ub4dc_\ub3c4\uc785", - "community": 4, - "norm_label": "[2026-07-12] lint | page_id frontmatter \u1111\u1175\u11af\u1103\u1173 \u1103\u1169\u110b\u1175\u11b8" - }, - { - "label": "[2026-07-12] ingest | A01_Home \uc2e4 \ucf54\ub4dc \ubc18\uc601", - "file_type": "document", - "source_file": "log.md", - "source_location": "L173", - "_origin": "ast", - "id": "log_2026_07_12_ingest_a01_home_\uc2e4_\ucf54\ub4dc_\ubc18\uc601", - "community": 4, - "norm_label": "[2026-07-12] ingest | a01_home \u1109\u1175\u11af \u110f\u1169\u1103\u1173 \u1107\u1161\u11ab\u110b\u1167\u11bc" - }, - { - "label": "[2026-07-12] refactor | \ud30c\uc77c\uba85 \uaddc\uce59 \ub3c4\uc785 \ubc0f \ub9c1\ud06c \uc218\uc815", - "file_type": "document", - "source_file": "log.md", - "source_location": "L180", - "_origin": "ast", - "id": "log_2026_07_12_refactor_\ud30c\uc77c\uba85_\uaddc\uce59_\ub3c4\uc785_\ubc0f_\ub9c1\ud06c_\uc218\uc815", - "community": 4, - "norm_label": "[2026-07-12] refactor | \u1111\u1161\u110b\u1175\u11af\u1106\u1167\u11bc \u1100\u1172\u110e\u1175\u11a8 \u1103\u1169\u110b\u1175\u11b8 \u1106\u1175\u11be \u1105\u1175\u11bc\u110f\u1173 \u1109\u116e\u110c\u1165\u11bc" - }, - { - "label": "[2026-07-12] lint | A\uadf8\ub8f9(A01~A09) \uc804\uccb4 \uac80\uc99d \ubc0f \uc815\ud569\uc131 \uc810\uac80", - "file_type": "document", - "source_file": "log.md", - "source_location": "L188", - "_origin": "ast", - "id": "log_2026_07_12_lint_a\uadf8\ub8f9_a01_a09_\uc804\uccb4_\uac80\uc99d_\ubc0f_\uc815\ud569\uc131_\uc810\uac80", - "community": 4, - "norm_label": "[2026-07-12] lint | a\u1100\u1173\u1105\u116e\u11b8(a01~a09) \u110c\u1165\u11ab\u110e\u1166 \u1100\u1165\u11b7\u110c\u1173\u11bc \u1106\u1175\u11be \u110c\u1165\u11bc\u1112\u1161\u11b8\u1109\u1165\u11bc \u110c\u1165\u11b7\u1100\u1165\u11b7" - }, - { - "label": "[2026-07-12] ingest | A09_Security (backend + frontend \uc0c1\uc138\ud654)", - "file_type": "document", - "source_file": "log.md", - "source_location": "L204", - "_origin": "ast", - "id": "log_2026_07_12_ingest_a09_security_backend_frontend_\uc0c1\uc138\ud654", - "community": 4, - "norm_label": "[2026-07-12] ingest | a09_security (backend + frontend \u1109\u1161\u11bc\u1109\u1166\u1112\u116a)" - }, - { - "label": "[2026-07-12] ingest | A08_Support (backend + frontend \uc0c1\uc138\ud654)", - "file_type": "document", - "source_file": "log.md", - "source_location": "L219", - "_origin": "ast", - "id": "log_2026_07_12_ingest_a08_support_backend_frontend_\uc0c1\uc138\ud654", - "community": 4, - "norm_label": "[2026-07-12] ingest | a08_support (backend + frontend \u1109\u1161\u11bc\u1109\u1166\u1112\u116a)" - }, - { - "label": "[2026-07-12] ingest | A07_Register (backend + frontend \uc0c1\uc138\ud654)", - "file_type": "document", - "source_file": "log.md", - "source_location": "L233", - "_origin": "ast", - "id": "log_2026_07_12_ingest_a07_register_backend_frontend_\uc0c1\uc138\ud654", - "community": 4, - "norm_label": "[2026-07-12] ingest | a07_register (backend + frontend \u1109\u1161\u11bc\u1109\u1166\u1112\u116a)" - }, - { - "label": "[2026-07-12] ingest | A06_Login (backend + frontend \uc0c1\uc138\ud654)", - "file_type": "document", - "source_file": "log.md", - "source_location": "L248", - "_origin": "ast", - "id": "log_2026_07_12_ingest_a06_login_backend_frontend_\uc0c1\uc138\ud654", - "community": 4, - "norm_label": "[2026-07-12] ingest | a06_login (backend + frontend \u1109\u1161\u11bc\u1109\u1166\u1112\u116a)" - }, - { - "label": "[2026-07-12] lint | A03~A05 \uc778\uc81c\uc2a4\ud2b8 \uc7ac\uc810\uac80", - "file_type": "document", - "source_file": "log.md", - "source_location": "L263", - "_origin": "ast", - "id": "log_2026_07_12_lint_a03_a05_\uc778\uc81c\uc2a4\ud2b8_\uc7ac\uc810\uac80", - "community": 4, - "norm_label": "[2026-07-12] lint | a03~a05 \u110b\u1175\u11ab\u110c\u1166\u1109\u1173\u1110\u1173 \u110c\u1162\u110c\u1165\u11b7\u1100\u1165\u11b7" - }, - { - "label": "[2026-07-12] ingest | A05_EduDetail", - "file_type": "document", - "source_file": "log.md", - "source_location": "L274", - "_origin": "ast", - "id": "log_2026_07_12_ingest_a05_edudetail", - "community": 4, - "norm_label": "[2026-07-12] ingest | a05_edudetail" - }, - { - "label": "[2026-07-12] ingest | A04_NewsHistory", - "file_type": "document", - "source_file": "log.md", - "source_location": "L284", - "_origin": "ast", - "id": "log_2026_07_12_ingest_a04_newshistory", - "community": 4, - "norm_label": "[2026-07-12] ingest | a04_newshistory" - }, - { - "label": "[2026-07-12] ingest | A03_CompDetail", - "file_type": "document", - "source_file": "log.md", - "source_location": "L295", - "_origin": "ast", - "id": "log_2026_07_12_ingest_a03_compdetail", - "community": 4, - "norm_label": "[2026-07-12] ingest | a03_compdetail" - }, - { - "label": "[2026-07-12] lint | A01_Home \ud398\uc774\uc9c0 \uac80\uc0ac \ubc0f \uc218\uc815", - "file_type": "document", - "source_file": "log.md", - "source_location": "L305", - "_origin": "ast", - "id": "log_2026_07_12_lint_a01_home_\ud398\uc774\uc9c0_\uac80\uc0ac_\ubc0f_\uc218\uc815", - "community": 4, - "norm_label": "[2026-07-12] lint | a01_home \u1111\u1166\u110b\u1175\u110c\u1175 \u1100\u1165\u11b7\u1109\u1161 \u1106\u1175\u11be \u1109\u116e\u110c\u1165\u11bc" - }, - { - "label": "[2026-07-12] ingest | A02_ProgDetail + A00_Common Framework", - "file_type": "document", - "source_file": "log.md", - "source_location": "L318", - "_origin": "ast", - "id": "log_2026_07_12_ingest_a02_progdetail_a00_common_framework", - "community": 4, - "norm_label": "[2026-07-12] ingest | a02_progdetail + a00_common framework" - }, - { - "label": "A01_components.md", - "file_type": "document", - "source_file": "pages/A01_Home/A01_components.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_a01_home_a01_components", - "community": 30, - "norm_label": "a01_components.md" - }, - { - "label": "A01_Home \u2014 \uc138\ubd80 \uad6c\ud604", - "file_type": "document", - "source_file": "pages/A01_Home/A01_components.md", - "source_location": "L10", - "_origin": "ast", - "id": "pages_a01_home_a01_components_a01_home_\uc138\ubd80_\uad6c\ud604", - "community": 30, - "norm_label": "a01_home \u2014 \u1109\u1166\u1107\u116e \u1100\u116e\u1112\u1167\u11ab" - }, - { - "label": "\uc2a4\ud0c0\uc77c", - "file_type": "document", - "source_file": "pages/A01_Home/A01_components.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_a01_home_a01_components_\uc2a4\ud0c0\uc77c", - "community": 30, - "norm_label": "\u1109\u1173\u1110\u1161\u110b\u1175\u11af" - }, - { - "label": "\uc758\uc874\uc131", - "file_type": "document", - "source_file": "pages/A01_Home/A01_components.md", - "source_location": "L20", - "_origin": "ast", - "id": "pages_a01_home_a01_components_\uc758\uc874\uc131", - "community": 30, - "norm_label": "\u110b\u1174\u110c\u1169\u11ab\u1109\u1165\u11bc" - }, - { - "label": "\ub370\uc774\ud130 \ud750\ub984", - "file_type": "document", - "source_file": "pages/A01_Home/A01_components.md", - "source_location": "L27", - "_origin": "ast", - "id": "pages_a01_home_a01_components_\ub370\uc774\ud130_\ud750\ub984", - "community": 30, - "norm_label": "\u1103\u1166\u110b\u1175\u1110\u1165 \u1112\u1173\u1105\u1173\u11b7" - }, - { - "label": "\ubbf8\ud574\uacb0", - "file_type": "document", - "source_file": "pages/A01_Home/A01_components.md", - "source_location": "L34", - "_origin": "ast", - "id": "pages_a01_home_a01_components_\ubbf8\ud574\uacb0", - "community": 30, - "norm_label": "\u1106\u1175\u1112\u1162\u1100\u1167\u11af" - }, - { - "label": "A01_frontend.md", - "file_type": "document", - "source_file": "pages/A01_Home/A01_frontend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_a01_home_a01_frontend", - "community": 15, - "norm_label": "a01_frontend.md" - }, - { - "label": "A01_Home \u2014 Frontend", - "file_type": "document", - "source_file": "pages/A01_Home/A01_frontend.md", - "source_location": "L8", - "_origin": "ast", - "id": "pages_a01_home_a01_frontend_a01_home_frontend", - "community": 15, - "norm_label": "a01_home \u2014 frontend" - }, - { - "label": "\ud30c\uc77c \uad6c\uc870", - "file_type": "document", - "source_file": "pages/A01_Home/A01_frontend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_a01_home_a01_frontend_\ud30c\uc77c_\uad6c\uc870", - "community": 15, - "norm_label": "\u1111\u1161\u110b\u1175\u11af \u1100\u116e\u110c\u1169" - }, - { - "label": "\ucef4\ud3ec\ub10c\ud2b8", - "file_type": "document", - "source_file": "pages/A01_Home/A01_frontend.md", - "source_location": "L19", - "_origin": "ast", - "id": "pages_a01_home_a01_frontend_\ucef4\ud3ec\ub10c\ud2b8", - "community": 15, - "norm_label": "\u110f\u1165\u11b7\u1111\u1169\u1102\u1165\u11ab\u1110\u1173" - }, - { - "label": "Hero \uc139\uc158", - "file_type": "document", - "source_file": "pages/A01_Home/A01_frontend.md", - "source_location": "L21", - "_origin": "ast", - "id": "pages_a01_home_a01_frontend_hero_\uc139\uc158", - "community": 15, - "norm_label": "hero \u1109\u1166\u11a8\u1109\u1167\u11ab" - }, - { - "label": "\ucd5c\uc2e0 \uc18c\uc2dd \uc139\uc158", - "file_type": "document", - "source_file": "pages/A01_Home/A01_frontend.md", - "source_location": "L26", - "_origin": "ast", - "id": "pages_a01_home_a01_frontend_\ucd5c\uc2e0_\uc18c\uc2dd_\uc139\uc158", - "community": 15, - "norm_label": "\u110e\u116c\u1109\u1175\u11ab \u1109\u1169\u1109\u1175\u11a8 \u1109\u1166\u11a8\u1109\u1167\u11ab" - }, - { - "label": "\uc8fc\uc694 \uae30\ub2a5 \uc139\uc158", - "file_type": "document", - "source_file": "pages/A01_Home/A01_frontend.md", - "source_location": "L31", - "_origin": "ast", - "id": "pages_a01_home_a01_frontend_\uc8fc\uc694_\uae30\ub2a5_\uc139\uc158", - "community": 15, - "norm_label": "\u110c\u116e\u110b\u116d \u1100\u1175\u1102\u1173\u11bc \u1109\u1166\u11a8\u1109\u1167\u11ab" - }, - { - "label": "\uc774\ubca4\ud2b8 \ud578\ub4e4\ub7ec", - "file_type": "document", - "source_file": "pages/A01_Home/A01_frontend.md", - "source_location": "L36", - "_origin": "ast", - "id": "pages_a01_home_a01_frontend_\uc774\ubca4\ud2b8_\ud578\ub4e4\ub7ec", - "community": 15, - "norm_label": "\u110b\u1175\u1107\u1166\u11ab\u1110\u1173 \u1112\u1162\u11ab\u1103\u1173\u11af\u1105\u1165" - }, - { - "label": "\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "file_type": "document", - "source_file": "pages/A01_Home/A01_frontend.md", - "source_location": "L43", - "_origin": "ast", - "id": "pages_a01_home_a01_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "community": 15, - "norm_label": "\u1105\u1169\u110f\u1165\u11af\u1105\u1161\u110b\u1175\u110c\u1166\u110b\u1175\u1109\u1167\u11ab" - }, - { - "label": "\uc138\ubd80 \uad6c\ud604", - "file_type": "document", - "source_file": "pages/A01_Home/A01_frontend.md", - "source_location": "L58", - "_origin": "ast", - "id": "pages_a01_home_a01_frontend_\uc138\ubd80_\uad6c\ud604", - "community": 15, - "norm_label": "\u1109\u1166\u1107\u116e \u1100\u116e\u1112\u1167\u11ab" - }, - { - "label": "A02_components.md", - "file_type": "document", - "source_file": "pages/A02_ProgDetail/A02_components.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_a02_progdetail_a02_components", - "community": 31, - "norm_label": "a02_components.md" - }, - { - "label": "A02_ProgDetail \u2014 \uc138\ubd80 \uad6c\ud604", - "file_type": "document", - "source_file": "pages/A02_ProgDetail/A02_components.md", - "source_location": "L10", - "_origin": "ast", - "id": "pages_a02_progdetail_a02_components_a02_progdetail_\uc138\ubd80_\uad6c\ud604", - "community": 31, - "norm_label": "a02_progdetail \u2014 \u1109\u1166\u1107\u116e \u1100\u116e\u1112\u1167\u11ab" - }, - { - "label": "\uc2a4\ud0c0\uc77c (CSS)", - "file_type": "document", - "source_file": "pages/A02_ProgDetail/A02_components.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_a02_progdetail_a02_components_\uc2a4\ud0c0\uc77c_css", - "community": 31, - "norm_label": "\u1109\u1173\u1110\u1161\u110b\u1175\u11af (css)" - }, - { - "label": "\uc758\uc874\uc131", - "file_type": "document", - "source_file": "pages/A02_ProgDetail/A02_components.md", - "source_location": "L21", - "_origin": "ast", - "id": "pages_a02_progdetail_a02_components_\uc758\uc874\uc131", - "community": 31, - "norm_label": "\u110b\u1174\u110c\u1169\u11ab\u1109\u1165\u11bc" - }, - { - "label": "\ub370\uc774\ud130 \ud750\ub984", - "file_type": "document", - "source_file": "pages/A02_ProgDetail/A02_components.md", - "source_location": "L29", - "_origin": "ast", - "id": "pages_a02_progdetail_a02_components_\ub370\uc774\ud130_\ud750\ub984", - "community": 31, - "norm_label": "\u1103\u1166\u110b\u1175\u1110\u1165 \u1112\u1173\u1105\u1173\u11b7" - }, - { - "label": "\ubbf8\ud574\uacb0 / \ud2b9\uc774\uc0ac\ud56d", - "file_type": "document", - "source_file": "pages/A02_ProgDetail/A02_components.md", - "source_location": "L35", - "_origin": "ast", - "id": "pages_a02_progdetail_a02_components_\ubbf8\ud574\uacb0_\ud2b9\uc774\uc0ac\ud56d", - "community": 31, - "norm_label": "\u1106\u1175\u1112\u1162\u1100\u1167\u11af / \u1110\u1173\u11a8\u110b\u1175\u1109\u1161\u1112\u1161\u11bc" - }, - { - "label": "A02_frontend.md", - "file_type": "document", - "source_file": "pages/A02_ProgDetail/A02_frontend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_a02_progdetail_a02_frontend", - "community": 32, - "norm_label": "a02_frontend.md" - }, - { - "label": "A02_ProgDetail \u2014 Frontend", - "file_type": "document", - "source_file": "pages/A02_ProgDetail/A02_frontend.md", - "source_location": "L8", - "_origin": "ast", - "id": "pages_a02_progdetail_a02_frontend_a02_progdetail_frontend", - "community": 32, - "norm_label": "a02_progdetail \u2014 frontend" - }, - { - "label": "\uad6c\uc870", - "file_type": "document", - "source_file": "pages/A02_ProgDetail/A02_frontend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_a02_progdetail_a02_frontend_\uad6c\uc870", - "community": 32, - "norm_label": "\u1100\u116e\u110c\u1169" - }, - { - "label": "\ucef4\ud3ec\ub10c\ud2b8 \ubd84\uc11d", - "file_type": "document", - "source_file": "pages/A02_ProgDetail/A02_frontend.md", - "source_location": "L16", - "_origin": "ast", - "id": "pages_a02_progdetail_a02_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ubd84\uc11d", - "community": 32, - "norm_label": "\u110f\u1165\u11b7\u1111\u1169\u1102\u1165\u11ab\u1110\u1173 \u1107\u116e\u11ab\u1109\u1165\u11a8" - }, - { - "label": "\uc81c\uc57d \uc900\uc218", - "file_type": "document", - "source_file": "pages/A02_ProgDetail/A02_frontend.md", - "source_location": "L24", - "_origin": "ast", - "id": "pages_a02_progdetail_a02_frontend_\uc81c\uc57d_\uc900\uc218", - "community": 32, - "norm_label": "\u110c\u1166\u110b\u1163\u11a8 \u110c\u116e\u11ab\u1109\u116e" - }, - { - "label": "\uc138\ubd80 \uad6c\ud604", - "file_type": "document", - "source_file": "pages/A02_ProgDetail/A02_frontend.md", - "source_location": "L31", - "_origin": "ast", - "id": "pages_a02_progdetail_a02_frontend_\uc138\ubd80_\uad6c\ud604", - "community": 32, - "norm_label": "\u1109\u1166\u1107\u116e \u1100\u116e\u1112\u1167\u11ab" - }, - { - "label": "A03_frontend.md", - "file_type": "document", - "source_file": "pages/A03_CompDetail/A03_frontend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_a03_compdetail_a03_frontend", - "community": 22, - "norm_label": "a03_frontend.md" - }, - { - "label": "A03_CompDetail \u2014 Frontend", - "file_type": "document", - "source_file": "pages/A03_CompDetail/A03_frontend.md", - "source_location": "L8", - "_origin": "ast", - "id": "pages_a03_compdetail_a03_frontend_a03_compdetail_frontend", - "community": 22, - "norm_label": "a03_compdetail \u2014 frontend" - }, - { - "label": "\ud30c\uc77c \uad6c\uc870", - "file_type": "document", - "source_file": "pages/A03_CompDetail/A03_frontend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_a03_compdetail_a03_frontend_\ud30c\uc77c_\uad6c\uc870", - "community": 22, - "norm_label": "\u1111\u1161\u110b\u1175\u11af \u1100\u116e\u110c\u1169" - }, - { - "label": "\ucef4\ud3ec\ub10c\ud2b8 (\uc139\uc158 \ube4c\ub354)", - "file_type": "document", - "source_file": "pages/A03_CompDetail/A03_frontend.md", - "source_location": "L19", - "_origin": "ast", - "id": "pages_a03_compdetail_a03_frontend_\ucef4\ud3ec\ub10c\ud2b8_\uc139\uc158_\ube4c\ub354", - "community": 22, - "norm_label": "\u110f\u1165\u11b7\u1111\u1169\u1102\u1165\u11ab\u1110\u1173 (\u1109\u1166\u11a8\u1109\u1167\u11ab \u1107\u1175\u11af\u1103\u1165)" - }, - { - "label": "\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "file_type": "document", - "source_file": "pages/A03_CompDetail/A03_frontend.md", - "source_location": "L29", - "_origin": "ast", - "id": "pages_a03_compdetail_a03_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "community": 22, - "norm_label": "\u1105\u1169\u110f\u1165\u11af\u1105\u1161\u110b\u1175\u110c\u1166\u110b\u1175\u1109\u1167\u11ab" - }, - { - "label": "\uc2a4\ud0c0\uc77c (CSS)", - "file_type": "document", - "source_file": "pages/A03_CompDetail/A03_frontend.md", - "source_location": "L45", - "_origin": "ast", - "id": "pages_a03_compdetail_a03_frontend_\uc2a4\ud0c0\uc77c_css", - "community": 22, - "norm_label": "\u1109\u1173\u1110\u1161\u110b\u1175\u11af (css)" - }, - { - "label": "CSS \ud074\ub798\uc2a4 \uad6c\uc870", - "file_type": "document", - "source_file": "pages/A03_CompDetail/A03_frontend.md", - "source_location": "L47", - "_origin": "ast", - "id": "pages_a03_compdetail_a03_frontend_css_\ud074\ub798\uc2a4_\uad6c\uc870", - "community": 22, - "norm_label": "css \u110f\u1173\u11af\u1105\u1162\u1109\u1173 \u1100\u116e\u110c\u1169" - }, - { - "label": "\ubc18\uc751\ud615", - "file_type": "document", - "source_file": "pages/A03_CompDetail/A03_frontend.md", - "source_location": "L61", - "_origin": "ast", - "id": "pages_a03_compdetail_a03_frontend_\ubc18\uc751\ud615", - "community": 22, - "norm_label": "\u1107\u1161\u11ab\u110b\u1173\u11bc\u1112\u1167\u11bc" - }, - { - "label": "\uc758\uc874\uc131", - "file_type": "document", - "source_file": "pages/A03_CompDetail/A03_frontend.md", - "source_location": "L64", - "_origin": "ast", - "id": "pages_a03_compdetail_a03_frontend_\uc758\uc874\uc131", - "community": 22, - "norm_label": "\u110b\u1174\u110c\u1169\u11ab\u1109\u1165\u11bc" - }, - { - "label": "A04_frontend.md", - "file_type": "document", - "source_file": "pages/A04_NewsHistory/A04_frontend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_a04_newshistory_a04_frontend", - "community": 9, - "norm_label": "a04_frontend.md" - }, - { - "label": "A04_NewsHistory \u2014 Frontend", - "file_type": "document", - "source_file": "pages/A04_NewsHistory/A04_frontend.md", - "source_location": "L8", - "_origin": "ast", - "id": "pages_a04_newshistory_a04_frontend_a04_newshistory_frontend", - "community": 9, - "norm_label": "a04_newshistory \u2014 frontend" - }, - { - "label": "\ud30c\uc77c \uad6c\uc870", - "file_type": "document", - "source_file": "pages/A04_NewsHistory/A04_frontend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_a04_newshistory_a04_frontend_\ud30c\uc77c_\uad6c\uc870", - "community": 9, - "norm_label": "\u1111\u1161\u110b\u1175\u11af \u1100\u116e\u110c\u1169" - }, - { - "label": "\ucef4\ud3ec\ub10c\ud2b8 (\uc139\uc158 \ube4c\ub354)", - "file_type": "document", - "source_file": "pages/A04_NewsHistory/A04_frontend.md", - "source_location": "L19", - "_origin": "ast", - "id": "pages_a04_newshistory_a04_frontend_\ucef4\ud3ec\ub10c\ud2b8_\uc139\uc158_\ube4c\ub354", - "community": 9, - "norm_label": "\u110f\u1165\u11b7\u1111\u1169\u1102\u1165\u11ab\u1110\u1173 (\u1109\u1166\u11a8\u1109\u1167\u11ab \u1107\u1175\u11af\u1103\u1165)" - }, - { - "label": "Mock \ub370\uc774\ud130 \uad6c\uc870", - "file_type": "document", - "source_file": "pages/A04_NewsHistory/A04_frontend.md", - "source_location": "L30", - "_origin": "ast", - "id": "pages_a04_newshistory_a04_frontend_mock_\ub370\uc774\ud130_\uad6c\uc870", - "community": 9, - "norm_label": "mock \u1103\u1166\u110b\u1175\u1110\u1165 \u1100\u116e\u110c\u1169" - }, - { - "label": "\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "file_type": "document", - "source_file": "pages/A04_NewsHistory/A04_frontend.md", - "source_location": "L48", - "_origin": "ast", - "id": "pages_a04_newshistory_a04_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "community": 9, - "norm_label": "\u1105\u1169\u110f\u1165\u11af\u1105\u1161\u110b\u1175\u110c\u1166\u110b\u1175\u1109\u1167\u11ab" - }, - { - "label": "\uc2a4\ud0c0\uc77c (CSS)", - "file_type": "document", - "source_file": "pages/A04_NewsHistory/A04_frontend.md", - "source_location": "L60", - "_origin": "ast", - "id": "pages_a04_newshistory_a04_frontend_\uc2a4\ud0c0\uc77c_css", - "community": 9, - "norm_label": "\u1109\u1173\u1110\u1161\u110b\u1175\u11af (css)" - }, - { - "label": "CSS \ud074\ub798\uc2a4 \uad6c\uc870", - "file_type": "document", - "source_file": "pages/A04_NewsHistory/A04_frontend.md", - "source_location": "L62", - "_origin": "ast", - "id": "pages_a04_newshistory_a04_frontend_css_\ud074\ub798\uc2a4_\uad6c\uc870", - "community": 9, - "norm_label": "css \u110f\u1173\u11af\u1105\u1162\u1109\u1173 \u1100\u116e\u110c\u1169" - }, - { - "label": "\ubc18\uc751\ud615", - "file_type": "document", - "source_file": "pages/A04_NewsHistory/A04_frontend.md", - "source_location": "L75", - "_origin": "ast", - "id": "pages_a04_newshistory_a04_frontend_\ubc18\uc751\ud615", - "community": 9, - "norm_label": "\u1107\u1161\u11ab\u110b\u1173\u11bc\u1112\u1167\u11bc" - }, - { - "label": "\uc758\uc874\uc131", - "file_type": "document", - "source_file": "pages/A04_NewsHistory/A04_frontend.md", - "source_location": "L78", - "_origin": "ast", - "id": "pages_a04_newshistory_a04_frontend_\uc758\uc874\uc131", - "community": 9, - "norm_label": "\u110b\u1174\u110c\u1169\u11ab\u1109\u1165\u11bc" - }, - { - "label": "\ubbf8\ud574\uacb0 \uc0ac\ud56d", - "file_type": "document", - "source_file": "pages/A04_NewsHistory/A04_frontend.md", - "source_location": "L83", - "_origin": "ast", - "id": "pages_a04_newshistory_a04_frontend_\ubbf8\ud574\uacb0_\uc0ac\ud56d", - "community": 9, - "norm_label": "\u1106\u1175\u1112\u1162\u1100\u1167\u11af \u1109\u1161\u1112\u1161\u11bc" - }, - { - "label": "A05_frontend.md", - "file_type": "document", - "source_file": "pages/A05_EduDetail/A05_frontend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_a05_edudetail_a05_frontend", - "community": 16, - "norm_label": "a05_frontend.md" - }, - { - "label": "A05_EduDetail \u2014 Frontend", - "file_type": "document", - "source_file": "pages/A05_EduDetail/A05_frontend.md", - "source_location": "L8", - "_origin": "ast", - "id": "pages_a05_edudetail_a05_frontend_a05_edudetail_frontend", - "community": 16, - "norm_label": "a05_edudetail \u2014 frontend" - }, - { - "label": "\ud30c\uc77c \uad6c\uc870", - "file_type": "document", - "source_file": "pages/A05_EduDetail/A05_frontend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_a05_edudetail_a05_frontend_\ud30c\uc77c_\uad6c\uc870", - "community": 16, - "norm_label": "\u1111\u1161\u110b\u1175\u11af \u1100\u116e\u110c\u1169" - }, - { - "label": "\ucef4\ud3ec\ub10c\ud2b8 (\uc139\uc158 \ube4c\ub354)", - "file_type": "document", - "source_file": "pages/A05_EduDetail/A05_frontend.md", - "source_location": "L19", - "_origin": "ast", - "id": "pages_a05_edudetail_a05_frontend_\ucef4\ud3ec\ub10c\ud2b8_\uc139\uc158_\ube4c\ub354", - "community": 16, - "norm_label": "\u110f\u1165\u11b7\u1111\u1169\u1102\u1165\u11ab\u1110\u1173 (\u1109\u1166\u11a8\u1109\u1167\u11ab \u1107\u1175\u11af\u1103\u1165)" - }, - { - "label": "\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "file_type": "document", - "source_file": "pages/A05_EduDetail/A05_frontend.md", - "source_location": "L28", - "_origin": "ast", - "id": "pages_a05_edudetail_a05_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "community": 16, - "norm_label": "\u1105\u1169\u110f\u1165\u11af\u1105\u1161\u110b\u1175\u110c\u1166\u110b\u1175\u1109\u1167\u11ab" - }, - { - "label": "\uc2a4\ud0c0\uc77c (CSS)", - "file_type": "document", - "source_file": "pages/A05_EduDetail/A05_frontend.md", - "source_location": "L41", - "_origin": "ast", - "id": "pages_a05_edudetail_a05_frontend_\uc2a4\ud0c0\uc77c_css", - "community": 16, - "norm_label": "\u1109\u1173\u1110\u1161\u110b\u1175\u11af (css)" - }, - { - "label": "CSS \ud074\ub798\uc2a4 \uad6c\uc870", - "file_type": "document", - "source_file": "pages/A05_EduDetail/A05_frontend.md", - "source_location": "L43", - "_origin": "ast", - "id": "pages_a05_edudetail_a05_frontend_css_\ud074\ub798\uc2a4_\uad6c\uc870", - "community": 16, - "norm_label": "css \u110f\u1173\u11af\u1105\u1162\u1109\u1173 \u1100\u116e\u110c\u1169" - }, - { - "label": "\ubc18\uc751\ud615", - "file_type": "document", - "source_file": "pages/A05_EduDetail/A05_frontend.md", - "source_location": "L56", - "_origin": "ast", - "id": "pages_a05_edudetail_a05_frontend_\ubc18\uc751\ud615", - "community": 16, - "norm_label": "\u1107\u1161\u11ab\u110b\u1173\u11bc\u1112\u1167\u11bc" - }, - { - "label": "\uc774\ubca4\ud2b8 \ud578\ub4e4\ub7ec", - "file_type": "document", - "source_file": "pages/A05_EduDetail/A05_frontend.md", - "source_location": "L59", - "_origin": "ast", - "id": "pages_a05_edudetail_a05_frontend_\uc774\ubca4\ud2b8_\ud578\ub4e4\ub7ec", - "community": 16, - "norm_label": "\u110b\u1175\u1107\u1166\u11ab\u1110\u1173 \u1112\u1162\u11ab\u1103\u1173\u11af\u1105\u1165" - }, - { - "label": "\uc758\uc874\uc131", - "file_type": "document", - "source_file": "pages/A05_EduDetail/A05_frontend.md", - "source_location": "L65", - "_origin": "ast", - "id": "pages_a05_edudetail_a05_frontend_\uc758\uc874\uc131", - "community": 16, - "norm_label": "\u110b\u1174\u110c\u1169\u11ab\u1109\u1165\u11bc" - }, - { - "label": "A06_backend.md", - "file_type": "document", - "source_file": "pages/A06_Login/A06_backend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_a06_login_a06_backend", - "community": 17, - "norm_label": "a06_backend.md" - }, - { - "label": "A06_Login \u2014 Backend", - "file_type": "document", - "source_file": "pages/A06_Login/A06_backend.md", - "source_location": "L8", - "_origin": "ast", - "id": "pages_a06_login_a06_backend_a06_login_backend", - "community": 17, - "norm_label": "a06_login \u2014 backend" - }, - { - "label": "\ud30c\uc77c \uad6c\uc870", - "file_type": "document", - "source_file": "pages/A06_Login/A06_backend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_a06_login_a06_backend_\ud30c\uc77c_\uad6c\uc870", - "community": 17, - "norm_label": "\u1111\u1161\u110b\u1175\u11af \u1100\u116e\u110c\u1169" - }, - { - "label": "API \uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "file_type": "document", - "source_file": "pages/A06_Login/A06_backend.md", - "source_location": "L19", - "_origin": "ast", - "id": "pages_a06_login_a06_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "community": 17, - "norm_label": "api \u110b\u1166\u11ab\u1103\u1173\u1111\u1169\u110b\u1175\u11ab\u1110\u1173" - }, - { - "label": "\ub0b4\ubd80 \ud5ec\ud37c", - "file_type": "document", - "source_file": "pages/A06_Login/A06_backend.md", - "source_location": "L29", - "_origin": "ast", - "id": "pages_a06_login_a06_backend_\ub0b4\ubd80_\ud5ec\ud37c", - "community": 17, - "norm_label": "\u1102\u1162\u1107\u116e \u1112\u1166\u11af\u1111\u1165" - }, - { - "label": "\uc694\uccad \uc2a4\ud0a4\ub9c8 (Pydantic)", - "file_type": "document", - "source_file": "pages/A06_Login/A06_backend.md", - "source_location": "L37", - "_origin": "ast", - "id": "pages_a06_login_a06_backend_\uc694\uccad_\uc2a4\ud0a4\ub9c8_pydantic", - "community": 17, - "norm_label": "\u110b\u116d\u110e\u1165\u11bc \u1109\u1173\u110f\u1175\u1106\u1161 (pydantic)" - }, - { - "label": "\ub85c\uadf8\uc778 \ub85c\uc9c1 \ud750\ub984", - "file_type": "document", - "source_file": "pages/A06_Login/A06_backend.md", - "source_location": "L45", - "_origin": "ast", - "id": "pages_a06_login_a06_backend_\ub85c\uadf8\uc778_\ub85c\uc9c1_\ud750\ub984", - "community": 17, - "norm_label": "\u1105\u1169\u1100\u1173\u110b\u1175\u11ab \u1105\u1169\u110c\u1175\u11a8 \u1112\u1173\u1105\u1173\u11b7" - }, - { - "label": "\ubcf4\uc548 \uc815\ucc45 (\uc2e4 \ucf54\ub4dc \uae30\uc900)", - "file_type": "document", - "source_file": "pages/A06_Login/A06_backend.md", - "source_location": "L54", - "_origin": "ast", - "id": "pages_a06_login_a06_backend_\ubcf4\uc548_\uc815\ucc45_\uc2e4_\ucf54\ub4dc_\uae30\uc900", - "community": 17, - "norm_label": "\u1107\u1169\u110b\u1161\u11ab \u110c\u1165\u11bc\u110e\u1162\u11a8 (\u1109\u1175\u11af \u110f\u1169\u1103\u1173 \u1100\u1175\u110c\u116e\u11ab)" - }, - { - "label": "\uc758\uc874\uc131 (\uacf5\ud1b5 \uc720\ud2f8)", - "file_type": "document", - "source_file": "pages/A06_Login/A06_backend.md", - "source_location": "L60", - "_origin": "ast", - "id": "pages_a06_login_a06_backend_\uc758\uc874\uc131_\uacf5\ud1b5_\uc720\ud2f8", - "community": 17, - "norm_label": "\u110b\u1174\u110c\u1169\u11ab\u1109\u1165\u11bc (\u1100\u1169\u11bc\u1110\u1169\u11bc \u110b\u1172\u1110\u1175\u11af)" - }, - { - "label": "\u26a0\ufe0f \uacc4\ud68d\uc11c\uc640 \uc2e4 \ucf54\ub4dc \ubd88\uc77c\uce58", - "file_type": "document", - "source_file": "pages/A06_Login/A06_backend.md", - "source_location": "L66", - "_origin": "ast", - "id": "pages_a06_login_a06_backend_\uacc4\ud68d\uc11c\uc640_\uc2e4_\ucf54\ub4dc_\ubd88\uc77c\uce58", - "community": 17, - "norm_label": "\u26a0\ufe0f \u1100\u1168\u1112\u116c\u11a8\u1109\u1165\u110b\u116a \u1109\u1175\u11af \u110f\u1169\u1103\u1173 \u1107\u116e\u11af\u110b\u1175\u11af\u110e\u1175" - }, - { - "label": "A06_frontend.md", - "file_type": "document", - "source_file": "pages/A06_Login/A06_frontend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_a06_login_a06_frontend", - "community": 18, - "norm_label": "a06_frontend.md" - }, - { - "label": "A06_Login \u2014 Frontend", - "file_type": "document", - "source_file": "pages/A06_Login/A06_frontend.md", - "source_location": "L8", - "_origin": "ast", - "id": "pages_a06_login_a06_frontend_a06_login_frontend", - "community": 18, - "norm_label": "a06_login \u2014 frontend" - }, - { - "label": "\ud30c\uc77c \uad6c\uc870", - "file_type": "document", - "source_file": "pages/A06_Login/A06_frontend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_a06_login_a06_frontend_\ud30c\uc77c_\uad6c\uc870", - "community": 18, - "norm_label": "\u1111\u1161\u110b\u1175\u11af \u1100\u116e\u110c\u1169" - }, - { - "label": "\ucef4\ud3ec\ub10c\ud2b8 / \ud568\uc218", - "file_type": "document", - "source_file": "pages/A06_Login/A06_frontend.md", - "source_location": "L20", - "_origin": "ast", - "id": "pages_a06_login_a06_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", - "community": 18, - "norm_label": "\u110f\u1165\u11b7\u1111\u1169\u1102\u1165\u11ab\u1110\u1173 / \u1112\u1161\u11b7\u1109\u116e" - }, - { - "label": "API \ud074\ub77c\uc774\uc5b8\ud2b8 \ud568\uc218", - "file_type": "document", - "source_file": "pages/A06_Login/A06_frontend.md", - "source_location": "L27", - "_origin": "ast", - "id": "pages_a06_login_a06_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8_\ud568\uc218", - "community": 18, - "norm_label": "api \u110f\u1173\u11af\u1105\u1161\u110b\u1175\u110b\u1165\u11ab\u1110\u1173 \u1112\u1161\u11b7\u1109\u116e" - }, - { - "label": "\uc81c\ucd9c \ub85c\uc9c1 (2\ub2e8\uacc4 \ud3fc \uc804\ud658)", - "file_type": "document", - "source_file": "pages/A06_Login/A06_frontend.md", - "source_location": "L40", - "_origin": "ast", - "id": "pages_a06_login_a06_frontend_\uc81c\ucd9c_\ub85c\uc9c1_2\ub2e8\uacc4_\ud3fc_\uc804\ud658", - "community": 18, - "norm_label": "\u110c\u1166\u110e\u116e\u11af \u1105\u1169\u110c\u1175\u11a8 (2\u1103\u1161\u11ab\u1100\u1168 \u1111\u1169\u11b7 \u110c\u1165\u11ab\u1112\u116a\u11ab)" - }, - { - "label": "\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "file_type": "document", - "source_file": "pages/A06_Login/A06_frontend.md", - "source_location": "L51", - "_origin": "ast", - "id": "pages_a06_login_a06_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "community": 18, - "norm_label": "\u1105\u1169\u110f\u1165\u11af\u1105\u1161\u110b\u1175\u110c\u1166\u110b\u1175\u1109\u1167\u11ab" - }, - { - "label": "\uc2a4\ud0c0\uc77c (CSS)", - "file_type": "document", - "source_file": "pages/A06_Login/A06_frontend.md", - "source_location": "L64", - "_origin": "ast", - "id": "pages_a06_login_a06_frontend_\uc2a4\ud0c0\uc77c_css", - "community": 18, - "norm_label": "\u1109\u1173\u1110\u1161\u110b\u1175\u11af (css)" - }, - { - "label": "\uc774\ubca4\ud2b8 \ud578\ub4e4\ub7ec", - "file_type": "document", - "source_file": "pages/A06_Login/A06_frontend.md", - "source_location": "L72", - "_origin": "ast", - "id": "pages_a06_login_a06_frontend_\uc774\ubca4\ud2b8_\ud578\ub4e4\ub7ec", - "community": 18, - "norm_label": "\u110b\u1175\u1107\u1166\u11ab\u1110\u1173 \u1112\u1162\u11ab\u1103\u1173\u11af\u1105\u1165" - }, - { - "label": "\uc758\uc874\uc131", - "file_type": "document", - "source_file": "pages/A06_Login/A06_frontend.md", - "source_location": "L79", - "_origin": "ast", - "id": "pages_a06_login_a06_frontend_\uc758\uc874\uc131", - "community": 18, - "norm_label": "\u110b\u1174\u110c\u1169\u11ab\u1109\u1165\u11bc" - }, - { - "label": "A07_backend.md", - "file_type": "document", - "source_file": "pages/A07_Register/A07_backend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_a07_register_a07_backend", - "community": 25, - "norm_label": "a07_backend.md" - }, - { - "label": "A07_Register \u2014 Backend", - "file_type": "document", - "source_file": "pages/A07_Register/A07_backend.md", - "source_location": "L8", - "_origin": "ast", - "id": "pages_a07_register_a07_backend_a07_register_backend", - "community": 25, - "norm_label": "a07_register \u2014 backend" - }, - { - "label": "\ud30c\uc77c \uad6c\uc870", - "file_type": "document", - "source_file": "pages/A07_Register/A07_backend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_a07_register_a07_backend_\ud30c\uc77c_\uad6c\uc870", - "community": 25, - "norm_label": "\u1111\u1161\u110b\u1175\u11af \u1100\u116e\u110c\u1169" - }, - { - "label": "API \uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "file_type": "document", - "source_file": "pages/A07_Register/A07_backend.md", - "source_location": "L19", - "_origin": "ast", - "id": "pages_a07_register_a07_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "community": 25, - "norm_label": "api \u110b\u1166\u11ab\u1103\u1173\u1111\u1169\u110b\u1175\u11ab\u1110\u1173" - }, - { - "label": "\uc694\uccad \uc2a4\ud0a4\ub9c8 (Pydantic)", - "file_type": "document", - "source_file": "pages/A07_Register/A07_backend.md", - "source_location": "L27", - "_origin": "ast", - "id": "pages_a07_register_a07_backend_\uc694\uccad_\uc2a4\ud0a4\ub9c8_pydantic", - "community": 25, - "norm_label": "\u110b\u116d\u110e\u1165\u11bc \u1109\u1173\u110f\u1175\u1106\u1161 (pydantic)" - }, - { - "label": "\uac00\uc785 \ub85c\uc9c1 \ud750\ub984", - "file_type": "document", - "source_file": "pages/A07_Register/A07_backend.md", - "source_location": "L36", - "_origin": "ast", - "id": "pages_a07_register_a07_backend_\uac00\uc785_\ub85c\uc9c1_\ud750\ub984", - "community": 25, - "norm_label": "\u1100\u1161\u110b\u1175\u11b8 \u1105\u1169\u110c\u1175\u11a8 \u1112\u1173\u1105\u1173\u11b7" - }, - { - "label": "\uc758\uc874\uc131 (\uacf5\ud1b5 \uc720\ud2f8)", - "file_type": "document", - "source_file": "pages/A07_Register/A07_backend.md", - "source_location": "L48", - "_origin": "ast", - "id": "pages_a07_register_a07_backend_\uc758\uc874\uc131_\uacf5\ud1b5_\uc720\ud2f8", - "community": 25, - "norm_label": "\u110b\u1174\u110c\u1169\u11ab\u1109\u1165\u11bc (\u1100\u1169\u11bc\u1110\u1169\u11bc \u110b\u1172\u1110\u1175\u11af)" - }, - { - "label": "\ucc38\uace0", - "file_type": "document", - "source_file": "pages/A07_Register/A07_backend.md", - "source_location": "L54", - "_origin": "ast", - "id": "pages_a07_register_a07_backend_\ucc38\uace0", - "community": 25, - "norm_label": "\u110e\u1161\u11b7\u1100\u1169" - }, - { - "label": "A07_frontend.md", - "file_type": "document", - "source_file": "pages/A07_Register/A07_frontend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_a07_register_a07_frontend", - "community": 10, - "norm_label": "a07_frontend.md" - }, - { - "label": "A07_Register \u2014 Frontend", - "file_type": "document", - "source_file": "pages/A07_Register/A07_frontend.md", - "source_location": "L8", - "_origin": "ast", - "id": "pages_a07_register_a07_frontend_a07_register_frontend", - "community": 10, - "norm_label": "a07_register \u2014 frontend" - }, - { - "label": "\ud30c\uc77c \uad6c\uc870", - "file_type": "document", - "source_file": "pages/A07_Register/A07_frontend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_a07_register_a07_frontend_\ud30c\uc77c_\uad6c\uc870", - "community": 10, - "norm_label": "\u1111\u1161\u110b\u1175\u11af \u1100\u116e\u110c\u1169" - }, - { - "label": "\ucef4\ud3ec\ub10c\ud2b8 / \ud568\uc218 (UI_Auth_Page \u2014 \uc2e4\uc0ac\uc6a9)", - "file_type": "document", - "source_file": "pages/A07_Register/A07_frontend.md", - "source_location": "L24", - "_origin": "ast", - "id": "pages_a07_register_a07_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218_ui_auth_page_\uc2e4\uc0ac\uc6a9", - "community": 10, - "norm_label": "\u110f\u1165\u11b7\u1111\u1169\u1102\u1165\u11ab\u1110\u1173 / \u1112\u1161\u11b7\u1109\u116e (ui_auth_page \u2014 \u1109\u1175\u11af\u1109\u1161\u110b\u116d\u11bc)" - }, - { - "label": "API \ud074\ub77c\uc774\uc5b8\ud2b8 \ud568\uc218", - "file_type": "document", - "source_file": "pages/A07_Register/A07_frontend.md", - "source_location": "L33", - "_origin": "ast", - "id": "pages_a07_register_a07_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8_\ud568\uc218", - "community": 10, - "norm_label": "api \u110f\u1173\u11af\u1105\u1161\u110b\u1175\u110b\u1165\u11ab\u1110\u1173 \u1112\u1161\u11b7\u1109\u116e" - }, - { - "label": "\uc81c\ucd9c \ub85c\uc9c1 (2\ub2e8\uacc4 \ud3fc \uc804\ud658)", - "file_type": "document", - "source_file": "pages/A07_Register/A07_frontend.md", - "source_location": "L43", - "_origin": "ast", - "id": "pages_a07_register_a07_frontend_\uc81c\ucd9c_\ub85c\uc9c1_2\ub2e8\uacc4_\ud3fc_\uc804\ud658", - "community": 10, - "norm_label": "\u110c\u1166\u110e\u116e\u11af \u1105\u1169\u110c\u1175\u11a8 (2\u1103\u1161\u11ab\u1100\u1168 \u1111\u1169\u11b7 \u110c\u1165\u11ab\u1112\u116a\u11ab)" - }, - { - "label": "\uc57d\uad00 \ub3d9\uc758 (\uc544\ucf54\ub514\uc5b8)", - "file_type": "document", - "source_file": "pages/A07_Register/A07_frontend.md", - "source_location": "L50", - "_origin": "ast", - "id": "pages_a07_register_a07_frontend_\uc57d\uad00_\ub3d9\uc758_\uc544\ucf54\ub514\uc5b8", - "community": 10, - "norm_label": "\u110b\u1163\u11a8\u1100\u116a\u11ab \u1103\u1169\u11bc\u110b\u1174 (\u110b\u1161\u110f\u1169\u1103\u1175\u110b\u1165\u11ab)" - }, - { - "label": "\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "file_type": "document", - "source_file": "pages/A07_Register/A07_frontend.md", - "source_location": "L56", - "_origin": "ast", - "id": "pages_a07_register_a07_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "community": 10, - "norm_label": "\u1105\u1169\u110f\u1165\u11af\u1105\u1161\u110b\u1175\u110c\u1166\u110b\u1175\u1109\u1167\u11ab" - }, - { - "label": "\uc2a4\ud0c0\uc77c (CSS)", - "file_type": "document", - "source_file": "pages/A07_Register/A07_frontend.md", - "source_location": "L70", - "_origin": "ast", - "id": "pages_a07_register_a07_frontend_\uc2a4\ud0c0\uc77c_css", - "community": 10, - "norm_label": "\u1109\u1173\u1110\u1161\u110b\u1175\u11af (css)" - }, - { - "label": "\uc774\ubca4\ud2b8 \ud578\ub4e4\ub7ec", - "file_type": "document", - "source_file": "pages/A07_Register/A07_frontend.md", - "source_location": "L77", - "_origin": "ast", - "id": "pages_a07_register_a07_frontend_\uc774\ubca4\ud2b8_\ud578\ub4e4\ub7ec", - "community": 10, - "norm_label": "\u110b\u1175\u1107\u1166\u11ab\u1110\u1173 \u1112\u1162\u11ab\u1103\u1173\u11af\u1105\u1165" - }, - { - "label": "\uc758\uc874\uc131", - "file_type": "document", - "source_file": "pages/A07_Register/A07_frontend.md", - "source_location": "L85", - "_origin": "ast", - "id": "pages_a07_register_a07_frontend_\uc758\uc874\uc131", - "community": 10, - "norm_label": "\u110b\u1174\u110c\u1169\u11ab\u1109\u1165\u11bc" - }, - { - "label": "A08_backend.md", - "file_type": "document", - "source_file": "pages/A08_Support/A08_backend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_a08_support_a08_backend", - "community": 11, - "norm_label": "a08_backend.md" - }, - { - "label": "A08_Support \u2014 Backend", - "file_type": "document", - "source_file": "pages/A08_Support/A08_backend.md", - "source_location": "L8", - "_origin": "ast", - "id": "pages_a08_support_a08_backend_a08_support_backend", - "community": 11, - "norm_label": "a08_support \u2014 backend" - }, - { - "label": "\ud30c\uc77c \uad6c\uc870", - "file_type": "document", - "source_file": "pages/A08_Support/A08_backend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_a08_support_a08_backend_\ud30c\uc77c_\uad6c\uc870", - "community": 11, - "norm_label": "\u1111\u1161\u110b\u1175\u11af \u1100\u116e\u110c\u1169" - }, - { - "label": "API \uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "file_type": "document", - "source_file": "pages/A08_Support/A08_backend.md", - "source_location": "L19", - "_origin": "ast", - "id": "pages_a08_support_a08_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "community": 11, - "norm_label": "api \u110b\u1166\u11ab\u1103\u1173\u1111\u1169\u110b\u1175\u11ab\u1110\u1173" - }, - { - "label": "\ub0b4\ubd80 \ud5ec\ud37c", - "file_type": "document", - "source_file": "pages/A08_Support/A08_backend.md", - "source_location": "L25", - "_origin": "ast", - "id": "pages_a08_support_a08_backend_\ub0b4\ubd80_\ud5ec\ud37c", - "community": 11, - "norm_label": "\u1102\u1162\u1107\u116e \u1112\u1166\u11af\u1111\u1165" - }, - { - "label": "\uc694\uccad \uc2a4\ud0a4\ub9c8 (Pydantic)", - "file_type": "document", - "source_file": "pages/A08_Support/A08_backend.md", - "source_location": "L31", - "_origin": "ast", - "id": "pages_a08_support_a08_backend_\uc694\uccad_\uc2a4\ud0a4\ub9c8_pydantic", - "community": 11, - "norm_label": "\u110b\u116d\u110e\u1165\u11bc \u1109\u1173\u110f\u1175\u1106\u1161 (pydantic)" - }, - { - "label": "\uc811\uc218 \ub85c\uc9c1", - "file_type": "document", - "source_file": "pages/A08_Support/A08_backend.md", - "source_location": "L37", - "_origin": "ast", - "id": "pages_a08_support_a08_backend_\uc811\uc218_\ub85c\uc9c1", - "community": 11, - "norm_label": "\u110c\u1165\u11b8\u1109\u116e \u1105\u1169\u110c\u1175\u11a8" - }, - { - "label": "DB \uc800\uc7a5 \uceec\ub7fc (\uc2e4 \ucf54\ub4dc INSERT \uae30\uc900)", - "file_type": "document", - "source_file": "pages/A08_Support/A08_backend.md", - "source_location": "L44", - "_origin": "ast", - "id": "pages_a08_support_a08_backend_db_\uc800\uc7a5_\uceec\ub7fc_\uc2e4_\ucf54\ub4dc_insert_\uae30\uc900", - "community": 11, - "norm_label": "db \u110c\u1165\u110c\u1161\u11bc \u110f\u1165\u11af\u1105\u1165\u11b7 (\u1109\u1175\u11af \u110f\u1169\u1103\u1173 insert \u1100\u1175\u110c\u116e\u11ab)" - }, - { - "label": "\ud2b9\uc9d5", - "file_type": "document", - "source_file": "pages/A08_Support/A08_backend.md", - "source_location": "L51", - "_origin": "ast", - "id": "pages_a08_support_a08_backend_\ud2b9\uc9d5", - "community": 11, - "norm_label": "\u1110\u1173\u11a8\u110c\u1175\u11bc" - }, - { - "label": "\uc758\uc874\uc131 (\uacf5\ud1b5 \uc720\ud2f8)", - "file_type": "document", - "source_file": "pages/A08_Support/A08_backend.md", - "source_location": "L56", - "_origin": "ast", - "id": "pages_a08_support_a08_backend_\uc758\uc874\uc131_\uacf5\ud1b5_\uc720\ud2f8", - "community": 11, - "norm_label": "\u110b\u1174\u110c\u1169\u11ab\u1109\u1165\u11bc (\u1100\u1169\u11bc\u1110\u1169\u11bc \u110b\u1172\u1110\u1175\u11af)" - }, - { - "label": "\u26a0\ufe0f DB \uc2a4\ud0a4\ub9c8 \ubd88\uc77c\uce58 (\ud655\uc778 \ud544\uc694)", - "file_type": "document", - "source_file": "pages/A08_Support/A08_backend.md", - "source_location": "L62", - "_origin": "ast", - "id": "pages_a08_support_a08_backend_db_\uc2a4\ud0a4\ub9c8_\ubd88\uc77c\uce58_\ud655\uc778_\ud544\uc694", - "community": 11, - "norm_label": "\u26a0\ufe0f db \u1109\u1173\u110f\u1175\u1106\u1161 \u1107\u116e\u11af\u110b\u1175\u11af\u110e\u1175 (\u1112\u116a\u11a8\u110b\u1175\u11ab \u1111\u1175\u11af\u110b\u116d)" - }, - { - "label": "A08_frontend.md", - "file_type": "document", - "source_file": "pages/A08_Support/A08_frontend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_a08_support_a08_frontend", - "community": 12, - "norm_label": "a08_frontend.md" - }, - { - "label": "A08_Support \u2014 Frontend", - "file_type": "document", - "source_file": "pages/A08_Support/A08_frontend.md", - "source_location": "L8", - "_origin": "ast", - "id": "pages_a08_support_a08_frontend_a08_support_frontend", - "community": 12, - "norm_label": "a08_support \u2014 frontend" - }, - { - "label": "\ud30c\uc77c \uad6c\uc870", - "file_type": "document", - "source_file": "pages/A08_Support/A08_frontend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_a08_support_a08_frontend_\ud30c\uc77c_\uad6c\uc870", - "community": 12, - "norm_label": "\u1111\u1161\u110b\u1175\u11af \u1100\u116e\u110c\u1169" - }, - { - "label": "\ucef4\ud3ec\ub10c\ud2b8 / \ud568\uc218", - "file_type": "document", - "source_file": "pages/A08_Support/A08_frontend.md", - "source_location": "L19", - "_origin": "ast", - "id": "pages_a08_support_a08_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", - "community": 12, - "norm_label": "\u110f\u1165\u11b7\u1111\u1169\u1102\u1165\u11ab\u1110\u1173 / \u1112\u1161\u11b7\u1109\u116e" - }, - { - "label": "\uc81c\ucd9c \ub85c\uc9c1", - "file_type": "document", - "source_file": "pages/A08_Support/A08_frontend.md", - "source_location": "L27", - "_origin": "ast", - "id": "pages_a08_support_a08_frontend_\uc81c\ucd9c_\ub85c\uc9c1", - "community": 12, - "norm_label": "\u110c\u1166\u110e\u116e\u11af \u1105\u1169\u110c\u1175\u11a8" - }, - { - "label": "\uc138\uc158 \uc790\ub3d9 \ucc44\uc6c0", - "file_type": "document", - "source_file": "pages/A08_Support/A08_frontend.md", - "source_location": "L34", - "_origin": "ast", - "id": "pages_a08_support_a08_frontend_\uc138\uc158_\uc790\ub3d9_\ucc44\uc6c0", - "community": 12, - "norm_label": "\u1109\u1166\u1109\u1167\u11ab \u110c\u1161\u1103\u1169\u11bc \u110e\u1162\u110b\u116e\u11b7" - }, - { - "label": "\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "file_type": "document", - "source_file": "pages/A08_Support/A08_frontend.md", - "source_location": "L39", - "_origin": "ast", - "id": "pages_a08_support_a08_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "community": 12, - "norm_label": "\u1105\u1169\u110f\u1165\u11af\u1105\u1161\u110b\u1175\u110c\u1166\u110b\u1175\u1109\u1167\u11ab" - }, - { - "label": "\uc2a4\ud0c0\uc77c (CSS)", - "file_type": "document", - "source_file": "pages/A08_Support/A08_frontend.md", - "source_location": "L51", - "_origin": "ast", - "id": "pages_a08_support_a08_frontend_\uc2a4\ud0c0\uc77c_css", - "community": 12, - "norm_label": "\u1109\u1173\u1110\u1161\u110b\u1175\u11af (css)" - }, - { - "label": "\uc774\ubca4\ud2b8 \ud578\ub4e4\ub7ec", - "file_type": "document", - "source_file": "pages/A08_Support/A08_frontend.md", - "source_location": "L59", - "_origin": "ast", - "id": "pages_a08_support_a08_frontend_\uc774\ubca4\ud2b8_\ud578\ub4e4\ub7ec", - "community": 12, - "norm_label": "\u110b\u1175\u1107\u1166\u11ab\u1110\u1173 \u1112\u1162\u11ab\u1103\u1173\u11af\u1105\u1165" - }, - { - "label": "\uc758\uc874\uc131", - "file_type": "document", - "source_file": "pages/A08_Support/A08_frontend.md", - "source_location": "L65", - "_origin": "ast", - "id": "pages_a08_support_a08_frontend_\uc758\uc874\uc131", - "community": 12, - "norm_label": "\u110b\u1174\u110c\u1169\u11ab\u1109\u1165\u11bc" - }, - { - "label": "\ucc38\uace0", - "file_type": "document", - "source_file": "pages/A08_Support/A08_frontend.md", - "source_location": "L73", - "_origin": "ast", - "id": "pages_a08_support_a08_frontend_\ucc38\uace0", - "community": 12, - "norm_label": "\u110e\u1161\u11b7\u1100\u1169" - }, - { - "label": "A09_backend.md", - "file_type": "document", - "source_file": "pages/A09_Security/A09_backend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_a09_security_a09_backend", - "community": 6, - "norm_label": "a09_backend.md" - }, - { - "label": "A09_Security \u2014 Backend", - "file_type": "document", - "source_file": "pages/A09_Security/A09_backend.md", - "source_location": "L8", - "_origin": "ast", - "id": "pages_a09_security_a09_backend_a09_security_backend", - "community": 6, - "norm_label": "a09_security \u2014 backend" - }, - { - "label": "\ud30c\uc77c \uad6c\uc870", - "file_type": "document", - "source_file": "pages/A09_Security/A09_backend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_a09_security_a09_backend_\ud30c\uc77c_\uad6c\uc870", - "community": 6, - "norm_label": "\u1111\u1161\u110b\u1175\u11af \u1100\u116e\u110c\u1169" - }, - { - "label": "API \uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "file_type": "document", - "source_file": "pages/A09_Security/A09_backend.md", - "source_location": "L19", - "_origin": "ast", - "id": "pages_a09_security_a09_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "community": 6, - "norm_label": "api \u110b\u1166\u11ab\u1103\u1173\u1111\u1169\u110b\u1175\u11ab\u1110\u1173" - }, - { - "label": "\ub9c8\uc2a4\ud130(\ud68c\uc0ac \uad00\ub9ac\uc790) \uc804\uc6a9 \u2014 `require_master`", - "file_type": "document", - "source_file": "pages/A09_Security/A09_backend.md", - "source_location": "L21", - "_origin": "ast", - "id": "pages_a09_security_a09_backend_\ub9c8\uc2a4\ud130_\ud68c\uc0ac_\uad00\ub9ac\uc790_\uc804\uc6a9_require_master", - "community": 6, - "norm_label": "\u1106\u1161\u1109\u1173\u1110\u1165(\u1112\u116c\u1109\u1161 \u1100\u116a\u11ab\u1105\u1175\u110c\u1161) \u110c\u1165\u11ab\u110b\u116d\u11bc \u2014 `require_master`" - }, - { - "label": "\uc2dc\uc2a4\ud15c \uad00\ub9ac\uc790 \uc804\uc6a9 \u2014 `require_system_admin`", - "file_type": "document", - "source_file": "pages/A09_Security/A09_backend.md", - "source_location": "L31", - "_origin": "ast", - "id": "pages_a09_security_a09_backend_\uc2dc\uc2a4\ud15c_\uad00\ub9ac\uc790_\uc804\uc6a9_require_system_admin", - "community": 6, - "norm_label": "\u1109\u1175\u1109\u1173\u1110\u1166\u11b7 \u1100\u116a\u11ab\u1105\u1175\u110c\u1161 \u110c\u1165\u11ab\u110b\u116d\u11bc \u2014 `require_system_admin`" - }, - { - "label": "\uc778\uc99d \uc0ac\uc6a9\uc790 \uacf5\ud1b5 \u2014 `verify_session`", - "file_type": "document", - "source_file": "pages/A09_Security/A09_backend.md", - "source_location": "L39", - "_origin": "ast", - "id": "pages_a09_security_a09_backend_\uc778\uc99d_\uc0ac\uc6a9\uc790_\uacf5\ud1b5_verify_session", - "community": 6, - "norm_label": "\u110b\u1175\u11ab\u110c\u1173\u11bc \u1109\u1161\u110b\u116d\u11bc\u110c\u1161 \u1100\u1169\u11bc\u1110\u1169\u11bc \u2014 `verify_session`" - }, - { - "label": "\uc694\uccad \uc2a4\ud0a4\ub9c8 (Pydantic)", - "file_type": "document", - "source_file": "pages/A09_Security/A09_backend.md", - "source_location": "L45", - "_origin": "ast", - "id": "pages_a09_security_a09_backend_\uc694\uccad_\uc2a4\ud0a4\ub9c8_pydantic", - "community": 6, - "norm_label": "\u110b\u116d\u110e\u1165\u11bc \u1109\u1173\u110f\u1175\u1106\u1161 (pydantic)" - }, - { - "label": "DB \uc800\uc7a5 (activity_logs)", - "file_type": "document", - "source_file": "pages/A09_Security/A09_backend.md", - "source_location": "L55", - "_origin": "ast", - "id": "pages_a09_security_a09_backend_db_\uc800\uc7a5_activity_logs", - "community": 6, - "norm_label": "db \u110c\u1165\u110c\u1161\u11bc (activity_logs)" - }, - { - "label": "\uad8c\ud55c \ud5ec\ud37c", - "file_type": "document", - "source_file": "pages/A09_Security/A09_backend.md", - "source_location": "L60", - "_origin": "ast", - "id": "pages_a09_security_a09_backend_\uad8c\ud55c_\ud5ec\ud37c", - "community": 6, - "norm_label": "\u1100\u116f\u11ab\u1112\u1161\u11ab \u1112\u1166\u11af\u1111\u1165" - }, - { - "label": "\uc758\uc874\uc131 (\uacf5\ud1b5 \uc720\ud2f8)", - "file_type": "document", - "source_file": "pages/A09_Security/A09_backend.md", - "source_location": "L67", - "_origin": "ast", - "id": "pages_a09_security_a09_backend_\uc758\uc874\uc131_\uacf5\ud1b5_\uc720\ud2f8", - "community": 6, - "norm_label": "\u110b\u1174\u110c\u1169\u11ab\u1109\u1165\u11bc (\u1100\u1169\u11bc\u1110\u1169\u11bc \u110b\u1172\u1110\u1175\u11af)" - }, - { - "label": "\ucc38\uace0", - "file_type": "document", - "source_file": "pages/A09_Security/A09_backend.md", - "source_location": "L73", - "_origin": "ast", - "id": "pages_a09_security_a09_backend_\ucc38\uace0", - "community": 6, - "norm_label": "\u110e\u1161\u11b7\u1100\u1169" - }, - { - "label": "A09_frontend.md", - "file_type": "document", - "source_file": "pages/A09_Security/A09_frontend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_a09_security_a09_frontend", - "community": 19, - "norm_label": "a09_frontend.md" - }, - { - "label": "A09_Security \u2014 Frontend", - "file_type": "document", - "source_file": "pages/A09_Security/A09_frontend.md", - "source_location": "L8", - "_origin": "ast", - "id": "pages_a09_security_a09_frontend_a09_security_frontend", - "community": 19, - "norm_label": "a09_security \u2014 frontend" - }, - { - "label": "\ud30c\uc77c \uad6c\uc870", - "file_type": "document", - "source_file": "pages/A09_Security/A09_frontend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_a09_security_a09_frontend_\ud30c\uc77c_\uad6c\uc870", - "community": 19, - "norm_label": "\u1111\u1161\u110b\u1175\u11af \u1100\u116e\u110c\u1169" - }, - { - "label": "\ucef4\ud3ec\ub10c\ud2b8 / \ud568\uc218", - "file_type": "document", - "source_file": "pages/A09_Security/A09_frontend.md", - "source_location": "L25", - "_origin": "ast", - "id": "pages_a09_security_a09_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", - "community": 19, - "norm_label": "\u110f\u1165\u11b7\u1111\u1169\u1102\u1165\u11ab\u1110\u1173 / \u1112\u1161\u11b7\u1109\u116e" - }, - { - "label": "\uc57d\uad00 \ub370\uc774\ud130 (A09_Security_Terms.ts)", - "file_type": "document", - "source_file": "pages/A09_Security/A09_frontend.md", - "source_location": "L31", - "_origin": "ast", - "id": "pages_a09_security_a09_frontend_\uc57d\uad00_\ub370\uc774\ud130_a09_security_terms_ts", - "community": 19, - "norm_label": "\u110b\u1163\u11a8\u1100\u116a\u11ab \u1103\u1166\u110b\u1175\u1110\u1165 (a09_security_terms.ts)" - }, - { - "label": "API \ud074\ub77c\uc774\uc5b8\ud2b8 \ud568\uc218 (\u26a0\ufe0f \ubbf8\uc0ac\uc6a9, \uc815\uc758\ub9cc)", - "file_type": "document", - "source_file": "pages/A09_Security/A09_frontend.md", - "source_location": "L40", - "_origin": "ast", - "id": "pages_a09_security_a09_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8_\ud568\uc218_\ubbf8\uc0ac\uc6a9_\uc815\uc758\ub9cc", - "community": 19, - "norm_label": "api \u110f\u1173\u11af\u1105\u1161\u110b\u1175\u110b\u1165\u11ab\u1110\u1173 \u1112\u1161\u11b7\u1109\u116e (\u26a0\ufe0f \u1106\u1175\u1109\u1161\u110b\u116d\u11bc, \u110c\u1165\u11bc\u110b\u1174\u1106\u1161\u11ab)" - }, - { - "label": "\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "file_type": "document", - "source_file": "pages/A09_Security/A09_frontend.md", - "source_location": "L53", - "_origin": "ast", - "id": "pages_a09_security_a09_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "community": 19, - "norm_label": "\u1105\u1169\u110f\u1165\u11af\u1105\u1161\u110b\u1175\u110c\u1166\u110b\u1175\u1109\u1167\u11ab" - }, - { - "label": "\uc2a4\ud0c0\uc77c (CSS)", - "file_type": "document", - "source_file": "pages/A09_Security/A09_frontend.md", - "source_location": "L64", - "_origin": "ast", - "id": "pages_a09_security_a09_frontend_\uc2a4\ud0c0\uc77c_css", - "community": 19, - "norm_label": "\u1109\u1173\u1110\u1161\u110b\u1175\u11af (css)" - }, - { - "label": "\u26a0\ufe0f \uc57d\uad00 \ud14d\uc2a4\ud2b8\uc640 \uc2e4 \ucf54\ub4dc \ubd88\uc77c\uce58", - "file_type": "document", - "source_file": "pages/A09_Security/A09_frontend.md", - "source_location": "L69", - "_origin": "ast", - "id": "pages_a09_security_a09_frontend_\uc57d\uad00_\ud14d\uc2a4\ud2b8\uc640_\uc2e4_\ucf54\ub4dc_\ubd88\uc77c\uce58", - "community": 19, - "norm_label": "\u26a0\ufe0f \u110b\u1163\u11a8\u1100\u116a\u11ab \u1110\u1166\u11a8\u1109\u1173\u1110\u1173\u110b\u116a \u1109\u1175\u11af \u110f\u1169\u1103\u1173 \u1107\u116e\u11af\u110b\u1175\u11af\u110e\u1175" - }, - { - "label": "\uc758\uc874\uc131", - "file_type": "document", - "source_file": "pages/A09_Security/A09_frontend.md", - "source_location": "L75", - "_origin": "ast", - "id": "pages_a09_security_a09_frontend_\uc758\uc874\uc131", - "community": 19, - "norm_label": "\u110b\u1174\u110c\u1169\u11ab\u1109\u1165\u11bc" - }, - { - "label": "B01_api.md", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_api.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_api", - "community": 1, - "norm_label": "b01_api.md" - }, - { - "label": "B01_Dashboard \u2014 API", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_api.md", - "source_location": "L10", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_api_b01_dashboard_api", - "community": 1, - "norm_label": "b01_dashboard \u2014 api" - }, - { - "label": "\uc0ac\uc6a9\uc790\u00b7\ud68c\uc0ac", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_api.md", - "source_location": "L14", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_api_\uc0ac\uc6a9\uc790_\ud68c\uc0ac", - "community": 1, - "norm_label": "\u1109\u1161\u110b\u116d\u11bc\u110c\u1161\u00b7\u1112\u116c\u1109\u1161" - }, - { - "label": "\ud68c\uc0ac \uad00\ub9ac\uc790", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_api.md", - "source_location": "L25", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_api_\ud68c\uc0ac_\uad00\ub9ac\uc790", - "community": 1, - "norm_label": "\u1112\u116c\u1109\u1161 \u1100\u116a\u11ab\u1105\u1175\u110c\u1161" - }, - { - "label": "\ud504\ub85c\uc81d\ud2b8\u00b7\uc790\ub3d9\ud654", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_api.md", - "source_location": "L35", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_api_\ud504\ub85c\uc81d\ud2b8_\uc790\ub3d9\ud654", - "community": 1, - "norm_label": "\u1111\u1173\u1105\u1169\u110c\u1166\u11a8\u1110\u1173\u00b7\u110c\u1161\u1103\u1169\u11bc\u1112\u116a" - }, - { - "label": "\uc2dc\uc2a4\ud15c \uad00\ub9ac\uc790", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_api.md", - "source_location": "L46", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_api_\uc2dc\uc2a4\ud15c_\uad00\ub9ac\uc790", - "community": 1, - "norm_label": "\u1109\u1175\u1109\u1173\u1110\u1166\u11b7 \u1100\u116a\u11ab\u1105\u1175\u110c\u1161" - }, - { - "label": "B01_backend.md", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_backend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_backend", - "community": 1, - "norm_label": "b01_backend.md" - }, - { - "label": "B01_Dashboard \u2014 Backend", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_backend.md", - "source_location": "L10", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_backend_b01_dashboard_backend", - "community": 1, - "norm_label": "b01_dashboard \u2014 backend" - }, - { - "label": "\ub77c\uc6b0\ud130 \uad8c\ud55c \ud5ec\ud37c", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_backend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_backend_\ub77c\uc6b0\ud130_\uad8c\ud55c_\ud5ec\ud37c", - "community": 1, - "norm_label": "\u1105\u1161\u110b\u116e\u1110\u1165 \u1100\u116f\u11ab\u1112\u1161\u11ab \u1112\u1166\u11af\u1111\u1165" - }, - { - "label": "\uc800\uc7a5\uc18c \ud568\uc218", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_backend.md", - "source_location": "L24", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_backend_\uc800\uc7a5\uc18c_\ud568\uc218", - "community": 1, - "norm_label": "\u110c\u1165\u110c\u1161\u11bc\u1109\u1169 \u1112\u1161\u11b7\u1109\u116e" - }, - { - "label": "\uc694\uccad \uc2a4\ud0a4\ub9c8", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_backend.md", - "source_location": "L44", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_backend_\uc694\uccad_\uc2a4\ud0a4\ub9c8", - "community": 1, - "norm_label": "\u110b\u116d\u110e\u1165\u11bc \u1109\u1173\u110f\u1175\u1106\u1161" - }, - { - "label": "\uae30\uc220\ubd80\ucc44", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_backend.md", - "source_location": "L54", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_backend_\uae30\uc220\ubd80\ucc44", - "community": 1, - "norm_label": "\u1100\u1175\u1109\u116e\u11af\u1107\u116e\u110e\u1162" - }, - { - "label": "B01_db.md", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_db.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_db", - "community": 43, - "norm_label": "b01_db.md" - }, - { - "label": "B01_Dashboard \u2014 DB \uc0ac\uc6a9 \uad00\uacc4", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_db.md", - "source_location": "L10", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_db_b01_dashboard_db_\uc0ac\uc6a9_\uad00\uacc4", - "community": 43, - "norm_label": "b01_dashboard \u2014 db \u1109\u1161\u110b\u116d\u11bc \u1100\u116a\u11ab\u1100\u1168" - }, - { - "label": "\ud2b8\ub79c\uc7ad\uc158 \uacbd\uacc4", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_db.md", - "source_location": "L25", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_db_\ud2b8\ub79c\uc7ad\uc158_\uacbd\uacc4", - "community": 43, - "norm_label": "\u1110\u1173\u1105\u1162\u11ab\u110c\u1162\u11a8\u1109\u1167\u11ab \u1100\u1167\u11bc\u1100\u1168" - }, - { - "label": "B01_dependencies.md", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_dependencies.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_dependencies", - "community": 5, - "norm_label": "b01_dependencies.md" - }, - { - "label": "B01_Dashboard \u2014 Dependencies", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_dependencies.md", - "source_location": "L10", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_dependencies_b01_dashboard_dependencies", - "community": 5, - "norm_label": "b01_dashboard \u2014 dependencies" - }, - { - "label": "\ud504\ub85c\uc81d\ud2b8 \uacf5\ud1b5 \ubaa8\ub4c8", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_dependencies.md", - "source_location": "L23", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_dependencies_\ud504\ub85c\uc81d\ud2b8_\uacf5\ud1b5_\ubaa8\ub4c8", - "community": 5, - "norm_label": "\u1111\u1173\u1105\u1169\u110c\u1166\u11a8\u1110\u1173 \u1100\u1169\u11bc\u1110\u1169\u11bc \u1106\u1169\u1103\u1172\u11af" - }, - { - "label": "B01_frontend.md", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_frontend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_frontend", - "community": 5, - "norm_label": "b01_frontend.md" - }, - { - "label": "B01_Dashboard \u2014 Frontend", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_frontend.md", - "source_location": "L10", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_frontend_b01_dashboard_frontend", - "community": 5, - "norm_label": "b01_dashboard \u2014 frontend" - }, - { - "label": "\ud30c\uc77c\uacfc \uc9c4\uc785\uc810", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_frontend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_frontend_\ud30c\uc77c\uacfc_\uc9c4\uc785\uc810", - "community": 5, - "norm_label": "\u1111\u1161\u110b\u1175\u11af\u1100\u116a \u110c\u1175\u11ab\u110b\u1175\u11b8\u110c\u1165\u11b7" - }, - { - "label": "UI \uad8c\ud55c \ud5ec\ud37c", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_frontend.md", - "source_location": "L20", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_frontend_ui_\uad8c\ud55c_\ud5ec\ud37c", - "community": 5, - "norm_label": "ui \u1100\u116f\u11ab\u1112\u1161\u11ab \u1112\u1166\u11af\u1111\u1165" - }, - { - "label": "\ubaa8\ub2ec", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_frontend.md", - "source_location": "L32", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_frontend_\ubaa8\ub2ec", - "community": 5, - "norm_label": "\u1106\u1169\u1103\u1161\u11af" - }, - { - "label": "\uacf5\uc720 \uc790\uc6d0 \uc5f0\uacb0", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_frontend.md", - "source_location": "L45", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_frontend_\uacf5\uc720_\uc790\uc6d0_\uc5f0\uacb0", - "community": 5, - "norm_label": "\u1100\u1169\u11bc\u110b\u1172 \u110c\u1161\u110b\u116f\u11ab \u110b\u1167\u11ab\u1100\u1167\u11af" - }, - { - "label": "\uae30\uc220\ubd80\ucc44", - "file_type": "document", - "source_file": "pages/B01_Dashboard/B01_frontend.md", - "source_location": "L52", - "_origin": "ast", - "id": "pages_b01_dashboard_b01_frontend_\uae30\uc220\ubd80\ucc44", - "community": 5, - "norm_label": "\u1100\u1175\u1109\u116e\u11af\u1107\u116e\u110e\u1162" - }, - { - "label": "B02_backend.md", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_backend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b02_projregister_b02_backend", - "community": 20, - "norm_label": "b02_backend.md" - }, - { - "label": "B02_ProjRegister \u2014 Backend", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_backend.md", - "source_location": "L8", - "_origin": "ast", - "id": "pages_b02_projregister_b02_backend_b02_projregister_backend", - "community": 20, - "norm_label": "b02_projregister \u2014 backend" - }, - { - "label": "\ud30c\uc77c \uad6c\uc870", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_backend.md", - "source_location": "L14", - "_origin": "ast", - "id": "pages_b02_projregister_b02_backend_\ud30c\uc77c_\uad6c\uc870", - "community": 20, - "norm_label": "\u1111\u1161\u110b\u1175\u11af \u1100\u116e\u110c\u1169" - }, - { - "label": "API \uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_backend.md", - "source_location": "L22", - "_origin": "ast", - "id": "pages_b02_projregister_b02_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "community": 20, - "norm_label": "api \u110b\u1166\u11ab\u1103\u1173\u1111\u1169\u110b\u1175\u11ab\u1110\u1173" - }, - { - "label": "\ud568\uc218", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_backend.md", - "source_location": "L28", - "_origin": "ast", - "id": "pages_b02_projregister_b02_backend_\ud568\uc218", - "community": 20, - "norm_label": "\u1112\u1161\u11b7\u1109\u116e" - }, - { - "label": "\uc694\uccad/\uc751\ub2f5 \uc2a4\ud0a4\ub9c8 (Pydantic)", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_backend.md", - "source_location": "L38", - "_origin": "ast", - "id": "pages_b02_projregister_b02_backend_\uc694\uccad_\uc751\ub2f5_\uc2a4\ud0a4\ub9c8_pydantic", - "community": 20, - "norm_label": "\u110b\u116d\u110e\u1165\u11bc/\u110b\u1173\u11bc\u1103\u1161\u11b8 \u1109\u1173\u110f\u1175\u1106\u1161 (pydantic)" - }, - { - "label": "\uc0dd\uc131 \ub85c\uc9c1 (create_project \ud2b8\ub79c\uc7ad\uc158)", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_backend.md", - "source_location": "L45", - "_origin": "ast", - "id": "pages_b02_projregister_b02_backend_\uc0dd\uc131_\ub85c\uc9c1_create_project_\ud2b8\ub79c\uc7ad\uc158", - "community": 20, - "norm_label": "\u1109\u1162\u11bc\u1109\u1165\u11bc \u1105\u1169\u110c\u1175\u11a8 (create_project \u1110\u1173\u1105\u1162\u11ab\u110c\u1162\u11a8\u1109\u1167\u11ab)" - }, - { - "label": "DB \uc800\uc7a5 \uceec\ub7fc (projects INSERT)", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_backend.md", - "source_location": "L56", - "_origin": "ast", - "id": "pages_b02_projregister_b02_backend_db_\uc800\uc7a5_\uceec\ub7fc_projects_insert", - "community": 20, - "norm_label": "db \u110c\u1165\u110c\u1161\u11bc \u110f\u1165\u11af\u1105\u1165\u11b7 (projects insert)" - }, - { - "label": "\uc758\uc874\uc131 (\uacf5\ud1b5 \uc720\ud2f8)", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_backend.md", - "source_location": "L61", - "_origin": "ast", - "id": "pages_b02_projregister_b02_backend_\uc758\uc874\uc131_\uacf5\ud1b5_\uc720\ud2f8", - "community": 20, - "norm_label": "\u110b\u1174\u110c\u1169\u11ab\u1109\u1165\u11bc (\u1100\u1169\u11bc\u1110\u1169\u11bc \u110b\u1172\u1110\u1175\u11af)" - }, - { - "label": "\ucc38\uace0", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_backend.md", - "source_location": "L69", - "_origin": "ast", - "id": "pages_b02_projregister_b02_backend_\ucc38\uace0", - "community": 20, - "norm_label": "\u110e\u1161\u11b7\u1100\u1169" - }, - { - "label": "B02_db.md", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_db.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b02_projregister_b02_db", - "community": 34, - "norm_label": "b02_db.md" - }, - { - "label": "B02_ProjRegister \u2014 DB", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_db.md", - "source_location": "L8", - "_origin": "ast", - "id": "pages_b02_projregister_b02_db_b02_projregister_db", - "community": 34, - "norm_label": "b02_projregister \u2014 db" - }, - { - "label": "\uc4f0\ub294 \ud14c\uc774\ube14", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_db.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_b02_projregister_b02_db_\uc4f0\ub294_\ud14c\uc774\ube14", - "community": 34, - "norm_label": "\u110a\u1173\u1102\u1173\u11ab \u1110\u1166\u110b\u1175\u1107\u1173\u11af" - }, - { - "label": "\uc800\uc7a5\uc18c(\ud30c\uc77c\uc2dc\uc2a4\ud15c)", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_db.md", - "source_location": "L20", - "_origin": "ast", - "id": "pages_b02_projregister_b02_db_\uc800\uc7a5\uc18c_\ud30c\uc77c\uc2dc\uc2a4\ud15c", - "community": 34, - "norm_label": "\u110c\u1165\u110c\u1161\u11bc\u1109\u1169(\u1111\u1161\u110b\u1175\u11af\u1109\u1175\u1109\u1173\u1110\u1166\u11b7)" - }, - { - "label": "\ucc38\uace0 (\uacc4\ud68d \ub2f9\uc2dc \uc758\ub3c4)", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_db.md", - "source_location": "L26", - "_origin": "ast", - "id": "pages_b02_projregister_b02_db_\ucc38\uace0_\uacc4\ud68d_\ub2f9\uc2dc_\uc758\ub3c4", - "community": 34, - "norm_label": "\u110e\u1161\u11b7\u1100\u1169 (\u1100\u1168\u1112\u116c\u11a8 \u1103\u1161\u11bc\u1109\u1175 \u110b\u1174\u1103\u1169)" - }, - { - "label": "B02_frontend.md", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_frontend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b02_projregister_b02_frontend", - "community": 13, - "norm_label": "b02_frontend.md" - }, - { - "label": "B02_ProjRegister \u2014 Frontend", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_frontend.md", - "source_location": "L8", - "_origin": "ast", - "id": "pages_b02_projregister_b02_frontend_b02_projregister_frontend", - "community": 13, - "norm_label": "b02_projregister \u2014 frontend" - }, - { - "label": "\ud30c\uc77c \uad6c\uc870", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_frontend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_b02_projregister_b02_frontend_\ud30c\uc77c_\uad6c\uc870", - "community": 13, - "norm_label": "\u1111\u1161\u110b\u1175\u11af \u1100\u116e\u110c\u1169" - }, - { - "label": "\ucef4\ud3ec\ub10c\ud2b8 / \ud568\uc218", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_frontend.md", - "source_location": "L19", - "_origin": "ast", - "id": "pages_b02_projregister_b02_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", - "community": 13, - "norm_label": "\u110f\u1165\u11b7\u1111\u1169\u1102\u1165\u11ab\u1110\u1173 / \u1112\u1161\u11b7\u1109\u116e" - }, - { - "label": "\uc785\ub825 \ud544\ub4dc", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_frontend.md", - "source_location": "L26", - "_origin": "ast", - "id": "pages_b02_projregister_b02_frontend_\uc785\ub825_\ud544\ub4dc", - "community": 13, - "norm_label": "\u110b\u1175\u11b8\u1105\u1167\u11a8 \u1111\u1175\u11af\u1103\u1173" - }, - { - "label": "\uc81c\ucd9c \ub85c\uc9c1", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_frontend.md", - "source_location": "L37", - "_origin": "ast", - "id": "pages_b02_projregister_b02_frontend_\uc81c\ucd9c_\ub85c\uc9c1", - "community": 13, - "norm_label": "\u110c\u1166\u110e\u116e\u11af \u1105\u1169\u110c\u1175\u11a8" - }, - { - "label": "\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_frontend.md", - "source_location": "L45", - "_origin": "ast", - "id": "pages_b02_projregister_b02_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "community": 13, - "norm_label": "\u1105\u1169\u110f\u1165\u11af\u1105\u1161\u110b\u1175\u110c\u1166\u110b\u1175\u1109\u1167\u11ab" - }, - { - "label": "\uc2a4\ud0c0\uc77c (CSS)", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_frontend.md", - "source_location": "L57", - "_origin": "ast", - "id": "pages_b02_projregister_b02_frontend_\uc2a4\ud0c0\uc77c_css", - "community": 13, - "norm_label": "\u1109\u1173\u1110\u1161\u110b\u1175\u11af (css)" - }, - { - "label": "\uc774\ubca4\ud2b8 \ud578\ub4e4\ub7ec", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_frontend.md", - "source_location": "L66", - "_origin": "ast", - "id": "pages_b02_projregister_b02_frontend_\uc774\ubca4\ud2b8_\ud578\ub4e4\ub7ec", - "community": 13, - "norm_label": "\u110b\u1175\u1107\u1166\u11ab\u1110\u1173 \u1112\u1162\u11ab\u1103\u1173\u11af\u1105\u1165" - }, - { - "label": "\uc758\uc874\uc131", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_frontend.md", - "source_location": "L72", - "_origin": "ast", - "id": "pages_b02_projregister_b02_frontend_\uc758\uc874\uc131", - "community": 13, - "norm_label": "\u110b\u1174\u110c\u1169\u11ab\u1109\u1165\u11bc" - }, - { - "label": "\ucc38\uace0", - "file_type": "document", - "source_file": "pages/B02_ProjRegister/B02_frontend.md", - "source_location": "L80", - "_origin": "ast", - "id": "pages_b02_projregister_b02_frontend_\ucc38\uace0", - "community": 13, - "norm_label": "\u110e\u1161\u11b7\u1100\u1169" - }, - { - "label": "B03_api.md", - "file_type": "document", - "source_file": "pages/B03_FileInput/B03_api.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b03_fileinput_b03_api", - "community": 1, - "norm_label": "b03_api.md" - }, - { - "label": "B03_FileInput \u2014 API", - "file_type": "document", - "source_file": "pages/B03_FileInput/B03_api.md", - "source_location": "L10", - "_origin": "ast", - "id": "pages_b03_fileinput_b03_api_b03_fileinput_api", - "community": 1, - "norm_label": "b03_fileinput \u2014 api" - }, - { - "label": "\uc77c\ubc18 \uc5c5\ub85c\ub4dc", - "file_type": "document", - "source_file": "pages/B03_FileInput/B03_api.md", - "source_location": "L14", - "_origin": "ast", - "id": "pages_b03_fileinput_b03_api_\uc77c\ubc18_\uc5c5\ub85c\ub4dc", - "community": 1, - "norm_label": "\u110b\u1175\u11af\u1107\u1161\u11ab \u110b\u1165\u11b8\u1105\u1169\u1103\u1173" - }, - { - "label": "\uccad\ud06c \uc5c5\ub85c\ub4dc", - "file_type": "document", - "source_file": "pages/B03_FileInput/B03_api.md", - "source_location": "L19", - "_origin": "ast", - "id": "pages_b03_fileinput_b03_api_\uccad\ud06c_\uc5c5\ub85c\ub4dc", - "community": 1, - "norm_label": "\u110e\u1165\u11bc\u110f\u1173 \u110b\u1165\u11b8\u1105\u1169\u1103\u1173" - }, - { - "label": "workflow \uc870\ud68c", - "file_type": "document", - "source_file": "pages/B03_FileInput/B03_api.md", - "source_location": "L27", - "_origin": "ast", - "id": "pages_b03_fileinput_b03_api_workflow_\uc870\ud68c", - "community": 1, - "norm_label": "workflow \u110c\u1169\u1112\u116c" - }, - { - "label": "B03_backend.md", - "file_type": "document", - "source_file": "pages/B03_FileInput/B03_backend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b03_fileinput_b03_backend", - "community": 2, - "norm_label": "b03_backend.md" - }, - { - "label": "B03_FileInput \u2014 Backend", - "file_type": "document", - "source_file": "pages/B03_FileInput/B03_backend.md", - "source_location": "L10", - "_origin": "ast", - "id": "pages_b03_fileinput_b03_backend_b03_fileinput_backend", - "community": 2, - "norm_label": "b03_fileinput \u2014 backend" - }, - { - "label": "\uc785\ub825 \uac80\uc99d\u00b7\ud30c\uc77c \ucc98\ub9ac", - "file_type": "document", - "source_file": "pages/B03_FileInput/B03_backend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_b03_fileinput_b03_backend_\uc785\ub825_\uac80\uc99d_\ud30c\uc77c_\ucc98\ub9ac", - "community": 2, - "norm_label": "\u110b\u1175\u11b8\u1105\u1167\u11a8 \u1100\u1165\u11b7\u110c\u1173\u11bc\u00b7\u1111\u1161\u110b\u1175\u11af \u110e\u1165\u1105\u1175" - }, - { - "label": "\uba54\ud0c0\ub370\uc774\ud130 \ubd84\uc11d", - "file_type": "document", - "source_file": "pages/B03_FileInput/B03_backend.md", - "source_location": "L22", - "_origin": "ast", - "id": "pages_b03_fileinput_b03_backend_\uba54\ud0c0\ub370\uc774\ud130_\ubd84\uc11d", - "community": 2, - "norm_label": "\u1106\u1166\u1110\u1161\u1103\u1166\u110b\u1175\u1110\u1165 \u1107\u116e\u11ab\u1109\u1165\u11a8" - }, - { - "label": "\uc800\uc7a5\uc18c", - "file_type": "document", - "source_file": "pages/B03_FileInput/B03_backend.md", - "source_location": "L31", - "_origin": "ast", - "id": "pages_b03_fileinput_b03_backend_\uc800\uc7a5\uc18c", - "community": 2, - "norm_label": "\u110c\u1165\u110c\u1161\u11bc\u1109\u1169" - }, - { - "label": "workflow\u00b7\uc54c\ub9bc", - "file_type": "document", - "source_file": "pages/B03_FileInput/B03_backend.md", - "source_location": "L40", - "_origin": "ast", - "id": "pages_b03_fileinput_b03_backend_workflow_\uc54c\ub9bc", - "community": 2, - "norm_label": "workflow\u00b7\u110b\u1161\u11af\u1105\u1175\u11b7" - }, - { - "label": "B03_db.md", - "file_type": "document", - "source_file": "pages/B03_FileInput/B03_db.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b03_fileinput_b03_db", - "community": 44, - "norm_label": "b03_db.md" - }, - { - "label": "B03_FileInput \u2014 DB \uc0ac\uc6a9 \uad00\uacc4", - "file_type": "document", - "source_file": "pages/B03_FileInput/B03_db.md", - "source_location": "L10", - "_origin": "ast", - "id": "pages_b03_fileinput_b03_db_b03_fileinput_db_\uc0ac\uc6a9_\uad00\uacc4", - "community": 44, - "norm_label": "b03_fileinput \u2014 db \u1109\u1161\u110b\u116d\u11bc \u1100\u116a\u11ab\u1100\u1168" - }, - { - "label": "\ud30c\uc77c \uacbd\ub85c", - "file_type": "document", - "source_file": "pages/B03_FileInput/B03_db.md", - "source_location": "L22", - "_origin": "ast", - "id": "pages_b03_fileinput_b03_db_\ud30c\uc77c_\uacbd\ub85c", - "community": 44, - "norm_label": "\u1111\u1161\u110b\u1175\u11af \u1100\u1167\u11bc\u1105\u1169" - }, - { - "label": "B03_dependencies.md", - "file_type": "document", - "source_file": "pages/B03_FileInput/B03_dependencies.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b03_fileinput_b03_dependencies", - "community": 2, - "norm_label": "b03_dependencies.md" - }, - { - "label": "B03_FileInput \u2014 Dependencies", - "file_type": "document", - "source_file": "pages/B03_FileInput/B03_dependencies.md", - "source_location": "L10", - "_origin": "ast", - "id": "pages_b03_fileinput_b03_dependencies_b03_fileinput_dependencies", - "community": 2, - "norm_label": "b03_fileinput \u2014 dependencies" - }, - { - "label": "\uacf5\ud1b5 \ubaa8\ub4c8", - "file_type": "document", - "source_file": "pages/B03_FileInput/B03_dependencies.md", - "source_location": "L24", - "_origin": "ast", - "id": "pages_b03_fileinput_b03_dependencies_\uacf5\ud1b5_\ubaa8\ub4c8", - "community": 2, - "norm_label": "\u1100\u1169\u11bc\u1110\u1169\u11bc \u1106\u1169\u1103\u1172\u11af" - }, - { - "label": "B03_frontend.md", - "file_type": "document", - "source_file": "pages/B03_FileInput/B03_frontend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b03_fileinput_b03_frontend", - "community": 5, - "norm_label": "b03_frontend.md" - }, - { - "label": "B03_FileInput \u2014 Frontend", - "file_type": "document", - "source_file": "pages/B03_FileInput/B03_frontend.md", - "source_location": "L10", - "_origin": "ast", - "id": "pages_b03_fileinput_b03_frontend_b03_fileinput_frontend", - "community": 5, - "norm_label": "b03_fileinput \u2014 frontend" - }, - { - "label": "\ud398\uc774\uc9c0\u00b7\uc5c5\ub85c\ub4dc \ud750\ub984", - "file_type": "document", - "source_file": "pages/B03_FileInput/B03_frontend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_b03_fileinput_b03_frontend_\ud398\uc774\uc9c0_\uc5c5\ub85c\ub4dc_\ud750\ub984", - "community": 5, - "norm_label": "\u1111\u1166\u110b\u1175\u110c\u1175\u00b7\u110b\u1165\u11b8\u1105\u1169\u1103\u1173 \u1112\u1173\u1105\u1173\u11b7" - }, - { - "label": "API \ud074\ub77c\uc774\uc5b8\ud2b8", - "file_type": "document", - "source_file": "pages/B03_FileInput/B03_frontend.md", - "source_location": "L21", - "_origin": "ast", - "id": "pages_b03_fileinput_b03_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8", - "community": 5, - "norm_label": "api \u110f\u1173\u11af\u1105\u1161\u110b\u1175\u110b\u1165\u11ab\u1110\u1173" - }, - { - "label": "\ube0c\ub77c\uc6b0\uc800 \uc0c1\ud0dc\u00b7\uc624\ud504\ub77c\uc778 \ubcf4\uc870", - "file_type": "document", - "source_file": "pages/B03_FileInput/B03_frontend.md", - "source_location": "L31", - "_origin": "ast", - "id": "pages_b03_fileinput_b03_frontend_\ube0c\ub77c\uc6b0\uc800_\uc0c1\ud0dc_\uc624\ud504\ub77c\uc778_\ubcf4\uc870", - "community": 5, - "norm_label": "\u1107\u1173\u1105\u1161\u110b\u116e\u110c\u1165 \u1109\u1161\u11bc\u1110\u1162\u00b7\u110b\u1169\u1111\u1173\u1105\u1161\u110b\u1175\u11ab \u1107\u1169\u110c\u1169" - }, - { - "label": "\uae30\uc220\ubd80\ucc44", - "file_type": "document", - "source_file": "pages/B03_FileInput/B03_frontend.md", - "source_location": "L42", - "_origin": "ast", - "id": "pages_b03_fileinput_b03_frontend_\uae30\uc220\ubd80\ucc44", - "community": 5, - "norm_label": "\u1100\u1175\u1109\u116e\u11af\u1107\u116e\u110e\u1162" - }, - { - "label": "B04_api.md", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_api.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_api", - "community": 40, - "norm_label": "b04_api.md" - }, - { - "label": "B04_wf1_Surface \u2014 API", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_api.md", - "source_location": "L8", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_api_b04_wf1_surface_api", - "community": 40, - "norm_label": "b04_wf1_surface \u2014 api" - }, - { - "label": "\uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_api.md", - "source_location": "L15", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "community": 40, - "norm_label": "\u110b\u1166\u11ab\u1103\u1173\u1111\u1169\u110b\u1175\u11ab\u1110\u1173" - }, - { - "label": "\uc694\uccad/\uc751\ub2f5 \uc2a4\ud0a4\ub9c8 (Pydantic)", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_api.md", - "source_location": "L31", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_api_\uc694\uccad_\uc751\ub2f5_\uc2a4\ud0a4\ub9c8_pydantic", - "community": 40, - "norm_label": "\u110b\u116d\u110e\u1165\u11bc/\u110b\u1173\u11bc\u1103\u1161\u11b8 \u1109\u1173\u110f\u1175\u1106\u1161 (pydantic)" - }, - { - "label": "B04_backend.md", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_backend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_backend", - "community": 23, - "norm_label": "b04_backend.md" - }, - { - "label": "B04_wf1_Surface \u2014 Backend", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_backend.md", - "source_location": "L8", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_backend_b04_wf1_surface_backend", - "community": 23, - "norm_label": "b04_wf1_surface \u2014 backend" - }, - { - "label": "\ud30c\uc77c \uad6c\uc131 (\uc624\ucf00\uc2a4\ud2b8\ub808\uc774\ud130/\uc800\uc7a5\uc18c/\ub77c\uc6b0\ud130)", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_backend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_backend_\ud30c\uc77c_\uad6c\uc131_\uc624\ucf00\uc2a4\ud2b8\ub808\uc774\ud130_\uc800\uc7a5\uc18c_\ub77c\uc6b0\ud130", - "community": 23, - "norm_label": "\u1111\u1161\u110b\u1175\u11af \u1100\u116e\u1109\u1165\u11bc (\u110b\u1169\u110f\u1166\u1109\u1173\u1110\u1173\u1105\u1166\u110b\u1175\u1110\u1165/\u110c\u1165\u110c\u1161\u11bc\u1109\u1169/\u1105\u1161\u110b\u116e\u1110\u1165)" - }, - { - "label": "\uc5d4\uc9c4 \uc11c\ube0c\ubaa8\ub4c8", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_backend.md", - "source_location": "L21", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_backend_\uc5d4\uc9c4_\uc11c\ube0c\ubaa8\ub4c8", - "community": 23, - "norm_label": "\u110b\u1166\u11ab\u110c\u1175\u11ab \u1109\u1165\u1107\u1173\u1106\u1169\u1103\u1172\u11af" - }, - { - "label": "\uc8fc\uc694 \ud568\uc218 (Router)", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_backend.md", - "source_location": "L35", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_backend_\uc8fc\uc694_\ud568\uc218_router", - "community": 23, - "norm_label": "\u110c\u116e\u110b\u116d \u1112\u1161\u11b7\u1109\u116e (router)" - }, - { - "label": "\uc6cc\ud06c\ud50c\ub85c\uc6b0 \uc0c1\ud0dc \uc804\uc774", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_backend.md", - "source_location": "L44", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_backend_\uc6cc\ud06c\ud50c\ub85c\uc6b0_\uc0c1\ud0dc_\uc804\uc774", - "community": 23, - "norm_label": "\u110b\u116f\u110f\u1173\u1111\u1173\u11af\u1105\u1169\u110b\u116e \u1109\u1161\u11bc\u1110\u1162 \u110c\u1165\u11ab\u110b\u1175" - }, - { - "label": "\u26a0\ufe0f \ub808\uac70\uc2dc \ud3f4\ubc31 (416,420\uc904)", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_backend.md", - "source_location": "L53", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_backend_\ub808\uac70\uc2dc_\ud3f4\ubc31_416_420\uc904", - "community": 23, - "norm_label": "\u26a0\ufe0f \u1105\u1166\u1100\u1165\u1109\u1175 \u1111\u1169\u11af\u1107\u1162\u11a8 (416,420\u110c\u116e\u11af)" - }, - { - "label": "\ucc45\uc784", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_backend.md", - "source_location": "L62", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_backend_\ucc45\uc784", - "community": 23, - "norm_label": "\u110e\u1162\u11a8\u110b\u1175\u11b7" - }, - { - "label": "\uc758\uc874\uc131", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_backend.md", - "source_location": "L66", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_backend_\uc758\uc874\uc131", - "community": 23, - "norm_label": "\u110b\u1174\u110c\u1169\u11ab\u1109\u1165\u11bc" - }, - { - "label": "B04_db.md", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_db.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_db", - "community": 35, - "norm_label": "b04_db.md" - }, - { - "label": "B04_wf1_Surface \u2014 DB", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_db.md", - "source_location": "L8", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_db_b04_wf1_surface_db", - "community": 35, - "norm_label": "b04_wf1_surface \u2014 db" - }, - { - "label": "\uc4f0\ub294 \ud14c\uc774\ube14", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_db.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_db_\uc4f0\ub294_\ud14c\uc774\ube14", - "community": 35, - "norm_label": "\u110a\u1173\u1102\u1173\u11ab \u1110\u1166\u110b\u1175\u1107\u1173\u11af" - }, - { - "label": "Repository \ud568\uc218", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_db.md", - "source_location": "L23", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_db_repository_\ud568\uc218", - "community": 35, - "norm_label": "repository \u1112\u1161\u11b7\u1109\u116e" - }, - { - "label": "\ucc38\uace0", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_db.md", - "source_location": "L31", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_db_\ucc38\uace0", - "community": 35, - "norm_label": "\u110e\u1161\u11b7\u1100\u1169" - }, - { - "label": "B04_dependencies.md", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_dependencies.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_dependencies", - "community": 36, - "norm_label": "b04_dependencies.md" - }, - { - "label": "B04_wf1_Surface \u2014 Dependencies", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_dependencies.md", - "source_location": "L8", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_dependencies_b04_wf1_surface_dependencies", - "community": 36, - "norm_label": "b04_wf1_surface \u2014 dependencies" - }, - { - "label": "\ubc31\uc5d4\ub4dc (Python)", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_dependencies.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_dependencies_\ubc31\uc5d4\ub4dc_python", - "community": 36, - "norm_label": "\u1107\u1162\u11a8\u110b\u1166\u11ab\u1103\u1173 (python)" - }, - { - "label": "\ud504\ub860\ud2b8\uc5d4\ub4dc (TypeScript)", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_dependencies.md", - "source_location": "L24", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_dependencies_\ud504\ub860\ud2b8\uc5d4\ub4dc_typescript", - "community": 36, - "norm_label": "\u1111\u1173\u1105\u1169\u11ab\u1110\u1173\u110b\u1166\u11ab\u1103\u1173 (typescript)" - }, - { - "label": "\u26a0\ufe0f dependencies concept \uc815\uc815 \ud544\uc694", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_dependencies.md", - "source_location": "L30", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_dependencies_dependencies_concept_\uc815\uc815_\ud544\uc694", - "community": 36, - "norm_label": "\u26a0\ufe0f dependencies concept \u110c\u1165\u11bc\u110c\u1165\u11bc \u1111\u1175\u11af\u110b\u116d" - }, - { - "label": "B04_frontend.md", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_frontend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_frontend", - "community": 26, - "norm_label": "b04_frontend.md" - }, - { - "label": "B04_wf1_Surface \u2014 Frontend", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_frontend.md", - "source_location": "L8", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_frontend_b04_wf1_surface_frontend", - "community": 26, - "norm_label": "b04_wf1_surface \u2014 frontend" - }, - { - "label": "\ud30c\uc77c \uad6c\uc870", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_frontend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_frontend_\ud30c\uc77c_\uad6c\uc870", - "community": 26, - "norm_label": "\u1111\u1161\u110b\u1175\u11af \u1100\u116e\u110c\u1169" - }, - { - "label": "\u26a0\ufe0f \uacc4\ud68d\uc11c\uc640 \uc2e4 \ucf54\ub4dc \ubd88\uc77c\uce58 (3D \ubdf0\uc5b4)", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_frontend.md", - "source_location": "L22", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_frontend_\uacc4\ud68d\uc11c\uc640_\uc2e4_\ucf54\ub4dc_\ubd88\uc77c\uce58_3d_\ubdf0\uc5b4", - "community": 26, - "norm_label": "\u26a0\ufe0f \u1100\u1168\u1112\u116c\u11a8\u1109\u1165\u110b\u116a \u1109\u1175\u11af \u110f\u1169\u1103\u1173 \u1107\u116e\u11af\u110b\u1175\u11af\u110e\u1175 (3d \u1107\u1172\u110b\u1165)" - }, - { - "label": "\ucef4\ud3ec\ub10c\ud2b8 / \ud568\uc218", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_frontend.md", - "source_location": "L32", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", - "community": 26, - "norm_label": "\u110f\u1165\u11b7\u1111\u1169\u1102\u1165\u11ab\u1110\u1173 / \u1112\u1161\u11b7\u1109\u116e" - }, - { - "label": "API \ud074\ub77c\uc774\uc5b8\ud2b8 \ud568\uc218", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_frontend.md", - "source_location": "L40", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8_\ud568\uc218", - "community": 26, - "norm_label": "api \u110f\u1173\u11af\u1105\u1161\u110b\u1175\u110b\u1165\u11ab\u1110\u1173 \u1112\u1161\u11b7\u1109\u116e" - }, - { - "label": "\ucc98\ub9ac \ud750\ub984", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_frontend.md", - "source_location": "L53", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_frontend_\ucc98\ub9ac_\ud750\ub984", - "community": 26, - "norm_label": "\u110e\u1165\u1105\u1175 \u1112\u1173\u1105\u1173\u11b7" - }, - { - "label": "\uc758\uc874\uc131", - "file_type": "document", - "source_file": "pages/B04_wf1_Surface/B04_frontend.md", - "source_location": "L60", - "_origin": "ast", - "id": "pages_b04_wf1_surface_b04_frontend_\uc758\uc874\uc131", - "community": 26, - "norm_label": "\u110b\u1174\u110c\u1169\u11ab\u1109\u1165\u11bc" - }, - { - "label": "B05_api.md", - "file_type": "document", - "source_file": "pages/B05_wf2_Route/B05_api.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b05_wf2_route_b05_api", - "community": 1, - "norm_label": "b05_api.md" - }, - { - "label": "B05_wf2_Route \u2014 API", - "file_type": "document", - "source_file": "pages/B05_wf2_Route/B05_api.md", - "source_location": "L10", - "_origin": "ast", - "id": "pages_b05_wf2_route_b05_api_b05_wf2_route_api", - "community": 1, - "norm_label": "b05_wf2_route \u2014 api" - }, - { - "label": "solve \ucc98\ub9ac \uacb0\uacfc", - "file_type": "document", - "source_file": "pages/B05_wf2_Route/B05_api.md", - "source_location": "L19", - "_origin": "ast", - "id": "pages_b05_wf2_route_b05_api_solve_\ucc98\ub9ac_\uacb0\uacfc", - "community": 1, - "norm_label": "solve \u110e\u1165\u1105\u1175 \u1100\u1167\u11af\u1100\u116a" - }, - { - "label": "B05_backend.md", - "file_type": "document", - "source_file": "pages/B05_wf2_Route/B05_backend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b05_wf2_route_b05_backend", - "community": 29, - "norm_label": "b05_backend.md" - }, - { - "label": "B05_wf2_Route \u2014 Backend", - "file_type": "document", - "source_file": "pages/B05_wf2_Route/B05_backend.md", - "source_location": "L10", - "_origin": "ast", - "id": "pages_b05_wf2_route_b05_backend_b05_wf2_route_backend", - "community": 29, - "norm_label": "b05_wf2_route \u2014 backend" - }, - { - "label": "\uc694\uccad\u00b7\uc751\ub2f5 \ubaa8\ub378", - "file_type": "document", - "source_file": "pages/B05_wf2_Route/B05_backend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_b05_wf2_route_b05_backend_\uc694\uccad_\uc751\ub2f5_\ubaa8\ub378", - "community": 29, - "norm_label": "\u110b\u116d\u110e\u1165\u11bc\u00b7\u110b\u1173\u11bc\u1103\u1161\u11b8 \u1106\u1169\u1103\u1166\u11af" - }, - { - "label": "\uacbd\ub85c \uacc4\uc0b0 \uc5d4\uc9c4", - "file_type": "document", - "source_file": "pages/B05_wf2_Route/B05_backend.md", - "source_location": "L20", - "_origin": "ast", - "id": "pages_b05_wf2_route_b05_backend_\uacbd\ub85c_\uacc4\uc0b0_\uc5d4\uc9c4", - "community": 29, - "norm_label": "\u1100\u1167\u11bc\u1105\u1169 \u1100\u1168\u1109\u1161\u11ab \u110b\u1166\u11ab\u110c\u1175\u11ab" - }, - { - "label": "\uae30\ud558\u00b7\uacb0\uacfc \ubcc0\ud658", - "file_type": "document", - "source_file": "pages/B05_wf2_Route/B05_backend.md", - "source_location": "L31", - "_origin": "ast", - "id": "pages_b05_wf2_route_b05_backend_\uae30\ud558_\uacb0\uacfc_\ubcc0\ud658", - "community": 29, - "norm_label": "\u1100\u1175\u1112\u1161\u00b7\u1100\u1167\u11af\u1100\u116a \u1107\u1167\u11ab\u1112\u116a\u11ab" - }, - { - "label": "\ub77c\uc6b0\ud130\u00b7workflow", - "file_type": "document", - "source_file": "pages/B05_wf2_Route/B05_backend.md", - "source_location": "L39", - "_origin": "ast", - "id": "pages_b05_wf2_route_b05_backend_\ub77c\uc6b0\ud130_workflow", - "community": 29, - "norm_label": "\u1105\u1161\u110b\u116e\u1110\u1165\u00b7workflow" - }, - { - "label": "\uae30\uc220\ubd80\ucc44", - "file_type": "document", - "source_file": "pages/B05_wf2_Route/B05_backend.md", - "source_location": "L46", - "_origin": "ast", - "id": "pages_b05_wf2_route_b05_backend_\uae30\uc220\ubd80\ucc44", - "community": 29, - "norm_label": "\u1100\u1175\u1109\u116e\u11af\u1107\u116e\u110e\u1162" - }, - { - "label": "B05_db.md", - "file_type": "document", - "source_file": "pages/B05_wf2_Route/B05_db.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b05_wf2_route_b05_db", - "community": 41, - "norm_label": "b05_db.md" - }, - { - "label": "B05_wf2_Route \u2014 DB \uc0ac\uc6a9 \uad00\uacc4", - "file_type": "document", - "source_file": "pages/B05_wf2_Route/B05_db.md", - "source_location": "L10", - "_origin": "ast", - "id": "pages_b05_wf2_route_b05_db_b05_wf2_route_db_\uc0ac\uc6a9_\uad00\uacc4", - "community": 41, - "norm_label": "b05_wf2_route \u2014 db \u1109\u1161\u110b\u116d\u11bc \u1100\u116a\u11ab\u1100\u1168" - }, - { - "label": "Repository \ud568\uc218", - "file_type": "document", - "source_file": "pages/B05_wf2_Route/B05_db.md", - "source_location": "L20", - "_origin": "ast", - "id": "pages_b05_wf2_route_b05_db_repository_\ud568\uc218", - "community": 41, - "norm_label": "repository \u1112\u1161\u11b7\u1109\u116e" - }, - { - "label": "\uc800\uc7a5 \uacbd\ub85c", - "file_type": "document", - "source_file": "pages/B05_wf2_Route/B05_db.md", - "source_location": "L30", - "_origin": "ast", - "id": "pages_b05_wf2_route_b05_db_\uc800\uc7a5_\uacbd\ub85c", - "community": 41, - "norm_label": "\u110c\u1165\u110c\u1161\u11bc \u1100\u1167\u11bc\u1105\u1169" - }, - { - "label": "B05_dependencies.md", - "file_type": "document", - "source_file": "pages/B05_wf2_Route/B05_dependencies.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b05_wf2_route_b05_dependencies", - "community": 2, - "norm_label": "b05_dependencies.md" - }, - { - "label": "B05_wf2_Route \u2014 Dependencies", - "file_type": "document", - "source_file": "pages/B05_wf2_Route/B05_dependencies.md", - "source_location": "L10", - "_origin": "ast", - "id": "pages_b05_wf2_route_b05_dependencies_b05_wf2_route_dependencies", - "community": 2, - "norm_label": "b05_wf2_route \u2014 dependencies" - }, - { - "label": "\ud398\uc774\uc9c0 \ud30c\uc77c\ubcc4 \uc5f0\uacb0", - "file_type": "document", - "source_file": "pages/B05_wf2_Route/B05_dependencies.md", - "source_location": "L23", - "_origin": "ast", - "id": "pages_b05_wf2_route_b05_dependencies_\ud398\uc774\uc9c0_\ud30c\uc77c\ubcc4_\uc5f0\uacb0", - "community": 2, - "norm_label": "\u1111\u1166\u110b\u1175\u110c\u1175 \u1111\u1161\u110b\u1175\u11af\u1107\u1167\u11af \u110b\u1167\u11ab\u1100\u1167\u11af" - }, - { - "label": "B05_frontend.md", - "file_type": "document", - "source_file": "pages/B05_wf2_Route/B05_frontend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b05_wf2_route_b05_frontend", - "community": 33, - "norm_label": "b05_frontend.md" - }, - { - "label": "B05_wf2_Route \u2014 Frontend", - "file_type": "document", - "source_file": "pages/B05_wf2_Route/B05_frontend.md", - "source_location": "L10", - "_origin": "ast", - "id": "pages_b05_wf2_route_b05_frontend_b05_wf2_route_frontend", - "community": 33, - "norm_label": "b05_wf2_route \u2014 frontend" - }, - { - "label": "\ud654\uba74\uacfc \uc0c1\ud638\uc791\uc6a9", - "file_type": "document", - "source_file": "pages/B05_wf2_Route/B05_frontend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_b05_wf2_route_b05_frontend_\ud654\uba74\uacfc_\uc0c1\ud638\uc791\uc6a9", - "community": 33, - "norm_label": "\u1112\u116a\u1106\u1167\u11ab\u1100\u116a \u1109\u1161\u11bc\u1112\u1169\u110c\u1161\u11a8\u110b\u116d\u11bc" - }, - { - "label": "API \ud074\ub77c\uc774\uc5b8\ud2b8", - "file_type": "document", - "source_file": "pages/B05_wf2_Route/B05_frontend.md", - "source_location": "L21", - "_origin": "ast", - "id": "pages_b05_wf2_route_b05_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8", - "community": 33, - "norm_label": "api \u110f\u1173\u11af\u1105\u1161\u110b\u1175\u110b\u1165\u11ab\u1110\u1173" - }, - { - "label": "\uc785\ub825 \uadf8\ub8f9", - "file_type": "document", - "source_file": "pages/B05_wf2_Route/B05_frontend.md", - "source_location": "L29", - "_origin": "ast", - "id": "pages_b05_wf2_route_b05_frontend_\uc785\ub825_\uadf8\ub8f9", - "community": 33, - "norm_label": "\u110b\u1175\u11b8\u1105\u1167\u11a8 \u1100\u1173\u1105\u116e\u11b8" - }, - { - "label": "\uae30\uc220\ubd80\ucc44", - "file_type": "document", - "source_file": "pages/B05_wf2_Route/B05_frontend.md", - "source_location": "L40", - "_origin": "ast", - "id": "pages_b05_wf2_route_b05_frontend_\uae30\uc220\ubd80\ucc44", - "community": 33, - "norm_label": "\u1100\u1175\u1109\u116e\u11af\u1107\u116e\u110e\u1162" - }, - { - "label": "B06_api.md", - "file_type": "document", - "source_file": "pages/B06_wf3_ProfileCross/B06_api.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b06_wf3_profilecross_b06_api", - "community": 1, - "norm_label": "b06_api.md" - }, - { - "label": "B06_wf3_ProfileCross \u2014 API", - "file_type": "document", - "source_file": "pages/B06_wf3_ProfileCross/B06_api.md", - "source_location": "L10", - "_origin": "ast", - "id": "pages_b06_wf3_profilecross_b06_api_b06_wf3_profilecross_api", - "community": 1, - "norm_label": "b06_wf3_profilecross \u2014 api" - }, - { - "label": "\uc0dd\uc131 \uc751\ub2f5", - "file_type": "document", - "source_file": "pages/B06_wf3_ProfileCross/B06_api.md", - "source_location": "L20", - "_origin": "ast", - "id": "pages_b06_wf3_profilecross_b06_api_\uc0dd\uc131_\uc751\ub2f5", - "community": 1, - "norm_label": "\u1109\u1162\u11bc\u1109\u1165\u11bc \u110b\u1173\u11bc\u1103\u1161\u11b8" - }, - { - "label": "B06_backend.md", - "file_type": "document", - "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b06_wf3_profilecross_b06_backend", - "community": 2, - "norm_label": "b06_backend.md" - }, - { - "label": "B06_wf3_ProfileCross \u2014 Backend", - "file_type": "document", - "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", - "source_location": "L10", - "_origin": "ast", - "id": "pages_b06_wf3_profilecross_b06_backend_b06_wf3_profilecross_backend", - "community": 2, - "norm_label": "b06_wf3_profilecross \u2014 backend" - }, - { - "label": "\uc694\uccad\u00b7\uc751\ub2f5 \ubaa8\ub378", - "file_type": "document", - "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_b06_wf3_profilecross_b06_backend_\uc694\uccad_\uc751\ub2f5_\ubaa8\ub378", - "community": 2, - "norm_label": "\u110b\u116d\u110e\u1165\u11bc\u00b7\u110b\u1173\u11bc\u1103\u1161\u11b8 \u1106\u1169\u1103\u1166\u11af" - }, - { - "label": "\uc0dd\uc131 \uc5d4\uc9c4", - "file_type": "document", - "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", - "source_location": "L20", - "_origin": "ast", - "id": "pages_b06_wf3_profilecross_b06_backend_\uc0dd\uc131_\uc5d4\uc9c4", - "community": 2, - "norm_label": "\u1109\u1162\u11bc\u1109\u1165\u11bc \u110b\u1166\u11ab\u110c\u1175\u11ab" - }, - { - "label": "\ub77c\uc6b0\ud130\u00b7workflow", - "file_type": "document", - "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", - "source_location": "L31", - "_origin": "ast", - "id": "pages_b06_wf3_profilecross_b06_backend_\ub77c\uc6b0\ud130_workflow", - "community": 2, - "norm_label": "\u1105\u1161\u110b\u116e\u1110\u1165\u00b7workflow" - }, - { - "label": "\uc7ac\uc2e4\ud589", - "file_type": "document", - "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", - "source_location": "L39", - "_origin": "ast", - "id": "pages_b06_wf3_profilecross_b06_backend_\uc7ac\uc2e4\ud589", - "community": 2, - "norm_label": "\u110c\u1162\u1109\u1175\u11af\u1112\u1162\u11bc" - }, - { - "label": "B06_db.md", - "file_type": "document", - "source_file": "pages/B06_wf3_ProfileCross/B06_db.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b06_wf3_profilecross_b06_db", - "community": 42, - "norm_label": "b06_db.md" - }, - { - "label": "B06_wf3_ProfileCross \u2014 DB \uc0ac\uc6a9 \uad00\uacc4", - "file_type": "document", - "source_file": "pages/B06_wf3_ProfileCross/B06_db.md", - "source_location": "L10", - "_origin": "ast", - "id": "pages_b06_wf3_profilecross_b06_db_b06_wf3_profilecross_db_\uc0ac\uc6a9_\uad00\uacc4", - "community": 42, - "norm_label": "b06_wf3_profilecross \u2014 db \u1109\u1161\u110b\u116d\u11bc \u1100\u116a\u11ab\u1100\u1168" - }, - { - "label": "Repository \ud568\uc218", - "file_type": "document", - "source_file": "pages/B06_wf3_ProfileCross/B06_db.md", - "source_location": "L19", - "_origin": "ast", - "id": "pages_b06_wf3_profilecross_b06_db_repository_\ud568\uc218", - "community": 42, - "norm_label": "repository \u1112\u1161\u11b7\u1109\u116e" - }, - { - "label": "\ud30c\uc77c \uacbd\ub85c", - "file_type": "document", - "source_file": "pages/B06_wf3_ProfileCross/B06_db.md", - "source_location": "L29", - "_origin": "ast", - "id": "pages_b06_wf3_profilecross_b06_db_\ud30c\uc77c_\uacbd\ub85c", - "community": 42, - "norm_label": "\u1111\u1161\u110b\u1175\u11af \u1100\u1167\u11bc\u1105\u1169" - }, - { - "label": "B06_dependencies.md", - "file_type": "document", - "source_file": "pages/B06_wf3_ProfileCross/B06_dependencies.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b06_wf3_profilecross_b06_dependencies", - "community": 2, - "norm_label": "b06_dependencies.md" - }, - { - "label": "B06_wf3_ProfileCross \u2014 Dependencies", - "file_type": "document", - "source_file": "pages/B06_wf3_ProfileCross/B06_dependencies.md", - "source_location": "L10", - "_origin": "ast", - "id": "pages_b06_wf3_profilecross_b06_dependencies_b06_wf3_profilecross_dependencies", - "community": 2, - "norm_label": "b06_wf3_profilecross \u2014 dependencies" - }, - { - "label": "\uacf5\ud1b5 \ubaa8\ub4c8", - "file_type": "document", - "source_file": "pages/B06_wf3_ProfileCross/B06_dependencies.md", - "source_location": "L22", - "_origin": "ast", - "id": "pages_b06_wf3_profilecross_b06_dependencies_\uacf5\ud1b5_\ubaa8\ub4c8", - "community": 2, - "norm_label": "\u1100\u1169\u11bc\u1110\u1169\u11bc \u1106\u1169\u1103\u1172\u11af" - }, - { - "label": "B06_frontend.md", - "file_type": "document", - "source_file": "pages/B06_wf3_ProfileCross/B06_frontend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b06_wf3_profilecross_b06_frontend", - "community": 37, - "norm_label": "b06_frontend.md" - }, - { - "label": "B06_wf3_ProfileCross \u2014 Frontend", - "file_type": "document", - "source_file": "pages/B06_wf3_ProfileCross/B06_frontend.md", - "source_location": "L10", - "_origin": "ast", - "id": "pages_b06_wf3_profilecross_b06_frontend_b06_wf3_profilecross_frontend", - "community": 37, - "norm_label": "b06_wf3_profilecross \u2014 frontend" - }, - { - "label": "\ud654\uba74\u00b7workflow", - "file_type": "document", - "source_file": "pages/B06_wf3_ProfileCross/B06_frontend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_b06_wf3_profilecross_b06_frontend_\ud654\uba74_workflow", - "community": 37, - "norm_label": "\u1112\u116a\u1106\u1167\u11ab\u00b7workflow" - }, - { - "label": "API \ud074\ub77c\uc774\uc5b8\ud2b8", - "file_type": "document", - "source_file": "pages/B06_wf3_ProfileCross/B06_frontend.md", - "source_location": "L21", - "_origin": "ast", - "id": "pages_b06_wf3_profilecross_b06_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8", - "community": 37, - "norm_label": "api \u110f\u1173\u11af\u1105\u1161\u110b\u1175\u110b\u1165\u11ab\u1110\u1173" - }, - { - "label": "\uc785\ub825 \uc635\uc158", - "file_type": "document", - "source_file": "pages/B06_wf3_ProfileCross/B06_frontend.md", - "source_location": "L30", - "_origin": "ast", - "id": "pages_b06_wf3_profilecross_b06_frontend_\uc785\ub825_\uc635\uc158", - "community": 37, - "norm_label": "\u110b\u1175\u11b8\u1105\u1167\u11a8 \u110b\u1169\u11b8\u1109\u1167\u11ab" - }, - { - "label": "B07_frontend.md", - "file_type": "document", - "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b07_wf4_designdetail_b07_frontend", - "community": 27, - "norm_label": "b07_frontend.md" - }, - { - "label": "B07_wf4_DesignDetail \u2014 Frontend", - "file_type": "document", - "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", - "source_location": "L8", - "_origin": "ast", - "id": "pages_b07_wf4_designdetail_b07_frontend_b07_wf4_designdetail_frontend", - "community": 27, - "norm_label": "b07_wf4_designdetail \u2014 frontend" - }, - { - "label": "\ud30c\uc77c \uad6c\uc870", - "file_type": "document", - "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_b07_wf4_designdetail_b07_frontend_\ud30c\uc77c_\uad6c\uc870", - "community": 27, - "norm_label": "\u1111\u1161\u110b\u1175\u11af \u1100\u116e\u110c\u1169" - }, - { - "label": "\ucef4\ud3ec\ub10c\ud2b8 / \ud568\uc218", - "file_type": "document", - "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", - "source_location": "L18", - "_origin": "ast", - "id": "pages_b07_wf4_designdetail_b07_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", - "community": 27, - "norm_label": "\u110f\u1165\u11b7\u1111\u1169\u1102\u1165\u11ab\u1110\u1173 / \u1112\u1161\u11b7\u1109\u116e" - }, - { - "label": "\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "file_type": "document", - "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", - "source_location": "L24", - "_origin": "ast", - "id": "pages_b07_wf4_designdetail_b07_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "community": 27, - "norm_label": "\u1105\u1169\u110f\u1165\u11af\u1105\u1161\u110b\u1175\u110c\u1166\u110b\u1175\u1109\u1167\u11ab" - }, - { - "label": "\uc758\uc874\uc131", - "file_type": "document", - "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", - "source_location": "L30", - "_origin": "ast", - "id": "pages_b07_wf4_designdetail_b07_frontend_\uc758\uc874\uc131", - "community": 27, - "norm_label": "\u110b\u1174\u110c\u1169\u11ab\u1109\u1165\u11bc" - }, - { - "label": "\ubc31\uc5d4\ub4dc/DB \u2014 \ubbf8\ucc29\uc218 (\uacc4\ud68d\uc801 \ubc94\uc704 \uc81c\uc678)", - "file_type": "document", - "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", - "source_location": "L35", - "_origin": "ast", - "id": "pages_b07_wf4_designdetail_b07_frontend_\ubc31\uc5d4\ub4dc_db_\ubbf8\ucc29\uc218_\uacc4\ud68d\uc801_\ubc94\uc704_\uc81c\uc678", - "community": 27, - "norm_label": "\u1107\u1162\u11a8\u110b\u1166\u11ab\u1103\u1173/db \u2014 \u1106\u1175\u110e\u1161\u11a8\u1109\u116e (\u1100\u1168\u1112\u116c\u11a8\u110c\u1165\u11a8 \u1107\u1165\u11b7\u110b\u1171 \u110c\u1166\u110b\u116c)" - }, - { - "label": "\ucc38\uace0", - "file_type": "document", - "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", - "source_location": "L42", - "_origin": "ast", - "id": "pages_b07_wf4_designdetail_b07_frontend_\ucc38\uace0", - "community": 27, - "norm_label": "\u110e\u1161\u11b7\u1100\u1169" - }, - { - "label": "B08_db.md", - "file_type": "document", - "source_file": "pages/B08_wf5_Quantity/B08_db.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b08_wf5_quantity_b08_db", - "community": 45, - "norm_label": "b08_db.md" - }, - { - "label": "B08_wf5_Quantity \u2014 DB", - "file_type": "document", - "source_file": "pages/B08_wf5_Quantity/B08_db.md", - "source_location": "L10", - "_origin": "ast", - "id": "pages_b08_wf5_quantity_b08_db_b08_wf5_quantity_db", - "community": 45, - "norm_label": "b08_wf5_quantity \u2014 db" - }, - { - "label": "\uad6c\ud604 \ub300\uae30 \ud56d\ubaa9", - "file_type": "document", - "source_file": "pages/B08_wf5_Quantity/B08_db.md", - "source_location": "L19", - "_origin": "ast", - "id": "pages_b08_wf5_quantity_b08_db_\uad6c\ud604_\ub300\uae30_\ud56d\ubaa9", - "community": 45, - "norm_label": "\u1100\u116e\u1112\u1167\u11ab \u1103\u1162\u1100\u1175 \u1112\u1161\u11bc\u1106\u1169\u11a8" - }, - { - "label": "B08_frontend.md", - "file_type": "document", - "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b08_wf5_quantity_b08_frontend", - "community": 5, - "norm_label": "b08_frontend.md" - }, - { - "label": "B08_wf5_Quantity \u2014 Frontend", - "file_type": "document", - "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", - "source_location": "L10", - "_origin": "ast", - "id": "pages_b08_wf5_quantity_b08_frontend_b08_wf5_quantity_frontend", - "community": 5, - "norm_label": "b08_wf5_quantity \u2014 frontend" - }, - { - "label": "\ud604\uc7ac \uad6c\ud604", - "file_type": "document", - "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_b08_wf5_quantity_b08_frontend_\ud604\uc7ac_\uad6c\ud604", - "community": 5, - "norm_label": "\u1112\u1167\u11ab\u110c\u1162 \u1100\u116e\u1112\u1167\u11ab" - }, - { - "label": "\ud654\uba74 \uc0c1\ud0dc", - "file_type": "document", - "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", - "source_location": "L20", - "_origin": "ast", - "id": "pages_b08_wf5_quantity_b08_frontend_\ud654\uba74_\uc0c1\ud0dc", - "community": 5, - "norm_label": "\u1112\u116a\u1106\u1167\u11ab \u1109\u1161\u11bc\u1110\u1162" - }, - { - "label": "\uacc4\ud68d \ucc45\uc784", - "file_type": "document", - "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", - "source_location": "L30", - "_origin": "ast", - "id": "pages_b08_wf5_quantity_b08_frontend_\uacc4\ud68d_\ucc45\uc784", - "community": 5, - "norm_label": "\u1100\u1168\u1112\u116c\u11a8 \u110e\u1162\u11a8\u110b\u1175\u11b7" - }, - { - "label": "\uae30\uc220\ubd80\ucc44", - "file_type": "document", - "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", - "source_location": "L39", - "_origin": "ast", - "id": "pages_b08_wf5_quantity_b08_frontend_\uae30\uc220\ubd80\ucc44", - "community": 5, - "norm_label": "\u1100\u1175\u1109\u116e\u11af\u1107\u116e\u110e\u1162" - }, - { - "label": "B09_frontend.md", - "file_type": "document", - "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", - "source_location": "L1", - "_origin": "ast", - "id": "pages_b09_wf6_estimation_b09_frontend", - "community": 28, - "norm_label": "b09_frontend.md" - }, - { - "label": "B09_wf6_Estimation \u2014 Frontend", - "file_type": "document", - "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", - "source_location": "L8", - "_origin": "ast", - "id": "pages_b09_wf6_estimation_b09_frontend_b09_wf6_estimation_frontend", - "community": 28, - "norm_label": "b09_wf6_estimation \u2014 frontend" - }, - { - "label": "\ud30c\uc77c \uad6c\uc870", - "file_type": "document", - "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", - "source_location": "L12", - "_origin": "ast", - "id": "pages_b09_wf6_estimation_b09_frontend_\ud30c\uc77c_\uad6c\uc870", - "community": 28, - "norm_label": "\u1111\u1161\u110b\u1175\u11af \u1100\u116e\u110c\u1169" - }, - { - "label": "\ucef4\ud3ec\ub10c\ud2b8 / \ud568\uc218", - "file_type": "document", - "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", - "source_location": "L18", - "_origin": "ast", - "id": "pages_b09_wf6_estimation_b09_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", - "community": 28, - "norm_label": "\u110f\u1165\u11b7\u1111\u1169\u1102\u1165\u11ab\u1110\u1173 / \u1112\u1161\u11b7\u1109\u116e" - }, - { - "label": "\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "file_type": "document", - "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", - "source_location": "L24", - "_origin": "ast", - "id": "pages_b09_wf6_estimation_b09_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "community": 28, - "norm_label": "\u1105\u1169\u110f\u1165\u11af\u1105\u1161\u110b\u1175\u110c\u1166\u110b\u1175\u1109\u1167\u11ab" - }, - { - "label": "\uc758\uc874\uc131", - "file_type": "document", - "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", - "source_location": "L30", - "_origin": "ast", - "id": "pages_b09_wf6_estimation_b09_frontend_\uc758\uc874\uc131", - "community": 28, - "norm_label": "\u110b\u1174\u110c\u1169\u11ab\u1109\u1165\u11bc" - }, - { - "label": "\ubc31\uc5d4\ub4dc/DB \u2014 \ubbf8\ucc29\uc218", - "file_type": "document", - "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", - "source_location": "L35", - "_origin": "ast", - "id": "pages_b09_wf6_estimation_b09_frontend_\ubc31\uc5d4\ub4dc_db_\ubbf8\ucc29\uc218", - "community": 28, - "norm_label": "\u1107\u1162\u11a8\u110b\u1166\u11ab\u1103\u1173/db \u2014 \u1106\u1175\u110e\u1161\u11a8\u1109\u116e" - }, - { - "label": "\ucc38\uace0", - "file_type": "document", - "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", - "source_location": "L42", - "_origin": "ast", - "id": "pages_b09_wf6_estimation_b09_frontend_\ucc38\uace0", - "community": 28, - "norm_label": "\u110e\u1161\u11b7\u1100\u1169" - } - ], - "links": [ - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "AGENTS.md", - "source_location": "L1", - "weight": 1.0, - "source": "agents", - "target": "agents_wiki_\ud3f4\ub354_\uaddc\uce59", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "AGENTS.md", - "source_location": "L5", - "weight": 1.0, - "source": "agents_wiki_\ud3f4\ub354_\uaddc\uce59", - "target": "agents_\uad6c\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "AGENTS.md", - "source_location": "L11", - "weight": 1.0, - "source": "agents_wiki_\ud3f4\ub354_\uaddc\uce59", - "target": "agents_\uc791\uc131_\uaddc\uce59", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "CLAUDE.md", - "source_location": "L1", - "weight": 1.0, - "source": "claude", - "target": "claude_wiki_\ud3f4\ub354_\uaddc\uce59", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "CLAUDE.md", - "source_location": "L5", - "weight": 1.0, - "source": "claude_wiki_\ud3f4\ub354_\uaddc\uce59", - "target": "claude_\uad6c\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "CLAUDE.md", - "source_location": "L11", - "weight": 1.0, - "source": "claude_wiki_\ud3f4\ub354_\uaddc\uce59", - "target": "claude_\uc791\uc131_\uaddc\uce59", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/a00_app_shell_framework.md", - "source_location": "L8", - "weight": 1.0, - "source": "concepts_a00_app_shell_framework", - "target": "concepts_a00_app_shell_framework_a00_common_app_shell_framework", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "concepts/a00_app_shell_framework.md", - "source_location": "L86", - "weight": 1.0, - "source": "concepts_a00_app_shell_framework", - "target": "concepts_a00_app_shell_framework_scaffold", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "concepts/ui_templates.md", - "source_location": "L27", - "weight": 1.0, - "source": "concepts_ui_templates", - "target": "concepts_a00_app_shell_framework", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", - "source_location": "L37", - "weight": 1.0, - "source": "pages_b08_wf5_quantity_b08_frontend", - "target": "concepts_a00_app_shell_framework", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/a00_app_shell_framework.md", - "source_location": "L20", - "weight": 1.0, - "source": "concepts_a00_app_shell_framework_a00_common_app_shell_framework", - "target": "concepts_a00_app_shell_framework_app_shell_\uad6c\uc131\uc694\uc18c", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/a00_app_shell_framework.md", - "source_location": "L52", - "weight": 1.0, - "source": "concepts_a00_app_shell_framework_a00_common_app_shell_framework", - "target": "concepts_a00_app_shell_framework_router_\ub77c\uc6b0\ud305_\ud14c\uc774\ube14", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/a00_app_shell_framework.md", - "source_location": "L84", - "weight": 1.0, - "source": "concepts_a00_app_shell_framework_a00_common_app_shell_framework", - "target": "concepts_a00_app_shell_framework_\uc138\ubd80_\uc2a4\uce90\ud3f4\ub4dc_css_\uc885\uc18d\uc131", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/a00_app_shell_framework.md", - "source_location": "L77", - "weight": 1.0, - "source": "concepts_a00_app_shell_framework_a00_common_app_shell_framework", - "target": "concepts_a00_app_shell_framework_\uc778\uc99d_\uac00\ub4dc", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/a00_app_shell_framework.md", - "source_location": "L12", - "weight": 1.0, - "source": "concepts_a00_app_shell_framework_a00_common_app_shell_framework", - "target": "concepts_a00_app_shell_framework_\ud30c\uc77c_\uad6c\uc131", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/a00_app_shell_framework.md", - "source_location": "L44", - "weight": 1.0, - "source": "concepts_a00_app_shell_framework_app_shell_\uad6c\uc131\uc694\uc18c", - "target": "concepts_a00_app_shell_framework_\ub85c\uadf8\uc544\uc6c3_onapp_logout_click", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/a00_app_shell_framework.md", - "source_location": "L40", - "weight": 1.0, - "source": "concepts_a00_app_shell_framework_app_shell_\uad6c\uc131\uc694\uc18c", - "target": "concepts_a00_app_shell_framework_\uc778\uc99d_\ubc84\ud2bc_\ube44\ub3d9\uae30_fillauthactions", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/a00_app_shell_framework.md", - "source_location": "L22", - "weight": 1.0, - "source": "concepts_a00_app_shell_framework_app_shell_\uad6c\uc131\uc694\uc18c", - "target": "concepts_a00_app_shell_framework_\ud14c\ub9c8_\uc5b8\uc5b4_\uad00\ub9ac", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/a00_app_shell_framework.md", - "source_location": "L48", - "weight": 1.0, - "source": "concepts_a00_app_shell_framework_app_shell_\uad6c\uc131\uc694\uc18c", - "target": "concepts_a00_app_shell_framework_\ud478\ud130", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/a00_app_shell_framework.md", - "source_location": "L27", - "weight": 1.0, - "source": "concepts_a00_app_shell_framework_app_shell_\uad6c\uc131\uc694\uc18c", - "target": "concepts_a00_app_shell_framework_\ud5e4\ub354_\uad6c\uc131_64px_\ub192\uc774_sticky", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/a00_app_shell_framework_scaffold.md", - "source_location": "L9", - "weight": 1.0, - "source": "concepts_a00_app_shell_framework_scaffold", - "target": "concepts_a00_app_shell_framework_scaffold_a00_common_\uc2a4\uce90\ud3f4\ub4dc_css_\uc885\uc18d\uc131", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/a00_app_shell_framework_scaffold.md", - "source_location": "L11", - "weight": 1.0, - "source": "concepts_a00_app_shell_framework_scaffold_a00_common_\uc2a4\uce90\ud3f4\ub4dc_css_\uc885\uc18d\uc131", - "target": "concepts_a00_app_shell_framework_scaffold_b_page_scaffold", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/a00_app_shell_framework_scaffold.md", - "source_location": "L18", - "weight": 1.0, - "source": "concepts_a00_app_shell_framework_scaffold_a00_common_\uc2a4\uce90\ud3f4\ub4dc_css_\uc885\uc18d\uc131", - "target": "concepts_a00_app_shell_framework_scaffold_css_\uc778\uc81d\uc158", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/a00_app_shell_framework_scaffold.md", - "source_location": "L33", - "weight": 1.0, - "source": "concepts_a00_app_shell_framework_scaffold_a00_common_\uc2a4\uce90\ud3f4\ub4dc_css_\uc885\uc18d\uc131", - "target": "concepts_a00_app_shell_framework_scaffold_\uc0ac\uc6a9\ucc98", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/a00_app_shell_framework_scaffold.md", - "source_location": "L25", - "weight": 1.0, - "source": "concepts_a00_app_shell_framework_scaffold_a00_common_\uc2a4\uce90\ud3f4\ub4dc_css_\uc885\uc18d\uc131", - "target": "concepts_a00_app_shell_framework_scaffold_\uc885\uc18d\uc131", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/api_common.md", - "source_location": "L9", - "weight": 1.0, - "source": "concepts_api_common", - "target": "concepts_api_common_api_\uacf5\ud1b5_\uc5ec\ub7ec_\ud398\uc774\uc9c0\uac00_\uacf5\uc720\ud558\ub294_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "concepts/api_common.md", - "source_location": "L15", - "weight": 1.0, - "source": "concepts_api_common", - "target": "concepts_schema_common", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "concepts/api_common.md", - "source_location": "L23", - "weight": 1.0, - "source": "concepts_api_common", - "target": "concepts_workflow_state", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_api.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_api", - "target": "concepts_api_common", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_api.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_api", - "target": "concepts_api_common", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B05_wf2_Route/B05_api.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b05_wf2_route_b05_api", - "target": "concepts_api_common", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B06_wf3_ProfileCross/B06_api.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b06_wf3_profilecross_b06_api", - "target": "concepts_api_common", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/api_common.md", - "source_location": "L11", - "weight": 1.0, - "source": "concepts_api_common_api_\uacf5\ud1b5_\uc5ec\ub7ec_\ud398\uc774\uc9c0\uac00_\uacf5\uc720\ud558\ub294_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "target": "concepts_api_common_\uacf5\ud1b5_\uc624\ub958_\uc751\ub2f5_\ud3ec\ub9f7_\uc804_\ub77c\uc6b0\ud130", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/api_common.md", - "source_location": "L17", - "weight": 1.0, - "source": "concepts_api_common_api_\uacf5\ud1b5_\uc5ec\ub7ec_\ud398\uc774\uc9c0\uac00_\uacf5\uc720\ud558\ub294_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "target": "concepts_api_common_\uc6cc\ud06c\ud50c\ub85c\uc6b0_\uc0c1\ud0dc_\uc870\ud68c", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/api_common.md", - "source_location": "L25", - "weight": 1.0, - "source": "concepts_api_common_api_\uacf5\ud1b5_\uc5ec\ub7ec_\ud398\uc774\uc9c0\uac00_\uacf5\uc720\ud558\ub294_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "target": "concepts_api_common_\ud3f4\ub9c1_\ud328\ud134_legacy_workflow_json_\uc124\uacc4_\ud604\uc7ac_\uad6c\ud604\uc740_workflow_state_api_\uc0ac\uc6a9", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/auth_rbac.md", - "source_location": "L9", - "weight": 1.0, - "source": "concepts_auth_rbac", - "target": "concepts_auth_rbac_\uc778\uc99d_rbac", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "concepts/auth_rbac.md", - "source_location": "L13", - "weight": 1.0, - "source": "concepts_auth_rbac", - "target": "concepts_db_schema_users_auth", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "concepts/common_util.md", - "source_location": "L16", - "weight": 1.0, - "source": "concepts_common_util", - "target": "concepts_auth_rbac", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_api.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_api", - "target": "concepts_auth_rbac", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_backend.md", - "source_location": "L22", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_backend", - "target": "concepts_auth_rbac", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_dependencies.md", - "source_location": "L26", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_dependencies", - "target": "concepts_auth_rbac", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_frontend.md", - "source_location": "L30", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_frontend", - "target": "concepts_auth_rbac", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_api.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_api", - "target": "concepts_auth_rbac", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B05_wf2_Route/B05_api.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b05_wf2_route_b05_api", - "target": "concepts_auth_rbac", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B06_wf3_ProfileCross/B06_api.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b06_wf3_profilecross_b06_api", - "target": "concepts_auth_rbac", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/auth_rbac.md", - "source_location": "L18", - "weight": 1.0, - "source": "concepts_auth_rbac_\uc778\uc99d_rbac", - "target": "concepts_auth_rbac_otp_\ube44\ubc00\ubc88\ud638", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/auth_rbac.md", - "source_location": "L65", - "weight": 1.0, - "source": "concepts_auth_rbac_\uc778\uc99d_rbac", - "target": "concepts_auth_rbac_\uacc4\ud68d\uc11c_\uc2e4\ucf54\ub4dc_\ubd88\uc77c\uce58_a\uadf8\ub8f9_\uc778\uc81c\uc2a4\ud2b8_\ubc1c\uacac", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/auth_rbac.md", - "source_location": "L42", - "weight": 1.0, - "source": "concepts_auth_rbac_\uc778\uc99d_rbac", - "target": "concepts_auth_rbac_\uad8c\ud55c_\uac80\uc99d_\ud5ec\ud37c_b01_dashboard", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/auth_rbac.md", - "source_location": "L56", - "weight": 1.0, - "source": "concepts_auth_rbac_\uc778\uc99d_rbac", - "target": "concepts_auth_rbac_\ub77c\uc6b0\ud305_\uac00\ub4dc_frontend_md_5_2", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/auth_rbac.md", - "source_location": "L23", - "weight": 1.0, - "source": "concepts_auth_rbac_\uc778\uc99d_rbac", - "target": "concepts_auth_rbac_\uc0ac\uc6a9\uc790_\uc0c1\ud0dc_\uc0dd\uba85\uc8fc\uae30", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/auth_rbac.md", - "source_location": "L59", - "weight": 1.0, - "source": "concepts_auth_rbac_\uc778\uc99d_rbac", - "target": "concepts_auth_rbac_\uc0ac\uc6a9\ucc98_\uc5ed\ucc38\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/auth_rbac.md", - "source_location": "L11", - "weight": 1.0, - "source": "concepts_auth_rbac_\uc778\uc99d_rbac", - "target": "concepts_auth_rbac_\uc138\uc158_\uc778\uc99d_backend_md_6_3", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/auth_rbac.md", - "source_location": "L33", - "weight": 1.0, - "source": "concepts_auth_rbac_\uc778\uc99d_rbac", - "target": "concepts_auth_rbac_\uc5ed\ud560_users_role", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/auth_rbac.md", - "source_location": "L53", - "weight": 1.0, - "source": "concepts_auth_rbac_\uc778\uc99d_rbac", - "target": "concepts_auth_rbac_\uc778\uc99d_\uac31\uc2e0", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/common_util.md", - "source_location": "L9", - "weight": 1.0, - "source": "concepts_common_util", - "target": "concepts_common_util_\uacf5\ud1b5_\uc720\ud2f8_common_util", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "concepts/common_util.md", - "source_location": "L21", - "weight": 1.0, - "source": "concepts_common_util", - "target": "concepts_storage_paths", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "concepts/common_util.md", - "source_location": "L23", - "weight": 1.0, - "source": "concepts_common_util", - "target": "concepts_workflow_state", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/common_util.md", - "source_location": "L31", - "weight": 1.0, - "source": "concepts_common_util_\uacf5\ud1b5_\uc720\ud2f8_common_util", - "target": "concepts_common_util_\ub9ac\uc18c\uc2a4_\ubaa8\ub2c8\ud130\ub9c1_common_util_resource_monitor_py", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/common_util.md", - "source_location": "L27", - "weight": 1.0, - "source": "concepts_common_util_\uacf5\ud1b5_\uc720\ud2f8_common_util", - "target": "concepts_common_util_\uc774\uba54\uc77c_\ubc1c\uc1a1_common_util_email_py", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/files_surface.md", - "source_location": "L9", - "weight": 1.0, - "source": "concepts_db_schema_files_surface", - "target": "concepts_db_schema_files_surface_db_\ud30c\uc77c_\uc9c0\ud45c\uba74\ubd84\uc11d_\ud14c\uc774\ube14", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/files_surface.md", - "source_location": "L11", - "weight": 1.0, - "source": "concepts_db_schema_files_surface", - "target": "concepts_db_schema_overview", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/files_surface.md", - "source_location": "L89", - "weight": 1.0, - "source": "concepts_db_schema_files_surface_db_\ud30c\uc77c_\uc9c0\ud45c\uba74\ubd84\uc11d_\ud14c\uc774\ube14", - "target": "concepts_db_schema_files_surface_input_files_status_\uac12", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/files_surface.md", - "source_location": "L35", - "weight": 1.0, - "source": "concepts_db_schema_files_surface_db_\ud30c\uc77c_\uc9c0\ud45c\uba74\ubd84\uc11d_\ud14c\uc774\ube14", - "target": "concepts_db_schema_files_surface_input_files_\uc785\ub825_\uc6d0\ubcf8_\ud30c\uc77c", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/files_surface.md", - "source_location": "L48", - "weight": 1.0, - "source": "concepts_db_schema_files_surface_db_\ud30c\uc77c_\uc9c0\ud45c\uba74\ubd84\uc11d_\ud14c\uc774\ube14", - "target": "concepts_db_schema_files_surface_processed_point_cloud_\ud544\ud130_\ubcc0\ud658_\ud3ec\uc778\ud2b8\ud074\ub77c\uc6b0\ub4dc", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/files_surface.md", - "source_location": "L92", - "weight": 1.0, - "source": "concepts_db_schema_files_surface_db_\ud30c\uc77c_\uc9c0\ud45c\uba74\ubd84\uc11d_\ud14c\uc774\ube14", - "target": "concepts_db_schema_files_surface_surface_models_status_processed_point_cloud_status_\uac12", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/files_surface.md", - "source_location": "L64", - "weight": 1.0, - "source": "concepts_db_schema_files_surface_db_\ud30c\uc77c_\uc9c0\ud45c\uba74\ubd84\uc11d_\ud14c\uc774\ube14", - "target": "concepts_db_schema_files_surface_surface_models_\uc9c0\ud45c\uba74_\ubaa8\ub378_\ubc0f_\ub4f1\uace0\uc120", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/files_surface.md", - "source_location": "L77", - "weight": 1.0, - "source": "concepts_db_schema_files_surface_db_\ud30c\uc77c_\uc9c0\ud45c\uba74\ubd84\uc11d_\ud14c\uc774\ube14", - "target": "concepts_db_schema_files_surface_terrain_layers_\uc9c0\ud615_\ub808\uc774\uc5b4", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/files_surface.md", - "source_location": "L24", - "weight": 1.0, - "source": "concepts_db_schema_files_surface_db_\ud30c\uc77c_\uc9c0\ud45c\uba74\ubd84\uc11d_\ud14c\uc774\ube14", - "target": "concepts_db_schema_files_surface_upload_chunks_\uc5c5\ub85c\ub4dc_\uccad\ud06c_\ub370\uc774\ud130", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/files_surface.md", - "source_location": "L13", - "weight": 1.0, - "source": "concepts_db_schema_files_surface_db_\ud30c\uc77c_\uc9c0\ud45c\uba74\ubd84\uc11d_\ud14c\uc774\ube14", - "target": "concepts_db_schema_files_surface_upload_sessions_\uc5c5\ub85c\ub4dc_\uc138\uc158", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/logs_monitoring.md", - "source_location": "L9", - "weight": 1.0, - "source": "concepts_db_schema_logs_monitoring", - "target": "concepts_db_schema_logs_monitoring_db_\ub85c\uadf8_\ubaa8\ub2c8\ud130\ub9c1_\ud14c\uc774\ube14", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/logs_monitoring.md", - "source_location": "L11", - "weight": 1.0, - "source": "concepts_db_schema_logs_monitoring", - "target": "concepts_db_schema_overview", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/logs_monitoring.md", - "source_location": "L23", - "weight": 1.0, - "source": "concepts_db_schema_logs_monitoring_db_\ub85c\uadf8_\ubaa8\ub2c8\ud130\ub9c1_\ud14c\uc774\ube14", - "target": "concepts_db_schema_logs_monitoring_activity_logs_\uc0ac\uc6a9\uc790_\ud65c\ub3d9_\ub85c\uadf8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/logs_monitoring.md", - "source_location": "L33", - "weight": 1.0, - "source": "concepts_db_schema_logs_monitoring_db_\ub85c\uadf8_\ubaa8\ub2c8\ud130\ub9c1_\ud14c\uc774\ube14", - "target": "concepts_db_schema_logs_monitoring_audit_logs_\uac10\uc0ac_\ub85c\uadf8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/logs_monitoring.md", - "source_location": "L83", - "weight": 1.0, - "source": "concepts_db_schema_logs_monitoring_db_\ub85c\uadf8_\ubaa8\ub2c8\ud130\ub9c1_\ud14c\uc774\ube14", - "target": "concepts_db_schema_logs_monitoring_change_logs_\uc124\uacc4_\ubcc0\uacbd_\uc774\ub825", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/logs_monitoring.md", - "source_location": "L13", - "weight": 1.0, - "source": "concepts_db_schema_logs_monitoring_db_\ub85c\uadf8_\ubaa8\ub2c8\ud130\ub9c1_\ud14c\uc774\ube14", - "target": "concepts_db_schema_logs_monitoring_login_logs_\ub85c\uadf8\uc778_\uc2dc\ub3c4_\ub85c\uadf8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/logs_monitoring.md", - "source_location": "L71", - "weight": 1.0, - "source": "concepts_db_schema_logs_monitoring_db_\ub85c\uadf8_\ubaa8\ub2c8\ud130\ub9c1_\ud14c\uc774\ube14", - "target": "concepts_db_schema_logs_monitoring_support_requests_\uae30\uc220_\uc9c0\uc6d0_\uc694\uccad", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/logs_monitoring.md", - "source_location": "L53", - "weight": 1.0, - "source": "concepts_db_schema_logs_monitoring_db_\ub85c\uadf8_\ubaa8\ub2c8\ud130\ub9c1_\ud14c\uc774\ube14", - "target": "concepts_db_schema_logs_monitoring_system_admin_logs_\uc2dc\uc2a4\ud15c_\uad00\ub9ac\uc790_\ud589\uc704_\ub85c\uadf8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/logs_monitoring.md", - "source_location": "L96", - "weight": 1.0, - "source": "concepts_db_schema_logs_monitoring_db_\ub85c\uadf8_\ubaa8\ub2c8\ud130\ub9c1_\ud14c\uc774\ube14", - "target": "concepts_db_schema_logs_monitoring_system_audit_logs_\uc0ac\uc6a9\ucc98_b01_b02", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/logs_monitoring.md", - "source_location": "L43", - "weight": 1.0, - "source": "concepts_db_schema_logs_monitoring_db_\ub85c\uadf8_\ubaa8\ub2c8\ud130\ub9c1_\ud14c\uc774\ube14", - "target": "concepts_db_schema_logs_monitoring_system_audit_logs_\ud504\ub85c\uc81d\ud2b8_\uc870\uc9c1_\ubcc0\uacbd_\uac10\uc0ac_\ub85c\uadf8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/logs_monitoring.md", - "source_location": "L62", - "weight": 1.0, - "source": "concepts_db_schema_logs_monitoring_db_\ub85c\uadf8_\ubaa8\ub2c8\ud130\ub9c1_\ud14c\uc774\ube14", - "target": "concepts_db_schema_logs_monitoring_system_resources_\uc2dc\uc2a4\ud15c_\uc790\uc6d0_\uacc4\uce21", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/logs_monitoring.md", - "source_location": "L100", - "weight": 1.0, - "source": "concepts_db_schema_logs_monitoring_db_\ub85c\uadf8_\ubaa8\ub2c8\ud130\ub9c1_\ud14c\uc774\ube14", - "target": "concepts_db_schema_logs_monitoring_\ub9ac\uc18c\uc2a4_api_system_admin_\uc804\uc6a9", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/overview.md", - "source_location": "L9", - "weight": 1.0, - "source": "concepts_db_schema_overview", - "target": "concepts_db_schema_overview_db_\uc2a4\ud0a4\ub9c8_\uac1c\uc694", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/overview.md", - "source_location": "L28", - "weight": 1.0, - "source": "concepts_db_schema_overview", - "target": "concepts_db_schema_projects", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/overview.md", - "source_location": "L30", - "weight": 1.0, - "source": "concepts_db_schema_overview", - "target": "concepts_db_schema_route_profile", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/overview.md", - "source_location": "L31", - "weight": 1.0, - "source": "concepts_db_schema_overview", - "target": "concepts_db_schema_structure_output", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/overview.md", - "source_location": "L20", - "weight": 1.0, - "source": "concepts_db_schema_overview", - "target": "concepts_db_schema_unconfirmed_readme", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/overview.md", - "source_location": "L26", - "weight": 1.0, - "source": "concepts_db_schema_overview", - "target": "concepts_db_schema_users_auth", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/overview.md", - "source_location": "L16", - "weight": 1.0, - "source": "concepts_db_schema_overview", - "target": "concepts_workflow_state", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "concepts/storage_paths.md", - "source_location": "L31", - "weight": 1.0, - "source": "concepts_storage_paths", - "target": "concepts_db_schema_overview", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/overview.md", - "source_location": "L51", - "weight": 1.0, - "source": "concepts_db_schema_overview_db_\uc2a4\ud0a4\ub9c8_\uac1c\uc694", - "target": "concepts_db_schema_overview_\uc124\uacc4_\uc6d0\uce59", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/overview.md", - "source_location": "L56", - "weight": 1.0, - "source": "concepts_db_schema_overview_db_\uc2a4\ud0a4\ub9c8_\uac1c\uc694", - "target": "concepts_db_schema_overview_\ud14c\uc774\ube14_\uad00\uacc4_\ud575\uc2ec_\ud750\ub984", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/overview.md", - "source_location": "L22", - "weight": 1.0, - "source": "concepts_db_schema_overview_db_\uc2a4\ud0a4\ub9c8_\uac1c\uc694", - "target": "concepts_db_schema_overview_\ud14c\uc774\ube14_\uadf8\ub8f9_9\uac1c", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/overview.md", - "source_location": "L34", - "weight": 1.0, - "source": "concepts_db_schema_overview_db_\uc2a4\ud0a4\ub9c8_\uac1c\uc694", - "target": "concepts_db_schema_overview_\ud30c\uc77c_\uacbd\ub85c_\ucd94\uc801_\uceec\ub7fc_db\uc5d0_\uacbd\ub85c\ub9cc_\uae30\ub85d_\uc2e4_\ud30c\uc77c\uc740_\ud30c\uc77c\uc2dc\uc2a4\ud15c", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/projects.md", - "source_location": "L9", - "weight": 1.0, - "source": "concepts_db_schema_projects", - "target": "concepts_db_schema_projects_db_\ud504\ub85c\uc81d\ud2b8_\uad00\ub9ac_\ud14c\uc774\ube14", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/projects.md", - "source_location": "L40", - "weight": 1.0, - "source": "concepts_db_schema_projects_db_\ud504\ub85c\uc81d\ud2b8_\uad00\ub9ac_\ud14c\uc774\ube14", - "target": "concepts_db_schema_projects_project_automations_\ud504\ub85c\uc81d\ud2b8_\uc790\ub3d9\ud654_\uc815\ucc45", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/projects.md", - "source_location": "L30", - "weight": 1.0, - "source": "concepts_db_schema_projects_db_\ud504\ub85c\uc81d\ud2b8_\uad00\ub9ac_\ud14c\uc774\ube14", - "target": "concepts_db_schema_projects_project_versions_\ud504\ub85c\uc81d\ud2b8_\ubc84\uc804_\uc2a4\ub0c5\uc0f7", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/projects.md", - "source_location": "L54", - "weight": 1.0, - "source": "concepts_db_schema_projects_db_\ud504\ub85c\uc81d\ud2b8_\uad00\ub9ac_\ud14c\uc774\ube14", - "target": "concepts_db_schema_projects_project_workflow_stages_\ub2e8\uacc4\ubcc4_\uc0c1\uc138_\uc0c1\ud0dc", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/projects.md", - "source_location": "L13", - "weight": 1.0, - "source": "concepts_db_schema_projects_db_\ud504\ub85c\uc81d\ud2b8_\uad00\ub9ac_\ud14c\uc774\ube14", - "target": "concepts_db_schema_projects_projects_\ud504\ub85c\uc81d\ud2b8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/route_profile.md", - "source_location": "L9", - "weight": 1.0, - "source": "concepts_db_schema_route_profile", - "target": "concepts_db_schema_route_profile_db_\uacbd\ub85c_\uc885\ud6a1\ub2e8_\ud14c\uc774\ube14", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/route_profile.md", - "source_location": "L69", - "weight": 1.0, - "source": "concepts_db_schema_route_profile", - "target": "concepts_db_schema_structure_output", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/route_profile.md", - "source_location": "L68", - "weight": 1.0, - "source": "concepts_db_schema_route_profile_db_\uacbd\ub85c_\uc885\ud6a1\ub2e8_\ud14c\uc774\ube14", - "target": "concepts_db_schema_route_profile_cross_sections_data_structures", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/route_profile.md", - "source_location": "L55", - "weight": 1.0, - "source": "concepts_db_schema_route_profile_db_\uacbd\ub85c_\uc885\ud6a1\ub2e8_\ud14c\uc774\ube14", - "target": "concepts_db_schema_route_profile_cross_sections_\ud6a1\ub2e8\uba74_\uc124\uacc4", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/route_profile.md", - "source_location": "L45", - "weight": 1.0, - "source": "concepts_db_schema_route_profile_db_\uacbd\ub85c_\uc885\ud6a1\ub2e8_\ud14c\uc774\ube14", - "target": "concepts_db_schema_route_profile_longitudinal_sections_\uc885\ub2e8\uba74_\uc124\uacc4", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/route_profile.md", - "source_location": "L27", - "weight": 1.0, - "source": "concepts_db_schema_route_profile_db_\uacbd\ub85c_\uc885\ud6a1\ub2e8_\ud14c\uc774\ube14", - "target": "concepts_db_schema_route_profile_route_points_\uacbd\ub85c_\uc88c\ud45c\uc810", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/route_profile.md", - "source_location": "L36", - "weight": 1.0, - "source": "concepts_db_schema_route_profile_db_\uacbd\ub85c_\uc885\ud6a1\ub2e8_\ud14c\uc774\ube14", - "target": "concepts_db_schema_route_profile_route_statistics_\ub178\uc120_\ud1b5\uacc4", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/route_profile.md", - "source_location": "L65", - "weight": 1.0, - "source": "concepts_db_schema_route_profile_db_\uacbd\ub85c_\uc885\ud6a1\ub2e8_\ud14c\uc774\ube14", - "target": "concepts_db_schema_route_profile_routes_status_\ud750\ub984", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/route_profile.md", - "source_location": "L13", - "weight": 1.0, - "source": "concepts_db_schema_route_profile_db_\uacbd\ub85c_\uc885\ud6a1\ub2e8_\ud14c\uc774\ube14", - "target": "concepts_db_schema_route_profile_routes_\ub178\uc120_\uacbd\ub85c", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/structure_output.md", - "source_location": "L9", - "weight": 1.0, - "source": "concepts_db_schema_structure_output", - "target": "concepts_db_schema_structure_output_db_\uad6c\uc870\ubb3c_\uc218\ub7c9_\uc0b0\ucd9c\ubb3c_\ud14c\uc774\ube14", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/structure_output.md", - "source_location": "L54", - "weight": 1.0, - "source": "concepts_db_schema_structure_output_db_\uad6c\uc870\ubb3c_\uc218\ub7c9_\uc0b0\ucd9c\ubb3c_\ud14c\uc774\ube14", - "target": "concepts_db_schema_structure_output_output_files_\uac1c\ubcc4_\uc0b0\ucd9c_\ud30c\uc77c_\ub9ac\uc2a4\ud2b8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/structure_output.md", - "source_location": "L42", - "weight": 1.0, - "source": "concepts_db_schema_structure_output_db_\uad6c\uc870\ubb3c_\uc218\ub7c9_\uc0b0\ucd9c\ubb3c_\ud14c\uc774\ube14", - "target": "concepts_db_schema_structure_output_outputs_\ucd5c\uc885_\uacac\uc801_\ub3c4\uba74_\uc0b0\ucd9c_\uc138\uc158", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/structure_output.md", - "source_location": "L29", - "weight": 1.0, - "source": "concepts_db_schema_structure_output_db_\uad6c\uc870\ubb3c_\uc218\ub7c9_\uc0b0\ucd9c\ubb3c_\ud14c\uc774\ube14", - "target": "concepts_db_schema_structure_output_quantity_items_\uc218\ub7c9_\uc0b0\ucd9c_\ud56d\ubaa9", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/structure_output.md", - "source_location": "L65", - "weight": 1.0, - "source": "concepts_db_schema_structure_output_db_\uad6c\uc870\ubb3c_\uc218\ub7c9_\uc0b0\ucd9c\ubb3c_\ud14c\uc774\ube14", - "target": "concepts_db_schema_structure_output_quantity_items_\ucd1d\ube44\uc6a9_\uacc4\uc0b0_\uc608", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/structure_output.md", - "source_location": "L13", - "weight": 1.0, - "source": "concepts_db_schema_structure_output_db_\uad6c\uc870\ubb3c_\uc218\ub7c9_\uc0b0\ucd9c\ubb3c_\ud14c\uc774\ube14", - "target": "concepts_db_schema_structure_output_structures_\ubc30\uce58_\uad6c\uc870\ubb3c", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/unconfirmed/README.md", - "source_location": "L1", - "weight": 1.0, - "source": "concepts_db_schema_unconfirmed_readme", - "target": "concepts_db_schema_unconfirmed_readme_\ubbf8\ud655\uc815_\ud14c\uc774\ube14_\ubcf4\uad00\uc18c_unconfirmed_db_schemas", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/unconfirmed/README.md", - "source_location": "L5", - "weight": 1.0, - "source": "concepts_db_schema_unconfirmed_readme_\ubbf8\ud655\uc815_\ud14c\uc774\ube14_\ubcf4\uad00\uc18c_unconfirmed_db_schemas", - "target": "concepts_db_schema_unconfirmed_readme_\uc6b4\uc601_\uaddc\uce59", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/users_auth.md", - "source_location": "L9", - "weight": 1.0, - "source": "concepts_db_schema_users_auth", - "target": "concepts_db_schema_users_auth_db_\uc0ac\uc6a9\uc790_\uc778\uc99d_\uc870\uc9c1_\ud14c\uc774\ube14", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/users_auth.md", - "source_location": "L32", - "weight": 1.0, - "source": "concepts_db_schema_users_auth_db_\uc0ac\uc6a9\uc790_\uc778\uc99d_\uc870\uc9c1_\ud14c\uc774\ube14", - "target": "concepts_db_schema_users_auth_companies_\ud68c\uc0ac", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/users_auth.md", - "source_location": "L56", - "weight": 1.0, - "source": "concepts_db_schema_users_auth_db_\uc0ac\uc6a9\uc790_\uc778\uc99d_\uc870\uc9c1_\ud14c\uc774\ube14", - "target": "concepts_db_schema_users_auth_email_otps_\uc774\uba54\uc77c_otp", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/users_auth.md", - "source_location": "L73", - "weight": 1.0, - "source": "concepts_db_schema_users_auth_db_\uc0ac\uc6a9\uc790_\uc778\uc99d_\uc870\uc9c1_\ud14c\uc774\ube14", - "target": "concepts_db_schema_users_auth_join_requests_\ud68c\uc0ac_\uac00\uc785_\uc2e0\uccad", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/users_auth.md", - "source_location": "L45", - "weight": 1.0, - "source": "concepts_db_schema_users_auth_db_\uc0ac\uc6a9\uc790_\uc778\uc99d_\uc870\uc9c1_\ud14c\uc774\ube14", - "target": "concepts_db_schema_users_auth_sessions_\uc138\uc158", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/users_auth.md", - "source_location": "L65", - "weight": 1.0, - "source": "concepts_db_schema_users_auth_db_\uc0ac\uc6a9\uc790_\uc778\uc99d_\uc870\uc9c1_\ud14c\uc774\ube14", - "target": "concepts_db_schema_users_auth_trusted_devices_\uc2e0\ub8b0_\uae30\uae30", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/users_auth.md", - "source_location": "L84", - "weight": 1.0, - "source": "concepts_db_schema_users_auth_db_\uc0ac\uc6a9\uc790_\uc778\uc99d_\uc870\uc9c1_\ud14c\uc774\ube14", - "target": "concepts_db_schema_users_auth_user_consents_\uc57d\uad00_\ub3d9\uc758", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/db_schema/users_auth.md", - "source_location": "L13", - "weight": 1.0, - "source": "concepts_db_schema_users_auth_db_\uc0ac\uc6a9\uc790_\uc778\uc99d_\uc870\uc9c1_\ud14c\uc774\ube14", - "target": "concepts_db_schema_users_auth_users_\uc0ac\uc6a9\uc790", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/dependencies.md", - "source_location": "L9", - "weight": 1.0, - "source": "concepts_dependencies", - "target": "concepts_dependencies_\uc678\ubd80_\ub77c\uc774\ube0c\ub7ec\ub9ac_\uc758\uc874\uc131", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_dependencies.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_dependencies", - "target": "concepts_dependencies", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_dependencies.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_dependencies", - "target": "concepts_dependencies", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B05_wf2_Route/B05_dependencies.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b05_wf2_route_b05_dependencies", - "target": "concepts_dependencies", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B06_wf3_ProfileCross/B06_dependencies.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b06_wf3_profilecross_b06_dependencies", - "target": "concepts_dependencies", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/dependencies.md", - "source_location": "L11", - "weight": 1.0, - "source": "concepts_dependencies_\uc678\ubd80_\ub77c\uc774\ube0c\ub7ec\ub9ac_\uc758\uc874\uc131", - "target": "concepts_dependencies_\ubc31\uc5d4\ub4dc_python_3_12_7", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/dependencies.md", - "source_location": "L35", - "weight": 1.0, - "source": "concepts_dependencies_\uc678\ubd80_\ub77c\uc774\ube0c\ub7ec\ub9ac_\uc758\uc874\uc131", - "target": "concepts_dependencies_\uc120\uc815_\uc6d0\uce59_agent_md_3\uc808", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/dependencies.md", - "source_location": "L27", - "weight": 1.0, - "source": "concepts_dependencies_\uc678\ubd80_\ub77c\uc774\ube0c\ub7ec\ub9ac_\uc758\uc874\uc131", - "target": "concepts_dependencies_\ud504\ub860\ud2b8\uc5d4\ub4dc_typescript_node_js", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/schema_common.md", - "source_location": "L9", - "weight": 1.0, - "source": "concepts_schema_common", - "target": "concepts_schema_common_\uacf5\ud1b5_\uc2a4\ud0a4\ub9c8_pydantic_\uc694\uccad_\uc751\ub2f5_\uaddc\uce59", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/schema_common.md", - "source_location": "L11", - "weight": 1.0, - "source": "concepts_schema_common_\uacf5\ud1b5_\uc2a4\ud0a4\ub9c8_pydantic_\uc694\uccad_\uc751\ub2f5_\uaddc\uce59", - "target": "concepts_schema_common_\uac80\uc99d_\uc6d0\uce59_backend_md_4\uc808", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/schema_common.md", - "source_location": "L16", - "weight": 1.0, - "source": "concepts_schema_common_\uacf5\ud1b5_\uc2a4\ud0a4\ub9c8_pydantic_\uc694\uccad_\uc751\ub2f5_\uaddc\uce59", - "target": "concepts_schema_common_\uba85\uba85_\uaddc\uce59", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/storage_paths.md", - "source_location": "L9", - "weight": 1.0, - "source": "concepts_storage_paths", - "target": "concepts_storage_paths_\uc800\uc7a5_\uacbd\ub85c_\uaddc\uce59_workflow_based_folder_structure", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "concepts/storage_paths.md", - "source_location": "L27", - "weight": 1.0, - "source": "concepts_storage_paths", - "target": "concepts_workflow_state", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_backend.md", - "source_location": "L49", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_backend", - "target": "concepts_storage_paths", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_dependencies.md", - "source_location": "L27", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_dependencies", - "target": "concepts_storage_paths", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B06_wf3_ProfileCross/B06_dependencies.md", - "source_location": "L26", - "weight": 1.0, - "source": "pages_b06_wf3_profilecross_b06_dependencies", - "target": "concepts_storage_paths", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/storage_paths.md", - "source_location": "L30", - "weight": 1.0, - "source": "concepts_storage_paths_\uc800\uc7a5_\uacbd\ub85c_\uaddc\uce59_workflow_based_folder_structure", - "target": "concepts_storage_paths_db_\uceec\ub7fc_\uc2e4\uc81c_\uacbd\ub85c_\ub9e4\ud551", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/storage_paths.md", - "source_location": "L11", - "weight": 1.0, - "source": "concepts_storage_paths_\uc800\uc7a5_\uacbd\ub85c_\uaddc\uce59_workflow_based_folder_structure", - "target": "concepts_storage_paths_\uacbd\ub85c_\ud328\ud134", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/storage_paths.md", - "source_location": "L23", - "weight": 1.0, - "source": "concepts_storage_paths_\uc800\uc7a5_\uacbd\ub85c_\uaddc\uce59_workflow_based_folder_structure", - "target": "concepts_storage_paths_\uc6d0\uce59_backend_md_3\uc808", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/storage_paths.md", - "source_location": "L33", - "weight": 1.0, - "source": "concepts_storage_paths_\uc800\uc7a5_\uacbd\ub85c_\uaddc\uce59_workflow_based_folder_structure", - "target": "concepts_storage_paths_\ud30c\uc77c\uba85_\uaddc\uce59_structure_md_1\uc808", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/ui_templates.md", - "source_location": "L8", - "weight": 1.0, - "source": "concepts_ui_templates", - "target": "concepts_ui_templates_ui_templates_localization_components", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_dependencies.md", - "source_location": "L28", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_dependencies", - "target": "concepts_ui_templates", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_frontend.md", - "source_location": "L50", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_frontend", - "target": "concepts_ui_templates", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_frontend.md", - "source_location": "L40", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_frontend", - "target": "concepts_ui_templates", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", - "source_location": "L37", - "weight": 1.0, - "source": "pages_b08_wf5_quantity_b08_frontend", - "target": "concepts_ui_templates", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/ui_templates.md", - "source_location": "L59", - "weight": 1.0, - "source": "concepts_ui_templates_ui_templates_localization_components", - "target": "concepts_ui_templates_theme_css_\uc2a4\ud0c0\uc77c_\ubcc0\uc218", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/ui_templates.md", - "source_location": "L30", - "weight": 1.0, - "source": "concepts_ui_templates_ui_templates_localization_components", - "target": "concepts_ui_templates_ui_template_elements_ts_\uacf5\ud1b5_\ucef4\ud3ec\ub10c\ud2b8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/ui_templates.md", - "source_location": "L12", - "weight": 1.0, - "source": "concepts_ui_templates_ui_templates_localization_components", - "target": "concepts_ui_templates_ui_template_locale_ts_\ub2e4\uad6d\uc5b4_\uad00\ub9ac", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/ui_templates.md", - "source_location": "L82", - "weight": 1.0, - "source": "concepts_ui_templates_ui_templates_localization_components", - "target": "concepts_ui_templates_\uc758\uc874\uc131", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/ui_templates.md", - "source_location": "L75", - "weight": 1.0, - "source": "concepts_ui_templates_ui_templates_localization_components", - "target": "concepts_ui_templates_\uc81c\uc57d_backend_md_1", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/ui_templates.md", - "source_location": "L24", - "weight": 1.0, - "source": "concepts_ui_templates_ui_template_locale_ts_\ub2e4\uad6d\uc5b4_\uad00\ub9ac", - "target": "concepts_ui_templates_\uc0ac\uc6a9\ucc98_\uc5ed\ucc38\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/ui_templates.md", - "source_location": "L16", - "weight": 1.0, - "source": "concepts_ui_templates_ui_template_locale_ts_\ub2e4\uad6d\uc5b4_\uad00\ub9ac", - "target": "concepts_ui_templates_\ud575\uc2ec_\uae30\ub2a5", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/ui_templates.md", - "source_location": "L50", - "weight": 1.0, - "source": "concepts_ui_templates_ui_template_elements_ts_\uacf5\ud1b5_\ucef4\ud3ec\ub10c\ud2b8", - "target": "concepts_ui_templates_\uc0ac\uc6a9\ucc98_\uc5ed\ucc38\uc870_50", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/ui_templates.md", - "source_location": "L34", - "weight": 1.0, - "source": "concepts_ui_templates_ui_template_elements_ts_\uacf5\ud1b5_\ucef4\ud3ec\ub10c\ud2b8", - "target": "concepts_ui_templates_\uc81c\uacf5_\ucef4\ud3ec\ub10c\ud2b8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/ui_templates.md", - "source_location": "L63", - "weight": 1.0, - "source": "concepts_ui_templates_theme_css_\uc2a4\ud0c0\uc77c_\ubcc0\uc218", - "target": "concepts_ui_templates_\ud575\uc2ec_\ubcc0\uc218", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/workflow_state.md", - "source_location": "L9", - "weight": 1.0, - "source": "concepts_workflow_state", - "target": "concepts_workflow_state_workflow_\uc0c1\ud0dc_\uad00\ub9ac_\uad6c\ud604_\uc644\ub8cc_\uc2e4_db_\ud655\uc778\ub428", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_frontend.md", - "source_location": "L49", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_frontend", - "target": "concepts_workflow_state", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_api.md", - "source_location": "L32", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_api", - "target": "concepts_workflow_state", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_backend.md", - "source_location": "L49", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_backend", - "target": "concepts_workflow_state", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_dependencies.md", - "source_location": "L28", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_dependencies", - "target": "concepts_workflow_state", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_frontend.md", - "source_location": "L40", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_frontend", - "target": "concepts_workflow_state", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B05_wf2_Route/B05_backend.md", - "source_location": "L44", - "weight": 1.0, - "source": "pages_b05_wf2_route_b05_backend", - "target": "concepts_workflow_state", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", - "source_location": "L37", - "weight": 1.0, - "source": "pages_b06_wf3_profilecross_b06_backend", - "target": "concepts_workflow_state", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "pages/B06_wf3_ProfileCross/B06_dependencies.md", - "source_location": "L25", - "weight": 1.0, - "source": "pages_b06_wf3_profilecross_b06_dependencies", - "target": "concepts_workflow_state", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/workflow_state.md", - "source_location": "L65", - "weight": 1.0, - "source": "concepts_workflow_state_workflow_\uc0c1\ud0dc_\uad00\ub9ac_\uad6c\ud604_\uc644\ub8cc_\uc2e4_db_\ud655\uc778\ub428", - "target": "concepts_workflow_state_b04_\uc0c1\ud0dc_\uc870\ud68c_\ub808\uac70\uc2dc_\ud3f4\ubc31_\ub2f9\ucd08_\uc794\uc7ac_\ub85c_\ud45c\uae30\ud588\uc73c\ub098_\uc815\uc815", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/workflow_state.md", - "source_location": "L62", - "weight": 1.0, - "source": "concepts_workflow_state_workflow_\uc0c1\ud0dc_\uad00\ub9ac_\uad6c\ud604_\uc644\ub8cc_\uc2e4_db_\ud655\uc778\ub428", - "target": "concepts_workflow_state_projects_status_\ubb38\uc790\uc5f4_\uce90\uc2dc_\ud638\ud658\uc6a9_\uacc4\ud68d\uc11c_\ubc29\uce68\ub300\ub85c_\uc720\uc9c0_\uc911", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/workflow_state.md", - "source_location": "L13", - "weight": 1.0, - "source": "concepts_workflow_state_workflow_\uc0c1\ud0dc_\uad00\ub9ac_\uad6c\ud604_\uc644\ub8cc_\uc2e4_db_\ud655\uc778\ub428", - "target": "concepts_workflow_state_ssot_project_workflow_stages_\ud14c\uc774\ube14_\uc2e4_db_\ud655\uc778", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/workflow_state.md", - "source_location": "L27", - "weight": 1.0, - "source": "concepts_workflow_state_workflow_\uc0c1\ud0dc_\uad00\ub9ac_\uad6c\ud604_\uc644\ub8cc_\uc2e4_db_\ud655\uc778\ub428", - "target": "concepts_workflow_state_\uacf5\ud1b5_\uc720\ud2f8_common_util_common_util_workflow_state_py", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/workflow_state.md", - "source_location": "L72", - "weight": 1.0, - "source": "concepts_workflow_state_workflow_\uc0c1\ud0dc_\uad00\ub9ac_\uad6c\ud604_\uc644\ub8cc_\uc2e4_db_\ud655\uc778\ub428", - "target": "concepts_workflow_state_\ubbf8\ud574\uacb0_\uc0ac\ud56d_\uacc4\ud68d\uc11c_\uc6d0\ubb38_\uc544\uc9c1_\uacb0\uc815_\uc548_\ub428", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/workflow_state.md", - "source_location": "L54", - "weight": 1.0, - "source": "concepts_workflow_state_workflow_\uc0c1\ud0dc_\uad00\ub9ac_\uad6c\ud604_\uc644\ub8cc_\uc2e4_db_\ud655\uc778\ub428", - "target": "concepts_workflow_state_\uc0c1\ud0dc_\uc804\uc774_\uad6c\ud604\ub300\ub85c", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/workflow_state.md", - "source_location": "L37", - "weight": 1.0, - "source": "concepts_workflow_state_workflow_\uc0c1\ud0dc_\uad00\ub9ac_\uad6c\ud604_\uc644\ub8cc_\uc2e4_db_\ud655\uc778\ub428", - "target": "concepts_workflow_state_\uc2e4_\uc5f0\ub3d9_\ud604\ud669_\ud30c\uc77c_\uc904\ubc88\ud638", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "concepts/workflow_state.md", - "source_location": "L47", - "weight": 1.0, - "source": "concepts_workflow_state_workflow_\uc0c1\ud0dc_\uad00\ub9ac_\uad6c\ud604_\uc644\ub8cc_\uc2e4_db_\ud655\uc778\ub428", - "target": "concepts_workflow_state_\uc870\ud68c_api_\uc2e4\uc81c_\uc874\uc7ac_\uacc4\ud68d\uc11c\uc640_\uacbd\ub85c_\uc77c\uce58", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L6", - "weight": 1.0, - "source": "index", - "target": "index_wiki_index", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L68", - "weight": 1.0, - "source": "index_wiki_index", - "target": "index_\uac1c\ub150_concepts", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L110", - "weight": 1.0, - "source": "index_wiki_index", - "target": "index_\ubbf8\ud574\uacb0_\ud56d\ubaa9", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L39", - "weight": 1.0, - "source": "index_wiki_index", - "target": "index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\uc804_a01_a09", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L10", - "weight": 1.0, - "source": "index_wiki_index", - "target": "index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\ud6c4_\uc6cc\ud06c\ud50c\ub85c\uc6b0_b01_b09", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L12", - "weight": 1.0, - "source": "index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\ud6c4_\uc6cc\ud06c\ud50c\ub85c\uc6b0_b01_b09", - "target": "index_b01_dashboard_b01_backend_b01_dashboard", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L15", - "weight": 1.0, - "source": "index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\ud6c4_\uc6cc\ud06c\ud50c\ub85c\uc6b0_b01_b09", - "target": "index_b02_projregister_b02_backend_b02_projregister", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L18", - "weight": 1.0, - "source": "index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\ud6c4_\uc6cc\ud06c\ud50c\ub85c\uc6b0_b01_b09", - "target": "index_b03_fileinput_b03_backend_b03_fileinput", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L21", - "weight": 1.0, - "source": "index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\ud6c4_\uc6cc\ud06c\ud50c\ub85c\uc6b0_b01_b09", - "target": "index_b04_wf1_surface_b04_backend_b04_wf1_surface", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L24", - "weight": 1.0, - "source": "index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\ud6c4_\uc6cc\ud06c\ud50c\ub85c\uc6b0_b01_b09", - "target": "index_b05_wf2_route_b05_backend_b05_wf2_route", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L27", - "weight": 1.0, - "source": "index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\ud6c4_\uc6cc\ud06c\ud50c\ub85c\uc6b0_b01_b09", - "target": "index_b06_wf3_profilecross_b06_backend_b06_wf3_profilecross", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L30", - "weight": 1.0, - "source": "index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\ud6c4_\uc6cc\ud06c\ud50c\ub85c\uc6b0_b01_b09", - "target": "index_b07_wf4_designdetail_b07_frontend_b07_wf4_designdetail", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L33", - "weight": 1.0, - "source": "index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\ud6c4_\uc6cc\ud06c\ud50c\ub85c\uc6b0_b01_b09", - "target": "index_b08_wf5_quantity_b08_frontend_b08_wf5_quantity", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L36", - "weight": 1.0, - "source": "index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\ud6c4_\uc6cc\ud06c\ud50c\ub85c\uc6b0_b01_b09", - "target": "index_b09_wf6_estimation_b09_frontend_b09_wf6_estimation", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L41", - "weight": 1.0, - "source": "index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\uc804_a01_a09", - "target": "index_a01_home_a01_frontend_a01_home", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L44", - "weight": 1.0, - "source": "index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\uc804_a01_a09", - "target": "index_a02_progdetail_a02_frontend_a02_progdetail", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L47", - "weight": 1.0, - "source": "index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\uc804_a01_a09", - "target": "index_a03_compdetail_a03_frontend_a03_compdetail", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L50", - "weight": 1.0, - "source": "index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\uc804_a01_a09", - "target": "index_a04_newshistory_a04_frontend_a04_newshistory", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L53", - "weight": 1.0, - "source": "index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\uc804_a01_a09", - "target": "index_a05_edudetail_a05_frontend_a05_edudetail", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L56", - "weight": 1.0, - "source": "index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\uc804_a01_a09", - "target": "index_a06_login_a06_backend_a06_login", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L59", - "weight": 1.0, - "source": "index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\uc804_a01_a09", - "target": "index_a07_register_a07_backend_a07_register", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L62", - "weight": 1.0, - "source": "index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\uc804_a01_a09", - "target": "index_a08_support_a08_backend_a08_support", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L65", - "weight": 1.0, - "source": "index_\ud398\uc774\uc9c0_\ub85c\uadf8\uc778_\uc804_a01_a09", - "target": "index_a09_security_a09_backend_a09_security", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L70", - "weight": 1.0, - "source": "index_\uac1c\ub150_concepts", - "target": "index_a00_app_shell_framework", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L73", - "weight": 1.0, - "source": "index_\uac1c\ub150_concepts", - "target": "index_a00_app_shell_framework_scaffold", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L98", - "weight": 1.0, - "source": "index_\uac1c\ub150_concepts", - "target": "index_api_\uacf5\ud1b5_\uc5ec\ub7ec_\ud398\uc774\uc9c0\uac00_\uacf5\uc720\ud558\ub294_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L89", - "weight": 1.0, - "source": "index_\uac1c\ub150_concepts", - "target": "index_auth_rbac", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L95", - "weight": 1.0, - "source": "index_\uac1c\ub150_concepts", - "target": "index_common_util", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L79", - "weight": 1.0, - "source": "index_\uac1c\ub150_concepts", - "target": "index_db_\uc2a4\ud0a4\ub9c8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L92", - "weight": 1.0, - "source": "index_\uac1c\ub150_concepts", - "target": "index_storage_paths", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L76", - "weight": 1.0, - "source": "index_\uac1c\ub150_concepts", - "target": "index_ui_templates", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L107", - "weight": 1.0, - "source": "index_\uac1c\ub150_concepts", - "target": "index_workflow_\uc0c1\ud0dc_\uad00\ub9ac", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L104", - "weight": 1.0, - "source": "index_\uac1c\ub150_concepts", - "target": "index_\uacf5\ud1b5_\uc2a4\ud0a4\ub9c8_pydantic_\uc694\uccad_\uc751\ub2f5_\ubaa8\ub378", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L101", - "weight": 1.0, - "source": "index_\uac1c\ub150_concepts", - "target": "index_\uc758\uc874\uc131_\uc5ec\ub7ec_\ud398\uc774\uc9c0\uac00_\uacf5\uc720\ud558\ub294_\uc678\ubd80_\ub77c\uc774\ube0c\ub7ec\ub9ac", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "index.md", - "source_location": "L116", - "weight": 1.0, - "source": "index_\ubbf8\ud574\uacb0_\ud56d\ubaa9", - "target": "index_a\uadf8\ub8f9_\uc778\uc81c\uc2a4\ud2b8_\uc774\uc288", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L1", - "weight": 1.0, - "source": "log", - "target": "log_wiki_log", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L173", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_ingest_a01_home_\uc2e4_\ucf54\ub4dc_\ubc18\uc601", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L318", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_ingest_a02_progdetail_a00_common_framework", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L295", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_ingest_a03_compdetail", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L284", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_ingest_a04_newshistory", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L274", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_ingest_a05_edudetail", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L248", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_ingest_a06_login_backend_frontend_\uc0c1\uc138\ud654", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L233", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_ingest_a07_register_backend_frontend_\uc0c1\uc138\ud654", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L219", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_ingest_a08_support_backend_frontend_\uc0c1\uc138\ud654", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L204", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_ingest_a09_security_backend_frontend_\uc0c1\uc138\ud654", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L69", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_ingest_b02_projregister_backend_frontend_db_\uc0c1\uc138\ud654", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L57", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_ingest_b04_wf1_surface_\uc2e4_\ucf54\ub4dc_\ub300\uc870_5\ubd84\ud560_\uc0c1\uc138\ud654", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L47", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_ingest_b07_wf4_designdetail_\uc2e4_\ucf54\ub4dc_\ub300\uc870_\ubbf8\ucc29\uc218_\ud655\uc778", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L36", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_ingest_b09_wf6_estimation_\uc2e4_\ucf54\ub4dc_\ub300\uc870_\ubbf8\ucc29\uc218_\ud655\uc778", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L17", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_ingest_db_34\uac1c_\ud14c\uc774\ube14_\uc804\uc218_\uceec\ub7fc_\uc2e4\uce21_\ubc0f_\uc704\ud0a4_\ucd5c\uc2e0\ud654", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L148", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_ingest_guidelines_plans_7\uac74_\uc77c\uad04_\ubc18\uc601", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L30", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_ingest_lint_3\ud68c_\ubc18\ubcf5_\ub9b0\ud2b8_\uac1c\uc120_\uc0ac\uc774\ud074_\uc218\ud589_\ubc0f_\uc704\ud0a4_\ubb34\uacb0\uc131_\ud655\ubcf4", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L10", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_lint_5\ud68c_\ubc18\ubcf5_\ub9b0\ud2b8_\uac1c\uc120_\uc0ac\uc774\ud074_\uc218\ud589_\ubc0f_\uc704\ud0a4_\uba54\ud0c0_\uc815\ubcf4_\uc815\ubc00_\ubcf4\uc644", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L305", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_lint_a01_home_\ud398\uc774\uc9c0_\uac80\uc0ac_\ubc0f_\uc218\uc815", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L263", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_lint_a03_a05_\uc778\uc81c\uc2a4\ud2b8_\uc7ac\uc810\uac80", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L188", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_lint_a\uadf8\ub8f9_a01_a09_\uc804\uccb4_\uac80\uc99d_\ubc0f_\uc815\ud569\uc131_\uc810\uac80", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L167", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_lint_page_id_frontmatter_\ud544\ub4dc_\ub3c4\uc785", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L6", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_lint_\uad6c\ud615_\uc0c1\uc704_\ud3f4\ub354_\ud0c8\ucd9c_\ub9c1\ud06c_concepts_\uc804\uc218_\uc815\ubc00_\uad50\uc815", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L141", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_lint_\uc704\ud0a4_\uc2dc\uc2a4\ud15c_\ucd08\uae30_\uc138\ud305", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L126", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_lint_\uc804\uccb4_\uc704\ud0a4_\uad6c\uc870_\uc0c1\ud0dc_\uacf5\uc720_\uac1c\ub150_\uc815\ub9ac", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L134", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_lint_\uc804\uccb4_\uc704\ud0a4_\uad6c\uc870_\uc0c1\ud0dc_\uacf5\uc720_\uac1c\ub150_\uc815\ub9ac_134", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L85", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_query_b01_dashboard_\uc2e4_\ucf54\ub4dc_\uae30\uc900_\ucd5c\uc2e0\ud654", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L93", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_query_b03_fileinput_\uc2e4_\ucf54\ub4dc_\uae30\uc900_\ucd5c\uc2e0\ud654", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L102", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_query_b05_wf2_route_\uc2e4_\ucf54\ub4dc_\uae30\uc900_\ucd5c\uc2e0\ud654", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L111", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_query_b06_wf3_profilecross_\uc2e4_\ucf54\ub4dc_\uae30\uc900_\ucd5c\uc2e0\ud654", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L119", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_query_b08_wf5_quantity_\uc2e4_\ucf54\ub4dc_\uae30\uc900_\ucd5c\uc2e0\ud654", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L157", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_query_lint_\uc2e4_db_\uc2e4_\ucf54\ub4dc_\ub300\uc870_\uac80\uc99d_\uc77d\uae30_\uc804\uc6a9", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "log.md", - "source_location": "L180", - "weight": 1.0, - "source": "log_wiki_log", - "target": "log_2026_07_12_refactor_\ud30c\uc77c\uba85_\uaddc\uce59_\ub3c4\uc785_\ubc0f_\ub9c1\ud06c_\uc218\uc815", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A01_Home/A01_components.md", - "source_location": "L10", - "weight": 1.0, - "source": "pages_a01_home_a01_components", - "target": "pages_a01_home_a01_components_a01_home_\uc138\ubd80_\uad6c\ud604", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A01_Home/A01_components.md", - "source_location": "L27", - "weight": 1.0, - "source": "pages_a01_home_a01_components_a01_home_\uc138\ubd80_\uad6c\ud604", - "target": "pages_a01_home_a01_components_\ub370\uc774\ud130_\ud750\ub984", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A01_Home/A01_components.md", - "source_location": "L34", - "weight": 1.0, - "source": "pages_a01_home_a01_components_a01_home_\uc138\ubd80_\uad6c\ud604", - "target": "pages_a01_home_a01_components_\ubbf8\ud574\uacb0", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A01_Home/A01_components.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_a01_home_a01_components_a01_home_\uc138\ubd80_\uad6c\ud604", - "target": "pages_a01_home_a01_components_\uc2a4\ud0c0\uc77c", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A01_Home/A01_components.md", - "source_location": "L20", - "weight": 1.0, - "source": "pages_a01_home_a01_components_a01_home_\uc138\ubd80_\uad6c\ud604", - "target": "pages_a01_home_a01_components_\uc758\uc874\uc131", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A01_Home/A01_frontend.md", - "source_location": "L8", - "weight": 1.0, - "source": "pages_a01_home_a01_frontend", - "target": "pages_a01_home_a01_frontend_a01_home_frontend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A01_Home/A01_frontend.md", - "source_location": "L43", - "weight": 1.0, - "source": "pages_a01_home_a01_frontend_a01_home_frontend", - "target": "pages_a01_home_a01_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A01_Home/A01_frontend.md", - "source_location": "L58", - "weight": 1.0, - "source": "pages_a01_home_a01_frontend_a01_home_frontend", - "target": "pages_a01_home_a01_frontend_\uc138\ubd80_\uad6c\ud604", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A01_Home/A01_frontend.md", - "source_location": "L36", - "weight": 1.0, - "source": "pages_a01_home_a01_frontend_a01_home_frontend", - "target": "pages_a01_home_a01_frontend_\uc774\ubca4\ud2b8_\ud578\ub4e4\ub7ec", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A01_Home/A01_frontend.md", - "source_location": "L19", - "weight": 1.0, - "source": "pages_a01_home_a01_frontend_a01_home_frontend", - "target": "pages_a01_home_a01_frontend_\ucef4\ud3ec\ub10c\ud2b8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A01_Home/A01_frontend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_a01_home_a01_frontend_a01_home_frontend", - "target": "pages_a01_home_a01_frontend_\ud30c\uc77c_\uad6c\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A01_Home/A01_frontend.md", - "source_location": "L21", - "weight": 1.0, - "source": "pages_a01_home_a01_frontend_\ucef4\ud3ec\ub10c\ud2b8", - "target": "pages_a01_home_a01_frontend_hero_\uc139\uc158", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A01_Home/A01_frontend.md", - "source_location": "L31", - "weight": 1.0, - "source": "pages_a01_home_a01_frontend_\ucef4\ud3ec\ub10c\ud2b8", - "target": "pages_a01_home_a01_frontend_\uc8fc\uc694_\uae30\ub2a5_\uc139\uc158", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A01_Home/A01_frontend.md", - "source_location": "L26", - "weight": 1.0, - "source": "pages_a01_home_a01_frontend_\ucef4\ud3ec\ub10c\ud2b8", - "target": "pages_a01_home_a01_frontend_\ucd5c\uc2e0_\uc18c\uc2dd_\uc139\uc158", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A02_ProgDetail/A02_components.md", - "source_location": "L10", - "weight": 1.0, - "source": "pages_a02_progdetail_a02_components", - "target": "pages_a02_progdetail_a02_components_a02_progdetail_\uc138\ubd80_\uad6c\ud604", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A02_ProgDetail/A02_components.md", - "source_location": "L29", - "weight": 1.0, - "source": "pages_a02_progdetail_a02_components_a02_progdetail_\uc138\ubd80_\uad6c\ud604", - "target": "pages_a02_progdetail_a02_components_\ub370\uc774\ud130_\ud750\ub984", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A02_ProgDetail/A02_components.md", - "source_location": "L35", - "weight": 1.0, - "source": "pages_a02_progdetail_a02_components_a02_progdetail_\uc138\ubd80_\uad6c\ud604", - "target": "pages_a02_progdetail_a02_components_\ubbf8\ud574\uacb0_\ud2b9\uc774\uc0ac\ud56d", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A02_ProgDetail/A02_components.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_a02_progdetail_a02_components_a02_progdetail_\uc138\ubd80_\uad6c\ud604", - "target": "pages_a02_progdetail_a02_components_\uc2a4\ud0c0\uc77c_css", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A02_ProgDetail/A02_components.md", - "source_location": "L21", - "weight": 1.0, - "source": "pages_a02_progdetail_a02_components_a02_progdetail_\uc138\ubd80_\uad6c\ud604", - "target": "pages_a02_progdetail_a02_components_\uc758\uc874\uc131", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A02_ProgDetail/A02_frontend.md", - "source_location": "L8", - "weight": 1.0, - "source": "pages_a02_progdetail_a02_frontend", - "target": "pages_a02_progdetail_a02_frontend_a02_progdetail_frontend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A02_ProgDetail/A02_frontend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_a02_progdetail_a02_frontend_a02_progdetail_frontend", - "target": "pages_a02_progdetail_a02_frontend_\uad6c\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A02_ProgDetail/A02_frontend.md", - "source_location": "L31", - "weight": 1.0, - "source": "pages_a02_progdetail_a02_frontend_a02_progdetail_frontend", - "target": "pages_a02_progdetail_a02_frontend_\uc138\ubd80_\uad6c\ud604", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A02_ProgDetail/A02_frontend.md", - "source_location": "L24", - "weight": 1.0, - "source": "pages_a02_progdetail_a02_frontend_a02_progdetail_frontend", - "target": "pages_a02_progdetail_a02_frontend_\uc81c\uc57d_\uc900\uc218", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A02_ProgDetail/A02_frontend.md", - "source_location": "L16", - "weight": 1.0, - "source": "pages_a02_progdetail_a02_frontend_a02_progdetail_frontend", - "target": "pages_a02_progdetail_a02_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ubd84\uc11d", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A03_CompDetail/A03_frontend.md", - "source_location": "L8", - "weight": 1.0, - "source": "pages_a03_compdetail_a03_frontend", - "target": "pages_a03_compdetail_a03_frontend_a03_compdetail_frontend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A03_CompDetail/A03_frontend.md", - "source_location": "L29", - "weight": 1.0, - "source": "pages_a03_compdetail_a03_frontend_a03_compdetail_frontend", - "target": "pages_a03_compdetail_a03_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A03_CompDetail/A03_frontend.md", - "source_location": "L45", - "weight": 1.0, - "source": "pages_a03_compdetail_a03_frontend_a03_compdetail_frontend", - "target": "pages_a03_compdetail_a03_frontend_\uc2a4\ud0c0\uc77c_css", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A03_CompDetail/A03_frontend.md", - "source_location": "L64", - "weight": 1.0, - "source": "pages_a03_compdetail_a03_frontend_a03_compdetail_frontend", - "target": "pages_a03_compdetail_a03_frontend_\uc758\uc874\uc131", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A03_CompDetail/A03_frontend.md", - "source_location": "L19", - "weight": 1.0, - "source": "pages_a03_compdetail_a03_frontend_a03_compdetail_frontend", - "target": "pages_a03_compdetail_a03_frontend_\ucef4\ud3ec\ub10c\ud2b8_\uc139\uc158_\ube4c\ub354", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A03_CompDetail/A03_frontend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_a03_compdetail_a03_frontend_a03_compdetail_frontend", - "target": "pages_a03_compdetail_a03_frontend_\ud30c\uc77c_\uad6c\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A03_CompDetail/A03_frontend.md", - "source_location": "L47", - "weight": 1.0, - "source": "pages_a03_compdetail_a03_frontend_\uc2a4\ud0c0\uc77c_css", - "target": "pages_a03_compdetail_a03_frontend_css_\ud074\ub798\uc2a4_\uad6c\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A03_CompDetail/A03_frontend.md", - "source_location": "L61", - "weight": 1.0, - "source": "pages_a03_compdetail_a03_frontend_\uc2a4\ud0c0\uc77c_css", - "target": "pages_a03_compdetail_a03_frontend_\ubc18\uc751\ud615", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A04_NewsHistory/A04_frontend.md", - "source_location": "L8", - "weight": 1.0, - "source": "pages_a04_newshistory_a04_frontend", - "target": "pages_a04_newshistory_a04_frontend_a04_newshistory_frontend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A04_NewsHistory/A04_frontend.md", - "source_location": "L30", - "weight": 1.0, - "source": "pages_a04_newshistory_a04_frontend_a04_newshistory_frontend", - "target": "pages_a04_newshistory_a04_frontend_mock_\ub370\uc774\ud130_\uad6c\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A04_NewsHistory/A04_frontend.md", - "source_location": "L48", - "weight": 1.0, - "source": "pages_a04_newshistory_a04_frontend_a04_newshistory_frontend", - "target": "pages_a04_newshistory_a04_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A04_NewsHistory/A04_frontend.md", - "source_location": "L83", - "weight": 1.0, - "source": "pages_a04_newshistory_a04_frontend_a04_newshistory_frontend", - "target": "pages_a04_newshistory_a04_frontend_\ubbf8\ud574\uacb0_\uc0ac\ud56d", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A04_NewsHistory/A04_frontend.md", - "source_location": "L60", - "weight": 1.0, - "source": "pages_a04_newshistory_a04_frontend_a04_newshistory_frontend", - "target": "pages_a04_newshistory_a04_frontend_\uc2a4\ud0c0\uc77c_css", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A04_NewsHistory/A04_frontend.md", - "source_location": "L78", - "weight": 1.0, - "source": "pages_a04_newshistory_a04_frontend_a04_newshistory_frontend", - "target": "pages_a04_newshistory_a04_frontend_\uc758\uc874\uc131", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A04_NewsHistory/A04_frontend.md", - "source_location": "L19", - "weight": 1.0, - "source": "pages_a04_newshistory_a04_frontend_a04_newshistory_frontend", - "target": "pages_a04_newshistory_a04_frontend_\ucef4\ud3ec\ub10c\ud2b8_\uc139\uc158_\ube4c\ub354", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A04_NewsHistory/A04_frontend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_a04_newshistory_a04_frontend_a04_newshistory_frontend", - "target": "pages_a04_newshistory_a04_frontend_\ud30c\uc77c_\uad6c\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A04_NewsHistory/A04_frontend.md", - "source_location": "L62", - "weight": 1.0, - "source": "pages_a04_newshistory_a04_frontend_\uc2a4\ud0c0\uc77c_css", - "target": "pages_a04_newshistory_a04_frontend_css_\ud074\ub798\uc2a4_\uad6c\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A04_NewsHistory/A04_frontend.md", - "source_location": "L75", - "weight": 1.0, - "source": "pages_a04_newshistory_a04_frontend_\uc2a4\ud0c0\uc77c_css", - "target": "pages_a04_newshistory_a04_frontend_\ubc18\uc751\ud615", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A05_EduDetail/A05_frontend.md", - "source_location": "L8", - "weight": 1.0, - "source": "pages_a05_edudetail_a05_frontend", - "target": "pages_a05_edudetail_a05_frontend_a05_edudetail_frontend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A05_EduDetail/A05_frontend.md", - "source_location": "L28", - "weight": 1.0, - "source": "pages_a05_edudetail_a05_frontend_a05_edudetail_frontend", - "target": "pages_a05_edudetail_a05_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A05_EduDetail/A05_frontend.md", - "source_location": "L41", - "weight": 1.0, - "source": "pages_a05_edudetail_a05_frontend_a05_edudetail_frontend", - "target": "pages_a05_edudetail_a05_frontend_\uc2a4\ud0c0\uc77c_css", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A05_EduDetail/A05_frontend.md", - "source_location": "L65", - "weight": 1.0, - "source": "pages_a05_edudetail_a05_frontend_a05_edudetail_frontend", - "target": "pages_a05_edudetail_a05_frontend_\uc758\uc874\uc131", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A05_EduDetail/A05_frontend.md", - "source_location": "L59", - "weight": 1.0, - "source": "pages_a05_edudetail_a05_frontend_a05_edudetail_frontend", - "target": "pages_a05_edudetail_a05_frontend_\uc774\ubca4\ud2b8_\ud578\ub4e4\ub7ec", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A05_EduDetail/A05_frontend.md", - "source_location": "L19", - "weight": 1.0, - "source": "pages_a05_edudetail_a05_frontend_a05_edudetail_frontend", - "target": "pages_a05_edudetail_a05_frontend_\ucef4\ud3ec\ub10c\ud2b8_\uc139\uc158_\ube4c\ub354", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A05_EduDetail/A05_frontend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_a05_edudetail_a05_frontend_a05_edudetail_frontend", - "target": "pages_a05_edudetail_a05_frontend_\ud30c\uc77c_\uad6c\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A05_EduDetail/A05_frontend.md", - "source_location": "L43", - "weight": 1.0, - "source": "pages_a05_edudetail_a05_frontend_\uc2a4\ud0c0\uc77c_css", - "target": "pages_a05_edudetail_a05_frontend_css_\ud074\ub798\uc2a4_\uad6c\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A05_EduDetail/A05_frontend.md", - "source_location": "L56", - "weight": 1.0, - "source": "pages_a05_edudetail_a05_frontend_\uc2a4\ud0c0\uc77c_css", - "target": "pages_a05_edudetail_a05_frontend_\ubc18\uc751\ud615", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A06_Login/A06_backend.md", - "source_location": "L8", - "weight": 1.0, - "source": "pages_a06_login_a06_backend", - "target": "pages_a06_login_a06_backend_a06_login_backend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A06_Login/A06_backend.md", - "source_location": "L19", - "weight": 1.0, - "source": "pages_a06_login_a06_backend_a06_login_backend", - "target": "pages_a06_login_a06_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A06_Login/A06_backend.md", - "source_location": "L66", - "weight": 1.0, - "source": "pages_a06_login_a06_backend_a06_login_backend", - "target": "pages_a06_login_a06_backend_\uacc4\ud68d\uc11c\uc640_\uc2e4_\ucf54\ub4dc_\ubd88\uc77c\uce58", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A06_Login/A06_backend.md", - "source_location": "L29", - "weight": 1.0, - "source": "pages_a06_login_a06_backend_a06_login_backend", - "target": "pages_a06_login_a06_backend_\ub0b4\ubd80_\ud5ec\ud37c", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A06_Login/A06_backend.md", - "source_location": "L45", - "weight": 1.0, - "source": "pages_a06_login_a06_backend_a06_login_backend", - "target": "pages_a06_login_a06_backend_\ub85c\uadf8\uc778_\ub85c\uc9c1_\ud750\ub984", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A06_Login/A06_backend.md", - "source_location": "L54", - "weight": 1.0, - "source": "pages_a06_login_a06_backend_a06_login_backend", - "target": "pages_a06_login_a06_backend_\ubcf4\uc548_\uc815\ucc45_\uc2e4_\ucf54\ub4dc_\uae30\uc900", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A06_Login/A06_backend.md", - "source_location": "L37", - "weight": 1.0, - "source": "pages_a06_login_a06_backend_a06_login_backend", - "target": "pages_a06_login_a06_backend_\uc694\uccad_\uc2a4\ud0a4\ub9c8_pydantic", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A06_Login/A06_backend.md", - "source_location": "L60", - "weight": 1.0, - "source": "pages_a06_login_a06_backend_a06_login_backend", - "target": "pages_a06_login_a06_backend_\uc758\uc874\uc131_\uacf5\ud1b5_\uc720\ud2f8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A06_Login/A06_backend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_a06_login_a06_backend_a06_login_backend", - "target": "pages_a06_login_a06_backend_\ud30c\uc77c_\uad6c\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A06_Login/A06_frontend.md", - "source_location": "L8", - "weight": 1.0, - "source": "pages_a06_login_a06_frontend", - "target": "pages_a06_login_a06_frontend_a06_login_frontend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A06_Login/A06_frontend.md", - "source_location": "L27", - "weight": 1.0, - "source": "pages_a06_login_a06_frontend_a06_login_frontend", - "target": "pages_a06_login_a06_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8_\ud568\uc218", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A06_Login/A06_frontend.md", - "source_location": "L51", - "weight": 1.0, - "source": "pages_a06_login_a06_frontend_a06_login_frontend", - "target": "pages_a06_login_a06_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A06_Login/A06_frontend.md", - "source_location": "L64", - "weight": 1.0, - "source": "pages_a06_login_a06_frontend_a06_login_frontend", - "target": "pages_a06_login_a06_frontend_\uc2a4\ud0c0\uc77c_css", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A06_Login/A06_frontend.md", - "source_location": "L79", - "weight": 1.0, - "source": "pages_a06_login_a06_frontend_a06_login_frontend", - "target": "pages_a06_login_a06_frontend_\uc758\uc874\uc131", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A06_Login/A06_frontend.md", - "source_location": "L72", - "weight": 1.0, - "source": "pages_a06_login_a06_frontend_a06_login_frontend", - "target": "pages_a06_login_a06_frontend_\uc774\ubca4\ud2b8_\ud578\ub4e4\ub7ec", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A06_Login/A06_frontend.md", - "source_location": "L40", - "weight": 1.0, - "source": "pages_a06_login_a06_frontend_a06_login_frontend", - "target": "pages_a06_login_a06_frontend_\uc81c\ucd9c_\ub85c\uc9c1_2\ub2e8\uacc4_\ud3fc_\uc804\ud658", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A06_Login/A06_frontend.md", - "source_location": "L20", - "weight": 1.0, - "source": "pages_a06_login_a06_frontend_a06_login_frontend", - "target": "pages_a06_login_a06_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A06_Login/A06_frontend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_a06_login_a06_frontend_a06_login_frontend", - "target": "pages_a06_login_a06_frontend_\ud30c\uc77c_\uad6c\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A07_Register/A07_backend.md", - "source_location": "L8", - "weight": 1.0, - "source": "pages_a07_register_a07_backend", - "target": "pages_a07_register_a07_backend_a07_register_backend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A07_Register/A07_backend.md", - "source_location": "L19", - "weight": 1.0, - "source": "pages_a07_register_a07_backend_a07_register_backend", - "target": "pages_a07_register_a07_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A07_Register/A07_backend.md", - "source_location": "L36", - "weight": 1.0, - "source": "pages_a07_register_a07_backend_a07_register_backend", - "target": "pages_a07_register_a07_backend_\uac00\uc785_\ub85c\uc9c1_\ud750\ub984", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A07_Register/A07_backend.md", - "source_location": "L27", - "weight": 1.0, - "source": "pages_a07_register_a07_backend_a07_register_backend", - "target": "pages_a07_register_a07_backend_\uc694\uccad_\uc2a4\ud0a4\ub9c8_pydantic", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A07_Register/A07_backend.md", - "source_location": "L48", - "weight": 1.0, - "source": "pages_a07_register_a07_backend_a07_register_backend", - "target": "pages_a07_register_a07_backend_\uc758\uc874\uc131_\uacf5\ud1b5_\uc720\ud2f8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A07_Register/A07_backend.md", - "source_location": "L54", - "weight": 1.0, - "source": "pages_a07_register_a07_backend_a07_register_backend", - "target": "pages_a07_register_a07_backend_\ucc38\uace0", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A07_Register/A07_backend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_a07_register_a07_backend_a07_register_backend", - "target": "pages_a07_register_a07_backend_\ud30c\uc77c_\uad6c\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A07_Register/A07_frontend.md", - "source_location": "L8", - "weight": 1.0, - "source": "pages_a07_register_a07_frontend", - "target": "pages_a07_register_a07_frontend_a07_register_frontend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A07_Register/A07_frontend.md", - "source_location": "L33", - "weight": 1.0, - "source": "pages_a07_register_a07_frontend_a07_register_frontend", - "target": "pages_a07_register_a07_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8_\ud568\uc218", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A07_Register/A07_frontend.md", - "source_location": "L56", - "weight": 1.0, - "source": "pages_a07_register_a07_frontend_a07_register_frontend", - "target": "pages_a07_register_a07_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A07_Register/A07_frontend.md", - "source_location": "L70", - "weight": 1.0, - "source": "pages_a07_register_a07_frontend_a07_register_frontend", - "target": "pages_a07_register_a07_frontend_\uc2a4\ud0c0\uc77c_css", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A07_Register/A07_frontend.md", - "source_location": "L50", - "weight": 1.0, - "source": "pages_a07_register_a07_frontend_a07_register_frontend", - "target": "pages_a07_register_a07_frontend_\uc57d\uad00_\ub3d9\uc758_\uc544\ucf54\ub514\uc5b8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A07_Register/A07_frontend.md", - "source_location": "L85", - "weight": 1.0, - "source": "pages_a07_register_a07_frontend_a07_register_frontend", - "target": "pages_a07_register_a07_frontend_\uc758\uc874\uc131", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A07_Register/A07_frontend.md", - "source_location": "L77", - "weight": 1.0, - "source": "pages_a07_register_a07_frontend_a07_register_frontend", - "target": "pages_a07_register_a07_frontend_\uc774\ubca4\ud2b8_\ud578\ub4e4\ub7ec", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A07_Register/A07_frontend.md", - "source_location": "L43", - "weight": 1.0, - "source": "pages_a07_register_a07_frontend_a07_register_frontend", - "target": "pages_a07_register_a07_frontend_\uc81c\ucd9c_\ub85c\uc9c1_2\ub2e8\uacc4_\ud3fc_\uc804\ud658", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A07_Register/A07_frontend.md", - "source_location": "L24", - "weight": 1.0, - "source": "pages_a07_register_a07_frontend_a07_register_frontend", - "target": "pages_a07_register_a07_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218_ui_auth_page_\uc2e4\uc0ac\uc6a9", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A07_Register/A07_frontend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_a07_register_a07_frontend_a07_register_frontend", - "target": "pages_a07_register_a07_frontend_\ud30c\uc77c_\uad6c\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A08_Support/A08_backend.md", - "source_location": "L8", - "weight": 1.0, - "source": "pages_a08_support_a08_backend", - "target": "pages_a08_support_a08_backend_a08_support_backend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A08_Support/A08_backend.md", - "source_location": "L19", - "weight": 1.0, - "source": "pages_a08_support_a08_backend_a08_support_backend", - "target": "pages_a08_support_a08_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A08_Support/A08_backend.md", - "source_location": "L62", - "weight": 1.0, - "source": "pages_a08_support_a08_backend_a08_support_backend", - "target": "pages_a08_support_a08_backend_db_\uc2a4\ud0a4\ub9c8_\ubd88\uc77c\uce58_\ud655\uc778_\ud544\uc694", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A08_Support/A08_backend.md", - "source_location": "L44", - "weight": 1.0, - "source": "pages_a08_support_a08_backend_a08_support_backend", - "target": "pages_a08_support_a08_backend_db_\uc800\uc7a5_\uceec\ub7fc_\uc2e4_\ucf54\ub4dc_insert_\uae30\uc900", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A08_Support/A08_backend.md", - "source_location": "L25", - "weight": 1.0, - "source": "pages_a08_support_a08_backend_a08_support_backend", - "target": "pages_a08_support_a08_backend_\ub0b4\ubd80_\ud5ec\ud37c", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A08_Support/A08_backend.md", - "source_location": "L31", - "weight": 1.0, - "source": "pages_a08_support_a08_backend_a08_support_backend", - "target": "pages_a08_support_a08_backend_\uc694\uccad_\uc2a4\ud0a4\ub9c8_pydantic", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A08_Support/A08_backend.md", - "source_location": "L56", - "weight": 1.0, - "source": "pages_a08_support_a08_backend_a08_support_backend", - "target": "pages_a08_support_a08_backend_\uc758\uc874\uc131_\uacf5\ud1b5_\uc720\ud2f8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A08_Support/A08_backend.md", - "source_location": "L37", - "weight": 1.0, - "source": "pages_a08_support_a08_backend_a08_support_backend", - "target": "pages_a08_support_a08_backend_\uc811\uc218_\ub85c\uc9c1", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A08_Support/A08_backend.md", - "source_location": "L51", - "weight": 1.0, - "source": "pages_a08_support_a08_backend_a08_support_backend", - "target": "pages_a08_support_a08_backend_\ud2b9\uc9d5", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A08_Support/A08_backend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_a08_support_a08_backend_a08_support_backend", - "target": "pages_a08_support_a08_backend_\ud30c\uc77c_\uad6c\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A08_Support/A08_frontend.md", - "source_location": "L8", - "weight": 1.0, - "source": "pages_a08_support_a08_frontend", - "target": "pages_a08_support_a08_frontend_a08_support_frontend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A08_Support/A08_frontend.md", - "source_location": "L39", - "weight": 1.0, - "source": "pages_a08_support_a08_frontend_a08_support_frontend", - "target": "pages_a08_support_a08_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A08_Support/A08_frontend.md", - "source_location": "L34", - "weight": 1.0, - "source": "pages_a08_support_a08_frontend_a08_support_frontend", - "target": "pages_a08_support_a08_frontend_\uc138\uc158_\uc790\ub3d9_\ucc44\uc6c0", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A08_Support/A08_frontend.md", - "source_location": "L51", - "weight": 1.0, - "source": "pages_a08_support_a08_frontend_a08_support_frontend", - "target": "pages_a08_support_a08_frontend_\uc2a4\ud0c0\uc77c_css", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A08_Support/A08_frontend.md", - "source_location": "L65", - "weight": 1.0, - "source": "pages_a08_support_a08_frontend_a08_support_frontend", - "target": "pages_a08_support_a08_frontend_\uc758\uc874\uc131", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A08_Support/A08_frontend.md", - "source_location": "L59", - "weight": 1.0, - "source": "pages_a08_support_a08_frontend_a08_support_frontend", - "target": "pages_a08_support_a08_frontend_\uc774\ubca4\ud2b8_\ud578\ub4e4\ub7ec", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A08_Support/A08_frontend.md", - "source_location": "L27", - "weight": 1.0, - "source": "pages_a08_support_a08_frontend_a08_support_frontend", - "target": "pages_a08_support_a08_frontend_\uc81c\ucd9c_\ub85c\uc9c1", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A08_Support/A08_frontend.md", - "source_location": "L73", - "weight": 1.0, - "source": "pages_a08_support_a08_frontend_a08_support_frontend", - "target": "pages_a08_support_a08_frontend_\ucc38\uace0", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A08_Support/A08_frontend.md", - "source_location": "L19", - "weight": 1.0, - "source": "pages_a08_support_a08_frontend_a08_support_frontend", - "target": "pages_a08_support_a08_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A08_Support/A08_frontend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_a08_support_a08_frontend_a08_support_frontend", - "target": "pages_a08_support_a08_frontend_\ud30c\uc77c_\uad6c\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A09_Security/A09_backend.md", - "source_location": "L8", - "weight": 1.0, - "source": "pages_a09_security_a09_backend", - "target": "pages_a09_security_a09_backend_a09_security_backend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A09_Security/A09_backend.md", - "source_location": "L19", - "weight": 1.0, - "source": "pages_a09_security_a09_backend_a09_security_backend", - "target": "pages_a09_security_a09_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A09_Security/A09_backend.md", - "source_location": "L55", - "weight": 1.0, - "source": "pages_a09_security_a09_backend_a09_security_backend", - "target": "pages_a09_security_a09_backend_db_\uc800\uc7a5_activity_logs", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A09_Security/A09_backend.md", - "source_location": "L60", - "weight": 1.0, - "source": "pages_a09_security_a09_backend_a09_security_backend", - "target": "pages_a09_security_a09_backend_\uad8c\ud55c_\ud5ec\ud37c", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A09_Security/A09_backend.md", - "source_location": "L45", - "weight": 1.0, - "source": "pages_a09_security_a09_backend_a09_security_backend", - "target": "pages_a09_security_a09_backend_\uc694\uccad_\uc2a4\ud0a4\ub9c8_pydantic", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A09_Security/A09_backend.md", - "source_location": "L67", - "weight": 1.0, - "source": "pages_a09_security_a09_backend_a09_security_backend", - "target": "pages_a09_security_a09_backend_\uc758\uc874\uc131_\uacf5\ud1b5_\uc720\ud2f8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A09_Security/A09_backend.md", - "source_location": "L73", - "weight": 1.0, - "source": "pages_a09_security_a09_backend_a09_security_backend", - "target": "pages_a09_security_a09_backend_\ucc38\uace0", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A09_Security/A09_backend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_a09_security_a09_backend_a09_security_backend", - "target": "pages_a09_security_a09_backend_\ud30c\uc77c_\uad6c\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A09_Security/A09_backend.md", - "source_location": "L21", - "weight": 1.0, - "source": "pages_a09_security_a09_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "target": "pages_a09_security_a09_backend_\ub9c8\uc2a4\ud130_\ud68c\uc0ac_\uad00\ub9ac\uc790_\uc804\uc6a9_require_master", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A09_Security/A09_backend.md", - "source_location": "L31", - "weight": 1.0, - "source": "pages_a09_security_a09_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "target": "pages_a09_security_a09_backend_\uc2dc\uc2a4\ud15c_\uad00\ub9ac\uc790_\uc804\uc6a9_require_system_admin", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A09_Security/A09_backend.md", - "source_location": "L39", - "weight": 1.0, - "source": "pages_a09_security_a09_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "target": "pages_a09_security_a09_backend_\uc778\uc99d_\uc0ac\uc6a9\uc790_\uacf5\ud1b5_verify_session", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A09_Security/A09_frontend.md", - "source_location": "L8", - "weight": 1.0, - "source": "pages_a09_security_a09_frontend", - "target": "pages_a09_security_a09_frontend_a09_security_frontend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A09_Security/A09_frontend.md", - "source_location": "L40", - "weight": 1.0, - "source": "pages_a09_security_a09_frontend_a09_security_frontend", - "target": "pages_a09_security_a09_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8_\ud568\uc218_\ubbf8\uc0ac\uc6a9_\uc815\uc758\ub9cc", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A09_Security/A09_frontend.md", - "source_location": "L53", - "weight": 1.0, - "source": "pages_a09_security_a09_frontend_a09_security_frontend", - "target": "pages_a09_security_a09_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A09_Security/A09_frontend.md", - "source_location": "L64", - "weight": 1.0, - "source": "pages_a09_security_a09_frontend_a09_security_frontend", - "target": "pages_a09_security_a09_frontend_\uc2a4\ud0c0\uc77c_css", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A09_Security/A09_frontend.md", - "source_location": "L31", - "weight": 1.0, - "source": "pages_a09_security_a09_frontend_a09_security_frontend", - "target": "pages_a09_security_a09_frontend_\uc57d\uad00_\ub370\uc774\ud130_a09_security_terms_ts", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A09_Security/A09_frontend.md", - "source_location": "L69", - "weight": 1.0, - "source": "pages_a09_security_a09_frontend_a09_security_frontend", - "target": "pages_a09_security_a09_frontend_\uc57d\uad00_\ud14d\uc2a4\ud2b8\uc640_\uc2e4_\ucf54\ub4dc_\ubd88\uc77c\uce58", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A09_Security/A09_frontend.md", - "source_location": "L75", - "weight": 1.0, - "source": "pages_a09_security_a09_frontend_a09_security_frontend", - "target": "pages_a09_security_a09_frontend_\uc758\uc874\uc131", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A09_Security/A09_frontend.md", - "source_location": "L25", - "weight": 1.0, - "source": "pages_a09_security_a09_frontend_a09_security_frontend", - "target": "pages_a09_security_a09_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/A09_Security/A09_frontend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_a09_security_a09_frontend_a09_security_frontend", - "target": "pages_a09_security_a09_frontend_\ud30c\uc77c_\uad6c\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_api.md", - "source_location": "L10", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_api", - "target": "pages_b01_dashboard_b01_api_b01_dashboard_api", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_api.md", - "source_location": "L14", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_api_b01_dashboard_api", - "target": "pages_b01_dashboard_b01_api_\uc0ac\uc6a9\uc790_\ud68c\uc0ac", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_api.md", - "source_location": "L46", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_api_b01_dashboard_api", - "target": "pages_b01_dashboard_b01_api_\uc2dc\uc2a4\ud15c_\uad00\ub9ac\uc790", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_api.md", - "source_location": "L35", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_api_b01_dashboard_api", - "target": "pages_b01_dashboard_b01_api_\ud504\ub85c\uc81d\ud2b8_\uc790\ub3d9\ud654", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_api.md", - "source_location": "L25", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_api_b01_dashboard_api", - "target": "pages_b01_dashboard_b01_api_\ud68c\uc0ac_\uad00\ub9ac\uc790", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_backend.md", - "source_location": "L10", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_backend", - "target": "pages_b01_dashboard_b01_backend_b01_dashboard_backend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_backend.md", - "source_location": "L54", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_backend_b01_dashboard_backend", - "target": "pages_b01_dashboard_b01_backend_\uae30\uc220\ubd80\ucc44", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_backend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_backend_b01_dashboard_backend", - "target": "pages_b01_dashboard_b01_backend_\ub77c\uc6b0\ud130_\uad8c\ud55c_\ud5ec\ud37c", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_backend.md", - "source_location": "L44", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_backend_b01_dashboard_backend", - "target": "pages_b01_dashboard_b01_backend_\uc694\uccad_\uc2a4\ud0a4\ub9c8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_backend.md", - "source_location": "L24", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_backend_b01_dashboard_backend", - "target": "pages_b01_dashboard_b01_backend_\uc800\uc7a5\uc18c_\ud568\uc218", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_db.md", - "source_location": "L10", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_db", - "target": "pages_b01_dashboard_b01_db_b01_dashboard_db_\uc0ac\uc6a9_\uad00\uacc4", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_db.md", - "source_location": "L25", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_db_b01_dashboard_db_\uc0ac\uc6a9_\uad00\uacc4", - "target": "pages_b01_dashboard_b01_db_\ud2b8\ub79c\uc7ad\uc158_\uacbd\uacc4", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_dependencies.md", - "source_location": "L10", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_dependencies", - "target": "pages_b01_dashboard_b01_dependencies_b01_dashboard_dependencies", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_dependencies.md", - "source_location": "L23", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_dependencies_b01_dashboard_dependencies", - "target": "pages_b01_dashboard_b01_dependencies_\ud504\ub85c\uc81d\ud2b8_\uacf5\ud1b5_\ubaa8\ub4c8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_frontend.md", - "source_location": "L10", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_frontend", - "target": "pages_b01_dashboard_b01_frontend_b01_dashboard_frontend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_frontend.md", - "source_location": "L20", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_frontend_b01_dashboard_frontend", - "target": "pages_b01_dashboard_b01_frontend_ui_\uad8c\ud55c_\ud5ec\ud37c", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_frontend.md", - "source_location": "L45", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_frontend_b01_dashboard_frontend", - "target": "pages_b01_dashboard_b01_frontend_\uacf5\uc720_\uc790\uc6d0_\uc5f0\uacb0", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_frontend.md", - "source_location": "L52", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_frontend_b01_dashboard_frontend", - "target": "pages_b01_dashboard_b01_frontend_\uae30\uc220\ubd80\ucc44", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_frontend.md", - "source_location": "L32", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_frontend_b01_dashboard_frontend", - "target": "pages_b01_dashboard_b01_frontend_\ubaa8\ub2ec", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B01_Dashboard/B01_frontend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b01_dashboard_b01_frontend_b01_dashboard_frontend", - "target": "pages_b01_dashboard_b01_frontend_\ud30c\uc77c\uacfc_\uc9c4\uc785\uc810", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B02_ProjRegister/B02_backend.md", - "source_location": "L8", - "weight": 1.0, - "source": "pages_b02_projregister_b02_backend", - "target": "pages_b02_projregister_b02_backend_b02_projregister_backend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B02_ProjRegister/B02_backend.md", - "source_location": "L22", - "weight": 1.0, - "source": "pages_b02_projregister_b02_backend_b02_projregister_backend", - "target": "pages_b02_projregister_b02_backend_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B02_ProjRegister/B02_backend.md", - "source_location": "L56", - "weight": 1.0, - "source": "pages_b02_projregister_b02_backend_b02_projregister_backend", - "target": "pages_b02_projregister_b02_backend_db_\uc800\uc7a5_\uceec\ub7fc_projects_insert", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B02_ProjRegister/B02_backend.md", - "source_location": "L45", - "weight": 1.0, - "source": "pages_b02_projregister_b02_backend_b02_projregister_backend", - "target": "pages_b02_projregister_b02_backend_\uc0dd\uc131_\ub85c\uc9c1_create_project_\ud2b8\ub79c\uc7ad\uc158", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B02_ProjRegister/B02_backend.md", - "source_location": "L38", - "weight": 1.0, - "source": "pages_b02_projregister_b02_backend_b02_projregister_backend", - "target": "pages_b02_projregister_b02_backend_\uc694\uccad_\uc751\ub2f5_\uc2a4\ud0a4\ub9c8_pydantic", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B02_ProjRegister/B02_backend.md", - "source_location": "L61", - "weight": 1.0, - "source": "pages_b02_projregister_b02_backend_b02_projregister_backend", - "target": "pages_b02_projregister_b02_backend_\uc758\uc874\uc131_\uacf5\ud1b5_\uc720\ud2f8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B02_ProjRegister/B02_backend.md", - "source_location": "L69", - "weight": 1.0, - "source": "pages_b02_projregister_b02_backend_b02_projregister_backend", - "target": "pages_b02_projregister_b02_backend_\ucc38\uace0", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B02_ProjRegister/B02_backend.md", - "source_location": "L14", - "weight": 1.0, - "source": "pages_b02_projregister_b02_backend_b02_projregister_backend", - "target": "pages_b02_projregister_b02_backend_\ud30c\uc77c_\uad6c\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B02_ProjRegister/B02_backend.md", - "source_location": "L28", - "weight": 1.0, - "source": "pages_b02_projregister_b02_backend_b02_projregister_backend", - "target": "pages_b02_projregister_b02_backend_\ud568\uc218", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B02_ProjRegister/B02_db.md", - "source_location": "L8", - "weight": 1.0, - "source": "pages_b02_projregister_b02_db", - "target": "pages_b02_projregister_b02_db_b02_projregister_db", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B02_ProjRegister/B02_db.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b02_projregister_b02_db_b02_projregister_db", - "target": "pages_b02_projregister_b02_db_\uc4f0\ub294_\ud14c\uc774\ube14", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B02_ProjRegister/B02_db.md", - "source_location": "L20", - "weight": 1.0, - "source": "pages_b02_projregister_b02_db_b02_projregister_db", - "target": "pages_b02_projregister_b02_db_\uc800\uc7a5\uc18c_\ud30c\uc77c\uc2dc\uc2a4\ud15c", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B02_ProjRegister/B02_db.md", - "source_location": "L26", - "weight": 1.0, - "source": "pages_b02_projregister_b02_db_b02_projregister_db", - "target": "pages_b02_projregister_b02_db_\ucc38\uace0_\uacc4\ud68d_\ub2f9\uc2dc_\uc758\ub3c4", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B02_ProjRegister/B02_frontend.md", - "source_location": "L8", - "weight": 1.0, - "source": "pages_b02_projregister_b02_frontend", - "target": "pages_b02_projregister_b02_frontend_b02_projregister_frontend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B02_ProjRegister/B02_frontend.md", - "source_location": "L45", - "weight": 1.0, - "source": "pages_b02_projregister_b02_frontend_b02_projregister_frontend", - "target": "pages_b02_projregister_b02_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B02_ProjRegister/B02_frontend.md", - "source_location": "L57", - "weight": 1.0, - "source": "pages_b02_projregister_b02_frontend_b02_projregister_frontend", - "target": "pages_b02_projregister_b02_frontend_\uc2a4\ud0c0\uc77c_css", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B02_ProjRegister/B02_frontend.md", - "source_location": "L72", - "weight": 1.0, - "source": "pages_b02_projregister_b02_frontend_b02_projregister_frontend", - "target": "pages_b02_projregister_b02_frontend_\uc758\uc874\uc131", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B02_ProjRegister/B02_frontend.md", - "source_location": "L66", - "weight": 1.0, - "source": "pages_b02_projregister_b02_frontend_b02_projregister_frontend", - "target": "pages_b02_projregister_b02_frontend_\uc774\ubca4\ud2b8_\ud578\ub4e4\ub7ec", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B02_ProjRegister/B02_frontend.md", - "source_location": "L26", - "weight": 1.0, - "source": "pages_b02_projregister_b02_frontend_b02_projregister_frontend", - "target": "pages_b02_projregister_b02_frontend_\uc785\ub825_\ud544\ub4dc", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B02_ProjRegister/B02_frontend.md", - "source_location": "L37", - "weight": 1.0, - "source": "pages_b02_projregister_b02_frontend_b02_projregister_frontend", - "target": "pages_b02_projregister_b02_frontend_\uc81c\ucd9c_\ub85c\uc9c1", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B02_ProjRegister/B02_frontend.md", - "source_location": "L80", - "weight": 1.0, - "source": "pages_b02_projregister_b02_frontend_b02_projregister_frontend", - "target": "pages_b02_projregister_b02_frontend_\ucc38\uace0", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B02_ProjRegister/B02_frontend.md", - "source_location": "L19", - "weight": 1.0, - "source": "pages_b02_projregister_b02_frontend_b02_projregister_frontend", - "target": "pages_b02_projregister_b02_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B02_ProjRegister/B02_frontend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b02_projregister_b02_frontend_b02_projregister_frontend", - "target": "pages_b02_projregister_b02_frontend_\ud30c\uc77c_\uad6c\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_api.md", - "source_location": "L10", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_api", - "target": "pages_b03_fileinput_b03_api_b03_fileinput_api", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_api.md", - "source_location": "L27", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_api_b03_fileinput_api", - "target": "pages_b03_fileinput_b03_api_workflow_\uc870\ud68c", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_api.md", - "source_location": "L14", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_api_b03_fileinput_api", - "target": "pages_b03_fileinput_b03_api_\uc77c\ubc18_\uc5c5\ub85c\ub4dc", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_api.md", - "source_location": "L19", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_api_b03_fileinput_api", - "target": "pages_b03_fileinput_b03_api_\uccad\ud06c_\uc5c5\ub85c\ub4dc", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_backend.md", - "source_location": "L10", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_backend", - "target": "pages_b03_fileinput_b03_backend_b03_fileinput_backend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_backend.md", - "source_location": "L40", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_backend_b03_fileinput_backend", - "target": "pages_b03_fileinput_b03_backend_workflow_\uc54c\ub9bc", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_backend.md", - "source_location": "L22", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_backend_b03_fileinput_backend", - "target": "pages_b03_fileinput_b03_backend_\uba54\ud0c0\ub370\uc774\ud130_\ubd84\uc11d", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_backend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_backend_b03_fileinput_backend", - "target": "pages_b03_fileinput_b03_backend_\uc785\ub825_\uac80\uc99d_\ud30c\uc77c_\ucc98\ub9ac", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_backend.md", - "source_location": "L31", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_backend_b03_fileinput_backend", - "target": "pages_b03_fileinput_b03_backend_\uc800\uc7a5\uc18c", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_db.md", - "source_location": "L10", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_db", - "target": "pages_b03_fileinput_b03_db_b03_fileinput_db_\uc0ac\uc6a9_\uad00\uacc4", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_db.md", - "source_location": "L22", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_db_b03_fileinput_db_\uc0ac\uc6a9_\uad00\uacc4", - "target": "pages_b03_fileinput_b03_db_\ud30c\uc77c_\uacbd\ub85c", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_dependencies.md", - "source_location": "L10", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_dependencies", - "target": "pages_b03_fileinput_b03_dependencies_b03_fileinput_dependencies", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_dependencies.md", - "source_location": "L24", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_dependencies_b03_fileinput_dependencies", - "target": "pages_b03_fileinput_b03_dependencies_\uacf5\ud1b5_\ubaa8\ub4c8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_frontend.md", - "source_location": "L10", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_frontend", - "target": "pages_b03_fileinput_b03_frontend_b03_fileinput_frontend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_frontend.md", - "source_location": "L21", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_frontend_b03_fileinput_frontend", - "target": "pages_b03_fileinput_b03_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_frontend.md", - "source_location": "L42", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_frontend_b03_fileinput_frontend", - "target": "pages_b03_fileinput_b03_frontend_\uae30\uc220\ubd80\ucc44", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_frontend.md", - "source_location": "L31", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_frontend_b03_fileinput_frontend", - "target": "pages_b03_fileinput_b03_frontend_\ube0c\ub77c\uc6b0\uc800_\uc0c1\ud0dc_\uc624\ud504\ub77c\uc778_\ubcf4\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B03_FileInput/B03_frontend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b03_fileinput_b03_frontend_b03_fileinput_frontend", - "target": "pages_b03_fileinput_b03_frontend_\ud398\uc774\uc9c0_\uc5c5\ub85c\ub4dc_\ud750\ub984", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_api.md", - "source_location": "L8", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_api", - "target": "pages_b04_wf1_surface_b04_api_b04_wf1_surface_api", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_api.md", - "source_location": "L15", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_api_b04_wf1_surface_api", - "target": "pages_b04_wf1_surface_b04_api_\uc5d4\ub4dc\ud3ec\uc778\ud2b8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_api.md", - "source_location": "L31", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_api_b04_wf1_surface_api", - "target": "pages_b04_wf1_surface_b04_api_\uc694\uccad_\uc751\ub2f5_\uc2a4\ud0a4\ub9c8_pydantic", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_backend.md", - "source_location": "L8", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_backend", - "target": "pages_b04_wf1_surface_b04_backend_b04_wf1_surface_backend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_backend.md", - "source_location": "L53", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_backend_b04_wf1_surface_backend", - "target": "pages_b04_wf1_surface_b04_backend_\ub808\uac70\uc2dc_\ud3f4\ubc31_416_420\uc904", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_backend.md", - "source_location": "L21", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_backend_b04_wf1_surface_backend", - "target": "pages_b04_wf1_surface_b04_backend_\uc5d4\uc9c4_\uc11c\ube0c\ubaa8\ub4c8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_backend.md", - "source_location": "L44", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_backend_b04_wf1_surface_backend", - "target": "pages_b04_wf1_surface_b04_backend_\uc6cc\ud06c\ud50c\ub85c\uc6b0_\uc0c1\ud0dc_\uc804\uc774", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_backend.md", - "source_location": "L66", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_backend_b04_wf1_surface_backend", - "target": "pages_b04_wf1_surface_b04_backend_\uc758\uc874\uc131", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_backend.md", - "source_location": "L35", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_backend_b04_wf1_surface_backend", - "target": "pages_b04_wf1_surface_b04_backend_\uc8fc\uc694_\ud568\uc218_router", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_backend.md", - "source_location": "L62", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_backend_b04_wf1_surface_backend", - "target": "pages_b04_wf1_surface_b04_backend_\ucc45\uc784", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_backend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_backend_b04_wf1_surface_backend", - "target": "pages_b04_wf1_surface_b04_backend_\ud30c\uc77c_\uad6c\uc131_\uc624\ucf00\uc2a4\ud2b8\ub808\uc774\ud130_\uc800\uc7a5\uc18c_\ub77c\uc6b0\ud130", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_db.md", - "source_location": "L8", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_db", - "target": "pages_b04_wf1_surface_b04_db_b04_wf1_surface_db", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_db.md", - "source_location": "L23", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_db_b04_wf1_surface_db", - "target": "pages_b04_wf1_surface_b04_db_repository_\ud568\uc218", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_db.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_db_b04_wf1_surface_db", - "target": "pages_b04_wf1_surface_b04_db_\uc4f0\ub294_\ud14c\uc774\ube14", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_db.md", - "source_location": "L31", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_db_b04_wf1_surface_db", - "target": "pages_b04_wf1_surface_b04_db_\ucc38\uace0", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_dependencies.md", - "source_location": "L8", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_dependencies", - "target": "pages_b04_wf1_surface_b04_dependencies_b04_wf1_surface_dependencies", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_dependencies.md", - "source_location": "L30", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_dependencies_b04_wf1_surface_dependencies", - "target": "pages_b04_wf1_surface_b04_dependencies_dependencies_concept_\uc815\uc815_\ud544\uc694", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_dependencies.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_dependencies_b04_wf1_surface_dependencies", - "target": "pages_b04_wf1_surface_b04_dependencies_\ubc31\uc5d4\ub4dc_python", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_dependencies.md", - "source_location": "L24", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_dependencies_b04_wf1_surface_dependencies", - "target": "pages_b04_wf1_surface_b04_dependencies_\ud504\ub860\ud2b8\uc5d4\ub4dc_typescript", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_frontend.md", - "source_location": "L8", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_frontend", - "target": "pages_b04_wf1_surface_b04_frontend_b04_wf1_surface_frontend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_frontend.md", - "source_location": "L40", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_frontend_b04_wf1_surface_frontend", - "target": "pages_b04_wf1_surface_b04_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8_\ud568\uc218", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_frontend.md", - "source_location": "L22", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_frontend_b04_wf1_surface_frontend", - "target": "pages_b04_wf1_surface_b04_frontend_\uacc4\ud68d\uc11c\uc640_\uc2e4_\ucf54\ub4dc_\ubd88\uc77c\uce58_3d_\ubdf0\uc5b4", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_frontend.md", - "source_location": "L60", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_frontend_b04_wf1_surface_frontend", - "target": "pages_b04_wf1_surface_b04_frontend_\uc758\uc874\uc131", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_frontend.md", - "source_location": "L53", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_frontend_b04_wf1_surface_frontend", - "target": "pages_b04_wf1_surface_b04_frontend_\ucc98\ub9ac_\ud750\ub984", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_frontend.md", - "source_location": "L32", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_frontend_b04_wf1_surface_frontend", - "target": "pages_b04_wf1_surface_b04_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B04_wf1_Surface/B04_frontend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b04_wf1_surface_b04_frontend_b04_wf1_surface_frontend", - "target": "pages_b04_wf1_surface_b04_frontend_\ud30c\uc77c_\uad6c\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B05_wf2_Route/B05_api.md", - "source_location": "L10", - "weight": 1.0, - "source": "pages_b05_wf2_route_b05_api", - "target": "pages_b05_wf2_route_b05_api_b05_wf2_route_api", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B05_wf2_Route/B05_api.md", - "source_location": "L19", - "weight": 1.0, - "source": "pages_b05_wf2_route_b05_api_b05_wf2_route_api", - "target": "pages_b05_wf2_route_b05_api_solve_\ucc98\ub9ac_\uacb0\uacfc", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B05_wf2_Route/B05_backend.md", - "source_location": "L10", - "weight": 1.0, - "source": "pages_b05_wf2_route_b05_backend", - "target": "pages_b05_wf2_route_b05_backend_b05_wf2_route_backend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B05_wf2_Route/B05_backend.md", - "source_location": "L20", - "weight": 1.0, - "source": "pages_b05_wf2_route_b05_backend_b05_wf2_route_backend", - "target": "pages_b05_wf2_route_b05_backend_\uacbd\ub85c_\uacc4\uc0b0_\uc5d4\uc9c4", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B05_wf2_Route/B05_backend.md", - "source_location": "L46", - "weight": 1.0, - "source": "pages_b05_wf2_route_b05_backend_b05_wf2_route_backend", - "target": "pages_b05_wf2_route_b05_backend_\uae30\uc220\ubd80\ucc44", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B05_wf2_Route/B05_backend.md", - "source_location": "L31", - "weight": 1.0, - "source": "pages_b05_wf2_route_b05_backend_b05_wf2_route_backend", - "target": "pages_b05_wf2_route_b05_backend_\uae30\ud558_\uacb0\uacfc_\ubcc0\ud658", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B05_wf2_Route/B05_backend.md", - "source_location": "L39", - "weight": 1.0, - "source": "pages_b05_wf2_route_b05_backend_b05_wf2_route_backend", - "target": "pages_b05_wf2_route_b05_backend_\ub77c\uc6b0\ud130_workflow", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B05_wf2_Route/B05_backend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b05_wf2_route_b05_backend_b05_wf2_route_backend", - "target": "pages_b05_wf2_route_b05_backend_\uc694\uccad_\uc751\ub2f5_\ubaa8\ub378", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B05_wf2_Route/B05_db.md", - "source_location": "L10", - "weight": 1.0, - "source": "pages_b05_wf2_route_b05_db", - "target": "pages_b05_wf2_route_b05_db_b05_wf2_route_db_\uc0ac\uc6a9_\uad00\uacc4", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B05_wf2_Route/B05_db.md", - "source_location": "L20", - "weight": 1.0, - "source": "pages_b05_wf2_route_b05_db_b05_wf2_route_db_\uc0ac\uc6a9_\uad00\uacc4", - "target": "pages_b05_wf2_route_b05_db_repository_\ud568\uc218", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B05_wf2_Route/B05_db.md", - "source_location": "L30", - "weight": 1.0, - "source": "pages_b05_wf2_route_b05_db_b05_wf2_route_db_\uc0ac\uc6a9_\uad00\uacc4", - "target": "pages_b05_wf2_route_b05_db_\uc800\uc7a5_\uacbd\ub85c", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B05_wf2_Route/B05_dependencies.md", - "source_location": "L10", - "weight": 1.0, - "source": "pages_b05_wf2_route_b05_dependencies", - "target": "pages_b05_wf2_route_b05_dependencies_b05_wf2_route_dependencies", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B05_wf2_Route/B05_dependencies.md", - "source_location": "L23", - "weight": 1.0, - "source": "pages_b05_wf2_route_b05_dependencies_b05_wf2_route_dependencies", - "target": "pages_b05_wf2_route_b05_dependencies_\ud398\uc774\uc9c0_\ud30c\uc77c\ubcc4_\uc5f0\uacb0", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B05_wf2_Route/B05_frontend.md", - "source_location": "L10", - "weight": 1.0, - "source": "pages_b05_wf2_route_b05_frontend", - "target": "pages_b05_wf2_route_b05_frontend_b05_wf2_route_frontend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B05_wf2_Route/B05_frontend.md", - "source_location": "L21", - "weight": 1.0, - "source": "pages_b05_wf2_route_b05_frontend_b05_wf2_route_frontend", - "target": "pages_b05_wf2_route_b05_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B05_wf2_Route/B05_frontend.md", - "source_location": "L40", - "weight": 1.0, - "source": "pages_b05_wf2_route_b05_frontend_b05_wf2_route_frontend", - "target": "pages_b05_wf2_route_b05_frontend_\uae30\uc220\ubd80\ucc44", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B05_wf2_Route/B05_frontend.md", - "source_location": "L29", - "weight": 1.0, - "source": "pages_b05_wf2_route_b05_frontend_b05_wf2_route_frontend", - "target": "pages_b05_wf2_route_b05_frontend_\uc785\ub825_\uadf8\ub8f9", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B05_wf2_Route/B05_frontend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b05_wf2_route_b05_frontend_b05_wf2_route_frontend", - "target": "pages_b05_wf2_route_b05_frontend_\ud654\uba74\uacfc_\uc0c1\ud638\uc791\uc6a9", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B06_wf3_ProfileCross/B06_api.md", - "source_location": "L10", - "weight": 1.0, - "source": "pages_b06_wf3_profilecross_b06_api", - "target": "pages_b06_wf3_profilecross_b06_api_b06_wf3_profilecross_api", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B06_wf3_ProfileCross/B06_api.md", - "source_location": "L20", - "weight": 1.0, - "source": "pages_b06_wf3_profilecross_b06_api_b06_wf3_profilecross_api", - "target": "pages_b06_wf3_profilecross_b06_api_\uc0dd\uc131_\uc751\ub2f5", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", - "source_location": "L10", - "weight": 1.0, - "source": "pages_b06_wf3_profilecross_b06_backend", - "target": "pages_b06_wf3_profilecross_b06_backend_b06_wf3_profilecross_backend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", - "source_location": "L31", - "weight": 1.0, - "source": "pages_b06_wf3_profilecross_b06_backend_b06_wf3_profilecross_backend", - "target": "pages_b06_wf3_profilecross_b06_backend_\ub77c\uc6b0\ud130_workflow", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", - "source_location": "L20", - "weight": 1.0, - "source": "pages_b06_wf3_profilecross_b06_backend_b06_wf3_profilecross_backend", - "target": "pages_b06_wf3_profilecross_b06_backend_\uc0dd\uc131_\uc5d4\uc9c4", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b06_wf3_profilecross_b06_backend_b06_wf3_profilecross_backend", - "target": "pages_b06_wf3_profilecross_b06_backend_\uc694\uccad_\uc751\ub2f5_\ubaa8\ub378", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B06_wf3_ProfileCross/B06_backend.md", - "source_location": "L39", - "weight": 1.0, - "source": "pages_b06_wf3_profilecross_b06_backend_b06_wf3_profilecross_backend", - "target": "pages_b06_wf3_profilecross_b06_backend_\uc7ac\uc2e4\ud589", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B06_wf3_ProfileCross/B06_db.md", - "source_location": "L10", - "weight": 1.0, - "source": "pages_b06_wf3_profilecross_b06_db", - "target": "pages_b06_wf3_profilecross_b06_db_b06_wf3_profilecross_db_\uc0ac\uc6a9_\uad00\uacc4", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B06_wf3_ProfileCross/B06_db.md", - "source_location": "L19", - "weight": 1.0, - "source": "pages_b06_wf3_profilecross_b06_db_b06_wf3_profilecross_db_\uc0ac\uc6a9_\uad00\uacc4", - "target": "pages_b06_wf3_profilecross_b06_db_repository_\ud568\uc218", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B06_wf3_ProfileCross/B06_db.md", - "source_location": "L29", - "weight": 1.0, - "source": "pages_b06_wf3_profilecross_b06_db_b06_wf3_profilecross_db_\uc0ac\uc6a9_\uad00\uacc4", - "target": "pages_b06_wf3_profilecross_b06_db_\ud30c\uc77c_\uacbd\ub85c", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B06_wf3_ProfileCross/B06_dependencies.md", - "source_location": "L10", - "weight": 1.0, - "source": "pages_b06_wf3_profilecross_b06_dependencies", - "target": "pages_b06_wf3_profilecross_b06_dependencies_b06_wf3_profilecross_dependencies", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B06_wf3_ProfileCross/B06_dependencies.md", - "source_location": "L22", - "weight": 1.0, - "source": "pages_b06_wf3_profilecross_b06_dependencies_b06_wf3_profilecross_dependencies", - "target": "pages_b06_wf3_profilecross_b06_dependencies_\uacf5\ud1b5_\ubaa8\ub4c8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B06_wf3_ProfileCross/B06_frontend.md", - "source_location": "L10", - "weight": 1.0, - "source": "pages_b06_wf3_profilecross_b06_frontend", - "target": "pages_b06_wf3_profilecross_b06_frontend_b06_wf3_profilecross_frontend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B06_wf3_ProfileCross/B06_frontend.md", - "source_location": "L21", - "weight": 1.0, - "source": "pages_b06_wf3_profilecross_b06_frontend_b06_wf3_profilecross_frontend", - "target": "pages_b06_wf3_profilecross_b06_frontend_api_\ud074\ub77c\uc774\uc5b8\ud2b8", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B06_wf3_ProfileCross/B06_frontend.md", - "source_location": "L30", - "weight": 1.0, - "source": "pages_b06_wf3_profilecross_b06_frontend_b06_wf3_profilecross_frontend", - "target": "pages_b06_wf3_profilecross_b06_frontend_\uc785\ub825_\uc635\uc158", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B06_wf3_ProfileCross/B06_frontend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b06_wf3_profilecross_b06_frontend_b06_wf3_profilecross_frontend", - "target": "pages_b06_wf3_profilecross_b06_frontend_\ud654\uba74_workflow", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", - "source_location": "L8", - "weight": 1.0, - "source": "pages_b07_wf4_designdetail_b07_frontend", - "target": "pages_b07_wf4_designdetail_b07_frontend_b07_wf4_designdetail_frontend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", - "source_location": "L24", - "weight": 1.0, - "source": "pages_b07_wf4_designdetail_b07_frontend_b07_wf4_designdetail_frontend", - "target": "pages_b07_wf4_designdetail_b07_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", - "source_location": "L35", - "weight": 1.0, - "source": "pages_b07_wf4_designdetail_b07_frontend_b07_wf4_designdetail_frontend", - "target": "pages_b07_wf4_designdetail_b07_frontend_\ubc31\uc5d4\ub4dc_db_\ubbf8\ucc29\uc218_\uacc4\ud68d\uc801_\ubc94\uc704_\uc81c\uc678", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", - "source_location": "L30", - "weight": 1.0, - "source": "pages_b07_wf4_designdetail_b07_frontend_b07_wf4_designdetail_frontend", - "target": "pages_b07_wf4_designdetail_b07_frontend_\uc758\uc874\uc131", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", - "source_location": "L42", - "weight": 1.0, - "source": "pages_b07_wf4_designdetail_b07_frontend_b07_wf4_designdetail_frontend", - "target": "pages_b07_wf4_designdetail_b07_frontend_\ucc38\uace0", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", - "source_location": "L18", - "weight": 1.0, - "source": "pages_b07_wf4_designdetail_b07_frontend_b07_wf4_designdetail_frontend", - "target": "pages_b07_wf4_designdetail_b07_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B07_wf4_DesignDetail/B07_frontend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b07_wf4_designdetail_b07_frontend_b07_wf4_designdetail_frontend", - "target": "pages_b07_wf4_designdetail_b07_frontend_\ud30c\uc77c_\uad6c\uc870", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B08_wf5_Quantity/B08_db.md", - "source_location": "L10", - "weight": 1.0, - "source": "pages_b08_wf5_quantity_b08_db", - "target": "pages_b08_wf5_quantity_b08_db_b08_wf5_quantity_db", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B08_wf5_Quantity/B08_db.md", - "source_location": "L19", - "weight": 1.0, - "source": "pages_b08_wf5_quantity_b08_db_b08_wf5_quantity_db", - "target": "pages_b08_wf5_quantity_b08_db_\uad6c\ud604_\ub300\uae30_\ud56d\ubaa9", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", - "source_location": "L10", - "weight": 1.0, - "source": "pages_b08_wf5_quantity_b08_frontend", - "target": "pages_b08_wf5_quantity_b08_frontend_b08_wf5_quantity_frontend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", - "source_location": "L30", - "weight": 1.0, - "source": "pages_b08_wf5_quantity_b08_frontend_b08_wf5_quantity_frontend", - "target": "pages_b08_wf5_quantity_b08_frontend_\uacc4\ud68d_\ucc45\uc784", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", - "source_location": "L39", - "weight": 1.0, - "source": "pages_b08_wf5_quantity_b08_frontend_b08_wf5_quantity_frontend", - "target": "pages_b08_wf5_quantity_b08_frontend_\uae30\uc220\ubd80\ucc44", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b08_wf5_quantity_b08_frontend_b08_wf5_quantity_frontend", - "target": "pages_b08_wf5_quantity_b08_frontend_\ud604\uc7ac_\uad6c\ud604", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B08_wf5_Quantity/B08_frontend.md", - "source_location": "L20", - "weight": 1.0, - "source": "pages_b08_wf5_quantity_b08_frontend_b08_wf5_quantity_frontend", - "target": "pages_b08_wf5_quantity_b08_frontend_\ud654\uba74_\uc0c1\ud0dc", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", - "source_location": "L8", - "weight": 1.0, - "source": "pages_b09_wf6_estimation_b09_frontend", - "target": "pages_b09_wf6_estimation_b09_frontend_b09_wf6_estimation_frontend", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", - "source_location": "L24", - "weight": 1.0, - "source": "pages_b09_wf6_estimation_b09_frontend_b09_wf6_estimation_frontend", - "target": "pages_b09_wf6_estimation_b09_frontend_\ub85c\uceec\ub77c\uc774\uc81c\uc774\uc158", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", - "source_location": "L35", - "weight": 1.0, - "source": "pages_b09_wf6_estimation_b09_frontend_b09_wf6_estimation_frontend", - "target": "pages_b09_wf6_estimation_b09_frontend_\ubc31\uc5d4\ub4dc_db_\ubbf8\ucc29\uc218", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", - "source_location": "L30", - "weight": 1.0, - "source": "pages_b09_wf6_estimation_b09_frontend_b09_wf6_estimation_frontend", - "target": "pages_b09_wf6_estimation_b09_frontend_\uc758\uc874\uc131", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", - "source_location": "L42", - "weight": 1.0, - "source": "pages_b09_wf6_estimation_b09_frontend_b09_wf6_estimation_frontend", - "target": "pages_b09_wf6_estimation_b09_frontend_\ucc38\uace0", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", - "source_location": "L18", - "weight": 1.0, - "source": "pages_b09_wf6_estimation_b09_frontend_b09_wf6_estimation_frontend", - "target": "pages_b09_wf6_estimation_b09_frontend_\ucef4\ud3ec\ub10c\ud2b8_\ud568\uc218", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "pages/B09_wf6_Estimation/B09_frontend.md", - "source_location": "L12", - "weight": 1.0, - "source": "pages_b09_wf6_estimation_b09_frontend_b09_wf6_estimation_frontend", - "target": "pages_b09_wf6_estimation_b09_frontend_\ud30c\uc77c_\uad6c\uc870", - "confidence_score": 1.0 - } - ], - "hyperedges": [], - "built_at_commit": "35c65c9220e42fb3b6537d60008296c5cbbbd08e" -} \ No newline at end of file diff --git a/docs/wiki/graphify-out/manifest.json b/docs/wiki/graphify-out/manifest.json deleted file mode 100644 index 5f7c2732..00000000 --- a/docs/wiki/graphify-out/manifest.json +++ /dev/null @@ -1,347 +0,0 @@ -{ - "AGENTS.md": { - "mtime": 1783834983.0604684, - "ast_hash": "74d04caee1f70d588da20af0f2224049", - "semantic_hash": "" - }, - "CLAUDE.md": { - "mtime": 1783834983.0604684, - "ast_hash": "74d04caee1f70d588da20af0f2224049", - "semantic_hash": "" - }, - "concepts/a00_app_shell_framework.md": { - "mtime": 1783850530.4141161, - "ast_hash": "2b483a655d0638849d9dc1ffaa38a503", - "semantic_hash": "" - }, - "concepts/a00_app_shell_framework_scaffold.md": { - "mtime": 1783844389.0126913, - "ast_hash": "b08d53673fa62ab2ae17105341f6beda", - "semantic_hash": "" - }, - "concepts/api_common.md": { - "mtime": 1783849575.5855756, - "ast_hash": "aa36d7b826c4ac0349cd64a64cde5fe4", - "semantic_hash": "" - }, - "concepts/auth_rbac.md": { - "mtime": 1783849578.4673145, - "ast_hash": "983376ddb2dcd996849889557b1e5227", - "semantic_hash": "" - }, - "concepts/common_util.md": { - "mtime": 1783849579.2001753, - "ast_hash": "adb12874ce5f40560652367b5f7a4bca", - "semantic_hash": "" - }, - "concepts/db_schema/files_surface.md": { - "mtime": 1783850268.5917373, - "ast_hash": "37c2c7e2ce683232b6282ad89e7508a1", - "semantic_hash": "" - }, - "concepts/db_schema/logs_monitoring.md": { - "mtime": 1783850257.6422136, - "ast_hash": "6eb1d0c95d17cd7309774022f623f0d6", - "semantic_hash": "" - }, - "concepts/db_schema/overview.md": { - "mtime": 1783850340.5808604, - "ast_hash": "86819ed4c2c6a755995116d5ebf1060a", - "semantic_hash": "" - }, - "concepts/db_schema/projects.md": { - "mtime": 1783850262.5202365, - "ast_hash": "dc10c1ca8cc8f763ac27fe02f4976b2b", - "semantic_hash": "" - }, - "concepts/db_schema/route_profile.md": { - "mtime": 1783850288.182818, - "ast_hash": "f41fdfb63f39e23eb591fc1939be6c65", - "semantic_hash": "" - }, - "concepts/db_schema/structure_output.md": { - "mtime": 1783850297.4292428, - "ast_hash": "ada0d9e74f91349f05a8ab1ac3231c47", - "semantic_hash": "" - }, - "concepts/db_schema/unconfirmed/README.md": { - "mtime": 1783850335.0813339, - "ast_hash": "70f32d481aeff62e260e1da78aae10bd", - "semantic_hash": "" - }, - "concepts/db_schema/users_auth.md": { - "mtime": 1783850220.2711427, - "ast_hash": "b39a4cae8f120944d31fb846b9c5168e", - "semantic_hash": "" - }, - "concepts/dependencies.md": { - "mtime": 1783850549.5115643, - "ast_hash": "93732554454116e3543ac2269b9d1f0d", - "semantic_hash": "" - }, - "concepts/schema_common.md": { - "mtime": 1783844389.0166397, - "ast_hash": "ebde162a912c33c17bd42e3edb469bc6", - "semantic_hash": "" - }, - "concepts/storage_paths.md": { - "mtime": 1783850555.214286, - "ast_hash": "2cf2c535406b15d5f2d7d5cde19fd4d2", - "semantic_hash": "" - }, - "concepts/ui_templates.md": { - "mtime": 1783850532.4820366, - "ast_hash": "29502f868494fc7a1e939c10bdd4f3e7", - "semantic_hash": "" - }, - "concepts/workflow_state.md": { - "mtime": 1783850560.3326466, - "ast_hash": "9a9e0acbd12fe065527f14205b576e71", - "semantic_hash": "" - }, - "index.md": { - "mtime": 1783850468.5420854, - "ast_hash": "171ed6c7eb37313803b566c33219e3b5", - "semantic_hash": "" - }, - "log.md": { - "mtime": 1783850724.1888082, - "ast_hash": "da1581ecf1d8cfed560bf8222b53aac7", - "semantic_hash": "" - }, - "pages/A01_Home/A01_components.md": { - "mtime": 1783849656.6167772, - "ast_hash": "af5724435a2da0845f42aed322971f7a", - "semantic_hash": "" - }, - "pages/A01_Home/A01_frontend.md": { - "mtime": 1783849659.8280177, - "ast_hash": "59d5bcdf4d88a0e576c55c5752579a23", - "semantic_hash": "" - }, - "pages/A02_ProgDetail/A02_components.md": { - "mtime": 1783849775.26568, - "ast_hash": "d663c36e0202f099a2602d631c2f962d", - "semantic_hash": "" - }, - "pages/A02_ProgDetail/A02_frontend.md": { - "mtime": 1783849775.2666833, - "ast_hash": "b590aa6c5a13b2478592e23803f5398d", - "semantic_hash": "" - }, - "pages/A03_CompDetail/A03_frontend.md": { - "mtime": 1783844088.3028529, - "ast_hash": "833dd9355fb96b46b0f94271a642c216", - "semantic_hash": "" - }, - "pages/A04_NewsHistory/A04_frontend.md": { - "mtime": 1783844098.3258784, - "ast_hash": "5bb83dca8f9f11f0122f5911b295e279", - "semantic_hash": "" - }, - "pages/A05_EduDetail/A05_frontend.md": { - "mtime": 1783844108.812845, - "ast_hash": "fadf785b9ebad689862cb8cfa9827fbd", - "semantic_hash": "" - }, - "pages/A06_Login/A06_backend.md": { - "mtime": 1783849775.2687664, - "ast_hash": "6de8c206c28526ccc8bbb8eff5654919", - "semantic_hash": "" - }, - "pages/A06_Login/A06_frontend.md": { - "mtime": 1783849775.2687664, - "ast_hash": "5d0213c68346d896fe9d11cd841331ad", - "semantic_hash": "" - }, - "pages/A07_Register/A07_backend.md": { - "mtime": 1783849775.2697725, - "ast_hash": "66f37d5bece9abdffd3149441e9b0b0d", - "semantic_hash": "" - }, - "pages/A07_Register/A07_frontend.md": { - "mtime": 1783849775.2707722, - "ast_hash": "0c30b980601414cefa02c05ba50a9008", - "semantic_hash": "" - }, - "pages/A08_Support/A08_backend.md": { - "mtime": 1783849900.5895991, - "ast_hash": "d2dd1028a837d8c17429179c4ffd7135", - "semantic_hash": "" - }, - "pages/A08_Support/A08_frontend.md": { - "mtime": 1783849775.2730606, - "ast_hash": "f2ebae60bb02320db4ac39e0a66b9d69", - "semantic_hash": "" - }, - "pages/A09_Security/A09_backend.md": { - "mtime": 1783849775.2740672, - "ast_hash": "f96ba36247f269672317bc352c705a7c", - "semantic_hash": "" - }, - "pages/A09_Security/A09_frontend.md": { - "mtime": 1783849775.2750769, - "ast_hash": "d90b0617abec1376bd32e140b0eb1f63", - "semantic_hash": "" - }, - "pages/B01_Dashboard/B01_api.md": { - "mtime": 1783849775.2770772, - "ast_hash": "c85334659f25daeed71aefa2f2be9ad0", - "semantic_hash": "" - }, - "pages/B01_Dashboard/B01_backend.md": { - "mtime": 1783849775.278077, - "ast_hash": "631e1b564272bebd703c0e66f4fc7128", - "semantic_hash": "" - }, - "pages/B01_Dashboard/B01_db.md": { - "mtime": 1783850631.766598, - "ast_hash": "e7467e7ab25de8a576244c8595fefca4", - "semantic_hash": "" - }, - "pages/B01_Dashboard/B01_dependencies.md": { - "mtime": 1783849775.2801342, - "ast_hash": "0879a678987bb76f3fbe44e55ee8758d", - "semantic_hash": "" - }, - "pages/B01_Dashboard/B01_frontend.md": { - "mtime": 1783849775.2801342, - "ast_hash": "4fe7a90bb05a32a5103cf66156a9c061", - "semantic_hash": "" - }, - "pages/B02_ProjRegister/B02_backend.md": { - "mtime": 1783849775.282399, - "ast_hash": "304aee3205bcef9a2314c7d882bd84ea", - "semantic_hash": "" - }, - "pages/B02_ProjRegister/B02_db.md": { - "mtime": 1783849775.282399, - "ast_hash": "ca17bc76462201e2ce50e754fbe7c816", - "semantic_hash": "" - }, - "pages/B02_ProjRegister/B02_frontend.md": { - "mtime": 1783849775.2833989, - "ast_hash": "407638de4f1ed56a3ba72c5c244d8ebd", - "semantic_hash": "" - }, - "pages/B03_FileInput/B03_api.md": { - "mtime": 1783849775.2843988, - "ast_hash": "eac552bd29adfc99ec5d2f0537d04d7e", - "semantic_hash": "" - }, - "pages/B03_FileInput/B03_backend.md": { - "mtime": 1783849775.285399, - "ast_hash": "176914d9912ba95b21320010552cd774", - "semantic_hash": "" - }, - "pages/B03_FileInput/B03_db.md": { - "mtime": 1783850637.4484162, - "ast_hash": "229bc7bb89bc7fb3a745fa7a1eb56640", - "semantic_hash": "" - }, - "pages/B03_FileInput/B03_dependencies.md": { - "mtime": 1783849775.2873988, - "ast_hash": "c3ce15681add07e1475a7e7743daf4e5", - "semantic_hash": "" - }, - "pages/B03_FileInput/B03_frontend.md": { - "mtime": 1783849775.2873988, - "ast_hash": "73828382a294172dadee59925d56414e", - "semantic_hash": "" - }, - "pages/B04_wf1_Surface/B04_api.md": { - "mtime": 1783849775.2910345, - "ast_hash": "98dc9571c054a9cc67f41e34c924afc4", - "semantic_hash": "" - }, - "pages/B04_wf1_Surface/B04_backend.md": { - "mtime": 1783849775.2921586, - "ast_hash": "0c5544f6648212b90660aa84f35982ba", - "semantic_hash": "" - }, - "pages/B04_wf1_Surface/B04_db.md": { - "mtime": 1783849775.292957, - "ast_hash": "7cb52c0844a907b14cfbd5230988c56f", - "semantic_hash": "" - }, - "pages/B04_wf1_Surface/B04_dependencies.md": { - "mtime": 1783849775.292957, - "ast_hash": "15bd0faa0411264c14b0bbd89f7afd46", - "semantic_hash": "" - }, - "pages/B04_wf1_Surface/B04_frontend.md": { - "mtime": 1783849775.2939596, - "ast_hash": "5735fc2ab57c3965dcf50149b078fc93", - "semantic_hash": "" - }, - "pages/B05_wf2_Route/B05_api.md": { - "mtime": 1783849775.2954652, - "ast_hash": "cc425874ae9a2ba7b8662af87848fa0d", - "semantic_hash": "" - }, - "pages/B05_wf2_Route/B05_backend.md": { - "mtime": 1783849775.2954652, - "ast_hash": "479b21cd1dc68e2ac4d6435b1007b3e8", - "semantic_hash": "" - }, - "pages/B05_wf2_Route/B05_db.md": { - "mtime": 1783850658.4844005, - "ast_hash": "c45788b5db47a7a4f246b0714a2c11e3", - "semantic_hash": "" - }, - "pages/B05_wf2_Route/B05_dependencies.md": { - "mtime": 1783849775.2981665, - "ast_hash": "d3295d11d6138324e91df459abda944a", - "semantic_hash": "" - }, - "pages/B05_wf2_Route/B05_frontend.md": { - "mtime": 1783849775.2981665, - "ast_hash": "3a5bba842808d5a7a935882514495311", - "semantic_hash": "" - }, - "pages/B06_wf3_ProfileCross/B06_api.md": { - "mtime": 1783849775.2991662, - "ast_hash": "00f3238df70ac4098b1a62d7a175e676", - "semantic_hash": "" - }, - "pages/B06_wf3_ProfileCross/B06_backend.md": { - "mtime": 1783849775.3001661, - "ast_hash": "715cfd2ee8f7384c849e23331d9d5ae6", - "semantic_hash": "" - }, - "pages/B06_wf3_ProfileCross/B06_db.md": { - "mtime": 1783850703.1234853, - "ast_hash": "63b1c8f0287b4b277633da8c4617b03f", - "semantic_hash": "" - }, - "pages/B06_wf3_ProfileCross/B06_dependencies.md": { - "mtime": 1783849775.301572, - "ast_hash": "cee07700e4614c067726375a385800c3", - "semantic_hash": "" - }, - "pages/B06_wf3_ProfileCross/B06_frontend.md": { - "mtime": 1783849775.3020935, - "ast_hash": "98cdce5d523d5750350c1c8eeb41ae8e", - "semantic_hash": "" - }, - "pages/B07_wf4_DesignDetail/B07_frontend.md": { - "mtime": 1783844389.053691, - "ast_hash": "d4bd4b2f000f33a76bfd5d2f9b1a2850", - "semantic_hash": "" - }, - "pages/B08_wf5_Quantity/B08_db.md": { - "mtime": 1783850708.284249, - "ast_hash": "00ca815731f29da6f062f6e5884430de", - "semantic_hash": "" - }, - "pages/B08_wf5_Quantity/B08_frontend.md": { - "mtime": 1783849775.303746, - "ast_hash": "4d4395611445c4e93de165cc343df7af", - "semantic_hash": "" - }, - "pages/B09_wf6_Estimation/B09_frontend.md": { - "mtime": 1783844389.0574813, - "ast_hash": "c17bf17a317f2190131be87d2e23e9bb", - "semantic_hash": "" - } -} \ No newline at end of file diff --git a/docs/wiki/index.md b/docs/wiki/index.md deleted file mode 100644 index a0af7050..00000000 --- a/docs/wiki/index.md +++ /dev/null @@ -1,119 +0,0 @@ ---- -type: index -last_updated: 2026-07-12 ---- - -# Wiki Index - -> 질의 시 항상 이 파일을 먼저 확인한다. 카테고리별로 페이지를 한 줄 요약과 함께 나열한다 (120자 이내). - -## 페이지 — 로그인 후 워크플로우 (B01~B09) - -### [[B01_Dashboard/B01_backend|B01_Dashboard]] -역할별 프로젝트·회사·사용자·가입·자동화 관리와 workflow 배치조회, 시스템 리소스·감사 로그. draft. - -### [[B02_ProjRegister/B02_backend|B02_ProjRegister]] -프로젝트 생성 `POST /api/b02/project`. 트랜잭션: projects INSERT+워크플로우 7단계 시드+감사로그+저장소 초기화. stable. - -### [[B03_FileInput/B03_backend|B03_FileInput]] -일반·청크 업로드, 메타데이터 분석, WF0/WF1 상태 전이, 이메일 알림과 workflow 조회. draft. - -### [[B04_wf1_Surface/B04_backend|B04_wf1_Surface]] -지표면 분석 `/api/projects` 12개 API. LAS→필터4종→모델5종→등고선. three.js 3D 뷰어 구현됨. WF1 stage 전이. stable. - -### [[B05_wf2_Route/B05_backend|B05_wf2_Route]] -Dijkstra·ridge-valley 경로 계산, 비용면·skeleton·통계 저장과 route 확정 API. WebCAD 뷰어 미구현. draft. - -### [[B06_wf3_ProfileCross/B06_backend|B06_wf3_ProfileCross]] -확정 경로 기반 종단·횡단 생성, 표고 sampler·측점 샘플링·결과 확정 API. WebCAD 프로필 뷰어 미구현. draft. - -### [[B07_wf4_DesignDetail/B07_frontend|B07_wf4_DesignDetail]] -구조물 배치 — 워크플로우 셸만 존재(26줄), 본문 미구현. migration_plan.md에 범위제외 명시(계획적 미착수). stable. - -### [[B08_wf5_Quantity/B08_frontend|B08_wf5_Quantity]] -WF5 workflow 셸만 구현. 수량 계산 본문·Repository·Router/API 미구현. draft. - -### [[B09_wf6_Estimation/B09_frontend|B09_wf6_Estimation]] -견적·문서(Excel/PDF/DXF) 산출 — 워크플로우 셸만 존재(26줄), 본문 미구현. outputs/output_files 테이블 예정. stable. - -## 페이지 — 로그인 전 (A01~A09) - -### [[A01_Home/A01_frontend|A01_Home]] -히어로 + 최신 소식 + 주요 기능 showcase. 정적 페이지. MOCK_NEWS 하드코딩(GET /api/a01/news 미구현). stable. - -### [[A02_ProgDetail/A02_frontend|A02_ProgDetail]] -6단계 워크플로우 시각화 + 핵심 기술 소개. Hero + 배지번호 리스트 + 카드그리드. stable. - -### [[A03_CompDetail/A03_frontend|A03_CompDetail]] -회사 미션·핵심가치·연락처. Hero + 본문 + 3개 가치 카드그리드 + 이메일. stable. - -### [[A04_NewsHistory/A04_frontend|A04_NewsHistory]] -최신소식 및 개선이력 타임라인. Hero + 태그+제목+날짜 행들. MOCK_HISTORY 데이터, 백엔드 미구현. stable. - -### [[A05_EduDetail/A05_frontend|A05_EduDetail]] -교육 과정 소개 + 문의 CTA. Hero + 3개 과정 카드그리드 + 문의 버튼. stable. - -### [[A06_Login/A06_backend|A06_Login]] -세션쿠키 로그인 + 신규브라우저/주기 OTP 재인증. `/api/auth` 5개 엔드포인트. backend·frontend 상세. stable. - -### [[A07_Register/A07_backend|A07_Register]] -회원가입 2단계(요청→OTP)+회사검색. 약관 아코디언, NO_COMPANY로 완료. ⚠️UI_Page.ts 구버전 잔재. stable. - -### [[A08_Support/A08_backend|A08_Support]] -기술지원 문의(비로그인 가능). `support_requests` 저장+관리자 메일. ⚠️DB 컬럼 계획서와 불일치. stable. - -### [[A09_Security/A09_backend|A09_Security]] -백엔드: 마스터/시스템관리자 조직·회원·가입승인·활동로그 API(`/api/security`). 프론트: 약관 열람만. ⚠️API 클라이언트 미연동. stable. - -## 개념 (Concepts) - -### [[a00_app_shell_framework]] -모든 페이지의 공통 스켈레톤. 헤더(로고/네비/언어·테마/인증), 아울렛, 푸터 + 라우터 + B그룹 스캐폴드. - -### [[a00_app_shell_framework_scaffold]] -App Shell Framework의 세부 스캐폴드, CSS 인젝션 구조, 외부 라이브러리 및 사용처 매핑. - -### [[ui_templates]] -다국어 관리(i18n [한국어, 영어]), 공통 컴포넌트(버튼/카드/태그/워크플로우셸), theme.css 변수. - -### DB 스키마 -- [[db_schema/overview]] — 34개 테이블 확정; workflow 상태 및 system_admin_logs 용도 분석 완료. -- [[db_schema/users_auth]] — users/companies/sessions/email_otps/trusted_devices/join_requests/user_consents -- [[db_schema/logs_monitoring]] — login_logs/activity_logs/audit_logs/system_audit_logs/system_admin_logs/system_resources/support_requests/change_logs -- [[db_schema/projects]] — projects/project_versions/project_automations -- [[db_schema/files_surface]] — upload_sessions/upload_chunks/input_files/processed_point_cloud/surface_models/terrain_layers -- [[db_schema/route_profile]] — routes/route_points/route_statistics/longitudinal_sections/cross_sections -- [[db_schema/structure_output]] — structures/quantity_items/outputs/output_files -- [[db_schema/unconfirmed/README]] — 미확정/미연동 테이블 격리 및 임시 분석 보관소 - -### [[auth_rbac]] -세션쿠키 인증, OTP, 3역할 RBAC 접근표, 권한헬퍼 5종, 사용자 상태 생명주기. - -### [[storage_paths]] -B03~B09 워크플로우 기반 storage/ 경로 패턴, DB 경로컬럼 매핑, 경로 생성 책임 분리 원칙. - -### [[common_util]] -common_util_* 11개 파일 목록과 역할 (auth/storage/email/resource_monitor/**workflow_state** 등). - -### API 공통 (여러 페이지가 공유하는 엔드포인트) -- [[api_common]] — 공통 오류포맷, workflow-state API(✅구현·실사용 확인) - -### 의존성 (여러 페이지가 공유하는 외부 라이브러리) -- [[dependencies]] — Trimesh/Whitebox/Geopandas/Shapely/Rasterio/Laspy/aiomysql 사용처 매핑 - -### 공통 스키마 (Pydantic 요청/응답 모델) -- [[schema_common]] — 공통 에러 포맷 `{"status":"error","message":...}`. 페이지 간 공유 모델은 미발견. - -### Workflow 상태 관리 -- [[workflow_state]] — B01~B06 연동 확인, `project_workflow_stages` SSOT·stale 전파. B04 폴백은 레거시 안전장치. - -## ⚠️ 미해결 항목 -- `raw/guidelines/design.md`는 "Wiza"(보라색 SaaS 프로덕트) 스타일 가이드로 Aislo와 무관해 보여 **ingest하지 않음** — 잘못 들어온 파일인지 확인 필요 -- `B04_wf1_Surface_Router.py:412-427` — `projects.status` 문자열 비교(416 WF1_COMPLETE, 420 WF1_ANALYZING)는 **구형 잔재가 아니라 project_workflow_stages 부재 시 레거시 폴백**(백필 안전장치). SSOT 안정화 후 제거 가능 → [[B04_wf1_Surface/B04_backend]] -- `B04_wf1_Surface_Router.py:76` `update_project_status()` — 정의만, 호출처 없음(죽은 코드) → 정리 권장 -- B07~B09는 실 코드 상 아직 미착수 또는 셸만 존재 (B02는 backend 확인·반영 완료, B04도 이번에 5분할 상세화 완료) - -### A그룹 인제스트 이슈 -- 세션·OTP 정책 불일치, support_requests 컬럼 불일치, A07/A09 구버전 코드가 발견됨. 상세는 각 페이지와 [[auth_rbac]] 참조. -- **support_requests 컬럼 불일치**: [[db_schema/logs_monitoring]] 계획서(user_id/title/priority/status) vs 실 코드([[A08_Support/A08_backend]] INSERT: company_id/company_name/user_name/user_email/user_phone/subject/message). → 실 DB 대조 필요 -- **미사용/구버전 코드 2건**: `A07_Register_UI_Page.ts`(구버전 잔재, 라우터는 UI_Auth_Page 사용), `A09_Security_Api_Fetch.ts`(마스터/관리자 8함수 정의만, 미연동) — 정리 권장 diff --git a/docs/wiki/log.md b/docs/wiki/log.md deleted file mode 100644 index bbb9b925..00000000 --- a/docs/wiki/log.md +++ /dev/null @@ -1,330 +0,0 @@ -# Wiki Log - -> append-only. 형식: `## [YYYY-MM-DD] 오퍼레이션 | 제목` — 오퍼레이션은 ingest / query / lint 중 하나. -> 최근 항목 확인: `grep "^## \[" log.md | tail -5` - -## [2026-07-12] lint | 구형 상위 폴더 탈출 링크(../../concepts/) 전수 정밀 교정 -- **Lint**: 위키 페이지들 간의 연결성을 정밀 분석한 결과, 병행 작업자가 작성해둔 구버전 db.md 파일들(`B01_db`, `B03_db`, `B05_db`, `B06_db`, `B08_db`)에서 개념 문서(db_schema, storage_paths 등)를 참조할 때 Obsidian 호환성을 저해하는 부적절한 상위 폴더 탈출 표기법 (`[[../../concepts/...]]`)을 무작위로 혼용하고 있음을 적발함. -- **조치 및 개선**: 검출된 9건의 부적절한 상대 링크들을 공식 표준 규격인 `[[db_schema/...]]` 및 `[[storage_paths]]` 등의 깔끔한 볼트 루트 기준 상대경로로 일제히 교정 완료함. - -## [2026-07-12] lint | 5회 반복 린트-개선 사이클 수행 및 위키 메타 정보 정밀 보완 -- **Lint & 개선 1차**: `concepts/a00_app_shell_framework.md` 및 `concepts/ui_templates.md`에 `source` 메타데이터 필드가 누락되어 있음을 식별, 각각 `source: A00_Common 공유 프레임워크 소스 코드` 및 `source: ui_template/ 공통 UI 소스 코드 및 스타일시트`를 추가 정비함. -- **Lint 2차**: 개별 페이지 `pages/` 하위 마크다운 파일들의 `page_id` 메타데이터 누락 여부를 전수 린트한 결과, 100% 정상 준수하고 있음을 교차 확인. (조치 사항 없음) -- **Lint & 개선 3차**: `concepts/dependencies.md`에 외부 라이브러리 `NumPy`가 중복으로 기재되어 있음을 발견, 하나의 통합된 행으로 병합 및 사용처(`B03`, `B05`) 역참조를 단일 셀로 통합 완료. -- **Lint & 개선 4차**: `concepts/storage_paths.md`의 `related_pages` 속성에 신규 프로젝트 생성 및 스키마 시드를 책임지는 `[[B02_ProjRegister/B02_backend]]` 링크가 빠져 있음을 감지하여 추가 정비함. -- **Lint & 개선 5차**: `concepts/workflow_state.md`의 `related_pages`에 워크플로우 진행 상태에 연관된 B07~B09 단계 파일 링크가 누락된 것을 감지, `[[B07_wf4_DesignDetail/B07_frontend]]`, `[[B08_wf5_Quantity/B08_frontend]]`, `[[B09_wf6_Estimation/B09_frontend]]`를 추가 보완함. - -## [2026-07-12] ingest | DB 34개 테이블 전수 컬럼 실측 및 위키 최신화 -- **DB 스키마 정밀 추출**: PyMySQL을 사용하는 파이썬 스크립트를 작성하여 로컬 `.env` 환경 정보를 바탕으로 `aislo_db` 내 실제 존재하는 34개 테이블의 모든 컬럼 정보(Field, Type, Null, Key, Default, Extra)를 알파벳 순으로 전수 정밀 추출 완료. -- **위키 최신화**: - - `db_schema/users_auth.md` (7개 테이블), `db_schema/logs_monitoring.md` (8개 테이블), `db_schema/projects.md` (3개 테이블), `db_schema/files_surface.md` (6개 테이블), `db_schema/route_profile.md` (5개 테이블), `db_schema/structure_output.md` (4개 테이블) 총 6개 위키 문서에 누락 및 생략되어 있던 실제 DB 컬럼들의 세부 스펙을 100% 매핑하여 최신화 완료. - - 100줄 제한 규칙(규칙 14)을 준수하기 위해 표 및 설명 문구들을 조밀하게 압축하고 정리함. -- **미해결 부채 청산**: - - `system_admin_logs` 테이블의 용도 분석을 통해 SYSTEM_ADMIN의 회원/조직 상태 변경 감사 이력 Write-Only용임을 확인 및 명세화. - - `db_schema/overview.md` 및 `index.md` 내에 기재된 `system_admin_logs 용도 미상` 경고 bullet 및 미해결 항목을 해결됨 상태로 최종 정정 완료. -- **미확정/연결 대기 테이블 관리 규칙 도입**: - - 향후 신규 추가되거나 프로젝트 비즈니스 로직(사용처)이 불명확한 테이블을 안전하게 격리하고 관리할 수 있도록 `db_schema/unconfirmed/` 디렉토리를 신설하고 [README.md](file:///C:/Program_coding/임도설계 및 견적자동화 프로그램 개발/docs/wiki/concepts/db_schema/unconfirmed/README.md)에 운영 가이드라인을 정의함. - - `db_schema/overview.md`에 미확정 그룹 앵커 링크(`[[unconfirmed/README]]`) 및 격리 관리 원칙을 명문화하여 지식 시스템을 완성함. -- **Lint 조치**: 신설된 `unconfirmed/README.md`가 위키 규칙 2번(페이지 생성 시 index.md 반영)을 충족하도록 [index.md](file:///C:/Program_coding/임도설계 및 견적자동화 프로그램 개발/docs/wiki/index.md)에 링크 및 한 줄 명세를 연동 보완함. - -## [2026-07-12] ingest+lint | 3회 반복 린트-개선 사이클 수행 및 위키 무결성 확보 -- **Ingest**: `docs/raw/plans/2026-07-12_plan_add_phase4_role.md` 및 `docs/raw/verification/2026-07-12_verify_add_phase4_role.md`를 기반으로, 루트 폴더의 `AGENTS.md`에 `#### 역할 4: 기타 작업자 (위키 관리 / 작업 보조)`가 정상 추가 및 검증 완료되었음을 확인 및 반영. -- **Lint & 개선 1차**: `concepts/ui_templates.md` 전수 점검. 규칙 13(공유 자원 표 형식 준수)에 위배되는 서술식 다국어 텍스트 기능 설명 및 `theme.css` 색상/마진 변수 나열 항목을 색출하여 `항목 | 위치 | 역할` 형태의 표 포맷으로 전면 개선 완료. -- **Lint & 개선 2차**: `A08_Support/A08_backend.md`에서 `db_schema/logs_monitoring.md` 내에 실존하지 않는 `#support_requests` 세부 앵커를 가리키는 깨진 앵커 링크 2건을 색출하여 `[[db_schema/logs_monitoring]]`으로 개선(단순화) 완료. -- **Lint & 개선 3차**: `storage_paths.md`에 기술된 물리 저장소 경로 패턴 및 세션/이메일 세부 규칙을 백엔드 설정 코드(`config_system.py`, `common_util_storage.py`)와 전수 교차 대조하여, 수치(유효시간 12h/4h, OTP 5분, 재인증 90일, 재시도 3회) 및 폴더 레이아웃이 100% 정합함을 확인. 추가 수정 없음. - -## [2026-07-12] ingest | B09_wf6_Estimation (실 코드 대조, 미착수 확인) -- 대상: B09_wf6_Estimation_UI_Page.ts(27줄, 유일한 소스 파일) -- **기존 파일 정리**: 구 파일명 frontend.md(draft) 삭제 → B09_frontend.md 재작성(stable) -- **실 코드 대조 결과**: 기존 wiki 내용이 이미 정확함 — B07/B08과 동일 패턴, `renderPendingWorkflow()`만 호출, 백엔드 파일 없음 -- **raw 근거 재확인**: `structure.md:177-178`도 B09를 "워크플로우 셸"로만 기술 — 실 코드와 일치, 모순 없음 -- **로케일 키 검증**: B09_Estimation_Title(714) 실 파일 등록 확인 -- storage_paths.md에 B09 이미 related_pages 등록 확인(v1/v2 버전 관리는 이 단계에서만, 20줄), structure_output.md에도 outputs/output_files 사용처 등록 확인 — 둘 다 수정 불필요 -- index.md B09 링크 `[[B09_wf6_Estimation/frontend]]` → `[[B09_wf6_Estimation/B09_frontend]]` 갱신 -- 결론: B07/B08/B09 workflow 셸 3종 전부 wiki 반영 완료. B01/B03/B05/B06(병행 작업자)까지 포함하면 B01~B09 전 페이지 wiki 존재 확인 -- 주: B01/B03/B05/B06/B08은 병행 작업자가 진행/완료해 건드리지 않음 - -## [2026-07-12] ingest | B07_wf4_DesignDetail (실 코드 대조, 미착수 확인) -- 대상: B07_wf4_DesignDetail_UI_Page.ts(27줄, 유일한 소스 파일) -- **기존 파일 정리**: 구 파일명 frontend.md(draft) 삭제 → B07_frontend.md 재작성(stable) -- **실 코드 대조 결과**: 기존 wiki 내용이 이미 정확함 — `renderPendingWorkflow()`만 호출하는 셸, 백엔드 파일 자체 없음 -- **raw 근거 재확인**: `migration_plan.md:271` "B07 이후 기능은 이번 마이그레이션 범위에서 제외한다" — 계획 단계에서 명시적 제외, structure.md:173-174도 셸로만 기술. 실 코드·raw 문서·기존 wiki 3자 일치(모순 없음) -- **로케일 키 검증**: B07_Design_Title(708) 실 파일 등록 확인 -- structure_output.md에 B07 이미 related_pages·사용처 등록 확인(structures 테이블, 수정 불필요) -- index.md B07 링크 `[[B07_wf4_DesignDetail/frontend]]` → `[[B07_wf4_DesignDetail/B07_frontend]]` 갱신, "계획적 미착수" 근거 명시 -- 주: B01/B03/B05/B06은 병행 작업자가 계속 진행 중이라 건드리지 않음 - -## [2026-07-12] ingest | B04_wf1_Surface (실 코드 대조·5분할 상세화) -- 대상: Router(739줄), Schema(113줄), Repository(236줄), Engine(161줄)+엔진 서브모듈 14개, UI_Page(377줄), UI_Viewer(567줄), UI_TerrainViewer(637줄), Api_Fetch(174줄) 등 23개 파일 -- **기존 파일 정리**: 구 파일명 계획서기반 4개(backend/frontend/db/api, api·db·frontend는 draft·"추정 경로") 삭제 → B04_backend/B04_frontend/B04_api/B04_db/B04_dependencies.md 5분할 상세 재작성(전부 stable) -- **⚠️ 중요 정정 3건 (계획서 → 실 코드)**: - 1. **API**: api.md는 "추정 경로 2개(surface/analyze·models)"였으나 실제 `/api/projects` prefix 12개 엔드포인트. 전부 실 위치 표로 기록 - 2. **3D 뷰어**: 계획서·dependencies "WebCAD 3D 뷰어 미구현"이었으나 실 코드에 **three.js(WebGL) 뷰어 구현됨** — UI_Viewer(포인트클라우드)+UI_TerrainViewer(지형 메시), UI_Page에서 import·사용 확인. dependencies.md에 three.js 추가+"미구현" 정정 - 3. **416/420줄 "구형 잔재"**: 잔재가 아니라 **레거시 폴백**(project_workflow_stages SSOT 우선, 부재 시에만 projects.status 비교, `:412-427`). index.md·workflow_state.md 정정 -- **추가 발견**: `update_project_status()`(`:76`) 정의만·호출처 없음(죽은 코드, grep 확인) → 미해결 항목 추가 -- **워크플로우 전이**: analyze에서 start_stage(168)/complete_stage(209)/fail_stage(227,233) stage 1 -- **역참조**: files_surface B04 이미 등록(구 링크 정정), dependencies·workflow_state 갱신 -- index.md B04 링크 갱신, 미해결 항목 정정. 엔진 서브모듈 15개는 backend.md에 표로 요약(과분할 방지) - -## [2026-07-12] ingest | B02_ProjRegister (backend + frontend + db 상세화) -- 대상: B02_ProjRegister_Router.py(44줄), B02_ProjRegister_Schema.py(30줄), B02_ProjRegister_Repository.py(136줄), B02_ProjRegister_UI_Page.ts(179줄), B02_ProjRegister_UI_Style.css(66줄) -- **기존 파일 정리**: 구 파일명 스텁 backend.md/db.md/frontend.md(요약 수준, 비표준 frontmatter, frontend/db는 draft) 삭제 → B02_backend/B02_frontend/B02_db.md 상세 재작성(전부 stable) -- 출력: - - `B02_backend.md` — `POST /api/b02/project`, create_project 트랜잭션(projects INSERT+initialize_project_stages 7단계 시드+system_audit_logs PROJECT_CREATE+저장소 초기화), Pydantic 2종, 저장소 경로 이탈 방지 - - `B02_frontend.md` — 등록 폼(2열 그리드, road_type select 4종), fetch 직접 호출, 성공 시 CURRENT_PROJECT_ID_KEY 저장 후 B03 이동 - - `B02_db.md` — 쓰는 테이블 3종(projects/project_workflow_stages/system_audit_logs) 용도+링크만(규칙11), 저장소 규칙 -- **로케일 키 검증**: B02_Proj_Title(487), B02_Proj_Field_RoadType(499), B02_Proj_RoadType_Stream(503), B02_Proj_Success(510) 등 실 파일 등록 확인 -- **역참조 갱신(규칙12)**: logs_monitoring.md system_audit_logs 섹션 제목 "B01 사용"→"사용처(B01,B02)"로 일반화 + B02 PROJECT_CREATE 행 추가. projects.md/workflow_state.md엔 B02 이미 등록됨 -- **발견 사항**: - - 계획서엔 "7단계 시드가 마이그레이션 Phase1 과제"였으나 실 코드에 이미 구현됨(규칙6 실코드 채택) - - projects INSERT 시 status 'NEW', crs_epsg 5178 고정 - - 프론트가 fetch 직접 호출(A08처럼 별도 API 클라이언트 없음) -- index.md B02 링크 `[[B02_ProjRegister/backend]]` → `[[B02_ProjRegister/B02_backend]]` 갱신 -- 주: B01은 병행 작업자가 진행 중이라 건드리지 않음(A07_backend 링크 등 B01발 자동 갱신은 반영됨) - -## [2026-07-12] query | B01_Dashboard 실 코드 기준 최신화 -- 상위 프로젝트 `B01_Dashboard/` 코드 9개를 읽기 전용으로 대조했다. -- 기존 `frontend.md`, `backend.md`를 규칙에 맞는 `B01_frontend.md`, `B01_backend.md`로 교체했다. -- API·DB·의존성을 `B01_api.md`, `B01_db.md`, `B01_dependencies.md`로 분리하고 코드 위치를 표로 기록했다. -- 실제 감사 테이블이 `system_audit_logs`임을 반영하고 workflow 조회의 미구현 표기를 바로잡았다. -- 관련 concepts와 `index.md`를 갱신했으며, 검증보고서가 없어 B01 상태는 `draft`로 유지했다. -- 기술부채로 UI Page 739줄과 Repository 790줄을 기록했다. - -## [2026-07-12] query | B03_FileInput 실 코드 기준 최신화 -- 상위 프로젝트 `B03_FileInput/` 코드 11개를 읽기 전용으로 대조했다. -- 기존 frontend/backend 문서를 `B03_frontend.md`, `B03_backend.md`로 교체했다. -- API·DB·의존성을 `B03_api.md`, `B03_db.md`, `B03_dependencies.md`로 분리했다. -- 일반·청크 업로드, LAS/TIF/PRJ/TFW 메타데이터 분석, WF0/WF1 상태 전이, 이메일 알림을 기록했다. -- `dependencies`, `db_schema/files_surface`, `index.md`를 실제 코드 기준으로 갱신했다. -- 검증보고서가 없어 B03 페이지 상태는 `draft`로 유지했다. -- 기술부채로 UI Page 695줄과 UI Style 376줄을 기록했다. - -## [2026-07-12] query | B05_wf2_Route 실 코드 기준 최신화 -- 상위 프로젝트 `B05_wf2_Route/` 코드 11개를 읽기 전용으로 대조했다. -- 기존 API/backend/db/frontend 문서를 `B05_api.md`, `B05_backend.md`, `B05_db.md`, `B05_frontend.md`로 교체했다. -- `B05_dependencies.md`를 추가해 Dijkstra·ridge-valley·skeleton·비용면 엔진과 의존성을 기록했다. -- 실제 API 경로와 RouteSolve 스키마, routes·route_points·route_statistics 저장 관계를 반영했다. -- `dependencies`, `index.md`를 실제 코드 기준으로 갱신했다. -- 검증보고서가 없어 B05 페이지 상태는 `draft`로 유지했다. -- 기술부채로 RidgeValley 781줄, Solver 654줄, WebCAD 뷰어 미구현을 기록했다. - -## [2026-07-12] query | B06_wf3_ProfileCross 실 코드 기준 최신화 -- 상위 프로젝트 `B06_wf3_ProfileCross/` 코드 9개를 읽기 전용으로 대조했다. -- 기존 backend/db/frontend 문서를 `B06_backend.md`, `B06_db.md`, `B06_frontend.md`로 교체했다. -- API·의존성을 `B06_api.md`, `B06_dependencies.md`로 분리했다. -- 확정 B05 경로 기반 종단·횡단 생성, DTM·보간 sampler, 측점·단면 샘플링, 재생성 삭제·저장·확정 흐름을 기록했다. -- 검증보고서가 없어 B06 페이지 상태는 `draft`로 유지했다. -- WebCAD 종단도·횡단 프로필 뷰어 미구현 상태를 기록했다. - -## [2026-07-12] query | B08_wf5_Quantity 실 코드 기준 최신화 -- 상위 프로젝트 `B08_wf5_Quantity/`에는 UI 파일 1개(25줄)만 존재함을 확인했다. -- 기존 `frontend.md`를 `B08_frontend.md`로 교체하고 workflow 셸의 실제 함수·locale·활성 단계 위치를 기록했다. -- 수량 계산 본문·Repository·Router/API·Pydantic 스키마가 아직 없음을 명시했다. -- 예정 DB 자원 `quantity_items`와 `quantity_data_path`를 `B08_db.md` 및 concepts 링크로 연결했다. -- `index.md`를 실제 구현 상태에 맞게 갱신했다. - -## [2026-07-12] lint | 전체 위키 구조·상태·공유 개념 정리 -- A/B 페이지의 누락된 `related_pages`를 보완하고 concepts의 관련 페이지 역참조를 추가했다. -- 검증보고서가 없는 stable 페이지를 draft로 조정해 status 규칙을 일관화했다. -- B05/B06 뷰어 상태, B03 구현 상태, workflow-state 실제 경로, legacy polling 문구를 갱신했다. -- 100줄 초과 문서인 A01과 A00 공통 개념을 하위 문서로 분리했다. -- index의 페이지 상태 표기를 페이지 frontmatter와 일치시켰다. -- 코드 파일은 수정하지 않았으며 `raw/`는 변경하지 않았다. - -## [2026-07-12] lint | 전체 위키 구조·상태·공유 개념 정리 -- A/B 페이지의 누락된 `related_pages`를 보완하고 concepts의 관련 페이지 역참조를 추가했다. -- 검증보고서가 없는 stable 페이지를 draft로 조정해 status 규칙을 일관화했다. -- B05/B06 뷰어 상태, B03 구현 상태, workflow-state 실제 경로, legacy polling 문구를 갱신했다. -- index의 페이지 상태 표기를 페이지 frontmatter와 일치시켰다. -- 코드 파일은 수정하지 않았으며 `raw/`는 변경하지 않았다. - -## [2026-07-12] lint | 위키 시스템 초기 세팅 -- raw/, wiki/, output/ 폴더 구조 생성 -- docs/CLAUDE.md에 Wiki Schema(위키 운영 규칙) 추가 -- 하위 CLAUDE.md 3개 생성 (raw/, wiki/, output/) -- wiki/index.md, wiki/log.md 초기화 (콘텐츠 없음, 카테고리 헤더만) -- 아직 raw/에 원본 없음 → 다음 단계는 첫 ingest 대기 - -## [2026-07-12] ingest | guidelines/plans 7건 일괄 반영 -- 대상: raw/guidelines/{structure,db_schema,backend,frontend,agent,migration_plan}.md, raw/plans/plan_workflow_state_management.md (7건). raw/guidelines/design.md는 Aislo와 무관한 "Wiza" 스타일가이드로 판단해 **ingest 제외**. -- concepts 신규 8건: db_schema/{overview,users_auth,logs_monitoring,projects,files_surface,route_profile,structure_output}, storage_paths, auth_rbac, common_util, dependencies, api_common, schema_common, workflow_state (총 14파일, db_schema는 34개 테이블을 9그룹→7파일+개요로 분할, 전부 100줄 이내) -- pages 신규: B01(backend/frontend), B02(frontend/db), B03(backend/frontend/db), B04(backend/frontend/db/api), B05(backend/frontend/db/api), B06(backend/frontend/db), B07~B09(frontend만, 셸 상태) -- 전부 status: stable (검증보고서 없음, 계획서·행동지침만 반영됨) -- 발견한 모순: 테이블 총 개수(db_schema.md 34 vs agent.md 18/23) — 미해결, [[db_schema/overview]]에 기록 -- 발견한 이슈: B03/B04 WF1 상태 이중 세팅, projects.status 단일문자열 한계 → [[workflow_state]]로 별도 정리 -- index.md 전체 갱신 (카테고리별 요약 + 미해결 항목 섹션 추가) - -## [2026-07-12] query+lint | 실 DB/실 코드 대조 검증 (읽기 전용) -- `.env` 자격증명으로 aislo_db에 read-only 접속(`SHOW TABLES`, `DESCRIBE`) — DB는 수정하지 않음 -- 테이블 개수 모순 해결: 실측 34개 = db_schema.md와 일치. agent.md(18/23)는 오기로 확정 → [[../concepts/db_schema/overview]] -- raw에 없던 실 테이블 2개 발견: `project_workflow_stages`(구현완료 확인) / `system_admin_logs`(용도 미상, 임의 해석 보류 — 사용자 확인 대기) -- `common_util_workflow_state.py`, B01~B06 라우터/리포지토리 실 코드 확인 → [[../concepts/workflow_state]] status: stable→**stable**로 갱신 (계획서 설계가 이미 전면 구현됨을 확인) -- B02_ProjRegister 백엔드(raw엔 없었음) 실 코드 확인 후 backend.md 신규 작성, status stable -- A01~A09(로그인 전 페이지) 카테고리 신규 추가, 실 코드 기반 15개 파일 작성 (전부 status stable, raw 문서 근거 부족은 각주로 표시) -- B04_wf1_Surface_Router.py:416,420에 구형 상태비교 잔재 발견, 미정리 항목으로 기록 -- index.md 전체 재구성 (A/B 페이지 분리, 미해결 항목 갱신) - -## [2026-07-12] lint | page_id frontmatter 필드 도입 -- 문제: `frontend.md`/`backend.md` 등은 파일명만으로 소속 페이지를 알 수 없음(폴더 밖에서 볼 때 구분 불가) -- docs/CLAUDE.md 위키 규칙 5번, wiki/CLAUDE.md에 `page_id: B0x_이름`/`A0x_이름` frontmatter 필수화 규칙 추가 (concepts 파일은 제외 — 페이지 단위가 아니므로) -- 기존 wiki/pages/ 하위 34개 파일 전체에 `page_id` 소급 추가 (status 라인 바로 아래) -- 향후 ingest 시 페이지 파일 생성할 때마다 이 필드 포함 필수 - -## [2026-07-12] ingest | A01_Home 실 코드 반영 -- 대상: A01_Home_UI_Page.ts (157줄), A01_Home_UI_Style.css (113줄) -- 출력: wiki/pages/A01_Home/frontend.md 상세 업데이트 (79줄 → 개념 설명 + 컴포넌트 분석 + 로케일 키 매핑 + CSS 클래스 구조 추가) -- 발견 사항: MOCK_NEWS 데이터 하드코딩(백엔드 미연결), 3개 공통 컴포넌트(createButton/createCard/createTag) 사용, theme.css 변수 엄격 준수, 반응형 900px 기준 -- 미해결: /api/a01/news 백엔드 미구현 -- 기존 내용 유지: status stable 유지, related_pages 확장 - -## [2026-07-12] refactor | 파일명 규칙 도입 및 링크 수정 -- **파일명 규칙 변경:** `frontend.md` → `A01_frontend.md` (page_id prefix 추가) -- **이유:** 그래픽 뷰에서 `frontend.md`, `backend.md` 등 기능명이 겹칠 때 page_id로 즉시 식별 가능하게 함 -- **적용 범위:** wiki/pages/A0x_이름/, wiki/pages/B0x_이름/ 하위 파일 모두 (신규 + 기존) -- **수정 파일:** `wiki/pages/A01_Home/frontend.md` → `A01_frontend.md`, index.md 링크 `[[A01_Home/frontend]]` → `[[A01_Home/A01_frontend]]` -- **docs/CLAUDE.md 규칙 5번, wiki/CLAUDE.md 작성규칙 수정** — 파일명 규칙 명시 -- 향후 ingest 시 신규 파일 생성할 때마다 page_id prefix 붙임 - -## [2026-07-12] lint | A그룹(A01~A09) 전체 검증 및 정합성 점검 -- 범위: A01~A09 wiki 페이지 13개 + 참조 concept(ui_templates/a00_app_shell_framework/auth_rbac/common_util/logs_monitoring 등) + index.md -- **검증 통과 항목**: - - 파일 100줄 제한: 전 파일 통과(최대 A01 76줄), 파일명 규칙(page_id prefix) 전부 준수 - - 위키링크 유효성: A그룹이 거는 링크 대상 전부 실존 확인(깨진 링크 0) - - 소스 커버리지: A01~A09 실 소스 파일 전부 wiki 반영 확인(A02~A05 frontend-only는 백엔드 소스 없어 정당) -- **발견·수정한 문제**: - 1. A02_frontend.md frontmatter에 비표준 `related_pages: []` 잔재 → 제거(A01 린트 때와 동일 유형) - 2. index.md 미해결 항목 섹션에 A그룹 발견 불일치 3건 누락 → "A그룹 인제스트 중 발견" 소섹션 추가(세션정책/support_requests컬럼/미사용코드) - 3. auth_rbac.md 역참조 누락(B01만 있고 A06/A07/A09 없음) → 사용처 섹션 + 계획서-실코드 불일치 소섹션 추가(규칙12) - 4. index.md A01 요약 톤 정리(다른 A페이지와 일관성, stable 명시) -- **기록만(수정 안 함)**: - - `[[B01_Dashboard/backend]]` 링크는 구 파일명(backend.md) 참조하나 파일 실존→깨진 링크 아님. B01 파일명 규칙 마이그레이션은 B그룹 작업 시 처리 - - common_util.md 사용처 "전 페이지/인증 관련"로 A그룹 포괄됨(세부 명시는 선택사항, 링크 유효) -- 결론: A그룹 인제스트 정합성 확보. 누적 불일치 3건은 index.md 미해결 항목에 집약(코드 수정은 사용자가 나중에) - -## [2026-07-12] ingest | A09_Security (backend + frontend 상세화) -- 대상: A09_Security_Router.py(123줄), A09_Security_Schema.py(25줄), A09_Security_UI_Page.ts(30줄), A09_Security_Terms.ts(16줄), A09_Security_Api_Fetch.ts(61줄), A09_Security_UI_Style.css(14줄) -- **기존 파일 정리**: 얕은 스텁 backend.md/frontend.md 삭제 → A09_backend.md/A09_frontend.md 상세 재작성 -- 출력: - - `A09_backend.md`(stable) — `/api/security` 9개 엔드포인트(마스터 5종 require_master, 시스템관리자 3종 require_system_admin, 활동로그 1종 verify_session), Pydantic 3종, psutil 리소스 계측 - - `A09_frontend.md`(stable) — 약관 열람 페이지(3섹션), Terms 데이터 표, 미사용 API 클라이언트 8함수 표 -- **로케일 키 검증**: A09_Security_Title(375), A09_Security_Version(376), A09_Security_Policy(379) 실 파일 등록 확인 -- **⚠️ 중요 발견 1 (프론트/백엔드 기능 불일치)**: UI_Page.ts는 약관 텍스트 열람만, Api_Fetch.ts(마스터/관리자 8함수)는 어디서도 import 안 됨(grep 확인). 백엔드 API는 완비, 프론트 연동 미완 → 양쪽 파일에 명시 -- **⚠️ 중요 발견 2 (약관-실코드 불일치)**: Terms.ts security 텍스트 "세션 12h/4h 만료"는 auth_rbac 계획서 기준, A06 실코드(auth_expires_at 3개월)와 다름. A06 불일치와 동일 뿌리 → 코드수정은 나중에(사용자 지시) -- **발견 사항**: - - 스텁엔 프론트가 "약관 동의 페이지"로 기술됐으나 실제론 동의 체크 없는 단순 열람(동의 흐름은 A07 회원가입에 있음) - - 백엔드는 B01_Dashboard 관리자 기능과 역할 중복 가능성 - - activity_logs INSERT: user_id/action_type/resource_id/status/details -- index.md A09 링크 `[[A09_Security/backend]]` → `[[A09_Security/A09_backend]]` 갱신 - -## [2026-07-12] ingest | A08_Support (backend + frontend 상세화) -- 대상: A08_Support_Router.py(68줄), A08_Support_Schema.py(13줄), A08_Support_UI_Page.ts(217줄), A08_Support_UI_Style.css(64줄) -- **기존 파일 정리**: 얕은 스텁 backend.md/frontend.md 삭제 → A08_backend.md/A08_frontend.md 상세 재작성 -- 출력: - - `A08_backend.md`(stable) — `POST /api/a08/support` 단일 엔드포인트, get_optional_session(비로그인 허용), support_requests INSERT + 관리자 알림 메일 - - `A08_frontend.md`(stable) — 문의 폼(textarea 자체 구현 createTextAreaField), 세션 자동 채움(fetchSessionUser), fetch 직접 호출(Api_Fetch 파일 없음) -- **로케일 키 검증**: A08_Support_Title(348), A08_Support_Field_Phone(357), A08_Support_Field_Message(361), A08_Support_Success(367) 실 파일 등록 확인 -- **⚠️ DB 스키마 불일치 발견**: `db_schema/logs_monitoring`의 support_requests 컬럼은 계획서 기준(user_id/title/priority/status)인데 실 코드 INSERT는 company_id/company_name/user_name/user_email/user_phone/subject/message → 컬럼명 다름. logs_monitoring.md에 양쪽 병기 + 사용처에 A08 추가, 실 DB 대조 필요(규칙6)로 표시 -- **발견 사항**: - - 비로그인도 문의 가능(get_optional_session), 로그인 시 회사 정보 자동 연결 - - textarea는 공통 컴포넌트에 없어 자체 구현 - - 프론트가 fetch를 직접 호출(별도 API 클라이언트 파일 없음) -- index.md A08 링크 `[[A08_Support/backend]]` → `[[A08_Support/A08_backend]]` 갱신 - -## [2026-07-12] ingest | A07_Register (backend + frontend 상세화) -- 대상: A07_Register_Router.py(76줄), A07_Register_Schema.py(30줄), A07_Register_UI_Auth_Page.ts(208줄), A07_Register_UI_Page.ts(142줄), A07_Register_Api_Fetch.ts(47줄), A07_Register_UI_Style.css(103줄) -- **기존 파일 정리**: A06와 동일하게 얕은 스텁 backend.md/frontend.md 삭제 → A07_backend.md/A07_frontend.md 상세 재작성 -- 출력: - - `A07_backend.md`(stable) — `/api/auth` 3종(companies·register/request·verify), Pydantic 2종, 2단계 가입 흐름(PENDING_EMAIL→NO_COMPANY) - - `A07_frontend.md`(stable) — 약관 아코디언, 2단계 폼(정보입력→OTP), API 클라이언트 3함수 -- **로케일 키 검증**: A07_Register_Field_Otp(340), A07_Register_Verify(341), A07_Register_OtpSent(342), A07_Register_Marketing(336) 실 파일 등록 확인 -- **⚠️ 중요 발견**: A07에 UI 파일이 2개 — `A07_Register_UI_Auth_Page.ts`(실사용, router.ts:30이 import)와 `A07_Register_UI_Page.ts`(백엔드 미연동 TODO, 단순 폼). 후자는 **구버전 잔재**로 판단, 두 파일 모두 `renderA07Register` export하나 라우터는 Auth_Page만 사용 → frontend.md에 명시하고 정리 권장 -- **발견 사항**: - - 가입은 회사 없이 완료(NO_COMPANY), 회사 생성/연결은 로그인 후 B01_Dashboard에서 진행 - - 회사검색 API(searchCompanies)는 자동완성용 - - 약관 본문은 resources/legal/*.txt에서 fetch - - terms_version "1.0" 프론트 하드코딩 -- index.md A07 링크 `[[A07_Register/backend]]` → `[[A07_Register/A07_backend]]` 갱신 - -## [2026-07-12] ingest | A06_Login (backend + frontend 상세화) -- 대상: A06_Login_Router.py(179줄), A06_Login_Schema.py(20줄), A06_Login_UI_Auth_Page.ts(80줄), A06_Login_Api_Fetch.ts(57줄), A06_Login_UI_Style.css(52줄) -- **기존 파일 정리**: `backend.md`/`frontend.md`(초기 세팅 시 얕은 스텁, 비표준 frontmatter `type`/`source`/`related_pages` 포함) → 삭제하고 규칙에 맞는 `A06_backend.md`/`A06_frontend.md`로 상세 재작성 -- 출력: - - `A06_backend.md`(stable) — `/api/auth` 엔드포인트 5종 표(login/request·verify·session·logout·password), 내부헬퍼 3종, Pydantic 3종, 로그인 흐름, 보안정책 - - `A06_frontend.md`(stable) — 2단계 폼(비번→OTP 전환), API 클라이언트 5함수, 로케일 키, 이벤트 핸들러 -- **로케일 키 검증**: A06_Login_Title(124), A06_Login_Field_Otp(288), A06_Login_Verify(290), A06_Login_OtpSent(291) 등 실 파일 등록 확인 -- **발견 사항**: - - OTP는 "신규 브라우저 OR 주기적 재인증(EMAIL_REVERIFY_DAYS 경과)" 조건에서만 요구 (매 로그인 아님) - - `_finish_login`에서 `auth_expires_at = NOW() + 3개월` 갱신, 브라우저 신뢰 등록 - - 5회 연속 실패 시 ADMIN_EMAIL로 보안 경고 메일 - - `fetchSession`/`fetchSessionUser`/`logout`은 app_shell과 공유 -- **⚠️ 불일치 기록**: [[auth_rbac]]는 계획서 기준(OTP 5분·재시도 3회·세션 4h/12h·15분 잠금)인데 실 코드와 다름 → 규칙6에 따라 auth_rbac 갱신 대상으로 A06_backend.md에 명시(별도 처리 필요) -- index.md A06 링크 `[[A06_Login/backend]]` → `[[A06_Login/A06_backend]]` 갱신 - -## [2026-07-12] lint | A03~A05 인제스트 재점검 -- 대상: A03/A04/A05 frontend.md + concepts/ui_templates.md -- **줄번호 대조**: 실 코드와 전부 일치 확인 (A03 buildHero 23-41 등, A04 buildTimeline 70-106, A05 onClick 26-28 등) -- **로케일 키 검증**: A03_CompDetail_Contact_Email(238), A04_NewsHistory_Empty(249), A05_EduDetail_Cta(273) 등 실 파일에 등록 확인 -- **발견/수정한 문제**: - 1. 규칙13 위반: A03~A05 컴포넌트 섹션이 서술식 불릿 → 표 형식(함수|위치|역할)으로 전환, renderAxx 진입점 함수 누락분 추가 - 2. ui_templates.md 컴포넌트 목록 부정확: createButton variant 3종→4종(danger 추가), createTag variant 5종·기본값 neutral 명시, 누락 컴포넌트 6종(createInputField/createSelectField/showLoadingOverlay/hideLoadingOverlay/showToast/createLineChart/injectBaseStyles) 표로 보완 - 3. 깨진 위키링크 `[[A00_Common/app_shell_framework]]` → `[[a00_app_shell_framework]]`로 수정(ui_templates.md 2곳) - 4. ui_templates.md 사용처 역참조에 A03/A04/A05 추가 -- ui_templates.md 91줄(100줄 제한 이내 유지) - -## [2026-07-12] ingest | A05_EduDetail -- 대상: A05_EduDetail_UI_Page.ts (106줄), A05_EduDetail_UI_Style.css (87줄) -- 출력: `wiki/pages/A05_EduDetail/A05_frontend.md` (stable) -- 발견 사항: - - Hero + 3개 교육 과정 카드그리드 + CTA 버튼 레이아웃 - - createButton, createCard 공통 컴포넌트 사용 - - `onA05_EduDetail_Inquiry_Click()` → A08_SUPPORT 라우트로 이동 - - theme.css 변수 엄격 준수 -- index.md 업데이트 (A05 분리) - -## [2026-07-12] ingest | A04_NewsHistory -- 대상: A04_NewsHistory_UI_Page.ts (117줄), A04_NewsHistory_UI_Style.css (87줄) -- 출력: `wiki/pages/A04_NewsHistory/A04_frontend.md` (stable) -- 발견 사항: - - MOCK_HISTORY 데이터: feature/fix/notice 3종 태그 + 날짜 - - KIND_META 맵핑으로 variant 자동 결정 - - createTag 공통 컴포넌트 사용 - - 빈 상태(empty) 처리 구현 - - 백엔드 API 미구현: GET /api/a04/history (코드 주석에 언급) -- index.md 업데이트 (A04 분리) - -## [2026-07-12] ingest | A03_CompDetail -- 대상: A03_CompDetail_UI_Page.ts (114줄), A03_CompDetail_UI_Style.css (100줄) -- 출력: `wiki/pages/A03_CompDetail/A03_frontend.md` (stable) -- 발견 사항: - - A02와 동일 패턴(Hero + 섹션 + 3열 카드그리드) - - createCard 공통 컴포넌트 사용 - - 3개 가치 카드 (Value1~3) + 연락처 이메일 - - theme.css 변수 엄격 준수 -- index.md 업데이트 (A03 분리) - -## [2026-07-12] lint | A01_Home 페이지 검사 및 수정 -- 대상: `wiki/pages/A01_Home/A01_frontend.md` -- 발견 사항: - - frontmatter에 비표준 필드 `type: page-frontend` 존재 → 제거 (규칙에는 status/page_id/last_updated만) - - related_pages 배열 형식 오류 → 제거 (위키링크는 본문에만 사용) - - 의존성 링크 `[[ui_template_locale]]`, `[[ui_template_elements]]` 오류 → concepts 페이지 부재 -- 해결: - - frontmatter 정제 (status/page_id/last_updated만 유지) - - 새 concepts 페이지 `ui_templates.md` 신규 생성 (locale + elements + theme 통합, 사용처 역참조 포함) - - 의존성 섹션 링크 수정: [[ui_templates]]로 통합 - - index.md에 ui_templates 추가 -- status: stable 유지 (실 코드 반영 완료) - -## [2026-07-12] ingest | A02_ProgDetail + A00_Common Framework -- 대상: A02_ProgDetail_UI_Page.ts (146줄), A02_ProgDetail_UI_Style.css (127줄) + A00_Common (app_shell.ts 284줄, b_page_scaffold.ts 163줄, router.ts 158줄) -- 출력: - - `wiki/pages/A02_ProgDetail/A02_frontend.md` (신규) — 컴포넌트 분석 + 로케일 키 + CSS 클래스 + 이벤트 - - `wiki/concepts/a00_app_shell_framework.md` (신규) — 공유 프레임워크(전체 페이지의 헤더·라우터·가드) -- 발견 사항: - - A02는 단순 정적 페이지(Hero + Workflow 배지 + Tech 카드) - - A00_Common는 전체 앱의 스켈레톤—모든 페이지가 의존하는 공유 레이어 - - `renderShell()` + `injectShellStyles()` 로직으로 헤더/아울렛/푸터 통합 관리 - - 라우터 테이블에 A01~A09, B01~B11 (22개 라우트) 모두 등록됨 (B10_Payment, B11_Status 신규 발견) - - 워크플로우 라우트(B02~B11)에 대한 추가 인증 가드 구현 (company_id 검증) -- index.md 업데이트 (A02 분리, concepts에 a00_app_shell_framework 추가) -- status: both stable (실 코드 구현 완료 확인) diff --git a/docs/wiki/pages/A01_Home/A01_components.md b/docs/wiki/pages/A01_Home/A01_components.md deleted file mode 100644 index 38bd88f0..00000000 --- a/docs/wiki/pages/A01_Home/A01_components.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -type: page-frontend-detail -status: stable -page_id: A01_Home -related_pages: ["[[A01_Home/A01_frontend]]", "[[ui_templates]]", "[[a00_app_shell_framework]]"] -last_updated: 2026-07-12 -source: 상위 프로젝트 A01_Home 코드 인제스트 보완 (2026-07-12) ---- - -# A01_Home — 세부 구현 - -## 스타일 -| 항목 | 역할 | -|---|---| -| `.a01-home`, `.a01-hero` | 페이지 래퍼·히어로 배경 | -| `.a01-news-list`, `.a01-news-row` | 뉴스 목록과 행 레이아웃 | -| `.a01-feature-grid`, `.a01-feature-card` | 3열 기능 카드 그리드 | -| 900px 이하 | 기능 그리드 1열·히어로 제목 축소 | - -## 의존성 -| 항목 | 역할 | -|---|---| -| [[a00_app_shell_framework]] | `navigateTo()` 라우팅 | -| `config_frontend.ts` | `ROUTES` 상수 | -| [[ui_templates]] | 공통 버튼·카드·태그·다국어 | - -## 데이터 흐름 -| 단계 | 흐름 | -|---|---| -| 1 | `renderA01Home(root)` → `buildHero()`·`buildNews()`·`buildFeatures()` | -| 2 | `buildNews()`는 현재 `MOCK_NEWS` 사용 | -| 3 | CTA 클릭 → A07_Register 또는 A02_ProgDetail 이동 | - -## 미해결 -| 항목 | 상태 | -|---|---| -| `GET /api/a01/news` | 백엔드 미구현; 현재 뉴스는 하드코딩 | diff --git a/docs/wiki/pages/A01_Home/A01_frontend.md b/docs/wiki/pages/A01_Home/A01_frontend.md deleted file mode 100644 index 56558e12..00000000 --- a/docs/wiki/pages/A01_Home/A01_frontend.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -status: stable -page_id: A01_Home -related_pages: ["[[A02_ProgDetail/A02_frontend]]", "[[A04_NewsHistory/A04_frontend]]", "[[a00_app_shell_framework]]", "[[ui_templates]]"] -last_updated: 2026-07-12 ---- - -# A01_Home — Frontend - -로그인 전 01: 홈 페이지. 소개 히어로 + 최신 소식 + 주요 기능 3가지를 showcase하는 정적 소개 페이지. 백엔드 없음. - -## 파일 구조 - -| 파일 | 위치 | 역할 | -|---|---|---| -| `A01_Home_UI_Page.ts` | `A01_Home/A01_Home_UI_Page.ts:1-157` | 페이지 렌더링 로직 | -| `A01_Home_UI_Style.css` | `A01_Home/A01_Home_UI_Style.css:1-113` | 스타일 (theme.css 변수만 사용) | - -## 컴포넌트 - -### Hero 섹션 -- **함수:** `buildHero()` (A01_Home_UI_Page.ts:52-85) -- **구성:** 제목 + 부제목 + 2개 CTA 버튼 (회원가입/프로그램 상세) -- **색상:** 라벤더 그라디언트 배경 (`--color-mist-violet` → `--color-canvas`) - -### 최신 소식 섹션 -- **함수:** `buildNews()` (A01_Home_UI_Page.ts:87-116) -- **데이터:** MOCK_NEWS 배열 (A01_Home_UI_Page.ts:32-36, 백엔드 연결 전) -- **각 항목:** 태그 + 뉴스 제목 + 날짜 - -### 주요 기능 섹션 -- **함수:** `buildFeatures()` (A01_Home_UI_Page.ts:118-146) -- **레이아웃:** 3열 그리드 (반응형: 900px 이하 1열) -- **카드:** createCard 공통 컴포넌트 사용 - -## 이벤트 핸들러 - -| 함수 | 위치 | 동작 | -|---|---|---| -| `onA01_Home_GetStarted_Click()` | A01_Home_UI_Page.ts:41-43 | 회원가입(A07_REGISTER) 이동 | -| `onA01_Home_Explore_Click()` | A01_Home_UI_Page.ts:45-47 | 프로그램 상세(A02_PROG_DETAIL) 이동 | - -## 로컬라이제이션 - -모든 텍스트는 `ui_locales[key][currentLanguageIndex]` 형식으로 [[ui_templates]] 에서 로드. -하드코딩 금지. - -| UI 요소 | 로케일 키 | -|---|---| -| 제목 | `A01_Home_Title` | -| 히어로 부제목 | `A01_Home_Hero_Subtitle` | -| CTA 버튼 (Primary/Secondary) | `A01_Home_Hero_CtaPrimary`, `A01_Home_Hero_CtaSecondary` | -| 소식 섹션 제목 | `A01_Home_News_SectionTitle` | -| 소식 태그 | `A01_Home_News_Tag` | -| 기능 섹션 제목 | `A01_Home_Features_SectionTitle` | -| 기능 카드 1~3 | `A01_Home_Feature{1..3}_Title`, `A01_Home_Feature{1..3}_Desc` | - -## 세부 구현 - -스타일 구조·의존성·데이터 흐름·미해결 사항은 [[A01_Home/A01_components]]에 분리했다. diff --git a/docs/wiki/pages/A02_ProgDetail/A02_components.md b/docs/wiki/pages/A02_ProgDetail/A02_components.md deleted file mode 100644 index 6895d8e2..00000000 --- a/docs/wiki/pages/A02_ProgDetail/A02_components.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -type: page-frontend-detail -status: stable -page_id: A02_ProgDetail -related_pages: ["[[A02_ProgDetail/A02_frontend]]", "[[ui_templates]]", "[[a00_app_shell_framework]]"] -last_updated: 2026-07-12 -source: A02_ProgDetail 코드 인제스트 보완 및 구조화 일관성 적용 ---- - -# A02_ProgDetail — 세부 구현 - -## 스타일 (CSS) -| 항목 | 역할 | -|---|---| -| `.a02-prog-detail` | 페이지 루트 컨테이너 (gap: section-gap, padding-bottom: spacing-64) | -| `.a02-hero`, `.a02-hero__inner` | 히어로 영역 배경(라벤더 그라디언트) 및 콘텐츠 중앙 정렬 | -| `.a02-workflow-list`, `.a02-workflow-row` | 6단계 워크플로우 리스트(flex 열) 및 배지+텍스트 행 레이아웃 | -| `.a02-workflow-row__badge` | 40×40px 원형 배지 (primary 배경) | -| `.a02-tech-grid`, `.a02-tech-card` | 핵심 기술 소개 3열 카드 그리드 (900px 이하 대응) | - -## 의존성 -| 항목 | 역할 | -|---|---| -| [[a00_app_shell_framework]] | `navigateTo()` 라우팅 기능 활용 | -| `config_frontend.ts` | `ROUTES` 경로 상수 참조 | -| [[ui_templates]] | 공통 버튼(`createButton`) 및 카드(`createCard`) 엘리먼트 활용 | -| `ui_template_locale.ts` | 다국어 문구(`ui_locales`) 적용 | - -## 데이터 흐름 -| 단계 | 흐름 | -|---|---| -| 1 | `renderA02ProgDetail(root)` ➡️ `buildHero()` ➡️ `buildWorkflow()` ➡️ `buildTech()` 순서로 구성 요소를 렌더링하고 `root`에 추가 | -| 2 | 사용자가 히어로의 CTA 버튼 클릭 시 `onA02_ProgDetail_Start_Click()` 핸들러가 작동하여 `navigateTo(ROUTES.A07_REGISTER)` 호출 | - -## 미해결 / 특이사항 -| 항목 | 상태 | -|---|---| -| 정적 페이지 | 백엔드 API와의 연동이 필요 없는 완전한 정적 소개 페이지임 | diff --git a/docs/wiki/pages/A02_ProgDetail/A02_frontend.md b/docs/wiki/pages/A02_ProgDetail/A02_frontend.md deleted file mode 100644 index 77b0c212..00000000 --- a/docs/wiki/pages/A02_ProgDetail/A02_frontend.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -status: stable -page_id: A02_ProgDetail -related_pages: ["[[A01_Home/A01_frontend]]", "[[a00_app_shell_framework]]", "[[ui_templates]]", "[[A02_ProgDetail/A02_components]]"] -last_updated: 2026-07-12 ---- - -# A02_ProgDetail — Frontend - -로그인 전 프로그램 상세 페이지. 6단계 워크플로우 시각화 + 핵심 기술 소개. - -## 구조 -- **경로**: `A02_ProgDetail/A02_ProgDetail_UI_Page.ts` (146줄) -- **스타일**: `A02_ProgDetail/A02_ProgDetail_UI_Style.css` (127줄) - -## 컴포넌트 분석 - -| 컴포넌트 | 역할 | 로케일 키 | -|---|---|---| -| `buildHero()` | 히어로 섹션(제목+부제+CTA) | `A02_ProgDetail_Title`, `A02_ProgDetail_Hero_Subtitle`, `A02_ProgDetail_Hero_Cta` | -| `buildWorkflow()` | 6단계 워크플로우 리스트(배지+텍스트) | `A02_ProgDetail_Workflow_SectionTitle`, `A02_ProgDetail_Step[1-6]_Title`, `A02_ProgDetail_Step[1-6]_Desc` | -| `buildTech()` | 기술 3종 카드 그리드 | `A02_ProgDetail_Tech_SectionTitle`, `A02_ProgDetail_Tech[1-3]_Title`, `A02_ProgDetail_Tech[1-3]_Desc` | - -## 제약 준수 - -- ✅ 모든 문구 `ui_template_locale.ts` 참조 -- ✅ 색상/간격 `theme.css` 변수만 사용 -- ✅ 공통 컴포넌트 `createButton`/`createCard` 사용 -- ✅ 이벤트 핸들러 명명 `on[페이지]_[기능]_[액션]` - -## 세부 구현 - -스타일 구조·의존성·데이터 흐름·특이사항은 [[A02_ProgDetail/A02_components]]에 분리했다. diff --git a/docs/wiki/pages/A03_CompDetail/A03_frontend.md b/docs/wiki/pages/A03_CompDetail/A03_frontend.md deleted file mode 100644 index 9028d0b9..00000000 --- a/docs/wiki/pages/A03_CompDetail/A03_frontend.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -status: stable -page_id: A03_CompDetail -related_pages: ["[[a00_app_shell_framework]]", "[[ui_templates]]"] -last_updated: 2026-07-12 ---- - -# A03_CompDetail — Frontend - -로그인 전 회사 상세 페이지. 미션 + 핵심 가치 + 연락처. - -## 파일 구조 - -| 파일 | 위치 | 역할 | -|---|---|---| -| `A03_CompDetail_UI_Page.ts` | `A03_CompDetail/A03_CompDetail_UI_Page.ts:1-114` | 페이지 렌더링 로직 | -| `A03_CompDetail_UI_Style.css` | `A03_CompDetail/A03_CompDetail_UI_Style.css:1-100` | 스타일 (theme.css 변수만 사용) | - -## 컴포넌트 (섹션 빌더) - -| 함수 | 위치 | 역할 | -|---|---|---| -| `buildHero()` | `A03_CompDetail/A03_CompDetail_UI_Page.ts:23-41` | Hero(제목+부제목), mist-violet→canvas 그라디언트 | -| `buildMission()` | `A03_CompDetail/A03_CompDetail_UI_Page.ts:43-57` | 미션 섹션 제목+본문(중앙정렬, max 60자) | -| `buildValues()` | `A03_CompDetail/A03_CompDetail_UI_Page.ts:59-87` | 핵심가치 3열 카드그리드(createCard 3개) | -| `buildContact()` | `A03_CompDetail/A03_CompDetail_UI_Page.ts:89-103` | 연락처 섹션 제목+이메일 | -| `renderA03CompDetail()` | `A03_CompDetail/A03_CompDetail_UI_Page.ts:108-113` | 페이지 진입점(4개 섹션 조립) | - -## 로컬라이제이션 - -모든 텍스트는 `ui_locales[key][currentLanguageIndex]` 형식으로 [[ui_templates]]에서 로드. -하드코딩 금지. - -| UI 요소 | 로케일 키 | -|---|---| -| 제목 | `A03_CompDetail_Title` | -| 히어로 부제목 | `A03_CompDetail_Hero_Subtitle` | -| 미션 섹션 제목 | `A03_CompDetail_Mission_SectionTitle` | -| 미션 본문 | `A03_CompDetail_Mission_Body` | -| 가치 섹션 제목 | `A03_CompDetail_Value_SectionTitle` | -| 가치 1~3 | `A03_CompDetail_Value{1..3}_Title`, `A03_CompDetail_Value{1..3}_Desc` | -| 연락처 섹션 제목 | `A03_CompDetail_Contact_SectionTitle` | -| 연락처 이메일 | `A03_CompDetail_Contact_Email` | - -## 스타일 (CSS) - -### CSS 클래스 구조 -- `.a03-comp-detail` — 페이지 래퍼 (flex column, gap: section-gap) -- `.a03-hero` — 그래디언트 배경 -- `.a03-hero__inner` — 중앙 정렬 컨테이너 -- `.a03-hero__title` — heading-lg, deep-iris, max 18자 -- `.a03-hero__subtitle` — body 텍스트, slate, max 56자 -- `.a03-section` — 공통 섹션 (max-width: page-max-width, padding: spacing-32) -- `.a03-section__title` — heading-sm, deep-iris, 중앙 정렬 -- `.a03-mission__body` — body, slate, 중앙 정렬, max 60자 -- `.a03-value-grid` — 3열 그리드 (gap: spacing-24) -- `.a03-value-card` — 카드 (min-height: 140px) -- `.a03-value__desc` — body-sm, slate -- `.a03-contact__email` — body, charcoal, 중앙 정렬 - -### 반응형 -- **900px 이하:** 가치 그리드 1열, 히어로 제목 폰트 축소 - -## 의존성 - -- [[a00_app_shell_framework]] — 공통 헤더·푸터 -- [[ui_templates]] — `createCard()` 공통 컴포넌트 + 다국어 diff --git a/docs/wiki/pages/A04_NewsHistory/A04_frontend.md b/docs/wiki/pages/A04_NewsHistory/A04_frontend.md deleted file mode 100644 index 4927c990..00000000 --- a/docs/wiki/pages/A04_NewsHistory/A04_frontend.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -status: stable -page_id: A04_NewsHistory -related_pages: ["[[A01_Home/A01_frontend]]", "[[a00_app_shell_framework]]", "[[ui_templates]]"] -last_updated: 2026-07-12 ---- - -# A04_NewsHistory — Frontend - -로그인 전 최신 소식 및 개선 이력 페이지. 타임라인 목록 형태. - -## 파일 구조 - -| 파일 | 위치 | 역할 | -|---|---|---| -| `A04_NewsHistory_UI_Page.ts` | `A04_NewsHistory/A04_NewsHistory_UI_Page.ts:1-117` | 페이지 렌더링 로직 + Mock 데이터 | -| `A04_NewsHistory_UI_Style.css` | `A04_NewsHistory/A04_NewsHistory_UI_Style.css:1-87` | 스타일 (theme.css 변수만 사용) | - -## 컴포넌트 (섹션 빌더) - -| 함수 | 위치 | 역할 | -|---|---|---| -| `buildHero()` | `A04_NewsHistory/A04_NewsHistory_UI_Page.ts:50-68` | Hero(제목+부제목), mist-violet→canvas 그라디언트 | -| `buildTimeline()` | `A04_NewsHistory/A04_NewsHistory_UI_Page.ts:70-106` | 타임라인(태그+제목+날짜 행), 빈 상태 처리 | -| `renderA04NewsHistory()` | `A04_NewsHistory/A04_NewsHistory_UI_Page.ts:111-116` | 페이지 진입점(Hero+타임라인 조립) | - -- **데이터:** MOCK_HISTORY 배열 (A04_NewsHistory_UI_Page.ts:33-38, 백엔드 연결 전) — 추후 `GET /api/a04/history`로 교체 예정 -- **빈 상태:** MOCK_HISTORY.length === 0이면 `A04_NewsHistory_Empty` 로케일 키 표시 - -## Mock 데이터 구조 - -**타입:** -```typescript -type HistoryKind = "feature" | "fix" | "notice"; -interface HistoryItem { - id: number; - kind: HistoryKind; - title: string; - date: string; -} -``` - -**태그 변형 매핑** (KIND_META): -- `"feature"` → variant: "accent" → `A04_NewsHistory_Tag_Feature` -- `"fix"` → variant: "success" → `A04_NewsHistory_Tag_Fix` -- `"notice"` → variant: "neutral" → `A04_NewsHistory_Tag_Notice` - -## 로컬라이제이션 - -모든 텍스트는 `ui_locales[key][currentLanguageIndex]` 형식으로 [[ui_templates]]에서 로드. -하드코딩 금지. - -| UI 요소 | 로케일 키 | -|---|---| -| 제목 | `A04_NewsHistory_Title` | -| 히어로 부제목 | `A04_NewsHistory_Hero_Subtitle` | -| 태그 라벨 (feature/fix/notice) | `A04_NewsHistory_Tag_Feature`, `A04_NewsHistory_Tag_Fix`, `A04_NewsHistory_Tag_Notice` | -| 빈 상태 메시지 | `A04_NewsHistory_Empty` | - -## 스타일 (CSS) - -### CSS 클래스 구조 -- `.a04-news-history` — 페이지 래퍼 (flex column, gap: section-gap) -- `.a04-hero` — 그래디언트 배경 -- `.a04-hero__inner` — 중앙 정렬 컨테이너 -- `.a04-hero__title` — heading-lg, deep-iris, max 18자 -- `.a04-hero__subtitle` — body 텍스트, slate, max 56자 -- `.a04-section` — 공통 섹션 (max-width: page-max-width, padding: spacing-32) -- `.a04-timeline` — flex 열 (gap: spacing-8) -- `.a04-timeline-row` — flex row, 태그+제목+날짜 (gap: spacing-16, padding: spacing-16 spacing-24) -- `.a04-timeline-row__title` — flex: 1, body-sm, charcoal -- `.a04-timeline-row__date` — caption, ash -- `.a04-timeline__empty` — 중앙 정렬, slate, body - -### 반응형 -- **900px 이하:** 히어로 제목 폰트 축소 - -## 의존성 - -- [[a00_app_shell_framework]] — 공통 헤더·푸터 -- [[ui_templates]] — `createTag()` 공통 컴포넌트 + 다국어 - -## 미해결 사항 - -- MOCK_HISTORY 데이터: 현재 하드코딩 (4개 항목) -- 백엔드 API 미구현: `GET /api/a04/history` 코드 주석에 언급됨 diff --git a/docs/wiki/pages/A05_EduDetail/A05_frontend.md b/docs/wiki/pages/A05_EduDetail/A05_frontend.md deleted file mode 100644 index cb4f55a7..00000000 --- a/docs/wiki/pages/A05_EduDetail/A05_frontend.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -status: stable -page_id: A05_EduDetail -related_pages: ["[[a00_app_shell_framework]]", "[[ui_templates]]"] -last_updated: 2026-07-12 ---- - -# A05_EduDetail — Frontend - -로그인 전 교육 상세 페이지. 교육 과정 소개 + 문의 CTA. - -## 파일 구조 - -| 파일 | 위치 | 역할 | -|---|---|---| -| `A05_EduDetail_UI_Page.ts` | `A05_EduDetail/A05_EduDetail_UI_Page.ts:1-106` | 페이지 렌더링 로직 | -| `A05_EduDetail_UI_Style.css` | `A05_EduDetail/A05_EduDetail_UI_Style.css:1-87` | 스타일 (theme.css 변수만 사용) | - -## 컴포넌트 (섹션 빌더) - -| 함수 | 위치 | 역할 | -|---|---|---| -| `buildHero()` | `A05_EduDetail/A05_EduDetail_UI_Page.ts:33-51` | Hero(제목+부제목), mist-violet→canvas 그라디언트 | -| `buildCourses()` | `A05_EduDetail/A05_EduDetail_UI_Page.ts:53-81` | 교육과정 3열 카드그리드(createCard 3개) | -| `buildCta()` | `A05_EduDetail/A05_EduDetail_UI_Page.ts:83-95` | 문의 CTA 버튼(variant: filled) | -| `renderA05EduDetail()` | `A05_EduDetail/A05_EduDetail_UI_Page.ts:100-105` | 페이지 진입점(3개 섹션 조립) | - -## 로컬라이제이션 - -모든 텍스트는 `ui_locales[key][currentLanguageIndex]` 형식으로 [[ui_templates]]에서 로드. -하드코딩 금지. - -| UI 요소 | 로케일 키 | -|---|---| -| 제목 | `A05_EduDetail_Title` | -| 히어로 부제목 | `A05_EduDetail_Hero_Subtitle` | -| 과정 섹션 제목 | `A05_EduDetail_Course_SectionTitle` | -| 과정 1~3 | `A05_EduDetail_Course{1..3}_Title`, `A05_EduDetail_Course{1..3}_Desc` | -| CTA 버튼 라벨 | `A05_EduDetail_Cta` | - -## 스타일 (CSS) - -### CSS 클래스 구조 -- `.a05-edu-detail` — 페이지 래퍼 (flex column, gap: section-gap) -- `.a05-hero` — 그래디언트 배경 -- `.a05-hero__inner` — 중앙 정렬 컨테이너 -- `.a05-hero__title` — heading-lg, deep-iris, max 18자 -- `.a05-hero__subtitle` — body 텍스트, slate, max 56자 -- `.a05-section` — 공통 섹션 (max-width: page-max-width, padding: spacing-32) -- `.a05-section__title` — heading-sm, deep-iris, 중앙 정렬 -- `.a05-course-grid` — 3열 그리드 (gap: spacing-24) -- `.a05-course-card` — 카드 (min-height: 140px) -- `.a05-course__desc` — body-sm, slate -- `.a05-cta` — align-items: center (버튼 중앙 정렬) - -### 반응형 -- **900px 이하:** 과정 그리드 1열, 히어로 제목 폰트 축소 - -## 이벤트 핸들러 - -| 함수 | 위치 | 동작 | -|---|---|---| -| `onA05_EduDetail_Inquiry_Click()` | A05_EduDetail_UI_Page.ts:26-28 | A08_SUPPORT로 이동 | - -## 의존성 - -- [[a00_app_shell_framework]] — `navigateTo()` 라우팅 -- `config_frontend.ts` — `ROUTES` 상수 (A08_SUPPORT) -- [[ui_templates]] — `createButton()`, `createCard()` 공통 컴포넌트 + 다국어 diff --git a/docs/wiki/pages/A06_Login/A06_backend.md b/docs/wiki/pages/A06_Login/A06_backend.md deleted file mode 100644 index 9f432549..00000000 --- a/docs/wiki/pages/A06_Login/A06_backend.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -status: stable -page_id: A06_Login -related_pages: ["[[A06_Login/A06_frontend]]", "[[A07_Register/A07_backend]]", "[[A09_Security/A09_backend]]", "[[auth_rbac]]"] -last_updated: 2026-07-12 ---- - -# A06_Login — Backend - -세션 쿠키 기반 로그인 + OTP 재인증 + 세션/비밀번호 관리 API. - -## 파일 구조 - -| 파일 | 위치 | 역할 | -|---|---|---| -| `A06_Login_Router.py` | `A06_Login/A06_Login_Router.py:1-179` | 인증 API 라우터 (prefix `/api/auth`) | -| `A06_Login_Schema.py` | `A06_Login/A06_Login_Schema.py:1-20` | 요청 검증 Pydantic 모델 3종 | - -## API 엔드포인트 - -| 엔드포인트 | 위치 | 역할 | -|---|---|---| -| `POST /api/auth/login/request` | `A06_Login/A06_Login_Router.py:51` | 1차 로그인(이메일+비번). 신규 브라우저/주기 재인증 시 `otp_required` 반환 | -| `POST /api/auth/login/verify` | `A06_Login/A06_Login_Router.py:113` | OTP 검증 후 세션 발급 | -| `GET /api/auth/session` | `A06_Login/A06_Login_Router.py:145` | 현재 세션 사용자 조회 (id/email/name/role/company_id/is_master) | -| `POST /api/auth/logout` | `A06_Login/A06_Login_Router.py:160` | 세션 삭제 + 쿠키 제거 | -| `POST /api/auth/password` | `A06_Login/A06_Login_Router.py:170` | 비밀번호 변경 (현재 비번 검증, 재인증 필요 반환) | - -## 내부 헬퍼 - -| 함수 | 위치 | 역할 | -|---|---|---| -| `_user_agent(request)` | `A06_Login/A06_Login_Router.py:40` | User-Agent 헤더 추출(최대 1000자) | -| `_send_otp(user, purpose, label)` | `A06_Login/A06_Login_Router.py:44` | OTP 생성·해시 저장·메일 발송 | -| `_finish_login(user, agent)` | `A06_Login/A06_Login_Router.py:87` | 세션 생성·쿠키 설정·last_login 갱신·로그인 기록 | - -## 요청 스키마 (Pydantic) - -| 모델 | 위치 | 필드 | -|---|---|---| -| `LoginRequest` | `A06_Login/A06_Login_Schema.py:6` | email(EmailStr), password(8~128자) | -| `OtpVerifyRequest` | `A06_Login/A06_Login_Schema.py:11` | email(EmailStr), otp_code(정규식 `^\d{6}$`) | -| `PasswordChangeRequest` | `A06_Login/A06_Login_Schema.py:16` | current_password, new_password(8~128자), logout_all(기본 True) | - -## 로그인 로직 흐름 - -1. `login/request`: 이메일 조회 → 계정 잠금 확인 → 비밀번호 검증 → 계정 상태 확인(`ACTIVE`/`NO_COMPANY`/`PENDING`만 허용) -2. **OTP 트리거 조건** (둘 중 하나면 OTP 요구): - - 주기적 재인증: `last_email_verified_at`이 `EMAIL_REVERIFY_DAYS` 이전 - - 신규 브라우저: `has_known_browser()` 미확인 -3. `login/verify`: OTP 검증 → 소비 → `last_email_verified_at` 갱신 → `_finish_login` -4. `_finish_login`: 로그인 실패 초기화 → 브라우저 신뢰 등록 → `auth_expires_at = NOW() + 3개월` → 세션 생성 - -## 보안 정책 (실 코드 기준) - -- **비밀번호 실패**: `record_failed_login()` 누적, 5회 이상 & ADMIN_EMAIL 설정 시 보안 경고 메일 발송 -- **계정 잠금**: `account_locked_until`이 미래면 423 반환 -- **로그인 기록**: 모든 시도를 `record_login()`으로 기록(성공/실패 사유 포함) - -## 의존성 (공통 유틸) - -- [[common_util]] — `common_util_auth`(세션/OTP/해시), `common_util_auth_repository`(DB 조회), `common_util_email`(메일 발송) -- 인증/세션/OTP 정책 상세 → [[auth_rbac]] -- `config_system` — `ADMIN_EMAIL`, `EMAIL_REVERIFY_DAYS` - -## ⚠️ 계획서와 실 코드 불일치 - -[[auth_rbac]]는 계획서 기준(OTP 5분·재시도 3회, 세션 4h/12h, 5회 실패 15분 잠금)으로 기술돼 있으나, -실 코드는 `auth_expires_at = NOW() + 3개월` 갱신·브라우저 신뢰 기반 OTP·5회 실패 시 관리자 알림 메일 방식. -정책 상세 검증 필요 — 규칙 6(실 코드 우선)에 따라 auth_rbac 갱신 대상. diff --git a/docs/wiki/pages/A06_Login/A06_frontend.md b/docs/wiki/pages/A06_Login/A06_frontend.md deleted file mode 100644 index 67073edc..00000000 --- a/docs/wiki/pages/A06_Login/A06_frontend.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -status: stable -page_id: A06_Login -related_pages: ["[[A06_Login/A06_backend]]", "[[A07_Register/A07_frontend]]", "[[auth_rbac]]"] -last_updated: 2026-07-12 ---- - -# A06_Login — Frontend - -로그인 화면. 이메일+비밀번호 1차 → 필요 시 OTP 입력으로 전환하는 단일 폼. - -## 파일 구조 - -| 파일 | 위치 | 역할 | -|---|---|---| -| `A06_Login_UI_Auth_Page.ts` | `A06_Login/A06_Login_UI_Auth_Page.ts:1-80` | 로그인 폼 렌더링 + 제출 로직 | -| `A06_Login_UI_Style.css` | `A06_Login/A06_Login_UI_Style.css:1-52` | 스타일 (theme.css 변수만 사용) | -| `A06_Login_Api_Fetch.ts` | `A06_Login/A06_Login_Api_Fetch.ts:1-57` | 인증 API 클라이언트 (`credentials: "include"`) | - -## 컴포넌트 / 함수 - -| 함수 | 위치 | 역할 | -|---|---|---| -| `renderA06Login(root)` | `A06_Login/A06_Login_UI_Auth_Page.ts:17` | 카드+폼(email/password/otp/submit) 조립 | -| `onA06_Login_Submit_Click(event)` | `A06_Login/A06_Login_UI_Auth_Page.ts:34` | 폼 제출 핸들러(검증→요청→OTP 전환/성공) | - -## API 클라이언트 함수 - -| 함수 | 위치 | 역할 | -|---|---|---| -| `requestLogin(email, password)` | `A06_Login/A06_Login_Api_Fetch.ts:30` | `POST /auth/login/request` | -| `verifyLogin(email, otpCode)` | `A06_Login/A06_Login_Api_Fetch.ts:34` | `POST /auth/login/verify` | -| `fetchSession()` | `A06_Login/A06_Login_Api_Fetch.ts:38` | `GET /auth/session` → boolean(로그인 여부) | -| `fetchSessionUser()` | `A06_Login/A06_Login_Api_Fetch.ts:43` | `GET /auth/session` → SessionUser 객체 | -| `logout()` | `A06_Login/A06_Login_Api_Fetch.ts:54` | `POST /auth/logout` | - -- `SessionUser` 타입: id, email, name?, role?, company_id?, is_master? -- `fetchSession`/`fetchSessionUser`/`logout`은 [[a00_app_shell_framework]]에서도 사용 (공유 자원) - -## 제출 로직 (2단계 폼 전환) - -1. 이메일 유효성 검사 (isBlank/isValidEmail) → 실패 시 필드 에러 -2. OTP 미요구 상태면 비밀번호 필수, OTP 요구 상태면 6자리 숫자 검증 -3. `otpRequired` false → `requestLogin`, true → `verifyLogin` -4. 응답 `status === "otp_required"`: - - otp 필드 노출, password 필드 숨김 - - 제출 버튼 라벨 → `A06_Login_Verify` - - 토스트 안내(`A06_Login_OtpSent`) -5. 로그인 성공 → 토스트 후 `navigateTo(ROUTES.B01_ACCOUNT)` - -## 로컬라이제이션 - -모든 텍스트는 [[ui_templates]]에서 로드. 하드코딩 금지. - -| UI 요소 | 로케일 키 | -|---|---| -| 제목 | `A06_Login_Title` | -| 이메일/비번/OTP 필드 | `A06_Login_Field_Email`, `A06_Login_Field_Password`, `A06_Login_Field_Otp` | -| 제출/인증 버튼 | `A06_Login_Submit`, `A06_Login_Verify` | -| 회원가입 이동 | `A06_Login_ToRegister` | -| 안내/성공 | `A06_Login_OtpSent`, `A06_Login_Success` | -| 오류 | `A06_Login_Error_Email`, `A06_Login_Error_Required`, `A06_Login_Error_Request` | - -## 스타일 (CSS) - -- `.a06-login` — 페이지 래퍼 (중앙 정렬, 상단 정렬) -- `.a06-login__card` — 로그인 카드 (max-width: 400px, surface 배경, border) -- `.a06-login__title` — heading-sm, deep-iris, 중앙 정렬 -- `.a06-login__form` — flex 열 (gap: spacing-16) -- `.a06-login__submit` / `.a06-login__link` — 전체 너비 버튼 - -## 이벤트 핸들러 - -| 함수 | 위치 | 동작 | -|---|---|---| -| `onA06_Login_Submit_Click()` | `A06_Login/A06_Login_UI_Auth_Page.ts:34` | 로그인/OTP 제출 | -| (인라인) 회원가입 버튼 | `A06_Login/A06_Login_UI_Auth_Page.ts:75` | A07_REGISTER로 이동 | - -## 의존성 - -- [[a00_app_shell_framework]] — `navigateTo()` 라우팅 -- `config_frontend.ts` — `ROUTES`, `API_BASE_URL` -- `common_util_validate` — `isBlank`, `isValidEmail` -- [[ui_templates]] — `createButton`, `createInputField`, `showLoadingOverlay`/`hideLoadingOverlay`, `showToast` -- 백엔드 API → [[A06_Login/A06_backend]] diff --git a/docs/wiki/pages/A07_Register/A07_backend.md b/docs/wiki/pages/A07_Register/A07_backend.md deleted file mode 100644 index 601045e9..00000000 --- a/docs/wiki/pages/A07_Register/A07_backend.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -status: stable -page_id: A07_Register -related_pages: ["[[A07_Register/A07_frontend]]", "[[A06_Login/A06_backend]]", "[[auth_rbac]]"] -last_updated: 2026-07-12 ---- - -# A07_Register — Backend - -회원가입(2단계: 요청 → OTP 검증) + 회사 검색 API. prefix `/api/auth` ([[A06_Login/A06_backend]]와 공유). - -## 파일 구조 - -| 파일 | 위치 | 역할 | -|---|---|---| -| `A07_Register_Router.py` | `A07_Register/A07_Register_Router.py:1-76` | 회원가입/회사검색 API 라우터 | -| `A07_Register_Schema.py` | `A07_Register/A07_Register_Schema.py:1-30` | 요청 검증 Pydantic 모델 2종 | - -## API 엔드포인트 - -| 엔드포인트 | 위치 | 역할 | -|---|---|---| -| `GET /api/auth/companies?q=` | `A07_Register/A07_Register_Router.py:26` | 회사명 검색(1~100자) → id/name 목록 | -| `POST /api/auth/register/request` | `A07_Register/A07_Register_Router.py:31` | 1차 가입 요청(202). OTP 메일 발송, PENDING_EMAIL 계정 생성 | -| `POST /api/auth/register/verify` | `A07_Register/A07_Register_Router.py:56` | OTP 검증 → 가입 완료(NO_COMPANY 상태) | - -## 요청 스키마 (Pydantic) - -| 모델 | 위치 | 필드 | -|---|---|---| -| `RegisterRequest` | `A07_Register/A07_Register_Schema.py:6` | email, password/password_confirm(8~128), name, position?, phone?, terms_version, terms_agreed, privacy_agreed, marketing_agreed | -| `RegisterVerifyRequest` | `A07_Register/A07_Register_Schema.py:27` | email(EmailStr), otp_code(정규식 `^\d{6}$`) | - -- `RegisterRequest.validate_registration` (model_validator): 필수 약관 동의 확인 + 비밀번호 일치 확인 - -## 가입 로직 흐름 - -1. `register/request`: - - 기존 이메일 조회 → `PENDING_EMAIL`이 아니면 409(이미 등록됨) - - `PENDING_EMAIL`(미인증)이면 `refresh_pending_registration()`으로 갱신 - - 신규면 `create_registration()`으로 생성 - - OTP 생성·해시 저장·메일 발송 -2. `register/verify`: - - `PENDING_EMAIL` 상태 확인 → OTP 검증(만료/해시) → 소비 - - `complete_registration()` → 상태 `NO_COMPANY`로 전환 - - **회사 생성/연결은 로그인 후 B01_Dashboard에서 진행** (가입 시점엔 회사 없음) - -## 의존성 (공통 유틸) - -- [[common_util]] — `common_util_auth`(OTP/해시), `common_util_auth_repository`(가입/회사검색 DB), `common_util_email`(메일) -- 사용자 상태 생명주기(PENDING_EMAIL → NO_COMPANY) → [[auth_rbac]] -- 회원 테이블 → [[db_schema/users_auth]] - -## 참고 - -- 회원가입은 회사 없이 완료됨(NO_COMPANY). 회사 검색 API는 프론트 자동완성용이나, - 실제 회사 연결은 B01_Dashboard에서 처리 → [[B01_Dashboard/B01_backend]] diff --git a/docs/wiki/pages/A07_Register/A07_frontend.md b/docs/wiki/pages/A07_Register/A07_frontend.md deleted file mode 100644 index afb5466b..00000000 --- a/docs/wiki/pages/A07_Register/A07_frontend.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -status: stable -page_id: A07_Register -related_pages: ["[[A07_Register/A07_backend]]", "[[A06_Login/A06_frontend]]", "[[auth_rbac]]"] -last_updated: 2026-07-12 ---- - -# A07_Register — Frontend - -회원가입 화면. 정보 입력 + 약관 아코디언 동의 → OTP 입력으로 전환하는 2단계 폼. - -## 파일 구조 - -| 파일 | 위치 | 역할 | -|---|---|---| -| `A07_Register_UI_Auth_Page.ts` | `A07_Register/A07_Register_UI_Auth_Page.ts:1-208` | **실사용** 회원가입 UI (약관·OTP·실 API) | -| `A07_Register_UI_Page.ts` | `A07_Register/A07_Register_UI_Page.ts:1-142` | ⚠️ 구버전 잔재 (미사용, 아래 참고) | -| `A07_Register_UI_Style.css` | `A07_Register/A07_Register_UI_Style.css:1-103` | 스타일 (theme.css 변수만 사용) | -| `A07_Register_Api_Fetch.ts` | `A07_Register/A07_Register_Api_Fetch.ts:1-47` | 회원가입/회사검색 API 클라이언트 | - -> ⚠️ **라우터는 `A07_Register_UI_Auth_Page`만 사용** (router.ts:30 확인). `A07_Register_UI_Page.ts`는 -> 회사명+이름+이메일+비번만 받는 단순 폼이며 백엔드 미연동(TODO 주석, `navigateTo`만) — 구버전 잔재로 판단. 정리 권장. - -## 컴포넌트 / 함수 (UI_Auth_Page — 실사용) - -| 함수 | 위치 | 역할 | -|---|---|---| -| `renderA07Register(root)` | `A07_Register/A07_Register_UI_Auth_Page.ts:68` | 카드+폼 조립, 약관 텍스트 비동기 로드 후 렌더 | -| `onA07_Register_Submit_Click(event)` | `A07_Register/A07_Register_UI_Auth_Page.ts:146` | 제출 핸들러(검증→가입요청→OTP 전환→검증) | -| `checkboxWithAccordion(label, text)` | `A07_Register/A07_Register_UI_Auth_Page.ts:22` | 체크박스+펼침 상세(약관 본문) 컴포넌트 | -| `loadAgreementText(filename)` | `A07_Register/A07_Register_UI_Auth_Page.ts:58` | `resources/legal/*.txt` 약관 파일 fetch | - -## API 클라이언트 함수 - -| 함수 | 위치 | 역할 | -|---|---|---| -| `requestRegistration(payload)` | `A07_Register/A07_Register_Api_Fetch.ts:28` | `POST /auth/register/request` | -| `verifyRegistration(email, otpCode)` | `A07_Register/A07_Register_Api_Fetch.ts:32` | `POST /auth/register/verify` | -| `searchCompanies(query)` | `A07_Register/A07_Register_Api_Fetch.ts:39` | `GET /auth/companies?q=` → id/name 목록 | - -- `RegisterPayload` 타입: email, password, password_confirm, name, position, phone, terms_version, terms_agreed, privacy_agreed, marketing_agreed - -## 제출 로직 (2단계 폼 전환) - -1. **입력 검증**: 이름/이메일/비번/비번확인 필수, 이메일 형식, 비번 8자 이상, 비번 일치, 필수 약관(terms/privacy) 체크 -2. `requestRegistration()` 호출 (`terms_version: "1.0"` 고정, terms_agreed/privacy_agreed true) -3. 성공 시 `verifyStep = true`: 입력 필드 숨기고 OTP 필드 노출, 버튼 라벨 → `A07_Register_Verify` -4. OTP 제출 → `verifyRegistration()` → 성공 토스트 → `navigateTo(ROUTES.A06_LOGIN)` - -## 약관 동의 (아코디언) - -- `checkboxWithAccordion`으로 이용약관/개인정보/마케팅 3종 생성 -- 약관 본문은 `resources/legal/{terms_of_service,privacy_policy,marketing_consent}.txt`에서 fetch -- 마케팅은 선택(marketing_agreed), 이용약관·개인정보는 필수 - -## 로컬라이제이션 - -모든 텍스트는 [[ui_templates]]에서 로드. 하드코딩 금지. - -| UI 요소 | 로케일 키 | -|---|---| -| 제목 | `A07_Register_Title` | -| 필드 | `A07_Register_Field_Name`, `_Position`, `_Email`, `_Phone`, `_Password`, `_PasswordConfirm`, `_Otp` | -| 약관 | `A07_Register_Terms`, `_Privacy`, `_Marketing` | -| 제출/인증 | `A07_Register_Submit`, `A07_Register_Verify` | -| 안내/성공 | `A07_Register_OtpSent`, `A07_Register_Success` | -| 오류 | `A07_Register_Error_Required`, `_Email`, `_Password`, `_PasswordMismatch`, `_Terms`, `_Request` | -| 로그인 이동 | `A07_Register_ToLogin` | - -## 스타일 (CSS) - -- `.a07-register__card` — 카드 (max-width: 420px) -- `.a07-register__agreement` — 약관 컨테이너(border, overflow hidden) -- `.a07-register__agreement-summary` — 체크박스+라벨 헤더(클릭 시 상세 토글) -- `.a07-register__agreement-details` / `-content` — 펼침 약관 본문(max-height 200px, pre-wrap) - -## 이벤트 핸들러 - -| 함수 | 위치 | 동작 | -|---|---|---| -| `onA07_Register_Submit_Click()` | `A07_Register/A07_Register_UI_Auth_Page.ts:146` | 가입/OTP 제출 | -| (인라인) 로그인 버튼 | `A07_Register/A07_Register_UI_Auth_Page.ts:201` | A06_LOGIN으로 이동 | -| (인라인) 약관 요약 클릭 | `A07_Register/A07_Register_UI_Auth_Page.ts:47` | 상세 아코디언 토글 | - -## 의존성 - -- [[a00_app_shell_framework]] — `navigateTo()` 라우팅 -- `config_frontend.ts` — `ROUTES`, `API_BASE_URL` -- `common_util_validate` — `isBlank`, `isValidEmail`, `hasMinLength` -- [[ui_templates]] — `createButton`, `createInputField`, `showLoadingOverlay`/`hideLoadingOverlay`, `showToast` -- 백엔드 API → [[A07_Register/A07_backend]] diff --git a/docs/wiki/pages/A08_Support/A08_backend.md b/docs/wiki/pages/A08_Support/A08_backend.md deleted file mode 100644 index 762fb763..00000000 --- a/docs/wiki/pages/A08_Support/A08_backend.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -status: stable -page_id: A08_Support -related_pages: ["[[A08_Support/A08_frontend]]", "[[A06_Login/A06_backend]]", "[[db_schema/logs_monitoring]]"] -last_updated: 2026-07-12 ---- - -# A08_Support — Backend - -기술지원 문의 접수 API. `support_requests` 테이블 저장 + 관리자 알림 메일. - -## 파일 구조 - -| 파일 | 위치 | 역할 | -|---|---|---| -| `A08_Support_Router.py` | `A08_Support/A08_Support_Router.py:1-68` | 문의 접수 API (prefix `/api/a08`) | -| `A08_Support_Schema.py` | `A08_Support/A08_Support_Schema.py:1-13` | 문의 요청 검증 Pydantic 모델 | - -## API 엔드포인트 - -| 엔드포인트 | 위치 | 역할 | -|---|---|---| -| `POST /api/a08/support` | `A08_Support/A08_Support_Router.py:27` | 문의 접수. DB 저장 + ADMIN_EMAIL로 알림 메일 | - -## 내부 헬퍼 - -| 함수 | 위치 | 역할 | -|---|---|---| -| `_get_company_name(company_id)` | `A08_Support/A08_Support_Router.py:16` | company_id로 회사명 조회 (없으면 None) | - -## 요청 스키마 (Pydantic) - -| 모델 | 위치 | 필드 | -|---|---|---| -| `SupportRequestPayload` | `A08_Support/A08_Support_Schema.py:6` | name(1~255), email(EmailStr), phone?(≤30), subject(1~255), message(1~5000) | - -## 접수 로직 - -1. `get_optional_session()`으로 로그인 여부 확인 (비로그인 허용) -2. 로그인 상태면 세션의 `company_id` → `_get_company_name()`으로 회사명 조회, 비로그인이면 None -3. `support_requests` INSERT (아래 컬럼) -4. ADMIN_EMAIL 설정 시 관리자에게 문의 알림 메일 발송 - -## DB 저장 컬럼 (실 코드 INSERT 기준) - -`support_requests`에 INSERT하는 컬럼: -`company_id, company_name, user_name, user_email, user_phone, subject, message` - -→ 테이블 정의 → [[db_schema/logs_monitoring]] - -## 특징 - -- **비로그인도 문의 가능** (`get_optional_session`): 세션 없으면 회사 정보만 None으로 저장 -- 로그인 상태면 회사 정보 자동 연결 - -## 의존성 (공통 유틸) - -- [[common_util]] — `common_util_auth`(`get_optional_session`), `common_util_email`(`send_email_background`), `common_util_email_templates`(`support_request_email`) -- `config_system` — `ADMIN_EMAIL` -- DB → [[db_schema/logs_monitoring]] - -## ⚠️ DB 스키마 불일치 (확인 필요) - -[[db_schema/logs_monitoring]]의 `support_requests` 컬럼은 계획서 기준 -(`user_id, title, priority, status`)인데, 실 코드 INSERT는 -`company_id, company_name, user_name, user_email, user_phone, subject, message`. -컬럼명이 다름 — 실 DB 스키마 대조 필요 (규칙6: 실 코드 우선). logs_monitoring 갱신 대상. diff --git a/docs/wiki/pages/A08_Support/A08_frontend.md b/docs/wiki/pages/A08_Support/A08_frontend.md deleted file mode 100644 index 72f3493a..00000000 --- a/docs/wiki/pages/A08_Support/A08_frontend.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -status: stable -page_id: A08_Support -related_pages: ["[[A08_Support/A08_backend]]", "[[a00_app_shell_framework]]", "[[ui_templates]]"] -last_updated: 2026-07-12 ---- - -# A08_Support — Frontend - -기술지원 문의 폼. 이름·이메일·연락처·제목·문의내용(textarea) 입력 후 제출. - -## 파일 구조 - -| 파일 | 위치 | 역할 | -|---|---|---| -| `A08_Support_UI_Page.ts` | `A08_Support/A08_Support_UI_Page.ts:1-217` | 문의 폼 렌더링 + 제출 로직 | -| `A08_Support_UI_Style.css` | `A08_Support/A08_Support_UI_Style.css:1-64` | 스타일 (theme.css 변수만 사용) | - -## 컴포넌트 / 함수 - -| 함수 | 위치 | 역할 | -|---|---|---| -| `renderA08Support(root)` | `A08_Support/A08_Support_UI_Page.ts:69` | 카드+폼 조립, 세션 정보 자동 채움 | -| `onA08_Support_Submit_Click(event)` | `A08_Support/A08_Support_UI_Page.ts:133` | 제출 핸들러(검증→fetch POST) | -| `createTextAreaField(label, placeholder)` | `A08_Support/A08_Support_UI_Page.ts:32` | 여러 줄 textarea 필드(에러 슬롯 포함) 생성 | - -## 제출 로직 - -1. 필수값 검사(name/email/subject/message), 이메일 형식 검사 -2. `fetch("/api/a08/support", POST)` 직접 호출 (별도 Api_Fetch 파일 없음) -3. 성공: 폼 리셋 + 성공 메시지(`A08_Support_Success`) 표시 -4. 실패: nameField에 오류 메시지 표시 - -## 세션 자동 채움 - -- 렌더 후 백그라운드에서 `fetchSessionUser()`([[A06_Login/A06_frontend]]) 호출 -- 로그인 상태면 name/email 필드 자동 입력 (렌더링 지연 없음) - -## 로컬라이제이션 - -모든 텍스트는 [[ui_templates]]에서 로드. 하드코딩 금지. - -| UI 요소 | 로케일 키 | -|---|---| -| 제목/부제 | `A08_Support_Title`, `A08_Support_Subtitle` | -| 필드 | `A08_Support_Field_Name`, `_Email`, `_Phone`, `_Subject`, `_Message` (+각 Placeholder) | -| 제출 | `A08_Support_Submit` | -| 성공 | `A08_Support_Success` | -| 오류 | `A08_Support_Error_Required`, `A08_Support_Error_Email` | - -## 스타일 (CSS) - -- `.a08-support__card` — 카드 (max-width: 520px) -- `.a08-support__success` — 성공 메시지(success 색, mist-violet 배경), 기본 hidden -- `.a08-support__form` — flex 열 (gap: spacing-16) -- `.a08-support__textarea` — resize vertical, min-height 120px -- `.a08-support__submit` — 전체 너비 버튼 - -## 이벤트 핸들러 - -| 함수 | 위치 | 동작 | -|---|---|---| -| `onA08_Support_Submit_Click()` | `A08_Support/A08_Support_UI_Page.ts:133` | 문의 검증·제출 | - -## 의존성 - -- `config_frontend.ts` — (직접 `/api/a08/support` 상대경로 fetch) -- `common_util_validate` — `isBlank`, `isValidEmail` -- [[A06_Login/A06_frontend]] — `fetchSessionUser` (세션 자동 채움) -- [[ui_templates]] — `createButton`, `createInputField` (textarea는 자체 구현) -- 백엔드 API → [[A08_Support/A08_backend]] - -## 참고 - -- 문의 폼은 로그인/비로그인 모두 사용 가능 (세션 있으면 name/email 자동 입력) -- textarea는 공통 컴포넌트에 없어 `createTextAreaField`로 자체 구현 (`.ui-field`/`.ui-input` 스타일 상속) diff --git a/docs/wiki/pages/A09_Security/A09_backend.md b/docs/wiki/pages/A09_Security/A09_backend.md deleted file mode 100644 index 5fc36c74..00000000 --- a/docs/wiki/pages/A09_Security/A09_backend.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -status: stable -page_id: A09_Security -related_pages: ["[[A09_Security/A09_frontend]]", "[[A06_Login/A06_backend]]", "[[A07_Register/A07_backend]]", "[[auth_rbac]]"] -last_updated: 2026-07-12 ---- - -# A09_Security — Backend - -마스터(회사관리자)·시스템관리자 보안/조직 관리 API + 활동 로그 기록. prefix `/api/security`. - -## 파일 구조 - -| 파일 | 위치 | 역할 | -|---|---|---| -| `A09_Security_Router.py` | `A09_Security/A09_Security_Router.py:1-123` | 마스터/시스템관리자/활동로그 API | -| `A09_Security_Schema.py` | `A09_Security/A09_Security_Schema.py:1-25` | 요청 검증 Pydantic 모델 3종 | - -## API 엔드포인트 - -### 마스터(회사 관리자) 전용 — `require_master` - -| 엔드포인트 | 위치 | 역할 | -|---|---|---| -| `GET /api/security/master/dashboard` | `A09_Security/A09_Security_Router.py:28` | 마스터 대시보드(회사 기준) | -| `GET /api/security/master/members` | `A09_Security/A09_Security_Router.py:33` | 회사 팀원 목록 | -| `GET /api/security/master/join-requests` | `A09_Security/A09_Security_Router.py:38` | 가입 요청 목록 | -| `POST /api/security/master/join-requests/{id}/decision` | `A09_Security/A09_Security_Router.py:43` | 가입 승인/거부 + 결과 메일 발송 | -| `POST /api/security/master/members/{id}/remove` | `A09_Security/A09_Security_Router.py:59` | 팀원 비활성화(내보내기) | - -### 시스템 관리자 전용 — `require_system_admin` - -| 엔드포인트 | 위치 | 역할 | -|---|---|---| -| `GET /api/security/admin/dashboard` | `A09_Security/A09_Security_Router.py:86` | 시스템 대시보드 + psutil 리소스(cpu/memory/disk/process) | -| `GET /api/security/admin/{collection}` | `A09_Security/A09_Security_Router.py:101` | 컬렉션 목록(companies/users/support) | -| `PATCH /api/security/admin/{entity}/{id}/status` | `A09_Security/A09_Security_Router.py:110` | 엔티티 상태 변경(company/user/support) | - -### 인증 사용자 공통 — `verify_session` - -| 엔드포인트 | 위치 | 역할 | -|---|---|---| -| `POST /api/security/activity` | `A09_Security/A09_Security_Router.py:66` | 활동 로그 기록(202), `activity_logs` INSERT | - -## 요청 스키마 (Pydantic) - -| 모델 | 위치 | 필드 | -|---|---|---| -| `JoinDecisionRequest` | `A09_Security/A09_Security_Schema.py:8` | approved(bool), comment?(≤1000) | -| `AdminStatusRequest` | `A09_Security/A09_Security_Schema.py:13` | status(3~20), reason(1~500) | -| `ActivityLogRequest` | `A09_Security/A09_Security_Schema.py:18` | action_type(Literal 5종), resource_id?, status(SUCCESS/FAILURE), details(dict) | - -- `action_type` Literal: FILE_UPLOAD, FILE_DOWNLOAD, PROJECT_SAVE, DATA_PROCESS, PAGE_VIEW - -## DB 저장 (activity_logs) - -`POST /activity`가 INSERT하는 컬럼: `user_id, action_type, resource_id, status, details(JSON)` -→ 테이블 정의 → [[db_schema/logs_monitoring]] - -## 권한 헬퍼 - -- `require_master` — 회사 마스터(is_master) 권한 -- `require_system_admin` — SYSTEM_ADMIN 역할 -- `verify_session` — 로그인 세션 -- 권한 체계 상세 → [[auth_rbac]] - -## 의존성 (공통 유틸) - -- [[common_util]] — `common_util_auth`(권한 데코레이터), `common_util_auth_repository`(마스터/관리자 조회·처리), `common_util_email`(가입 결과 메일) -- 외부 라이브러리: `psutil`(관리자 대시보드 리소스 계측) → [[dependencies]] -- DB → [[db_schema/logs_monitoring]](activity_logs), [[db_schema/users_auth]](join_requests/companies) - -## 참고 - -- 이 백엔드 API는 마스터/시스템관리자용이나, **프론트(`A09_Security_UI_Page.ts`)는 약관 열람만 하고 이 API를 사용하지 않음**. - API 클라이언트(`A09_Security_Api_Fetch.ts`)는 정의만 되고 미연동 상태 → [[A09_Security/A09_frontend]] 참고 -- B01_Dashboard의 관리자 기능과 역할이 겹칠 수 있음 (마스터 대시보드/멤버관리) — 향후 연동처 확인 필요 diff --git a/docs/wiki/pages/A09_Security/A09_frontend.md b/docs/wiki/pages/A09_Security/A09_frontend.md deleted file mode 100644 index 80f20f1a..00000000 --- a/docs/wiki/pages/A09_Security/A09_frontend.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -status: stable -page_id: A09_Security -related_pages: ["[[A09_Security/A09_backend]]", "[[A06_Login/A06_frontend]]", "[[auth_rbac]]"] -last_updated: 2026-07-12 ---- - -# A09_Security — Frontend - -보안·약관 열람 페이지. 이용약관/개인정보/세션 보안정책 텍스트를 버전과 함께 표시. - -## 파일 구조 - -| 파일 | 위치 | 역할 | -|---|---|---| -| `A09_Security_UI_Page.ts` | `A09_Security/A09_Security_UI_Page.ts:1-30` | **실사용** 약관 열람 페이지 렌더링 | -| `A09_Security_Terms.ts` | `A09_Security/A09_Security_Terms.ts:1-16` | 약관 텍스트 데이터(한/영), 버전 상수 | -| `A09_Security_UI_Style.css` | `A09_Security/A09_Security_UI_Style.css:1-14` | 스타일 (theme.css 변수만 사용) | -| `A09_Security_Api_Fetch.ts` | `A09_Security/A09_Security_Api_Fetch.ts:1-61` | ⚠️ API 클라이언트 (정의만, **미사용** — 아래 참고) | - -> ⚠️ **프론트/백엔드 기능 불일치**: `A09_Security_UI_Page.ts`는 약관 텍스트 열람만 하며 -> `A09_Security_Api_Fetch.ts`를 import하지 않는다. API 클라이언트(마스터/관리자 8함수)는 정의만 되고 -> 어디서도 사용되지 않음(grep 확인). 백엔드 API(`/api/security`)는 완비돼 있으나 프론트 연동 미완. - -## 컴포넌트 / 함수 - -| 함수 | 위치 | 역할 | -|---|---|---| -| `renderA09Security(root)` | `A09_Security/A09_Security_UI_Page.ts:7` | 제목+버전+3개 약관 섹션 렌더 | - -## 약관 데이터 (A09_Security_Terms.ts) - -| 항목 | 위치 | 내용 | -|---|---|---| -| `SECURITY_TERMS_VERSION` | `A09_Security/A09_Security_Terms.ts:1` | 약관 버전 상수 `"1.0"` | -| `securityTerms.terms` | `A09_Security/A09_Security_Terms.ts:4` | 이용약관(한/영) | -| `securityTerms.privacy` | `A09_Security/A09_Security_Terms.ts:8` | 개인정보(한/영, "IP 미수집" 명시) | -| `securityTerms.security` | `A09_Security/A09_Security_Terms.ts:12` | 세션 보안정책(한/영) | - -## API 클라이언트 함수 (⚠️ 미사용, 정의만) - -| 함수 | 위치 | 대응 API | -|---|---|---| -| `getMasterDashboard()` | `A09_Security/A09_Security_Api_Fetch.ts:14` | `GET /security/master/dashboard` | -| `getMembers()` | `A09_Security/A09_Security_Api_Fetch.ts:18` | `GET /security/master/members` | -| `getJoinRequests()` | `A09_Security/A09_Security_Api_Fetch.ts:22` | `GET /security/master/join-requests` | -| `decideJoinRequest(id, approved, comment?)` | `A09_Security/A09_Security_Api_Fetch.ts:26` | `POST .../join-requests/{id}/decision` | -| `removeMember(userId)` | `A09_Security/A09_Security_Api_Fetch.ts:37` | `POST .../members/{id}/remove` | -| `getAdminDashboard()` | `A09_Security/A09_Security_Api_Fetch.ts:41` | `GET /security/admin/dashboard` | -| `getAdminCollection(collection)` | `A09_Security/A09_Security_Api_Fetch.ts:45` | `GET /security/admin/{collection}` | -| `updateAdminStatus(entity, id, status, reason)` | `A09_Security/A09_Security_Api_Fetch.ts:51` | `PATCH /security/admin/{entity}/{id}/status` | - -## 로컬라이제이션 - -모든 텍스트는 [[ui_templates]]에서 로드. 하드코딩 금지. - -| UI 요소 | 로케일 키 | -|---|---| -| 제목/버전 | `A09_Security_Title`, `A09_Security_Version` | -| 섹션 제목 | `A09_Security_Terms`, `A09_Security_Privacy`, `A09_Security_Policy` | - -- 약관 본문은 로케일이 아닌 `A09_Security_Terms.ts`에 한/영 배열로 별도 관리(`[currentLanguageIndex]`로 선택) - -## 스타일 (CSS) - -- `.a09-security` — 문서 컨테이너(max-width 800px, surface 배경, border) -- `.a09-security section` — 섹션 간격(margin-top: spacing-32) - -## ⚠️ 약관 텍스트와 실 코드 불일치 - -`securityTerms.security`는 "세션 12시간 또는 4시간 비활동 후 만료"로 안내하나, -A06 실 코드는 `auth_expires_at = NOW() + 3개월` 방식 → [[A06_Login/A06_backend]] 참고. -약관 텍스트도 [[auth_rbac]] 계획서 기준으로 작성됨 (실 정책 검증 후 갱신 필요). - -## 의존성 - -- [[ui_templates]] — `ui_locales`, `currentLanguageIndex` (다국어) -- 백엔드 API(미연동) → [[A09_Security/A09_backend]] diff --git a/docs/wiki/pages/B01_Dashboard/B01_api.md b/docs/wiki/pages/B01_Dashboard/B01_api.md deleted file mode 100644 index ba44775c..00000000 --- a/docs/wiki/pages/B01_Dashboard/B01_api.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -type: page-api -status: stable -page_id: B01_Dashboard -related_pages: ["[[B01_Dashboard/B01_frontend]]", "[[B01_Dashboard/B01_backend]]", "[[B01_Dashboard/B01_db]]"] -last_updated: 2026-07-12 -source: 상위 프로젝트 B01_Dashboard_Router.py 실 코드 직접 확인 (2026-07-12) ---- - -# B01_Dashboard — API - -기본 prefix: `/api/dashboard` (`B01_Dashboard_Router.py:57`). 공통 인증·오류 형식은 [[../../concepts/auth_rbac]], [[../../concepts/api_common]] 참조. - -## 사용자·회사 -| 항목 | 위치 | 역할 | -|---|---|---| -| `GET /me` | `B01_Dashboard_Router.py:101` | 로그인 사용자 대시보드 정보 조회 | -| `PATCH /me` | `B01_Dashboard_Router.py:109` | 내 기본정보 수정 | -| `GET /user/projects` | `B01_Dashboard_Router.py:118` | 내 프로젝트와 workflow 상태 조회 | -| `GET /user/company` | `B01_Dashboard_Router.py:123` | 소속 회사 조회 | -| `GET /user/companies` | `B01_Dashboard_Router.py:128` | 가입 대상 회사 검색 | -| `POST /user/company/create` | `B01_Dashboard_Router.py:137` | 회사 생성 후 생성자 연결 | -| `POST /user/company/join` | `B01_Dashboard_Router.py:146` | 회사 가입 신청 | - -## 회사 관리자 -| 항목 | 위치 | 역할 | -|---|---|---| -| `GET /admin/members` | `B01_Dashboard_Router.py:155` | 회사 팀원 목록 | -| `POST /admin/members` | `B01_Dashboard_Router.py:163` | 이메일로 팀원 추가 | -| `DELETE /admin/members/{user_id}` | `B01_Dashboard_Router.py:174` | 팀원 회사 연결 해제 | -| `GET /admin/join-requests` | `B01_Dashboard_Router.py:183` | 회사 가입 신청 목록 | -| `PATCH /admin/join-requests/{request_id}` | `B01_Dashboard_Router.py:188` | 가입 신청 승인·거절 | -| `GET /admin/projects` | `B01_Dashboard_Router.py:206` | 회사 프로젝트 목록 | - -## 프로젝트·자동화 -| 항목 | 위치 | 역할 | -|---|---|---| -| `PUT /projects/{project_id}` | `B01_Dashboard_Router.py:214` | 프로젝트 기본정보 수정 | -| `DELETE /projects/{project_id}` | `B01_Dashboard_Router.py:230` | SYSTEM_ADMIN 프로젝트 소프트 삭제 | -| `GET /projects/{project_id}/automations` | `B01_Dashboard_Router.py:366` | 자동화 목록; USER 차단 | -| `POST /projects/{project_id}/automations` | `B01_Dashboard_Router.py:379` | 자동화 생성 | -| `PUT /automations/{automation_id}` | `B01_Dashboard_Router.py:396` | 자동화 수정 | -| `DELETE /automations/{automation_id}` | `B01_Dashboard_Router.py:414` | 자동화 삭제 | -| `POST /automations/{automation_id}/execute` | `B01_Dashboard_Router.py:429` | 자동화 실행시각 기록 | - -## 시스템 관리자 -| 항목 | 위치 | 역할 | -|---|---|---| -| `GET /admin/companies` | `B01_Dashboard_Router.py:255` | 전체 회사 조회 | -| `POST /admin/companies` | `B01_Dashboard_Router.py:261` | 시스템 관리자 회사 생성 | -| `GET /admin/users` | `B01_Dashboard_Router.py:270` | 전체 사용자 조회 | -| `PATCH /admin/users/{user_id}/role` | `B01_Dashboard_Router.py:276` | 역할 변경과 마지막 ADMIN 보호 | -| `PUT /admin/users/{user_id}` | `B01_Dashboard_Router.py:294` | 사용자 관리정보 수정 | -| `PATCH /admin/users/{user_id}/company` | `B01_Dashboard_Router.py:313` | 사용자 회사 배정·해제 | -| `GET /admin/join-requests-all` | `B01_Dashboard_Router.py:325` | 전체 가입 신청 조회 | -| `PATCH /admin/join-requests/{request_id}/approve` | `B01_Dashboard_Router.py:331` | 시스템 관리자 가입 승인 | -| `GET /admin/audit-logs` | `B01_Dashboard_Router.py:341` | 시스템 감사 로그 페이지 조회 | -| `GET /admin/resources` | `B01_Dashboard_Router.py:351` | 1~90일 리소스 통계 조회 | -| `GET /admin/projects-all` | `B01_Dashboard_Router.py:360` | 전체 프로젝트 조회 | diff --git a/docs/wiki/pages/B01_Dashboard/B01_backend.md b/docs/wiki/pages/B01_Dashboard/B01_backend.md deleted file mode 100644 index 11ea4d53..00000000 --- a/docs/wiki/pages/B01_Dashboard/B01_backend.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -type: page-backend -status: stable -page_id: B01_Dashboard -related_pages: ["[[B01_Dashboard/B01_frontend]]", "[[B01_Dashboard/B01_api]]", "[[B01_Dashboard/B01_db]]", "[[B01_Dashboard/B01_dependencies]]"] -last_updated: 2026-07-12 -source: 상위 프로젝트 B01_Dashboard 실 코드 직접 확인 (2026-07-12) ---- - -# B01_Dashboard — Backend - -## 라우터 권한 헬퍼 -| 항목 | 위치 | 역할 | -|---|---|---| -| `require_company_admin()` | `B01_Dashboard_Router.py:60` | ADMIN 또는 SYSTEM_ADMIN 의존성 검사 | -| `_require_company_id()` | `B01_Dashboard_Router.py:68` | 세션 회사 ID 필수 검사 | -| `_same_company()` | `B01_Dashboard_Router.py:75` | 요청자와 대상의 회사 일치 검사 | -| `_can_edit_project()` | `B01_Dashboard_Router.py:79` | 역할·회사 기준 프로젝트 수정 검사 | -| `_can_manage_automation()` | `B01_Dashboard_Router.py:87` | 자동화 관리 권한 검사 | -| `_can_edit_user()` | `B01_Dashboard_Router.py:93` | 사용자 수정 범위 검사 | - -상세 권한 규칙은 [[../../concepts/auth_rbac]]에서 1차 정의한다. - -## 저장소 함수 -| 항목 | 위치 | 역할 | -| ----------------------------------------------------------------------------- | ----------------------------------------- | -------------------------- | -| `get_dashboard_me()` / `update_user_profile()` | `B01_Dashboard_Repository.py:47,65` | 내 정보 조회·수정 | -| `get_workflow_states_for_projects()` | `B01_Dashboard_Repository.py:83` | 여러 프로젝트의 workflow 상태 배치 조회 | -| `list_user_projects()` / `list_company_projects()` / `list_all_projects()` | `B01_Dashboard_Repository.py:144,165,188` | 역할 범위별 프로젝트 목록 조회 | -| `get_project()` / `update_project()` / `soft_delete_project()` | `B01_Dashboard_Repository.py:210,222,253` | 프로젝트 조회·수정·소프트 삭제 | -| `get_user_company()` / `search_companies()` | `B01_Dashboard_Repository.py:273,293` | 소속 회사와 회사 검색 | -| `create_company()` / `create_system_company()` | `B01_Dashboard_Repository.py:307,347` | 사용자·시스템 관리자 회사 생성 | -| `join_company()` | `B01_Dashboard_Repository.py:378` | 회사 가입 신청과 사용자 상태 전이 | -| `list_company_members()` / `add_company_member()` / `remove_company_member()` | `B01_Dashboard_Repository.py:401,416,439` | 회사 팀원 관리 | -| `list_join_requests()` / `process_join_request()` | `B01_Dashboard_Repository.py:453,471` | 가입 신청 조회·승인·거절 | -| `list_all_companies()` / `list_all_users()` | `B01_Dashboard_Repository.py:507,522` | 시스템 관리자 전체 목록 | -| `change_user_role()` / `get_user_admin_target()` / `update_admin_user()` | `B01_Dashboard_Repository.py:538,547,562` | 사용자 역할·관리정보 변경 | -| `count_company_admins()` / `assign_user_company()` | `B01_Dashboard_Repository.py:584,596` | 마지막 관리자 보호와 회사 배정 | -| `list_audit_logs()` / `get_system_resources()` | `B01_Dashboard_Repository.py:609,624` | 감사 로그와 리소스 통계 조회 | -| `list_project_automations()` / `create_project_automation()` | `B01_Dashboard_Repository.py:682,696` | 자동화 목록·생성 | -| `get_project_automation()` / `update_project_automation()` | `B01_Dashboard_Repository.py:722,735` | 자동화 단건 조회·수정 | -| `delete_project_automation()` / `mark_project_automation_executed()` | `B01_Dashboard_Repository.py:758,779` | 자동화 삭제·실행시각 기록 | - -## 요청 스키마 -| 항목 | 위치 | 역할 | -|---|---|---| -| `UpdateUserRequest` | `B01_Dashboard_Schema.py:6` | 내 정보 수정 검증 | -| `CreateCompanyRequest` | `B01_Dashboard_Schema.py:13` | 회사 생성 검증 | -| `JoinCompanyRequest` / `AddMemberRequest` | `B01_Dashboard_Schema.py:20,24` | 회사 가입·팀원 추가 검증 | -| `ProcessJoinRequest` / `ChangeUserRoleRequest` | `B01_Dashboard_Schema.py:28,33` | 가입 처리·역할 변경 검증 | -| `AssignCompanyRequest` / `UpdateProjectRequest` | `B01_Dashboard_Schema.py:37,41` | 회사 배정·프로젝트 수정 검증 | -| `AdminUpdateUserRequest` / `AutomationRequest` | `B01_Dashboard_Schema.py:51,57` | 관리자 사용자 수정·자동화 검증 | - -## 기술부채 -| 항목 | 위치 | 역할 | -|---|---|---| -| 레거시 상태 추론 | `B01_Dashboard_Repository.py:20` | `_stage_from_status()`가 `project_workflow_stages` 미조회 시 보조값 생성 | -| 700줄 초과 | `B01_Dashboard_Repository.py:1` | 790줄로 프로젝트 단일 파일 제한 초과; 도메인별 저장소 분할 검토 필요 | diff --git a/docs/wiki/pages/B01_Dashboard/B01_db.md b/docs/wiki/pages/B01_Dashboard/B01_db.md deleted file mode 100644 index 017f8323..00000000 --- a/docs/wiki/pages/B01_Dashboard/B01_db.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -type: page-db -status: stable -page_id: B01_Dashboard -related_pages: ["[[B01_Dashboard/B01_backend]]", "[[B01_Dashboard/B01_api]]"] -last_updated: 2026-07-12 -source: 상위 프로젝트 B01_Dashboard_Repository.py 실 코드 직접 확인 (2026-07-12) ---- - -# B01_Dashboard — DB 사용 관계 - -공유 테이블의 정의는 concepts에만 둔다. 이 문서는 B01의 사용 목적과 실제 접근 위치만 기록한다. - -| 항목 | 위치 | 역할 | -|---|---|---| -| `users` | `B01_Dashboard_Repository.py:47` | 내 정보·팀원·전체 사용자·역할·회사 연결 관리 → [[db_schema/users_auth]] | -| `companies` | `B01_Dashboard_Repository.py:273` | 소속·검색·생성·전체 회사 조회 → [[db_schema/users_auth]] | -| `join_requests` | `B01_Dashboard_Repository.py:378` | 회사 가입 신청·승인·거절 → [[db_schema/users_auth]] | -| `projects` | `B01_Dashboard_Repository.py:144` | 역할 범위별 목록·수정·소프트 삭제 → [[db_schema/projects]] | -| `project_workflow_stages` | `B01_Dashboard_Repository.py:83` | 프로젝트 목록의 7단계 상태 배치 조회 → [[workflow_state]] | -| `project_automations` | `B01_Dashboard_Repository.py:682` | 자동화 CRUD와 실행시각 기록 → [[db_schema/projects]] | -| `system_audit_logs` | `B01_Dashboard_Repository.py:245` | 프로젝트·회사·자동화 관리 행위 기록·조회 → [[db_schema/logs_monitoring]] | -| `system_resources` | `B01_Dashboard_Repository.py:624` | 기간별 CPU·메모리·디스크 시계열 조회 → [[db_schema/logs_monitoring]] | - -## 트랜잭션 경계 -| 항목 | 위치 | 역할 | -|---|---|---| -| 회사 생성 | `B01_Dashboard_Repository.py:307` | 회사 INSERT, 사용자 연결, 감사 로그를 한 트랜잭션으로 처리 | -| 가입 신청 처리 | `B01_Dashboard_Repository.py:471` | `FOR UPDATE`로 신청 행 잠금 후 신청·사용자 상태 동시 변경 | -| 프로젝트 수정·삭제 | `B01_Dashboard_Repository.py:222,253` | 프로젝트 변경과 감사 로그를 같은 트랜잭션으로 처리 | - -> B01 코드가 직접 기록하는 감사 테이블은 `audit_logs`가 아니라 `system_audit_logs`다. diff --git a/docs/wiki/pages/B01_Dashboard/B01_dependencies.md b/docs/wiki/pages/B01_Dashboard/B01_dependencies.md deleted file mode 100644 index d2673090..00000000 --- a/docs/wiki/pages/B01_Dashboard/B01_dependencies.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -type: page-dependencies -status: stable -page_id: B01_Dashboard -related_pages: ["[[B01_Dashboard/B01_frontend]]", "[[B01_Dashboard/B01_backend]]"] -last_updated: 2026-07-12 -source: 상위 프로젝트 B01_Dashboard import 구문 직접 확인 (2026-07-12) ---- - -# B01_Dashboard — Dependencies - -외부 라이브러리의 1차 정의는 [[../../concepts/dependencies]]에 둔다. - -| 항목 | 위치 | 역할 | -|---|---|---| -| FastAPI | `B01_Dashboard_Router.py:5` | APIRouter·Depends·HTTPException 제공 | -| Pydantic | `B01_Dashboard_Schema.py:3` | 요청 모델 타입·범위 검증 | -| aiomysql | `B01_Dashboard_Repository.py:10` | MariaDB 비동기 Raw SQL 접근 | -| psutil | `B01_Dashboard_Repository.py:11` | 현재 CPU·메모리 사용률 측정 | -| `shutil` | `B01_Dashboard_Repository.py:6` | 저장소 디스크 사용량 측정 | -| TypeScript DOM | `B01_Dashboard_UI_Page.ts:81` | 역할별 대시보드와 이벤트 구성 | - -## 프로젝트 공통 모듈 -| 항목 | 위치 | 역할 | -|---|---|---| -| `common_util_auth` | `B01_Dashboard_Router.py:10` | 세션·SYSTEM_ADMIN 권한 의존성 → [[../../concepts/auth_rbac]] | -| `config_db.get_db_pool` | `B01_Dashboard_Repository.py:13` | MariaDB 커넥션 풀 획득 | -| `ui_template_elements` | `B01_Dashboard_UI_Resources.ts:2` | 공통 선형 차트 생성 → [[../../concepts/ui_templates]] | -| `ui_template_locale` | `B01_Dashboard_UI_Resources.ts:1` | 한·영 UI 문자열 선택 → [[../../concepts/ui_templates]] | diff --git a/docs/wiki/pages/B01_Dashboard/B01_frontend.md b/docs/wiki/pages/B01_Dashboard/B01_frontend.md deleted file mode 100644 index 70d9ff31..00000000 --- a/docs/wiki/pages/B01_Dashboard/B01_frontend.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -type: page-frontend -status: stable -page_id: B01_Dashboard -related_pages: ["[[B01_Dashboard/B01_backend]]", "[[B01_Dashboard/B01_api]]", "[[B01_Dashboard/B01_db]]"] -last_updated: 2026-07-12 -source: 상위 프로젝트 B01_Dashboard 실 코드 직접 확인 (2026-07-12) ---- - -# B01_Dashboard — Frontend - -## 파일과 진입점 -| 항목 | 위치 | 역할 | -|---|---|---| -| `renderB01Dashboard()` | `B01_Dashboard_UI_Page.ts:81` | 사용자 역할과 회사 상태에 맞는 대시보드 렌더링 | -| `request()` | `B01_Dashboard_Api_Fetch.ts:171` | 쿠키 포함 요청과 공통 오류 처리 | -| `buildResourcePanel()` | `B01_Dashboard_UI_Resources.ts:13` | CPU·메모리·디스크 현황과 추이 차트 생성 | -| `B01_Dashboard_UI_Style.css` | `B01_Dashboard_UI_Style.css:1` | 대시보드·표·워크플로우·모달 스타일 | - -## UI 권한 헬퍼 -| 항목 | 위치 | 역할 | -|---|---|---| -| `canEditProject()` | `B01_Dashboard_UI_Helper.ts:3` | 프로젝트 수정 버튼 표시 판단 | -| `canDeleteProject()` | `B01_Dashboard_UI_Helper.ts:9` | SYSTEM_ADMIN 삭제 버튼 표시 판단 | -| `canAddUser()` | `B01_Dashboard_UI_Helper.ts:15` | ADMIN 이상 팀원 추가 표시 판단 | -| `canChangeRole()` | `B01_Dashboard_UI_Helper.ts:19` | SYSTEM_ADMIN 역할 변경 표시 판단 | -| `canDeleteUser()` | `B01_Dashboard_UI_Helper.ts:24` | 사용자 제거 표시 판단 | -| `canManageAutomation()` | `B01_Dashboard_UI_Helper.ts:30` | ADMIN 이상 자동화 관리 표시 판단 | - -> UI 헬퍼는 표시만 제어한다. 최종 권한 검증은 백엔드가 수행한다. 상세: [[../../concepts/auth_rbac]]. - -## 모달 -| 항목 | 위치 | 역할 | -|---|---|---| -| `openEditProjectModal()` | `B01_Dashboard_UI_Modals.ts:75` | 프로젝트 기본정보 수정 | -| `openDeleteProjectModal()` | `B01_Dashboard_UI_Modals.ts:127` | 프로젝트 삭제 확인 | -| `openEditUserModal()` | `B01_Dashboard_UI_Modals.ts:138` | 사용자 정보 수정 | -| `openChangeRoleModal()` | `B01_Dashboard_UI_Modals.ts:183` | 사용자 역할 변경 | -| `openDeleteUserModal()` | `B01_Dashboard_UI_Modals.ts:199` | 사용자 제거 확인 | -| `openCreateCompanyModal()` | `B01_Dashboard_UI_Modals.ts:210` | 회사 생성 | -| `openFindCompanyModal()` | `B01_Dashboard_UI_Modals.ts:235` | 회사 검색·가입 신청 | -| `openAddMemberModal()` | `B01_Dashboard_UI_Modals.ts:273` | 회사 팀원 추가 | -| `openAutomationModal()` | `B01_Dashboard_UI_Modals.ts:286` | 프로젝트 자동화 조회·관리 | - -## 공유 자원 연결 -| 항목 | 위치 | 역할 | -|---|---|---| -| 인증·역할 | `B01_Dashboard_UI_Page.ts:81` | 역할별 섹션 제어 → [[../../concepts/auth_rbac]] | -| workflow 상태 | `B01_Dashboard_Api_Fetch.ts:370` | 프로젝트 카드 단계 표시 → [[../../concepts/workflow_state]] | -| 공통 UI | `B01_Dashboard_UI_Resources.ts:2` | `createLineChart()` 사용 → [[../../concepts/ui_templates]] | - -## 기술부채 -| 항목 | 위치 | 역할 | -|---|---|---| -| 700줄 초과 | `B01_Dashboard_UI_Page.ts:1` | 739줄로 프로젝트 단일 파일 제한 초과; 기능별 분할 검토 필요 | diff --git a/docs/wiki/pages/B02_ProjRegister/B02_backend.md b/docs/wiki/pages/B02_ProjRegister/B02_backend.md deleted file mode 100644 index b282cb77..00000000 --- a/docs/wiki/pages/B02_ProjRegister/B02_backend.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -status: stable -page_id: B02_ProjRegister -related_pages: ["[[B02_ProjRegister/B02_frontend]]", "[[B02_ProjRegister/B02_db]]", "[[B01_Dashboard/B01_backend]]", "[[B03_FileInput/B03_backend]]", "[[workflow_state]]", "[[storage_paths]]"] -last_updated: 2026-07-12 ---- - -# B02_ProjRegister — Backend - -신규 임도 설계 프로젝트 생성. DB 저장 + 저장소 폴더 초기화 + 워크플로우 7단계 시드 + 감사 로그. - -> ⚠️ raw structure.md에는 B02가 프론트만 있는 것으로 기재됐으나, 실 코드에 백엔드가 이미 구현됨 (2026-07-12 확인). - -## 파일 구조 - -| 파일 | 위치 | 역할 | -|---|---|---| -| `B02_ProjRegister_Router.py` | `B02_ProjRegister/B02_ProjRegister_Router.py:1-44` | 프로젝트 생성 API (prefix `/api/b02`) | -| `B02_ProjRegister_Schema.py` | `B02_ProjRegister/B02_ProjRegister_Schema.py:1-30` | 요청/응답 Pydantic 모델 2종 | -| `B02_ProjRegister_Repository.py` | `B02_ProjRegister/B02_ProjRegister_Repository.py:1-136` | Raw SQL 저장소 + 저장소 초기화 | - -## API 엔드포인트 - -| 엔드포인트 | 위치 | 역할 | -|---|---|---| -| `POST /api/b02/project` | `B02_ProjRegister/B02_ProjRegister_Router.py:15` | 신규 프로젝트 생성. `require_company`로 회사 연결 확인 | - -## 함수 - -| 함수 | 위치 | 역할 | -|---|---|---| -| `post_project()` | `B02_ProjRegister/B02_ProjRegister_Router.py:15` | 세션 company_id 검증 → create_project 호출, ValueError→400, 기타→500 | -| `create_project()` | `B02_ProjRegister/B02_ProjRegister_Repository.py:44` | 트랜잭션: projects INSERT + 워크플로우 시드 + 감사로그 + 저장소 초기화 | -| `get_project_by_id()` | `B02_ProjRegister/B02_ProjRegister_Repository.py:120` | 프로젝트 단건 조회(deleted_at IS NULL) | -| `_build_project_storage()` | `B02_ProjRegister/B02_ProjRegister_Repository.py:20` | 저장 경로 생성 + 저장소 루트 이탈 방지 검증 | -| `_initialize_project_storage()` | `B02_ProjRegister/B02_ProjRegister_Repository.py:29` | 단계별 폴더 생성 + workflow.json/project_manifest.json 원자적 기록 | - -## 요청/응답 스키마 (Pydantic) - -| 모델 | 위치 | 필드 | -|---|---|---| -| `CreateProjectRequest` | `B02_ProjRegister/B02_ProjRegister_Schema.py:6` | name(1~255), region(1~100), road_type(main/branch/fire/stream), project_year(2000~2100), estimated_length_m?(≥0), memo?(≤1000) | -| `CreateProjectResponse` | `B02_ProjRegister/B02_ProjRegister_Schema.py:17` | project_id, name, region, road_type, project_year, estimated_length_m, memo, status, storage_path, created_at | - -## 생성 로직 (create_project 트랜잭션) - -1. `project_id = uuid4()`, 저장 경로 생성·검증(`_build_project_storage`) -2. **트랜잭션 시작**: - - `projects` INSERT (status `'NEW'`, crs_epsg `5178` 고정) - - `initialize_project_stages(cursor, project_id)` — 워크플로우 7단계 시드 → [[workflow_state]] - - `system_audit_logs` INSERT (`PROJECT_CREATE`, resource_type `project`) - - `_initialize_project_storage()` — 저장소 폴더 + workflow.json + project_manifest.json - - commit (실패 시 rollback) -3. 생성된 프로젝트 재조회 후 반환 - -## DB 저장 컬럼 (projects INSERT) - -`id, user_id, company_id, name, region, road_type, project_year, estimated_length_m, memo, status('NEW'), crs_epsg(5178), storage_path, created_at, updated_at` -→ 테이블 정의 → [[db_schema/projects]] - -## 의존성 (공통 유틸) - -- [[common_util]] — `common_util_auth`(`require_company`), `common_util_json`(`atomic_write_json`), `common_util_storage`(`PROJECT_STORAGE_LAYOUT_V2`), `common_util_workflow`(`load_project_workflow`), `common_util_workflow_state`(`initialize_project_stages`) -- 워크플로우 시드 → [[workflow_state]] -- 저장소 경로 규칙 → [[storage_paths]] -- `config_system` — `STORAGE_BASE_DIR` -- DB → [[db_schema/projects]], `system_audit_logs` → [[db_schema/logs_monitoring]] - -## 참고 - -- 프로젝트 생성이 워크플로우 진입점: 생성 직후 프론트는 B03_FileInput으로 이동 -- `workflow.json`은 저장소에 기록되나 실제 단계 판정은 `project_workflow_stages`(DB)가 SSOT → [[workflow_state]] diff --git a/docs/wiki/pages/B02_ProjRegister/B02_db.md b/docs/wiki/pages/B02_ProjRegister/B02_db.md deleted file mode 100644 index d0bf9f0c..00000000 --- a/docs/wiki/pages/B02_ProjRegister/B02_db.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -status: stable -page_id: B02_ProjRegister -related_pages: ["[[B02_ProjRegister/B02_backend]]", "[[B02_ProjRegister/B02_frontend]]", "[[db_schema/projects]]", "[[workflow_state]]"] -last_updated: 2026-07-12 ---- - -# B02_ProjRegister — DB - -이 페이지가 쓰는 테이블 (정의는 concepts에, 여기선 용도만). - -## 쓰는 테이블 - -| 테이블 | 이 페이지의 용도 | 정의 | -|---|---|---| -| `projects` | 신규 프로젝트 INSERT (status `'NEW'`, crs_epsg `5178`). 단건 조회 | [[db_schema/projects]] | -| `project_workflow_stages` | 생성 시 7단계 시드(`initialize_project_stages`) | [[workflow_state]] | -| `system_audit_logs` | `PROJECT_CREATE` 행위 기록 | [[db_schema/logs_monitoring]] | - -## 저장소(파일시스템) - -- `storage/{company_id}/{user_id}/{project_id}/` 생성 + `workflow.json`/`project_manifest.json` 원자적 기록 -- 경로 생성 책임·규칙 → [[storage_paths]] -- `PROJECT_STORAGE_LAYOUT_V2` 기준 단계별 폴더 - -## 참고 (계획 당시 의도) - -- 계획서(plan_workflow_state_management)에는 "생성 시 project_workflow_stages 7행 시드"가 마이그레이션 Phase 1 과제로 기재됐으나, - **실 코드에 이미 구현됨**(`B02_ProjRegister_Repository.py:90` `initialize_project_stages`). → 규칙6, 실 코드 채택 -- `workflow.json`도 저장소에 기록되나 단계 판정 SSOT는 `project_workflow_stages`(DB) → [[workflow_state]] diff --git a/docs/wiki/pages/B02_ProjRegister/B02_frontend.md b/docs/wiki/pages/B02_ProjRegister/B02_frontend.md deleted file mode 100644 index cde01087..00000000 --- a/docs/wiki/pages/B02_ProjRegister/B02_frontend.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -status: stable -page_id: B02_ProjRegister -related_pages: ["[[B02_ProjRegister/B02_backend]]", "[[B02_ProjRegister/B02_db]]", "[[ui_templates]]", "[[a00_app_shell_framework]]"] -last_updated: 2026-07-12 ---- - -# B02_ProjRegister — Frontend - -신규 임도 설계 프로젝트 등록 폼. 기본정보(이름·지역·임도종류·연도·연장·메모) 입력 → 생성 후 B03으로 이동. - -## 파일 구조 - -| 파일 | 위치 | 역할 | -|---|---|---| -| `B02_ProjRegister_UI_Page.ts` | `B02_ProjRegister/B02_ProjRegister_UI_Page.ts:1-179` | 등록 폼 렌더링 + 제출 로직 | -| `B02_ProjRegister_UI_Style.css` | `B02_ProjRegister/B02_ProjRegister_UI_Style.css:1-66` | 스타일 (theme.css 변수만 사용) | - -## 컴포넌트 / 함수 - -| 함수 | 위치 | 역할 | -|---|---|---| -| `renderB02ProjRegister(root)` | `B02_ProjRegister/B02_ProjRegister_UI_Page.ts:35` | 헤더+카드(2열 그리드 폼) 조립 | -| `onB02_Proj_Submit_Click()` | `B02_ProjRegister/B02_ProjRegister_UI_Page.ts:96` | 제출 핸들러(검증→fetch POST→B03 이동) | - -## 입력 필드 - -| 필드 | 컴포넌트 | 비고 | -|---|---|---| -| 프로젝트명 | createInputField | 필수 | -| 지역 | createInputField | 필수 | -| 임도 종류 | createSelectField | main/branch/fire/stream 4종 | -| 사업연도 | createInputField(number) | 기본 올해, min 2000/max 올해+5 | -| 예상 연장(m) | createInputField(number) | 선택, min 0 | -| 메모 | createInputField(text) | 선택 | - -## 제출 로직 - -1. **1차 유효성 검사**: name/region 필수, project_year 정수·2000~2100, estimated_length_m ≥0(입력 시) -2. `fetch("${API_BASE_URL}/b02/project", POST)` 직접 호출 (별도 Api_Fetch 파일 없음) - - body: name, region, road_type, project_year, estimated_length_m, memo -3. 성공: `localStorage`에 `CURRENT_PROJECT_ID_KEY`로 project_id 저장 → 성공 토스트 → `navigateTo(ROUTES.B03_FILE_INPUT)` -4. 실패: 응답 detail/message 파싱해 에러 토스트 - -## 로컬라이제이션 - -모든 텍스트는 [[ui_templates]]에서 로드. 하드코딩 금지. - -| UI 요소 | 로케일 키 | -|---|---| -| 제목/부제 | `B02_Proj_Title`, `B02_Proj_Subtitle` | -| 필드 | `B02_Proj_Field_Name`, `_Region`, `_RoadType`, `_Year`, `_Length`, `_Memo` (+각 Placeholder) | -| 임도종류 옵션 | `B02_Proj_RoadType_Main`, `_Branch`, `_Fire`, `_Stream` | -| 제출/성공 | `B02_Proj_Submit`, `B02_Proj_Success` | -| 오류 | `B02_Proj_Error_Required`, `Common_Validation_NumberRange`(공통) | - -## 스타일 (CSS) - -- `.b02-proj` — 페이지 래퍼 (max-width: 720px) -- `.b02-proj__header` — 제목+부제 -- `.b02-proj__grid` — 2열 필드 그리드 (640px 이하 1열) -- `.b02-proj__select` — 드롭다운 화살표 여백 -- `.b02-proj__submit` — 좌측 정렬 버튼 -- 폼 전체는 `createCard({ raised: true })`로 감쌈 - -## 이벤트 핸들러 - -| 함수 | 위치 | 동작 | -|---|---|---| -| `onB02_Proj_Submit_Click()` | `B02_ProjRegister/B02_ProjRegister_UI_Page.ts:96` | 프로젝트 생성 검증·제출 | - -## 의존성 - -- [[a00_app_shell_framework]] — `navigateTo()` 라우팅 -- `config_frontend.ts` — `ROUTES`, `API_BASE_URL`, `CURRENT_PROJECT_ID_KEY` -- `common_util_validate` — `isBlank` -- [[ui_templates]] — `createButton`, `createInputField`, `createSelectField`, `createCard`, `showLoadingOverlay`/`hideLoadingOverlay`, `showToast` -- 백엔드 API → [[B02_ProjRegister/B02_backend]] - -## 참고 - -- 프론트가 fetch를 직접 호출 (A08처럼 별도 API 클라이언트 파일 없음) -- 프로젝트 생성 성공 시 `CURRENT_PROJECT_ID_KEY`가 이후 워크플로우(B03~) 진입의 컨텍스트가 됨 diff --git a/docs/wiki/pages/B03_FileInput/B03_api.md b/docs/wiki/pages/B03_FileInput/B03_api.md deleted file mode 100644 index 7218bc29..00000000 --- a/docs/wiki/pages/B03_FileInput/B03_api.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -type: page-api -status: stable -page_id: B03_FileInput -related_pages: ["[[B03_FileInput/B03_frontend]]", "[[B03_FileInput/B03_backend]]", "[[B03_FileInput/B03_db]]"] -last_updated: 2026-07-12 -source: 상위 프로젝트 B03_FileInput_Router.py 실 코드 직접 확인 (2026-07-12) ---- - -# B03_FileInput — API - -기본 prefix: `/api/projects` (`B03_FileInput_Router.py:66`). 세션 인증과 공통 오류 형식은 [[../../concepts/auth_rbac]], [[../../concepts/api_common]]을 참조한다. - -## 일반 업로드 -| 항목 | 위치 | 역할 | -|---|---|---| -| `POST /{project_id}/files` | `B03_FileInput_Router.py:267` | LAS/TIF/TFW/PRJ/DXF 다중 업로드·메타데이터 등록 | - -## 청크 업로드 -| 항목 | 위치 | 역할 | -|---|---|---| -| `POST /{project_id}/upload-sessions` | `B03_FileInput_Router.py:400` | 청크 업로드 세션 생성 | -| `POST /{project_id}/chunks` | `B03_FileInput_Router.py:443` | 청크 1개 저장 및 진행률 반환 | -| `POST /{project_id}/finalize` | `B03_FileInput_Router.py:507` | 모든 청크 병합·원본 파일 등록 | -| `GET /{project_id}/upload-status/{session_id}` | `B03_FileInput_Router.py:623` | 세션 상태·완료 청크 인덱스 조회 | - -## workflow 조회 -| 항목 | 위치 | 역할 | -|---|---|---| -| `GET /{project_id}/workflow-state` | `B03_FileInput_Router.py:667` | `current_stage`와 7단계 상태 반환 | - -전체 경로는 `/api/projects/{project_id}/...`이며, workflow 상태 공통 정의는 [[../../concepts/workflow_state]]에 둔다. diff --git a/docs/wiki/pages/B03_FileInput/B03_backend.md b/docs/wiki/pages/B03_FileInput/B03_backend.md deleted file mode 100644 index 12dd394a..00000000 --- a/docs/wiki/pages/B03_FileInput/B03_backend.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -type: page-backend -status: stable -page_id: B03_FileInput -related_pages: ["[[B03_FileInput/B03_frontend]]", "[[B03_FileInput/B03_api]]", "[[B03_FileInput/B03_db]]", "[[B03_FileInput/B03_dependencies]]"] -last_updated: 2026-07-12 -source: 상위 프로젝트 B03_FileInput 실 코드 직접 확인 (2026-07-12) ---- - -# B03_FileInput — Backend - -## 입력 검증·파일 처리 -| 항목 | 위치 | 역할 | -|---|---|---| -| `FileUploadDescriptor` | `B03_FileInput_Schema.py:11` | 경로 이탈·확장자·크기 검증 | -| `resolve_upload_destination()` | `B03_FileInput_Engine.py:15` | 프로젝트 WF0 저장 목적지 결정 | -| `save_upload_stream()` | `B03_FileInput_Engine.py:31` | 일반 업로드 스트림 저장 | -| `resolve_chunk_session_dir()` | `B03_FileInput_Engine.py:64` | 임시 청크 디렉터리 결정 | -| `save_upload_chunk()` / `merge_upload_chunks()` | `B03_FileInput_Engine.py:77,124` | 청크 저장·순서 병합 | -| `remove_chunk_session()` | `B03_FileInput_Engine.py:173` | 청크 임시 디렉터리 정리 | - -## 메타데이터 분석 -| 항목 | 위치 | 역할 | -|---|---|---| -| `analyze_las_metadata()` | `B03_FileInput_Engine_Analyze.py:13` | LAS 포인트 수·범위·밀도 분석 | -| `analyze_prj_metadata()` | `B03_FileInput_Engine_Analyze.py:62` | PRJ CRS 분석 | -| `analyze_tfw_metadata()` | `B03_FileInput_Engine_Analyze.py:95` | TFW 변환계수 분석 | -| `analyze_tif_metadata()` | `B03_FileInput_Engine_Analyze.py:119` | TIF 래스터·CRS·범위 분석 | -| `analyze_input_metadata()` | `B03_FileInput_Engine_Analyze.py:146` | 확장자별 분석 라우팅 | - -## 저장소 -| 항목 | 위치 | 역할 | -|---|---|---| -| `create_input_file()` | `B03_FileInput_Repository.py:11` | `input_files` 원본 메타데이터 등록 | -| `get_project_storage_relative_path()` | `B03_FileInput_Repository.py:64` | 프로젝트 상대 저장경로 조회 | -| `create_upload_session()` / `get_upload_session()` | `B03_FileInput_Repository.py:89,135` | 청크 세션 생성·조회 | -| `upsert_upload_chunk()` / `list_completed_chunk_indexes()` | `B03_FileInput_Repository.py:165,216` | 청크 기록·완료 인덱스 조회 | -| `mark_upload_session_completed()` / `mark_upload_session_failed()` | `B03_FileInput_Repository.py:236,253` | 세션 성공·실패 상태 기록 | - -## workflow·알림 -| 항목 | 위치 | 역할 | -|---|---|---| -| `trigger_wf1_analysis_and_email()` | `B03_FileInput_Router.py:147` | WF1 분석 실행과 완료·실패 이메일 연결 | -| `start_stage()` | `B03_FileInput_Router.py:175` | WF1 시작, stage 1 IN_PROGRESS 전이 | -| `complete_stage()` | `B03_FileInput_Router.py:224,347,570` | WF0/WF1 완료 전이 | -| `fail_stage()` | `B03_FileInput_Router.py:256` | WF1 실패 전이 | -| `get_project_workflow_state()` | `B03_FileInput_Router.py:668` | 단일 프로젝트 workflow 상태 반환 | - -workflow 정의: [[../../concepts/workflow_state]], 저장경로: [[../../concepts/storage_paths]]. diff --git a/docs/wiki/pages/B03_FileInput/B03_db.md b/docs/wiki/pages/B03_FileInput/B03_db.md deleted file mode 100644 index fc273179..00000000 --- a/docs/wiki/pages/B03_FileInput/B03_db.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -type: page-db -status: stable -page_id: B03_FileInput -related_pages: ["[[B03_FileInput/B03_backend]]", "[[B03_FileInput/B03_api]]"] -last_updated: 2026-07-12 -source: 상위 프로젝트 B03_FileInput_Repository.py 실 코드 직접 확인 (2026-07-12) ---- - -# B03_FileInput — DB 사용 관계 - -공유 테이블 정의는 [[db_schema/files_surface]]에서 1차 관리한다. - -| 항목 | 위치 | 역할 | -|---|---|---| -| `input_files` | `B03_FileInput_Repository.py:11` | 원본 파일 유형·상대경로·크기·메타데이터 등록 | -| `upload_sessions` | `B03_FileInput_Repository.py:89` | 청크 업로드 세션과 전체 파일 정보 저장 | -| `upload_chunks` | `B03_FileInput_Repository.py:165` | 청크 인덱스·해시·크기 저장 | -| `projects` | `B03_FileInput_Router.py:111` | 업로드·WF1 진행상태 호환 캐시 갱신 | -| `project_workflow_stages` | `B03_FileInput_Router.py:175` | stage 0/1 시작·완료·실패 전이와 상태 조회 | - -## 파일 경로 -| 항목 | 위치 | 역할 | -|---|---|---| -| 원본 입력 | `B03_FileInput_Engine.py:15` | `B03_FileInput/input/{file_type}/`에 저장 | -| 청크 임시파일 | `B03_FileInput_Engine.py:64` | 프로젝트 저장소 하위 임시 세션 디렉터리 사용 | -| DB 저장값 | `B03_FileInput_Repository.py:64` | 프로젝트 루트 기준 상대경로 저장 | - -경로 규칙 상세: [[storage_paths]]. diff --git a/docs/wiki/pages/B03_FileInput/B03_dependencies.md b/docs/wiki/pages/B03_FileInput/B03_dependencies.md deleted file mode 100644 index fb0dc594..00000000 --- a/docs/wiki/pages/B03_FileInput/B03_dependencies.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -type: page-dependencies -status: stable -page_id: B03_FileInput -related_pages: ["[[B03_FileInput/B03_frontend]]", "[[B03_FileInput/B03_backend]]"] -last_updated: 2026-07-12 -source: 상위 프로젝트 B03_FileInput import 구문 직접 확인 (2026-07-12) ---- - -# B03_FileInput — Dependencies - -공유 의존성의 1차 정의는 [[../../concepts/dependencies]]에 둔다. - -| 항목 | 위치 | 역할 | -|---|---|---| -| FastAPI | `B03_FileInput_Router.py:10` | multipart 파일·폼 요청과 라우터 | -| Pydantic | `B03_FileInput_Schema.py:6` | 파일명·크기·확장자·청크 요청 검증 | -| aiomysql | `B03_FileInput_Router.py:9` | MariaDB 비동기 트랜잭션 | -| laspy | `B03_FileInput_Engine_Analyze.py:7` | LAS 포인트클라우드 메타데이터 분석 | -| rasterio | `B03_FileInput_Engine_Analyze.py:9` | TIF 래스터 메타데이터 분석 | -| pyproj | `B03_FileInput_Engine_Analyze.py:10` | PRJ/TIF CRS 해석 | -| numpy | `B03_FileInput_Engine_Analyze.py:8` | LAS 통계 계산 | - -## 공통 모듈 -| 항목 | 위치 | 역할 | -|---|---|---| -| `common_util_storage` | `B03_FileInput_Engine.py:11` | 단계별 저장경로 생성·해석 → [[../../concepts/storage_paths]] | -| `common_util_workflow_state` | `B03_FileInput_Router.py:50` | stage 상태 전이 → [[../../concepts/workflow_state]] | -| `common_util_email` | `B03_FileInput_Email.py:8` | 업로드·분석 완료/실패 이메일 발송 | -| `common_util_json` | `B03_FileInput_Router.py:47` | workflow 보조 JSON 원자적 저장 | diff --git a/docs/wiki/pages/B03_FileInput/B03_frontend.md b/docs/wiki/pages/B03_FileInput/B03_frontend.md deleted file mode 100644 index 2343ff21..00000000 --- a/docs/wiki/pages/B03_FileInput/B03_frontend.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -type: page-frontend -status: stable -page_id: B03_FileInput -related_pages: ["[[B03_FileInput/B03_backend]]", "[[B03_FileInput/B03_api]]", "[[B03_FileInput/B03_db]]"] -last_updated: 2026-07-12 -source: 상위 프로젝트 B03_FileInput 실 코드 직접 확인 (2026-07-12) ---- - -# B03_FileInput — Frontend - -## 페이지·업로드 흐름 -| 항목 | 위치 | 역할 | -|---|---|---| -| `renderB03FileInput()` | `B03_FileInput_UI_Page.ts:170` | 파일 입력 화면과 이벤트 등록 | -| 청크 세션 생성 | `B03_FileInput_UI_Page.ts:515` | 대용량 파일을 청크 업로드로 시작 | -| 청크 병합 완료 | `B03_FileInput_UI_Page.ts:558` | 서버 병합 결과를 상태에 저장 | -| WF1 진행률 폴링 | `B03_FileInput_UI_Page.ts:577` | 분석 상태와 진행률 갱신 | -| B04 이동 | `B03_FileInput_UI_Page.ts:609,693` | WF1 완료 시 `ROUTES.B04_WF1_SURFACE`로 이동 | - -## API 클라이언트 -| 항목 | 위치 | 역할 | -|---|---|---| -| `uploadProjectFiles()` | `B03_FileInput_Api_Fetch.ts:60` | 일반 다중 파일 업로드 | -| `createUploadSession()` | `B03_FileInput_Api_Fetch.ts:82` | 청크 세션 생성 | -| `uploadFileChunk()` | `B03_FileInput_Api_Fetch.ts:100` | 단일 청크 전송 | -| `finalizeUploadSession()` | `B03_FileInput_Api_Fetch.ts:119` | 청크 병합 요청 | -| `fetchUploadStatus()` | `B03_FileInput_Api_Fetch.ts:133` | 청크 업로드 상태 조회 | -| `checkWF1AnalysisStatus()` | `B03_FileInput_Api_Fetch.ts:154` | WF1 분석 상태 조회 | - -## 브라우저 상태·오프라인 보조 -| 항목 | 위치 | 역할 | -|---|---|---| -| `loadB03ProjectState()` | `B03_FileInput_State.ts:23` | 프로젝트별 저장 상태 복원 | -| `saveB03UploadedFile()` | `B03_FileInput_State.ts:34` | 업로드 파일 결과 저장 | -| `updateB03AnalysisState()` | `B03_FileInput_State.ts:53` | 분석 상태·진행률 저장 | -| `restoreB03ProjectState()` | `B03_FileInput_State.ts:71` | 재진입 시 상태와 완료 콜백 복원 | -| `registerB03ServiceWorker()` | `B03_FileInput_UI_Page.ts:622` | Service Worker 등록 시도와 안내 토스트 | - -공통 UI는 [[../../concepts/ui_templates]], 단계 상태는 [[../../concepts/workflow_state]]를 참조한다. - -## 기술부채 -| 항목 | 위치 | 역할 | -|---|---|---| -| 700줄 근접 | `B03_FileInput_UI_Page.ts:1` | 695줄; 추가 기능은 상태·업로드·화면 분할 검토 필요 | -| CSS 대형 파일 | `B03_FileInput_UI_Style.css:1` | 376줄; 공통 테마와 페이지 스타일 분리 검토 | diff --git a/docs/wiki/pages/B04_wf1_Surface/B04_api.md b/docs/wiki/pages/B04_wf1_Surface/B04_api.md deleted file mode 100644 index 547b920d..00000000 --- a/docs/wiki/pages/B04_wf1_Surface/B04_api.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -status: stable -page_id: B04_wf1_Surface -related_pages: ["[[B04_wf1_Surface/B04_backend]]", "[[B04_wf1_Surface/B04_frontend]]", "[[B04_wf1_Surface/B04_db]]", "[[B04_wf1_Surface/B04_dependencies]]"] -last_updated: 2026-07-12 ---- - -# B04_wf1_Surface — API - -실제 라우터 prefix: `/api/projects` (`B04_wf1_Surface_Router.py:41`). 총 12개 엔드포인트. - -> ⚠️ 이전 계획서 기반 api.md에는 "추정 경로 surface/analyze·models 2개"로만 기재됐으나, -> 실 코드는 아래 12개(분석·모델·미리보기·등고선·VWorld·GeoJSON 포함). 실 코드 채택(규칙6). - -## 엔드포인트 - -| 엔드포인트 | 위치 | 역할 | -|---|---|---| -| `POST /{project_id}/surface/analyze` | `B04_wf1_Surface_Router.py:147` | LAS 구조화+지면필터+모델생성 실행, DB 기록, WF1 stage 전이 | -| `GET /{project_id}/surface/models` | `B04_wf1_Surface_Router.py:241` | 생성된 지표면 모델 목록 | -| `GET /{project_id}/surface/input-files` | `B04_wf1_Surface_Router.py:260` | 분석 대상 LAS/LAZ 입력파일 목록 | -| `GET /{project_id}/surface/point-cloud` | `B04_wf1_Surface_Router.py:279` | 3D 미리보기용 포인트클라우드 샘플 | -| `GET /{project_id}/surface/ground-stats` | `B04_wf1_Surface_Router.py:341` | 필터별 지면 포인트 통계 | -| `GET /{project_id}/surface/status` | `B04_wf1_Surface_Router.py:372` | WF1 분석 상태 조회 (workflow_state 우선, 레거시 폴백) | -| `GET /{project_id}/surface/models/{model_id}/preview` | `B04_wf1_Surface_Router.py:484` | 모델 미리보기 | -| `GET /{project_id}/surface/models/{model_id}/contour` | `B04_wf1_Surface_Router.py:557` | 등고선 생성/조회 | -| `GET /{project_id}/vworld-meta` | `B04_wf1_Surface_Router.py:643` | VWorld 배경지도 메타 | -| `GET /{project_id}/vworld-map` | `B04_wf1_Surface_Router.py:676` | VWorld 배경지도 타일 | -| `GET /{project_id}/geojson` | `B04_wf1_Surface_Router.py:712` | GIS 벡터 GeoJSON | - -## 요청/응답 스키마 (Pydantic) - -| 모델 | 위치 | 역할 | -|---|---|---| -| `SurfaceAnalyzeRequest` | `B04_wf1_Surface_Schema.py:16` | input_file_id, source_filters?, methods?, force. resolved_filters/methods로 화이트리스트 검증 | -| `SurfaceAnalyzeResponse` | `B04_wf1_Surface_Schema.py:97` | ground_summary, manifest_status, surface_model_ids | -| `SurfaceModelSummary` / `SurfaceModelListResponse` | `B04_wf1_Surface_Schema.py:45,107` | 모델 요약/목록 | -| `SurfaceInputFileSummary` / `...ListResponse` | `B04_wf1_Surface_Schema.py:56,69` | 입력파일 요약/목록 | -| `SurfacePointCloudSampleResponse` | `B04_wf1_Surface_Schema.py:77` | 포인트클라우드 샘플(bounds/points/rgb) | -| `SurfaceGroundStatsResponse` | `B04_wf1_Surface_Schema.py:89` | 필터별 통계 | - -- 공통 오류 포맷 `{"status":"error","message":...}` → [[schema_common]] -- 분석 파라미터 화이트리스트: `SURFACE_MODEL_SOURCE_FILTERS`+`ransac`, `SURFACE_MODEL_PRECOMPUTE` (config_system) diff --git a/docs/wiki/pages/B04_wf1_Surface/B04_backend.md b/docs/wiki/pages/B04_wf1_Surface/B04_backend.md deleted file mode 100644 index 88666295..00000000 --- a/docs/wiki/pages/B04_wf1_Surface/B04_backend.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -status: stable -page_id: B04_wf1_Surface -related_pages: ["[[B04_wf1_Surface/B04_frontend]]", "[[B04_wf1_Surface/B04_api]]", "[[B04_wf1_Surface/B04_db]]", "[[B04_wf1_Surface/B04_dependencies]]", "[[B03_FileInput/B03_backend]]", "[[B05_wf2_Route/B05_backend]]"] -last_updated: 2026-07-12 ---- - -# B04_wf1_Surface — Backend - -WF1 지표면 분석. LAS 구조화 → 지면 필터 → 지표면 5종 모델 생성 → 스무딩/등고선. 무거운 연산은 `asyncio.to_thread`로 실행. - -## 파일 구성 (오케스트레이터/저장소/라우터) - -| 파일 | 위치 | 역할 | -|---|---|---| -| `B04_wf1_Surface_Router.py` | `B04_wf1_Surface_Router.py:1-739` | `/api/projects` 12개 엔드포인트 → [[B04_wf1_Surface/B04_api]] | -| `B04_wf1_Surface_Schema.py` | `B04_wf1_Surface_Schema.py:1-113` | 요청/응답 검증 | -| `B04_wf1_Surface_Repository.py` | `B04_wf1_Surface_Repository.py:1-236` | processed_point_cloud/surface_models Raw SQL | -| `B04_wf1_Surface_Engine.py` | `B04_wf1_Surface_Engine.py:27` | `run_surface_analysis()` 오케스트레이터(구조화→필터→모델빌드) | - -## 엔진 서브모듈 - -| 파일 | 역할 | -|---|---| -| `..._Engine_Structurize.py` | LAS/LAZ 구조화(structured.npz) | -| `..._Engine_Ground.py` | 지면 마스크 생성/요약(`build_ground_masks`, `summarize_masks`) | -| `..._Engine_Filter_Grid/CSF/PMF/RANSAC.py` | 지면 필터 4종 | -| `..._Engine_Pipeline.py` | `build_all_terrain_models()` 지표면 모델 파이프라인 + manifest | -| `..._Engine_ModelContext.py` | 모델 공통 컨텍스트/메시 유틸 | -| `..._Engine_ModelBuild.py` | TIN/DTM/NURBS/implicit/meshfree 생성 | -| `..._Engine_Smooth.py` | DTM/TIN 스무딩 | -| `..._Engine_Contour.py` | 등고선 생성 | -| `..._Engine_GisVector.py` / `..._Engine_VWorld.py` / `..._Engine_MvtHelper.py` | GIS 벡터 / VWorld 배경지도 / MVT 헬퍼 | - -## 주요 함수 (Router) - -| 함수 | 위치 | 역할 | -|---|---|---| -| `analyze_surface()` | `B04_wf1_Surface_Router.py:147` | 분석 실행: start_stage→to_thread(run_surface_analysis)→DB저장→complete_stage | -| `save_surface_analysis_to_db()` | `B04_wf1_Surface_Router.py:90` | processed_point_cloud + surface_models INSERT (호출자 트랜잭션) | -| `get_wf1_analysis_status()` | `B04_wf1_Surface_Router.py:372` | 상태 조회(project_workflow_stages 우선, 폴백) | -| `update_project_status()` | `B04_wf1_Surface_Router.py:76` | ⚠️ 정의만 있고 **호출처 없음**(죽은 코드, grep 확인) | - -## 워크플로우 상태 전이 - -analyze 흐름에서 `project_workflow_stages`(stage 1) 전이: -- `start_stage(cursor, project_id, 1, params)` — `B04_wf1_Surface_Router.py:168` -- `complete_stage(cursor, project_id, 1)` — `B04_wf1_Surface_Router.py:209` -- `fail_stage(cursor, project_id, 1, err)` — `B04_wf1_Surface_Router.py:227,233` - -→ SSOT 정의·전파 규칙 → [[workflow_state]] - -## ⚠️ 레거시 폴백 (416,420줄) - -`get_wf1_analysis_status()`는 `project_workflow_stages`를 **우선** 조회하고, -행이 없을 때만(백필 미작동 대비) `projects.status` 문자열 비교로 폴백: -- 416줄 `project_status == "WF1_COMPLETE"`, 420줄 `"WF1_ANALYZING"` (`B04_wf1_Surface_Router.py:412-427`) - -이전 wiki는 "구형 잔재, 정리 필요"로 표기했으나, 실제로는 정상 경로가 아닌 **방어적 폴백**. -SSOT가 안정화되면 제거 가능하나 현재는 백필 안전장치로 동작 중. - -## 책임 - -LAS 구조화·지면 필터 → 변환 포인트클라우드 저장 → 지표면 5종 모델 생성 → 스무딩/등고선/미리보기 → 모델 확정 및 하위 단계(B05) stale 전파([[workflow_state]]). - -## 의존성 - -- [[common_util]] — `common_util_workflow_state`(start/complete/fail_stage), 저장소 경로 헬퍼 -- 외부 라이브러리 → [[B04_wf1_Surface/B04_dependencies]] -- DB → [[B04_wf1_Surface/B04_db]] -- config: `SURFACE_MODEL_SOURCE_FILTERS`, `SURFACE_MODEL_PRECOMPUTE`, `build_surface_model_config` diff --git a/docs/wiki/pages/B04_wf1_Surface/B04_db.md b/docs/wiki/pages/B04_wf1_Surface/B04_db.md deleted file mode 100644 index 394e610a..00000000 --- a/docs/wiki/pages/B04_wf1_Surface/B04_db.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -status: stable -page_id: B04_wf1_Surface -related_pages: ["[[B04_wf1_Surface/B04_backend]]", "[[B04_wf1_Surface/B04_api]]", "[[B04_wf1_Surface/B04_dependencies]]", "[[db_schema/files_surface]]"] -last_updated: 2026-07-12 ---- - -# B04_wf1_Surface — DB - -이 페이지가 쓰는 테이블 (정의는 concepts에, 여기선 용도만). - -## 쓰는 테이블 - -| 테이블 | 이 페이지의 용도 | 정의 | -|---|---|---| -| `processed_point_cloud` | 필터/변환된 포인트클라우드 저장(input_files 참조) | [[db_schema/files_surface]] | -| `surface_models` | TIN/DTM/NURBS/implicit/meshfree 모델 메타데이터 | [[db_schema/files_surface]] | -| `terrain_layers` | 등고선 등 파생 레이어 | [[db_schema/files_surface]] | -| `project_workflow_stages` | WF1(stage 1) 상태 전이·조회 | [[workflow_state]] | -| `input_files` | 분석 대상 LAS/LAZ 조회 | [[db_schema/files_surface]] | -| `projects` | (레거시 폴백) status 조회 | [[db_schema/projects]] | - -## Repository 함수 - -| 함수 | 위치 | 역할 | -|---|---|---| -| `create_processed_point_cloud()` | `B04_wf1_Surface_Repository.py` | processed_point_cloud INSERT | -| (surface_models INSERT) | `B04_wf1_Surface_Repository.py` | 모델별 메타데이터 저장 | -| `get_input_file()` | `B04_wf1_Surface_Repository.py` | 입력 LAS 단건 조회 | - -## 참고 - -- `save_surface_analysis_to_db()`([[B04_wf1_Surface/B04_backend]])가 processed_point_cloud + surface_models를 한 트랜잭션으로 저장(호출자가 begin/commit) -- WF1 단계 판정 SSOT는 `project_workflow_stages`. `projects.status`는 레거시 폴백 경로에서만 참조 → [[workflow_state]] diff --git a/docs/wiki/pages/B04_wf1_Surface/B04_dependencies.md b/docs/wiki/pages/B04_wf1_Surface/B04_dependencies.md deleted file mode 100644 index 21524913..00000000 --- a/docs/wiki/pages/B04_wf1_Surface/B04_dependencies.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -status: stable -page_id: B04_wf1_Surface -related_pages: ["[[B04_wf1_Surface/B04_backend]]", "[[B04_wf1_Surface/B04_frontend]]", "[[dependencies]]"] -last_updated: 2026-07-12 ---- - -# B04_wf1_Surface — Dependencies - -이 페이지가 쓰는 외부 라이브러리 (공통 정의는 [[dependencies]]). - -## 백엔드 (Python) - -| 라이브러리 | 용도 | -|---|---| -| Laspy | LAS/LAZ 구조화 | -| Whitebox / Rasterio | 지면 필터·DEM 처리 | -| Trimesh | TIN/메시 모델 | -| Geopandas / Shapely | GIS 벡터(GeoJSON, 등고선) | -| NumPy | structured.npz 등 배열 연산 | - -→ 공통 정의·버전 → [[dependencies]] - -## 프론트엔드 (TypeScript) - -| 라이브러리 | 위치 | 용도 | -|---|---|---| -| **three.js** | `B04_wf1_Surface_UI_Viewer.ts:1`, `..._TerrainViewer.ts` | WebGL 3D 뷰어(WebGLRenderer, OrbitControls, THREE.Points/Mesh) | - -## ⚠️ dependencies concept 정정 필요 - -[[dependencies]]의 "HTML5 Canvas / WebGL — WebCAD 렌더링 (B04~B06 뷰어, **현재 미구현**)"은 -실 코드와 불일치. B04는 three.js로 3D 뷰어가 **구현됨** → [[B04_wf1_Surface/B04_frontend]]. -dependencies.md에 three.js 항목 추가·"미구현" 문구 정정 필요 (B05/B06 뷰어 상태는 각 페이지 인제스트 시 확인). diff --git a/docs/wiki/pages/B04_wf1_Surface/B04_frontend.md b/docs/wiki/pages/B04_wf1_Surface/B04_frontend.md deleted file mode 100644 index 5f5a9bf3..00000000 --- a/docs/wiki/pages/B04_wf1_Surface/B04_frontend.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -status: stable -page_id: B04_wf1_Surface -related_pages: ["[[B04_wf1_Surface/B04_backend]]", "[[B04_wf1_Surface/B04_api]]", "[[B04_wf1_Surface/B04_dependencies]]", "[[ui_templates]]"] -last_updated: 2026-07-12 ---- - -# B04_wf1_Surface — Frontend - -WF1 지표면 분석 화면. 워크플로우 레이아웃(필터/표현 폼 + 모델 목록) + **three.js 기반 3D 뷰어**(포인트클라우드/지형). - -## 파일 구조 - -| 파일 | 위치 | 역할 | -|---|---|---| -| `B04_wf1_Surface_UI_Page.ts` | `B04_wf1_Surface_UI_Page.ts:1-377` | 페이지 조립 + 분석 실행/폴링/뷰어 렌더 | -| `B04_wf1_Surface_UI_Viewer.ts` | `B04_wf1_Surface_UI_Viewer.ts:1-567` | 포인트클라우드 3D 뷰어(three.js) | -| `B04_wf1_Surface_UI_TerrainViewer.ts` | `B04_wf1_Surface_UI_TerrainViewer.ts:1-637` | 지형 메시 3D 뷰어(three.js) | -| `B04_wf1_Surface_Api_Fetch.ts` | `B04_wf1_Surface_Api_Fetch.ts:1-174` | surface API 클라이언트 | -| `B04_wf1_Surface_UI_Style.css` | `B04_wf1_Surface_UI_Style.css` | 폼 그룹/모델 카드/뷰어 스타일 | - -## ⚠️ 계획서와 실 코드 불일치 (3D 뷰어) - -이전 wiki(계획서 기반)는 **"WebCAD 3D 뷰어 미구현"**으로 기재했으나, -실 코드에는 three.js(WebGL) 기반 뷰어가 **구현되어 있음**: -- `createSurfacePointCloudViewer` (`B04_wf1_Surface_UI_Viewer.ts:187` WebGLRenderer, OrbitControls, THREE.Points) -- `createSurfaceTerrainViewer` (`B04_wf1_Surface_UI_TerrainViewer.ts`) -- UI_Page에서 import·인스턴스화(`B04_wf1_Surface_UI_Page.ts:37,38,110,356`) - -→ 규칙6, 실 코드 채택. dependencies도 three.js 반영 → [[B04_wf1_Surface/B04_dependencies]] - -## 컴포넌트 / 함수 - -| 함수 | 위치 | 역할 | -|---|---|---| -| `renderB04Surface(root)` | `B04_wf1_Surface_UI_Page.ts:95` | 워크플로우 레이아웃+뷰어 조립(async) | -| `createSurfacePointCloudViewer()` | `B04_wf1_Surface_UI_Viewer.ts:187` | 포인트클라우드 뷰어 핸들 생성 | -| `createSurfaceTerrainViewer()` | `B04_wf1_Surface_UI_TerrainViewer.ts` | 지형 메시 뷰어 핸들 생성 | - -## API 클라이언트 함수 - -| 함수 | 위치 | 대응 API | -|---|---|---| -| `analyzeSurface()` | `B04_wf1_Surface_Api_Fetch.ts:117` | `POST .../surface/analyze` | -| `listSurfaceModels()` | `B04_wf1_Surface_Api_Fetch.ts:128` | `GET .../surface/models` | -| `listSurfaceInputFiles()` | `B04_wf1_Surface_Api_Fetch.ts:134` | `GET .../surface/input-files` | -| `fetchSurfacePointCloud()` | `B04_wf1_Surface_Api_Fetch.ts:142` | `GET .../surface/point-cloud` | -| `fetchSurfaceGroundStats()` | `B04_wf1_Surface_Api_Fetch.ts:153` | `GET .../surface/ground-stats` | -| `fetchSurfaceStatus()` | `B04_wf1_Surface_Api_Fetch.ts:161` | `GET .../surface/status` | -| `getVWorldMapUrl()` / `fetchVWorldMeta()` | `B04_wf1_Surface_Api_Fetch.ts:182,186` | VWorld 배경지도 | -| `fetchGisGeoJson()` | `B04_wf1_Surface_Api_Fetch.ts:192` | `GET .../geojson` | - -## 처리 흐름 - -1. 워크플로우 레이아웃(`createWorkflowLayout`) + 스텝(`workflowSteps`) 조립 -2. 입력파일/모델 목록 로드 → 필터·표현 폼 구성 -3. 분석 실행(`analyzeSurface`) → 상태 폴링(`fetchSurfaceStatus`) -4. 완료 시 포인트클라우드(`fetchSurfacePointCloud`) → `viewer.render()` (`B04_wf1_Surface_UI_Page.ts:356`) - -## 의존성 - -- [[a00_app_shell_framework]] — `navigateTo`, `workflowSteps`(b_page_scaffold) -- `config_frontend.ts` — `API_BASE_URL`, `CURRENT_PROJECT_ID_KEY`, `ROUTES`, `RENDER_OPTIONS`, `API_TIMEOUT_MS` -- [[ui_templates]] — `createWorkflowLayout`(ui_template_workflow_layout) 등 -- **three.js** (WebGL 3D 뷰어) → [[B04_wf1_Surface/B04_dependencies]] -- 백엔드 API → [[B04_wf1_Surface/B04_api]] diff --git a/docs/wiki/pages/B05_wf2_Route/B05_api.md b/docs/wiki/pages/B05_wf2_Route/B05_api.md deleted file mode 100644 index 7294cd67..00000000 --- a/docs/wiki/pages/B05_wf2_Route/B05_api.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -type: page-api -status: stable -page_id: B05_wf2_Route -related_pages: ["[[B05_wf2_Route/B05_frontend]]", "[[B05_wf2_Route/B05_backend]]", "[[B05_wf2_Route/B05_db]]"] -last_updated: 2026-07-12 -source: 상위 프로젝트 B05_wf2_Route_Router.py 실 코드 직접 확인 (2026-07-12) ---- - -# B05_wf2_Route — API - -기본 prefix: `/api/projects` (`B05_wf2_Route_Router.py:30`). 공통 세션·오류 형식은 [[../../concepts/auth_rbac]], [[../../concepts/api_common]]을 참조한다. - -| 항목 | 위치 | 역할 | -|---|---|---| -| `POST /{project_id}/route/solve` | `B05_wf2_Route_Router.py:33` | RouteSolveRequest 검증, 경로 계산, 결과 3종 DB 저장 | -| `POST /{project_id}/route/confirm` | `B05_wf2_Route_Router.py:136` | 최신 DRAFT 경로를 CONFIRMED로 변경 | - -## solve 처리 결과 -| 항목 | 역할 | -|---|---| -| `route_id` | 새 경로 식별자 | -| `total_length_m` | 계산 경로 총연장 | -| `metrics` | 경사·절성토량·비용 등 통계 | -| `required_points_ok` | BP/EP/CP 조건 충족 여부 | -| `route_data_path` | GeoJSON LineString 상대경로 | - -오류는 표준 `{"status":"error","message":...}` 형식으로 반환한다. diff --git a/docs/wiki/pages/B05_wf2_Route/B05_backend.md b/docs/wiki/pages/B05_wf2_Route/B05_backend.md deleted file mode 100644 index 5dbae97b..00000000 --- a/docs/wiki/pages/B05_wf2_Route/B05_backend.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -type: page-backend -status: stable -page_id: B05_wf2_Route -related_pages: ["[[B05_wf2_Route/B05_frontend]]", "[[B05_wf2_Route/B05_api]]", "[[B05_wf2_Route/B05_db]]", "[[B05_wf2_Route/B05_dependencies]]"] -last_updated: 2026-07-12 -source: 상위 프로젝트 B05_wf2_Route 실 코드 직접 확인 (2026-07-12) ---- - -# B05_wf2_Route — Backend - -## 요청·응답 모델 -| 항목 | 위치 | 역할 | -|---|---|---| -| `RoutePoint` / `CirclePoint` | `B05_wf2_Route_Schema.py:10,20` | BP·EP·CP와 AP·FP 입력 검증 | -| `RouteSolveRequest` | `B05_wf2_Route_Schema.py:30` | 지표면·알고리즘·등급·제약·가중치 검증 | -| `RouteSolveResponse` | `B05_wf2_Route_Schema.py:84` | route ID·길이·메트릭·GeoJSON 상대경로 응답 | -| `RouteConfirmResponse` | `B05_wf2_Route_Schema.py:96` | 확정 route ID와 confirmed 상태 응답 | - -## 경로 계산 엔진 -| 항목 | 위치 | 역할 | -|---|---|---| -| `run_route_design()` | `B05_wf2_Route_Engine.py:68` | 입력 모델을 경로 설계 오케스트레이터로 실행 | -| `solve_optimal_route()` | `B05_wf2_Route_Engine_Solver.py:278` | DTM 격자·비용면·선택 알고리즘 기반 최적화 | -| `single_segment_dijkstra()` | `B05_wf2_Route_Engine_Geometry.py:149` | 단일 구간 격자 Dijkstra 탐색 | -| `solve_ridge_valley_route()` | `B05_wf2_Route_Engine_RidgeValley.py:510` | ridge-valley 후보와 제약 기반 경로 탐색 | -| `load_or_build_skeleton()` | `B05_wf2_Route_Engine_Skeleton.py:275` | D8 흐름누적 skeleton 캐시·생성 | -| `_build_cost_surface()` | `B05_wf2_Route_Engine_Solver.py:173` | 경사·곡률·회피영역 기반 비용면 생성 | -| `_fillet_alignment()` | `B05_wf2_Route_Engine_RidgeValley.py:406` | 굴곡부 fillet 정렬·곡선반경 반영 | - -## 기하·결과 변환 -| 항목 | 위치 | 역할 | -|---|---|---| -| `compute_gradients()` | `B05_wf2_Route_Engine_Geometry.py:33` | 격자 경사 계산 | -| `circumradius_2d()` | `B05_wf2_Route_Engine_Geometry.py:52` | 3점 곡선반경 계산 | -| `circle_intrusions()` | `B05_wf2_Route_Engine_Geometry.py:90` | 회피·금지 원 침범 검사 | -| `_route_geojson()` / `_sample_render_points()` | `B05_wf2_Route_Engine.py:20,32` | LineString 저장·렌더링 포인트 변환 | - -## 라우터·workflow -| 항목 | 위치 | 역할 | -|---|---|---| -| `solve_route()` | `B05_wf2_Route_Router.py:34` | 계산 실행·DB route/points/statistics 저장·stage 2 완료 | -| `confirm_latest_route()` | `B05_wf2_Route_Router.py:137` | 최신 경로 확정·stage 2 완료·후속 단계 stale 전파 | -| `start_stage()` / `complete_stage()` / `fail_stage()` | `B05_wf2_Route_Router.py:51,96,112,117,122,128,152` | WF2 상태 전이 → [[../../concepts/workflow_state]] | - -## 기술부채 -| 항목 | 위치 | 역할 | -|---|---|---| -| 700줄 초과 | `B05_wf2_Route_Engine_RidgeValley.py:1` | 781줄; ridge-valley 기능 분할 검토 | -| 700줄 근접 | `B05_wf2_Route_Engine_Solver.py:1` | 654줄; 비용면·최적화 분리 검토 | diff --git a/docs/wiki/pages/B05_wf2_Route/B05_db.md b/docs/wiki/pages/B05_wf2_Route/B05_db.md deleted file mode 100644 index f2e19f80..00000000 --- a/docs/wiki/pages/B05_wf2_Route/B05_db.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -type: page-db -status: stable -page_id: B05_wf2_Route -related_pages: ["[[B05_wf2_Route/B05_backend]]", "[[B05_wf2_Route/B05_api]]"] -last_updated: 2026-07-12 -source: 상위 프로젝트 B05_wf2_Route_Repository.py 실 코드 직접 확인 (2026-07-12) ---- - -# B05_wf2_Route — DB 사용 관계 - -테이블 정의는 [[db_schema/route_profile]]에서 1차 관리한다. - -| 항목 | 위치 | 역할 | -|---|---|---| -| `routes` | `B05_wf2_Route_Repository.py:27` | surface model·제어점·옵션·GeoJSON 경로 저장 | -| `route_points` | `B05_wf2_Route_Repository.py:75` | chainage·고도·경사별 렌더링 포인트 저장 | -| `route_statistics` | `B05_wf2_Route_Repository.py:109` | 총연장·경사·절성토량·비용 통계 저장 | - -## Repository 함수 -| 항목 | 위치 | 역할 | -|---|---|---| -| `_validate_stage_path()` | `B05_wf2_Route_Repository.py:18` | B05 route 상대경로 이탈 방지 | -| `create_route()` | `B05_wf2_Route_Repository.py:27` | 계산 결과 route 레코드 생성 | -| `insert_route_points()` | `B05_wf2_Route_Repository.py:75` | 샘플 포인트 일괄 저장 | -| `create_route_statistics()` | `B05_wf2_Route_Repository.py:109` | 경로 통계 저장 | -| `get_latest_route()` | `B05_wf2_Route_Repository.py:148` | 프로젝트 최신 경로 조회 | -| `confirm_route()` | `B05_wf2_Route_Repository.py:175` | 경로 상태 CONFIRMED 전환 | - -## 저장 경로 -| 항목 | 역할 | -|---|---| -| `routes.route_data_path` | 프로젝트 루트 기준 `B05_wf2_Route/route/` 내 GeoJSON 상대경로 | -| `route_points` | DB에 렌더링용 샘플 좌표 저장 | - -상세 경로 규칙: [[storage_paths]]. diff --git a/docs/wiki/pages/B05_wf2_Route/B05_dependencies.md b/docs/wiki/pages/B05_wf2_Route/B05_dependencies.md deleted file mode 100644 index a4de18cf..00000000 --- a/docs/wiki/pages/B05_wf2_Route/B05_dependencies.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -type: page-dependencies -status: stable -page_id: B05_wf2_Route -related_pages: ["[[B05_wf2_Route/B05_frontend]]", "[[B05_wf2_Route/B05_backend]]"] -last_updated: 2026-07-12 -source: 상위 프로젝트 B05_wf2_Route import 구문·엔진 직접 확인 (2026-07-12) ---- - -# B05_wf2_Route — Dependencies - -공유 의존성 정의는 [[../../concepts/dependencies]]에 둔다. - -| 항목 | 역할 | -|---|---| -| Whitebox | D8 흐름누적 기반 skeleton 보조 | -| GeoPandas | 지표면·공간 데이터 처리 | -| Shapely | 경로·금지영역 기하 연산 | -| NumPy | 격자·비용면·Dijkstra 계산 | -| SciPy | 격자 보간·수치 계산 보조 | -| aiomysql | routes·route_points·route_statistics Raw SQL | - -## 페이지 파일별 연결 -| 파일 | 위치 | 역할 | -|---|---|---| -| `B05_wf2_Route_Engine_Skeleton.py` | `:1` | Whitebox/NumPy 흐름누적 skeleton | -| `B05_wf2_Route_Engine_RidgeValley.py` | `:1` | NumPy 기반 ridge-valley 탐색 | -| `B05_wf2_Route_Repository.py` | `:1` | aiomysql 비동기 저장 | -| `B05_wf2_Route_UI_Page.ts` | `:1` | TypeScript DOM·공통 UI 렌더링 | diff --git a/docs/wiki/pages/B05_wf2_Route/B05_frontend.md b/docs/wiki/pages/B05_wf2_Route/B05_frontend.md deleted file mode 100644 index affbb203..00000000 --- a/docs/wiki/pages/B05_wf2_Route/B05_frontend.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -type: page-frontend -status: stable -page_id: B05_wf2_Route -related_pages: ["[[B05_wf2_Route/B05_backend]]", "[[B05_wf2_Route/B05_api]]", "[[B05_wf2_Route/B05_db]]"] -last_updated: 2026-07-12 -source: 상위 프로젝트 B05_wf2_Route 실 코드 직접 확인 (2026-07-12) ---- - -# B05_wf2_Route — Frontend - -## 화면과 상호작용 -| 항목 | 위치 | 역할 | -|---|---|---| -| `renderB05Route()` | `B05_wf2_Route_UI_Page.ts:74` | 제어점·지표면·제약·결과 3단 UI 렌더링 | -| 경로 계산 실행 | `B05_wf2_Route_UI_Page.ts:285` | 입력값을 `solveRoute()`로 전송하고 결과 메트릭 표시 | -| 경로 확정 | `B05_wf2_Route_UI_Page.ts:311` | 최신 계산 경로를 `confirmRoute()`로 확정 | -| workflow 상태 조회 | `B05_wf2_Route_UI_Page.ts:337` | 진입 단계와 진행상태 확인 | -| B 페이지 scaffold | `B05_wf2_Route_UI_Page.ts:354` | 공통 단계 내비게이션과 페이지 이동 | - -## API 클라이언트 -| 항목 | 위치 | 역할 | -|---|---|---| -| `solveRoute()` | `B05_wf2_Route_Api_Fetch.ts:83` | 경로 탐색 실행 요청 | -| `confirmRoute()` | `B05_wf2_Route_Api_Fetch.ts:94` | 최신 경로 확정 요청 | -| `RouteSolveRequest` | `B05_wf2_Route_Api_Fetch.ts:24` | 지표면·제어점·제약 입력 타입 | -| `RouteSolveResponse` | `B05_wf2_Route_Api_Fetch.ts:40` | 경로 ID·길이·메트릭·저장경로 타입 | - -## 입력 그룹 -| 항목 | 역할 | -|---|---| -| BP/EP/CP | 시작점·끝점·경유 제어점 | -| AP/FP | 회피 원·금지 원과 반경 | -| filter/method/smooth | 지표면 필터·표현·평활화 선택 | -| grade/paved/curve radius | 임도 등급·포장·최소 곡선반경 | -| uphill/downhill/weights | 종단경사 제한과 비용 가중치 | - -현재 코드에는 WebCAD 노선 폴리라인 편집·렌더링 컴포넌트가 없다. - -## 기술부채 -| 항목 | 위치 | 역할 | -|---|---|---| -| WebCAD 미구현 | `B05_wf2_Route_UI_Page.ts:74` | 결과는 메트릭·경로 저장경로 중심으로 표시 | -| CSS 분리 검토 | `B05_wf2_Route_UI_Style.css:1` | 132줄 페이지 전용 스타일 | diff --git a/docs/wiki/pages/B06_wf3_ProfileCross/B06_api.md b/docs/wiki/pages/B06_wf3_ProfileCross/B06_api.md deleted file mode 100644 index 619f4f3e..00000000 --- a/docs/wiki/pages/B06_wf3_ProfileCross/B06_api.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -type: page-api -status: stable -page_id: B06_wf3_ProfileCross -related_pages: ["[[B06_wf3_ProfileCross/B06_frontend]]", "[[B06_wf3_ProfileCross/B06_backend]]", "[[B06_wf3_ProfileCross/B06_db]]"] -last_updated: 2026-07-12 -source: 상위 프로젝트 B06_wf3_ProfileCross_Router.py 실 코드 직접 확인 (2026-07-12) ---- - -# B06_wf3_ProfileCross — API - -기본 prefix: `/api/projects` (`B06_wf3_ProfileCross_Router.py:33`). 공통 세션·오류 형식은 [[../../concepts/auth_rbac]], [[../../concepts/api_common]]을 참조한다. - -| 항목 | 위치 | 역할 | -|---|---|---| -| `POST /{project_id}/sections/generate` | `B06_wf3_ProfileCross_Router.py:48` | 확정 경로 기반 종단·횡단 생성 및 DB 저장 | -| `GET /{project_id}/sections/{route_id}` | `B06_wf3_ProfileCross_Router.py:151` | 종횡단 결과 요약 조회 | -| `POST /{project_id}/sections/{route_id}/confirm` | `B06_wf3_ProfileCross_Router.py:169` | 해당 route의 종횡단 결과 확정 | - -## 생성 응답 -| 항목 | 역할 | -|---|---| -| `longitudinal_id` | 종단면 레코드 ID | -| `cross_section_count` | 생성된 횡단면 수 | -| `length_m` | 대상 경로 총연장 | -| `longitudinal_file_path` | 종단면 산출 파일 상대경로 | - -오류는 표준 `{"status":"error","message":...}` 형식으로 반환한다. diff --git a/docs/wiki/pages/B06_wf3_ProfileCross/B06_backend.md b/docs/wiki/pages/B06_wf3_ProfileCross/B06_backend.md deleted file mode 100644 index 4ef89830..00000000 --- a/docs/wiki/pages/B06_wf3_ProfileCross/B06_backend.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -type: page-backend -status: stable -page_id: B06_wf3_ProfileCross -related_pages: ["[[B06_wf3_ProfileCross/B06_frontend]]", "[[B06_wf3_ProfileCross/B06_api]]", "[[B06_wf3_ProfileCross/B06_db]]", "[[B06_wf3_ProfileCross/B06_dependencies]]"] -last_updated: 2026-07-12 -source: 상위 프로젝트 B06_wf3_ProfileCross 실 코드 직접 확인 (2026-07-12) ---- - -# B06_wf3_ProfileCross — Backend - -## 요청·응답 모델 -| 항목 | 위치 | 역할 | -|---|---|---| -| `SectionGenerateRequest` | `B06_wf3_ProfileCross_Schema.py:8` | route·지표면·측점·횡단 옵션 검증 | -| `SectionGenerateResponse` | `B06_wf3_ProfileCross_Schema.py:26` | 종단 ID·횡단 개수·총연장·파일경로 응답 | -| `SectionConfirmResponse` | `B06_wf3_ProfileCross_Schema.py:38` | 확정 route와 confirmed 상태 응답 | -| `SectionSummaryResponse` | `B06_wf3_ProfileCross_Schema.py:47` | 종단·횡단 결과 요약 응답 | - -## 생성 엔진 -| 항목 | 위치 | 역할 | -|---|---|---| -| `run_section_generation()` | `B06_wf3_ProfileCross_Engine.py:50` | B05 경로 로드·표고 sampler·종횡단 생성 오케스트레이션 | -| `build_surface_sampler()` | `B06_wf3_ProfileCross_Engine_Sampler.py:126` | DTM·보간 방식 표고 sampler 선택 | -| `DtmGridSampler` | `B06_wf3_ProfileCross_Engine_Sampler.py:26` | DTM 격자 기반 표고 조회 | -| `InterpolatedSurfaceSampler` | `B06_wf3_ProfileCross_Engine_Sampler.py:109` | 표면 보간 기반 표고 조회 | -| `generate_sections()` | `B06_wf3_ProfileCross_Engine_Section.py:116` | 측점·종단·횡단 샘플 생성 | -| `_chainages()` | `B06_wf3_ProfileCross_Engine_Section.py:77` | 측점 간격과 종점 포함 여부로 chainage 생성 | -| `_interpolate_xy()` / `_tangent_at()` | `B06_wf3_ProfileCross_Engine_Section.py:86,95` | 경로 좌표 보간·접선 방향 계산 | - -## 라우터·workflow -| 항목 | 위치 | 역할 | -|---|---|---| -| `generate_sections()` | `B06_wf3_ProfileCross_Router.py:49` | 확정 경로 검증·생성·DB 저장·stage 3 완료 | -| `get_sections()` | `B06_wf3_ProfileCross_Router.py:152` | route 종횡단 요약 조회 | -| `confirm_sections()` | `B06_wf3_ProfileCross_Router.py:170` | 결과 확정·stage 3 완료 | -| `start_stage()` / `complete_stage()` / `fail_stage()` | `B06_wf3_ProfileCross_Router.py:68,111,127,132,137,143,187` | WF3 상태 전이 → [[../../concepts/workflow_state]] | - -## 재실행 -| 항목 | 위치 | 역할 | -|---|---|---| -| `delete_sections_for_route()` | `B06_wf3_ProfileCross_Repository.py:27` | 동일 route 기존 결과 삭제 후 재생성 | -| `_validate_stage_path()` | `B06_wf3_ProfileCross_Repository.py:18` | WF3 저장경로 이탈 방지 | diff --git a/docs/wiki/pages/B06_wf3_ProfileCross/B06_db.md b/docs/wiki/pages/B06_wf3_ProfileCross/B06_db.md deleted file mode 100644 index d3c64d11..00000000 --- a/docs/wiki/pages/B06_wf3_ProfileCross/B06_db.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -type: page-db -status: stable -page_id: B06_wf3_ProfileCross -related_pages: ["[[B06_wf3_ProfileCross/B06_backend]]", "[[B06_wf3_ProfileCross/B06_api]]"] -last_updated: 2026-07-12 -source: 상위 프로젝트 B06_wf3_ProfileCross_Repository.py 실 코드 직접 확인 (2026-07-12) ---- - -# B06_wf3_ProfileCross — DB 사용 관계 - -테이블 정의는 [[db_schema/route_profile]]에서 1차 관리한다. - -| 항목 | 위치 | 역할 | -|---|---|---| -| `longitudinal_sections` | `B06_wf3_ProfileCross_Repository.py:34` | route별 종단 chainage·표고·경사·설계값 저장 | -| `cross_sections` | `B06_wf3_ProfileCross_Repository.py:67` | 측점별 좌우 표고·폭·절성토 데이터 저장 | - -## Repository 함수 -| 항목 | 위치 | 역할 | -|---|---|---| -| `_validate_stage_path()` | `B06_wf3_ProfileCross_Repository.py:18` | WF3 상대경로 이탈 방지 | -| `delete_sections_for_route()` | `B06_wf3_ProfileCross_Repository.py:27` | 재생성 전 기존 종횡단 삭제 | -| `create_longitudinal_section()` | `B06_wf3_ProfileCross_Repository.py:34` | 종단면 레코드 생성 | -| `insert_cross_sections()` | `B06_wf3_ProfileCross_Repository.py:67` | 횡단면 일괄 저장 | -| `get_longitudinal_section()` | `B06_wf3_ProfileCross_Repository.py:109` | 종단·횡단 결과 조회 | -| `confirm_sections_for_route()` | `B06_wf3_ProfileCross_Repository.py:135` | route 종횡단 상태 확정 | - -## 파일 경로 -| 항목 | 역할 | -|---|---| -| `longitudinal_file_path` | `B06_wf3_ProfileCross/longitudinal/` 산출물 상대경로 | -| `cross_section_file_path` | `B06_wf3_ProfileCross/cross_sections/` 산출물 상대경로 | - -상세 저장 규칙: [[storage_paths]]. diff --git a/docs/wiki/pages/B06_wf3_ProfileCross/B06_dependencies.md b/docs/wiki/pages/B06_wf3_ProfileCross/B06_dependencies.md deleted file mode 100644 index ffdf7e9b..00000000 --- a/docs/wiki/pages/B06_wf3_ProfileCross/B06_dependencies.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -type: page-dependencies -status: stable -page_id: B06_wf3_ProfileCross -related_pages: ["[[B06_wf3_ProfileCross/B06_frontend]]", "[[B06_wf3_ProfileCross/B06_backend]]"] -last_updated: 2026-07-12 -source: 상위 프로젝트 B06_wf3_ProfileCross import 구문·엔진 직접 확인 (2026-07-12) ---- - -# B06_wf3_ProfileCross — Dependencies - -공유 의존성 정의는 [[../../concepts/dependencies]]에 둔다. - -| 항목 | 위치 | 역할 | -|---|---|---| -| NumPy | `B06_wf3_ProfileCross_Engine_Section.py:1` | 경로·chainage·단면 샘플 배열 계산 | -| SciPy | `B06_wf3_ProfileCross_Engine_Sampler.py:1` | 표면 보간 sampler | -| aiomysql | `B06_wf3_ProfileCross_Repository.py:1` | 종횡단 Raw SQL 저장·조회 | -| Pydantic | `B06_wf3_ProfileCross_Schema.py:5` | 생성·조회·확정 요청 검증 | -| FastAPI | `B06_wf3_ProfileCross_Router.py:1` | sections API 라우터 | - -## 공통 모듈 -| 항목 | 위치 | 역할 | -|---|---|---| -| `common_util_workflow_state` | `B06_wf3_ProfileCross_Router.py:29` | stage 3 상태 전이 → [[../../concepts/workflow_state]] | -| `common_util_storage` | `B06_wf3_ProfileCross_Engine.py:1` | 프로젝트 상대경로 해석 → [[../../concepts/storage_paths]] | -| `ui_template_workflow_layout` | `B06_wf3_ProfileCross_UI_Page.ts:23` | 공통 workflow 화면 구성 | diff --git a/docs/wiki/pages/B06_wf3_ProfileCross/B06_frontend.md b/docs/wiki/pages/B06_wf3_ProfileCross/B06_frontend.md deleted file mode 100644 index b3a4415b..00000000 --- a/docs/wiki/pages/B06_wf3_ProfileCross/B06_frontend.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -type: page-frontend -status: stable -page_id: B06_wf3_ProfileCross -related_pages: ["[[B06_wf3_ProfileCross/B06_backend]]", "[[B06_wf3_ProfileCross/B06_api]]", "[[B06_wf3_ProfileCross/B06_db]]"] -last_updated: 2026-07-12 -source: 상위 프로젝트 B06_wf3_ProfileCross 실 코드 직접 확인 (2026-07-12) ---- - -# B06_wf3_ProfileCross — Frontend - -## 화면·workflow -| 항목 | 위치 | 역할 | -|---|---|---| -| `renderB06ProfileCross()` | `B06_wf3_ProfileCross_UI_Page.ts:57` | 측점·횡단 옵션·결과 메트릭 화면 렌더링 | -| 종횡단 생성 실행 | `B06_wf3_ProfileCross_UI_Page.ts:201` | 입력 옵션을 `generateSections()`로 전송 | -| 종횡단 확정 | `B06_wf3_ProfileCross_UI_Page.ts:233` | route별 종횡단을 `confirmSections()`로 확정 | -| workflow 상태 조회 | `B06_wf3_ProfileCross_UI_Page.ts:259` | 단계 상태와 진입 가능 단계 조회 | -| workflow layout 구성 | `B06_wf3_ProfileCross_UI_Page.ts:271` | 공통 단계·경로·상태 표시 | - -## API 클라이언트 -| 항목 | 위치 | 역할 | -|---|---|---| -| `generateSections()` | `B06_wf3_ProfileCross_Api_Fetch.ts:82` | 종단면·횡단면 생성 요청 | -| `getSections()` | `B06_wf3_ProfileCross_Api_Fetch.ts:93` | route별 결과 요약 조회 | -| `confirmSections()` | `B06_wf3_ProfileCross_Api_Fetch.ts:103` | 생성 결과 확정 요청 | -| `SectionGenerateRequest` | `B06_wf3_ProfileCross_Api_Fetch.ts:18` | 측점·폭·샘플 간격 입력 타입 | -| `SectionGenerateResponse` | `B06_wf3_ProfileCross_Api_Fetch.ts:31` | 종단 ID·횡단 개수·길이·파일경로 타입 | - -## 입력 옵션 -| 항목 | 역할 | -|---|---| -| `route_id` | 확정된 B05 경로 선택 | -| `filter_key`, `method`, `smooth`, `crs` | 지표면 필터·표현·평활화·좌표계 | -| `station_interval_m` | 종단 측점 간격 | -| `cross_half_width_m` | 횡단 좌우 반폭 | -| `cross_sample_interval_m` | 횡단 표고 샘플 간격 | -| `long_sample_interval_m` | 종단 표고 샘플 간격 | - -현재 코드에는 종단도·횡단 프로필을 WebCAD로 렌더링하는 전용 뷰어가 없다. diff --git a/docs/wiki/pages/B07_wf4_DesignDetail/B07_frontend.md b/docs/wiki/pages/B07_wf4_DesignDetail/B07_frontend.md deleted file mode 100644 index 2d247fb7..00000000 --- a/docs/wiki/pages/B07_wf4_DesignDetail/B07_frontend.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -status: stable -page_id: B07_wf4_DesignDetail -related_pages: ["[[B06_wf3_ProfileCross/B06_backend]]", "[[B08_wf5_Quantity/B08_frontend]]", "[[db_schema/structure_output]]", "[[storage_paths]]"] -last_updated: 2026-07-12 ---- - -# B07_wf4_DesignDetail — Frontend - -WF4 상세 설계(구조물 배치). **워크플로우 셸만 존재, 본문 미구현.** - -## 파일 구조 - -| 파일 | 위치 | 역할 | -|---|---|---| -| `B07_wf4_DesignDetail_UI_Page.ts` | `B07_wf4_DesignDetail/B07_wf4_DesignDetail_UI_Page.ts:1-27` | 워크플로우 셸(헤더+스텝바)만 렌더, 본문은 "준비중" 안내 | - -## 컴포넌트 / 함수 - -| 함수 | 위치 | 역할 | -|---|---|---| -| `renderB07DesignDetail(root)` | `B07_wf4_DesignDetail_UI_Page.ts:20` | `renderPendingWorkflow()` 호출(title, steps, activeStep:4) | - -## 로컬라이제이션 - -| UI 요소 | 로케일 키 | -|---|---| -| 페이지 제목 | `B07_Design_Title` ("4차 · 상세 설계") | - -## 의존성 - -- [[a00_app_shell_framework]] — `renderPendingWorkflow()`, `workflowSteps()` (b_page_scaffold, B04~B09 공용 셸 헬퍼) -- [[ui_templates]] — `ui_locales`, `currentLanguageIndex` - -## 백엔드/DB — 미착수 (계획적 범위 제외) - -- 백엔드(Schema/Engine/Repository/Router) 파일 자체가 존재하지 않음 -- `raw/guidelines/migration_plan.md:271` — **"B07 이후 기능은 이번 마이그레이션 범위에서 제외한다"** (계획 단계에서 명시적으로 제외) -- `raw/guidelines/structure.md:173-174`도 B07을 "워크플로우 셸"로만 기술 — 실 코드와 일치 -- DB는 `structures` 테이블 예정 (컬럼 정의는 계획서 기준) → [[db_schema/structure_output]] (사용처에 B07 이미 등록됨) - -## 참고 - -- 이 페이지는 B08/B09와 함께 "셸만 존재" 3종 중 하나. 실 코드·raw 문서 모두 미착수로 일관되게 확인됨(모순 없음) -- 향후 구현 시 `structures` 테이블(구조물 유형: 낙석방지책/돌붙임/계간수로 등) 기준 계획서 필요 diff --git a/docs/wiki/pages/B08_wf5_Quantity/B08_db.md b/docs/wiki/pages/B08_wf5_Quantity/B08_db.md deleted file mode 100644 index 49e877cf..00000000 --- a/docs/wiki/pages/B08_wf5_Quantity/B08_db.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -type: page-db -status: stable -page_id: B08_wf5_Quantity -related_pages: ["[[B08_wf5_Quantity/B08_frontend]]"] -last_updated: 2026-07-12 -source: 상위 프로젝트 B08 코드 부재 확인 + DB 개념 문서 대조 (2026-07-12) ---- - -# B08_wf5_Quantity — DB - -현재 B08 코드에는 Repository·라우터·DB 쓰기 구현이 없다. 아래는 프로젝트 DB 설계상 예정된 사용 관계다. - -| 항목 | 위치 | 역할 | -|---|---|---| -| `quantity_items` | [[db_schema/structure_output]] | 토공·구조물·포장·배수·녹화·안전시설별 수량과 단가 저장 예정 | -| `quantity_data_path` | [[db_schema/overview]] | B08 수량 산출 파일 상대경로 저장 예정 | - -## 구현 대기 항목 -| 항목 | 현재 상태 | -|---|---| -| B08 Repository | 파일 없음 | -| B08 Router/API | 파일 없음 | -| Pydantic 스키마 | 파일 없음 | -| 수량 계산 엔진 | 파일 없음 | -| `quantity_items` INSERT/UPDATE | 미구현 | -| WF5 상태 전이 | 미구현 | - -저장 폴더 계획: `storage/{company_slug}/{user_slug}/{project_id}/B08_wf5_Quantity/quantities/` → [[storage_paths]]. diff --git a/docs/wiki/pages/B08_wf5_Quantity/B08_frontend.md b/docs/wiki/pages/B08_wf5_Quantity/B08_frontend.md deleted file mode 100644 index 32cdbd64..00000000 --- a/docs/wiki/pages/B08_wf5_Quantity/B08_frontend.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -type: page-frontend -status: stable -page_id: B08_wf5_Quantity -related_pages: ["[[B08_wf5_Quantity/B08_db]]"] -last_updated: 2026-07-12 -source: 상위 프로젝트 B08_wf5_Quantity 실 코드 직접 확인 (2026-07-12) ---- - -# B08_wf5_Quantity — Frontend - -## 현재 구현 -| 항목 | 위치 | 역할 | -|---|---|---| -| `renderB08Quantity()` | `B08_wf5_Quantity_UI_Page.ts:20` | B08 수량 산출 페이지 진입점 | -| `renderPendingWorkflow()` | `B08_wf5_Quantity_UI_Page.ts:21` | 공통 준비 중 workflow 셸 렌더링 | -| `workflowSteps()` | `B08_wf5_Quantity_UI_Page.ts:23` | 전체 workflow 단계 표시 | -| `L()` | `B08_wf5_Quantity_UI_Page.ts:14` | 한·영 locale 문자열 선택 | - -## 화면 상태 -| 항목 | 값 | -|---|---| -| 제목 | `ui_locales[B08_Quantity_Title]` | -| 활성 단계 | `activeStep: 5` (WF5) | -| 본문 | 미구현; 헤더와 workflow step bar만 표시 | -| 수량 계산 API | 미구현 | -| 수량 결과 테이블·차트 | 미구현 | -| WebCAD/산출물 뷰어 | 미구현 | - -## 계획 책임 -| 항목 | 계획 역할 | -|---|---| -| 토공·구조물·포장·배수 등 수량 산출 | B07 종횡단·구조물 결과를 수량 항목으로 집계 | -| 수량 결과 저장 | `quantity_items`와 `quantity_data_path` 사용 → [[B08_wf5_Quantity/B08_db]] | -| 다음 단계 연결 | WF6 견적·문서 산출로 전달 | - -공통 셸·locale은 [[../../concepts/a00_app_shell_framework]], [[../../concepts/ui_templates]]를 참조한다. - -## 기술부채 -| 항목 | 위치 | 역할 | -|---|---|---| -| 본문 미구현 | `B08_wf5_Quantity_UI_Page.ts:5` | 수량 계산·조회·확정 기능 설계와 구현 필요 | diff --git a/docs/wiki/pages/B09_wf6_Estimation/B09_frontend.md b/docs/wiki/pages/B09_wf6_Estimation/B09_frontend.md deleted file mode 100644 index fce00674..00000000 --- a/docs/wiki/pages/B09_wf6_Estimation/B09_frontend.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -status: stable -page_id: B09_wf6_Estimation -related_pages: ["[[B08_wf5_Quantity/B08_frontend]]", "[[db_schema/structure_output]]", "[[storage_paths]]"] -last_updated: 2026-07-12 ---- - -# B09_wf6_Estimation — Frontend - -WF6 견적·문서 산출(Excel/PDF/DXF). **워크플로우 셸만 존재, 본문 미구현.** - -## 파일 구조 - -| 파일 | 위치 | 역할 | -|---|---|---| -| `B09_wf6_Estimation_UI_Page.ts` | `B09_wf6_Estimation/B09_wf6_Estimation_UI_Page.ts:1-27` | 워크플로우 셸(헤더+스텝바)만 렌더, 본문은 "준비중" 안내 | - -## 컴포넌트 / 함수 - -| 함수 | 위치 | 역할 | -|---|---|---| -| `renderB09Estimation(root)` | `B09_wf6_Estimation_UI_Page.ts:20` | `renderPendingWorkflow()` 호출(title, steps, activeStep:6) | - -## 로컬라이제이션 - -| UI 요소 | 로케일 키 | -|---|---| -| 페이지 제목 | `B09_Estimation_Title` ("6차 · 견적·문서") | - -## 의존성 - -- [[a00_app_shell_framework]] — `renderPendingWorkflow()`, `workflowSteps()` (b_page_scaffold, B04~B09 공용 셸 헬퍼) -- [[ui_templates]] — `ui_locales`, `currentLanguageIndex` - -## 백엔드/DB — 미착수 - -- 백엔드(Schema/Engine/Repository/Router) 파일 자체가 존재하지 않음 -- `raw/guidelines/structure.md:177-178`도 B09를 "워크플로우 셸"로만 기술 — 실 코드와 일치 -- DB는 `outputs`/`output_files` 테이블 예정 → [[db_schema/structure_output]] (사용처에 B09 이미 등록됨) -- 산출물 버전 관리(v1/, v2/, ...)는 워크플로우 전체에서 **이 단계에서만** 사용 → [[storage_paths]] (경로패턴 20줄, B09 이미 related_pages 등록됨) - -## 참고 - -- B07/B08과 함께 "셸만 존재" 3종 중 하나. 실 코드·raw 문서 모두 미착수로 일관되게 확인됨(모순 없음) -- 향후 구현 시 Excel/PDF/DXF 3종 산출물 생성 로직 + `outputs_directory_path`/`output_file_path` 경로 기록 필요