From e532e68abdc6c7aaad32a8d62fa3bcbfad86d21b Mon Sep 17 00:00:00 2001 From: Godopu Date: Tue, 25 Aug 2026 11:11:12 +0900 Subject: [PATCH] docs: update comprehensive README.md with deployment, backup, and local getting started guides - Add full architecture Mermaid diagram (Next.js frontend, Go backend, SQLite storage, Docker network) - Document Docker container production deployment (build, up, logs, ps, down) - Add detailed Getting Started guide separated into Frontend (Next.js) and Backend (Go) - Document database backup and restore methods (make backup-db and anl_dump.sql) - Document Admin Dashboard (/console) token authentication and CRUD capabilities - Detail Multi-Agent Mux (MAM) orchestration roles and protocols --- README.md | 314 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 246 insertions(+), 68 deletions(-) diff --git a/README.md b/README.md index cc9c8e1..377c1bd 100644 --- a/README.md +++ b/README.md @@ -1,123 +1,301 @@ -# 🌐 κ²½λΆλŒ€ν•™κ΅ AI μ—μ΄μ „νŠΈ λ„€νŠΈμ›Œν¬ 연ꡬ싀 (ANL) +# 🌐 κ²½λΆλŒ€ν•™κ΅ AI μ—μ΄μ „νŠΈ λ„€νŠΈμ›Œν¬ 연ꡬ싀 (ANL) 곡식 μ›Ήμ‚¬μ΄νŠΈ -> λ³Έ ν”„λ‘œμ νŠΈλŠ” **κ²½λΆλŒ€ν•™κ΅ 컴퓨터학뢀 AI μ—μ΄μ „νŠΈ λ„€νŠΈμ›Œν¬ 연ꡬ싀 (AI Agent Networking Laboratory, ANL)**의 곡식 ν™ˆνŽ˜μ΄μ§€λ₯Ό μ°¨μ„ΈλŒ€ μ›Ή 기술 μŠ€νƒ(Next.js 14+, TypeScript, Tailwind CSS)으둜 리뉴얼 및 κ΅¬μΆ•ν•˜κΈ° μœ„ν•œ ν”„λ‘œμ νŠΈμž…λ‹ˆλ‹€. +> **AI Agent Networking Laboratory (ANL), School of Computer Science and Engineering, Kyungpook National University** > -> μ—°κ΅¬μ‹€μ˜ κΈ°μ‘΄ μ‹€μΈ‘ 데이터 원본(`ISL-2026/`), μ΅œμ‹  λ©€ν‹°μ—μ΄μ „νŠΈ μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ 연ꡬ/μ„Έλ―Έλ‚˜ 자료(`multi-agent-orchestration/`), 그리고 참고용 λͺ¨λ˜ μ›Ή ν”„λ‘œν† νƒ€μž…(`refer_landing_page/`)을 ν†΅ν•©ν•˜μ—¬ μ—°κ΅¬μ‹€μ˜ μƒˆλ‘œμš΄ 기술 비전을 담은 λžœλ”©νŽ˜μ΄μ§€λ₯Ό κ°œλ°œν•©λ‹ˆλ‹€. +> λ³Έ λ¦¬ν¬μ§€ν† λ¦¬λŠ” κ²½λΆλŒ€ν•™κ΅ 컴퓨터학뢀 AI μ—μ΄μ „νŠΈ λ„€νŠΈμ›Œν¬ μ—°κ΅¬μ‹€μ˜ 곡식 μ›Ήμ‚¬μ΄νŠΈ 및 데이터 관리 λŒ€μ‹œλ³΄λ“œ μ‹œμŠ€ν…œμž…λ‹ˆλ‹€. +> μ‹€μ‹œκ°„ λŸ°νƒ€μž„ 데이터 동기화λ₯Ό μ§€μ›ν•˜λŠ” **Next.js 14+ ν”„λ‘ νŠΈμ—”λ“œ**, **Go (Gin) κ³ μ„±λŠ₯ RESTful λ°±μ—”λ“œ**, **SQLite νŠΈλžœμž­μ…˜ λ°μ΄ν„°λ² μ΄μŠ€**, 그리고 **톡합 Docker μ»¨ν…Œμ΄λ„ˆ μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜**으둜 κ΅¬μΆ•λ˜μ—ˆμŠ΅λ‹ˆλ‹€. --- -## πŸ“Œ 1. 연ꡬ싀 κ°œμš” 및 핡심 연ꡬ λΆ„μ•Ό (Lab Overview & Core Research Focus) +## πŸ“Œ 1. 연ꡬ싀 κ°œμš” 및 핡심 연ꡬ λΆ„μ•Ό (Lab Overview & Research Focus) - **연ꡬ싀λͺ…**: AI μ—μ΄μ „νŠΈ λ„€νŠΈμ›Œν¬ 연ꡬ싀 (ANL / AI Agent Networking Laboratory) - **μ†Œμ†**: κ²½λΆλŒ€ν•™κ΅ ITλŒ€ν•™ 컴퓨터학뢀 - **μ§€λ„κ΅μˆ˜**: 고석주 ꡐ수 (Prof. Seok-Joo Koh / `sjkoh@knu.ac.kr`) -- **연ꡬ νŒ¨λŸ¬λ‹€μž„ μ „ν™˜ (Research Paradigm Shift)**: - - *Legacy (κ³Όκ±°)*: 단일 λ””λ°”μ΄μŠ€ 연동 및 전톡적 사물인터넷(oneM2M, OCF) ν‘œμ€€ 연ꡬ - - **Present (ν˜„μž¬ 핡심 연ꡬ)**: **MCP & SKILL**, **λ©€ν‹°μ—μ΄μ „νŠΈ μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ 인프라 (HERDR, LangGraph)**, **이쒅 μ—μ΄μ „νŠΈ μƒν˜Έμš΄μš©μ„± ν‘œμ€€ (ACP, A2A)**, 및 **AIoT gRPC/QUIC κ³ μ„±λŠ₯ 톡신 λ°±λ³Έ** +- **연ꡬ νŒ¨λŸ¬λ‹€μž„**: + - **Present & Future**: **MCP & SKILL**, **λ©€ν‹°μ—μ΄μ „νŠΈ μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ (HERDR, crewAI, LangGraph)**, **이쒅 μ—μ΄μ „νŠΈ μƒν˜Έμš΄μš©μ„± ν‘œμ€€ (ACP, A2A)**, 및 **AIoT gRPC/QUIC κ³ μ„±λŠ₯ 톡신 λ°±λ³Έ** --- ## πŸ’‘ 2. 핡심 연ꡬ λΆ„μ•Ό (Core Research Areas) -`multi-agent-orchestration/` 연ꡬ μžμ‚°μ— κΈ°λ°˜ν•œ ANL μ—°κ΅¬μ‹€μ˜ μ£Όμš” 연ꡬ λΆ„μ•Όμž…λ‹ˆλ‹€: - ### πŸ”Œ 1) AI Agent κΈ°λŠ₯ ν™•μž₯ ν”„λ‘œν† μ½œ (MCP & SKILL) -- **MCP (Model Context Protocol)**: Anthropic μ œμ • μ˜€ν”ˆ 규격으둜 둜컬/원격 도ꡬ, 데이터(Resource), ν”„λ‘¬ν”„νŠΈ 톡일 호좜 μΈν„°νŽ˜μ΄μŠ€ -- **SKILL (자율 ν™•μž₯ 도ꡬ λͺ¨μŒ)**: μ‹€ν–‰ μ½”λ“œ + 도ꡬ λͺ…μ„Έ μŠ€ν‚€λ§ˆ + Few-shot이 κ²°ν•©λœ λͺ¨λ“ˆν™” νŒ¨ν‚€μ§• 기술 -- **CLI μ½”λ”© μ—μ΄μ „νŠΈ**: Claude Code, Antigravity CLI λ“± 터미널 기반 파일 μ œμ–΄ 및 자율 μ†Œν”„νŠΈμ›¨μ–΄ μ—”μ§€λ‹ˆμ–΄λ§ +- **MCP (Model Context Protocol)**: Anthropic μ œμ • μ˜€ν”ˆ 규격으둜 도ꡬ, 데이터 λ¦¬μ†ŒμŠ€, ν”„λ‘¬ν”„νŠΈ ν‘œμ€€ μΈν„°νŽ˜μ΄μŠ€ 연동 +- **SKILL (자율 ν™•μž₯ 도ꡬ νŒ¨ν‚€μ§€)**: μ‹€ν–‰ μ½”λ“œ + 도ꡬ λͺ…μ„Έ + Few-shot이 κ²°ν•©λœ λͺ¨λ“ˆν˜• μ—μ΄μ „νŠΈ κΈ°λŠ₯ ν™•μž₯ +- **CLI 자율 μ½”λ”© μ—μ΄μ „νŠΈ**: Claude Code, Antigravity CLI λ“± 터미널 기반 자율 μ†Œν”„νŠΈμ›¨μ–΄ μ—”μ§€λ‹ˆμ–΄λ§ -### πŸ€– 2) λ©€ν‹° μ—μ΄μ „νŠΈ ν˜‘μ—… 및 μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ 인프라 (Multi-Agent Orchestration) -- **단일 μ—μ΄μ „νŠΈ ν•œκ³„ 극볡**: Lost in the middle ν˜„μƒ λ°©μ§€, ν™˜κ°(Hallucination) μ–΅μ œ 및 μ—­ν•  μ„ΈλΆ„ν™”(Role Specialization) -- **이쒅 μ—μ΄μ „νŠΈ ꡐ차 검증**: μ„œλ‘œ λ‹€λ₯Έ LLM λͺ¨λΈκ°„ 비평/ν•©μ˜ 루프λ₯Ό ν†΅ν•œ μ‹ λ’°μ„± κ·ΉλŒ€ν™” +### πŸ€– 2) λ©€ν‹° μ—μ΄μ „νŠΈ ν˜‘μ—… 및 μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ (Multi-Agent Orchestration) +- **이쒅 μ—μ΄μ „νŠΈ ꡐ차 검증**: μ„œλ‘œ λ‹€λ₯Έ LLM λͺ¨λΈ(Planner, Creator, Reviewer) κ°„ 비평/ν•©μ˜ λ£¨ν”„λ‘œ 무결성 확보 - **μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ 인프라 μ½”μ–΄**: - - **HERDR**: 가상 λ°±κ·ΈλΌμš΄λ“œ ν”„λ‘œμ„ΈμŠ€ μ»¨ν…Œμ΄λ„ˆ 기반 μ—μ΄μ „νŠΈ μ„Έμ…˜ 격리 및 TUI 라이프사이클 κ΄€μ œ - - **crewAI**: μ—­ν• (Role), λͺ©ν‘œ(Goal), λ°°κ²½(Backstory) 기반 순차/계측 크루 ν”„λ‘œμ„ΈμŠ€ - - **LangGraph**: μƒνƒœ λ³΄μ‘΄ν˜• μˆœν™˜ κ·Έλž˜ν”„(Cyclic Graph), 루프 μ œμ–΄, μ˜ˆμ™Έ λ‘€λ°± 및 μƒνƒœ 동기화 + - **HERDR**: 가상 λ°±κ·ΈλΌμš΄λ“œ ν”„λ‘œμ„ΈμŠ€ 격리 및 μ—μ΄μ „νŠΈ μ„Έμ…˜ TUI κ΄€μ œ + - **LangGraph & crewAI**: μƒνƒœ λ³΄μ‘΄ν˜• μˆœν™˜ κ·Έλž˜ν”„, μ—­ν•  기반 λΆ„μ—… 및 μ˜ˆμ™Έ λ‘€λ°± 처리 ### 🌐 3) μ—μ΄μ „νŠΈ μƒν˜Έμš΄μš©μ„± κ°œλ°©ν˜• ν‘œμ€€ (Agent Interoperability: ACP & A2A) - **ACP (Agent Communication Protocol)**: IBM Research μ œμ • μ„œλΉ„μŠ€ 발견 및 νƒœμŠ€ν¬ μœ„μž„ μ˜€ν”ˆ ν‘œμ€€ -- **A2A (Agent-to-Agent Protocol)**: Google 및 Linux Foundation μ£Όλ„μ˜ 이쒅 μ—μ΄μ „νŠΈ κ°„ ν‘œμ€€ λ©”μ‹œμ§€ κ΅ν™˜ 및 μƒνƒœ 좔적 톡신 ν‘œμ€€ -- **Agent Card (`/.well-known/agent-card.json`)**: μ—μ΄μ „νŠΈμ˜ μ—­λŸ‰(Capabilities), μ—”λ“œν¬μΈνŠΈ, λ³΄μ•ˆ 사양을 λͺ…μ‹œν•˜λŠ” ν‘œμ€€ JSON ν”„λ‘œν•„ +- **A2A (Agent-to-Agent Protocol)**: Google/Linux Foundation 주도 이쒅 μ—μ΄μ „νŠΈ κ°„ ν‘œμ€€ λ©”μ‹œμ§€ κ΅ν™˜ 톡신 ν‘œμ€€ +- **Agent Card (`/.well-known/agent-card.json`)**: μ—μ΄μ „νŠΈ μ—­λŸ‰(Capabilities) 및 λ³΄μ•ˆ 사양 ν‘œμ€€ ν”„λ‘œν•„ -### ⚑ 4) μ§€λŠ₯ν˜• 사물인터넷 (AIoT) & κ³ μ„±λŠ₯ 톡신 λ°±λ³Έ (AIoT & gRPC/QUIC) -- **AIoT λΆ„μ‚° 자율 μ œμ–΄**: 슀마트 νŒ©ν† λ¦¬/슀마트 팜 λ“± Physical μ„Όμ„œ 계측과 μ—£μ§€ μ—°μ‚° 계측 κ°„ λ©€ν‹° μ—μ΄μ „νŠΈ λΆ„μ‚° 배치 -- **gRPC & QUIC μ–‘λ°©ν–₯ 슀트리밍**: HTTP/2 & HTTP/3 기반 Protobuf 직렬화 및 λŒ€μš©λŸ‰ λ©€ν‹°λͺ¨λ‹¬ λ°”μ΄λ„ˆλ¦¬ 고속 전솑 -- **ν•˜μ΄λΈŒλ¦¬λ“œ λ°±λ³Έ 메쉬**: μ„Όμ„œ κ³„μΈ΅μ˜ κ²½λŸ‰ ν”„λ‘œν† μ½œ(MQTT/CoAP)κ³Ό μ—£μ§€ 백본의 κ³ μ„±λŠ₯ ν”„λ‘œν† μ½œ(gRPC/QUIC) μ™„μΆ© 혼용 +### ⚑ 4) μ§€λŠ₯ν˜• 사물인터넷 (AIoT) & κ³ μ„±λŠ₯ λ°±λ³Έ (AIoT & gRPC/QUIC) +- **AIoT λΆ„μ‚° 자율 μ œμ–΄**: μ„Όμ„œ 계측과 μ—£μ§€ μ—°μ‚° 계측 κ°„ λ©€ν‹° μ—μ΄μ „νŠΈ λΆ„μ‚° 배치 +- **gRPC & QUIC μ–‘λ°©ν–₯ 슀트리밍**: HTTP/2 & HTTP/3 기반 고속 λ°”μ΄λ„ˆλ¦¬ λ©€ν‹°λͺ¨λ‹¬ 전솑 --- -## πŸ“ 3. 디렉터리 ꡬ쑰 및 μ—­ν•  (Directory Structure) +## πŸ—οΈ 3. μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜ (System Architecture) + +```mermaid +graph TD + User["🌐 User / Browser"] + Admin["πŸ‘‘ Admin User"] + + subgraph Docker_Network ["Docker Bridge Network (anl-net)"] + subgraph Frontend_App ["Next.js 14 Frontend (anl-frontend:3000)"] + PublicPages["Public Pages (force-dynamic)
/, /members, /publications, /lectures, /standardization"] + AdminConsole["Admin Dashboard (/console)
Research Projects, Areas, Members, Pubs, Lectures, Standards"] + API_Client["Typed API Client (lib/api.ts, lib/adminApi.ts)"] + end + + subgraph Backend_App ["Go Gin Backend API (anl-backend:8080)"] + Router["REST API Router & CORS"] + AuthMW["RequireAdminToken Middleware"] + Handlers["CRUD Handlers (Home, Members, Pubs, Lectures, Standards)"] + Repo["Repository Layer & Transaction Order Normalizer"] + end + + subgraph Storage ["Persistent Volume Storage (anl-sqlite-storage)"] + SQLiteDB[("SQLite Database
/app/data/anl.db")] + end + end + + User -->|HTTP :3000| PublicPages + Admin -->|Bearer Auth :3000| AdminConsole + PublicPages --> API_Client + AdminConsole --> API_Client + API_Client -->|REST API :8080| Router + Router --> AuthMW + AuthMW --> Handlers + Handlers --> Repo + Repo --> SQLiteDB +``` + +--- + +## πŸ“ 4. 디렉터리 ꡬ쑰 (Directory Structure) ``` landing_page/ -β”œβ”€β”€ README.md # [λ³Έ λ¬Έμ„œ] 5λŒ€ 연ꡬ κΈ°λ‘₯ 반영 톡합 μ˜¨λ³΄λ”© κ°€μ΄λ“œ -β”œβ”€β”€ ISL-2026/ # πŸ“„ [μ‹€μ œ 데이터 원본] κΈ°μ‘΄ 연ꡬ싀 곡식 ν™ˆνŽ˜μ΄μ§€ (HTML/CSS 및 ꡐ수/연ꡬ원/싀적 데이터) -β”‚ β”œβ”€β”€ index.html # 메인 λžœλ”©νŽ˜μ΄μ§€ & λ ˆκ±°μ‹œ 연ꡬ λΆ„μ•Ό μ†ŒμŠ€ -β”‚ β”œβ”€β”€ member.html # κ΅μˆ˜μ§„, 석/박사 연ꡬ원, 학뢀연ꡬ생, 쑸업생 λͺ©λ‘ -β”‚ β”œβ”€β”€ paper-international.html # κ΅­μ™Έ 저널 및 ν•™νšŒ λ…Όλ¬Έ 싀적 -β”‚ β”œβ”€β”€ paper-domestic.html # κ΅­λ‚΄ 저널 및 ν•™νšŒ λ…Όλ¬Έ 싀적 -β”‚ β”œβ”€β”€ patent.html # νŠΉν—ˆ 등둝/μΆœμ› 싀적 -β”‚ └── standard.html # ꡭ제/κ΅­λ‚΄ ν‘œμ€€ν™” κΈ°μ—¬ λ‚΄μ—­ (oneM2M, ITU-T λ“±) +β”œβ”€β”€ README.md # [λ³Έ λ¬Έμ„œ] μ’…ν•© ν”„λ‘œμ νŠΈ κ°€μ΄λ“œ 및 배포/운영 λ¬Έμ„œ +β”œβ”€β”€ docker-compose.yml # 톡합 Docker Compose λ©€ν‹° μ„œλΉ„μŠ€ μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ +β”œβ”€β”€ .env.example # ν™˜κ²½λ³€μˆ˜ μ„€μ • ν…œν”Œλ¦Ώ β”‚ -β”œβ”€β”€ multi-agent-orchestration/ # πŸ“š [μ‹ κ·œ 연ꡬ λΆ„μ•Ό 상세 ꡐ윑 & μ„Έλ―Έλ‚˜ 자료] -β”‚ β”œβ”€β”€ lecture_summary.md # AI Multi-Agents μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ 핡심 기술 μš”μ•½ -β”‚ β”œβ”€β”€ SLIDE.md # 연ꡬ μ„Έλ―Έλ‚˜ 톡합 λ°œν‘œ 자료 -β”‚ β”œβ”€β”€ implementation_plan.md # μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ κ²€ν†  및 반영 루프 κ³„νš -β”‚ └── chapters/ # 0~6μž₯ 챕터별 상세 연ꡬ λ¬Έμ„œ (Prompt, MCP, HERDR, A2A, gRPC λ“±) +β”œβ”€β”€ backend/ # ⚑ [Go λ°±μ—”λ“œ REST API] +β”‚ β”œβ”€β”€ cmd/ # μ§„μž…μ  (api: API μ„œλ²„, seed: μ‹œλ”, export-content) +β”‚ β”œβ”€β”€ internal/ # λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 (handlers, repository, router, config, httpx) +β”‚ β”œβ”€β”€ db/backup/ # πŸ’Ύ λ°μ΄ν„°λ² μ΄μŠ€ λ°±μ—… (anl.db λ°”μ΄λ„ˆλ¦¬, anl_dump.sql 전체 덀프) +β”‚ β”œβ”€β”€ seed/data/ # 초기 μ›μ‹œ JSON μ‹œλ“œ 데이터 +β”‚ β”œβ”€β”€ Dockerfile # λ°±μ—”λ“œ κ²½λŸ‰ Multi-stage Dockerfile (Alpine 3.20) +β”‚ β”œβ”€β”€ Makefile # λΉŒλ“œ, ν…ŒμŠ€νŠΈ, 포맷, λ°±μ—…(make backup-db) νƒ€κ²Ÿ +β”‚ └── go.mod # Go λͺ¨λ“ˆ μ˜μ‘΄μ„± μ •μ˜ β”‚ -β”œβ”€β”€ refer_landing_page/ # πŸš€ [νƒ€κ²Ÿ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜] Next.js 14+ App Router -β”‚ β”œβ”€β”€ app/ # Next.js App Router νŽ˜μ΄μ§€ (Home /, members, publications, lectures, standardization) -β”‚ β”œβ”€β”€ components/ # λͺ¨λ“ˆν™”λœ UI μ»΄ν¬λ„ŒνŠΈ (Header, Footer, PageHeader, SectionLabel, Reveal, Counter, Marquee) -β”‚ β”œβ”€β”€ docs/DESIGN.md # κ³ λŒ€λΉ„ λ§€κ±°μ§„ 에디토리얼 λ””μžμΈ μ‹œμŠ€ν…œ κ°€μ΄λ“œ λ¬Έμ„œ -β”‚ └── tailwind.config.ts # λ””μžμΈ 토큰 및 μ‹œκ° μŠ€νƒ€μΌ κ·œμΉ™ μ •μ˜ +β”œβ”€β”€ refer_landing_page/ # πŸš€ [Next.js 14 ν”„λ‘ νŠΈμ—”λ“œ & κ΄€λ¦¬μž μ½˜μ†”] +β”‚ β”œβ”€β”€ app/ # App Router νŽ˜μ΄μ§€ (곡개 νŽ˜μ΄μ§€ 및 /console κ΄€λ¦¬μž λŒ€μ‹œλ³΄λ“œ) +β”‚ β”œβ”€β”€ components/ # UI μ»΄ν¬λ„ŒνŠΈ (Header, Footer, Reveal, Counter, Marquee λ“±) +β”‚ β”œβ”€β”€ lib/ # API 톡신 ν΄λΌμ΄μ–ΈνŠΈ (api.ts: 쑰회, adminApi.ts: CRUD) +β”‚ β”œβ”€β”€ docs/ # λ””μžμΈ μ‹œμŠ€ν…œ (DESIGN.md: Issue 01 에디토리얼 μŠ€νƒ€μΌ) +β”‚ β”œβ”€β”€ scripts/ # E2E ν…ŒμŠ€νŠΈ μŠ€μœ„νŠΈ 및 데이터 검증 λŸ¬λ„ˆ +β”‚ β”œβ”€β”€ Dockerfile # ν”„λ‘ νŠΈμ—”λ“œ Standalone Multi-stage Dockerfile (Node 20 Alpine) +β”‚ β”œβ”€β”€ next.config.js # output: "standalone" ν”„λ‘œλ•μ…˜ λ²ˆλ“€λ§ μ„€μ • +β”‚ └── package.json # Next.js, React, Tailwind CSS μ˜μ‘΄μ„± β”‚ -β”œβ”€β”€ .agents/ # πŸ€– λ©€ν‹° μ—μ΄μ „νŠΈ μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ κ·œμΉ™ 및 μŠ€ν‚¬ νˆ΄ν‚· (MAM) -β”œβ”€β”€ .mam/ # ⚑ μ—μ΄μ „νŠΈ μ„Έμ…˜ DB 및 HERDR 격리 λ ˆμ§€μŠ€νŠΈλ¦¬ -└── docs/ & research/ # μž‘μ—… λ…ΈνŠΈ, κ²°μ • 기둝(ADR) 및 연ꡬ λ…Όλ¬Έ μ•„μΉ΄μ΄λΈŒ +β”œβ”€β”€ .agents/ # πŸ€– λ©€ν‹° μ—μ΄μ „νŠΈ μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ μŠ€ν‚¬ & λ£°μ…‹ (MAM) +β”œβ”€β”€ .mam/ # ⚑ μ—μ΄μ „νŠΈ μ„Έμ…˜ DB 및 HERDR 격리 λ ˆμ§€μŠ€νŠΈλ¦¬ +└── ISL-2026/ # πŸ“„ λ ˆκ±°μ‹œ μ‹€μΈ‘ 원본 HTML/CSS μ•„μΉ΄μ΄λΈŒ ``` --- -## 🎯 4. μ˜¨λ³΄λ”© 개발 λ―Έμ…˜ (Development Missions for Agents) +## πŸš€ 5. Docker μ»¨ν…Œμ΄λ„ˆ 배포 및 운영 κ°€μ΄λ“œ (Production Deployment) -### πŸ“₯ Mission 1: μ‹€μ œ λ ˆκ±°μ‹œ 데이터 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ & μ‹ κ·œ 5λŒ€ 연ꡬ κΈ°λ‘₯ 반영 -- `ISL-2026/` λ ˆκ±°μ‹œ 데이터(κ΅μˆ˜μ§„, 연ꡬ원, λ…Όλ¬Έ, νŠΉν—ˆ, κ°•μ˜)λ₯Ό μΆ”μΆœν•˜μ—¬ `refer_landing_page/app//page.tsx` λ‚΄ 데이터 ꡬ쑰둜 κ΅μ²΄ν•©λ‹ˆλ‹€. -- 연ꡬ싀 메인 λžœλ”©νŽ˜μ΄μ§€(`app/page.tsx`) 상단 λΉ„μ£Όμ–Ό, ν‚€μ›Œλ“œ λ§ˆν€΄(`Marquee`), μΉ΄μš΄ν„° 수치(`Counter`)에 **A2A, MCP, HERDR, LangGraph, gRPC/QUIC** λ“± 5λŒ€ μ‹ κ·œ 연ꡬ ν‚€μ›Œλ“œ 및 μ„±κ³Όλ₯Ό μ „λ©΄ κ°•μ‘°ν•©λ‹ˆλ‹€. +λ‹€λ₯Έ μ›Œν¬μŠ€ν…Œμ΄μ…˜μ΄λ‚˜ μ„œλ²„μ—μ„œ Dockerλ₯Ό 톡해 μ›ν΄λ¦­μœΌλ‘œ 전체 μ‹œμŠ€ν…œμ„ λΉŒλ“œν•˜κ³  λ°°ν¬ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€. -### 🎨 Mission 2: κ³ λŒ€λΉ„ 에디토리얼 λ””μžμΈ μ‹œμŠ€ν…œ μ€€μˆ˜ -- `refer_landing_page/docs/DESIGN.md`에 λͺ…μ‹œλœ 에디토리얼 λ””μžμΈ μ‹œμŠ€ν…œ("Issue 01") κ·œκ²©μ„ μ—„κ²©νžˆ μ€€μˆ˜ν•©λ‹ˆλ‹€. -- `ISL-2026/assets/`의 둜고 및 인물/연ꡬ 사진을 `refer_landing_page/public/`으둜 μ΄κ΄€ν•©λ‹ˆλ‹€. +### 1) μ €μž₯μ†Œ 클둠 및 ν™˜κ²½ μ„€μ • +```bash +# 1. μ €μž₯μ†Œ 클둠 +git clone <리포지토리_URL> landing_page +cd landing_page -### πŸ” Mission 3: SEO, λ°˜μ‘ν˜• UI & λΉŒλ“œ 검증 -- λͺ¨λ“  νŽ˜μ΄μ§€μ— SEO νƒœκ·Έ(Title, Description, Open Graph, Semantic HTML5) 적용. -- `npm run build` νƒ€μž…/린트 였λ₯˜ 0건 및 λ°˜μ‘ν˜• UI κ²€μˆ˜. +# 2. ν™˜κ²½λ³€μˆ˜ 파일 생성 +cp .env.example .env ---- +# (선택) .env νŒŒμΌμ—μ„œ κ΄€λ¦¬μž 토큰(ADMIN_TOKEN) 및 포트 λ³€κ²½ κ°€λŠ₯ +``` -## πŸ‘₯ 5. λ©€ν‹° μ—μ΄μ „νŠΈ μ—­ν•  (Multi-Agent Team Protocol) +### 2) μ»¨ν…Œμ΄λ„ˆ 이미지 λΉŒλ“œ +```bash +# ν”„λ‘ νŠΈμ—”λ“œ 및 λ°±μ—”λ“œ 이미지 λ™μ‹œ λΉŒλ“œ +docker compose build -| μ—μ΄μ „νŠΈ | λ‹΄λ‹Ή μ—­ν•  (Role) | μ£Όμš” μž„λ¬΄ (Primary Responsibilities) | -| :--- | :--- | :--- | -| 🧠 **Claude** | `planner and reviewer` | 5λŒ€ 연ꡬ κΈ°λ‘₯ 반영 κ²€ν† , 데이터 무결성 검증, μ΅œμ’… μ½”λ“œ PR 승인 | -| 🎨 **Agy** (Antigravity) | `creator` | Component 개발, `ISL-2026` 및 `multi-agent-orchestration` 연ꡬ 데이터 μΆ”μΆœ 및 μ½”λ“œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ | -| πŸ” **Cline** | `reviewer` | UI/UX λ°˜μ‘ν˜• κ²€μˆ˜, SEO 및 Accessibility 점검, 린트/νƒ€μž… μ•ˆμ „μ„± 검증 | +# (선택) μΊμ‹œ 없이 전체 μž¬λΉŒλ“œ μ‹œ +docker compose build --no-cache +``` -> ⚠️ λͺ¨λ“  μ—μ΄μ „νŠΈλŠ” ν”„λ‘œμ νŠΈ 루트의 [`AGENTS.md`](./AGENTS.md) μ§€μΉ¨ 및 [`.agents/MULTI_AGENT_RULES.md`](./.agents/MULTI_AGENT_RULES.md) κ·œμ•½μ„ μ€€μˆ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. +### 3) μ„œλΉ„μŠ€ λ°±κ·ΈλΌμš΄λ“œ 배포 및 μ‹€ν–‰ +```bash +# 1. μ»¨ν…Œμ΄λ„ˆ λ°±κ·ΈλΌμš΄λ“œ μ‹€ν–‰ +docker compose up -d + +# 2. μ‹€ν–‰ μƒνƒœ 및 ν—¬μŠ€μ²΄ν¬ 확인 (anl-backend-api 및 anl-frontend-app) +docker compose ps + +# 3. μ‹€μ‹œκ°„ 둜그 λͺ¨λ‹ˆν„°λ§ +docker compose logs -f +``` + +### 4) μ„œλΉ„μŠ€ 접속 URL +- **🌐 곡식 ν™ˆνŽ˜μ΄μ§€**: [`http://localhost:3000`](http://localhost:3000) +- **πŸ‘‘ κ΄€λ¦¬μž λŒ€μ‹œλ³΄λ“œ**: [`http://localhost:3000/console`](http://localhost:3000/console) (둜그인 토큰: `.env`에 μ„€μ •λœ `ADMIN_TOKEN`) +- **⚑ λ°±μ—”λ“œ REST API**: [`http://localhost:8080/api/v1`](http://localhost:8080/api/v1) +- **πŸ’“ API ν—¬μŠ€μ²΄ν¬**: [`http://localhost:8080/api/v1/health`](http://localhost:8080/api/v1/health) + +### 5) μ»¨ν…Œμ΄λ„ˆ 관리 및 쀑지 +```bash +# μ„œλΉ„μŠ€ μž¬μ‹œμž‘ +docker compose restart + +# μ„œλΉ„μŠ€ 쀑지 및 μ»¨ν…Œμ΄λ„ˆ 제거 (λ°μ΄ν„°λ² μ΄μŠ€ λ³Όλ₯¨μ€ μ•ˆμ „ν•˜κ²Œ 보쑴됨) +docker compose down + +# (주의) λ°μ΄ν„°λ² μ΄μŠ€ λ³Όλ₯¨κΉŒμ§€ μ™„μ „νžˆ μ‚­μ œν•˜κ³  μ΄ˆκΈ°ν™”ν•  λ•Œ +docker compose down -v +``` --- ## πŸ› οΈ 6. 둜컬 개발 및 μ‹€ν–‰ κ°€μ΄λ“œ (Getting Started) +Docker 없이 둜컬 개발 ν™˜κ²½μ—μ„œ ν”„λ‘ νŠΈμ—”λ“œμ™€ λ°±μ—”λ“œλ₯Ό 각각 직접 μ‹€ν–‰ν•˜κ³  κ°œλ°œν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€. + +### πŸ…°οΈ Backend (Go REST API) 개발 κ°€μ΄λ“œ + +#### 사전 μš”κ΅¬μ‚¬ν•­ +- **Go 1.22+** (ꢌμž₯: Go 1.26+) +- **SQLite 3** +- **Make** λΉŒλ“œ 도ꡬ + +#### μ‹€ν–‰ 절차 ```bash -# 1. 참고용 μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ””λ ‰ν„°λ¦¬λ‘œ 이동 +# 1. λ°±μ—”λ“œ λ””λ ‰ν„°λ¦¬λ‘œ 이동 +cd backend + +# 2. ν™˜κ²½ μ„€μ • 파일 볡사 +cp .env.example .env + +# 3. Go λͺ¨λ“ˆ μ˜μ‘΄μ„± λ‹€μš΄λ‘œλ“œ +go mod download + +# 4. λ°μ΄ν„°λ² μ΄μŠ€ λ°±μ—…λ³Έ 볡원 (μ΅œμ‹  μ‹€μΈ‘ 데이터 223건 적재) +sqlite3 anl.db < db/backup/anl_dump.sql + +# 5. λ°±μ—”λ“œ API μ„œλ²„ λΉŒλ“œ 및 μ‹€ν–‰ (κΈ°λ³Έ 포트: http://localhost:8080) +make run + +# 6. (별도 터미널) μœ λ‹› ν…ŒμŠ€νŠΈ 및 μ½”λ“œ ν’ˆμ§ˆ 검사 +make test # μœ λ‹› ν…ŒμŠ€νŠΈ μ‹€ν–‰ +make fmt-check # gofmt 포맷 검사 +make vet # go vet 정적 뢄석 +``` + +--- + +### πŸ…±οΈ Frontend (Next.js 14+) 개발 κ°€μ΄λ“œ + +#### 사전 μš”κ΅¬μ‚¬ν•­ +- **Node.js 20+** (LTS) +- **npm 10+** + +#### μ‹€ν–‰ 절차 +```bash +# 1. ν”„λ‘ νŠΈμ—”λ“œ λ””λ ‰ν„°λ¦¬λ‘œ 이동 cd refer_landing_page # 2. μ˜μ‘΄μ„± νŒ¨ν‚€μ§€ μ„€μΉ˜ npm install -# 3. 개발 μ„œλ²„ μ‹€ν–‰ (κΈ°λ³Έ 포트: http://localhost:3000) +# 3. 둜컬 ν™˜κ²½λ³€μˆ˜ 파일 μ„€μ • (ν•„μš” μ‹œ) +# κΈ°λ³Έκ°’μœΌλ‘œ http://localhost:8080/api/v1에 μžλ™ μ—°κ²°λ©λ‹ˆλ‹€. +echo "NEXT_PUBLIC_API_BASE_URL=http://localhost:8080/api/v1" > .env.local + +# 4. 개발 μ„œλ²„ μ‹€ν–‰ (κΈ°λ³Έ 포트: http://localhost:3000) npm run dev -# 4. ν”„λ‘œλ•μ…˜ λΉŒλ“œ ν…ŒμŠ€νŠΈ (검증 μ‹œ μ‚¬μš©) -npm run build +# 5. ν”„λ‘œλ•μ…˜ λΉŒλ“œ 및 νƒ€μž… 검사 +npm run lint # ESLint 정적 뢄석 +npx tsc --noEmit # TypeScript 엄격 νƒ€μž… 검사 +npm run build # Next.js Standalone ν”„λ‘œλ•μ…˜ λΉŒλ“œ + +# 6. 전체 톡합 E2E ν…ŒμŠ€νŠΈ μŠ€μœ„νŠΈ μ‹€ν–‰ (Gate 0~11 μžλ™ 검증) +python3 scripts/run_e2e_tests.py ``` + +--- + +## πŸ’Ύ 7. λ°μ΄ν„°λ² μ΄μŠ€ λ°±μ—… 및 볡원 κ°€μ΄λ“œ (Database Backup & Restore) + +μ—°κ΅¬μ‹€μ˜ μ†Œμ€‘ν•œ λ…Όλ¬Έ, νŠΉν—ˆ, 멀버, κ°•μ˜, ν‘œμ€€ν™” λ°μ΄ν„°λŠ” SQLite λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό 톡해 κ΄€λ¦¬λ˜λ©°, μ†μ‰¬μš΄ λ°±μ—…/볡원 도ꡬλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. + +### 1) λ°±μ—… 파일 ꡬ성 (`backend/db/backup/`) +- **`anl.db`**: SQLite λ°”μ΄λ„ˆλ¦¬ 온라인 μŠ€λƒ…μƒ· 파일 +- **`anl_dump.sql`**: μŠ€ν‚€λ§ˆ DDL 및 전체 11개 ν…Œμ΄λΈ” 데이터 INSERT문이 ν¬ν•¨λœ ν‘œμ€€ SQL ν…μŠ€νŠΈ 덀프 (Git 좔적 관리) + +### 2) λ°μ΄ν„°λ² μ΄μŠ€ μ¦‰μ‹œ λ°±μ—… λͺ…λ Ήμ–΄ +μ–Έμ œλ“ μ§€ λ°±μ—”λ“œ λ””λ ‰ν„°λ¦¬μ—μ„œ λͺ…λ Ήμ–΄ ν•œ μ€„λ‘œ μ΅œμ‹  μƒνƒœλ₯Ό λ°±μ—…ν•  수 μžˆμŠ΅λ‹ˆλ‹€: +```bash +cd backend +make backup-db +``` + +### 3) μ‹ κ·œ ν™˜κ²½ λ˜λŠ” Docker μ»¨ν…Œμ΄λ„ˆ 볡원 방법 + +#### 🐳 Docker 배포 ν™˜κ²½μ—μ„œ 볡원 (μΆ”μ²œ) +```bash +docker compose exec -T anl-backend sqlite3 /app/data/anl.db < backend/db/backup/anl_dump.sql +``` + +#### πŸ’» 둜컬 개발 ν™˜κ²½μ—μ„œ 볡원 +```bash +cd backend +sqlite3 anl.db < db/backup/anl_dump.sql +``` + +--- + +## πŸ‘‘ 8. κ΄€λ¦¬μž λŒ€μ‹œλ³΄λ“œ (`/console`) μ‚¬μš© κ°€μ΄λ“œ + +연ꡬ싀 ν™ˆνŽ˜μ΄μ§€μ˜ λͺ¨λ“  데이터λ₯Ό μ›Ή UIμ—μ„œ μ‹€μ‹œκ°„μœΌλ‘œ μΆ”κ°€, μˆ˜μ •, μ‚­μ œν•  수 μžˆλŠ” κ΄€λ¦¬μž μ½˜μ†”μ„ μ§€μ›ν•©λ‹ˆλ‹€. + +1. **접속 경둜**: [`http://localhost:3000/console/login`](http://localhost:3000/console/login) +2. **κ΄€λ¦¬μž 인증**: + - λ°±μ—”λ“œ `.env` νŒŒμΌμ— μ •μ˜λœ `ADMIN_TOKEN` (κΈ°λ³Έκ°’: `anl-admin-secret-token-2026`)을 μž…λ ₯ν•˜μ—¬ λ‘œκ·ΈμΈν•©λ‹ˆλ‹€. + - 인증 토큰은 λΈŒλΌμš°μ € μ„Έμ…˜μ— μ €μž₯되며, λͺ¨λ“  λ³€μ‘° μš”μ²­(`POST`, `PUT`, `DELETE`)에 `Authorization: Bearer ` ν—€λ”λ‘œ μžλ™ μ²¨λΆ€λ©λ‹ˆλ‹€. +3. **제곡 κΈ°λŠ₯**: + - **μ£Όμš” 연ꡬ 과제 (`/console/research-projects`)**: 과제λͺ…, κΈ°κ°„, μ£Όκ΄€κΈ°κ΄€, 연ꡬ비 λ“± CRUD + - **핡심 연ꡬ λΆ„μ•Ό (`/console/research-areas`)**: 연ꡬ λΆ„μ•Ό CRUD 및 **μˆœμ„œ λ³€κ²½ μ‹œ 1..N μžλ™ μ •κ·œν™” & μ‹œν”„νŠΈ** + - **ꡬ성원/쑸업생 (`/console/members`)**: ꡐ수, 연ꡬ원, 쑸업생 인적사항, 연ꡬ뢄야, μ·¨μ—…μ²˜ CRUD + - **λ…Όλ¬Έ/νŠΉν—ˆ 싀적 (`/console/publications`)**: κ΅­μ™Έ/κ΅­λ‚΄ ν•™μˆ μ§€ 및 ν•™μˆ λŒ€νšŒ, νŠΉν—ˆ 싀적 223건 CRUD + - **κ°•μ˜ μžλ£Œμ‹€ (`/console/lectures`)**: 학기별 κ°œμ„€ κ³Όλͺ©, κ°•μ˜ κ°œμš”, λ‹€μš΄λ‘œλ“œ 링크 관리 + - **ν‘œμ€€ν™” 기ꡬ (`/console/standardization`)**: oneM2M, ITU-T λ“± 기ꡬ별 ν‘œμ€€ λ¬Έμ„œ 번호 및 μƒνƒœ 관리 + +--- + +## πŸ‘₯ 9. λ©€ν‹° μ—μ΄μ „νŠΈ μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ ν”„λ‘œν† μ½œ (MAM) + +λ³Έ ν”„λ‘œμ νŠΈλŠ” Multi-Agent Mux (MAM) 기반의 자율 μ—μ΄μ „νŠΈ ν˜‘μ—… 루프λ₯Ό 톡해 개발 및 μœ μ§€λ³΄μˆ˜λ©λ‹ˆλ‹€. + +| μ—μ΄μ „νŠΈ μ„Έμ…˜λͺ… | λ‹΄λ‹Ή μ—­ν•  (Role) | 도ꡬ/λŸ°νƒ€μž„ | μ£Όμš” μž„λ¬΄ | +| :--- | :--- | :--- | :--- | +| 🧠 **`planner-reviewer-claude-01`** | `planner and reviewer` | Claude Code | μ•„ν‚€ν…μ²˜ 섀계, κ΅¬ν˜„ κ³„νš 수립, 데이터 무결성 검증, μ΅œμ’… PASS νŒμ • | +| 🎨 **`creator-agy-01`** | `creator` | Antigravity CLI | μ»΄ν¬λ„ŒνŠΈ 개발, λ°±μ—”λ“œ API κ΅¬ν˜„, Docker μ»¨ν…Œμ΄λ„ˆν™”, λ¦¬νŒ©ν† λ§ | +| πŸ” **`reviewer-cline-01`** | `reviewer` | Cline | μ›Ή ν‘œμ€€/SEO κ²€μˆ˜, νƒ€μž… μ•ˆμ „μ„±, Docker λ„€νŠΈμ›Œν¬/λ³΄μ•ˆ 심측 μ½”λ“œ 리뷰 | + +- **자율 루프 μ‹€ν–‰**: `bash .agents/skills/multi-agent-mux-loop/scripts/run_loop.sh --all-reviewer --target-agent "creator-agy-01" --task "<μž‘μ—…λ‚΄μš©>"` +- **μ„Έμ…˜ μƒνƒœ 확인**: `bash .agents/skills/multi-agent-mux-status/scripts/status.sh`