# ๐ ์๊ตฌ์ฌํญ ๋ช
์ธ์ (Requirements Specification)
## ๊ฒฝ๋ถ๋ํ๊ต AI ์์ด์ ํธ ๋คํธ์ํฌ ์ฐ๊ตฌ์ค (ANL) ๊ณต์ ํํ์ด์ง
| ํญ๋ชฉ | ๋ด์ฉ |
| :--- | :--- |
| **๋ฌธ์ ID** | `REQ-ANL-WEB-001` |
| **๋ฒ์ ** | `1.6` |
| **์์ฑ์ผ** | 2026-07-30 |
| **์์ฑ์** | claude (`canary-projects-landing-page-creator-claude`) ยท Role: planner |
| **์ํ** | ์น์ธ (Approved) โ v1.5์์ **D-01** ํ์ (AยทB์ ๊ธฐ๊ฐ / `intl-conf` ํ๊ธฐ ยท 3๊ฐ ์นดํ
๊ณ ๋ฆฌ), v1.6์์ **D-06** ํ์ (๋ ์ด์์ ์ปจํ
์ด๋ 3๊ณ์ธต ๋ถ๋ฆฌ). ์์ฌ ๋ฏธ๊ฒฐ D-02ยทD-03ยทD-05๋ ๐ก ๋ฑ๊ธ์ผ๋ก ๊ฐ ๊ธฐ๋ณธ๊ฐ์ด ์ ์ฉ๋์ด ์น์ธ์ ๋ณด๋ฅํ์ง ์๋๋ค |
| **๋์ ๋
์** | General Manager, Developer Team Leader(Agy), Reviewer Team Leader(Cline), ์ง๋๊ต์ |
| **์ ํ ๋ฌธ์** | [`README.md`](./README.md), [`.agents/MULTI_AGENT_RULES.md`](./.agents/MULTI_AGENT_RULES.md), [`refer_landing_page/docs/DESIGN.md`](./refer_landing_page/docs/DESIGN.md) |
| **์ ์ฉ ๋ฒ์** | `refer_landing_page/` (Next.js 14 App Router ์ ํ๋ฆฌ์ผ์ด์
) ์ ์ฒด |
> **๋ณธ ๋ฌธ์์ ์ฑ๊ฒฉ**: ์ฝ๋๋ฅผ ํฌํจํ์ง ์๋ **๋ช
์ธ ๋ฌธ์**์
๋๋ค. ๋ฐ์ดํฐ ์คํค๋ง์ ์ธํฐํ์ด์ค ์ ์์ ํํด TypeScript ํ์
ํ๊ธฐ๋ฅผ ์ฌ์ฉํ๋, ์ด๋ ๊ณ์ฝ(contract) ๊ธฐ์ ์ ์ํ ๊ฒ์ด๋ฉฐ ๊ตฌํ ์ฝ๋๊ฐ ์๋๋๋ค.
---
## 1. ์๋ณธ ์๊ตฌ์ฌํญ (์ฌ์ฉ์ ์ ๊ณต ยท ์ ๋ณธ)
> ์๋๋ ์ฌ์ฉ์๊ฐ ์ง์ ์์ฑํ ์๊ตฌ์ฌํญ ์๋ฌธ์ด๋ฉฐ, **๋ณธ ๋ช
์ธ์ ์ ์ฒด์ ์ ๋ณธ(normative source)** ์ด๋ค.
> ์ดํ ๋ชจ๋ ์ ์ ์ด ์๋ฌธ์ ๊ตฌ์ฒดํํ ๊ฒ์ด๋ฉฐ, ์๋ฌธ๊ณผ ์ถฉ๋ํ๋ ์์ ์ด ์๋ค๋ฉด **์๋ฌธ์ด ์ฐ์ **ํ๋ค.
```
- ํํ์ด์ง ์๋จ ํญ์ ๋ค์๊ณผ ๊ฐ์
- Home: ์ฐ๊ตฌ์ค ์๊ฐ, ์ฐ๊ตฌ์ค ์ฃผ์ ์ฐ๊ตฌ ๋ถ์ผ ์๊ฐ, ์ค์๋๊ธธ
- Members: ๊ธฐ์กด ์ ๋ณด ๊ทธ๋๋ก ๋ณด์กด๋์ด์ผ ํจ
- Publications: ๊ธฐ์กด ์ ๋ณด ๊ทธ๋๋ก ๋ณด์กด๋์ด์ผ ํ๋ฉฐ, ๋ค์ ์นดํ
๊ณ ๋ฆฌ๋ก ๊ตฌ๋ถ๋์ด์ผ ํจ
- International Conference
- International Journal & Conference
- Domestic Journal & Conference
- Patent
- Lectures: ๊ธฐ์กด ์ ๋ณด ๊ทธ๋๋ก ๋ณด์กด๋์ด์ผ ํจ
- Standardization: ๊ธฐ์กด ์ ๋ณด ๊ทธ๋๋ก ๋ณด์กด๋์ด์ผ ํจ
```
### 1.1 ์๋ฌธ์์ ๋์ถ๋๋ ์ต์์ ์์น
| ID | ์์น | ๊ทผ๊ฑฐ ๋ฌธ๊ตฌ |
| :--- | :--- | :--- |
| **PR-01** | **๋ฌด์์ค ๋ณด์กด (Lossless Preservation)** โ ๋ ๊ฑฐ์ `ISL-2026/`์ ๋ ์ฝ๋๋ **ํ ๊ฑด๋ ๋๋ฝ๋์ง ์๊ณ **, ๋ฌธ๊ตฌยทํ๊ธฐยท์์๊ฐ ์์๋ก ๋ณํ๋์ง ์์ ์ฑ ์ด๊ด๋์ด์ผ ํ๋ค | "๊ธฐ์กด ์ ๋ณด ๊ทธ๋๋ก ๋ณด์กด๋์ด์ผ ํจ" (4ํ ๋ฐ๋ณต) |
| **PR-02** | **์๋จ ํญ 5์ข
๊ณ ์ ** โ Home / Members / Publications / Lectures / Standardization | "ํํ์ด์ง ์๋จ ํญ์ ๋ค์๊ณผ ๊ฐ์" |
| **PR-03** | **Home 3๊ตฌ์ฑ** โ ์ฐ๊ตฌ์ค ์๊ฐ ยท ์ฃผ์ ์ฐ๊ตฌ ๋ถ์ผ ์๊ฐ ยท ์ค์๋ ๊ธธ | Home ํญ๋ชฉ |
| **PR-04** | **Publications ๋ถ๋ฅ** โ ์๋ฌธ์ ๋ช
์๋ 4๊ฐ ์นดํ
๊ณ ๋ฆฌ ๋ผ๋ฒจ์ ์ถ๋ฐ์ ์ผ๋ก ์ผ๋๋ค. *(v1.5: ์๋ฌธ 1๋ฒ `International Conference`๋ ยง12.1 D-01 ํ์ ์ ๋ฐ๋ผ ํ๊ธฐ๋์ด **์ต์ข
3๋ถ๋ฅ**๋ก ํ์ . ์๋ฌธ ๋ฌธ๊ตฌ ์์ฒด๋ ยง1์ ์ ๋ณธ ๊ทธ๋๋ก ๋ณด์กดํ๋ฉฐ, ์ด ์ถ์๋ ํด๋น ๋ผ๋ฒจ์ ๋ฐฐ์ ๋ ๋ ์ฝ๋๊ฐ 0๊ฑด์ด๋ฏ๋ก PR-01 ๋ฌด์์ค ์์น๊ณผ ์ถฉ๋ํ์ง ์๋๋ค)* | Publications ํญ๋ชฉ |
> โ ๏ธ **PR-01์ ํด์**: "๊ทธ๋๋ก ๋ณด์กด"์ **๋ฐ์ดํฐ์ ๋ฌด์์ค**์ ์๋ฏธํ๋ฉฐ, *๋ ๊ฑฐ์์ ์๊ฐ์ ํํ์ ๊ทธ๋๋ก ๋ณต์ ํ๋ผ๋ ๋ป์ด ์๋๋ค.* ํํ์ ์ ๊ท ๋์์ธ ์์คํ
(ยง8)์ ๋ฐ๋ฅด๋, **๋ ์ฝ๋ ๋จ์์ ์ ๋ณด๋์ 100% ๋ณด์กด**ํ๋ค. ์ ์ง์ ๋
ธ์ถ(๋ ๋ณด๊ธฐยท์ ๊ธฐ)์ ์ ์ฒด ๋ ์ฝ๋๊ฐ ์ ๊ทผ ๊ฐ๋ฅํ ํ ํ์ฉ๋๋ค(ยง9.4 ์ฐธ์กฐ).
---
## 2. ๊ฐ์ ๋ฐ ๋ฐฐ๊ฒฝ (Overview & Background)
### 2.1 ๋ชฉ์
๊ฒฝ๋ถ๋ํ๊ต ์ปดํจํฐํ๋ถ ์ฐ๊ตฌ์ค์ด **์ฌ๋ฌผ์ธํฐ๋ท ํ์ค ์ฐ๊ตฌ์ค (IoT Standards Laboratory, ISL)** ์์ **AI ์์ด์ ํธ ๋คํธ์ํฌ ์ฐ๊ตฌ์ค (AI Agent Networking Laboratory, ANL)** ๋ก ์ฐ๊ตฌ ์ ์ฒด์ฑ์ ์ ํํจ์ ๋ฐ๋ผ, ๊ณต์ ํํ์ด์ง๋ฅผ ๋ค์ ๋ ์ถ์ผ๋ก ์ฌ๊ตฌ์ถํ๋ค.
1. **์ ์ฒด์ฑ ์ ํ (Identity Transformation)** โ ์ฐ๊ตฌ์ค ๋ช
์นญยท์ฐ๊ตฌ ์์ฌยท์๊ฐ ์ธ์ด๋ฅผ ANL ๋ฐ 5๋ ํต์ฌ ์ฐ๊ตฌ ๊ธฐ๋ฅ ๊ธฐ์ค์ผ๋ก ์ ๋ฉด ๊ต์ฒดํ๋ค.
2. **์ค๋ฐ์ดํฐ ๋ง์ด๊ทธ๋ ์ด์
(Data Migration)** โ ๋ ๊ฑฐ์ ์ฌ์ดํธ `ISL-2026/`์ ์ถ์ ๋ **์ค์ธก ์ฐ๊ตฌ ์ค์ ์ด 223๊ฑด**(๊ตญ์ ๋
ผ๋ฌธ 68 ยท ๊ตญ๋ด ๋
ผ๋ฌธ 80 ยท ํนํ 75)๊ณผ **ํ์คํ ๋ฌธ์ ์ฝ 55๊ฑด**์ ์ ๊ท ์ ํ๋ฆฌ์ผ์ด์
์ ํ์
์์ ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ก ๋ฌด์์ค ์ด๊ดํ๋ค(PR-01).
### 2.2 ํ์ฌ ์ํ (As-Is)
| ์์ฐ | ๊ฒฝ๋ก | ์ํ |
| :--- | :--- | :--- |
| ๋ ๊ฑฐ์ ๊ณต์ ํํ์ด์ง | `ISL-2026/` | ์ ์ HTML. **์ค๋ฐ์ดํฐ ์๋ณธ(Single Source of Truth)** |
| ์ ๊ท ํ๋กํ ํ์
| `refer_landing_page/` | Next.js 14.2.35 / React 18 / TS 5 / Tailwind 3. ๋ผ์ฐํธ 5์ข
๊ตฌํ, **์ฝํ
์ธ ๋ ๋๋ถ๋ถ placeholder** |
| ์ฐ๊ตฌ ์์ฐ | `multi-agent-orchestration/` | 5๋ ์ฐ๊ตฌ ๊ธฐ๋ฅ์ ๊ทผ๊ฑฐ ์๋ฃ (SLIDE.md, chapters/, lecture_summary.md) |
**์๋ฃ๋ ์ ํ ์์
** (์ปค๋ฐ `e35b46d` โ `315ba9e` โ `cdd0db3`, 3์ฐจ ๊ต์ฐจ ๋ฆฌ๋ทฐ `[VERDICT: PASS]`)
- ์ฐ๊ตฌ์ค ๋ช
์นญ ANL ์ ํ: Header / Footer / `metadata` / `package.json`(`anl-landing`) / `docs/DESIGN.md` / `tailwind.config.ts`
- `/intro` ์ปค๋ฒ ์คํ๋ ๋๋ฅผ 5๋ ์ฐ๊ตฌ ๊ธฐ๋ฅ 3+2 ๋งค๊ฑฐ์ง ์กฐํ์ผ๋ก ์ฌ๊ตฌ์ฑ
- ๊ฐ์กฐ์ ์๋งจํฑ ๊ณ์ฝ ์ฌ์ ์: `vermillion` = Agent Eng / Orchestration (ํ์), `cobalt` = MCP / A2A Protocol (์ง์)
- ๋น๋ ๊ฒ์ดํธ ์ ๋น: `.eslintrc.json` ๋์
, lint / tsc / build 3์ข
ํต๊ณผ
**๋ฏธํด๊ฒฐ ์ํ**
- **`/`(๋ฃจํธ) ๋ผ์ฐํธ ๋ถ์ฌ** โ `app/page.tsx`๊ฐ ์์ด ์ฌ์ดํธ ๋ฃจํธ ์ง์ ์ ๊ทผ ์ 404. PR-02์ `Home` ํญ์ด ์กด์ฌํ์ง ์๋๋ค.
- `/members`, `/publications`, `/lectures`, `/standardization` ๋ณธ๋ฌธ์ด ์ ๋ถ ๊ฐ์์ placeholder (`์ฐ๊ตฌ์ A (placeholder)`, ๊ฐ์ ๋
ผ๋ฌธ, ์ค์ฌํ์ง ์๋ oneM2M/OMA LwM2M ๊ธฐ์ฌ ๋ด์ญ)
- ๋ ๊ฑฐ์ ์ค๋ฐ์ดํฐ **223๊ฑด + ํ์ค ๋ฌธ์ ์ฝ 55๊ฑด ์ ๋ ๋ฏธ์ด๊ด** โ PR-01 ๋ฏธ์ถฉ์กฑ
---
## 3. ์ดํด๊ด๊ณ์ ๋ฐ ์ญํ (Stakeholders & Roles)
| ์ฃผ์ฒด | ์ญํ | ๋ณธ ๋ช
์ธ์์ ๋ํ ์ฑ
์ |
| :--- | :--- | :--- |
| ์ง๋๊ต์ (๊ณ ์์ฃผ ๊ต์) | ์ฝํ
์ธ ์์ ์ | ์ค๋ฐ์ดํฐ ์ ํ์ฑ ์ต์ข
ํ์ธ, ยง12 D-02ยทD-03ยทD-05 ๊ฒฐ์ *(D-01์ v1.5์์ ํ์ )* |
| General Manager | ์ค์ผ์คํธ๋ ์ดํฐ | ์ก ๋ถ๋ฐฐ, ๋ง์ผ์คํค ๊ฒ์ดํ
, ๋ฏธ๊ฒฐ ๊ฒฐ์ ์์ค์ปฌ๋ ์ด์
|
| **Agy** (`creator`) | ๊ฐ๋ฐ ํ์ฅ | ยง6ยทยง7 ๊ตฌํ, ๋ฐ์ดํฐ ์ถ์ถยท์ด๊ด, ์ปดํฌ๋ํธ ๊ฐ๋ฐ |
| **Cline** (`reviewer`) | ๋ฆฌ๋ทฐ์ด ํ์ฅ | ยง9 ๋น๊ธฐ๋ฅ ์๊ตฌ์ฌํญ ๊ฒ์ (UI/UX ๋ฐ์ํ, SEO, ์ ๊ทผ์ฑ) |
| **Claude** (`planner and reviewer`) | ๊ธฐํยท๋ฆฌ๋ทฐ์ด ํ์ฅ | ๋ณธ ๋ช
์ธ์ ์์ฑยท์ ์ง, ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๊ต์ฐจ ๊ฒ์ฆ, ์ต์ข
Verdict |
---
## 4. ์ ๋ณด ๊ตฌ์กฐ (Information Architecture)
### 4.1 ์ฌ์ดํธ๋งต
```
/ Home [๐ ์ ๊ท] ์ฐ๊ตฌ์ค ์๊ฐ ยท ์ฃผ์ ์ฐ๊ตฌ ๋ถ์ผ(5๋ ๊ธฐ๋ฅ) ยท ์ค์๋ ๊ธธ
โโโ /members Members ์ง๋๊ต์ ยท ์ฌํ ์ฐ๊ตฌ์ 16๋ช
ยท ์กธ์
์ 60๋ช
โโโ /publications Publications ๊ฐ์ ยท ์นดํ
๊ณ ๋ฆฌ ๋ถ๋ฅ ยท Top 10 (์ด 223๊ฑด)
โ โโโ /publications/intl-journal-conf International Journal & Conference (68)
โ โโโ /publications/domestic-journal-conf Domestic Journal & Conference (80)
โ โโโ /publications/patent Patent (75)
โโโ /lectures Lectures 2004 Spring ~ 2026 Spring, 45๊ฐ ํ๊ธฐ
โโโ /standardization Standardization ํ์คํ ๊ธฐ๊ตฌ 6๊ณณ ยท ํ์ค ๋ฌธ์ 44๊ฑด
```
### 4.2 IA ์ค๊ณ ๊ฒฐ์
| ID | ๊ฒฐ์ | ๊ทผ๊ฑฐ |
| :--- | :--- | :--- |
| **IA-01** | ํํ `/intro`์ ์ปค๋ฒ ์คํ๋ ๋๋ฅผ **`/`(Home)์ผ๋ก ์น๊ฒฉ**ํ๋ค | PR-02๊ฐ ์๋จ ํญ์ `Intro`๋ฅผ ํฌํจํ์ง ์์ผ๋ฉฐ, PR-03์ "์ฐ๊ตฌ์ค ์๊ฐ"๊ฐ Home์ ๊ตฌ์ฑ ์์๋ก ๋ช
์๋์ด ์๋ค. `/intro`๋ฅผ ๋ณ๋ ์ ์งํ๋ฉด Home๊ณผ ์ฝํ
์ธ ๊ฐ ์ค๋ณต๋๋ค. **๋ถ์ ํจ๊ณผ๋ก ๊ธฐ์กด `/` 404 ๊ฒฐํจ์ด ํด์๋๋ค.** |
| **IA-02** | `/intro`๋ **`/`๋ก 308 ์๊ตฌ ๋ฆฌ๋ค์ด๋ ํธ**ํ๋ค | 3์ฐจ์ ๊ฑธ์น ๋ฆฌ๋ทฐ ๋ฆฌํฌํธยท๋ฌธ์๊ฐ `/intro`๋ฅผ ์ฐธ์กฐํ๊ณ ์์ด ๋งํฌ ์์ ์ฑ์ด ํ์ํ๋ค. `next.config.js`์ `redirects()`๋ก ์ฒ๋ฆฌํ๋ฉฐ ๋ณ๋ ํ์ด์ง ํ์ผ์ ๋จ๊ธฐ์ง ์๋๋ค. |
| **IA-03** *(v1.1 ๊ฐ์ ยท v1.5 ์์น ๊ฐฑ์ )* | Publications ์นดํ
๊ณ ๋ฆฌ๋ **๋ผ์ฐํธ ์ธ๊ทธ๋จผํธ `/publications/[category]` + `generateStaticParams()`** ๋ก ๊ตฌํํ๋ค. `/publications`๋ ๊ฐ์ ํ๋ฉด์ผ๋ก ์ ์งํ๋ค | **v1.0์์ "๋จ์ผ ๋ผ์ฐํธ + `?cat=` ์ฟผ๋ฆฌ"์์ผ๋ ยง8.5์ ์ค์ธก ๊ฒ์ฆ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ๊ฐ์ .** ์ธ๊ทธ๋จผํธ ๋ฐฉ์์ ์นดํ
๊ณ ๋ฆฌ๋ณ ์์ ํ ์ ์ HTML 3๊ฐ(D-01 ํ์ ์ 4๊ฐ)๋ฅผ ๋น๋ ํ์์ ์์ฑํด **๊ณต์ ๋งํฌ๊ฐ ํํฐ ์ํ๋ฅผ ํฌํจํ ๋ฌธ์๋ฅผ ๊ทธ๋๋ก ์ ๊ณต**ํ๋ฉฐ(AC-05 ์ทจ์ง ์ถฉ์กฑ), ๋ค๋ก/์์ผ๋ก ๊ฐ๊ธฐยทํ๋ฆฌํ์นยท์คํฌ๋กค ๋ณต์์ด Next ๋ผ์ฐํฐ์์ ๊ธฐ๋ณธ ์ ๊ณต๋๋ค. ์ฌ๋ฌ๊ทธ๋ฅผ ์นดํ
๊ณ ๋ฆฌ ๋ ์ง์คํธ๋ฆฌ์์ ๋์ถํ๋ฏ๋ก **๋ผ๋ฒจ ๋ณ๊ฒฝ์ด ๋ ์ง์คํธ๋ฆฌ ํ ๊ณณ ์์ ์ผ๋ก ๋๋๋ค๋ v1.0์ ๊ทผ๊ฑฐ๋ ๊ทธ๋๋ก ์ ์ง**๋๋ค(โ D-01 ๋ฆฌ์คํฌ ์ํ ๋ถ๋ณ). ์๋จ ํญ์ 5์ข
๊ทธ๋๋ก์ด๋ฏ๋ก **PR-02์ ์ถฉ๋ํ์ง ์๋๋ค**(ํ์ ๋ผ์ฐํธ์ผ ๋ฟ ์ต์์ ํญ์ด ์๋๋ค). |
| **IA-04** | ๋ด๋น๊ฒ์ด์
ํญ๋ชฉ์ **PR-02์ 5๊ฐ๋ก ๊ณ ์ **ํ๋ค | `components/Header.tsx`์ ๋ฐ์คํฌํฑ ๋ด๋น๊ฐ 5๊ฐ ํญ๋ชฉ ๊ธฐ์ค์ผ๋ก ์กฐํ๋์ด ์๋ค. ํญ๋ชฉ ์ฆ๊ฐ ์ ํค๋ ๋ ์ด์์ ์ฌ์ค๊ณ๊ฐ ์ ํ๋์ด์ผ ํ๋ค. |
---
## 5. ์ฝํ
์ธ ์ ๋ณธ: ํต์ฌ ์ฐ๊ตฌ ๋ถ์ผ
PR-03์ "์ฐ๊ตฌ์ค ์ฃผ์ ์ฐ๊ตฌ ๋ถ์ผ ์๊ฐ"์ ํด๋นํ๋ ์ฝํ
์ธ ๋ค. `README.md` ยง2๋ฅผ **์ ๋ณธ(canonical)** ์ผ๋ก ํ๋ฉฐ, UI์ ๋ชจ๋ ์ฐ๊ตฌ ์์ ์ ์ฌ๊ธฐ์ ํ์๋์ด์ผ ํ๋ค. ์ดํ๋ฅผ ์์๋ก ๋ณํํ์ง ์๋๋ค.
| # | ๋ถ์ผ (KO) | ๋ถ์ผ (EN) | ํต์ฌ ํค์๋ | ๊ฐ์กฐ์ |
| :-: | :--- | :--- | :--- | :--- |
| 1 | AI Agent ๊ธฐ๋ฅ ํ์ฅ ํ๋กํ ์ฝ | Extensibility & Protocol | MCP, SKILL, CLI ์ฝ๋ฉ ์์ด์ ํธ | `vermillion` |
| 2 | ๋ฉํฐ ์์ด์ ํธ ํ์
๋ฐ ์ค์ผ์คํธ๋ ์ด์
| Multi-Agent Systems | HERDR, crewAI, LangGraph | `cobalt` |
| 3 | ์์ด์ ํธ ์ํธ์ด์ฉ์ฑ ๊ฐ๋ฐฉํ ํ์ค | Interoperability Standards | A2A, ACP, Agent Card | `vermillion` |
| 4 | AIoT & ๊ณ ์ฑ๋ฅ ํต์ ๋ฐฑ๋ณธ | High-Performance Backbone | gRPC/QUIC, Protobuf, MQTT/CoAP | `cobalt` |
**R-5.1** ๊ฐ์กฐ์์ ยง8.3์ ํ์/์ง์ ๊ท์น์ ๋ฐ๋ฅธ๋ค. ๋ถ์ผ ์์๋ฅผ ๋ณ๊ฒฝํ๋ฉด ์ ๋ฐฐ์ ๋ ํจ๊ป ๊ฐฑ์ ํด์ผ ํ๋ค.
**R-5.2** ํต์ฌ ์ฐ๊ตฌ ๋ถ์ผ ์์ ์ ๋ฌธ(ๅ
จๆ)์ Home์๋ง ๋๊ณ , ํ ํ์ด์ง์๋ ์์ฝ ํค์๋๋ง ๋
ธ์ถํ๋ค. ๋์ผ ๋ฌธ์ฅ์ ์ฌ๋ฌ ํ์ด์ง์ ์ค๋ณต ํ๋์ฝ๋ฉํ์ง ์๋๋ค.
**R-5.3** ๋ ๊ฑฐ์ `introduction.html`์ ๊ตฌ ์ฐ๊ตฌ ๋ถ์ผ(QUIC, CoAP, IVI, VLC/OWC, mSCTP, SCTP, Mobility Management, Tabu Search ๋ฑ)๋ **Home์ ์ฐ๊ตฌ ๋ถ์ผ ์๊ฐ์์ ์ ์ธ**ํ๋ค. ๋จ, ์ด๋ค ์ฃผ์ ๋ก ์ฐ์ถ๋ ๋
ผ๋ฌธยทํนํยทํ์ค์ PR-01์ ๋ฐ๋ผ ์ค์ ํ์ด์ง์ **์ ๋ ๋ณด์กด**๋๋ค.
---
## 6. ํ์ด์ง๋ณ ์์ธ ์๊ตฌ์ฌํญ
> ๊ฐ ํญ๋ชฉ์ `[MUST]` / `[SHOULD]` / `[MAY]`๋ RFC 2119 ์์ค์ ๋ฐ๋ฅธ๋ค.
### 6.1 Home (`/`) โ ๐ ์ ๊ท ๋ผ์ฐํธ
PR-03์ ๋ฐ๋ผ **์ฐ๊ตฌ์ค ์๊ฐ ยท ์ฃผ์ ์ฐ๊ตฌ ๋ถ์ผ ์๊ฐ ยท ์ค์๋ ๊ธธ** 3๊ฐ ๋ธ๋ก์ ํ์ ํฌํจํ๋ค.
| ID | ์๊ตฌ์ฌํญ | ์์ค |
| :--- | :--- | :-- |
| H-01 | `app/page.tsx`๋ฅผ ์ ๊ท ์์ฑํ๊ณ , ํํ `app/intro/page.tsx`์ ์น์
๊ตฌ์ฑ(์ปค๋ฒ ์คํ๋ ๋ โ ์งํ ์นด์ดํฐ โ Mission ํ์ฟผํธ โ ํต์ฌ ์ฐ๊ตฌ ๋ถ์ผ โ Focus Areas)์ ์ด๊ดํ๋ค | MUST |
| H-02 | ์ปค๋ฒ ํ์ด๋ก๋ ํํ ํ์ ์นดํผ๋ฅผ ์ ์งํ๋ค: ํฅ์ปค `๊ฒฝ๋ถ๋ํ๊ต ์ปดํจํฐํ๋ถ ยท AI Agent Networking Lab (ANL)`, ํค๋๋ผ์ธ `์์ด์ ํธ ๋คํธ์ํฌ์ / ๋ฏธ๋๋ฅผ ์ง๋ค`, ๋์คํ๋ ์ด `Agents / in Motion` | MUST |
| H-03 | **[์ฐ๊ตฌ์ค ์๊ฐ]** ์ฐ๊ตฌ์ค ๊ฐ์ยท์ง๋๊ต์ยท๋น์ ์ ์์ ํ๋ ๋ธ๋ก์ ๋ฐฐ์นํ๊ณ , ์์ธ๋ `/members`๋ก ์ฐ๊ฒฐํ๋ค | MUST |
| H-04 | **[์ฃผ์ ์ฐ๊ตฌ ๋ถ์ผ]** ยง5์ ํต์ฌ ์ฐ๊ตฌ ๋ถ์ผ ์ ๋ฌธ์ ๋งค๊ฑฐ์ง ์กฐํ์ผ๋ก ๋
ธ์ถํ๋ค | MUST |
| H-05 | **[์ค์๋ ๊ธธ]** ์๋ ยง6.1.1 ์๊ตฌ์ฌํญ์ ์ถฉ์กฑํ๋ ๋ธ๋ก์ ๋ฐฐ์นํ๋ค | MUST |
| H-06 | ์งํ ์นด์ดํฐ๋ **๋ฐ์ดํฐ ๋ฐฐ์ด์์ ๋์ถ๋ ๊ฐ**๋ง ์ฌ์ฉํ๋ค. ๊ทผ๊ฑฐ ์๋ ํ๋ณด์ฑ ์์น(๊ฐ๋๋ฅ ยท๋ง์กฑ๋ ๋ฑ) ๊ฒ์ ๊ธ์ง | MUST |
| H-07 | H-06์ ๊ถ์ฅ ์งํ: `์ฐ๊ตฌ ๋ถ์ผ` = 4, `๋์ ์ฐ๊ตฌ ์ค์ ` = ๋
ผ๋ฌธ+ํนํ ํฉ๊ณ(223), `Issue ยท ๋ฐํ` = 2026(static) | SHOULD |
| H-08 | ๋ํ ์ค์ ํ์ด๋ผ์ดํธ โ ์ต์ ๊ตญ์ ์ ๋ 3๊ฑด์ `/publications`๋ก ์ฐ๊ฒฐ | SHOULD |
| H-09 | ํ์คํ ๊ธฐ์ฌ ์์ฝ ๋ฐด๋ โ ๊ธฐ๊ตฌ 6๊ณณ ์ฝ์นญ `Marquee` + `/standardization` ์ฐ๊ฒฐ | SHOULD |
| H-10 | `HeroComposition` SVG๋ ํํ(A2A ๋
ธ๋ ๋ฉ์ ร QUIC/gRPC ์คํธ๋ฆผ)์ ๊ทธ๋๋ก ์ฌ์ฌ์ฉํ๋ค | MUST |
| H-11 | `/intro` โ `/` 308 ๋ฆฌ๋ค์ด๋ ํธ๋ฅผ `next.config.js`์ ๋ฑ๋กํ๋ค (IA-02) | MUST |
| H-12 | `components/Header.tsx`์ ๋ธ๋๋ ๋งํฌ `href`๋ฅผ `/intro` โ `/`๋ก ๋ฐ๊พธ๊ณ , ๋ด๋น ๋ฐฐ์ด ์ฒซ ํญ๋ชฉ์ `Home`(`/`)์ผ๋ก ๊ต์ฒดํ๋ค | MUST |
#### 6.1.1 ์ค์๋ ๊ธธ (Directions) ์ธ๋ถ ์๊ตฌ์ฌํญ
๋ ๊ฑฐ์ `index.html`์ ์ฃผ์๊ฐ **HTML ์ฃผ์ ์ฒ๋ฆฌ๋ ์ํ**๋ก ์กด์ฌํ๋ค. ์ด๋ฅผ ๋ณต์ํด ์ฌ์ฉํ๋ค.
| ID | ์๊ตฌ์ฌํญ | ์์ค |
| :--- | :--- | :-- |
| H-13 | ์์ฌ์ง๋ฅผ ํ๊ธฐํ๋ค: **๊ฒฝ๋ถ๋ํ๊ต IT๋ํ 5ํธ๊ด(415๋) 527ํธ** / *School of Computer Science and Engineering, Kyungpook National University* | MUST |
| H-14 | ์ฐ๋ฝ์ฒ๋ฅผ ํ๊ธฐํ๋ค: `sjkoh@knu.ac.kr` (์ง๋๊ต์). ์ ํยทํฉ์ค๋ **๋ ๊ฑฐ์์ ์กด์ฌํ์ง ์์ผ๋ฏ๋ก ์ฐฝ์ํ์ง ์๋๋ค** | MUST |
| H-15 | ์์ ๊ธฐ๊ด ๋งํฌ๋ฅผ ์ ๊ณตํ๋ค: KNU(`knu.ac.kr`), ์ปดํจํฐํ๋ถ(`cse.knu.ac.kr`), IT๋ํ(`it.knu.ac.kr`) | MUST |
| H-16 | ์ง๋ ํํ ๋ฐฉ์์ ยง12 **D-03**์ ๊ฒฐ์ ์ ๋ฐ๋ฅธ๋ค. ์ธ๋ถ ์ง๋ ์คํฌ๋ฆฝํธ๋ฅผ ์์๋ก ๋์
ํ์ง ์๋๋ค(R-9.13 ์ต์ ์์กด์ฑ ์์น๊ณผ ์ถฉ๋) | MUST |
| H-17 | ์ฃผ์๋ ์๋งจํฑ `
` ์์๋ก ๋งํฌ์
ํ๋ค | MUST |
| H-18 | ๋์ค๊ตํตยท์ฃผ์ฐจ ์๋ด๋ **๋ ๊ฑฐ์์ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฏ๋ก ์ด๋ฒ ๋ฒ์์์ ์ ์ธ**ํ๋ค. ํ์ ์ ์ง๋๊ต์ ํ์ธ ํ ๋ณ๋ ์ก์ผ๋ก ์ถ๊ฐ | MUST |
### 6.2 Members (`/members`) โ PR-01 ์ ์ฉ
**๋ ๊ฑฐ์ ์ค์ธก**: ์ฌํ 16๋ช
(๊ต์ 1 ยท Ph.D. 1 ยท Ph.D. Candidate 4 ยท Ph.D. Student 5 ยท M.S. Candidate 3 ยท M.S. Student 2), ์กธ์
์ 60๋ช
(2007~2026).
| ID | ์๊ตฌ์ฌํญ | ์์ค |
| :--- | :--- | :-- |
| M-01 | ํํ placeholder(`์ฐ๊ตฌ์ A~G`) ์ ๋์ `ISL-2026/member.html` ์ค๋ฐ์ดํฐ๋ก ๊ต์ฒดํ๋ค. **์ฌํ 16๋ช
+ ์กธ์
์ 60๋ช
= 76๋ช
์ ์ ๋ณด์กด** | MUST |
| M-02 | ์ง๋๊ต์ ํผ์ฒ ์คํ๋ ๋: `๊ณ ์์ฃผ ๊ต์ / Prof. Seok-Joo Koh`, ์ด๋ฉ์ผ `sjkoh@knu.ac.kr`, ๊ฐ์ธ ํํ์ด์ง(`ISL-2026/sjkoh/`) ๋ฐ GitHub(`github.com/sjkoh12`) ๋งํฌ | MUST |
| M-03 | ์ฌํ ์ฐ๊ตฌ์์ **ํ์ ๊ณผ์ ๋ณ๋ก ๊ทธ๋ฃนํ**ํ๊ณ , ๋ ๊ฑฐ์์ `Candidate`/`Student` ๊ตฌ๋ถ์ ๋ณด์กดํ๋ค | MUST |
| M-04 | ์์ ํ๊ณผ๊ฐ ์ปดํจํฐํ๋ถ์ ๋ค๋ฅธ ์ฐ๊ตฌ์(์ ๋ณด๋ณดํธํ๊ณผยท์ ๋ณด๊ณผํ๊ณผยท๊ณผํ๊ธฐ์ ํ๊ณผยทICT์ตํฉํ๊ณผยท์ปดํจํฐํ๋ถ ๋ฑ 8๋ช
)์ **์์ ํ๊ธฐ๋ฅผ ํจ๊ป ๋
ธ์ถ**ํ๋ค | MUST |
| M-05 | ์กธ์
์ 60๋ช
์ **์กธ์
์ฐ๋ ์ญ์**์ผ๋ก ๊ฒ์ํ๊ณ , ํ์ยท์กธ์
์์ ยท์ ๊ณตยทํ ์์์ ํ๊ธฐํ๋ค | MUST |
| M-06 | ์กธ์
์ ๋ชฉ๋ก์ ์ต๊ทผ 3๋
์ ๊ธฐ๋ณธ ๋
ธ์ถํ๊ณ ๋๋จธ์ง๋ `๋ ๋ณด๊ธฐ`๋ก ํ์ฅํ๋ค. **ํ์ฅ ์ 60๋ช
์ ์์ด ๋
ธ์ถ๋์ด์ผ ํ๋ค** (PR-01) | SHOULD |
| M-07 | ์ด๋ฆ ํ๊ธฐ ํ์์ ํต์ผํ๋ค: `ํ๊ธ๋ช
(Romanized Name)`. ์ธ๊ตญ์ธ ์ฐ๊ตฌ์(Hoang Anh Dang ๋ฑ)์ ์๋ฌธ ๊ทธ๋๋ก ํ๊ธฐ | MUST |
| M-08 | ์ธ์ ํต๊ณ ์นด์ดํฐ๋ ๋ฐฐ์ด ๊ธธ์ด์์ ๋์ถํ๋ค (H-06 ์์น ๋์ผ ์ ์ฉ) | MUST |
| M-09 | ๊ฐ์ธ ์ด๋ฉ์ผยท์ฐ๋ฝ์ฒ๋ **์ง๋๊ต์ ์ธ ๊ฒ์ํ์ง ์๋๋ค** | MUST |
| M-10 | ์กธ์
์์ ํ ์์ ๋ฌธ๊ตฌ(`He is now with ...`)๋ ๋ ๊ฑฐ์ ์๋ฌธ ์ ๋ณด๋ฅผ ๋ณด์กดํ๋, ๊ตญ๋ฌธ ํ์ด์ง ๋งฅ๋ฝ์ ๋ง๊ฒ ์์๋ช
๋ง ์ถ์ถํด ํ๊ธฐํด๋ ๋ฌด๋ฐฉํ๋ค | SHOULD |
### 6.3 Publications (`/publications`) โ PR-01 + PR-04 ์ ์ฉ
**๋ ๊ฑฐ์ ์ค์ธก**: `paper-international.html` 68๊ฑด(์ ๋ 67 + ํ์ ๋ํ 1) ยท `paper-domestic.html` 80๊ฑด(KCI ๋ฑ์ฌ 48) ยท `patent.html` 75๊ฑด = **์ด 223๊ฑด**.
| ID | ์๊ตฌ์ฌํญ | ์์ค |
| :--- | :--- | :-- |
| P-01 *(v1.5 ๊ฐ์ )* | **3๊ฐ ์นดํ
๊ณ ๋ฆฌ**๋ฅผ ์ฌ์ฉํ๋ค: `International Journal & Conference` / `Domestic Journal & Conference` / `Patent`. **D-01 ํ์ (v1.5)**: PR-04์ 1๋ฒ ๋ผ๋ฒจ `International Conference`๋ ๋์ ๋ ๊ฑฐ์ ์๋ณธ์ด ์์ด ์ค์ธก 0๊ฑด์ด์๊ณ , 2๋ฒ ๋ผ๋ฒจ์ ๋ถ๋ถ์งํฉ์ผ๋ก ๋ฒ์๊ฐ ์ค์ฒฉ๋๋ฏ๋ก **๋จ๋
์นดํ
๊ณ ๋ฆฌ๋ฅผ ํ๊ธฐ**ํ๋ค. ๊ตญ์ ํ์ ๋ํ ๋
ผ๋ฌธ(์ค์ธก 1๊ฑด)์ `International Journal & Conference`์ ํฌํจํด ๋ณด์กดํ๋ค | MUST |
| P-02 | ์นดํ
๊ณ ๋ฆฌ๋ **๋ ์ง์คํธ๋ฆฌ ์์ 1๊ณณ**์ ์ ์ํ๊ณ , ๊ฐ๋ณ ๋ ์ฝ๋๋ `category` ํ๋ณ ํ๋๋ง ๊ฐ๋๋ค. ๋ผ๋ฒจ ๋ณ๊ฒฝยท๊ต์ฒด๊ฐ ๋ ์ง์คํธ๋ฆฌ ์์ ๋ง์ผ๋ก ์๊ฒฐ๋์ด์ผ ํ๋ค | MUST |
| P-03 | **223๊ฑด ์ ๋ ๋ณด์กด** โ ์ด๋ค ์นดํ
๊ณ ๋ฆฌ์๋ ๋ฐฐ์ ๋์ง ์์ ๋๋ฝ๋๋ ๋ ์ฝ๋๊ฐ ์์ด์๋ ์ ๋๋ค. *(v1.5 ํ์ธ: D-01 ํ์ ์ผ๋ก ์นดํ
๊ณ ๋ฆฌ๊ฐ 3๊ฐ๋ก ์ถ์๋์์ผ๋ `intl-conf` ๋ฐฐ์ ๋ ์ฝ๋๊ฐ 0๊ฑด์ด์์ผ๋ฏ๋ก ์ถ์๋ ๋ฌด์์ค์ด๋ค. ์ค์ธก 68 + 80 + 75 = 223)* | MUST |
| P-04 | ๋ ๊ฑฐ์ `paper-international.html`์ ์ ๋๊ณผ ํ์ ๋ํ ๋
ผ๋ฌธ์ด **ํผ์ฌ**๋์ด ์๋ค(ํ์ ๋ํ 1๊ฑด ํ์ธ: `International Conference on ICTC`, 2023). ์ด๊ด ์ ๊ฒ์ฌ์ฒ ๋ฌธ์์ด๋ก ํ๋ณํด ๋ถ๋ฅํ๋ค | MUST |
| P-05 | ๊ธฐ๋ณธ ์ ๋ ฌ์ **๋ฐํ ์ฐ์ ๋ด๋ฆผ์ฐจ์**, ๋์ผ ์ฐ์ ๋ด์์๋ ๋ ๊ฑฐ์ ๊ฒ์ ์์๋ฅผ ๋ณด์กดํ๋ค | MUST |
| P-06 *(v1.1 ๊ฐ์ )* | ์นดํ
๊ณ ๋ฆฌ ํํฐ UI๋ฅผ ์ ๊ณตํ๋ค. ํํฐ ์ํ๋ **URL ๊ฒฝ๋ก**(`/publications/`)์ ๋ฐ์๋์ด **๊ณต์ ๊ฐ๋ฅํ ๋งํฌ**๊ฐ ๋์ด์ผ ํ๋ค. ์ฌ๋ฌ๊ทธ๋ ยง7.2 `PubCategory` ๊ฐ์ ๊ทธ๋๋ก ์ฌ์ฉํ๋ค. ๊ตฌํ ๋ฐฉ์์ **ยง8.5์ ๋ ๋๋ง ์ ์ฝ์ ๋ฐ๋์ ๋ฐ๋ฅธ๋ค** | MUST |
| P-06a *(v1.1 ์ ์ค)* | ์นดํ
๊ณ ๋ฆฌ ๋ด๋น๊ฒ์ด์
์ `next/link`์ ``๋ก ๊ตฌํํ๋ค. `window.history.pushState` ์ง์ ํธ์ถยท`useSearchParams()` ์ฌ์ฉ ๊ธ์ง (ยง8.5 R-8.11~8.14) | MUST |
| P-07 | ์ ์ฒด 223๊ฑด์ ๋จ์ผ ํ๋ฉด์ ์ผ๊ด ๋ ๋ํ์ง ์๋๋ค. **์ฐ๋๋ณ ๊ทธ๋ฃน ํค๋ + ์ง์ฐ ํ์ฅ** ๋๋ ํ์ด์ง๋ค์ด์
์ผ๋ก ์ด๊ธฐ ๋ ๋ ๋ถํ๋ฅผ ์ ํํ๋, ์ ๋ ์ฝ๋๊ฐ ์ ๊ทผ ๊ฐ๋ฅํด์ผ ํ๋ค (ยง9.4) | MUST |
| P-07a *(v1.1 ์ ์ค)* | ๋ ์ฝ๋ ๋ชฉ๋ก ์์ฒด๋ **์๋ฒ ์ปดํฌ๋ํธ์์ ์ ์ HTML๋ก ๋ ๋**๋์ด์ผ ํ๋ค. ๋ชฉ๋ก ๋ฐ์ดํฐ๋ฅผ ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ ๋ด๋ถ๋ `` ๊ฒฝ๊ณ ์์ชฝ์ ๋์ด ์ ์ ๋ฌธ์์์ ๋๋ฝ์์ผ์๋ ์ ๋๋ค (ยง8.5 R-8.15). ๊ทผ๊ฑฐ: JS ๋ฏธ์คํ ํ๊ฒฝยทํฌ๋กค๋ฌ์์๋ PR-01์ ์ ๋ ์ฝ๋๊ฐ ๋ฌธ์์ ์กด์ฌํด์ผ ํ๋ค | MUST |
| P-08 | ๊ตญ๋ด ๋
ผ๋ฌธ์ `(KCI)` ๋ฑ์ฌ ํ์๋ฅผ **๋ฐฐ์ง๋ก ๋ณด์กด**ํ๋ค (48๊ฑด) | MUST |
| P-09 | ํนํ ๋ ์ฝ๋๋ ๋ค์์ ๋ชจ๋ ๋ณด์กดํ๋ค: ๋ฐ๋ช
์ ๋ชฉ๋ก, ์ถ์๋ฒํธยท์ถ์์ผ, ๋ฑ๋ก๋ฒํธยท๋ฑ๋ก์ผ(์๋ ๊ฒฝ์ฐ), ๊ตญ๊ฐ(ํ๊ตญ/US). **์ถ์/๋ฑ๋ก ์ํ๋ฅผ ๊ตฌ๋ถ ํ๊ธฐ**ํ๋ค | MUST |
| P-10 | ํ์ ํต๊ณ ์นด์ดํฐ: ์นดํ
๊ณ ๋ฆฌ๋ณ ๊ฑด์๋ฅผ ๋ฐฐ์ด์์ ๋์ถํด ํ๊ธฐ | SHOULD |
| P-11 | DOIยท์๋ฌธ ๋งํฌ๋ **๋ ๊ฑฐ์์ ์กด์ฌํ์ง ์์ผ๋ฏ๋ก ์ด๋ฒ ๋ฒ์์์ ์ ์ธ**ํ๋ค. ์คํค๋ง์ ์ ํ ํ๋๋ก ์์ฝ๋ง ํ๋ค | MUST |
| P-12 | ์ ์๋ช
ยท๋
ผ๋ฌธ ์ ๋ชฉยท๊ฒ์ฌ์ฒ ํ๊ธฐ๋ **๋ ๊ฑฐ์ ์๋ฌธ์ ๊ทธ๋๋ก ๋ณด์กด**ํ๋ค. ์์ ์ถ์ฝยท์ฌ๋ฐฐ์ดยท๋ฒ์ญ ๊ธ์ง (PR-01) | MUST |
| P-13 | ๊ตญ๋ฌธยท์๋ฌธ ์ ๋ชฉ์ด ํผ์ฌํ๋ ๊ตญ๋ด ๋
ผ๋ฌธ ๋ชฉ๋ก์์ ์ธ์ด๋ฅผ ํต์ผํ์ง ์๋๋ค (PR-01) | MUST |
### 6.4 Lectures (`/lectures`) โ PR-01 ์ ์ฉ
**๋ ๊ฑฐ์ ์ค์ธก**: 2016 Fall ~ 2026 Spring, ์ฝ 20๊ฐ ํ๊ธฐ, ๊ณผ๋ชฉ๋ช
+ ํ์๋ฒํธ ํ์.
| ID | ์๊ตฌ์ฌํญ | ์์ค |
| :--- | :--- | :-- |
| L-01 | ํํ placeholder 3๊ฑด(`์ฌ๋ฌผ์ธํฐ๋ท ๊ฐ๋ก `, `๋ฉํ๋ฒ์ค ์ํธ์ด์ฉ์ฑ๊ณผ ํ์ค` ๋ฑ)์ ์ค์ ๊ฐ์ ์ด๋ ฅ์ผ๋ก ๊ต์ฒดํ๋ค. **์ ํ๊ธฐ ์ ๊ณผ๋ชฉ ๋ณด์กด** | MUST |
| L-02 | **ํ๊ธฐ๋ณ(Spring/Fall + ์ฐ๋) ๊ทธ๋ฃนํ**์ ๋ ๊ฑฐ์ ๊ตฌ์กฐ ๊ทธ๋๋ก ๋ณด์กดํ๋ค | MUST |
| L-03 | ์ต๊ทผ 3๊ฐ ํ๊ธฐ๋ฅผ ๊ธฐ๋ณธ ๋
ธ์ถํ๊ณ ์ด์ ์ด๋ ฅ์ `์ ์ฒด ์ด๋ ฅ ๋ณด๊ธฐ`๋ก ํ์ฅํ๋ค. **ํ์ฅ ์ ์ ํ๊ธฐ๊ฐ ๋
ธ์ถ๋์ด์ผ ํ๋ค** (PR-01) | SHOULD |
| L-04 | ๊ณผ๋ชฉ ๋ ์ฝ๋: ํ์๋ฒํธ(`COMP 0414` ๋ฑ), ๊ณผ๋ชฉ๋ช
(EN), ํ๋ถ/๋ํ์ ๊ตฌ๋ถ | MUST |
| L-05 | ๊ณผ๋ชฉ๋ช
ํ๊ธ ๋ฒ์ญ์ **๋ ๊ฑฐ์์ ์์ผ๋ฏ๋ก ์ ๊ท ์ฐฝ์ํ์ง ์๋๋ค.** ์๋ฌธ ์๋ฌธ์ ์ ๋ณธ์ผ๋ก ๋
ธ์ถํ๋ค (โ ยง12 D-02) | MUST |
| L-06 | `Fall 2023 โ No Class (Sabbatical)`๊ณผ ๊ฐ์ ๋น๊ฐ์ ํ๊ธฐ๋ ์ด๋ ฅ์ ๋ณด์กดํ๋ค (PR-01) | MUST |
| L-07 | ๋์ผ ๊ณผ๋ชฉ์ด ์ฌ๋ฌ ๋ถ๋ฐ(`ITEC 401003`, `ITEC 401004`)์ผ๋ก ๊ฐ์ค๋ ๊ฒฝ์ฐ ๋ถ๋ฐ์ ํฉ์น์ง ์๊ณ ๋ณด์กดํ๋ค (PR-01) | MUST |
### 6.5 Standardization (`/standardization`) โ PR-01 ์ ์ฉ
**๋ ๊ฑฐ์ ์ค์ธก**: ๊ธฐ๊ตฌ 6๊ณณ / ํ์ค ๋ฌธ์ ์ฝ 55๊ฑด / ํ๋ ๊ธฐ๊ฐ 2000~ํ์ฌ.
| ๊ธฐ๊ตฌ | ํ๋ ๊ธฐ๊ฐ | ์ฃผ์ ์ฐ์ถ๋ฌผ | ๊ตฌ๋ถ |
| :--- | :--- | :--- | :--- |
| IEC TC100 (Multimedia Systems and Equipment) | 2018 ~ ํ์ฌ | IEC 63614(Metaverse) 4๊ฑด, IEC 63478(QoE, **WG11 Convenor**) 3๊ฑด, IEC 63479(Infotainment) 3๊ฑด, IEC 63246(CCIS) 4๊ฑด | ๊ตญ์ |
| ISO/IEC JTC1/SC41 (IoT and Digital Twin) | 2020 ~ ํ์ฌ | ISO/IEC TR 30189 2๊ฑด | ๊ตญ์ |
| ITU-T SG20 (IoT Services based on VLC) | 2018 ~ 2020 | Y.4465, Y.4474 | ๊ตญ์ |
| ITU-T SG13 (Mobility Management) | 2002 ~ 2012 | Q.Sup52, Q.1706~1709, Y.2052, Y.2809 ๋ฑ 7๊ฑด | ๊ตญ์ |
| ISO/IEC JTC1/SC6 WG7 (Network and Transport) | 2000 ~ 2014 | ECTP(14476), RMCP(16512), MMC(24793), FN-PSR(29181) ๊ณ์ด ๋ค์ | ๊ตญ์ |
| TTA/PG425 (๊ฐ์๊ด ํต์ ๊ธฐ๋ฐ ์ฌ๋ฌผ์ธํฐ๋ท) | 2018 ~ 2020 | TTAK.KO-10.1158 part1~3 | ๊ตญ๋ด |
| ID | ์๊ตฌ์ฌํญ | ์์ค |
| :--- | :--- | :-- |
| S-01 | ํํ 4๊ฐ ๊ธฐ๊ตฌ(`oneM2M`, `W3C WoT`, `IETF QUIC`, `OMA LwM2M`)๋ **์ค์ ๊ธฐ์ฌ ์ด๋ ฅ์ด ์๋ placeholder**์ด๋ฏ๋ก ์ ๋ ๊ต์ฒดํ๋ค | MUST |
| S-02 | **๊ตญ์ ํ์คํ / ๊ตญ๋ด ํ์คํ** 2๊ฐ ์น์
์ผ๋ก ๊ตฌ๋ถํ๋ค (๋ ๊ฑฐ์ ๊ตฌ์กฐ ๋ณด์กด) | MUST |
| S-03 | ๊ธฐ๊ตฌ๋ณ ์นด๋์ ํ๋ ๊ธฐ๊ฐ๊ณผ ์ญํ (์: `WG11 Convenor`, `WG30(TA17)`)์ ๋ช
์ํ๋ค | MUST |
| S-04 | ํ์ค ๋ฌธ์๋ ๊ธฐ๊ตฌ โ ์ํน๊ทธ๋ฃน/ํ๋ก์ ํธ โ ๋ฌธ์์ **3๋จ ๊ณ์ธต**์ผ๋ก ํํํ๊ณ , ๋ฌธ์ 55๊ฑด ์ ๋์ ๋ณด์กดํ๋ค | MUST |
| S-05 | ๋ฌธ์ ์ํ(`IS` / `TS` / `TR` / `CDV` / `WDTR` / `In Progress`)๋ฅผ ๋ฐฐ์ง๋ก ๊ตฌ๋ถ ๋
ธ์ถํ๋ค | MUST |
| S-06 | `In Progress` ๋ฌธ์(IEC WDTR 63614-4, IEC CDV 63478-3, ISO/IEC CDTR 30189-2)๋ **์งํ ์ค์์ด ์๊ฐ์ ์ผ๋ก ๋ช
ํ**ํด์ผ ํ๋ค | MUST |
| S-07 | ๊ธฐ๊ตฌ ์นด๋ ๊ฐ์กฐ์์ ยง8.3 ํ์/์ง์ ๊ต์ฐจ ๊ท์น์ ๋ฐ๋ฅธ๋ค | MUST |
| S-08 | ์นด์ดํฐ๋ ๊ธฐ๊ตฌ ์ยท๋ฌธ์ ์๋ฅผ ๋ฐฐ์ด์์ ๋์ถํ๋ค | MUST |
| S-09 | 5๋ ์ฐ๊ตฌ ๊ธฐ๋ฅ ์ค **๊ธฐ๋ฅ 4(A2A/ACP ๊ฐ๋ฐฉํ ํ์ค)** ์์ ์ฐ๊ฒฐ ์์ ์ ๋์
๋ถ์ ๋ฐฐ์นํด, ๊ณผ๊ฑฐ ํ์คํ ์ญ๋์ด ์ ๊ท ์ฐ๊ตฌ ๋ฐฉํฅ์ผ๋ก ์ด์ด์ง์ ๋๋ฌ๋ธ๋ค | SHOULD |
---
## 7. ๋ฐ์ดํฐ ๋ชจ๋ธ ๋ฐ ๋ง์ด๊ทธ๋ ์ด์
๋ช
์ธ
### 7.1 ๋ฐ์ดํฐ ๋ฐฐ์น ์์น
| ID | ์๊ตฌ์ฌํญ | ์์ค |
| :--- | :--- | :-- |
| DM-01 | ์ฝํ
์ธ ๋ฐ์ดํฐ๋ ํ์ด์ง ์ปดํฌ๋ํธ์์ ๋ถ๋ฆฌํด **`content/` ๋๋ ํฐ๋ฆฌ์ ํ์
์ง์ ๋ชจ๋**๋ก ์ด๊ดํ๋ค (`content/members.ts`, `content/publications.ts`, `content/lectures.ts`, `content/standards.ts`) | MUST |
| DM-02 | ๊ฐ ๋ชจ๋์ ๋ช
์์ TypeScript ์ธํฐํ์ด์ค๋ฅผ export ํ๋ค. `any` ์ฌ์ฉ ๊ธ์ง | MUST |
| DM-03 *(v1.1 ๋ฌธ๊ตฌ ์ ์ )* | ๋ฐ์ดํฐ๋ **๋น๋ ํ์ ์ ์ ์์**๋ก ์ ์งํ๋ค. ๋ฐํ์ fetchยท์ธ๋ถ APIยทDB๋ฅผ ๋์
ํ์ง ์๋๋ค. ์ ๋ผ์ฐํธ๊ฐ **๋น๋ ํ์ ์ ์ ํ๋ฆฌ๋ ๋**(`โ Static` ๋๋ `โ SSG`)๋ฅผ ์ ์งํด์ผ ํ๋ฉฐ, `ฦ Dynamic` ๋ผ์ฐํธ๊ฐ ๋ฐ์ํด์๋ ์ ๋๋ค (ยง8.5 R-8.16) | MUST |
| DM-04 | ๊ฐ ํ์ด์ง ์๋จ์ `// CUSTOMIZATION HOOK` ์ฃผ์ ๊ท์ฝ(`DESIGN.md` "์ฝํ
์ธ ์ฐ์ " ์์น)์ `content/` ๋ชจ๋๋ก ์ด์ ํ๋ **๊ท์ฝ ์์ฒด๋ ์ ์ง**ํ๋ค | MUST |
### 7.2 ์คํค๋ง ์ ์ (๊ณ์ฝ)
```ts
// content/members.ts
type Degree = "Professor" | "PhD" | "PhDCandidate" | "PhDStudent" | "MSCandidate" | "MSStudent";
interface Member {
ko: string; // "์ต๋๊ท" (์ธ๊ตญ์ธ ์ฐ๊ตฌ์์ ์๋ฌธ ํ๊ธฐ)
en: string; // "Dong-Kyu Choi"
degree: Degree;
affiliation?: string; // ์ปดํจํฐํ๋ถ ์ธ ์์์ผ ๋๋ง (M-04)
}
interface Alumnus {
ko: string;
en: string;
degree: "PhD" | "MS";
graduatedAt: string; // "2026-08" (ISO 8601 ๋ถ๋ถ ํ๊ธฐ)
major?: string; // "Computer Science and Engineering"
currentPosition?: string; // "Daegu Catholic University (๋๊ตฌ๊ฐํจ๋ฆญ๋ํ๊ต) as Professor"
}
// content/publications.ts
// D-01 ํ์ (v1.5) ํ 3๊ฐ ์นดํ
๊ณ ๋ฆฌ. ๋ผ๋ฒจ ๋ฌธ์์ด์ ๋ ์ง์คํธ๋ฆฌ์์๋ง ์ ์ํ๋ค (P-02).
type PubCategory =
| "intl-journal-conf" // International Journal & Conference
| "domestic-journal-conf" // Domestic Journal & Conference
| "patent"; // Patent
interface Publication {
category: PubCategory; // P-02: ํ๋ณ ํ๋
title: string; // P-12: ์๋ฌธ ๋ณด์กด
authors?: string; // P-12: ์๋ฌธ ๋ณด์กด
venue?: string; // ์ ๋/ํ์ ๋ํ๋ช
volume?: string; // "Vol. 23, pp. 4490~4505"
publishedAt: string; // "2026-04" (P-05 ์ ๋ ฌ ํค)
kci?: boolean; // P-08
doi?: string; // P-11: ์์ฝ ํ๋, ํ์ฌ ๋ฏธ์ฌ์ฉ
}
interface Patent {
category: "patent";
title: string;
inventors: string; // "๊ณ ์์ฃผ, ์ ์คํ, ๋จํ๋น, ์ต๋๊ท"
applicationNo: string; // "2023-0180751"
applicationAt: string; // "2023-12-13"
registrationNo?: string; // "2963109"
registrationAt?: string; // "2026-05-06"
country: string; // "ํ๊ตญ" | "US"
publishedAt: string; // ์ ๋ ฌ ํค (= applicationAt ์ ์ฐ์)
}
// content/lectures.ts
interface Semester {
term: "Spring" | "Fall";
year: number;
courses: { code: string; en: string; note?: string }[]; // L-05, L-06, L-07
}
// content/standards.ts
type DocStatus = "IS" | "TS" | "TR" | "CDV" | "WDTR" | "InProgress";
interface StandardsBody {
org: string; // "IEC TC100"
full: string; // "Multimedia Systems and Equipment"
scope: "international" | "domestic"; // S-02
period: string; // "2018 ~ Present"
role?: string; // "WG11 Convenor"
projects: {
wg: string; // "WG12"
name: string; // "Multimedia Systems and Equipment for Metaverse (IEC 63614)"
documents: { title: string; ref: string; status: DocStatus; publishedAt?: string }[];
}[];
}
```
### 7.3 ๋ง์ด๊ทธ๋ ์ด์
์ ์ฐจ
| ID | ์๊ตฌ์ฌํญ | ์์ค |
| :--- | :--- | :-- |
| MG-01 | ์ถ์ถ์ **์ฌํ ๊ฐ๋ฅํ ์คํฌ๋ฆฝํธ**๋ก ์ํํ๊ณ , ์คํฌ๋ฆฝํธ๋ฅผ `scripts/` ํ์์ ์ปค๋ฐํ๋ค. ์์์
๋ณต์ฌยท๋ถ์ฌ๋ฃ๊ธฐ ๊ธ์ง | MUST |
| MG-02 | ์ถ์ถ ํ **๊ฑด์ ๋์กฐ ๊ฒ์ฆ**์ ์ํํ๋ค. ๊ธฐ๋๊ฐ: ๊ตญ์ 68 / ๊ตญ๋ด 80 / ํนํ 75 / ํ์ค ๋ฌธ์ 55 / ์ฌํ 16 / ์กธ์
์ 60 / ํ๊ธฐ ์ฝ 20 | MUST |
| MG-03 | ํ๊ธยทํน์๋ฌธ์(`~`, `ยท`, `โง`, `o`, ์ ๊ฐ ๊ธฐํธ) ์ธ์ฝ๋ฉ ์์ค์ด ์์ด์ผ ํ๋ค. ๋ ๊ฑฐ์ ํ์ผ์ **BOM(`๏ปฟ`)์ด ์กด์ฌ**ํ๋ฏ๋ก ์ ๊ฑฐํ๋ค | MUST |
| MG-04 | ๋ ์ง๋ ์ ๋ถ **ISO 8601**๋ก ์ ๊ทํํ๋ค (`2026๋
6์` โ `2026-06`, `April 2026` โ `2026-04`, `2023.12.13` โ `2023-12-13`) | MUST |
| MG-05 | ๋ ๊ฑฐ์์ ์๋ ์ ๋ณด๋ฅผ **์ถ์ ยท์ฐฝ์ํ์ง ์๋๋ค.** ๋๋ฝ ํ๋๋ optional๋ก ๋๊ณ UI์์ ์กฐ๊ฑด๋ถ ๋ ๋ํ๋ค (PR-01) | MUST |
| MG-06 | ์ด๋ฏธ์ง ์์ฐ์ ์ค์ ์ฌ์ฉ๋ถ๋ง `public/`์ผ๋ก ์ด๊ดํ๋ค. ์๋ณธ ์ด๋ 11.6MB(`image/` 3.4MB + `assets/` 8.2MB)๋ฅผ ๋ฌด์กฐ๊ฑด ๋ณต์ฌํ์ง ์๋๋ค | MUST |
| MG-07 | ์ด๊ด ์ด๋ฏธ์ง๋ WebP ๋ณํ ๋ฐ `next/image` ์ ์ฉ | SHOULD |
| MG-08 | ๋ง์ด๊ทธ๋ ์ด์
์๋ฃ ํ ๋ ๋ HTML ์ ์ ์ค์บ์ผ๋ก **๊ตฌ ์ ์ฒด์ฑ ์์ฌ 0๊ฑด**์ ํ์ธํ๋ค (๊ฒ์ฌ์ด: `์ฌ๋ฌผ์ธํฐ๋ท ํ์ค`, `IoT Standards`, `MCM`, `๋ฉํ๋ฒ์ค ์ํธ์ด์ฉ์ฑ`, `ํ๊ธธ๋`, `placeholder`). ๋จ, **๋
ผ๋ฌธยทํนํ ์ ๋ชฉ์ ํฌํจ๋ ๋๋ฉ์ธ ์ฉ์ด๋ ์ค๋ฐ์ดํฐ์ด๋ฏ๋ก ์์ธ**๋ก ์ทจ๊ธํ๋ค | MUST |
> โ ๏ธ **MG-08์ ์ค์ํ ์์ธ**: ๋ ๊ฑฐ์ ์ค์ ์๋ `์ฌ๋ฌผ์ธํฐ๋ท`, `๋ฉํ๋ฒ์ค`, `oneM2M` ๋ฑ์ด **๋
ผ๋ฌธ ์ ๋ชฉยทํ์ค ๋ฌธ์๋ช
์ผ๋ก ์ค์ฌ**ํ๋ค(์: IEC 63614 *Multimedia Systems and Equipment for Metaverse*). ์ด๋ **๊ตฌ ์ ์ฒด์ฑ ์์ฌ๊ฐ ์๋๋ผ ๋ณด์กดํด์ผ ํ ์ค๋ฐ์ดํฐ**๋ค(PR-01). ์์ฌ ๊ฒ์ฌ๋ **์ฐ๊ตฌ์ค ์ ์ฒด์ฑ ์์ ์์ญ**(Header/Footer/metadata/Home ์๊ฐ๋ฌธ)์ ํ์ ํด ์ ์ฉํ๋ค.
---
## 8. ๋์์ธ ์์คํ
์ค์ ๊ท๊ฒฉ
์ ๋ณธ์ [`refer_landing_page/docs/DESIGN.md`](./refer_landing_page/docs/DESIGN.md)("Issue 01")์ด๋ฉฐ, ๋ณธ ์ ์ **์๋ฐ ์ ๋ฆฌ๋ทฐ์์ ๋ฐ๋ ค๋๋ ํญ๋ชฉ**๋ง ๋ฐ์ทํ๋ค.
### 8.1 ์์ ํ ํฐ (๋ณ๊ฒฝ ๊ธ์ง)
| ํ ํฐ | ๊ฐ | ์ฉ๋ |
| :--- | :--- | :--- |
| `ink` / `ink-soft` / `ink-mute` | `#0A0A0A` / `#262420` / `#6B655B` | ๋ณธ๋ฌธยท๊ด์ |
| `ivory` / `paper` / `line` | `#F5F1E8` / `#ECE6D6` / `#D8D1C0` | ์ข
์ด ๋ฐฐ๊ฒฝ / ์ธ์
/ ํค์ด๋ผ์ธ |
| `vermillion` / `vermillion-dark` | `#D9342B` / `#A8231C` | ๊ฐ์กฐ (Hot) |
| `cobalt` / `cobalt-dark` | `#1B3A8A` / `#122863` | ๊ฐ์กฐ (Cool) |
**R-8.1** ์ ๊ท ์ ํ ํฐ ์ถ๊ฐ ๊ธ์ง. ์์ ๊ฐ ๋ณ๊ฒฝ ์ `tailwind.config.ts`์ `app/globals.css`์ `:root` CSS ๋ณ์๋ฅผ **๋ฐ๋์ ํจ๊ป** ์์ ํ๋ค.
**R-8.2** `brand` / `accent` ๋ณ์นญ์ ๋ ๊ฑฐ์ ํธํ ์ ์ฉ์ด๋ฉฐ ์ ๊ท ์ฝ๋์์ ์ฌ์ฉ ๊ธ์ง.
### 8.2 ํ์ดํฌ๊ทธ๋ํผ ยท ์ ํธ๋ฆฌํฐ ํด๋์ค
**R-8.3** ์ง์ ์์ฒด๋ง ์ฌ์ฉํ๋ค โ ์๋ฌธ ๋์คํ๋ ์ด `Fraunces`(`font-display`), ๊ตญ๋ฌธ ํค๋๋ผ์ธ `Noto Serif KR`(`headline-ko`), ๋ณธ๋ฌธ ์ฐ์ธ๋ฆฌํ `Pretendard`/`Inter`(`font-sans`).
**R-8.4** ๊ธฐ์กด ์ ํธ๋ฆฌํฐ ํด๋์ค๋ฅผ ์ฐ์ ์ฌ์ฉํ๋ค: `.container-content`, `.display`, `.display-sm`, `.headline-ko`, `.kicker`, `.pull-quote`, `.reveal`. ๋๋ฑ ๊ธฐ๋ฅ์ ์์ ํด๋์ค ์ ์ค ๊ธ์ง.
### 8.3 ๊ฐ์กฐ์ ์๋งจํฑ ๊ณ์ฝ
**R-8.5** `vermillion` = Agent Engineering / Orchestration(ํ์ ํญ๋ชฉ), `cobalt` = MCP / A2A Protocol(์ง์ ํญ๋ชฉ). ๋ชฉ๋ก ๋ ๋ ์ ์ธ๋ฑ์ค ๊ธฐ๋ฐ ๊ต์ฐจ ๋ฐฐ์ ์ ๋ฐ๋ฅธ๋ค.
### 8.4 ์ปดํฌ๋ํธ ์ฌ์ฌ์ฉ
**R-8.6** ๊ธฐ์กด 7์ข
์ ์ฐ์ ์ฌ์ฌ์ฉํ๋ค: `Header`, `Footer`, `PageHeader`, `SectionLabel`, `Reveal`, `Counter`, `Marquee`. ์ ๊ท ์ปดํฌ๋ํธ๋ ๊ธฐ์กด ์กฐํฉ์ผ๋ก ๊ตฌํ ๋ถ๊ฐํจ์ ๋ฆฌ๋ทฐ์์ ์
์ฆํ ๊ฒฝ์ฐ์๋ง ์ถ๊ฐํ๋ค.
**R-8.7** `PageHeader`์ `index` prop์ IA ์์๋ฅผ ๋ฐ๋ฅธ๋ค โ Home 1 / Members 2 / Publications 3 / Lectures 4 / Standardization 5.
**R-8.8 [์ค์ ์ ์ฝ]** `Counter`๋ **์ ์ ์ ์ฉ**์ด๋ค. ๋ด๋ถ์์ `Math.round()`๋ก ํ์๊ฐ์ ์ฐ์ถํ๋ฏ๋ก ์์๋ฅผ ๋๊ธฐ๋ฉด ๋ฐ์ฌ๋ฆผ๋ ๊ฐ์ด ํ์๋๊ณ , `prefers-reduced-motion` ๊ฒฝ๋ก์์๋ ๋ฐ์ฌ๋ฆผ์ด ์ ์ฉ๋์ง ์์ **๋ชจ์
์ค์ ์ ๋ฐ๋ผ ๊ฐ์ด ๋ฌ๋ผ์ง๋ค**. ์์ ์งํ๊ฐ ํ์ํ๋ฉด `Counter`์ ์์ ๋์ ํ์ฅ์ ์ ํ ๊ณผ์ ๋ก ์ฒ๋ฆฌํ๋ค.
**R-8.9** ๊ทธ๋ฆฌ๋์์ `gap-px bg-line` ํค์ด๋ผ์ธ ๊ธฐ๋ฒ์ **ํ
๋๋ฆฌ ์๋ ์นด๋** ์ ์ฉ์ด๋ค. `border border-ink`๋ฅผ ๊ฐ์ง ์นด๋์๋ `bg-line`์ ํจ๊ป ๊ฑธ์ง ์๋๋ค.
**R-8.10** ํญ๋ชฉ ์๊ฐ ์ด ์๋ก ๋๋์ด๋จ์ด์ง์ง ์๋ ๊ทธ๋ฆฌ๋๋ `col-span`์ผ๋ก ๋ง์ง๋ง ํ์ ์ฑ์ด๋ค. ๋น ํธ๋์ด ๋ฐฐ๊ฒฝ์ ๋ธ๋ก์ผ๋ก ๋
ธ์ถ๋์ด์๋ ์ ๋๋ค (5๊ฐ ํญ๋ชฉ โ `lg:grid-cols-6` ๊ธฐ์ค 2/2/2 ยท 3/3 ์กฐํ์ด ํ๋ฆฝ๋ ํจํด).
### 8.5 Next.js ๋ ๋๋ง ์ ์ฝ *(v1.1 ์ ์ค)*
> **์ถ์ฒ**: ๊ฐ๋ฐ ํ์ฅ(Agy)์ ๊ธฐ์ ์ด์์ ๊ธฐ(Job `175860e4`)๋ฅผ ๊ณ๊ธฐ๋ก, ๋ณธ ํ๋ก์ ํธ์ ์ค์ ํ๊ฒฝ(**Next.js 14.2.35**, `refer_landing_page/`)์์ 4๊ฐ์ง ๊ตฌํ ๋ฐฉ์์ **์ง์ ๋น๋ํด ์ค์ธก**ํ ๊ฒฐ๊ณผ๋ค. ์ถ์ ์ด ์๋ ์ฌํ๋ ๊ด์ธก์น์ด๋ฉฐ, ํ๋ก๋ธ ๋ผ์ฐํธ๋ ๊ฒ์ฆ ํ ์ ๋ ์ญ์ ํด ์ ์ฅ์์ ๋จ๊ธฐ์ง ์์๋ค.
#### ์ค์ธก ๊ฒฐ๊ณผํ
| # | ๊ตฌํ ๋ฐฉ์ | ๋น๋ ๊ฒฐ๊ณผ | ์ ์ HTML์ ๋ด๊ธฐ๋ ๋ด์ฉ |
| :-: | :--- | :--- | :--- |
| 1 | Client Component์์ `useSearchParams()` โ **`` ์์** | โ **๋น๋ ์คํจ**
`useSearchParams() should be wrapped in a suspense boundary at page "/โฆ"` โ `Export encountered errors` | โ |
| 2 | `useSearchParams()` โ **`` ์์** | โ
**`โ (Static)`** | ๊ฒฝ๊ณ **์์ชฝ**์ fallback๋ง ์ ์ฅ๋จ.
๊ฒฝ๊ณ **๋ฐ๊นฅ**์ ์๋ฒ ๋ ๋ ์ฝํ
์ธ ๋ **์ ์ ํ๋ฆฌ๋ ๋๋จ** |
| 3 | Client `useState` + `window.history.pushState` | โ
**`โ (Static)`** | ํด๋ผ์ด์ธํธ **์ด๊ธฐ ์ํ๋ง** ์ ์ฅ๋จ (`cat=all`). ๊ณต์ ๋งํฌ ์ง์
์ ๋ง์ดํธ ํ ๋ณด์ โ **๋นํํฐ ์ํ๊ฐ ๋จผ์ ํ์๋จ** |
| 4 | Server Component์ **`searchParams` prop** ์ฌ์ฉ | โ ๏ธ **`ฦ (Dynamic)`** โ ์ ์ ์์ฑ ํ๋ฝ | ๋งค ์์ฒญ ์๋ฒ ๋ ๋ |
| 5 | `[category]` ์ธ๊ทธ๋จผํธ + `generateStaticParams()` | โ
**`โ (SSG)`** โ ์นดํ
๊ณ ๋ฆฌ๋ณ HTML **4๊ฐ ์์ฑ** | **์นดํ
๊ณ ๋ฆฌ ๊ฐ์ด HTML์ ๊ทธ๋๋ก ํฌํจ๋จ** (`cat=patent`) |
#### ๋์ถ ๊ท์น
**R-8.11 [๊ธ์ง]** Server Component ํ์ด์ง์์ **`searchParams` prop์ ์ฌ์ฉํ์ง ์๋๋ค.** ์ค์ธก #4์์ ํ์ธ๋ ๋๋ก ํด๋น ๋ผ์ฐํธ๊ฐ `ฦ (Dynamic)`์ผ๋ก ์ ํ๋์ด DM-03ยทNF-03์ ์ง์ ์๋ฐํ๋ค. **๋ณธ ํ๋ก์ ํธ์์ ์ ์ ์์ฑ์ ๊นจ๋จ๋ฆฌ๋ ์ ์ผํ๊ฒ ํ์ธ๋ ๊ฒฝ๋ก๋ค.**
**R-8.12 [๊ธ์ง]** `useSearchParams()`๋ฅผ `` ๊ฒฝ๊ณ ์์ด ํธ์ถํ์ง ์๋๋ค. ์ค์ธก #1์์ ํ๋ก๋์
๋น๋๊ฐ ์ค๋จ๋จ์ ํ์ธํ๋ค.
**R-8.13 [์ ํ์ ํ์ฉ]** `useSearchParams()` + `` ์กฐํฉ์ ์ ์ ์์ฑ์ ๊นจ๋จ๋ฆฌ์ง **์๋๋ค**(์ค์ธก #2์์ `โ Static` ์ ์ง ํ์ธ). ๋ค๋ง ๊ฒฝ๊ณ ์์ชฝ ์ฝํ
์ธ ๊ฐ ์ ์ HTML์์ ๋๋ฝ๋๋ฏ๋ก, **ํํฐ ์ปจํธ๋กค ๋ฑ ์๊ท๋ชจ UI์ ํํด** ์ฌ์ฉํ๊ณ ๋ ์ฝ๋ ๋ชฉ๋ก์๋ ์ฌ์ฉํ์ง ์๋๋ค(R-8.15).
**R-8.14 [๊ธ์ง]** ๋ผ์ฐํ
๋ชฉ์ ์ `window.history.pushState` ์ง์ ํธ์ถ์ ํ์ง ์๋๋ค. Next ๋ผ์ฐํฐ๋ฅผ ์ฐํํ๋ฏ๋ก **๋ค๋ก/์์ผ๋ก ๊ฐ๊ธฐ ์ URL๋ง ๋ฐ๋๊ณ UI๊ฐ ๊ฐฑ์ ๋์ง ์์ผ๋ฉฐ**, ์ด๋ฅผ ๋ณด์ ํ๋ ค๋ฉด `popstate` ๋ฆฌ์ค๋๋ฅผ ์ง์ ๋ฑ๋กยทํด์ ํด์ผ ํ๋ค. ์นดํ
๊ณ ๋ฆฌ ์ด๋์ `next/link`๋ก ์ฒ๋ฆฌํ๋ค(P-06a).
**R-8.15 [ํ์]** ๋๋ ๋ ์ฝ๋(Publications 223๊ฑด, Alumni 60๋ช
, ํ์ค ๋ฌธ์ 44๊ฑด)๋ **์๋ฒ ์ปดํฌ๋ํธ์์ ์ ์ HTML๋ก ๋ ๋**ํ๋ค. ํด๋ผ์ด์ธํธ ์ํ๋ `` ๊ฒฝ๊ณ ์์ชฝ์ ๋ฃ์ด ์ ์ ๋ฌธ์์์ ๋๋ฝ์ํค์ง ์๋๋ค. ์ค์ธก #2์์ **๊ฒฝ๊ณ ๋ฐ๊นฅ ์๋ฒ ๋ ๋ ์ฝํ
์ธ ๋ ํ๋ฆฌ๋ ๋๋๋ค**๋ ์ ์ด ํ์ธ๋์์ผ๋ฏ๋ก, ๋ชฉ๋ก์ ๋ฐ๊นฅ์ ๋๊ณ ์ธํฐ๋์
๋ง ์์ชฝ์ ๋๋ ๋ถ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.
**R-8.16 [ํ๊ธฐ]** `generateStaticParams()`๋ฅผ ์ฌ์ฉํ๋ ๋ผ์ฐํธ๋ ๋น๋ ๋ฆฌํฌํธ์์ `โ (Static)`์ด ์๋๋ผ **`โ (SSG)`** ๋ก ํ๊ธฐ๋๋ค. **๋ ํ๊ธฐ ๋ชจ๋ "๋น๋ ํ์ ์ ์ ํ๋ฆฌ๋ ๋"์ด๋ฉฐ ์๊ตฌ์ฌํญ์ ์ถฉ์กฑํ๋ค.** ์์ฉ ๊ธฐ์ค์ ํ์ ์ ยง10 AC-17์ ๊ฐ์ ๋ ๋ฌธ๊ตฌ๋ฅผ ๋ฐ๋ฅธ๋ค.
### 8.6 ๋ ์ด์์ ์ปจํ
์ด๋ ์ํคํ
์ฒ ยท ๋ธ๋ ์ดํฌํฌ์ธํธ ํ ํฐ *(v1.6 ์ ์ค)*
Job `343b5808` ๊ฒ์ฆ์์ ๋ณธ๋ฌธ ์ข์ฐ ์ฌ๋ฐฑยท์ต๋ ํญ ๋ฏธ์ ์ฉ(B1)์ด, ๊ฐ๋ฐ ํ์ฅ ์ด์์ ๊ธฐ(Job `2560771b`)์์ ๊ทธ ์์ ๋ฐฉ์์ ํ์ฅ์ฑ ์ ์ฝ์ด ๊ฐ๊ฐ ํ์ธ๋์๋ค. ์๋ ๊ท์น์ **D-06 ํ์ ์ฌํญ**์ด๋ค.
**R-8.17 [๊ณ์ธต ๋ถ๋ฆฌ ยท ํ์]** ๋ ์ด์์์ **3๊ณ์ธต**์ผ๋ก ๋ถ๋ฆฌํ๋ค.
1. `` (`app/layout.tsx`) โ **๋ทฐํฌํธ ์ ์ฒด ํญ์ ์ ์ง**ํ๋ค. `max-w-*` / `px-*` / `container-content`๋ฅผ **๋ถ์ฌํ์ง ์๋๋ค.**
2. **๋ผ์ฐํธ ์ต์์ ๋ํผ** โ ๊ฐ ํ์ด์ง ํ์ผ์ ๋ฃจํธ ``์ `container-content`๋ฅผ ๋ถ์ฌํด ๋ณธ๋ฌธ ์ฌ๋ฐฑ(24/40/48/64 px)๊ณผ ์ต๋ ํญ(78 rem = 1248 px) ์ค์ ์ ๋ ฌ์ ํ๋ณดํ๋ค.
3. **Full-bleed ๋ฐด๋** โ ์ ์ฒด ํญ ๋ฐฐ๊ฒฝ ๋ฐด๋ยท๊ตฌํ์ ยท๋งํด ํฐ์ปค๋ 2๊ณ์ธต ๋ํผ **๋ฐ๊นฅ**(์ฆ `
` ์ง์)์ ๋ฐฐ์นํ๋ค.
**R-8.18 [๊ธ์ง]** Full-bleed ์ฐ์ถ์ ์ํด `container-content` ์์์์ `w-screen` ๋๋ `-mx-[50vw]` ๊ณ์ด **ํ์ถ ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ง ์๋๋ค.** ํ์ฌ `html`ยท`body`์ `overflow-x` ๊ฐ๋๊ฐ **์ ๋ฌด**ํ๋ฏ๋ก(์ค์ธก ํ์ธ), ํญ ์ ํ ์ปจํ
์ด๋ ๋ด๋ถ์ `w-screen`์ ์ข์ธก ๊ธฐ์ค์ ์ด ๋ถ๋ชจ ์ฝํ
์ธ ๋ฐ์ค์ฌ์ ์ฐ์ธก์ผ๋ก ๋์ณ **๊ฐ๋ก ์คํฌ๋กค์ ์ ๋ฐํ๊ณ R-9.15/AC-19๋ฅผ ์๋ฐ**ํ๋ค. Full-bleed๊ฐ ํ์ํ๋ฉด R-8.17์ 3๊ณ์ธต์ผ๋ก ์ฌ๋ฆฐ๋ค.
**R-8.19 [ํ์]** ๋ผ์ฐํธ ๋ํผ ๋ฐฉ์์ **์ ๊ท ๋ผ์ฐํธ ์ถ๊ฐ ์ ๋๋ฝ๋ ์ ์์ผ๋ฏ๋ก**, ๋น๋ ์ฐ์ถ HTML์ ๋ชจ๋ ๋ผ์ฐํธ์์ `` ํ์์ `container-content`๊ฐ ์กด์ฌํจ์ **์๋ ๊ฒ์ดํธ๋ก ๊ฒ์ฆ**ํ๋ค(โ AC-25). ์ด ๊ฒ์ดํธ ์์ด๋ ๋ณธ ์ํคํ
์ฒ๋ฅผ ์ฑํํ์ง ์๋๋ค.
**R-8.20 [ํ ํฐ]** ๋ฐ์คํฌํฑ ๋ด๋น ์ ํ ์๊ณ๊ฐ์ `tailwind.config.ts`์ `theme.extend.screens`์ **`desktop: "1240px"` ๋จ์ผ ํ ํฐ**์ผ๋ก ๋ฑ๋กํ๊ณ `desktop:` ๋ณํ์ผ๋ก๋ง ์ฌ์ฉํ๋ค. ์์๊ฐ ํด๋์ค(`min-[1240px]:`)๋ฅผ ์์ค์ ์ง์ ์ฐ์ง ์๋๋ค.
- **์ค์ธก ํ์ธ**: Tailwind v3๋ `extend`๋ก ์ถ๊ฐํ ์คํฌ๋ฆฐ๋ **min-width ๊ฐ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ**ํด ์ถ๋ ฅํ๋ฏ๋ก(`1024 โ 1240 โ 1280 โ 1536` ์์ ํ์ธ), `2xl` ๋ฑ ์์ ๋ธ๋ ์ดํฌํฌ์ธํธ๋ฅผ ๋ฎ์ด์ฐ๋ ์บ์ค์ผ์ด๋ ์ฌ๊ณ ๋ ๋ฐ์ํ์ง ์๋๋ค. `screens` ์ ์ฒด๋ฅผ ์ฌ์ ์ํ ํ์๊ฐ ์๋ค.
- **์ฃผ์**: `lg`(1024px)์ `desktop`(1240px)์ด ๊ณต์กดํ๋ฏ๋ก, **ํค๋ ๋ด ๋ฐ์คํฌํฑ/๋ชจ๋ฐ์ผ ์ ํ์ `desktop:`์ผ๋ก๋ง ํต์ผ**ํ๋ค. ๋์ผ ์์ฑ์ `lg:`์ `desktop:`์ ํผ์ฉํ๋ฉด 1024โ1239 px ๊ตฌ๊ฐ์ ์๋์น ์์ ์ค๊ฐ ์ํ๊ฐ ์๊ธด๋ค(B2๊ฐ ์ ํํ ์ด ์ฌ๊ณ ์๋ค).
---
## 9. ๋น๊ธฐ๋ฅ ์๊ตฌ์ฌํญ (Non-Functional Requirements)
### 9.1 ๋น๋ ํ์ง ๊ฒ์ดํธ โ ๋ณํฉ ํ์ ์กฐ๊ฑด
| ID | ์๊ตฌ์ฌํญ | ๊ฒ์ฆ ๋ช
๋ น |
| :--- | :--- | :--- |
| NF-01 | ESLint ๊ฒฝ๊ณ ยท์ค๋ฅ 0๊ฑด | `npm run lint` |
| NF-02 | TypeScript ์ค๋ฅ 0๊ฑด | `npx tsc --noEmit` |
| NF-03 *(v1.1 ๋ฌธ๊ตฌ ์ ์ )* | ํ๋ก๋์
๋น๋ ์ฑ๊ณต. ์ ๋ผ์ฐํธ๊ฐ ๋น๋ ํ์ ์ ์ ํ๋ฆฌ๋ ๋(`โ Static` ๋๋ `โ SSG`)์ด๋ฉฐ **`ฦ Dynamic` ๋ผ์ฐํธ๊ฐ 0๊ฑด**์ด์ด์ผ ํ๋ค | `npm run build` |
| NF-04 | `package.json` โ `package-lock.json` ์ ํฉ. ์์กด์ฑ ์ถ๊ฐ ์ lockfile ๋์ ์ปค๋ฐ | `npm install --package-lock-only` ํ diff ํ์ธ |
### 9.2 SEO
**R-9.1** ์ ๋ผ์ฐํธ์ ๊ณ ์ ํ `metadata.title` / `metadata.description`์ ์ ์ํ๋ค. ํ์ดํ ํ
ํ๋ฆฟ์ ํํ `%s | ANL ยท ๊ฒฝ๋ถ๋ํ๊ต`๋ฅผ ์ ์งํ๋ค.
**R-9.2** Open Graph(`og:title`, `og:description`, `og:image`, `og:type`, `og:locale=ko_KR`) ๋ฐ Twitter Card ๋ฉํ๋ฅผ ์ถ๊ฐํ๋ค.
**R-9.3** ์๋งจํฑ HTML5 ์์(``, ``, ``, `