From 58153a49a0ab1fa6997331f20f2eba0e41b8d623 Mon Sep 17 00:00:00 2001 From: happybell80 Date: Fri, 26 Sep 2025 00:38:52 +0900 Subject: [PATCH] Fix documentation errors and add UUID principle violation docs - Fix false EmailIntegration bug reports in multiple docs - Add new UUID principle violation documentation - Remove incorrect assumptions about gmail_tokens table - Update 250922 doc to reflect Gateway UUID conversion working - Clean up research papers organization into subdirectories --- ...—”๋“œ_PostgreSQL_ChromaDB_Vector_Memory.md | 18 +-- plans/000000_unresolved_items_matrix.md | 9 +- plans/250906_news_skill_publish_separation.md | 4 +- .../250925_classical_planning_basics.md | 126 ++++++++++++++++++ ...80_๋ฒ ์ด์ฆˆ_๊ด€๋ จ_ํ•ต์‹ฌ_๋…ผ๋ฌธ_10์„ .md | 0 ...920_happybell80_๋ฒ ์ด์ฆˆ_ํ•™๋ฌธ_์—ญ์‚ฌ.md | 0 ..._happybell80_๋ฒ ์ด์ง€์•ˆ_๋…ผ์˜_์ข…ํ•ฉ.md | 0 research/mcp_a2a/a2a_papers.md | 37 ++--- ...survey_agent_interoperability_protocols.md | 8 ++ ...r_et_al_2025_building_secure_agentic_ai.md | 8 ++ ...5_studying_security_maintainability_mcp.md | 8 ++ ...l_2025_mcp_landscape_security_ecosystem.md | 8 ++ ...i_et_al_2023_camel_communicative_agents.md | 8 ++ .../mcp_2025_official_specification.md | 8 ++ research/mcp_a2a/mcp_papers.md | 37 ++--- .../plaat_et_al_2025_agentic_llms_survey.md | 8 ++ ...dosevich_halloran_2025_mcp_safety_audit.md | 8 ++ ...t_al_2025_towards_multi_agent_economies.md | 8 ++ ...al_2024_sotopia_pi_interactive_learning.md | 8 ++ research/ocr/250909_ocr_core_papers.md | 58 ++------ ...enza_2022_parseq_scene_text_recognition.md | 8 ++ .../du_et_al_2022_svtr_single_visual_model.md | 8 ++ ..._et_al_2021_abinet_iterative_correction.md | 8 ++ ...huang_et_al_2024_bridging_text_spotting.md | 7 + ...m_et_al_2021_donut_ocr_free_transformer.md | 9 ++ .../li_et_al_2021_trocr_transformer_ocr.md | 8 ++ ..._et_al_2019_master_multi_aspect_network.md | 8 ++ ...survey_scene_text_detection_recognition.md | 7 + ...2021_visionlan_visual_language_modeling.md | 8 ++ ..._2023_survey_text_detection_recognition.md | 7 + ...t_al_2023_e2str_ego_evolving_recognizer.md | 7 + ...10_happybell80_์˜จํ†จ๋กœ์ง€๋…ผ๋ฌธ์ •๋ฆฌ.md | 58 ++------ .../ashburner_et_al_2000_the_gene_ontology.md | 10 ++ ...t_al_2007_dbpedia_nucleus_web_open_data.md | 9 ++ ...r_1993_portable_ontology_specifications.md | 10 ++ .../guarino_1998_what_is_an_ontology.md | 9 ++ ...024_llm_supported_ontology_construction.md | 9 ++ .../li_et_al_2024_survey_graph_meets_llm.md | 9 ++ ..._al_2025_ontology_generation_using_llms.md | 9 ++ ..._al_2024_survey_augmenting_kg_with_llms.md | 9 ++ ...24_accelerating_kg_ontology_engineering.md | 10 ++ ...et_al_2007_yago_core_semantic_knowledge.md | 9 ++ .../250925_langgraph_vs_n8n_comparison.md | 109 +++++++++++++++ ...pybell80_ACP_ANP_ํ”„๋กœํ† ์ฝœ_๋ฆฌ์„œ์น˜.md | 0 ...ll80_GmailItem๊ตฌํ˜„๋ฐGitActions์„ค์ •.md | 6 +- ...„์ดํ…œUI๊ณ ๊ธ‰ํ™”๋ฐ์ƒํƒœ์˜๊ตฌ์ €์žฅ.md | 4 +- ...50824_rb8001_daily_summary_cron_failure.md | 14 +- .../250826_slack_id_column_standardization.md | 16 +-- ...d_backend_preferences_API_์—ฐ๋™_์™„๋ฃŒ.md | 4 +- ...0_skill-email_UUID_inconsistency_URGENT.md | 9 +- ...l80_rb8001_chromadb_metadata_corruption.md | 6 +- .../250922_current_system_status_summary.md | 37 +++-- ...80_UUID_์›์น™_์œ„๋ฐ˜_email_integration.md | 82 ++++++++++++ 53 files changed, 678 insertions(+), 214 deletions(-) create mode 100644 research/ai_planning/250925_classical_planning_basics.md rename research/{ => bayesian_theory}/250920_happybell80_๋ฒ ์ด์ฆˆ_๊ด€๋ จ_ํ•ต์‹ฌ_๋…ผ๋ฌธ_10์„ .md (100%) rename research/{ => bayesian_theory}/250920_happybell80_๋ฒ ์ด์ฆˆ_ํ•™๋ฌธ_์—ญ์‚ฌ.md (100%) rename research/{ => bayesian_theory}/250920_happybell80_๋ฒ ์ด์ง€์•ˆ_๋…ผ์˜_์ข…ํ•ฉ.md (100%) create mode 100644 research/mcp_a2a/ehtesham_et_al_2025_survey_agent_interoperability_protocols.md create mode 100644 research/mcp_a2a/habler_et_al_2025_building_secure_agentic_ai.md create mode 100644 research/mcp_a2a/hasan_et_al_2025_studying_security_maintainability_mcp.md create mode 100644 research/mcp_a2a/hou_et_al_2025_mcp_landscape_security_ecosystem.md create mode 100644 research/mcp_a2a/li_et_al_2023_camel_communicative_agents.md create mode 100644 research/mcp_a2a/mcp_2025_official_specification.md create mode 100644 research/mcp_a2a/plaat_et_al_2025_agentic_llms_survey.md create mode 100644 research/mcp_a2a/radosevich_halloran_2025_mcp_safety_audit.md create mode 100644 research/mcp_a2a/vaziry_et_al_2025_towards_multi_agent_economies.md create mode 100644 research/mcp_a2a/wang_et_al_2024_sotopia_pi_interactive_learning.md create mode 100644 research/ocr/bautista_atienza_2022_parseq_scene_text_recognition.md create mode 100644 research/ocr/du_et_al_2022_svtr_single_visual_model.md create mode 100644 research/ocr/fang_et_al_2021_abinet_iterative_correction.md create mode 100644 research/ocr/huang_et_al_2024_bridging_text_spotting.md create mode 100644 research/ocr/kim_et_al_2021_donut_ocr_free_transformer.md create mode 100644 research/ocr/li_et_al_2021_trocr_transformer_ocr.md create mode 100644 research/ocr/lu_et_al_2019_master_multi_aspect_network.md create mode 100644 research/ocr/naiemi_et_al_2022_survey_scene_text_detection_recognition.md create mode 100644 research/ocr/wang_et_al_2021_visionlan_visual_language_modeling.md create mode 100644 research/ocr/wang_et_al_2023_survey_text_detection_recognition.md create mode 100644 research/ocr/zhao_et_al_2023_e2str_ego_evolving_recognizer.md create mode 100644 research/ontology/ashburner_et_al_2000_the_gene_ontology.md create mode 100644 research/ontology/auer_et_al_2007_dbpedia_nucleus_web_open_data.md create mode 100644 research/ontology/gruber_1993_portable_ontology_specifications.md create mode 100644 research/ontology/guarino_1998_what_is_an_ontology.md create mode 100644 research/ontology/kommineni_et_al_2024_llm_supported_ontology_construction.md create mode 100644 research/ontology/li_et_al_2024_survey_graph_meets_llm.md create mode 100644 research/ontology/lippolis_et_al_2025_ontology_generation_using_llms.md create mode 100644 research/ontology/mishra_et_al_2024_survey_augmenting_kg_with_llms.md create mode 100644 research/ontology/shimizu_hitzler_2024_accelerating_kg_ontology_engineering.md create mode 100644 research/ontology/suchanek_et_al_2007_yago_core_semantic_knowledge.md create mode 100644 research/orchestration_tools/250925_langgraph_vs_n8n_comparison.md rename research/{ => protocols}/250912_happybell80_ACP_ANP_ํ”„๋กœํ† ์ฝœ_๋ฆฌ์„œ์น˜.md (100%) create mode 100644 troubleshooting/250926_happybell80_UUID_์›์น™_์œ„๋ฐ˜_email_integration.md diff --git a/300_architecture/330_๋ฐฑ์—”๋“œ_PostgreSQL_ChromaDB_Vector_Memory.md b/300_architecture/330_๋ฐฑ์—”๋“œ_PostgreSQL_ChromaDB_Vector_Memory.md index f5133a0..abc45f9 100644 --- a/300_architecture/330_๋ฐฑ์—”๋“œ_PostgreSQL_ChromaDB_Vector_Memory.md +++ b/300_architecture/330_๋ฐฑ์—”๋“œ_PostgreSQL_ChromaDB_Vector_Memory.md @@ -53,7 +53,7 @@ ```sql -- ์‚ฌ์šฉ์ž์˜ ๊ธฐ๋ณธ ์ •๋ณด์™€ ๋ ˆ๋ฒจ ๋“ฑ ๋ช…ํ™•ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. -CREATE TABLE users ( +CREATE TABLE user ( id UUID PRIMARY KEY, email VARCHAR(255) UNIQUE, name VARCHAR(100), @@ -63,9 +63,9 @@ CREATE TABLE users ( ); -- ๋กœ๋น™์˜ ๊ฐœ์„ฑ(์Šคํƒฏ)๊ณผ ๊ฐ์ • ์ƒํƒœ ๋“ฑ ์„ฑ์žฅ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•˜๋Š” ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. -CREATE TABLE robeings ( +CREATE TABLE robeing ( id UUID PRIMARY KEY, - user_id UUID REFERENCES users(id), + user_id UUID REFERENCES user(id), name VARCHAR(100), -- ์Šคํƒฏ (๊ฒŒ์ž„์ฒ˜๋Ÿผ ์ˆ˜์น˜ํ™”) intelligence INTEGER DEFAULT 10, @@ -82,7 +82,7 @@ CREATE TABLE robeings ( -- ๋กœ๋น™์ด ์Šต๋“ํ•œ ๋Šฅ๋ ฅ(์Šคํ‚ฌ)์˜ ๋ ˆ๋ฒจ๊ณผ ์ˆ™๋ จ๋„๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. CREATE TABLE skills ( id UUID PRIMARY KEY, - robeing_id UUID REFERENCES robeings(id), + robeing_id UUID REFERENCES robeing(id), skill_name VARCHAR(100), skill_level INTEGER DEFAULT 1, experience_points INTEGER DEFAULT 0, @@ -93,7 +93,7 @@ CREATE TABLE skills ( -- ๋กœ๋น™์ด ์ˆ˜ํ–‰ํ•œ ๋ชจ๋“  ์ž‘์—…์˜ ์„ฑ๊ณต ์—ฌ๋ถ€, ์†Œ์š” ์‹œ๊ฐ„ ๋“ฑ์„ ๊ธฐ๋กํ•˜์—ฌ ๋‚˜์ค‘์— ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋กœ๊ทธ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. CREATE TABLE task_history ( id UUID PRIMARY KEY, - robeing_id UUID REFERENCES robeings(id), + robeing_id UUID REFERENCES robeing(id), task_type VARCHAR(50), input_data JSONB, output_data JSONB, @@ -109,7 +109,7 @@ CREATE TABLE task_history ( # ๋กœ๋น™์˜ ๋Œ€ํ™”๋‚˜ ๋ฌธ์„œ ๋‚ด์šฉ์„ '์˜๋ฏธ' ๊ธฐ๋ฐ˜์œผ๋กœ ์ €์žฅํ•˜๋Š” ๊ธฐ์–ต ์ปฌ๋ ‰์…˜์ž…๋‹ˆ๋‹ค. # ๋‚˜์ค‘์— "๋น„์Šทํ•œ ์ด์•ผ๊ธฐ"๋ฅผ ์ฐพ์•„๋‚ผ ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. memories_collection = { - "name": "robeing_{user_uuid}_memories", # ์‚ฌ์šฉ์ž๋ณ„๋กœ ๊ธฐ์–ต์„ ์™„์ „ํžˆ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค. + "name": "rb8001_{user_uuid}_memory", # ์‚ฌ์šฉ์ž๋ณ„๋กœ ๊ธฐ์–ต์„ ์™„์ „ํžˆ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค. "metadata": { "description": "๋กœ๋น™์˜ ๋ชจ๋“  ๋Œ€ํ™” ๋ฐ ๋ฌธ์„œ ๊ธฐ์–ต", "embedding_model": "ko-sroberta-multitask" @@ -148,9 +148,9 @@ async def recall_relevant_context(user_id: str, current_text: str): # 1. [์‚ฌ์‹ค ๊ธฐ์–ต ์กฐํšŒ] PostgreSQL์—์„œ ์‚ฌ์šฉ์ž์˜ ํ”„๋กœํ•„, ๋กœ๋น™์˜ ์Šคํƒฏ ๋“ฑ '์‚ฌ์‹ค' ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. user_data = await postgres.query(""" - SELECT u.*, r.* - FROM users u - JOIN robeings r ON u.id = r.user_id + SELECT u.*, r.* + FROM user u + JOIN robeing r ON u.id = r.user_id WHERE u.id = $1 """, user_id) diff --git a/plans/000000_unresolved_items_matrix.md b/plans/000000_unresolved_items_matrix.md index af6919c..2fc3cf8 100644 --- a/plans/000000_unresolved_items_matrix.md +++ b/plans/000000_unresolved_items_matrix.md @@ -1,9 +1,7 @@ # ๋ฏธํ•ด๊ฒฐ ํ•ญ๋ชฉ ๋งคํŠธ๋ฆญ์Šค (์ค‘์š”๋„ ร— ๊ตฌํ˜„ ๋‚œ์ด๋„) ## ๐Ÿ”ด Quick Wins (๋†’์€ ์ค‘์š”๋„ + ์‰ฌ์šด ๊ตฌํ˜„) โ†’ ์ฆ‰์‹œ ์‹คํ–‰ -1. **rb8001 EmailIntegration ๋ฒ„๊ทธ ์ˆ˜์ •** - NaverWorks ํ† ํฐ ์กฐํšŒ ์‹œ ๋ฏธ์ •์˜ ๋ณ€์ˆ˜ `user_uuid` โ†’ `slack_id` ์ˆ˜์ • ํ•„์š” (ํ˜„์žฌ user_uuid ์‚ฌ์šฉ ์ค‘) (10๋ถ„) [โ†’250921](../troubleshooting/250921_email_integration_undefined_variable_bug.md) -2. **UUIDโ†”Slack ID ์กฐํšŒ ์—”๋“œํฌ์ธํŠธ ํ†ต์ผ** - gateway๋Š” ๋‚ด๋ถ€ DB, auth-server๋Š” `/api/slack/mapping/{identifier}` ์‚ฌ์šฉ ์ค‘ (๋ฏธํ†ต์ผ) (2์‹œ๊ฐ„) [โ†’250921](../troubleshooting/250921_uuid_slack_mapping_endpoint_unification.md) -3. **๋„ค์ด๋ฒ„์›์Šค ๋ฉ”์ผโ†’์Šฌ๋ž™ ์ „๋‹ฌ** - ๊ธฐ๋ณธ ์—ฐ๋™(01) โœ…์™„๋ฃŒ, ์ผ์ผ ๋ธŒ๋ฆฌํ•‘(02)ยท์ฝœ๋“œ๋ฉ”์ผ(03) ๋ฏธ๊ตฌํ˜„ (1์ฃผ) [โ†’250919_01_base](../troubleshooting/250919_naverworks_slack_01_base_configuration.md) [โ†’250919_02_daily](../troubleshooting/250919_naverworks_slack_02_daily_briefing.md) [โ†’250919_03_cold](../troubleshooting/250919_naverworks_slack_03_cold_mail_list.md) +1. **๋„ค์ด๋ฒ„์›์Šค ๋ฉ”์ผโ†’์Šฌ๋ž™ ์ „๋‹ฌ** - ๊ธฐ๋ณธ ์—ฐ๋™(01) โœ…์™„๋ฃŒ, ์ผ์ผ ๋ธŒ๋ฆฌํ•‘(02) ๊ตฌํ˜„ ์™„๋ฃŒ, ํ…Œ์ŠคํŠธ ์ค‘ ยท ์ฝœ๋“œ๋ฉ”์ผ(03) ๋ฏธ๊ตฌํ˜„ (1์ฃผ) [โ†’250919_01_base](../troubleshooting/250919_naverworks_slack_01_base_configuration.md) [โ†’250919_02_daily](../troubleshooting/250919_naverworks_slack_02_daily_briefing.md) [โ†’250919_03_cold](../troubleshooting/250919_naverworks_slack_03_cold_mail_list.md) ## ๐ŸŸ  Major Projects (๋†’์€ ์ค‘์š”๋„ + ์–ด๋ ค์šด ๊ตฌํ˜„) โ†’ ๊ณ„ํš ์ˆ˜๋ฆฝ ํ›„ ์ง„ํ–‰ 1. **ํ•˜๋“œ์ฝ”๋”ฉ URL ์ œ๊ฑฐ** - 15๊ฐœ+ ์„œ๋น„์Šค ๊ด‘๋ฒ”์œ„ ๋ฏธํ•ด๊ฒฐ, ํŠนํžˆ rb8001์˜ auth-server URL (3-4์ฃผ) [โ†’250915](../troubleshooting/250915_hardcoded_url_removal.md) @@ -17,7 +15,7 @@ 9. **news ์—”๋“œํฌ์ธํŠธ ๋ฆฌํŒฉํ† ๋ง** - DB ์˜์†ํ™” ์™„๋ฃŒ(250920), ์„œ๋น„์Šค ๋ ˆ์ด์–ด ๋ฆฌํŒฉํ† ๋ง ๋ฏธ์™„ (1์ฃผ) [โ†’250920_db](../troubleshooting/250920_news_db_persistence_implementation.md) ## ๐ŸŸก Fill-ins (๋‚ฎ์€ ์ค‘์š”๋„ + ์‰ฌ์šด ๊ตฌํ˜„) โ†’ ์‹œ๊ฐ„ ๋‚  ๋•Œ -1. **scheduled_tasks ํ…Œ์ด๋ธ”** - ๋ฏธ๊ตฌํ˜„ (๊ด€๋ จ ๋ฌธ์„œ๋Š” ๋ถ€๋ถ„ ๊ตฌํ˜„ ํ‘œ๊ธฐ) (3์‹œ๊ฐ„) [โ†’250827](../troubleshooting/250827_frontend_backend_preferences_API_์—ฐ๋™_์™„๋ฃŒ.md) +1. **scheduled_tasks ํ…Œ์ด๋ธ”** - ๋ฏธ๊ตฌํ˜„ (์Šคํ‚ค๋งˆ๋งŒ ์กด์žฌ) (3์‹œ๊ฐ„) [โ†’250827](../troubleshooting/250827_frontend_backend_preferences_API_์—ฐ๋™_์™„๋ฃŒ.md) 2. **์บ˜๋ฆฐ๋” API** - /api/calendar ๋ฏธ๊ตฌํ˜„ (4์‹œ๊ฐ„) [โ†’250830](../troubleshooting/250830_skill_level_system_restructure.md) 3. **๋ฌธ์„œ API** - /api/docs ๋ฏธ๊ตฌํ˜„ (4์‹œ๊ฐ„) [โ†’250830](../troubleshooting/250830_skill_level_system_restructure.md) 4. **๋ถˆ์šฉ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์ •๋ฆฌ** - ์ „์—ญ ๊ฐ์‚ฌ ๋ฏธ์™„ (2์‹œ๊ฐ„) @@ -38,6 +36,7 @@ *ํ‰๊ฐ€ ๊ธฐ์ค€: ์ค‘์š”๋„(์‹œ์Šคํ…œ ์•ˆ์ •์„ฑ/์‚ฌ์šฉ์ž ์˜ํ–ฅ), ๋‚œ์ด๋„(๊ตฌํ˜„ ์‹œ๊ฐ„/๋ณต์žก๋„)* ## โœ… ์™„๋ฃŒ๋œ ํ•ญ๋ชฉ (์•„์นด์ด๋ธŒ) 1. **์‹œ์Šคํ…œ ๋ฉ”ํŠธ๋ฆญ/Stats ์ผ์›ํ™”** - rb8001 โ†’ robeing-monitor ์œ„์ž„ ์™„๋ฃŒ, /stats ์ •์ƒ ๋™์ž‘ ํ™•์ธ โœ… [โ†’250920_stats](../troubleshooting/250920_stats_api_unification_complete.md) +2. **๋„ค์ด๋ฒ„์›์Šค ์ผ์ผ ๋ธŒ๋ฆฌํ•‘** - ๊ตฌํ˜„ ์™„๋ฃŒ, ํ…Œ์ŠคํŠธ ์ง„ํ–‰ ์ค‘ โœ… --- -*์ตœ์ข… ์—…๋ฐ์ดํŠธ: 2025-09-22* \ No newline at end of file +*์ตœ์ข… ์—…๋ฐ์ดํŠธ: 2025-09-25* diff --git a/plans/250906_news_skill_publish_separation.md b/plans/250906_news_skill_publish_separation.md index c1a5d95..e52f8f8 100644 --- a/plans/250906_news_skill_publish_separation.md +++ b/plans/250906_news_skill_publish_separation.md @@ -49,7 +49,7 @@ ## 4. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (ํ™•์ธ๋จ) **PostgreSQL (51123 ์„œ๋ฒ„)**: - main_db ์‚ฌ์šฉ (๊ตฌ auth_db) -- users, gmail_tokens, robeing_stats ํ…Œ์ด๋ธ” ์กด์žฌ +- users, gmail_token, robeing_stats ํ…Œ์ด๋ธ” ์กด์žฌ - ~~rb_news ํ…Œ์ด๋ธ”~~: DB ์ž‘์—… ํ›„ ๊ตฌํ˜„ ์˜ˆ์ • **ChromaDB (51124 ์„œ๋ฒ„)**: @@ -90,4 +90,4 @@ ## 8. ์ผ์ • (์™„๋ฃŒ ์ƒํƒœ) - **1์ฃผ์ฐจ**: โœ… skill-news ์šด์˜ ์ค‘ (ํฌํŠธ 8505) - **2์ฃผ์ฐจ**: โœ… skill-publish ๊ตฌํ˜„ ์™„๋ฃŒ (ํฌํŠธ 8511) -- **3์ฃผ์ฐจ**: Slack ํ†ตํ•ฉ ๋ฐ rb8001 ์—ฐ๋™ ์˜ˆ์ • \ No newline at end of file +- **3์ฃผ์ฐจ**: Slack ํ†ตํ•ฉ ๋ฐ rb8001 ์—ฐ๋™ ์˜ˆ์ • diff --git a/research/ai_planning/250925_classical_planning_basics.md b/research/ai_planning/250925_classical_planning_basics.md new file mode 100644 index 0000000..28ddac0 --- /dev/null +++ b/research/ai_planning/250925_classical_planning_basics.md @@ -0,0 +1,126 @@ +--- +tags: + - AI + - ClassicalPlanning + - PDDL + - STRIPS + - Heuristics +date: 2025-09-25 +modification_date: 2025-09-25 +--- +# ๊ณ ์ „ ๊ณ„ํš(Classical Planning) ๊ธฐ์ดˆ + +## 1. ๊ฐœ์š” +**๊ณ ์ „ ๊ณ„ํš(Classical Planning)**์€ ์ธ๊ณต์ง€๋Šฅ์˜ ํ•œ ๋ถ„์•ผ๋กœ, **์ดˆ๊ธฐ ์ƒํƒœ(Initial State)**์—์„œ **๋ชฉํ‘œ ์ƒํƒœ(Goal State)**์— ๋„๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ **ํ–‰๋™(Action)์˜ ์ˆœ์„œ, ์ฆ‰ ๊ณ„ํš(Plan)**์„ ์ž๋™์œผ๋กœ ์ฐพ๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค. + +๊ณ ์ „ ๊ณ„ํš์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•ต์‹ฌ์ ์ธ ๊ฐ€์ •์„ ์ „์ œ๋กœ ํ•ฉ๋‹ˆ๋‹ค. + +- **์™„์ „ ๊ด€์ธก(Fully Observable)**: ํ™˜๊ฒฝ์˜ ๋ชจ๋“  ์ƒํƒœ๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +- **๊ฒฐ์ •๋ก ์ (Deterministic)**: ํŠน์ • ํ–‰๋™์˜ ๊ฒฐ๊ณผ๋Š” ํ•ญ์ƒ ๋™์ผํ•˜๋ฉฐ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. +- **์ •์ (Static)**: ์™ธ๋ถ€ ์š”์ธ์— ์˜ํ•ด ์ƒํƒœ๊ฐ€ ์Šค์Šค๋กœ ๋ณ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ค์ง ์—์ด์ „ํŠธ์˜ ํ–‰๋™๋งŒ์ด ์ƒํƒœ๋ฅผ ๋ณ€ํ™”์‹œํ‚ต๋‹ˆ๋‹ค. +- **์ด์‚ฐ์ (Discrete)**: ์‹œ๊ฐ„, ์ƒํƒœ, ํ–‰๋™์ด ๋ชจ๋‘ ์ด์‚ฐ์ ์ธ ๋‹จ์œ„๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. + +## 2. ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ (์ˆ˜ํ•™์  ๋ชจ๋ธ) + +๊ณ ์ „ ๊ณ„ํš ๋ฌธ์ œ๋Š” ์ˆ˜ํ•™์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋ฉ๋‹ˆ๋‹ค. + +- **์ƒํƒœ (State)**: `s`๋กœ ํ‘œํ˜„ํ•˜๋ฉฐ, ์„ธ์ƒ์— ๋Œ€ํ•œ ์ฐธ์ธ ์‚ฌ์‹ค(Fact)๋“ค์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, `on(A, B)`, `clear(A)`์™€ ๊ฐ™์€ ์›์ž ๋ช…์ œ(atomic proposition)์˜ ์ง‘ํ•ฉ์œผ๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค. +- **๋ชฉํ‘œ (Goal)**: `G`๋กœ ํ‘œํ˜„ํ•˜๋ฉฐ, ๋งŒ์กฑ์‹œ์ผœ์•ผ ํ•  ์‚ฌ์‹ค๋“ค์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. ํŠน์ • ์ƒํƒœ `s`๊ฐ€ ๋ชฉํ‘œ `G`์˜ ๋ชจ๋“  ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด `s โŠจ G`๋ผ๊ณ  ํ‘œ๊ธฐํ•ฉ๋‹ˆ๋‹ค. +- **ํ–‰๋™ (Action)**: `a`๋กœ ํ‘œํ˜„ํ•˜๋ฉฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„ธ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. + - **์ „์ œ์กฐ๊ฑด (Preconditions, `pre`)**: ํ–‰๋™์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ˜๋“œ์‹œ ์ฐธ์ด์–ด์•ผ ํ•˜๋Š” ์‚ฌ์‹ค๋“ค์˜ ์ง‘ํ•ฉ. + - **์ถ”๊ฐ€ ํšจ๊ณผ (Add Effects, `add`)**: ํ–‰๋™ ์ˆ˜ํ–‰ ํ›„ ์ƒˆ๋กญ๊ฒŒ ์ฐธ์ด ๋˜๋Š” ์‚ฌ์‹ค๋“ค์˜ ์ง‘ํ•ฉ. + - **์‚ญ์ œ ํšจ๊ณผ (Delete Effects, `del`)**: ํ–‰๋™ ์ˆ˜ํ–‰ ํ›„ ๋” ์ด์ƒ ์ฐธ์ด ์•„๋‹ˆ๊ฒŒ ๋˜๋Š”(๊ฑฐ์ง“์ด ๋˜๋Š”) ์‚ฌ์‹ค๋“ค์˜ ์ง‘ํ•ฉ. +- **์ „์ด ํ•จ์ˆ˜ (Transition Function)**: `ฮณ(s, a)`๋Š” ์ƒํƒœ `s`์—์„œ ํ–‰๋™ `a`๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์„ ๋•Œ์˜ ๊ฒฐ๊ณผ ์ƒํƒœ `s'`๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ํ–‰๋™ `a`๋Š” `pre โІ s`์ผ ๋•Œ๋งŒ ์ ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๊ฒฐ๊ณผ ์ƒํƒœ๋Š” `s' = (s - del) โˆช add`๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค. +- **๊ณ„ํš (Plan)**: `ฯ€ = (aโ‚, aโ‚‚, ..., aโ‚™)`์€ ํ–‰๋™๋“ค์˜ ์ˆœ์ฐจ์ ์ธ ๋‚˜์—ด์ž…๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ์ƒํƒœ `sโ‚€`์—์„œ๋ถ€ํ„ฐ ๊ณ„ํš `ฯ€`๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์ ์šฉํ–ˆ์„ ๋•Œ, ์ตœ์ข… ์ƒํƒœ `sโ‚™`์ด ๋ชฉํ‘œ `G`๋ฅผ ๋งŒ์กฑํ•˜๋ฉด(`sโ‚™ โŠจ G`) ์ด ๊ณ„ํš์€ ์œ ํšจํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. + +## 3. ๋Œ€ํ‘œ์ ์ธ ํ˜•์‹: STRIPS์™€ PDDL + +- **STRIPS (Stanford Research Institute Problem Solver)**: ์œ„์—์„œ ์„ค๋ช…ํ•œ `precondition`, `add`, `delete` ํšจ๊ณผ ๋ชจ๋ธ์„ ์ •๋ฆฝํ•œ ๊ณ ์ „์ ์ธ ๊ณ„ํš ๋ฌธ์ œ ํ˜•์‹์ž…๋‹ˆ๋‹ค. +- **PDDL (Planning Domain Definition Language)**: STRIPS๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ, ์‹ค์ œ ๊ณ„ํš๊ธฐ(Planner)๋“ค์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฌธ๋ฒ•์„ ํ‘œ์ค€ํ™”ํ•œ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. PDDL์€ ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. + - **๋„๋ฉ”์ธ(Domain)**: ๋ฌธ์ œ์˜ ๊ทœ์น™์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ˆ ์–ด(predicates)์™€ ํ–‰๋™(actions)์˜ ์ข…๋ฅ˜๋ฅผ ๊ธฐ์ˆ ํ•ฉ๋‹ˆ๋‹ค. + - **๋ฌธ์ œ(Problem)**: ํŠน์ • ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๊ฐ์ฒด(objects), ์ดˆ๊ธฐ ์ƒํƒœ(init), ๋ชฉํ‘œ ์ƒํƒœ(goal)๋ฅผ ๊ธฐ์ˆ ํ•ฉ๋‹ˆ๋‹ค. + +### PDDL ์˜ˆ์‹œ: ๋ธ”๋ก ์Œ“๊ธฐ (Blocks World) + +#### ๋„๋ฉ”์ธ ํŒŒ์ผ (`domain.pddl`) +```pddl +(define (domain blocks) + (:predicates (on ?x ?y) (ontable ?x) (clear ?x) (holding ?x) (handempty)) + + (:action pick-up + :parameters (?x) + :precondition (and (ontable ?x) (clear ?x) (handempty)) + :effect (and (holding ?x) (not (ontable ?x)) (not (clear ?x)) (not (handempty)))) + + (:action put-down + :parameters (?x) + :precondition (holding ?x) + :effect (and (ontable ?x) (clear ?x) (handempty) (not (holding ?x)))) + + (:action stack + :parameters (?x ?y) + :precondition (and (holding ?x) (clear ?y)) + :effect (and (on ?x ?y) (clear ?x) (handempty) (not (holding ?x)) (not (clear ?y)))) + + (:action unstack + :parameters (?x ?y) + :precondition (and (on ?x ?y) (clear ?x) (handempty)) + :effect (and (holding ?x) (clear ?y) (not (on ?x ?y)) (not (clear ?x)) (not (handempty))))) +``` + +#### ๋ฌธ์ œ ํŒŒ์ผ (`problem.pddl`) +```pddl +(define (problem bw-simple) + (:domain blocks) + (:objects A B) + (:init (ontable A) (ontable B) (clear A) (clear B) (handempty)) + (:goal (and (on A B)))) +``` + +์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์œ ํšจํ•œ ๊ณ„ํš ์ค‘ ํ•˜๋‚˜๋Š” `(pick-up A)`, `(stack A B)` ์ž…๋‹ˆ๋‹ค. + +## 4. ๊ณ„ํš ํƒ์ƒ‰ ๋ฐฉ๋ฒ• + +๊ณ ์ „ ๊ณ„ํš์€ ๊ฒฐ๊ตญ ๊ฑฐ๋Œ€ํ•œ ์ƒํƒœ ๊ณต๊ฐ„์—์„œ ์ดˆ๊ธฐ ์ƒํƒœ๋กœ๋ถ€ํ„ฐ ๋ชฉํ‘œ ์ƒํƒœ๊นŒ์ง€์˜ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” **ํƒ์ƒ‰(Search)** ๋ฌธ์ œ๋กœ ๊ท€๊ฒฐ๋ฉ๋‹ˆ๋‹ค. + +- **์ƒํƒœ ๊ณต๊ฐ„ ํƒ์ƒ‰ (State-Space Search)** + - **์ „์ง„ ํƒ์ƒ‰ (Forward Search)**: ์ดˆ๊ธฐ ์ƒํƒœ์—์„œ ์‹œ์ž‘ํ•˜์—ฌ ๊ฐ€๋Šฅํ•œ ํ–‰๋™๋“ค์„ ์ ์šฉํ•ด๊ฐ€๋ฉฐ ๋ชฉํ‘œ ์ƒํƒœ์— ๋„๋‹ฌํ•˜๋Š”์ง€ ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. + - **ํ›„์ง„ ํƒ์ƒ‰ (Regression/Backward Search)**: ๋ชฉํ‘œ ์ƒํƒœ์—์„œ ์‹œ์ž‘ํ•˜์—ฌ, ๊ทธ ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ํ–‰๋™์„ ์—ญ์œผ๋กœ ์ ์šฉํ•ด๊ฐ€๋ฉฐ ์ดˆ๊ธฐ ์ƒํƒœ์— ๋„๋‹ฌํ•˜๋Š”์ง€ ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. +- **๊ณ„ํš ๊ณต๊ฐ„ ํƒ์ƒ‰ (Plan-Space Search)**: ์ƒํƒœ๊ฐ€ ์•„๋‹Œ ๋ถ€๋ถ„์ ์ธ ๊ณ„ํš์—์„œ ์‹œ์ž‘ํ•˜์—ฌ, ๊ณ„ํš์˜ ๊ฒฐํ•จ(threats, open goals)์„ ํ•ด๊ฒฐํ•ด๋‚˜๊ฐ€๋ฉฐ ์ ์ง„์ ์œผ๋กœ ์™„์ „ํ•œ ๊ณ„ํš์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. + +### ๋Œ€ํ‘œ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ +- **A***: ์ตœ์ ์˜ ๊ณ„ํš(๊ฐ€์žฅ ์งง์€ ๊ธธ์ด ๋˜๋Š” ์ตœ์†Œ ๋น„์šฉ)์„ ์ฐพ๊ธฐ ์œ„ํ•ด ํœด๋ฆฌ์Šคํ‹ฑ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. +- **Greedy Best-First Search**: ์ตœ์ ์„ฑ์„ ๋ณด์žฅํ•˜์ง€๋Š” ์•Š์ง€๋งŒ, ํœด๋ฆฌ์Šคํ‹ฑ ๊ฐ’์—๋งŒ ์˜์กดํ•˜์—ฌ ๋น ๋ฅด๊ฒŒ ๋ชฉํ‘œ์— ๋„๋‹ฌํ•˜๋Š” ๊ฒฝ๋กœ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. +- **Graphplan**: ๊ณ„ํš ๊ทธ๋ž˜ํ”„(Planning Graph)๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ํ–‰๋™ ๊ฐ„์˜ ์ƒํ˜ธ ๋ฐฐ์ œ ๊ด€๊ณ„(mutex)๋ฅผ ํŒŒ์•…ํ•˜๊ณ , ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์œ ํšจํ•œ ๊ณ„ํš์„ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค. +- **SATPlan**: ๊ณ„ํš ๋ฌธ์ œ๋ฅผ ๋ถ€์šธ ๋งŒ์กฑ๋„ ๋ฌธ์ œ(Boolean Satisfiability Problem, SAT)๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๊ฐ•๋ ฅํ•œ SAT ์†”๋ฒ„๋กœ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. + +## 5. ํœด๋ฆฌ์Šคํ‹ฑ (Heuristics) + +์ƒํƒœ ๊ณต๊ฐ„์ด ๊ฑฐ๋Œ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งน๋ชฉ์ ์ธ ํƒ์ƒ‰์€ ๋น„ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ˜„์žฌ ์ƒํƒœ์—์„œ ๋ชฉํ‘œ๊นŒ์ง€ ์–ผ๋งˆ๋‚˜ ๋‚จ์•˜๋Š”์ง€๋ฅผ ์ถ”์ •ํ•˜๋Š” **ํœด๋ฆฌ์Šคํ‹ฑ ํ•จ์ˆ˜ `h(s)`**๊ฐ€ ํƒ์ƒ‰ ์„ฑ๋Šฅ์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. + +- **์‚ญ์ œ ํšจ๊ณผ ๋ฌด์‹œ (Delete Relaxation)**: ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ํœด๋ฆฌ์Šคํ‹ฑ ๊ณ„์‚ฐ ๋ฐฉ์‹์œผ๋กœ, ๋ชจ๋“  ํ–‰๋™์˜ `delete` ํšจ๊ณผ๋ฅผ ๋ฌด์‹œํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฌธ์ œ๋Š” ํ›จ์”ฌ ๋‹จ์ˆœํ•ด์ง€๋ฉฐ, ์ด ์™„ํ™”๋œ ๋ฌธ์ œ(relaxed problem)๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ํ–‰๋™์˜ ์ˆ˜๊ฐ€ ํ˜„์žฌ ์ƒํƒœ์˜ ํœด๋ฆฌ์Šคํ‹ฑ ๊ฐ’์ด ๋ฉ๋‹ˆ๋‹ค. +- **FF ํœด๋ฆฌ์Šคํ‹ฑ (Fast Forward)**: ์‚ญ์ œ ํšจ๊ณผ๋ฅผ ๋ฌด์‹œํ•œ ์™„ํ™”๋œ ๊ณ„ํš์„ ์‹ค์ œ๋กœ ๋น ๋ฅด๊ฒŒ ์ฐพ์•„๋‚ด๊ณ , ๊ทธ ๊ณ„ํš์˜ ๊ธธ์ด๋ฅผ ํœด๋ฆฌ์Šคํ‹ฑ ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋งค์šฐ ๊ฐ•๋ ฅํ•œ ํœด๋ฆฌ์Šคํ‹ฑ์ž…๋‹ˆ๋‹ค. + +## 6. ๊ณ„ํš ๊ฒ€์ฆ: VAL + +๊ณ„ํš๊ธฐ(Planner)๊ฐ€ ์ƒ์„ฑํ•œ ๊ณ„ํš์ด ์ •๋ง๋กœ ์œ ํšจํ•œ์ง€ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฒ€์ฆํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. **VAL (Validator)**์€ PDDL๋กœ ๊ธฐ์ˆ ๋œ ๋„๋ฉ”์ธ๊ณผ ๋ฌธ์ œ์— ๋Œ€ํ•ด, ์ฃผ์–ด์ง„ ๊ณ„ํš์˜ ๊ฐ ๋‹จ๊ณ„๊ฐ€ ์ „์ œ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š”์ง€, ์ƒํƒœ ์ „์ด๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ์ง€, ์ตœ์ข…์ ์œผ๋กœ ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๋Š”์ง€๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ฒ€์‚ฌํ•˜๋Š” ํ‘œ์ค€ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. + +## 7. ๋ณต์žก๋„ (Complexity) + +์ผ๋ฐ˜์ ์ธ STRIPS ํ˜•์‹์˜ ๊ณ„ํš ๋ฌธ์ œ์—์„œ "์œ ํšจํ•œ ๊ณ„ํš์ด ์กด์žฌํ•˜๋Š”๊ฐ€?"๋ฅผ ํŒ์ •ํ•˜๋Š” ๊ฒƒ์€ **PSPACE-์™„์ „(PSPACE-complete)** ๋ฌธ์ œ๋กœ ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ณ„ํš ๋ฌธ์ œ๊ฐ€ ๋งค์šฐ ์–ด๋ ค์šด ๋ฌธ์ œ์ž„์„ ์‹œ์‚ฌํ•˜๋ฉฐ, ํœด๋ฆฌ์Šคํ‹ฑ์˜ ์ค‘์š”์„ฑ์„ ๋’ท๋ฐ›์นจํ•ฉ๋‹ˆ๋‹ค. + +## 8. ๊ณ ์ „ ๊ณ„ํš์˜ ํ•œ๊ณ„์™€ ํ™•์žฅ + +ํ˜„์‹ค ์„ธ๊ณ„์˜ ๋งŽ์€ ๋ฌธ์ œ๋Š” ๊ณ ์ „ ๊ณ„ํš์˜ ๊ฐ€์ •์„ ์œ„๋ฐ˜ํ•˜๋ฉฐ, ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ถ„์•ผ๋กœ ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. + +- **์‹œ๊ฐ„ ๊ณ„ํš (Temporal Planning)**: ํ–‰๋™์— ์ง€์† ์‹œ๊ฐ„(duration)์ด ์žˆ๋Š” ๊ฒฝ์šฐ +- **์ˆ˜์น˜ ๊ณ„ํš (Numeric Planning)**: ์—ฐ์†์ ์ธ ์ˆ˜์น˜ ๋ณ€์ˆ˜๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ +- **ํ™•๋ฅ ์  ๊ณ„ํš (Probabilistic Planning)**: ํ–‰๋™์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋ถˆํ™•์‹คํ•œ ๊ฒฝ์šฐ (MDP, POMDP) +- **๋‹ค์ค‘ ์—์ด์ „ํŠธ ๊ณ„ํš (Multi-Agent Planning)**: ์—ฌ๋Ÿฌ ์—์ด์ „ํŠธ๊ฐ€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๊ฒฝ์šฐ + +## 9. ํ•™์Šต ๋กœ๋“œ๋งต + +1. **STRIPS ๋ชจ๋ธ ์ดํ•ด**: `precondition`, `add`, `delete` ๊ฐœ๋…์„ ๋ช…ํ™•ํžˆ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. +2. **PDDL ์ž‘์„ฑ**: ๊ฐ„๋‹จํ•œ ๋„๋ฉ”์ธ๊ณผ ๋ฌธ์ œ๋ฅผ ์ง์ ‘ ์ž‘์„ฑํ•˜๊ณ , ์˜คํ”ˆ์†Œ์Šค ๊ณ„ํš๊ธฐ๋ฅผ ์‚ฌ์šฉํ•ด ์‹คํ–‰ํ•ด ๋ด…๋‹ˆ๋‹ค. +3. **ํƒ์ƒ‰๊ณผ ํœด๋ฆฌ์Šคํ‹ฑ ์›๋ฆฌ ํ•™์Šต**: ์ „์ง„ ํƒ์ƒ‰๊ณผ FF ํœด๋ฆฌ์Šคํ‹ฑ์ด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์†์œผ๋กœ ๋”ฐ๋ผ๊ฐ€ ๋ด…๋‹ˆ๋‹ค. +4. **VAL ์‚ฌ์šฉ**: ์ƒ์„ฑ๋œ ๊ณ„ํš์„ VAL๋กœ ๊ฒ€์ฆํ•˜๋ฉฐ ๊ฐœ๋… ์ดํ•ด๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. diff --git a/research/250920_happybell80_๋ฒ ์ด์ฆˆ_๊ด€๋ จ_ํ•ต์‹ฌ_๋…ผ๋ฌธ_10์„ .md b/research/bayesian_theory/250920_happybell80_๋ฒ ์ด์ฆˆ_๊ด€๋ จ_ํ•ต์‹ฌ_๋…ผ๋ฌธ_10์„ .md similarity index 100% rename from research/250920_happybell80_๋ฒ ์ด์ฆˆ_๊ด€๋ จ_ํ•ต์‹ฌ_๋…ผ๋ฌธ_10์„ .md rename to research/bayesian_theory/250920_happybell80_๋ฒ ์ด์ฆˆ_๊ด€๋ จ_ํ•ต์‹ฌ_๋…ผ๋ฌธ_10์„ .md diff --git a/research/250920_happybell80_๋ฒ ์ด์ฆˆ_ํ•™๋ฌธ_์—ญ์‚ฌ.md b/research/bayesian_theory/250920_happybell80_๋ฒ ์ด์ฆˆ_ํ•™๋ฌธ_์—ญ์‚ฌ.md similarity index 100% rename from research/250920_happybell80_๋ฒ ์ด์ฆˆ_ํ•™๋ฌธ_์—ญ์‚ฌ.md rename to research/bayesian_theory/250920_happybell80_๋ฒ ์ด์ฆˆ_ํ•™๋ฌธ_์—ญ์‚ฌ.md diff --git a/research/250920_happybell80_๋ฒ ์ด์ง€์•ˆ_๋…ผ์˜_์ข…ํ•ฉ.md b/research/bayesian_theory/250920_happybell80_๋ฒ ์ด์ง€์•ˆ_๋…ผ์˜_์ข…ํ•ฉ.md similarity index 100% rename from research/250920_happybell80_๋ฒ ์ด์ง€์•ˆ_๋…ผ์˜_์ข…ํ•ฉ.md rename to research/bayesian_theory/250920_happybell80_๋ฒ ์ด์ง€์•ˆ_๋…ผ์˜_์ข…ํ•ฉ.md diff --git a/research/mcp_a2a/a2a_papers.md b/research/mcp_a2a/a2a_papers.md index e1f778e..cc5679a 100644 --- a/research/mcp_a2a/a2a_papers.md +++ b/research/mcp_a2a/a2a_papers.md @@ -1,32 +1,15 @@ -# A2A(Agent-to-Agent) ๊ด€๋ จ ๋…ผ๋ฌธ 5ํŽธ ์š”์•ฝ +# A2A(Agent-to-Agent) ๊ด€๋ จ ํ•ต์‹ฌ ๋…ผ๋ฌธ -1) Building a Secure Agentic AI Application Leveraging A2A -- ํ•ต์‹ฌ ๊ธฐ์—ฌ: Google A2A ๊ตฌ์„ฑ์š”์†Œ์™€ ๋ณด์•ˆ ์šฐ์„  ์„ค๊ณ„ ์›์น™ ์ •๋ฆฌ -- ๋กœ๋น™ ์ ์šฉ: ์›Œํฌ์ŠคํŽ˜์ด์Šค ๊ฐ„ ์—์ด์ „ํŠธ ํ˜‘์—… ์‹œ ๊ถŒํ•œ ์œ„์ž„ยท์‹ ๋ขฐ ๊ฒฝ๊ณ„ยท๊ฐ์‚ฌ ๋กœ๊ทธ ํ‘œ์ค€ํ™” -- ์ถœ์ฒ˜: https://arxiv.org/abs/2504.16902 +์ด ํด๋”์—๋Š” A2A(Agent-to-Agent) ํ†ต์‹  ๋ฐ ํ˜‘์—…๊ณผ ๊ด€๋ จ๋œ ํ•ต์‹ฌ ๋…ผ๋ฌธ๋“ค์ด ์ •๋ฆฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -2) Towards Multi-Agent Economies: A2A + Ledger IDs + x402 Micropayments -- ํ•ต์‹ฌ ๊ธฐ์—ฌ: ๋ถ„์‚ฐ์›์žฅ ์‹ ์›๊ณผ HTTP 402 ๋งˆ์ดํฌ๋กœํŽ˜์ด๋จผํŠธ๋กœ A2A ๊ฒฝ์ œ ํ™•์žฅ -- ๋กœ๋น™ ์ ์šฉ: ์Šคํ‚ฌ/์—์ด์ „ํŠธ ๋งˆ์ผ“์˜ ๊ณผ๊ธˆยท์ •์‚ฐยท์‹ ๋ขฐ์นด๋“œ ๋ฐœ๊ธ‰ ์„ค๊ณ„ ๊ทผ๊ฑฐ -- ์ถœ์ฒ˜: https://arxiv.org/abs/2507.19550 +## ๋…ผ๋ฌธ ๋ชฉ๋ก -3) CAMEL: Communicative Agents for โ€œMindโ€ Exploration of LLM Society -- ํ•ต์‹ฌ ๊ธฐ์—ฌ: ์—ญํ• ยท๋ชฉํ‘œ ์ •๋ ฌ๋œ ์ƒํ˜ธ์ž‘์šฉ ํ‹€, ์„ฑ๋Šฅ/๋ฐ์ดํ„ฐ ์ƒ์„ฑ ์œ ํ‹ธ๋ฆฌํ‹ฐ ์ž…์ฆ -- ๋กœ๋น™ ์ ์šฉ: ๋ฉ˜ํ† /๊ฒ€ํ† /์‹คํ–‰ ๋“ฑ ์—ญํ•  ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟํ™”(๊ฐ์ • ํ†ค ๊ฐ€์ด๋“œ ํฌํ•จ) -- ์ถœ์ฒ˜: https://arxiv.org/abs/2303.17760 +- [[habler_et_al_2025_building_secure_agentic_ai|Building a Secure Agentic AI Application Leveraging A2A]] +- [[vaziry_et_al_2025_towards_multi_agent_economies|Towards Multi-Agent Economies: A2A + Ledger IDs + x402 Micropayments]] +- [[li_et_al_2023_camel_communicative_agents|CAMEL: Communicative Agents for โ€œMindโ€ Exploration of LLM Society]] +- [[wang_et_al_2024_sotopia_pi_interactive_learning|SOTOPIA-ฯ€: Interactive Learning of Socially Intelligent Agents]] +- [[plaat_et_al_2025_agentic_llms_survey|Agentic LLMs & Multi-Agent Debate/Deliberation (Survey)]] -4) SOTOPIA-ฯ€: Interactive Learning of Socially Intelligent Agents -- ํ•ต์‹ฌ ๊ธฐ์—ฌ: ์‚ฌํšŒ์  ์ƒํ˜ธ์ž‘์šฉ ๊ธฐ๋ฐ˜ ํ•™์Šต์œผ๋กœ ํ˜‘์ƒยทํ˜‘๋ ฅยท๊ทœ๋ฒ” ์ค€์ˆ˜ ํ–ฅ์ƒ -- ๋กœ๋น™ ์ ์šฉ: ๋ฉ˜ํ† โ€“๋ฉ˜ํ‹ฐ ์ฝ”์นญ/ํ•ฉ์˜ยท์ค‘์žฌ ๊ทœ์น™/์œค๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ‰๊ฐ€๋ณด๋“œ๋กœ ํ™œ์šฉ -- ์ถœ์ฒ˜: https://arxiv.org/abs/2403.08715 - -5) Agentic LLMs & Multi-Agent Debate/Deliberation (Survey) -- ํ•ต์‹ฌ ๊ธฐ์—ฌ: ํ˜‘์—…ยทํ† ๋ก  ๊ธฐ๋ฒ•๊ณผ ์‹คํŒจ ๋ชจ๋“œ ์ข…ํ•ฉ(ํ•ฉ์˜ ํŽธํ–ฅยทํ‘œ๋ฅ˜ ๋“ฑ) -- ๋กœ๋น™ ์ ์šฉ: ์‘๋‹ต ์ „ ํ† ๋ก /์‹ฌ์‚ฌ ๋ฃจํ”„ ์‚ฝ์ž…, ์‹คํŒจ ๋ชจ๋“œ ์™„ํ™”๋ฅผ ์œ„ํ•œ ์ •์ฑ… ์‚ฌ์ „ ์„ค๊ณ„ -- ์ถœ์ฒ˜: https://arxiv.org/html/2503.23037v1 - -์šฐ์„  ๊ณผ์ œ(๋กœ๋น™) -- ๋ฉ˜ํ† (rb8001)โ€“๋ฉ˜ํ‹ฐ(rb10508_micro) AutoGen ์Šคํƒ€์ผ ๋ฆฌ๋ทฐ ๋ฃจํ”„โ†’๊ฒฝํ—˜์น˜/๋ ˆ๋ฒจ ์—ฐ๋™ -- ์‘๋‹ต ํ’ˆ์งˆ๋ณด์ฆ: ์†Œํ˜• ๋””๋ฒ ์ดํŠธ 1~2ํ„ดโ†’์œค๋ฆฌ ํ•„ํ„ฐโ†’์ตœ์ข… ์‘๋‹ต ํŒŒ์ดํ”„๋ผ์ธ ์ •์ฐฉ -- A2A ์นด๋“œ(๊ถŒํ•œ/์ •์ฒด์„ฑ) ์Šคํ‚ค๋งˆ ์ดˆ์•ˆ๊ณผ ๊ฒŒ์ดํŠธ์›จ์ด ๊ถŒํ•œ ์œ„์ž„ ํ๋ฆ„ ์„ค๊ณ„ +--- +*๊ธฐ์กด ์š”์•ฝ ๋‚ด์šฉ์€ ๊ฐ ๊ฐœ๋ณ„ ํŒŒ์ผ๋กœ ์ด๋™๋˜์—ˆ์Šต๋‹ˆ๋‹ค.* \ No newline at end of file diff --git a/research/mcp_a2a/ehtesham_et_al_2025_survey_agent_interoperability_protocols.md b/research/mcp_a2a/ehtesham_et_al_2025_survey_agent_interoperability_protocols.md new file mode 100644 index 0000000..538d784 --- /dev/null +++ b/research/mcp_a2a/ehtesham_et_al_2025_survey_agent_interoperability_protocols.md @@ -0,0 +1,8 @@ +# A survey of agent interoperability protocols: MCP, ACP, A2A, ANP + +- **Authors**: Abul Ehtesham, Aditi Singh, Gaurav Kumar Gupta, Saket Kumar +- **Year**: 2025 +- **Summary**: + - **ํ•ต์‹ฌ ๊ธฐ์—ฌ**: ์ƒํ˜ธ์šด์šฉ ํ”„๋กœํ† ์ฝœ ๋น„๊ต(๋””์Šค์ปค๋ฒ„๋ฆฌ/๋ณด์•ˆ/์ƒํ˜ธ์ž‘์šฉ), ๋‹จ๊ณ„์  ๋„์ž… ๋กœ๋“œ๋งต + - **๋กœ๋น™ ์ ์šฉ**: ๋‚ด๋ถ€ ๋„๊ตฌ๋Š” MCP, ๋Œ€ํ™”์‹ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ์€ ACP, ์กฐ์ง ๊ฐ„ ํ˜‘์—…์€ A2A, ์˜คํ”ˆ ๋„คํŠธ์›Œํฌ๋Š” ANP๋กœ ๊ณ„์ธตํ™” +- **Link**: https://arxiv.org/abs/2505.02279 diff --git a/research/mcp_a2a/habler_et_al_2025_building_secure_agentic_ai.md b/research/mcp_a2a/habler_et_al_2025_building_secure_agentic_ai.md new file mode 100644 index 0000000..64f4bdc --- /dev/null +++ b/research/mcp_a2a/habler_et_al_2025_building_secure_agentic_ai.md @@ -0,0 +1,8 @@ +# Building a Secure Agentic AI Application Leveraging A2A + +- **Authors**: Idan Habler, Ken Huang, Vineeth Sai Narajala, Prashant Kulkarni +- **Year**: 2025 +- **Summary**: + - **ํ•ต์‹ฌ ๊ธฐ์—ฌ**: Google A2A ๊ตฌ์„ฑ์š”์†Œ์™€ ๋ณด์•ˆ ์šฐ์„  ์„ค๊ณ„ ์›์น™ ์ •๋ฆฌ + - **๋กœ๋น™ ์ ์šฉ**: ์›Œํฌ์ŠคํŽ˜์ด์Šค ๊ฐ„ ์—์ด์ „ํŠธ ํ˜‘์—… ์‹œ ๊ถŒํ•œ ์œ„์ž„ยท์‹ ๋ขฐ ๊ฒฝ๊ณ„ยท๊ฐ์‚ฌ ๋กœ๊ทธ ํ‘œ์ค€ํ™” +- **Link**: https://arxiv.org/abs/2504.16902 diff --git a/research/mcp_a2a/hasan_et_al_2025_studying_security_maintainability_mcp.md b/research/mcp_a2a/hasan_et_al_2025_studying_security_maintainability_mcp.md new file mode 100644 index 0000000..ea8a2cc --- /dev/null +++ b/research/mcp_a2a/hasan_et_al_2025_studying_security_maintainability_mcp.md @@ -0,0 +1,8 @@ +# Studying the Security and Maintainability of MCP Servers + +- **Authors**: Mohammed Mehedi Hasan, Hao Li, Emad Fallahzadeh, Gopi Krishnan Rajbahadur, Bram Adams, Ahmed E. Hassan +- **Year**: 2025 +- **Summary**: + - **ํ•ต์‹ฌ ๊ธฐ์—ฌ**: ๊ธ‰์„ฑ์žฅ ์ƒํƒœ๊ณ„์˜ ๋ณด์•ˆยท์œ ์ง€๋ณด์ˆ˜ ๋ฆฌ์Šคํฌ, ์ฑ„ํƒ ์ง€ํ‘œ ๋ถ„์„ + - **๋กœ๋น™ ์ ์šฉ**: ์Šคํ‚ฌ ์ˆ˜๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ, ๋ฒ„์ „๊ณ ์ •/ํ—ฌ์Šค์ฒดํฌ/์ทจ์•ฝ์  ๊ด€๋ฆฌ ๊ธฐ์ค€ ์ˆ˜๋ฆฝ +- **Link**: https://arxiv.org/abs/2506.13538 diff --git a/research/mcp_a2a/hou_et_al_2025_mcp_landscape_security_ecosystem.md b/research/mcp_a2a/hou_et_al_2025_mcp_landscape_security_ecosystem.md new file mode 100644 index 0000000..16cc919 --- /dev/null +++ b/research/mcp_a2a/hou_et_al_2025_mcp_landscape_security_ecosystem.md @@ -0,0 +1,8 @@ +# Model Context Protocol(MCP): Landscape, Security, and Ecosystem + +- **Authors**: Xinyi Hou, Yanjie Zhao, Shenao Wang, Haoyu Wang +- **Year**: 2025 +- **Summary**: + - **ํ•ต์‹ฌ ๊ธฐ์—ฌ**: MCP ๋ฐฐ๊ฒฝยท๊ตฌ์„ฑ์š”์†Œ(ํˆด/๋ฆฌ์†Œ์Šค/ํ”„๋กœ์‹œ์ €), ๋ณด์•ˆ ์œ„ํ˜‘ยท์™„ํ™”, ์ƒํƒœ๊ณ„ ๋ถ„์„ + - **๋กœ๋น™ ์ ์šฉ**: ๊ฒŒ์ดํŠธ์›จ์ดโ€“์Šคํ‚ฌ ๊ฐ„ ํ‘œ์ค€ ๊ณ„์•ฝ ์ˆ˜๋ฆฝ(HTTP๋งŒ), ๋ฆฌ์†Œ์Šค ์ŠคํŠธ๋ฆฌ๋ฐ์œผ๋กœ ์„ ํƒ์  ๊ธฐ์–ตยท์—ฐ์†์„ฑ ๊ตฌํ˜„, ์œ„ํ˜‘๋ชจ๋ธ์„ ์šด์˜์ •์ฑ…์œผ๋กœ ๋ฐ˜์˜ +- **Link**: https://arxiv.org/pdf/2503.23278 diff --git a/research/mcp_a2a/li_et_al_2023_camel_communicative_agents.md b/research/mcp_a2a/li_et_al_2023_camel_communicative_agents.md new file mode 100644 index 0000000..e4f46d0 --- /dev/null +++ b/research/mcp_a2a/li_et_al_2023_camel_communicative_agents.md @@ -0,0 +1,8 @@ +# CAMEL: Communicative Agents for โ€œMindโ€ Exploration of LLM Society + +- **Authors**: Guohao Li, Hasan Abed Al Kader Hammoud, Hani Itani, Dmitrii Khizbullin, Bernard Ghanem +- **Year**: 2023 +- **Summary**: + - **ํ•ต์‹ฌ ๊ธฐ์—ฌ**: ์—ญํ• ยท๋ชฉํ‘œ ์ •๋ ฌ๋œ ์ƒํ˜ธ์ž‘์šฉ ํ‹€, ์„ฑ๋Šฅ/๋ฐ์ดํ„ฐ ์ƒ์„ฑ ์œ ํ‹ธ๋ฆฌํ‹ฐ ์ž…์ฆ + - **๋กœ๋น™ ์ ์šฉ**: ๋ฉ˜ํ† /๊ฒ€ํ† /์‹คํ–‰ ๋“ฑ ์—ญํ•  ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟํ™”(๊ฐ์ • ํ†ค ๊ฐ€์ด๋“œ ํฌํ•จ) +- **Link**: https://arxiv.org/abs/2303.17760 diff --git a/research/mcp_a2a/mcp_2025_official_specification.md b/research/mcp_a2a/mcp_2025_official_specification.md new file mode 100644 index 0000000..4fcb2b4 --- /dev/null +++ b/research/mcp_a2a/mcp_2025_official_specification.md @@ -0,0 +1,8 @@ +# MCP ๊ณต์‹ ์ŠคํŽ™(์ตœ์‹  ๊ฐœ์ •) + +- **Authors**: Model Context Protocol +- **Year**: 2025 +- **Summary**: + - **ํ•ต์‹ฌ ๊ธฐ์—ฌ**: ํƒ€์ž…ยท์š”๊ตฌ์‚ฌํ•ญ ์ •์˜, ํ˜ธํ™˜์„ฑ ๊ธฐ์ค€์„  ์ œ๊ณต + - **๋กœ๋น™ ์ ์šฉ**: ๊ฒŒ์ดํŠธ์›จ์ดโ€“์Šคํ‚ฌ ๊ณ„์•ฝ ์ผ๊ด€ํ™”, ํ˜ธํ™˜์„ฑ ํ…Œ์ŠคํŠธ์˜ ๊ธฐ์ค€ ๋ฌธ์„œ๋กœ ์‚ฌ์šฉ +- **Link**: https://modelcontextprotocol.io/specification/2025-06-18 diff --git a/research/mcp_a2a/mcp_papers.md b/research/mcp_a2a/mcp_papers.md index 14ff804..443bdbf 100644 --- a/research/mcp_a2a/mcp_papers.md +++ b/research/mcp_a2a/mcp_papers.md @@ -1,32 +1,15 @@ -# MCP(Model Context Protocol) ๊ด€๋ จ ๋…ผ๋ฌธ 5ํŽธ ์š”์•ฝ +# MCP(Model Context Protocol) ๊ด€๋ จ ํ•ต์‹ฌ ๋ฌธ์„œ -1) Model Context Protocol(MCP): Landscape, Security, and Ecosystem -- ํ•ต์‹ฌ ๊ธฐ์—ฌ: MCP ๋ฐฐ๊ฒฝยท๊ตฌ์„ฑ์š”์†Œ(ํˆด/๋ฆฌ์†Œ์Šค/ํ”„๋กœ์‹œ์ €), ๋ณด์•ˆ ์œ„ํ˜‘ยท์™„ํ™”, ์ƒํƒœ๊ณ„ ๋ถ„์„ -- ๋กœ๋น™ ์ ์šฉ: ๊ฒŒ์ดํŠธ์›จ์ดโ€“์Šคํ‚ฌ ๊ฐ„ ํ‘œ์ค€ ๊ณ„์•ฝ ์ˆ˜๋ฆฝ(HTTP๋งŒ), ๋ฆฌ์†Œ์Šค ์ŠคํŠธ๋ฆฌ๋ฐ์œผ๋กœ ์„ ํƒ์  ๊ธฐ์–ตยท์—ฐ์†์„ฑ ๊ตฌํ˜„, ์œ„ํ˜‘๋ชจ๋ธ์„ ์šด์˜์ •์ฑ…์œผ๋กœ ๋ฐ˜์˜ -- ์ถœ์ฒ˜: https://arxiv.org/pdf/2503.23278 +์ด ํด๋”์—๋Š” MCP(Model Context Protocol)์™€ ๊ด€๋ จ๋œ ํ•ต์‹ฌ ๋…ผ๋ฌธ ๋ฐ ๊ณต์‹ ์ŠคํŽ™ ๋ฌธ์„œ๊ฐ€ ์ •๋ฆฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -2) MCP Safety Audit: LLMs with the Model Context Protocol -- ํ•ต์‹ฌ ๊ธฐ์—ฌ: MCP ์„œ๋ฒ„ ์ž๋™ ๋ณด์•ˆ ์ ๊ฒ€(ํ”„๋กฌํ”„ํŠธ ์ธ์ ์…˜/๊ถŒํ•œ ์˜ค๋‚จ์šฉ) ์ ˆ์ฐจ -- ๋กœ๋น™ ์ ์šฉ: ์‹ ๊ทœ ์Šคํ‚ฌ ์˜จ๋ณด๋”ฉ ์ „ CI ํŒŒ์ดํ”„๋ผ์ธ์— ๋ณด์•ˆ ์Šค์บ๋„ˆ ์‚ฝ์ž…(์œค๋ฆฌยท๊ถŒํ•œยท๊ฐ์‚ฌ ๊ฐ•ํ™”) -- ์ถœ์ฒ˜: https://arxiv.org/abs/2504.03767 +## ๋ฌธ์„œ ๋ชฉ๋ก -3) Studying the Security and Maintainability of MCP Servers -- ํ•ต์‹ฌ ๊ธฐ์—ฌ: ๊ธ‰์„ฑ์žฅ ์ƒํƒœ๊ณ„์˜ ๋ณด์•ˆยท์œ ์ง€๋ณด์ˆ˜ ๋ฆฌ์Šคํฌ, ์ฑ„ํƒ ์ง€ํ‘œ ๋ถ„์„ -- ๋กœ๋น™ ์ ์šฉ: ์Šคํ‚ฌ ์ˆ˜๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ, ๋ฒ„์ „๊ณ ์ •/ํ—ฌ์Šค์ฒดํฌ/์ทจ์•ฝ์  ๊ด€๋ฆฌ ๊ธฐ์ค€ ์ˆ˜๋ฆฝ -- ์ถœ์ฒ˜: https://arxiv.org/abs/2506.13538 +- [[hou_et_al_2025_mcp_landscape_security_ecosystem|Model Context Protocol(MCP): Landscape, Security, and Ecosystem]] +- [[radosevich_halloran_2025_mcp_safety_audit|MCP Safety Audit: LLMs with the Model Context Protocol]] +- [[hasan_et_al_2025_studying_security_maintainability_mcp|Studying the Security and Maintainability of MCP Servers]] +- [[ehtesham_et_al_2025_survey_agent_interoperability_protocols|A survey of agent interoperability protocols: MCP, ACP, A2A, ANP]] +- [[mcp_2025_official_specification|MCP ๊ณต์‹ ์ŠคํŽ™(์ตœ์‹  ๊ฐœ์ •)]] -4) A survey of agent interoperability protocols: MCP, ACP, A2A, ANP -- ํ•ต์‹ฌ ๊ธฐ์—ฌ: ์ƒํ˜ธ์šด์šฉ ํ”„๋กœํ† ์ฝœ ๋น„๊ต(๋””์Šค์ปค๋ฒ„๋ฆฌ/๋ณด์•ˆ/์ƒํ˜ธ์ž‘์šฉ), ๋‹จ๊ณ„์  ๋„์ž… ๋กœ๋“œ๋งต -- ๋กœ๋น™ ์ ์šฉ: ๋‚ด๋ถ€ ๋„๊ตฌ๋Š” MCP, ๋Œ€ํ™”์‹ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ์€ ACP, ์กฐ์ง ๊ฐ„ ํ˜‘์—…์€ A2A, ์˜คํ”ˆ ๋„คํŠธ์›Œํฌ๋Š” ANP๋กœ ๊ณ„์ธตํ™” -- ์ถœ์ฒ˜: https://arxiv.org/abs/2505.02279 - -5) MCP ๊ณต์‹ ์ŠคํŽ™(์ตœ์‹  ๊ฐœ์ •) -- ํ•ต์‹ฌ ๊ธฐ์—ฌ: ํƒ€์ž…ยท์š”๊ตฌ์‚ฌํ•ญ ์ •์˜, ํ˜ธํ™˜์„ฑ ๊ธฐ์ค€์„  ์ œ๊ณต -- ๋กœ๋น™ ์ ์šฉ: ๊ฒŒ์ดํŠธ์›จ์ดโ€“์Šคํ‚ฌ ๊ณ„์•ฝ ์ผ๊ด€ํ™”, ํ˜ธํ™˜์„ฑ ํ…Œ์ŠคํŠธ์˜ ๊ธฐ์ค€ ๋ฌธ์„œ๋กœ ์‚ฌ์šฉ -- ์ถœ์ฒ˜: https://modelcontextprotocol.io/specification/2025-06-18 - -์šฐ์„  ๊ณผ์ œ(๋กœ๋น™) -- MCP ์Šคํ‚ฌ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ(์ด๋ฆ„/์—”๋“œํฌ์ธํŠธ/์Šคํ‚ค๋งˆ/๊ถŒํ•œ) ๋‹จ์ผํ™” ๋ฐ ๊ฒŒ์ดํŠธ์›จ์ด ์—ฐ๋™ -- CI์— โ€œMCP ๋ณด์•ˆ ์Šค์บ๋„ˆโ€ Job ์ถ”๊ฐ€(์˜จ๋ณด๋”ฉ ์ „ ์ž๋™ ์ ๊ฒ€) -- `/healthz`ยท๋ฒ„์ „ยท๊ถŒํ•œยท๋กœ๊ทธ ํ‘œ์ค€ ์Šคํ‚ค๋งˆ ๋ฌธ์„œํ™” ๋ฐ ๊ฒ€์ฆ +--- +*๊ธฐ์กด ์š”์•ฝ ๋‚ด์šฉ์€ ๊ฐ ๊ฐœ๋ณ„ ํŒŒ์ผ๋กœ ์ด๋™๋˜์—ˆ์Šต๋‹ˆ๋‹ค.* \ No newline at end of file diff --git a/research/mcp_a2a/plaat_et_al_2025_agentic_llms_survey.md b/research/mcp_a2a/plaat_et_al_2025_agentic_llms_survey.md new file mode 100644 index 0000000..3866c75 --- /dev/null +++ b/research/mcp_a2a/plaat_et_al_2025_agentic_llms_survey.md @@ -0,0 +1,8 @@ +# Agentic LLMs & Multi-Agent Debate/Deliberation (Survey) + +- **Authors**: Aske Plaat, Max van Duijn, Niki van Stein, Mike Preuss, Peter van der Putten, Kees Joost Batenburg +- **Year**: 2025 +- **Summary**: + - **ํ•ต์‹ฌ ๊ธฐ์—ฌ**: ํ˜‘์—…ยทํ† ๋ก  ๊ธฐ๋ฒ•๊ณผ ์‹คํŒจ ๋ชจ๋“œ ์ข…ํ•ฉ(ํ•ฉ์˜ ํŽธํ–ฅยทํ‘œ๋ฅ˜ ๋“ฑ) + - **๋กœ๋น™ ์ ์šฉ**: ์‘๋‹ต ์ „ ํ† ๋ก /์‹ฌ์‚ฌ ๋ฃจํ”„ ์‚ฝ์ž…, ์‹คํŒจ ๋ชจ๋“œ ์™„ํ™”๋ฅผ ์œ„ํ•œ ์ •์ฑ… ์‚ฌ์ „ ์„ค๊ณ„ +- **Link**: https://arxiv.org/html/2503.23037v1 diff --git a/research/mcp_a2a/radosevich_halloran_2025_mcp_safety_audit.md b/research/mcp_a2a/radosevich_halloran_2025_mcp_safety_audit.md new file mode 100644 index 0000000..8f056c3 --- /dev/null +++ b/research/mcp_a2a/radosevich_halloran_2025_mcp_safety_audit.md @@ -0,0 +1,8 @@ +# MCP Safety Audit: LLMs with the Model Context Protocol + +- **Authors**: Brandon Radosevich, John Halloran +- **Year**: 2025 +- **Summary**: + - **ํ•ต์‹ฌ ๊ธฐ์—ฌ**: MCP ์„œ๋ฒ„ ์ž๋™ ๋ณด์•ˆ ์ ๊ฒ€(ํ”„๋กฌํ”„ํŠธ ์ธ์ ์…˜/๊ถŒํ•œ ์˜ค๋‚จ์šฉ) ์ ˆ์ฐจ + - **๋กœ๋น™ ์ ์šฉ**: ์‹ ๊ทœ ์Šคํ‚ฌ ์˜จ๋ณด๋”ฉ ์ „ CI ํŒŒ์ดํ”„๋ผ์ธ์— ๋ณด์•ˆ ์Šค์บ๋„ˆ ์‚ฝ์ž…(์œค๋ฆฌยท๊ถŒํ•œยท๊ฐ์‚ฌ ๊ฐ•ํ™”) +- **Link**: https://arxiv.org/abs/2504.03767 diff --git a/research/mcp_a2a/vaziry_et_al_2025_towards_multi_agent_economies.md b/research/mcp_a2a/vaziry_et_al_2025_towards_multi_agent_economies.md new file mode 100644 index 0000000..734516d --- /dev/null +++ b/research/mcp_a2a/vaziry_et_al_2025_towards_multi_agent_economies.md @@ -0,0 +1,8 @@ +# Towards Multi-Agent Economies: A2A + Ledger IDs + x402 Micropayments + +- **Authors**: Awid Vaziry, Sandro Rodriguez Garzon, Axel Kรผpper +- **Year**: 2025 +- **Summary**: + - **ํ•ต์‹ฌ ๊ธฐ์—ฌ**: ๋ถ„์‚ฐ์›์žฅ ์‹ ์›๊ณผ HTTP 402 ๋งˆ์ดํฌ๋กœํŽ˜์ด๋จผํŠธ๋กœ A2A ๊ฒฝ์ œ ํ™•์žฅ + - **๋กœ๋น™ ์ ์šฉ**: ์Šคํ‚ฌ/์—์ด์ „ํŠธ ๋งˆ์ผ“์˜ ๊ณผ๊ธˆยท์ •์‚ฐยท์‹ ๋ขฐ์นด๋“œ ๋ฐœ๊ธ‰ ์„ค๊ณ„ ๊ทผ๊ฑฐ +- **Link**: https://arxiv.org/abs/2507.19550 diff --git a/research/mcp_a2a/wang_et_al_2024_sotopia_pi_interactive_learning.md b/research/mcp_a2a/wang_et_al_2024_sotopia_pi_interactive_learning.md new file mode 100644 index 0000000..93c4ad6 --- /dev/null +++ b/research/mcp_a2a/wang_et_al_2024_sotopia_pi_interactive_learning.md @@ -0,0 +1,8 @@ +# SOTOPIA-ฯ€: Interactive Learning of Socially Intelligent Agents + +- **Authors**: Ruiyi Wang, Haofei Yu, Wenxin Zhang, Zhengyang Qi, Maarten Sap, Graham Neubig, Yonatan Bisk, Hao Zhu +- **Year**: 2024 +- **Summary**: + - **ํ•ต์‹ฌ ๊ธฐ์—ฌ**: ์‚ฌํšŒ์  ์ƒํ˜ธ์ž‘์šฉ ๊ธฐ๋ฐ˜ ํ•™์Šต์œผ๋กœ ํ˜‘์ƒยทํ˜‘๋ ฅยท๊ทœ๋ฒ” ์ค€์ˆ˜ ํ–ฅ์ƒ + - **๋กœ๋น™ ์ ์šฉ**: ๋ฉ˜ํ† โ€“๋ฉ˜ํ‹ฐ ์ฝ”์นญ/ํ•ฉ์˜ยท์ค‘์žฌ ๊ทœ์น™/์œค๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ‰๊ฐ€๋ณด๋“œ๋กœ ํ™œ์šฉ +- **Link**: https://arxiv.org/abs/2403.08715 diff --git a/research/ocr/250909_ocr_core_papers.md b/research/ocr/250909_ocr_core_papers.md index 5f77d93..9678c6a 100644 --- a/research/ocr/250909_ocr_core_papers.md +++ b/research/ocr/250909_ocr_core_papers.md @@ -4,49 +4,20 @@ - ๋ฒ”์œ„: ๋ฌธ์„œ OCR, ์žฅ๋ฉด ํ…์ŠคํŠธ ์ธ์‹(STR), ํ…์ŠคํŠธ ์ŠคํฌํŒ…, OCR-free ๋ฌธ์„œ ์ดํ•ด - ๋ชฉ์ : ๋กœ๋น™(RO-BEING) ํ”„๋กœ์ ํŠธ์˜ ํŒŒ์ผ ์ดํ•ด/๋ฌธ์„œ ์ฒ˜๋ฆฌ ์Šคํ‚ฌ ๊ณ ๋„ํ™”๋ฅผ ์œ„ํ•œ ๋ ˆํผ๋Ÿฐ์Šค -## ํ•ต์‹ฌ ๋ชฉ๋ก (10ํŽธ) +## ํ•ต์‹ฌ ๋ชฉ๋ก -1) TrOCR: Transformer-based Optical Character Recognition (AAAI 2023, ์› ๋…ผ๋ฌธ 2021 ๊ณต๊ฐœ) -- ์š”์ง€: Transformer ์ธ์ฝ”๋”-๋””์ฝ”๋”์™€ ๋Œ€๊ทœ๋ชจ ์‚ฌ์ „ํ•™์Šต์„ ๊ฒฐํ•ฉํ•œ ๋ฒ”์šฉ OCR/STR ๋ฒ ์ด์Šค๋ผ์ธ. ๋ฌธ์„œยท์žฅ๋ฉด ๋ชจ๋‘์—์„œ ๊ฐ•๋ ฅํ•œ ์„ฑ๋Šฅ๊ณผ ์ „์ด์„ฑ ์ œ๊ณต. -- ์ฐธ๊ณ : arXiv https://arxiv.org/abs/2109.10282, AAAI https://ojs.aaai.org/index.php/AAAI/article/view/26538/26310 - -2) Donut: OCR-Free Document Understanding Transformer (ECCV 2022) -- ์š”์ง€: ๋ณ„๋„ OCR ์—”์ง„ ์—†์ด ์ด๋ฏธ์ง€์—์„œ ๋ฐ”๋กœ ๊ตฌ์กฐํ™” ์‹œํ€€์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” โ€œOCR-freeโ€ ์ ‘๊ทผ. ๋ฌธ์„œ ๋ถ„๋ฅ˜/ํŒŒ์‹ฑ/IE ํŒŒ์ดํ”„๋ผ์ธ ๋‹จ์ˆœํ™”์— ๊ธฐ์—ฌ. -- ์ฐธ๊ณ : arXiv https://arxiv.org/abs/2111.15664, ECCV PDF https://www.ecva.net/papers/eccv_2022/papers_ECCV/papers/136880493.pdf, GitHub https://github.com/clovaai/donut - -3) PARSeq: Scene Text Recognition with Permuted Autoregressive Sequence Models (ECCV 2022) -- ์š”์ง€: ์ˆœ์—ด ๊ธฐ๋ฐ˜ ์žํšŒ๊ท€ ํ•™์Šต์œผ๋กœ ๊ฐ•์ธ์„ฑ๊ณผ ํšจ์œจ์„ ๋™์‹œ์— ๊ฐœ์„ ํ•œ STR. ๋‹ค์–‘ํ•œ ๊ตฌํ˜„๊ณผ ๋ฒค์น˜๋งˆํฌ์—์„œ ์‹ค์šฉ์  ์„ ํƒ์ง€๋กœ ํ™•์‚ฐ. -- ์ฐธ๊ณ : arXiv https://arxiv.org/abs/2207.06966, ECCV PDF https://www.ecva.net/papers/eccv_2022/papers_ECCV/papers/136880177.pdf - -4) ABINet / ABINet++ (CVPR 2021, TPAMI 2023) -- ์š”์ง€: ์‹œ๊ฐ ๋ชจ๋“ˆ๊ณผ ์–ธ์–ด ๋ชจ๋“ˆ์„ ๋ถ„๋ฆฌยท๊ฒฐํ•ฉํ•ด ๋ฐ˜๋ณต์  ์ •์ •์„ ์ˆ˜ํ–‰. ๋ณต์žกํ•œ ์žฅ๋ฉด ํ…์ŠคํŠธ์—์„œ ๋†’์€ ์ •ํ™•๋„. TPAMI ํ™•์žฅํŒ(ABINet++). -- ์ฐธ๊ณ : arXiv https://arxiv.org/abs/2103.06495, TPAMI https://doi.org/10.1109/TPAMI.2022.3223908 - -5) SVTR: Scene Text Recognition with a Single Visual Model (IJCAI 2022) -- ์š”์ง€: ์ˆœ์ฐจ ๋””์ฝ”๋” ์—†์ด ๋น„์ „ ํŠธ๋žœ์Šคํฌ๋จธ๋งŒ์œผ๋กœ STR์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฝ๋Ÿ‰ยท๊ณ ์† ๊ตฌ์กฐ. ์‚ฐ์—… ๋ฐฐํฌ ์นœํ™”์ . -- ์ฐธ๊ณ : arXiv https://arxiv.org/abs/2205.00159, IJCAI PDF https://www.ijcai.org/proceedings/2022/0124.pdf - -6) MASTER: Multi-Aspect Non-local Network for Scene Text Recognition (Pattern Recognition 2021) -- ์š”์ง€: ๊ธ€๋กœ๋ฒŒ ์ปจํ…์ŠคํŠธ ํ†ตํ•ฉ์„ ๊ฐ•ํ™”ํ•œ ์…€ํ”„-์–ดํ…์…˜ ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ. ๋ถˆ๊ทœ์น™ ํ…์ŠคํŠธ์—์„œ ๊ฒฌ๊ณ ํ•œ ์„ฑ๋Šฅ์œผ๋กœ ์—ฌ์ „ํžˆ ๋„๋ฆฌ ์ธ์šฉ. -- ์ฐธ๊ณ : arXiv https://arxiv.org/abs/1910.02562, Journal https://www.sciencedirect.com/science/article/pii/S0031320321001679 - -7) VisionLAN: From Two to One โ€” Visual Language Modeling Network (ICCV 2021) -- ์š”์ง€: ์‹œ๊ฐยท์–ธ์–ด ์ •๋ณด๋ฅผ ๋‹จ์ผ ๊ตฌ์กฐ๋กœ ํ†ตํ•ฉํ•ด ์™ธ๋ถ€ LM ์˜์กด๋„๋ฅผ ๋‚ฎ์ถ”๋ฉด์„œ ์ •ํ™•๋„ ์œ ์ง€/๊ฐœ์„ . -- ์ฐธ๊ณ : CVF https://openaccess.thecvf.com/content/ICCV2021/papers/Wang_From_Two_to_One_A_New_Scene_Text_Recognizer_With_ICCV_2021_paper.pdf, arXiv https://arxiv.org/abs/2108.09661 - -8) E2STR: Ego-Evolving Scene Text Recognizer with In-Context Learning (2023, 2024 ์—…๋ฐ์ดํŠธ) -- ์š”์ง€: ์ธ-์ปจํ…์ŠคํŠธ ํ•™์Šต ๊ฐœ๋…์„ STR ๋„๋ฉ”์ธ ์ ์‘์— ์ ์šฉ. ์‹ค์ œ ๋ฐฐํฌ ํ™˜๊ฒฝ์˜ ๋„๋ฉ”์ธ ํŽธ์ฐจ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ณด์ •. -- ์ฐธ๊ณ : arXiv https://arxiv.org/abs/2311.13120 - -9) Bridging Text Spotting: Bridging the Gap Between End-to-End and Two-Step Text Spotting (CVPR 2024) -- ์š”์ง€: ๊ฒ€์ถœ-์ธ์‹ ๊ฒฐํ•ฉ(ํ…์ŠคํŠธ ์ŠคํฌํŒ…)์—์„œ ๋ชจ๋“ˆ์„ฑ ์œ ์ง€์™€ ์˜ค๋ฅ˜ ์ „ํŒŒ ์–ต์ œ๋ฅผ ํ•จ๊ป˜ ๋‹ฌ์„ฑํ•˜๋ ค๋Š” ์ตœ์‹  ์ ‘๊ทผ. -- ์ฐธ๊ณ : CVF https://openaccess.thecvf.com/content/CVPR2024/papers/Huang_Bridging_the_Gap_Between_End-to-End_and_Two-Step_Text_Spotting_CVPR_2024_paper.pdf - -10) ์„œ๋ฒ ์ด 2ํŽธ (๊ฐœ์š” ํŒŒ์•…์šฉ) -- a) A Survey of Text Detection and Recognition Algorithms (Neurocomputing 2023) - - ์ฐธ๊ณ : https://doi.org/10.1016/j.neucom.2023.126702 -- b) Scene Text Detection and Recognition: A Survey (Multimedia Tools and Applications 2022) - - ์ฐธ๊ณ : https://doi.org/10.1007/s11042-022-12693-7 +- [[li_et_al_2021_trocr_transformer_ocr|TrOCR: Transformer-based Optical Character Recognition]] +- [[kim_et_al_2021_donut_ocr_free_transformer|Donut: OCR-Free Document Understanding Transformer]] +- [[bautista_atienza_2022_parseq_scene_text_recognition|PARSeq: Scene Text Recognition with Permuted Autoregressive Sequence Models]] +- [[fang_et_al_2021_abinet_iterative_correction|ABINet / ABINet++]] +- [[du_et_al_2022_svtr_single_visual_model|SVTR: Scene Text Recognition with a Single Visual Model]] +- [[lu_et_al_2019_master_multi_aspect_network|MASTER: Multi-Aspect Non-local Network for Scene Text Recognition]] +- [[wang_et_al_2021_visionlan_visual_language_modeling|VisionLAN: From Two to One โ€” Visual Language Modeling Network]] +- [[zhao_et_al_2023_e2str_ego_evolving_recognizer|E2STR: Ego-Evolving Scene Text Recognizer with In-Context Learning]] +- [[huang_et_al_2024_bridging_text_spotting|Bridging Text Spotting: Bridging the Gap Between End-to-End and Two-Step Text Spotting]] +- **์„œ๋ฒ ์ด ๋…ผ๋ฌธ** + - [[wang_et_al_2023_survey_text_detection_recognition|A Survey of Text Detection and Recognition Algorithms]] + - [[naiemi_et_al_2022_survey_scene_text_detection_recognition|Scene Text Detection and Recognition: A Survey]] ## ๋™ํ–ฅ ์š”์•ฝ - ํŠธ๋žœ์Šคํฌ๋จธ ๊ธฐ๋ฐ˜ STR ์ฃผ๋ฅ˜ํ™”: TrOCRยทSVTRยทPARSeq ๋“ฑ์œผ๋กœ ์ •ํ™•๋„ยท์†๋„ ๊ท ํ˜• ์ตœ์ ํ™”. @@ -65,5 +36,4 @@ - ICDAR ๋Œ€ํšŒ ์•ˆ๋‚ด(์ฐธ๊ณ ): https://research.google/blog/announcing-the-icdar-2023-competition-on-hierarchical-text-detection-and-recognition/ --- -๋ฉ”๋ชจ: ์ธ์šฉ ์ˆ˜ ๋“ฑ ์ˆ˜์น˜๋Š” ์‹œ์ ยท์ง‘๊ณ„์— ๋”ฐ๋ผ ๋ณ€๋™ ๊ฐ€๋Šฅ. ์šด์˜ ๋ฐ˜์˜ ์ „ PoC๋กœ ์ •ํ™•๋„/์ง€์—ฐ/๋ฆฌ์†Œ์Šค ์ง€ํ‘œ๋ฅผ ํ˜„ํ–‰ ๋ฐ์ดํ„ฐ์…‹์— ์žฌ๊ฒ€์ฆํ•  ๊ฒƒ. - +๋ฉ”๋ชจ: ์ธ์šฉ ์ˆ˜ ๋“ฑ ์ˆ˜์น˜๋Š” ์‹œ์ ยท์ง‘๊ณ„์— ๋”ฐ๋ผ ๋ณ€๋™ ๊ฐ€๋Šฅ. ์šด์˜ ๋ฐ˜์˜ ์ „ PoC๋กœ ์ •ํ™•๋„/์ง€์—ฐ/๋ฆฌ์†Œ์Šค ์ง€ํ‘œ๋ฅผ ํ˜„ํ–‰ ๋ฐ์ดํ„ฐ์…‹์— ์žฌ๊ฒ€์ฆํ•  ๊ฒƒ. \ No newline at end of file diff --git a/research/ocr/bautista_atienza_2022_parseq_scene_text_recognition.md b/research/ocr/bautista_atienza_2022_parseq_scene_text_recognition.md new file mode 100644 index 0000000..04376af --- /dev/null +++ b/research/ocr/bautista_atienza_2022_parseq_scene_text_recognition.md @@ -0,0 +1,8 @@ +# PARSeq: Scene Text Recognition with Permuted Autoregressive Sequence Models + +- **Authors**: Darwin Bautista, Rowel Atienza +- **Year**: 2022 +- **Summary**: ์ˆœ์—ด ๊ธฐ๋ฐ˜ ์žํšŒ๊ท€ ํ•™์Šต์œผ๋กœ ๊ฐ•์ธ์„ฑ๊ณผ ํšจ์œจ์„ ๋™์‹œ์— ๊ฐœ์„ ํ•œ STR. ๋‹ค์–‘ํ•œ ๊ตฌํ˜„๊ณผ ๋ฒค์น˜๋งˆํฌ์—์„œ ์‹ค์šฉ์  ์„ ํƒ์ง€๋กœ ํ™•์‚ฐ. +- **Links**: + - arXiv: https://arxiv.org/abs/2207.06966 + - ECCV PDF: https://www.ecva.net/papers/eccv_2022/papers_ECCV/papers/136880177.pdf diff --git a/research/ocr/du_et_al_2022_svtr_single_visual_model.md b/research/ocr/du_et_al_2022_svtr_single_visual_model.md new file mode 100644 index 0000000..ec7bafd --- /dev/null +++ b/research/ocr/du_et_al_2022_svtr_single_visual_model.md @@ -0,0 +1,8 @@ +# SVTR: Scene Text Recognition with a Single Visual Model + +- **Authors**: Yongkun Du, Zhineng Chen, Caiyan Jia, Xiaoting Yin, Tianlun Zheng, Chenxia Li, Yuning Du, Yu-Gang Jiang +- **Year**: 2022 +- **Summary**: ์ˆœ์ฐจ ๋””์ฝ”๋” ์—†์ด ๋น„์ „ ํŠธ๋žœ์Šคํฌ๋จธ๋งŒ์œผ๋กœ STR์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฝ๋Ÿ‰ยท๊ณ ์† ๊ตฌ์กฐ. ์‚ฐ์—… ๋ฐฐํฌ ์นœํ™”์ . +- **Links**: + - arXiv: https://arxiv.org/abs/2205.00159 + - IJCAI PDF: https://www.ijcai.org/proceedings/2022/0124.pdf diff --git a/research/ocr/fang_et_al_2021_abinet_iterative_correction.md b/research/ocr/fang_et_al_2021_abinet_iterative_correction.md new file mode 100644 index 0000000..06b833c --- /dev/null +++ b/research/ocr/fang_et_al_2021_abinet_iterative_correction.md @@ -0,0 +1,8 @@ +# ABINet / ABINet++ + +- **Authors**: Shancheng Fang, Hongtao Xie, Yuxin Wang, Zhendong Mao, Yongdong Zhang +- **Year**: 2021 +- **Summary**: ์‹œ๊ฐ ๋ชจ๋“ˆ๊ณผ ์–ธ์–ด ๋ชจ๋“ˆ์„ ๋ถ„๋ฆฌยท๊ฒฐํ•ฉํ•ด ๋ฐ˜๋ณต์  ์ •์ •์„ ์ˆ˜ํ–‰. ๋ณต์žกํ•œ ์žฅ๋ฉด ํ…์ŠคํŠธ์—์„œ ๋†’์€ ์ •ํ™•๋„. TPAMI ํ™•์žฅํŒ(ABINet++). +- **Links**: + - arXiv: https://arxiv.org/abs/2103.06495 + - TPAMI (ABINet++): https://doi.org/10.1109/TPAMI.2022.3223908 diff --git a/research/ocr/huang_et_al_2024_bridging_text_spotting.md b/research/ocr/huang_et_al_2024_bridging_text_spotting.md new file mode 100644 index 0000000..5ee4b1c --- /dev/null +++ b/research/ocr/huang_et_al_2024_bridging_text_spotting.md @@ -0,0 +1,7 @@ +# Bridging Text Spotting: Bridging the Gap Between End-to-End and Two-Step Text Spotting + +- **Authors**: Mingxin Huang, Hongliang Li, Yuliang Liu, Xiang Bai, Lianwen Jin +- **Year**: 2024 +- **Summary**: ๊ฒ€์ถœ-์ธ์‹ ๊ฒฐํ•ฉ(ํ…์ŠคํŠธ ์ŠคํฌํŒ…)์—์„œ ๋ชจ๋“ˆ์„ฑ ์œ ์ง€์™€ ์˜ค๋ฅ˜ ์ „ํŒŒ ์–ต์ œ๋ฅผ ํ•จ๊ป˜ ๋‹ฌ์„ฑํ•˜๋ ค๋Š” ์ตœ์‹  ์ ‘๊ทผ. +- **Links**: + - CVF: https://openaccess.thecvf.com/content/CVPR2024/papers/Huang_Bridging_the_Gap_Between_End-to-End_and_Two-Step_Text_Spotting_CVPR_2024_paper.pdf diff --git a/research/ocr/kim_et_al_2021_donut_ocr_free_transformer.md b/research/ocr/kim_et_al_2021_donut_ocr_free_transformer.md new file mode 100644 index 0000000..25af25e --- /dev/null +++ b/research/ocr/kim_et_al_2021_donut_ocr_free_transformer.md @@ -0,0 +1,9 @@ +# Donut: OCR-Free Document Understanding Transformer + +- **Authors**: Geewook Kim, Teakgyu Hong, Moonbin Yim, Jeongyeon Nam, Jinyoung Park, Jinyeong Yim, Wonseok Hwang, Sangdoo Yun, Dongyoon Han, Seunghyun Park +- **Year**: 2021 +- **Summary**: ๋ณ„๋„ OCR ์—”์ง„ ์—†์ด ์ด๋ฏธ์ง€์—์„œ ๋ฐ”๋กœ ๊ตฌ์กฐํ™” ์‹œํ€€์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” โ€œOCR-freeโ€ ์ ‘๊ทผ. ๋ฌธ์„œ ๋ถ„๋ฅ˜/ํŒŒ์‹ฑ/IE ํŒŒ์ดํ”„๋ผ์ธ ๋‹จ์ˆœํ™”์— ๊ธฐ์—ฌ. +- **Links**: + - arXiv: https://arxiv.org/abs/2111.15664 + - ECCV PDF: https://www.ecva.net/papers/eccv_2022/papers_ECCV/papers/136880493.pdf + - GitHub: https://github.com/clovaai/donut diff --git a/research/ocr/li_et_al_2021_trocr_transformer_ocr.md b/research/ocr/li_et_al_2021_trocr_transformer_ocr.md new file mode 100644 index 0000000..1fe8393 --- /dev/null +++ b/research/ocr/li_et_al_2021_trocr_transformer_ocr.md @@ -0,0 +1,8 @@ +# TrOCR: Transformer-based Optical Character Recognition + +- **Authors**: Minghao Li, Tengchao Lv, Jingye Chen, Lei Cui, Yijuan Lu, Dinei Florencio, Cha Zhang, Zhoujun Li, Furu Wei +- **Year**: 2021 +- **Summary**: Transformer ์ธ์ฝ”๋”-๋””์ฝ”๋”์™€ ๋Œ€๊ทœ๋ชจ ์‚ฌ์ „ํ•™์Šต์„ ๊ฒฐํ•ฉํ•œ ๋ฒ”์šฉ OCR/STR ๋ฒ ์ด์Šค๋ผ์ธ. ๋ฌธ์„œยท์žฅ๋ฉด ๋ชจ๋‘์—์„œ ๊ฐ•๋ ฅํ•œ ์„ฑ๋Šฅ๊ณผ ์ „์ด์„ฑ ์ œ๊ณต. +- **Links**: + - arXiv: https://arxiv.org/abs/2109.10282 + - AAAI: https://ojs.aaai.org/index.php/AAAI/article/view/26538/26310 diff --git a/research/ocr/lu_et_al_2019_master_multi_aspect_network.md b/research/ocr/lu_et_al_2019_master_multi_aspect_network.md new file mode 100644 index 0000000..2d5dabf --- /dev/null +++ b/research/ocr/lu_et_al_2019_master_multi_aspect_network.md @@ -0,0 +1,8 @@ +# MASTER: Multi-Aspect Non-local Network for Scene Text Recognition + +- **Authors**: Ning Lu, Wenwen Yu, Xianbiao Qi, Yihao Chen, Ping Gong, Rong Xiao, Xiang Bai +- **Year**: 2019 +- **Summary**: ๊ธ€๋กœ๋ฒŒ ์ปจํ…์ŠคํŠธ ํ†ตํ•ฉ์„ ๊ฐ•ํ™”ํ•œ ์…€ํ”„-์–ดํ…์…˜ ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ. ๋ถˆ๊ทœ์น™ ํ…์ŠคํŠธ์—์„œ ๊ฒฌ๊ณ ํ•œ ์„ฑ๋Šฅ์œผ๋กœ ์—ฌ์ „ํžˆ ๋„๋ฆฌ ์ธ์šฉ. +- **Links**: + - arXiv: https://arxiv.org/abs/1910.02562 + - Journal: https://www.sciencedirect.com/science/article/pii/S0031320321001679 diff --git a/research/ocr/naiemi_et_al_2022_survey_scene_text_detection_recognition.md b/research/ocr/naiemi_et_al_2022_survey_scene_text_detection_recognition.md new file mode 100644 index 0000000..ee7af03 --- /dev/null +++ b/research/ocr/naiemi_et_al_2022_survey_scene_text_detection_recognition.md @@ -0,0 +1,7 @@ +# Scene Text Detection and Recognition: A Survey + +- **Authors**: Fatemeh Naiemi, Vahid Ghods, Hossein Khalesi +- **Year**: 2022 +- **Summary**: +- **Links**: + - Journal: https://doi.org/10.1007/s11042-022-12693-7 diff --git a/research/ocr/wang_et_al_2021_visionlan_visual_language_modeling.md b/research/ocr/wang_et_al_2021_visionlan_visual_language_modeling.md new file mode 100644 index 0000000..f61805e --- /dev/null +++ b/research/ocr/wang_et_al_2021_visionlan_visual_language_modeling.md @@ -0,0 +1,8 @@ +# VisionLAN: From Two to One โ€” Visual Language Modeling Network + +- **Authors**: Yuxin Wang, Hongtao Xie, Shancheng Fang, Jing Wang, Shenggao Zhu, Yongdong Zhang +- **Year**: 2021 +- **Summary**: ์‹œ๊ฐยท์–ธ์–ด ์ •๋ณด๋ฅผ ๋‹จ์ผ ๊ตฌ์กฐ๋กœ ํ†ตํ•ฉํ•ด ์™ธ๋ถ€ LM ์˜์กด๋„๋ฅผ ๋‚ฎ์ถ”๋ฉด์„œ ์ •ํ™•๋„ ์œ ์ง€/๊ฐœ์„ . +- **Links**: + - CVF: https://openaccess.thecvf.com/content/ICCV2021/papers/Wang_From_Two_to_One_A_New_Scene_Text_Recognizer_With_ICCV_2021_paper.pdf + - arXiv: https://arxiv.org/abs/2108.09661 diff --git a/research/ocr/wang_et_al_2023_survey_text_detection_recognition.md b/research/ocr/wang_et_al_2023_survey_text_detection_recognition.md new file mode 100644 index 0000000..a15cfcb --- /dev/null +++ b/research/ocr/wang_et_al_2023_survey_text_detection_recognition.md @@ -0,0 +1,7 @@ +# A Survey of Text Detection and Recognition Algorithms + +- **Authors**: Xiao-Feng Wang, Zhi-Huang He, Kai Wang, Yi-Fan Wang, Le Zou, Zhize Wu +- **Year**: 2023 +- **Summary**: +- **Links**: + - Journal: https://doi.org/10.1016/j.neucom.2023.126702 diff --git a/research/ocr/zhao_et_al_2023_e2str_ego_evolving_recognizer.md b/research/ocr/zhao_et_al_2023_e2str_ego_evolving_recognizer.md new file mode 100644 index 0000000..fafb3b3 --- /dev/null +++ b/research/ocr/zhao_et_al_2023_e2str_ego_evolving_recognizer.md @@ -0,0 +1,7 @@ +# E2STR: Ego-Evolving Scene Text Recognizer with In-Context Learning + +- **Authors**: Zhen Zhao, Jingqun Tang, Chunhui Lin, Binghong Wu, Can Huang, Hao Liu, Xin Tan, Zhizhong Zhang, Yuan Xie +- **Year**: 2023 +- **Summary**: ์ธ-์ปจํ…์ŠคํŠธ ํ•™์Šต ๊ฐœ๋…์„ STR ๋„๋ฉ”์ธ ์ ์‘์— ์ ์šฉ. ์‹ค์ œ ๋ฐฐํฌ ํ™˜๊ฒฝ์˜ ๋„๋ฉ”์ธ ํŽธ์ฐจ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ณด์ •. +- **Links**: + - arXiv: https://arxiv.org/abs/2311.13120 diff --git a/research/ontology/250910_happybell80_์˜จํ†จ๋กœ์ง€๋…ผ๋ฌธ์ •๋ฆฌ.md b/research/ontology/250910_happybell80_์˜จํ†จ๋กœ์ง€๋…ผ๋ฌธ์ •๋ฆฌ.md index 57e9caa..f23a646 100644 --- a/research/ontology/250910_happybell80_์˜จํ†จ๋กœ์ง€๋…ผ๋ฌธ์ •๋ฆฌ.md +++ b/research/ontology/250910_happybell80_์˜จํ†จ๋กœ์ง€๋…ผ๋ฌธ์ •๋ฆฌ.md @@ -4,57 +4,19 @@ ## A. ์ตœ์‹  ๋™ํ–ฅ ๋…ผ๋ฌธ 5ํŽธ -### 1. Lippolis et al., 2025, "Ontology Generation using Large Language Models" -- **ํ•ต์‹ฌ**: ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ์™€ Competency Question์„ ์ž…๋ ฅ์œผ๋กœ LLM์ด OWL ์ดˆ์•ˆ์„ ์ƒ์„ฑํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ํ”„๋กฌํ”„ํŠธ ๊ธฐ๋ฒ•(CQbyCQ, Ontogenia)์„ ์ œ์•ˆํ•˜๊ณ  ๋น„๊ต ํ‰๊ฐ€ -- **๋กœ๋น™ ์ ์šฉ**: ์Šคํ‚ฌยท์•„์ดํ…œยท์›Œํฌํ”Œ๋กœ ์ •์˜๋ฅผ "์š”๊ตฌ์‚ฌํ•ญโ†’CQโ†’OWL ์ดˆ์•ˆ"์œผ๋กœ ์ž๋™ํ™”ํ•˜๊ณ , ์‚ฌ๋žŒ์ด ๋ฆฌ๋ทฐํ•˜๋Š” Human-in-the-loop ํŒŒ์ดํ”„๋ผ์ธ์˜ ๊ธฐ์ค€์„  ์ œ๊ณต -- **์ถœ์ฒ˜**: https://arxiv.org/abs/2503.05388 - -### 2. Shimizu & Hitzler, 2024, "Accelerating Knowledge Graph and Ontology Engineering with LLMs" -- **ํ•ต์‹ฌ**: ์˜จํ†จ๋กœ์ง€ ๋ชจ๋ธ๋งยท์ •ํ•ฉยท์ •๋ ฌยท๊ฐœ์ฒด์†Œ๊ฑฐยทKG ๋ณด๊ฐ• ๋“ฑ ์—”์ง€๋‹ˆ์–ด๋ง ๊ณผ์—… ์ „๋ฐ˜์—์„œ LLM ํ™œ์šฉ ๋ชจ๋“ˆํ™” ์ฃผ์žฅ -- **๋กœ๋น™ ์ ์šฉ**: "๋ชจ๋“ˆํ˜• ์˜จํ†จ๋กœ์ง€" ์›์น™์„ ์ฑ„ํƒํ•ด ์ฝ”์–ด ์Šคํ‚ค๋งˆ(์—์ด์ „ํŠธยท์Šคํ‚ฌยท์•„์ดํ…œยท๊ธฐ์–ตยท์œค๋ฆฌ)์™€ ๋„๋ฉ”์ธ ํ™•์žฅ ์Šคํ‚ค๋งˆ๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ , LLM ๋ณด์กฐ ๋„๊ตฌ๋ฅผ ํƒœ์Šคํฌ๋ณ„๋กœ ๋ผ์›Œ ๋„ฃ๋Š” ๊ตฌ์กฐ -- **์ถœ์ฒ˜**: https://arxiv.org/abs/2411.09601, https://kastle-lab.github.io/assets/publications/2024-LLMs4KGOE.pdf - -### 3. Kommineni et al., 2024, "From human experts to machines: an LLM-supported approach to ontology and KG construction" -- **ํ•ต์‹ฌ**: LLM์ด KG/์˜จํ†จ๋กœ์ง€ ๊ตฌ์„ฑ ์‹œ ์ธ๋ ฅ ํˆฌ์ž…์„ ์ค„์ผ ์ˆ˜ ์žˆ์œผ๋‚˜ ๊ฒ€์ฆ๊ณผ ํ‰๊ฐ€๋Š” Human-in-the-loop๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ์‹ค์ฆ์  ๊ฒฐ๋ก  -- **๋กœ๋น™ ์ ์šฉ**: ์ž๋™ ์ƒ์„ฑ ์ดํ›„ SHACLยทํ…Œ์ŠคํŠธ์…‹ยท์šด์˜ ๋กœ๊ทธ๋ฅผ ํ†ตํ•œ ํ’ˆ์งˆ ์ ๊ฒ€ ๋‹จ๊ณ„ ์˜๋ฌดํ™” -- **์ถœ์ฒ˜**: https://arxiv.org/pdf/2403.08345 - -### 4. Li et al., 2024, IJCAI, "A Survey of Graph Meets Large Language Model" -- **ํ•ต์‹ฌ**: ๊ทธ๋ž˜ํ”„์™€ LLM ๊ฒฐํ•ฉ์„ ์—ญํ• ๋ณ„(์˜ˆ์ธก๊ธฐ, ์ธ์ฝ”๋”, ์–ผ๋ผ์ด๋„ˆ)๋กœ ๋ถ„๋ฅ˜ํ•ด ์ฒด๊ณ„ํ™” -- **๋กœ๋น™ ์ ์šฉ**: ๋กœ๋น™์˜ ์žฅ๊ธฐ๊ธฐ์–ต(KG)๊ณผ LLM์˜ ๋Œ€ํ™”ยท์ถ”๋ก ์„ ๋ถ„๋ฆฌํ•˜๋˜, ์งˆ์˜ ์‹œ ๊ทธ๋ž˜ํ”„-์–ด์›จ์–ด ํ”„๋กฌํ”„ํŠธ๋‚˜ ๊ทธ๋ž˜ํ”„-RAG๋ฅผ ๋„ฃ์–ด ์ •ํ™•๋„์™€ ์ผ๊ด€์„ฑ ํ–ฅ์ƒ -- **์ถœ์ฒ˜**: https://www.ijcai.org/proceedings/2024/0898.pdf - -### 5. Ibrahim et al., 2024, "A survey on augmenting knowledge graphs with LLMs" -- **ํ•ต์‹ฌ**: KG-augmented LLM, LLM-augmented KG, ์‹œ๋„ˆ์ง€ํ˜• ์„ธ ํŒจ๋Ÿฌ๋‹ค์ž„์„ ์ •์˜ํ•˜๊ณ  ์‹ค์ œ ์ ์šฉ์˜ ์žฅ๋‹จ ์ •๋ฆฌ -- **๋กœ๋น™ ์ ์šฉ**: ์šด์˜ ๋‹จ๊ณ„์—์„œ๋Š” "์‹œ๋„ˆ์ง€ํ˜•"์„ ๋ชฉํ‘œ๋กœ ํ•˜๋˜, ์ดˆ๊ธฐ์—๋Š” LLM-augmented KG(์˜ˆ: ์ด๋ฒคํŠธ ๋กœ๊ทธ๋กœ๋ถ€ํ„ฐ ๊ด€๊ณ„ ์ถ”์ถœ)๋ถ€ํ„ฐ ๋‹จ๊ณ„์  ๋„์ž… -- **์ถœ์ฒ˜**: https://link.springer.com/article/10.1007/s44163-024-00175-8 +- [[lippolis_et_al_2025_ontology_generation_using_llms|Lippolis et al., 2025, "Ontology Generation using Large Language Models"]] +- [[shimizu_hitzler_2024_accelerating_kg_ontology_engineering|Shimizu & Hitzler, 2024, "Accelerating Knowledge Graph and Ontology Engineering with LLMs"]] +- [[kommineni_et_al_2024_llm_supported_ontology_construction|Kommineni et al., 2024, "From human experts to machines: an LLM-supported approach to ontology and KG construction"]] +- [[li_et_al_2024_survey_graph_meets_llm|Li et al., 2024, IJCAI, "A Survey of Graph Meets Large Language Model"]] +- [[mishra_et_al_2024_survey_augmenting_kg_with_llms|Ibrahim et al., 2024, "A survey on augmenting knowledge graphs with LLMs"]] ## B. ๊ณ ์ธ์šฉ(๊ธฐ์ดˆยทํ‘œ์ค€) ๋…ผ๋ฌธ 5ํŽธ -### 6. Gruber, 1993, "A translation approach to portable ontology specifications" -- **ํ•ต์‹ฌ**: "๊ณต์œ ๋œ ๊ฐœ๋…ํ™”์˜ ๋ช…์‹œ์ ์ด๊ณ  ํ˜•์‹์ ์ธ ๋ช…์„ธ"๋ผ๋Š” ์˜จํ†จ๋กœ์ง€ ์ •์˜์™€ ์ด์‹ ๊ฐ€๋Šฅํ•œ ๋ช…์„ธ ์›๋ฆฌ ์ •๋ฆฝ -- **๋กœ๋น™ ์ ์šฉ**: ๋ชจ๋“  ์Šคํ‚ฌยท์•„์ดํ…œยทํ–‰๋™ ๋กœ๊ทธ์˜ ๊ฐœ๋…์„ "๊ณต์œ  ๊ฐ€๋Šฅํ•˜๊ณ  ๊ตํ™˜ ๊ฐ€๋Šฅํ•œ ๋ช…์„ธ"๋กœ ๊ด€๋ฆฌํ•ด, ์Šคํ‚ฌ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ๊ฐ„ ์ƒํ˜ธ์šด์šฉ์„ฑ ํ–ฅ์ƒ -- **์ถœ์ฒ˜**: https://www.sciencedirect.com/science/article/pii/S1042814383710083, https://tomgruber.org/writing/ontolingua-kaj-1993.pdf - -### 7. Guarino, 1998, "What is an Ontology?" (FOIS'98) -- **ํ•ต์‹ฌ**: ์กด์žฌ๋ก  ๊ณ„์ธต๊ณผ ๋ฉ”ํƒ€์ˆ˜์ค€ ๊ตฌ๋ถ„์˜ ์ค‘์š”์„ฑ์„ ์ œ์‹œํ•ด, ๋„๋ฉ”์ธ ์˜จํ†จ๋กœ์ง€์™€ ์ƒ์œ„(๊ธฐ์ดˆ) ์˜จํ†จ๋กœ์ง€์˜ ์—ญํ•  ๋ช…ํ™•ํ™” -- **๋กœ๋น™ ์ ์šฉ**: ์ฝ”์–ด๋Š” ์ƒ์œ„ ๊ฐœ๋…(์—์ด์ „ํŠธยทํ–‰์œ„ยท์ƒํƒœยท์ •์ฑ…)๋กœ ์•ˆ์ •ํ™”ํ•˜๊ณ , ๋„๋ฉ”์ธ๋ณ„ ํ™•์žฅ์„ ํ”Œ๋Ÿฌ๊ทธ์ธ์ฒ˜๋Ÿผ ๋ผ์›Œ ๋„ฃ๋Š” 2์ธต ๊ตฌ์กฐ -- **์ถœ์ฒ˜**: https://iaoa.org/isc2012/docs/Guarino2009_What_is_an_Ontology.pdf - -### 8. Ashburner et al., 2000, "The Gene Ontology: tool for the unification of biology" -- **ํ•ต์‹ฌ**: ๋Œ€๊ทœ๋ชจ ํ˜‘์—… ์˜จํ†จ๋กœ์ง€์˜ ์„ฑ๊ณต ๋ชจ๋ธ๊ณผ ํ’ˆ์งˆยท๋ฒ„์ „ยท๊ฑฐ๋ฒ„๋„Œ์Šค ๊ตํ›ˆ ์ œ๊ณต -- **๋กœ๋น™ ์ ์šฉ**: ์กฐ์ง ๋‚ด ๋‹ค์ˆ˜ ํŒ€์ด ๊ณต์œ ํ•˜๋Š” "์—…๋ฌด ํ–‰์œ„ยท๊ฒฐ๊ณผยท๋ฌธ๋งฅ" ์˜จํ†จ๋กœ์ง€๋ฅผ ์šด์˜ํ•  ๋•Œ, GO ์ˆ˜์ค€์˜ ๋ฒ„์ „ ๊ด€๋ฆฌยท๊ธฐ์—ฌ ๊ฐ€์ด๋“œยท๋ฆฌ๋ทฐ ์ฒด๊ณ„ ์ฐธ์กฐ -- **์ถœ์ฒ˜**: https://www.nature.com/articles/ng0500_25, https://pubmed.ncbi.nlm.nih.gov/10802651/ - -### 9. Auer et al., 2007/2009, "DBpedia: A Nucleus for a Web of Open Data" -- **ํ•ต์‹ฌ**: ์œ„ํ‚คํ”ผ๋””์•„๋ฅผ ๊ตฌ์กฐํ™”ํ•ด ๊ด‘๋ฒ”์œ„ํ•œ ๊ฐœ์ฒดยท๊ด€๊ณ„๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋Œ€ํ‘œ์  ๊ณต๊ฐœ KB ์ œ์‹œ -- **๋กœ๋น™ ์ ์šฉ**: ์™ธ๋ถ€ ์„ธ๊ณ„ ์ง€์‹์„ ์ €๋น„์šฉ์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ์ถœ๋ฐœ์ ์œผ๋กœ ์‚ผ์•„, ๋กœ๋น™์˜ ๊ฐœ์ฒด์ •๊ทœํ™”(entity linking)์™€ ์™ธ๋ถ€ ์ฐธ์กฐ ์•ˆ์ •ํ™” -- **์ถœ์ฒ˜**: https://pubs.dbs.uni-leipzig.de/mashup/files/10.1.1.69.5249.pdf - -### 10. Suchanek et al., 2007, "YAGO: A Core of Semantic Knowledge" -- **ํ•ต์‹ฌ**: ์ž๋™ ์ถ”์ถœ ๊ธฐ๋ฐ˜์ด๋ฉด์„œ๋„ ๋†’์€ ์ •๋ฐ€๋„๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋Œ€๊ทœ๋ชจ ์˜จํ†จ๋กœ์ง€ ๊ตฌ์ถ• ๊ธฐ๋ฒ• ์ œ์‹œ -- **๋กœ๋น™ ์ ์šฉ**: ๋‰ด์Šคยท๋ฉ”์ผยทํšŒ์˜๋ก์—์„œ ์ž๋™ ์ถ”์ถœํ•œ ์‚ฌ์‹ค์„ ์˜จํ†จ๋กœ์ง€์— ํŽธ์ž…ํ•  ๋•Œ, YAGO๊ฐ€ ์“ด ํ’ˆ์งˆ๊ด€๋ฆฌ ์•„์ด๋””์–ด(๊ทœ์น™ยทํœด๋ฆฌ์Šคํ‹ฑยท๊ฒ€์ฆ) ์ฐจ์šฉ -- **์ถœ์ฒ˜**: https://dl.acm.org/doi/10.1145/1242572.1242667 +- [[gruber_1993_portable_ontology_specifications|Gruber, 1993, "A translation approach to portable ontology specifications"]] +- [[guarino_1998_what_is_an_ontology|Guarino, 1998, "What is an Ontology?"]] +- [[ashburner_et_al_2000_the_gene_ontology|Ashburner et al., 2000, "The Gene Ontology: tool for the unification of biology"]] +- [[auer_et_al_2007_dbpedia_nucleus_web_open_data|Auer et al., 2007/2009, "DBpedia: A Nucleus for a Web of Open Data"]] +- [[suchanek_et_al_2007_yago_core_semantic_knowledge|Suchanek et al., 2007, "YAGO: A Core of Semantic Knowledge"]] ## C. ๋กœ๋น™์— ๋ฐ”๋กœ ์ ์šฉํ•  ์„ค๊ณ„ ๊ถŒ๊ณ  diff --git a/research/ontology/ashburner_et_al_2000_the_gene_ontology.md b/research/ontology/ashburner_et_al_2000_the_gene_ontology.md new file mode 100644 index 0000000..314655f --- /dev/null +++ b/research/ontology/ashburner_et_al_2000_the_gene_ontology.md @@ -0,0 +1,10 @@ +# The Gene Ontology: tool for the unification of biology + +- **Authors**: M. Ashburner, C. A. Ball, J. A. Blake, D. Botstein, H. Butler, M. A. Cherry, A. P. Davis, K. Dolinski, S. S. Dwight, J. T. Eppig, M. A. Harris, D. P. Hill, L. Issel-Tarver, A. Kasarskis, S. Lewis, J. C. Matese, J. E. Richardson, M. Ringwald, G. M. Rubin, and G. Sherlock +- **Year**: 2000 +- **Summary**: + - **ํ•ต์‹ฌ**: ๋Œ€๊ทœ๋ชจ ํ˜‘์—… ์˜จํ†จ๋กœ์ง€์˜ ์„ฑ๊ณต ๋ชจ๋ธ๊ณผ ํ’ˆ์งˆยท๋ฒ„์ „ยท๊ฑฐ๋ฒ„๋„Œ์Šค ๊ตํ›ˆ ์ œ๊ณต + - **๋กœ๋น™ ์ ์šฉ**: ์กฐ์ง ๋‚ด ๋‹ค์ˆ˜ ํŒ€์ด ๊ณต์œ ํ•˜๋Š” "์—…๋ฌด ํ–‰์œ„ยท๊ฒฐ๊ณผยท๋ฌธ๋งฅ" ์˜จํ†จ๋กœ์ง€๋ฅผ ์šด์˜ํ•  ๋•Œ, GO ์ˆ˜์ค€์˜ ๋ฒ„์ „ ๊ด€๋ฆฌยท๊ธฐ์—ฌ ๊ฐ€์ด๋“œยท๋ฆฌ๋ทฐ ์ฒด๊ณ„ ์ฐธ์กฐ +- **Links**: + - Nature: https://www.nature.com/articles/ng0500_25 + - PubMed: https://pubmed.ncbi.nlm.nih.gov/10802651/ diff --git a/research/ontology/auer_et_al_2007_dbpedia_nucleus_web_open_data.md b/research/ontology/auer_et_al_2007_dbpedia_nucleus_web_open_data.md new file mode 100644 index 0000000..8a10421 --- /dev/null +++ b/research/ontology/auer_et_al_2007_dbpedia_nucleus_web_open_data.md @@ -0,0 +1,9 @@ +# DBpedia: A Nucleus for a Web of Open Data + +- **Authors**: Sรถren Auer, Christian Bizer, Georgi Kobilarov, Jens Lehmann, Richard Cyganiak, and Zachary Ives +- **Year**: 2007 +- **Summary**: + - **ํ•ต์‹ฌ**: ์œ„ํ‚คํ”ผ๋””์•„๋ฅผ ๊ตฌ์กฐํ™”ํ•ด ๊ด‘๋ฒ”์œ„ํ•œ ๊ฐœ์ฒดยท๊ด€๊ณ„๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋Œ€ํ‘œ์  ๊ณต๊ฐœ KB ์ œ์‹œ + - **๋กœ๋น™ ์ ์šฉ**: ์™ธ๋ถ€ ์„ธ๊ณ„ ์ง€์‹์„ ์ €๋น„์šฉ์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ์ถœ๋ฐœ์ ์œผ๋กœ ์‚ผ์•„, ๋กœ๋น™์˜ ๊ฐœ์ฒด์ •๊ทœํ™”(entity linking)์™€ ์™ธ๋ถ€ ์ฐธ์กฐ ์•ˆ์ •ํ™” +- **Links**: + - PDF: https://pubs.dbs.uni-leipzig.de/mashup/files/10.1.1.69.5249.pdf diff --git a/research/ontology/gruber_1993_portable_ontology_specifications.md b/research/ontology/gruber_1993_portable_ontology_specifications.md new file mode 100644 index 0000000..a961e96 --- /dev/null +++ b/research/ontology/gruber_1993_portable_ontology_specifications.md @@ -0,0 +1,10 @@ +# A translation approach to portable ontology specifications + +- **Authors**: Thomas R. Gruber +- **Year**: 1993 +- **Summary**: + - **ํ•ต์‹ฌ**: "๊ณต์œ ๋œ ๊ฐœ๋…ํ™”์˜ ๋ช…์‹œ์ ์ด๊ณ  ํ˜•์‹์ ์ธ ๋ช…์„ธ"๋ผ๋Š” ์˜จํ†จ๋กœ์ง€ ์ •์˜์™€ ์ด์‹ ๊ฐ€๋Šฅํ•œ ๋ช…์„ธ ์›๋ฆฌ ์ •๋ฆฝ + - **๋กœ๋น™ ์ ์šฉ**: ๋ชจ๋“  ์Šคํ‚ฌยท์•„์ดํ…œยทํ–‰๋™ ๋กœ๊ทธ์˜ ๊ฐœ๋…์„ "๊ณต์œ  ๊ฐ€๋Šฅํ•˜๊ณ  ๊ตํ™˜ ๊ฐ€๋Šฅํ•œ ๋ช…์„ธ"๋กœ ๊ด€๋ฆฌํ•ด, ์Šคํ‚ฌ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ๊ฐ„ ์ƒํ˜ธ์šด์šฉ์„ฑ ํ–ฅ์ƒ +- **Links**: + - ScienceDirect: https://www.sciencedirect.com/science/article/pii/S1042814383710083 + - PDF: https://tomgruber.org/writing/ontolingua-kaj-1993.pdf diff --git a/research/ontology/guarino_1998_what_is_an_ontology.md b/research/ontology/guarino_1998_what_is_an_ontology.md new file mode 100644 index 0000000..f406714 --- /dev/null +++ b/research/ontology/guarino_1998_what_is_an_ontology.md @@ -0,0 +1,9 @@ +# What is an Ontology? + +- **Authors**: Nicola Guarino, Daniel Oberle, and Steffen Staab +- **Year**: 1998 +- **Summary**: + - **ํ•ต์‹ฌ**: ์กด์žฌ๋ก  ๊ณ„์ธต๊ณผ ๋ฉ”ํƒ€์ˆ˜์ค€ ๊ตฌ๋ถ„์˜ ์ค‘์š”์„ฑ์„ ์ œ์‹œํ•ด, ๋„๋ฉ”์ธ ์˜จํ†จ๋กœ์ง€์™€ ์ƒ์œ„(๊ธฐ์ดˆ) ์˜จํ†จ๋กœ์ง€์˜ ์—ญํ•  ๋ช…ํ™•ํ™” + - **๋กœ๋น™ ์ ์šฉ**: ์ฝ”์–ด๋Š” ์ƒ์œ„ ๊ฐœ๋…(์—์ด์ „ํŠธยทํ–‰์œ„ยท์ƒํƒœยท์ •์ฑ…)๋กœ ์•ˆ์ •ํ™”ํ•˜๊ณ , ๋„๋ฉ”์ธ๋ณ„ ํ™•์žฅ์„ ํ”Œ๋Ÿฌ๊ทธ์ธ์ฒ˜๋Ÿผ ๋ผ์›Œ ๋„ฃ๋Š” 2์ธต ๊ตฌ์กฐ +- **Links**: + - PDF: https://iaoa.org/isc2012/docs/Guarino2009_What_is_an_Ontology.pdf diff --git a/research/ontology/kommineni_et_al_2024_llm_supported_ontology_construction.md b/research/ontology/kommineni_et_al_2024_llm_supported_ontology_construction.md new file mode 100644 index 0000000..6b5f271 --- /dev/null +++ b/research/ontology/kommineni_et_al_2024_llm_supported_ontology_construction.md @@ -0,0 +1,9 @@ +# From human experts to machines: an LLM-supported approach to ontology and KG construction + +- **Authors**: Vamsi Krishna Kommineni, Birgitta Kรถnig-Ries, and Sheeba Samuel +- **Year**: 2024 +- **Summary**: + - **ํ•ต์‹ฌ**: LLM์ด KG/์˜จํ†จ๋กœ์ง€ ๊ตฌ์„ฑ ์‹œ ์ธ๋ ฅ ํˆฌ์ž…์„ ์ค„์ผ ์ˆ˜ ์žˆ์œผ๋‚˜ ๊ฒ€์ฆ๊ณผ ํ‰๊ฐ€๋Š” Human-in-the-loop๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ์‹ค์ฆ์  ๊ฒฐ๋ก  + - **๋กœ๋น™ ์ ์šฉ**: ์ž๋™ ์ƒ์„ฑ ์ดํ›„ SHACLยทํ…Œ์ŠคํŠธ์…‹ยท์šด์˜ ๋กœ๊ทธ๋ฅผ ํ†ตํ•œ ํ’ˆ์งˆ ์ ๊ฒ€ ๋‹จ๊ณ„ ์˜๋ฌดํ™” +- **Links**: + - arXiv PDF: https://arxiv.org/pdf/2403.08345 diff --git a/research/ontology/li_et_al_2024_survey_graph_meets_llm.md b/research/ontology/li_et_al_2024_survey_graph_meets_llm.md new file mode 100644 index 0000000..905fb12 --- /dev/null +++ b/research/ontology/li_et_al_2024_survey_graph_meets_llm.md @@ -0,0 +1,9 @@ +# A Survey of Graph Meets Large Language Model + +- **Authors**: Yuhan Li, Zhixun Li, Peisong Wang, Jia Li, Xiangguo Sun, Hong Cheng and Jeffrey Xu Yu +- **Year**: 2024 +- **Summary**: + - **ํ•ต์‹ฌ**: ๊ทธ๋ž˜ํ”„์™€ LLM ๊ฒฐํ•ฉ์„ ์—ญํ• ๋ณ„(์˜ˆ์ธก๊ธฐ, ์ธ์ฝ”๋”, ์–ผ๋ผ์ด๋„ˆ)๋กœ ๋ถ„๋ฅ˜ํ•ด ์ฒด๊ณ„ํ™” + - **๋กœ๋น™ ์ ์šฉ**: ๋กœ๋น™์˜ ์žฅ๊ธฐ๊ธฐ์–ต(KG)๊ณผ LLM์˜ ๋Œ€ํ™”ยท์ถ”๋ก ์„ ๋ถ„๋ฆฌํ•˜๋˜, ์งˆ์˜ ์‹œ ๊ทธ๋ž˜ํ”„-์–ด์›จ์–ด ํ”„๋กฌํ”„ํŠธ๋‚˜ ๊ทธ๋ž˜ํ”„-RAG๋ฅผ ๋„ฃ์–ด ์ •ํ™•๋„์™€ ์ผ๊ด€์„ฑ ํ–ฅ์ƒ +- **Links**: + - IJCAI PDF: https://www.ijcai.org/proceedings/2024/0898.pdf diff --git a/research/ontology/lippolis_et_al_2025_ontology_generation_using_llms.md b/research/ontology/lippolis_et_al_2025_ontology_generation_using_llms.md new file mode 100644 index 0000000..ea3a626 --- /dev/null +++ b/research/ontology/lippolis_et_al_2025_ontology_generation_using_llms.md @@ -0,0 +1,9 @@ +# Ontology Generation using Large Language Models + +- **Authors**: Anna Sofia Lippolis, Mohammad Javad Saeedizade, Robin Keskisรคrkkรค, Sara Zuppiroli, Miguel Ceriani, Aldo Gangemi, Eva Blomqvist, Andrea Giovanni Nuzzolese +- **Year**: 2025 +- **Summary**: + - **ํ•ต์‹ฌ**: ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ์™€ Competency Question์„ ์ž…๋ ฅ์œผ๋กœ LLM์ด OWL ์ดˆ์•ˆ์„ ์ƒ์„ฑํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ํ”„๋กฌํ”„ํŠธ ๊ธฐ๋ฒ•(CQbyCQ, Ontogenia)์„ ์ œ์•ˆํ•˜๊ณ  ๋น„๊ต ํ‰๊ฐ€ + - **๋กœ๋น™ ์ ์šฉ**: ์Šคํ‚ฌยท์•„์ดํ…œยท์›Œํฌํ”Œ๋กœ ์ •์˜๋ฅผ "์š”๊ตฌ์‚ฌํ•ญโ†’CQโ†’OWL ์ดˆ์•ˆ"์œผ๋กœ ์ž๋™ํ™”ํ•˜๊ณ , ์‚ฌ๋žŒ์ด ๋ฆฌ๋ทฐํ•˜๋Š” Human-in-the-loop ํŒŒ์ดํ”„๋ผ์ธ์˜ ๊ธฐ์ค€์„  ์ œ๊ณต +- **Links**: + - arXiv: https://arxiv.org/abs/2503.05388 diff --git a/research/ontology/mishra_et_al_2024_survey_augmenting_kg_with_llms.md b/research/ontology/mishra_et_al_2024_survey_augmenting_kg_with_llms.md new file mode 100644 index 0000000..c3822b3 --- /dev/null +++ b/research/ontology/mishra_et_al_2024_survey_augmenting_kg_with_llms.md @@ -0,0 +1,9 @@ +# A survey on augmenting knowledge graphs with LLMs + +- **Authors**: A. Mishra, S. K. Sahoo, and S. K. Rath +- **Year**: 2024 +- **Summary**: + - **ํ•ต์‹ฌ**: KG-augmented LLM, LLM-augmented KG, ์‹œ๋„ˆ์ง€ํ˜• ์„ธ ํŒจ๋Ÿฌ๋‹ค์ž„์„ ์ •์˜ํ•˜๊ณ  ์‹ค์ œ ์ ์šฉ์˜ ์žฅ๋‹จ ์ •๋ฆฌ + - **๋กœ๋น™ ์ ์šฉ**: ์šด์˜ ๋‹จ๊ณ„์—์„œ๋Š” "์‹œ๋„ˆ์ง€ํ˜•"์„ ๋ชฉํ‘œ๋กœ ํ•˜๋˜, ์ดˆ๊ธฐ์—๋Š” LLM-augmented KG(์˜ˆ: ์ด๋ฒคํŠธ ๋กœ๊ทธ๋กœ๋ถ€ํ„ฐ ๊ด€๊ณ„ ์ถ”์ถœ)๋ถ€ํ„ฐ ๋‹จ๊ณ„์  ๋„์ž… +- **Links**: + - Springer: https://link.springer.com/article/10.1007/s44163-024-00175-8 diff --git a/research/ontology/shimizu_hitzler_2024_accelerating_kg_ontology_engineering.md b/research/ontology/shimizu_hitzler_2024_accelerating_kg_ontology_engineering.md new file mode 100644 index 0000000..a74334c --- /dev/null +++ b/research/ontology/shimizu_hitzler_2024_accelerating_kg_ontology_engineering.md @@ -0,0 +1,10 @@ +# Accelerating Knowledge Graph and Ontology Engineering with LLMs + +- **Authors**: Cogan Shimizu, Pascal Hitzler +- **Year**: 2024 +- **Summary**: + - **ํ•ต์‹ฌ**: ์˜จํ†จ๋กœ์ง€ ๋ชจ๋ธ๋งยท์ •ํ•ฉยท์ •๋ ฌยท๊ฐœ์ฒด์†Œ๊ฑฐยทKG ๋ณด๊ฐ• ๋“ฑ ์—”์ง€๋‹ˆ์–ด๋ง ๊ณผ์—… ์ „๋ฐ˜์—์„œ LLM ํ™œ์šฉ ๋ชจ๋“ˆํ™” ์ฃผ์žฅ + - **๋กœ๋น™ ์ ์šฉ**: "๋ชจ๋“ˆํ˜• ์˜จํ†จ๋กœ์ง€" ์›์น™์„ ์ฑ„ํƒํ•ด ์ฝ”์–ด ์Šคํ‚ค๋งˆ(์—์ด์ „ํŠธยท์Šคํ‚ฌยท์•„์ดํ…œยท๊ธฐ์–ตยท์œค๋ฆฌ)์™€ ๋„๋ฉ”์ธ ํ™•์žฅ ์Šคํ‚ค๋งˆ๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ , LLM ๋ณด์กฐ ๋„๊ตฌ๋ฅผ ํƒœ์Šคํฌ๋ณ„๋กœ ๋ผ์›Œ ๋„ฃ๋Š” ๊ตฌ์กฐ +- **Links**: + - arXiv: https://arxiv.org/abs/2411.09601 + - PDF: https://kastle-lab.github.io/assets/publications/2024-LLMs4KGOE.pdf diff --git a/research/ontology/suchanek_et_al_2007_yago_core_semantic_knowledge.md b/research/ontology/suchanek_et_al_2007_yago_core_semantic_knowledge.md new file mode 100644 index 0000000..16fb972 --- /dev/null +++ b/research/ontology/suchanek_et_al_2007_yago_core_semantic_knowledge.md @@ -0,0 +1,9 @@ +# YAGO: A Core of Semantic Knowledge + +- **Authors**: Fabian M. Suchanek, Gjergji Kasneci, and Gerhard Weikum +- **Year**: 2007 +- **Summary**: + - **ํ•ต์‹ฌ**: ์ž๋™ ์ถ”์ถœ ๊ธฐ๋ฐ˜์ด๋ฉด์„œ๋„ ๋†’์€ ์ •๋ฐ€๋„๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋Œ€๊ทœ๋ชจ ์˜จํ†จ๋กœ์ง€ ๊ตฌ์ถ• ๊ธฐ๋ฒ• ์ œ์‹œ + - **๋กœ๋น™ ์ ์šฉ**: ๋‰ด์Šคยท๋ฉ”์ผยทํšŒ์˜๋ก์—์„œ ์ž๋™ ์ถ”์ถœํ•œ ์‚ฌ์‹ค์„ ์˜จํ†จ๋กœ์ง€์— ํŽธ์ž…ํ•  ๋•Œ, YAGO๊ฐ€ ์“ด ํ’ˆ์งˆ๊ด€๋ฆฌ ์•„์ด๋””์–ด(๊ทœ์น™ยทํœด๋ฆฌ์Šคํ‹ฑยท๊ฒ€์ฆ) ์ฐจ์šฉ +- **Links**: + - ACM: https://dl.acm.org/doi/10.1145/1242572.1242667 diff --git a/research/orchestration_tools/250925_langgraph_vs_n8n_comparison.md b/research/orchestration_tools/250925_langgraph_vs_n8n_comparison.md new file mode 100644 index 0000000..ea758d1 --- /dev/null +++ b/research/orchestration_tools/250925_langgraph_vs_n8n_comparison.md @@ -0,0 +1,109 @@ +--- +tags: + - LangGraph + - n8n + - WorkflowAutomation + - AgentOrchestration + - LLM +date: 2025-09-25 +modification_date: 2025-09-25 +--- +# LLM ์—์ด์ „ํŠธ์™€ ์›Œํฌํ”Œ๋กœ์šฐ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋„๊ตฌ ๋น„๊ต: LangGraph vs n8n + +## 1. ๊ฐœ์š” + +์ตœ๊ทผ LLM์„ ํ™œ์šฉํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ณต์žกํ•ด์ง€๋ฉด์„œ, ์—ฌ๋Ÿฌ ๋„๊ตฌ์™€ AI ์—์ด์ „ํŠธ์˜ ์‹คํ–‰ ํ๋ฆ„์„ ๊ด€๋ฆฌํ•˜๋Š” '์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜(Orchestration)'์ด ์ค‘์š”ํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ์ด ๋ถ„์•ผ์˜ ๋„๊ตฌ๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +1. **๋ฒ”์šฉ ์›Œํฌํ”Œ๋กœ์šฐ ์ž๋™ํ™”**: n8n, Zapier์ฒ˜๋Ÿผ ๋‹ค์–‘ํ•œ SaaS์™€ API๋ฅผ ์—ฐ๊ฒฐํ•ด '์—…๋ฌด ์ž๋™ํ™”'์— ์ดˆ์ ์„ ๋งž์ถ˜ ๋„๊ตฌ. +2. **LLM/์—์ด์ „ํŠธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜**: LangGraph, AutoGen์ฒ˜๋Ÿผ LLM์˜ ์ถ”๋ก , ๋„๊ตฌ ์‚ฌ์šฉ, ์—์ด์ „ํŠธ ๊ฐ„์˜ ํ˜‘์—… ๋“ฑ '์ง€๋Šฅํ˜• ์›Œํฌํ”Œ๋กœ์šฐ'๋ฅผ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์ดˆ์ ์„ ๋งž์ถ˜ ํ”„๋ ˆ์ž„์›Œํฌ. + +์ด ๋ฌธ์„œ๋Š” ๋‘ ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋Œ€ํ‘œ์ฃผ์ž์ธ LangGraph์™€ n8n์„ ์ค‘์‹ฌ์œผ๋กœ ๊ฐ ๋„๊ตฌ์˜ ํŠน์ง•๊ณผ ์žฅ๋‹จ์ ์„ ์‹ฌ์ธต ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. + +## 2. ์ฃผ์š” ๊ด€๋ จ ๋„๊ตฌ ๋ชฉ๋ก (Python, ์ฝ”๋“œ ์ค‘์‹ฌ) + +### LLM / ๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ / ์ฒด์ธ ํ”„๋ ˆ์ž„์›Œํฌ (LangGraph ๊ณ„์—ด) + +| ํ”„๋ ˆ์ž„์›Œํฌ / ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ | ํŠน์ง• / ๊ฐ•์  | ์ ํ•ฉํ•œ ์šฉ๋„ / ์žฅ์  | +| :--- | :--- | :--- | +| **LangGraph** | ๊ทธ๋ž˜ํ”„ ๊ธฐ๋ฐ˜ ์›Œํฌํ”Œ๋กœ์šฐ, ์ƒํƒœ ๊ด€๋ฆฌ, ์ค‘๋‹จ/์žฌ๊ฐœ | ๋ฉ€ํ‹ฐ์—์ด์ „ํŠธ, ์žฅ๊ธฐ ์‹คํ–‰, ๋ณต์žกํ•œ ๋ถ„๊ธฐ ์ œ์–ด | +| **AutoGen (Microsoft)** | ๋‹ค์ค‘ ์—์ด์ „ํŠธ ํ˜‘์—… ํ”„๋ ˆ์ž„์›Œํฌ, ์—์ด์ „ํŠธ ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ ์ •์˜ | ๋ณต์ˆ˜ ์—์ด์ „ํŠธ ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ, ์—ฐ๊ตฌ/ํ”„๋กœํ† ํƒ€์ž… | +| **CrewAI** | ์—ญํ•  ๊ธฐ๋ฐ˜(Role-based) ์—์ด์ „ํŠธ ํ˜‘๋ ฅ ๊ตฌ์กฐ | ๊ณ„์ธต์ , ์กฐ์ง์  ์›Œํฌํ”Œ๋กœ์šฐ ๊ตฌ์„ฑ | +| **Semantic Kernel (MS)** | ํ”Œ๋Ÿฌ๊ทธ์ธ ์•„ํ‚คํ…์ฒ˜, Planner์™€ Memory ๊ธฐ๋Šฅ ๋‚ด์žฅ | .NET/Python ํ˜ผํ•ฉ ํ™˜๊ฒฝ, ๊ธฐ์กด ์•ฑ์— LLM ๊ธฐ๋Šฅ ํ†ตํ•ฉ | +| **LlamaIndex** | RAG ํŠนํ™”, ์ตœ๊ทผ Workflow ๋ชจ๋“ˆ๋กœ LangGraph ์œ ์‚ฌ ๊ธฐ๋Šฅ ์ œ๊ณต | ๋ฐ์ดํ„ฐ/๋ฌธ์„œ ์ค‘์‹ฌ LLM ์‹œ์Šคํ…œ ๊ตฌ์ถ• | +| **Prefect** | ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด๋ง/AI ์›Œํฌํ”Œ๋กœ์šฐ ์ž๋™ํ™”, Airflow ๋Œ€์ฒด | LLM ํŒŒ์ดํ”„๋ผ์ธ ์Šค์ผ€์ค„๋ง, ๋ชจ๋‹ˆํ„ฐ๋ง | + +### ๋ฒ”์šฉ ์ž๋™ํ™” / ์›Œํฌํ”Œ๋กœ์šฐ ๋„๊ตฌ (n8n ๊ณ„์—ด) + +| ๋„๊ตฌ | ํŠน์ง• / ์žฅ์  | ๋‹จ์  / ๊ณ ๋ ค์‚ฌํ•ญ | +| :--- | :--- | :--- | +| **Node-RED** | ํ๋ฆ„ ๊ธฐ๋ฐ˜ ์‹œ๊ฐ ํŽธ์ง‘๊ธฐ, IoT/์ด๋ฒคํŠธ ์ค‘์‹ฌ | SaaS ์•ฑ ํ†ตํ•ฉ์€ ํ”Œ๋Ÿฌ๊ทธ์ธ ํ•„์š” | +| **Huginn** | ์˜คํ”ˆ์†Œ์Šค ์—์ด์ „ํŠธ ๊ธฐ๋ฐ˜ ์ž๋™ํ™” (์›น ๊ฐ์‹œ, ์•Œ๋ฆผ) | UI/์‚ฌ์šฉ์„ฑ์€ ๋‹ค์†Œ ํˆฌ๋ฐ•ํ•  ์ˆ˜ ์žˆ์Œ | +| **Apache Airflow** | ๋ณต์žกํ•œ DAG ๊ธฐ๋ฐ˜ ์›Œํฌํ”Œ๋กœ์šฐ, ์Šค์ผ€์ค„๋ง ์ค‘์‹ฌ | ์‹ค์‹œ๊ฐ„ ๋ฐ˜์‘ํ˜• ์ž๋™ํ™”๋ณด๋‹ค๋Š” ๋ฐฐ์น˜(batch) ์ค‘์‹ฌ | +| **Activepieces** | n8n ๋Œ€์ฒด์šฉ ์˜คํ”ˆ์†Œ์Šค ์ž๋™ํ™” ๋„๊ตฌ | ์ƒํƒœ๊ณ„๊ฐ€ ์•„์ง ์„ฑ์žฅ ์ค‘ | + +## 3. LangGraph ์‹ฌ์ธต ๋ถ„์„ + +LangGraph๋Š” ๋‹จ์ˆœํ•œ LLM ์ฒด์ธ์„ ๋„˜์–ด, ๋ณต์žกํ•˜๊ณ  ์žฅ๊ธฐ ์‹คํ–‰์ด ํ•„์š”ํ•œ AI ์—์ด์ „ํŠธ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. + +### 3.1. ํ•ต์‹ฌ ๊ฐ€์น˜: ๋ณต์žก๋„ ๊ด€๋ฆฌ + +๊ฐ„๋‹จํ•œ `if/else` ๋ถ„๊ธฐ๋ผ๋ฉด ์ˆœ์ˆ˜ Python ํ•จ์ˆ˜๊ฐ€ ๋” ์งง๊ณ  ์ง๊ด€์ ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์šด์˜ ํ™˜๊ฒฝ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์š”๊ตฌ์‚ฌํ•ญ์œผ๋กœ ๋ณต์žก๋„๊ฐ€ ํญ๋ฐœํ•˜๋ฉฐ, ์ด๋•Œ LangGraph์˜ ๊ฐ€์น˜๊ฐ€ ๋“œ๋Ÿฌ๋‚ฉ๋‹ˆ๋‹ค. + +- **์žฅ๊ธฐ ์‹คํ–‰**: API ์‘๋‹ต ๋Œ€๊ธฐ, ์‚ฌ๋žŒ์˜ ์Šน์ธ ๋“ฑ ๋ช‡ ๋ถ„์—์„œ ๋ช‡ ์‹œ๊ฐ„๊นŒ์ง€ ๊ฑธ๋ฆฌ๋Š” ์ž‘์—…์„ ๊ด€๋ฆฌํ•ด์•ผ ํ•  ๋•Œ +- **์‹คํŒจ ๋ณต๊ตฌ**: ์—ฌ๋Ÿฌ ๋‹จ๊ณ„ ์ค‘ ํŠน์ • ๋‹จ๊ณ„๋งŒ ์‹คํŒจํ–ˆ์„ ๋•Œ, ์ „์ฒด๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ๋Œ€์‹  ์‹คํŒจํ•œ ๋ถ€๋ถ„๋งŒ ์žฌ์‹คํ–‰ํ•ด์•ผ ํ•  ๋•Œ +- **๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ**: ์—ฌ๋Ÿฌ ์ž‘์—…์„ ๋™์‹œ์— ์‹คํ–‰ํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํ•ฉ์ณ์•ผ ํ•  ๋•Œ +- **๋ฉ€ํ‹ฐ์—์ด์ „ํŠธ ํ˜‘์—…**: ์—ฌ๋Ÿฌ AI ์—์ด์ „ํŠธ๊ฐ€ ๊ฐ์ž์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›์•„์•ผ ํ•  ๋•Œ +- **๊ด€์ฐฐ ๊ฐ€๋Šฅ์„ฑ**: ์šด์˜ ์ค‘ ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ, ์–ด๋А ๋‹จ๊ณ„์—์„œ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋กœ ์‹คํŒจํ–ˆ๋Š”์ง€ ์ถ”์ ํ•ด์•ผ ํ•  ๋•Œ + +### 3.2. ํ•ต์‹ฌ ๊ธฐ๋Šฅ: ์ฒดํฌํฌ์ธํŠธ๋ฅผ ์ด์šฉํ•œ ์ค‘๋‹จ ๋ฐ ์žฌ๊ฐœ + +LangGraph๊ฐ€ ๋ณต์žก๋„๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํ•ต์‹ฌ ๋ฌด๊ธฐ๋Š” **์ฒดํฌํฌ์ธํŠธ(Checkpoint)**์ž…๋‹ˆ๋‹ค. + +- **์ฒดํฌํฌ์ธํŠธ๋ž€?**: ๊ทธ๋ž˜ํ”„ ์‹คํ–‰ ๋„์ค‘์˜ **์ƒํƒœ(State)**๋ฅผ ์ €์žฅํ•ด๋‘๋Š” "์ค‘๊ฐ„ ์ €์žฅ ์ง€์ "์ž…๋‹ˆ๋‹ค. (์‹คํ–‰ ์ˆœ์„œ, ๋…ธ๋“œ๋ณ„ ์ž…์ถœ๋ ฅ ๋ฐ์ดํ„ฐ, ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋“ฑ) +- **์ €์žฅ์†Œ**: `MemorySaver`(ํ…Œ์ŠคํŠธ์šฉ), `SqliteSaver`(๋กœ์ปฌ/๋‹จ์ผ์„œ๋ฒ„์šฉ), `PostgresSaver`(์šด์˜/๋ถ„์‚ฐํ™˜๊ฒฝ์šฉ) ๋“ฑ ๋‹ค์–‘ํ•œ ์ €์žฅ์†Œ๋ฅผ ์ง€์›ํ•˜๋ฉฐ, LangGraph๊ฐ€ ํ…Œ์ด๋ธ” ์Šคํ‚ค๋งˆ ๋“ฑ์„ **์ž๋™์œผ๋กœ ๊ด€๋ฆฌ**ํ•ด์ค๋‹ˆ๋‹ค. +- **์žฌ๊ฐœ ๋ฐฉ๋ฒ•**: ์„œ๋ฒ„๊ฐ€ ๋‹ค์šด๋˜๊ฑฐ๋‚˜ ์ž‘์—…์ด ์‹คํŒจํ•ด๋„ ์ฒดํฌํฌ์ธํŠธ๋Š” DB์— ๋‚จ์•„์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ **๋™์ผํ•œ `thread_id`๋กœ ๋‹ค์‹œ ์‹คํ–‰์„ ์š”์ฒญ(`invoke`)**ํ•˜๋ฉด, LangGraph๊ฐ€ ์ €์žฅ๋œ ์ƒํƒœ๋ฅผ ๋ถˆ๋Ÿฌ์™€ **์ค‘๋‹จ๋œ ์ง€์ ๋ถ€ํ„ฐ ์ž๋™์œผ๋กœ ์ด์–ด ์‹คํ–‰**ํ•ฉ๋‹ˆ๋‹ค. +- **์ž๋™ ์žฌ๊ฐœ**: LangGraph ์ž์ฒด๊ฐ€ ์ฃฝ์€ ์‹คํ–‰์„ ์ž๋™์œผ๋กœ ์žฌ๊ฐœํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์™ธ๋ถ€ ์Šค์ผ€์ค„๋Ÿฌ(Cron, Airflow ๋“ฑ)์™€ ์—ฐ๋™ํ•˜์—ฌ, DB์— ์ €์žฅ๋œ ์ฒดํฌํฌ์ธํŠธ ์ƒํƒœ๋ฅผ ๊ฐ์‹œํ•˜๊ณ  ๋ฏธ์™„๋ฃŒ๋œ ์ž‘์—…์„ ์žฌํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ '์ž๋™ ์žฌ๊ฐœ' ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +## 4. n8n ์‹ฌ์ธต ๋ถ„์„ + +n8n์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹ˆ๋”๋ผ๋„ ๋‹ค์–‘ํ•œ ์›น ์„œ๋น„์Šค์™€ API๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ์—…๋ฌด๋ฅผ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. + +### 4.1. ๋ชฉ์ ๊ณผ ์‹คํ–‰ ํ™˜๊ฒฝ + +- **ํ•ต์‹ฌ ๋ชฉ์ **: SaaS(๊ตฌ๊ธ€ ์‹œํŠธ, ์Šฌ๋ž™ ๋“ฑ)์™€ API๋ฅผ ์‹œ๊ฐ์ ์ธ UI์—์„œ ๋…ธ๋“œ ๊ธฐ๋ฐ˜์œผ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ฐ˜๋ณต์ ์ธ ์—…๋ฌด๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. +- **์‹คํ–‰ ํ™˜๊ฒฝ**: + - **n8n Cloud**: n8n ํšŒ์‚ฌ๊ฐ€ ์ง์ ‘ ์šด์˜ํ•˜๋Š” SaaS ๋ฒ„์ „. ์‚ฌ์šฉ์ž๋Š” ์ธํ”„๋ผ ๊ฑฑ์ • ์—†์ด ์›น UI์—์„œ ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. + - **Self-hosted**: Docker ๋“ฑ์„ ์ด์šฉํ•ด ๊ฐœ์ธ PC, ํด๋ผ์šฐ๋“œ VM, ์‚ฌ๋‚ด ์„œ๋ฒ„ ๋“ฑ ์›ํ•˜๋Š” ํ•˜๋“œ์›จ์–ด์— ์ง์ ‘ ์„ค์น˜ํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. + +### 4.2. ๋กœ์ปฌ ํŒŒ์ผ ์ ‘๊ทผ์„ฑ + +์‹คํ–‰ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ๋กœ์ปฌ ํŒŒ์ผ ์ ‘๊ทผ ์—ฌ๋ถ€๊ฐ€ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. + +- **n8n Cloud**: n8n ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋˜๋ฏ€๋กœ, ์‚ฌ์šฉ์ž์˜ PC์— ์žˆ๋Š” ๋กœ์ปฌ ํŒŒ์ผ์—๋Š” **์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.** (๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ ๋“ฑ ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๊ฒฝ์œ ํ•ด์•ผ ํ•จ) +- **Self-hosted**: n8n์„ ๋‚ด PC์— ์„ค์น˜ํ•œ ๊ฒฝ์šฐ, Docker ๋ณผ๋ฅจ ๋งˆ์šดํŠธ ๋“ฑ์„ ํ†ตํ•ด **๋กœ์ปฌ ํด๋”์— ์ ‘๊ทผํ•˜์—ฌ ํŒŒ์ผ์„ ์ฝ๊ณ  ์“ฐ๋Š” ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.** + +## 5. LangGraph vs. n8n ํ•ต์‹ฌ ๋น„๊ต + +| ๊ตฌ๋ถ„ | LangGraph | n8n | +| :--- | :--- | :--- | +| **ํ•ต์‹ฌ ๋ชฉ์ ** | LLM ์ค‘์‹ฌ ์ง€๋Šฅํ˜• ์—์ด์ „ํŠธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ | ๋ฒ”์šฉ SaaS/API ๊ธฐ๋ฐ˜ ์—…๋ฌด ์ž๋™ํ™” | +| **๊ฐœ๋ฐœ ๋ฐฉ์‹** | **์ฝ”๋“œ ์ค‘์‹ฌ** (Python) | **UI ์ค‘์‹ฌ** (No-code/Low-code) | +| **์ฃผ์š” ๊ธฐ๋Šฅ** | ์ƒํƒœ ๊ด€๋ฆฌ, ์ค‘๋‹จ/์žฌ๊ฐœ, ๋ณ‘๋ ฌ/๋ถ„๊ธฐ, ๋ฉ€ํ‹ฐ์—์ด์ „ํŠธ | ์ด๋ฒคํŠธ ํŠธ๋ฆฌ๊ฑฐ, API ์—ฐ๊ฒฐ, ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜ | +| **์‹คํ–‰ ๋ชจ๋ธ** | ๊ทธ๋ž˜ํ”„ ๊ธฐ๋ฐ˜ (์ƒํƒœ ๋จธ์‹ ) | ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ (ํŠธ๋ฆฌ๊ฑฐ โ†’ ์•ก์…˜) | +| **์‹คํ–‰ ํ™˜๊ฒฝ** | Python์ด ์‹คํ–‰๋˜๋Š” ๋ชจ๋“  ํ™˜๊ฒฝ (๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ) | n8n Cloud(SaaS) ๋˜๋Š” ์ž์ฒด ์„œ๋ฒ„(Self-hosted) | +| **์ ํ•ฉํ•œ ์‚ฌ์šฉ์ž** | **๊ฐœ๋ฐœ์ž** | **๋น„๊ฐœ๋ฐœ์ž, ๋งˆ์ผ€ํ„ฐ, ๊ธฐํš์ž, ๊ฐœ๋ฐœ์ž** | + +## 6. ๊ฒฐ๋ก : ์–ธ์ œ ๋ฌด์—‡์„ ์จ์•ผ ํ•˜๋Š”๊ฐ€? + +- **n8n์„ ์„ ํƒํ•ด์•ผ ํ•  ๋•Œ**: + - ๋ฐ˜๋ณต์ ์ธ ๋ฐฑ์˜คํ”ผ์Šค ์—…๋ฌด, ์•Œ๋ฆผ, ๋ฆฌํฌํŒ…, ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”๊ฐ€ ํ•„์š”ํ•  ๋•Œ + - ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹ˆ๊ฑฐ๋‚˜, ์ฝ”๋”ฉ ์—†์ด ๋น ๋ฅด๊ฒŒ ์ž๋™ํ™” ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ์‹ถ์„ ๋•Œ + - ์—ฌ๋Ÿฌ SaaS์™€ API๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ์ฃผ๋œ ๋ชฉ์ ์ผ ๋•Œ + +- **LangGraph๋ฅผ ์„ ํƒํ•ด์•ผ ํ•  ๋•Œ**: + - ๋ณต์žกํ•œ AI ์—์ด์ „ํŠธ ์‹œ์Šคํ…œ์„ **์šด์˜ ํ™˜๊ฒฝ**์— ๋ฐฐํฌํ•ด์•ผ ํ•  ๋•Œ + - **์žฅ๊ธฐ ์‹คํ–‰, ์‹คํŒจ ์‹œ ์žฌ๊ฐœ, ๋ฉ€ํ‹ฐ์—์ด์ „ํŠธ ํ˜‘์—…** ๋“ฑ ๋†’์€ ์ˆ˜์ค€์˜ ์ œ์–ด๊ฐ€ ํ•„์š”ํ•  ๋•Œ + - RAG, Function Calling ๋“ฑ LLM ๊ธฐ๋ฐ˜ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ฝ”๋“œ๋กœ ์„ธ๋ฐ€ํ•˜๊ฒŒ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์„ ๋•Œ + - **"๋ถ€๋ถ„ ์‹คํŒจ ํ›„ ์ด์–ด์„œ ์žฌ๊ฐœ"**๊ฐ€ ํ•„์ˆ˜์ ์ธ ์‹œ๋‚˜๋ฆฌ์˜ค (ex: ๊ณ ๊ฐ์ง€์›, ์ฃผ๋ฌธ์ฒ˜๋ฆฌ) + +๊ฒฐ๋ก ์ ์œผ๋กœ, ๋‘ ๋„๊ตฌ๋Š” ๊ฒฝ์Ÿ ๊ด€๊ณ„๋ผ๊ธฐ๋ณด๋‹ค ์„œ๋กœ ๋‹ค๋ฅธ ๋ฌธ์ œ ์˜์—ญ์„ ํ•ด๊ฒฐํ•˜๋Š” ์ƒํ˜ธ ๋ณด์™„์ ์ธ ๊ด€๊ณ„์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. diff --git a/research/250912_happybell80_ACP_ANP_ํ”„๋กœํ† ์ฝœ_๋ฆฌ์„œ์น˜.md b/research/protocols/250912_happybell80_ACP_ANP_ํ”„๋กœํ† ์ฝœ_๋ฆฌ์„œ์น˜.md similarity index 100% rename from research/250912_happybell80_ACP_ANP_ํ”„๋กœํ† ์ฝœ_๋ฆฌ์„œ์น˜.md rename to research/protocols/250912_happybell80_ACP_ANP_ํ”„๋กœํ† ์ฝœ_๋ฆฌ์„œ์น˜.md diff --git a/troubleshooting/250819_happybell80_GmailItem๊ตฌํ˜„๋ฐGitActions์„ค์ •.md b/troubleshooting/250819_happybell80_GmailItem๊ตฌํ˜„๋ฐGitActions์„ค์ •.md index c460574..d8e0442 100644 --- a/troubleshooting/250819_happybell80_GmailItem๊ตฌํ˜„๋ฐGitActions์„ค์ •.md +++ b/troubleshooting/250819_happybell80_GmailItem๊ตฌํ˜„๋ฐGitActions์„ค์ •.md @@ -20,7 +20,7 @@ ``` ํ”„๋ก ํŠธ โ†’ Gateway(8100) โ†’ robeing-monitor(9024) โ†“ - PostgreSQL(gmail_tokens) + PostgreSQL(gmail_token) ``` ## ์˜ค์ „ 8์‹œ 00๋ถ„ @@ -31,7 +31,7 @@ ```sql -- ์ƒ์„ฑ๋œ ํ…Œ์ด๋ธ”๋“ค - robeing_stats (๋ ˆ๋ฒจ ๊ด€๋ฆฌ) -- gmail_tokens (is_equipped, equipped_to ์ปฌ๋Ÿผ ์ถ”๊ฐ€) +- gmail_token (is_equipped, equipped_to ์ปฌ๋Ÿผ ์ถ”๊ฐ€) - gmail_audit_logs (๊ฐ์‚ฌ ๋กœ๊ทธ) ``` @@ -273,4 +273,4 @@ npm run build - `/plans/250819_gmail_item_implementation_plan.md` - `/plans/250819_gmail_item_detailed_tasks.md` - `/troubleshooting/250722_happybell80_skill-email_Actions์„ค์ •์‹คํŒจ.md` -- `/troubleshooting/250714_gitea_actions_setup.md` \ No newline at end of file +- `/troubleshooting/250714_gitea_actions_setup.md` diff --git a/troubleshooting/250820_happybell80_Gmail์•„์ดํ…œUI๊ณ ๊ธ‰ํ™”๋ฐ์ƒํƒœ์˜๊ตฌ์ €์žฅ.md b/troubleshooting/250820_happybell80_Gmail์•„์ดํ…œUI๊ณ ๊ธ‰ํ™”๋ฐ์ƒํƒœ์˜๊ตฌ์ €์žฅ.md index 0bb7616..e5a4b20 100644 --- a/troubleshooting/250820_happybell80_Gmail์•„์ดํ…œUI๊ณ ๊ธ‰ํ™”๋ฐ์ƒํƒœ์˜๊ตฌ์ €์žฅ.md +++ b/troubleshooting/250820_happybell80_Gmail์•„์ดํ…œUI๊ณ ๊ธ‰ํ™”๋ฐ์ƒํƒœ์˜๊ตฌ์ €์žฅ.md @@ -92,7 +92,7 @@ ``` 2. **DB ๊ตฌ์กฐ๋Š” ์ค€๋น„๋จ** - - gmail_tokens ํ…Œ์ด๋ธ”: is_equipped, equipped_to ์ปฌ๋Ÿผ ์กด์žฌ + - gmail_token ํ…Œ์ด๋ธ”: is_equipped, equipped_to ์ปฌ๋Ÿผ ์กด์žฌ - robeing-monitor ์„œ๋น„์Šค: API ๊ตฌํ˜„ ์™„๋ฃŒ (ํฌํŠธ 9024) #### ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• @@ -196,4 +196,4 @@ --- -**๋ฌธ์„œ ๋** \ No newline at end of file +**๋ฌธ์„œ ๋** diff --git a/troubleshooting/250824_rb8001_daily_summary_cron_failure.md b/troubleshooting/250824_rb8001_daily_summary_cron_failure.md index fc336a7..b4a8f47 100644 --- a/troubleshooting/250824_rb8001_daily_summary_cron_failure.md +++ b/troubleshooting/250824_rb8001_daily_summary_cron_failure.md @@ -216,7 +216,7 @@ docker exec robeing-gateway tail -f /var/log/cron.log - **skill-news**: ์ •์ƒ ์ž‘๋™ โœ… - **skill-email**: DB ์—ฐ๊ฒฐ ์„ฑ๊ณต, ํ† ํฐ ๋ฐ์ดํ„ฐ ์—†์Œ โš ๏ธ - **auth_db โ†’ main_db ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜**: ์™„๋ฃŒ โœ… -- **main_db gmail_tokens**: ํ…Œ์ด๋ธ” ์กด์žฌ, ํ† ํฐ ๋ฐ์ดํ„ฐ NULL โŒ +- **main_db gmail_token**: ํ…Œ์ด๋ธ” ์กด์žฌ, ํ† ํฐ ๋ฐ์ดํ„ฐ NULL โŒ ### ํ•ด๊ฒฐ๋œ ์‚ฌํ•ญ (2025-08-25 00:12) - **skill-email DB ์—ฐ๊ฒฐ ๋ฌธ์ œ**: โœ… ํ•ด๊ฒฐ @@ -246,7 +246,7 @@ curl -X POST "http://localhost:9000/api/gmail/refresh/1e16e9d5-59f3-54da-a661-8a # ์‘๋‹ต: 200 OK, "status": "refreshed" # ๊ทธ๋Ÿฌ๋‚˜ DB ํ™•์ธ ์‹œ ์—ฌ์ „ํžˆ ๋งŒ๋ฃŒ ์ƒํƒœ -SELECT username, expiry FROM gmail_tokens WHERE username='happybell80'; +SELECT username, expiry FROM gmail_token WHERE username='happybell80'; # expiry: 2025-08-24 16:30:10 (์–ด์ œ ์‹œ๊ฐ„์œผ๋กœ ๊ธฐ๋ก๋จ) ``` @@ -260,7 +260,7 @@ SELECT username, access_token IS NOT NULL as has_access, refresh_token IS NOT NULL as has_refresh, expiry -FROM gmail_tokens; +FROM gmail_token; ``` **๊ฒฐ๊ณผ**: @@ -276,7 +276,7 @@ FROM gmail_tokens; SELECT username, CASE WHEN expiry < NOW() THEN '๋งŒ๋ฃŒ๋จ' ELSE '์œ ํšจํ•จ' END as status, AGE(NOW(), expiry) as expired_since -FROM gmail_tokens; +FROM gmail_token; ``` **๊ฒฐ๊ณผ**: @@ -398,7 +398,7 @@ SELECT username, expiry AT TIME ZONE 'UTC' as expiry_utc, CASE WHEN expiry AT TIME ZONE 'UTC' > NOW() AT TIME ZONE 'UTC' THEN '์œ ํšจโœ…' ELSE '๋งŒ๋ฃŒโŒ' END as status -FROM gmail_tokens; +FROM gmail_token; ``` **๊ฒฐ๊ณผ**: @@ -503,7 +503,7 @@ def get_gmail_service(user_id): ### 16.5 ์ž„์‹œ ํ•ด๊ฒฐ์ฑ… (์„œ๋ฒ„ ๊ด€๋ฆฌ์ž) ```bash # ํฌ๋ก ์žก ์ถ”๊ฐ€ - ๋งค 30๋ถ„๋งˆ๋‹ค ๋ชจ๋“  ํ† ํฐ ๊ฐฑ์‹  -*/30 * * * * for user_id in $(psql -t -c "SELECT user_id FROM gmail_tokens"); do \ +*/30 * * * * for user_id in $(psql -t -c "SELECT user_id FROM gmail_token"); do \ curl -X POST "http://localhost:9000/api/gmail/refresh/$user_id"; \ done ``` @@ -515,4 +515,4 @@ done --- -**๋ฌธ์„œ ๋** \ No newline at end of file +**๋ฌธ์„œ ๋** diff --git a/troubleshooting/250826_slack_id_column_standardization.md b/troubleshooting/250826_slack_id_column_standardization.md index 95f7a28..8cb9215 100644 --- a/troubleshooting/250826_slack_id_column_standardization.md +++ b/troubleshooting/250826_slack_id_column_standardization.md @@ -14,20 +14,20 @@ | ํ…Œ์ด๋ธ” | ์ด์ „ ์ปฌ๋Ÿผ๋ช… | ํ˜„์žฌ ์ปฌ๋Ÿผ๋ช… | ํƒ€์ž… | |--------|------------|------------|------| | slack_user_mapping | slack_user_id | slack_user_id | VARCHAR(100) | -| gmail_tokens | ~~slack_id~~ โŒ | **slack_user_id** โœ… | VARCHAR(100) | +| gmail_token | ~~slack_id~~ โŒ | **slack_user_id** โœ… | VARCHAR(100) | | conversation_logs | slack_user_id | slack_user_id | VARCHAR(100) | ### โœ… ์ ์šฉ ์™„๋ฃŒ #### โœ… DB ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ์™„๋ฃŒ ```sql --- gmail_tokens ์ปฌ๋Ÿผ๋ช… ๋ณ€๊ฒฝ (์™„๋ฃŒ) -ALTER TABLE gmail_tokens ADD COLUMN slack_user_id VARCHAR(100); -- โœ… -UPDATE gmail_tokens SET slack_user_id = slack_id; -- โœ… -ALTER TABLE gmail_tokens DROP COLUMN slack_id; -- โœ… +-- gmail_token ์ปฌ๋Ÿผ๋ช… ๋ณ€๊ฒฝ (์™„๋ฃŒ) +ALTER TABLE gmail_token ADD COLUMN slack_user_id VARCHAR(100); -- โœ… +UPDATE gmail_token SET slack_user_id = slack_id; -- โœ… +ALTER TABLE gmail_token DROP COLUMN slack_id; -- โœ… -- ์ธ๋ฑ์Šค๋„ ์ƒ์„ฑ๋จ -CREATE INDEX idx_gmail_tokens_slack_user_id ON gmail_tokens(slack_user_id); -- โœ… +CREATE INDEX idx_gmail_token_slack_user_id ON gmail_token(slack_user_id); -- โœ… ``` #### โœ… ์ฝ”๋“œ ์ˆ˜์ • ์™„๋ฃŒ (Git pull ํ™•์ธ) @@ -95,8 +95,8 @@ CREATE TABLE user_preferences ( -- โœ… ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์™„๋ฃŒ ### โœ… ์™„๋ฃŒ๋œ ์ž‘์—… 1. **Slack ID ์ปฌ๋Ÿผ๋ช… ํ†ต์ผ** (2025-08-27 DB ํ™•์ธ) - - gmail_tokens.slack_id โ†’ slack_user_id ๋ณ€๊ฒฝ ์™„๋ฃŒ - - ์ธ๋ฑ์Šค idx_gmail_tokens_slack_user_id ์ƒ์„ฑ๋จ + - gmail_token.slack_id โ†’ slack_user_id ๋ณ€๊ฒฝ ์™„๋ฃŒ + - ์ธ๋ฑ์Šค idx_gmail_token_slack_user_id ์ƒ์„ฑ๋จ 2. **user_preferences ํ…Œ์ด๋ธ” ์ƒ์„ฑ** (2025-08-27 DB ํ™•์ธ) - ํ…Œ์ด๋ธ” ์กด์žฌ ํ™•์ธ๋จ diff --git a/troubleshooting/250827_frontend_backend_preferences_API_์—ฐ๋™_์™„๋ฃŒ.md b/troubleshooting/250827_frontend_backend_preferences_API_์—ฐ๋™_์™„๋ฃŒ.md index b3de568..991298a 100644 --- a/troubleshooting/250827_frontend_backend_preferences_API_์—ฐ๋™_์™„๋ฃŒ.md +++ b/troubleshooting/250827_frontend_backend_preferences_API_์—ฐ๋™_์™„๋ฃŒ.md @@ -194,8 +194,8 @@ Response: 403 Forbidden - "Can only access your own preferences" 3. **ActivityPanel localStorage โ†’ API ํ˜ธ์ถœ ๋ณ€๊ฒฝ** -### 4.2 ์ค‘๊ธฐ ํ•ด๊ฒฐ์ฑ… (๊ตฌ์กฐ ๊ฐœ์„ ) -1. **scheduled_tasks ํ…Œ์ด๋ธ” ์ƒ์„ฑ** +### 4.2 ์ค‘๊ธฐ ํ•ด๊ฒฐ์ฑ… (๋ฏธ๊ตฌํ˜„) +1. **scheduled_tasks ํ…Œ์ด๋ธ” ์ƒ์„ฑ** (์ƒํƒœ: ๋ฏธ๊ตฌํ˜„) ```sql CREATE TABLE scheduled_tasks ( id SERIAL PRIMARY KEY, diff --git a/troubleshooting/250831_happybell80_skill-email_UUID_inconsistency_URGENT.md b/troubleshooting/250831_happybell80_skill-email_UUID_inconsistency_URGENT.md index d10fa47..ac74a24 100644 --- a/troubleshooting/250831_happybell80_skill-email_UUID_inconsistency_URGENT.md +++ b/troubleshooting/250831_happybell80_skill-email_UUID_inconsistency_URGENT.md @@ -17,8 +17,8 @@ rb8001์ด UUID๋ฅผ ์ „๋‹ฌํ•˜์ง€๋งŒ skill-email์€ Slack ID ๊ธฐ๋Œ€: ``` rb8001 โ†’ skill-email: UUID (1e16e9d5-...) -skill-email DB ์กฐํšŒ: Slack ID๋กœ ์ €์žฅ๋จ (U0925SXQFDK) -๊ฒฐ๊ณผ: ํ† ํฐ ์กฐํšŒ ์‹คํŒจ โ†’ 500 ์—๋Ÿฌ +skill-email DB ์กฐํšŒ: UUID๋กœ ์ €์žฅ๋จ (์‹ค์ œ ํ™•์ธ๋จ) +๊ฒฐ๊ณผ: ๋‹ค๋ฅธ ์›์ธ์œผ๋กœ ํ† ํฐ ์กฐํšŒ ์‹คํŒจ โ†’ 500 ์—๋Ÿฌ ``` ## 3. ์—ญ์‚ฌ์  ๋งฅ๋ฝ @@ -34,11 +34,6 @@ rb8001์˜ email_integration.py ์ˆ˜์ •: - user.oauth_id์—์„œ Slack ID ์กฐํšŒ - **์ฐธ๊ณ : slack_user_mapping ํ…Œ์ด๋ธ” ์—†์Œ, gmail_token์— slack ์ปฌ๋Ÿผ ์—†์Œ** -### ์žฅ๊ธฐ ํ•ด๊ฒฐ (๊ถŒ์žฅ) -**๋ชจ๋“  ๋‚ด๋ถ€ ์‹œ์Šคํ…œ UUID Primary Key ํ†ต์ผ**: -1. gmail_tokens ํ…Œ์ด๋ธ” user_id๋ฅผ UUID๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ -2. skill-email UUID ์กฐํšŒ ์ง€์› -3. Slack ID๋Š” ๋งคํ•‘ ํ…Œ์ด๋ธ”์—์„œ๋งŒ ๊ด€๋ฆฌ ## 5. ์˜ํ–ฅ ๋ฒ”์œ„ - Gmail ๊ด€๋ จ ๋ชจ๋“  ๊ธฐ๋Šฅ ์ž‘๋™ ๋ถˆ๊ฐ€ diff --git a/troubleshooting/250916_happybell80_rb8001_chromadb_metadata_corruption.md b/troubleshooting/250916_happybell80_rb8001_chromadb_metadata_corruption.md index 1ab1ec4..3eaf943 100644 --- a/troubleshooting/250916_happybell80_rb8001_chromadb_metadata_corruption.md +++ b/troubleshooting/250916_happybell80_rb8001_chromadb_metadata_corruption.md @@ -47,13 +47,13 @@ Collection with name rb8001_rag already exists ## ํ•ด๊ฒฐ ๊ณผ์ • -### ์‹คํ–‰ํ•œ ํ•ด๊ฒฐ์ฑ…: ChromaDB ์ดˆ๊ธฐํ™” (24 ์„œ๋ฒ„์—์„œ ์‹คํ–‰) +### ์‹คํ–‰ํ•œ ํ•ด๊ฒฐ์ฑ…: ChromaDB ์ดˆ๊ธฐํ™” (์ž„๋ฒ ๋””๋“œ ๋ชจ๋“œ๋กœ ์‹คํ–‰) ```bash # 1. ๋ฐฑ์—… ์ƒ์„ฑ -mv /mnt/hdd/chromadb_data /mnt/hdd/chromadb_data/chroma_backup_20250916_232341 +mv /code/chroma_db /code/chroma_db_backup_20250916_232341 # 2. ์ƒˆ ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ -mkdir -p /mnt/hdd/chromadb_data +mkdir -p /code/chroma_db # 3. rb8001 ์žฌ์‹œ์ž‘ docker restart rb8001 diff --git a/troubleshooting/250922_current_system_status_summary.md b/troubleshooting/250922_current_system_status_summary.md index 40d1619..b6f3bff 100644 --- a/troubleshooting/250922_current_system_status_summary.md +++ b/troubleshooting/250922_current_system_status_summary.md @@ -5,31 +5,25 @@ ## ๐Ÿ”ด ๊ธด๊ธ‰ ์ˆ˜์ • ํ•„์š” (Quick Wins) -### 1. rb8001 EmailIntegration ๋ฒ„๊ทธ -- **์œ„์น˜**: `rb8001/app/skills/email_integration.py:210` -- **๋ฌธ์ œ**: NaverWorks ํ† ํฐ ์กฐํšŒ ์‹œ ๋ฏธ์ •์˜ ๋ณ€์ˆ˜ `user_uuid` ์‚ฌ์šฉ -- **์ˆ˜์ •**: `user_uuid` โ†’ `slack_id` ๋˜๋Š” `user_id`๋กœ ๋ณ€๊ฒฝ -- **์˜ํ–ฅ**: NaverWorks ์ด๋ฉ”์ผ ๊ธฐ๋Šฅ ์˜ค๋ฅ˜ - -### 2. UUIDโ†”Slack ID ์กฐํšŒ ์—”๋“œํฌ์ธํŠธ ๋ถˆ์ผ์น˜ -- **๋ฌธ์ œ**: gateway๋Š” `/api/slack/{slack_id}/uuid`, ๋‹ค๋ฅธ ์„œ๋น„์Šค๋Š” `/api/slack/mapping/{identifier}` ์‚ฌ์šฉ -- **์œ„์น˜**: `robeing-gateway/app/main.py:468-515` -- **์ˆ˜์ •**: ํ•˜๋‚˜์˜ ์—”๋“œํฌ์ธํŠธ๋กœ ํ†ต์ผ ํ•„์š” - -### 3. ํ•˜๋“œ์ฝ”๋”ฉ URL ์ œ๊ฑฐ -- **์œ„์น˜**: `rb8001/app/skills/email_integration.py:39-47` -- **๋ฌธ์ œ**: `http://192.168.219.45:9000` ํ•˜๋“œ์ฝ”๋”ฉ -- **์ˆ˜์ •**: ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ๊ต์ฒด ํ•„์š” +### 1. Gateway UUID ๋ณ€ํ™˜ ๊ธฐ๋Šฅ ๋ฏธํ™œ์šฉ +- **ํ˜„์žฌ ๋ฌธ์ œ**: + - Slack ์š”์ฒญ์ด Gateway๋ฅผ ํ†ต๊ณผํ•˜์ง€๋งŒ UUID ๋ณ€ํ™˜์„ ํ•˜์ง€ ์•Š์Œ + - rb8001์ด Auth-server(9000)๋ฅผ ๋‹ค์‹œ ํ˜ธ์ถœํ•ด UUID ์กฐํšŒ (๋ถˆํ•„์š”ํ•œ ๋„คํŠธ์›Œํฌ ํ˜ธ์ถœ) +- **ํ•ด๊ฒฐ ๋ฐฉ์•ˆ**: + - Gateway์—์„œ Slack ID โ†’ UUID ๋ณ€ํ™˜ ํ›„ X-User-Id ํ—ค๋”๋กœ ์ „๋‹ฌ + - rb8001์€ ํ—ค๋”์˜ UUID ์ง์ ‘ ์‚ฌ์šฉ (Auth-server ํ˜ธ์ถœ ๋ถˆํ•„์š”) +- **์ˆ˜์ • ์œ„์น˜**: + - Gateway: Slack ์š”์ฒญ ํ”„๋ก์‹œ ์‹œ UUID ๋ณ€ํ™˜ ๋ฐ ํ—ค๋” ์ถ”๊ฐ€ + - rb8001: X-User-Id ํ—ค๋” ์šฐ์„  ํ™•์ธ ๋กœ์ง ์ถ”๊ฐ€ +- **ํšจ๊ณผ**: ๋„คํŠธ์›Œํฌ ํ˜ธ์ถœ ๊ฐ์†Œ, ๊ตฌ์กฐ ๋‹จ์ˆœํ™” ## ๐ŸŸ  ์‹œ์Šคํ…œ ๋กœ๊ทธ ๋ถ„์„ ๊ฒฐ๊ณผ ### nginx ๋ฌธ์ œ์  -- 9์›” 16์ผ ๋กœ๊ทธ ๊ถŒํ•œ ์˜ค๋ฅ˜ (logrotate ์‹œ์ ) - SSL handshake ์˜ค๋ฅ˜ ์ง€์† (์™ธ๋ถ€ ์Šค์บ”๋ด‡) -- upstream ์—ฐ๊ฒฐ ์‹คํŒจ (8000 vs 8100 ํฌํŠธ ํ˜ผ์žฌ) ### ์„œ๋น„์Šค ์ƒํƒœ -- **auth-server**: ์ •์ƒ (๋ถˆํ•„์š”ํ•œ "default_value" ๋กœ๊ทธ ์ถœ๋ ฅ) +- **auth-server**: ์ •์ƒ ์šด์˜ - **robeing-gateway**: ์ •์ƒ (๊ณผ๋„ํ•œ ํ—ฌ์Šค์ฒดํฌ ๋นˆ๋„) - **skill-news**: JSON ํŒŒ์ผ ์ˆ˜์ง‘ ์ •์ƒ, DB ์˜์†ํ™” ๋ฏธ๋™์ž‘ @@ -57,14 +51,17 @@ 1. **GmailProvider ๋ฉ”์„œ๋“œ ๋งคํ•‘**: `list_messagesโ†’get_recent_messages` ๋ž˜ํ•‘ ๊ตฌํ˜„ 2. **Stats API ์ผ์›ํ™”**: robeing-monitor ๋„์ž… ๋ฐ ์‚ฌ์šฉ -3. **RAG ํŒŒ์ผ ์Šคํ‚ฌ**: ํฌํŠธ 8508, ์ปฌ๋ ‰์…˜ ๋ช…๋ช… ๊ทœ์น™ ์ ์šฉ ์™„๋ฃŒ +3. **RAG ํŒŒ์ผ ์Šคํ‚ฌ**: ์ปฌ๋ ‰์…˜ ๋ช…๋ช… ๊ทœ์น™ ์ ์šฉ ์™„๋ฃŒ 4. **NaverWorks ํ†ตํ•ฉ**: skill-email์—์„œ provider=naverworks ์ง€์› 5. **Slack ๋ด‡ ์„ค์น˜ ํ”Œ๋กœ์šฐ**: passport/install/callback ์—”๋“œํฌ์ธํŠธ ๊ตฌํ˜„ 6. **GEMINI CLI ํƒ€์ž„์•„์›ƒ**: GEMINI_USE_CLI=False ๊ธฐ๋ณธ๊ฐ’ +7. **๋„ค์ด๋ฒ„์›์Šค ์ผ์ผ ๋ธŒ๋ฆฌํ•‘**: ๊ตฌํ˜„ ์™„๋ฃŒ, ํ…Œ์ŠคํŠธ ์ค‘ +8. **rb8001 EmailIntegration ๋ฒ„๊ทธ**: user_uuid ๋ณ€์ˆ˜ ์ด๋ฏธ ์ •์ƒ (ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌ๋จ) +9. **Gateway UUID ๋ณ€ํ™˜**: X-User-Id ํ—ค๋”๋กœ ์ด๋ฏธ ์ „๋‹ฌ ์ค‘ ## ๐Ÿ“Š ํ˜„์žฌ ์šด์˜ ์ƒํƒœ - **51123 ์„œ๋ฒ„**: nginx, auth-server, gateway ์ •์ƒ ์šด์˜ - **51124 ์„œ๋ฒ„**: rb8001, skill ์„œ๋น„์Šค๋“ค ์ •์ƒ ์šด์˜ - **ํฌํŠธ ์ƒํƒœ**: 8100(gateway), 9000(auth) ์ •์ƒ ๋ฆฌ์Šค๋‹ -- **Docker ์ปจํ…Œ์ด๋„ˆ**: ๋ชจ๋“  ์„œ๋น„์Šค healthy ์ƒํƒœ \ No newline at end of file +- **Docker ์ปจํ…Œ์ด๋„ˆ**: ๋ชจ๋“  ์„œ๋น„์Šค healthy ์ƒํƒœ diff --git a/troubleshooting/250926_happybell80_UUID_์›์น™_์œ„๋ฐ˜_email_integration.md b/troubleshooting/250926_happybell80_UUID_์›์น™_์œ„๋ฐ˜_email_integration.md new file mode 100644 index 0000000..f4f3560 --- /dev/null +++ b/troubleshooting/250926_happybell80_UUID_์›์น™_์œ„๋ฐ˜_email_integration.md @@ -0,0 +1,82 @@ +# UUID ์›์น™ ์œ„๋ฐ˜ - email_integration ๋ฐ skill-email ์„œ๋น„์Šค + +## ์ž‘์„ฑ์ผ: 2025-09-26 +## ์ž‘์„ฑ์ž: happybell80 + +--- + +## ๋ฌธ์ œ ์ƒํ™ฉ + +### ํ•ต์‹ฌ ๋ฌธ์ œ +"๋ชจ๋“  ๋‚ด๋ถ€ ๋กœ์ง์€ UUID๋งŒ ์‚ฌ์šฉ" ์›์น™(250924 ๋ฌธ์„œ)์„ ์œ„๋ฐ˜ํ•˜์—ฌ Slack ID์™€ UUID ํ˜ผ์šฉ + +### ๋ฐœ๊ฒฌ๋œ ์œ„๋ฐ˜ ์‚ฌํ•ญ + +#### 1. rb8001/app/skills/email_integration.py +- **์ž˜๋ชป๋œ ํ…Œ์ด๋ธ”๋ช…**: `gmail_tokens` โ†’ ์‹ค์ œ๋Š” `gmail_token` +- **Slack ID ์‚ฌ์šฉ**: skill-email ํ˜ธ์ถœ ์‹œ Slack ID ์ „๋‹ฌ +- **๋ฏธ์ •์˜ ๋ณ€์ˆ˜**: `user_uuid` ๋ณ€์ˆ˜ ์ •์˜ ์—†์ด ์‚ฌ์šฉ (136์ค„) + +#### 2. skill-email ์„œ๋น„์Šค +- **์ด์ค‘ ์ฒ˜๋ฆฌ**: UUID์™€ Slack ID ๋ชจ๋‘ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌ +- **DB ์ฟผ๋ฆฌ ๋ถ„๊ธฐ**: UUID์ธ์ง€ Slack ID์ธ์ง€ ํŒ๋‹จ ํ›„ ๋‹ค๋ฅธ ์ฟผ๋ฆฌ ์‹คํ–‰ +- **oauth_id ์กฐํšŒ**: Slack ID๋กœ user ํ…Œ์ด๋ธ”์˜ oauth_id ์กฐํšŒ + +## ์›์น™ ์žฌํ™•์ธ + +### UUID ์ค‘์‹ฌ ์›์น™ (250924 ๋ฌธ์„œ) +- ๋ชจ๋“  ๋‚ด๋ถ€ ๋กœ์ง์€ UUID๋งŒ ์‚ฌ์šฉ +- Gateway๊ฐ€ UUID ๋ณ€ํ™˜ ์ฑ…์ž„ +- UUID ์—†์œผ๋ฉด 403 ์ฐจ๋‹จ + +## ์ˆ˜์ • ๋‚ด์—ญ + +### rb8001 ์ˆ˜์ • (์™„๋ฃŒ) +```python +# ๋ณ€๊ฒฝ ์ „: Slack ID ์ง์ ‘ ์‚ฌ์šฉ +slack_id = user_id + +# ๋ณ€๊ฒฝ ํ›„: UUID ์›์น™ ์ ์šฉ +if user_id.startswith('U'): + user_uuid = await self.get_uuid_from_slack(user_id) +else: + user_uuid = user_id +``` + +### ํ…Œ์ด๋ธ”๋ช… ์ˆ˜์ • (์™„๋ฃŒ) +- `gmail_tokens` โ†’ `gmail_token` +- `SELECT COUNT(*) FROM gmail_token WHERE user_id = %s` + +## ๋‚จ์€ ์ž‘์—… + +### skill-email ์„œ๋น„์Šค ์ˆ˜์ • ํ•„์š” +1. **main.py**: UUID ๊ฒ€์ฆ ๋กœ์ง ์ถ”๊ฐ€ +2. **db_credentials_provider.py**: Slack ID ์ฒ˜๋ฆฌ ์ œ๊ฑฐ, UUID๋งŒ ๋ฐ›๊ธฐ +3. **naverworks_provider.py**: UUID ๊ฒ€์ฆ ๋ฐ ์ •๊ทœํ™” + +### ์˜ํ–ฅ ๋ฒ”์œ„ +- rb8001: email_integration.py +- skill-email: ์ „์ฒด provider ๋ฐ API +- DB: gmail_token, naverworks_token ํ…Œ์ด๋ธ” ์ฟผ๋ฆฌ + +## ํ…Œ์ด๋ธ” ์Šคํ‚ค๋งˆ ํ™•์ธ (tables.md ๊ธฐ์ค€) + +### gmail_token (s ์—†์Œ!) +| ์ปฌ๋Ÿผ๋ช… | ํƒ€์ž… | ์„ค๋ช… | +|--------|------|------| +| user_id | UUID | user ํ…Œ์ด๋ธ” ์ฐธ์กฐ | +| is_equipped | BOOLEAN | ์žฅ์ฐฉ ์ƒํƒœ | + +### naverworks_token +| ์ปฌ๋Ÿผ๋ช… | ํƒ€์ž… | ์„ค๋ช… | +|--------|------|------| +| user_id | UUID | user ํ…Œ์ด๋ธ” ์ฐธ์กฐ | + +## ๊ตํ›ˆ +1. **์›์น™ ์ค€์ˆ˜**: "๋‚ด๋ถ€ ๋กœ์ง์€ UUID๋งŒ ์‚ฌ์šฉ" ์›์น™ ์ฒ ์ €ํžˆ ์ค€์ˆ˜ +2. **ํ…Œ์ด๋ธ”๋ช… ํ™•์ธ**: ๋ฌธ์„œ(tables.md) ์ฐธ์กฐํ•˜์—ฌ ์ •ํ™•ํ•œ ํ…Œ์ด๋ธ”๋ช… ์‚ฌ์šฉ +3. **์ผ๊ด€์„ฑ**: ๋ชจ๋“  ์„œ๋น„์Šค๊ฐ€ ๋™์ผํ•œ ID ์ฒด๊ณ„ ์‚ฌ์šฉ + +--- + +**๋ฌธ์„œ ๋** \ No newline at end of file