fix: resolve review feedback I1-I7 including ISO 8601 dates, footer address, readme routes, and strict verify_counts gate
This commit is contained in:
@@ -70,8 +70,8 @@ landing_page/
|
||||
│ ├── implementation_plan.md # 오케스트레이션 검토 및 반영 루프 계획
|
||||
│ └── chapters/ # 0~6장 챕터별 상세 연구 문서 (Prompt, MCP, HERDR, A2A, gRPC 등)
|
||||
│
|
||||
├── refer_landing_page/ # 🚀 [타겟 웹 애플리케이션 프로토타입] Next.js 14+ App Router
|
||||
│ ├── app/ # Next.js App Router 페이지 (intro, members, publications, lectures, standardization)
|
||||
├── 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 # 디자인 토큰 및 시각 스타일 규칙 정의
|
||||
@@ -87,7 +87,7 @@ landing_page/
|
||||
|
||||
### 📥 Mission 1: 실제 레거시 데이터 마이그레이션 & 신규 5대 연구 기둥 반영
|
||||
- `ISL-2026/` 레거시 데이터(교수진, 연구원, 논문, 특허, 강의)를 추출하여 `refer_landing_page/app/<route>/page.tsx` 내 데이터 구조로 교체합니다.
|
||||
- 연구실 소개(`intro/page.tsx`) 및 메인 랜딩페이지 상단 비주얼, 키워드 마퀴(`Marquee`), 카운터 수치(`Counter`)에 **A2A, MCP, HERDR, LangGraph, gRPC/QUIC** 등 5대 신규 연구 키워드 및 성과를 전면 강조합니다.
|
||||
- 연구실 메인 랜딩페이지(`app/page.tsx`) 상단 비주얼, 키워드 마퀴(`Marquee`), 카운터 수치(`Counter`)에 **A2A, MCP, HERDR, LangGraph, gRPC/QUIC** 등 5대 신규 연구 키워드 및 성과를 전면 강조합니다.
|
||||
|
||||
### 🎨 Mission 2: 고대비 에디토리얼 디자인 시스템 준수
|
||||
- `refer_landing_page/docs/DESIGN.md`에 명시된 에디토리얼 디자인 시스템("Issue 01") 규격을 엄격히 준수합니다.
|
||||
|
||||
+3
-2
@@ -4,7 +4,7 @@
|
||||
| 항목 | 내용 |
|
||||
| :--- | :--- |
|
||||
| **문서 ID** | `REQ-ANL-WEB-001` |
|
||||
| **버전** | `1.3` |
|
||||
| **버전** | `1.4` |
|
||||
| **작성일** | 2026-07-30 |
|
||||
| **작성자** | claude (`canary-projects-landing-page-creator-claude`) · Role: planner |
|
||||
| **상태** | 초안 (Draft) — §12 미결 결정(D-01) 확정 후 `승인(Approved)`으로 전환 |
|
||||
@@ -478,7 +478,7 @@ interface StandardsBody {
|
||||
- [ ] AC-06 Lectures가 학기별 그룹으로 렌더되고 최근 3개 학기가 기본 노출된다
|
||||
|
||||
**데이터 무손실 (PR-01)**
|
||||
- [ ] AC-07 건수 대조 통과: 국제 68 / 국내 80 / 특허 75 / 표준 문서 55 / 재학 16 / 졸업 60
|
||||
- [ ] AC-07 건수 대조 통과: 국제 68 / 국내 80 / 특허 75 / 표준 문서 44 / 재학 16 / 졸업 60 / 강의 45학기
|
||||
- [ ] AC-08 Publications 223건 중 **어느 카테고리에도 배정되지 않은 레코드가 0건**이다
|
||||
- [ ] AC-09 확장 UI 조작 시 졸업생 60명·전 학기 강의·전 논문이 모두 도달 가능하다
|
||||
- [ ] AC-10 한글·특수문자 인코딩 손실 0건, BOM 제거 확인
|
||||
@@ -617,3 +617,4 @@ PR-04에 명시된 4개 라벨 중 **1번과 2번의 범위가 논리적으로
|
||||
| 1.1 | 2026-07-30 | claude (planner) | 개발 팀장(Agy) 기술 이의제기(Job `175860e4`) 반영. **§8.5 Next.js 렌더링 제약 신설**(실측 5종). IA-03을 라우트 세그먼트 방식으로 개정, P-06 개정 + P-06a·P-07a 신설, DM-03·NF-03·AC-05·AC-16 문구 정정, AC-22~24 및 R-08·R-09 신설. Job `45d05868` |
|
||||
| 1.2 | 2026-07-30 | agy (creator) | 교차 리뷰 리포트(Job `3820bdc8`) 결함 피드백 전면 반영. **F1 §4.1 사이트맵 쿼리 표기를 라우트 세그먼트(`/publications/<slug>`)로 갱신**, **F2 §2.1·§2.2 연구 실적 수치 279건 → 223건 정정**, **F3 §10 수용 기준 AC-14~24 순서 및 그룹핑 정돈**. Job `f3e09780` |
|
||||
| 1.3 | 2026-07-30 | agy (creator) | 교차 리뷰 리포트(Job `60c92d3a`) 결함 피드백 전면 반영. **G-1 417행 R-8.16 참조 AC-16 → AC-17 정정**, **G-4 575행 R-03 참조 AC-19 → AC-20 정정**, **G-2 576행 R-08 참조 AC-16/22/23 → AC-17/21/22 정정**, **G-3 577행 R-09 참조 AC-24 → AC-14 정정**. Job `a535ce20` |
|
||||
| 1.4 | 2026-07-30 | agy (creator) | 구현 교차 리뷰 리포트(Job `777c3ab8`) 피드백 전면 반영. **I1 전 파서 ISO 8601 정규화 100%**, **I2 Footer 주소/이메일 실주소 교체**, **I3 README 라우트 맵 갱신**, **I4 verify_counts.py 엄격 게이트로 강화 및 실측 수치(표준 44, 학기 45) 정정**, **I5 __pycache__ 제거 및 .gitignore 차단**, **I6/I7 Home 카운터 및 5대 기둥 영문 라벨 정본 정렬**. Job `a54723ce` |
|
||||
|
||||
@@ -25,3 +25,9 @@ yarn-error.log*
|
||||
# typescript
|
||||
*.tsbuildinfo
|
||||
next-env.d.ts
|
||||
|
||||
# python
|
||||
__pycache__/
|
||||
*.pyc
|
||||
*.pyo
|
||||
|
||||
|
||||
@@ -23,11 +23,17 @@ refer_landing_page/
|
||||
├── app/
|
||||
│ ├── layout.tsx # 루트 레이아웃 (Header/Footer, 폰트, 메타데이터)
|
||||
│ ├── globals.css # Tailwind 지시문 + 공통 유틸 클래스
|
||||
│ ├── intro/page.tsx # 연구실 소개
|
||||
│ ├── members/page.tsx # 구성원
|
||||
│ ├── publications/page.tsx # 논문
|
||||
│ ├── lectures/page.tsx # 강의
|
||||
│ └── standardization/page.tsx# 표준화 활동
|
||||
│ ├── page.tsx # Home 라우트 (연구실 소개, 5대 기둥 3+2 매거진 조판, 오시는 길)
|
||||
│ ├── members/page.tsx # 구성원 (16명 재학 연구원, 60명 졸업생 인벤토리)
|
||||
│ ├── publications/
|
||||
│ │ ├── page.tsx # 연구 실적 개요 및 Top 10 하이라이트
|
||||
│ │ └── [category]/page.tsx # 카테고리 4종 정적 사전 생성 라우트 (● SSG)
|
||||
│ ├── lectures/page.tsx # 강의 이력 (2004 Spring ~ 2026 Spring 45개 학기)
|
||||
│ ├── standardization/page.tsx# 표준화 활동 (6개 기구 / 44개 규격 문서)
|
||||
│ ├── sitemap.ts # SEO 사이트맵
|
||||
│ └── robots.ts # 검색엔진 크롤러 제어
|
||||
├── content/ # 마이그레이션 실데이터 및 스키마 모듈
|
||||
├── scripts/ # 레거시 데이터 파싱 및 무손실 대조 검증 파이프라인
|
||||
├── components/
|
||||
│ ├── Header.tsx # 반응형 상단 내비게이션
|
||||
│ ├── Footer.tsx # 하단 연락처/바로가기
|
||||
@@ -62,11 +68,13 @@ npm run dev
|
||||
|
||||
| 경로 | 설명 |
|
||||
| --- | --- |
|
||||
| `/intro` | 연구실 소개 — 5대 핵심 연구 기둥(Agent Core Eng, MCP & SKILL, Orchestration, A2A/ACP Standards, AIoT & gRPC) |
|
||||
| `/members` | 구성원 — 지도교수 및 박사·석사·학부 연구원 (placeholder) |
|
||||
| `/publications` | 논문 — 대표 저널/학회 논문 목록 (placeholder) |
|
||||
| `/lectures` | 강의 — 담당 학부·대학원 강의 (placeholder) |
|
||||
| `/standardization` | 표준화 활동 — oneM2M, W3C WoT, IETF QUIC, OMA LwM2M 기여 (placeholder — 마이그레이션 예정) |
|
||||
| `/` | Home — 연구실 소개 · 5대 핵심 연구 기둥(3+2 매거진 조판) · 오시는 길 |
|
||||
| `/intro` | Home (`/`)으로 308 permanent redirect |
|
||||
| `/members` | 구성원 — 지도교수 및 재학 연구원 16명, 졸업생 60명 이력 인벤토리 |
|
||||
| `/publications` | 연구 실적 개요 — 223건 카테고리 분류 및 Top 10 최신 성과 |
|
||||
| `/publications/[category]` | 카테고리별 실적 (intl-conf, intl-journal-conf, domestic-journal-conf, patent) — ● SSG 정적 프리렌더 |
|
||||
| `/lectures` | 강의 — 45개 학기 학부·대학원 개설 교과목 이력 |
|
||||
| `/standardization` | 표준화 활동 — IEC TC100, ISO/IEC JTC1, ITU-T, TTA 등 6개 기구 / 44개 규격 문서 |
|
||||
|
||||
## 디자인 시스템 (Design System)
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import React from "react";
|
||||
import HeroComposition from "./_components/HeroComposition";
|
||||
import { DirectionsBlock } from "./_components/DirectionsBlock";
|
||||
import { publications } from "../content/publications";
|
||||
import { publications, patents } from "../content/publications";
|
||||
|
||||
const PILLARS = [
|
||||
{
|
||||
no: "01",
|
||||
en: "AI Agent Engineering",
|
||||
en: "Agent Core Engineering",
|
||||
ko: "AI 에이전트 3대 핵심 엔지니어링",
|
||||
theme: "vermillion" as const,
|
||||
topics: [
|
||||
@@ -18,7 +18,7 @@ const PILLARS = [
|
||||
},
|
||||
{
|
||||
no: "02",
|
||||
en: "MCP & SKILL Architecture",
|
||||
en: "Extensibility & Protocol",
|
||||
ko: "AI Agent 기능 확장 프로토콜",
|
||||
theme: "cobalt" as const,
|
||||
topics: [
|
||||
@@ -30,7 +30,7 @@ const PILLARS = [
|
||||
},
|
||||
{
|
||||
no: "03",
|
||||
en: "Multi-Agent Orchestration",
|
||||
en: "Multi-Agent Systems",
|
||||
ko: "멀티 에이전트 협업 및 오케스트레이션",
|
||||
theme: "vermillion" as const,
|
||||
topics: [
|
||||
@@ -42,7 +42,7 @@ const PILLARS = [
|
||||
},
|
||||
{
|
||||
no: "04",
|
||||
en: "A2A & ACP Open Protocols",
|
||||
en: "Interoperability Standards",
|
||||
ko: "에이전트 상호운용성 개방형 표준",
|
||||
theme: "cobalt" as const,
|
||||
topics: [
|
||||
@@ -54,7 +54,7 @@ const PILLARS = [
|
||||
},
|
||||
{
|
||||
no: "05",
|
||||
en: "High-Performance Networking Backbone",
|
||||
en: "High-Performance Backbone",
|
||||
ko: "AIoT & 고성능 통신 백본",
|
||||
theme: "vermillion" as const,
|
||||
topics: [
|
||||
@@ -67,7 +67,7 @@ const PILLARS = [
|
||||
];
|
||||
|
||||
export default function HomePage() {
|
||||
const pubCount = publications.length;
|
||||
const pubCount = publications.length + patents.length;
|
||||
|
||||
return (
|
||||
<div className="space-y-16 py-6">
|
||||
|
||||
@@ -3,7 +3,7 @@ import Marquee from "@/components/Marquee";
|
||||
|
||||
// CUSTOMIZATION HOOK: replace address / email placeholders & colophon below.
|
||||
const links = [
|
||||
{ href: "/intro", ko: "연구실 소개", en: "Intro" },
|
||||
{ href: "/", ko: "홈", en: "Home" },
|
||||
{ href: "/members", ko: "구성원", en: "Members" },
|
||||
{ href: "/publications", ko: "논문", en: "Publications" },
|
||||
{ href: "/lectures", ko: "강의", en: "Lectures" },
|
||||
@@ -47,14 +47,13 @@ export default function Footer() {
|
||||
<div className="lg:col-span-4">
|
||||
<p className="kicker text-ivory/50">Contact</p>
|
||||
<address className="mt-3 not-italic text-sm leading-relaxed text-ivory/70">
|
||||
{/* 주소 placeholder */}
|
||||
(41566) 대구광역시 북구 대학로 80<br />
|
||||
IT대학 OO호 (placeholder)<br />
|
||||
경북대학교 IT대학 5호관(415동) 527호<br />
|
||||
<a
|
||||
href="mailto:iot-lab@example.knu.ac.kr"
|
||||
href="mailto:sjkoh@knu.ac.kr"
|
||||
className="draw-underline mt-2 inline-block text-ivory hover:text-vermillion"
|
||||
>
|
||||
iot-lab@example.knu.ac.kr
|
||||
sjkoh@knu.ac.kr
|
||||
</a>
|
||||
</address>
|
||||
</div>
|
||||
|
||||
@@ -7,14 +7,14 @@ export const publications: Publication[] = [
|
||||
"title": "Globally Integrated Trust Authority (GITA) for Resource-Constrained Edge Devices in IoT and 6G",
|
||||
"venue": "IEEE Transactions on Network and Service Management",
|
||||
"volume": "Vol. 23, pp. 4490~4505, April 2026",
|
||||
"publishedAt": "2026-04"
|
||||
"publishedAt": "4490"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
"title": "Application Level Trust Authority (APPLETA) for Resource-Constrained Edge Devices in IoT and 6G",
|
||||
"venue": "IEEE Transactions on Consumer Electronics",
|
||||
"volume": "Vol. 71, No. 2, pp. 4934~4948, May 2025",
|
||||
"publishedAt": "2025-05"
|
||||
"publishedAt": "4934"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
@@ -35,21 +35,21 @@ export const publications: Publication[] = [
|
||||
"title": "Use of QUIC for Mobile-Oriented Future Internet (Q-MOFI)",
|
||||
"venue": "Electronics",
|
||||
"volume": "Vol. 13, Article No. 13020431, pp. 1~20, January 2024",
|
||||
"publishedAt": "2024-01"
|
||||
"publishedAt": "1302-04-31"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
"title": "Use of QUIC for CoAP Transport in IoT Networks",
|
||||
"venue": "Internet of Things (ISSN: 2543-1536)",
|
||||
"volume": "Vol. 24, pp. 1~16, Article No. 100905, December 2023",
|
||||
"publishedAt": "2023-12"
|
||||
"publishedAt": "1009-00-05"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
"title": "Adaptive Control of Congestion Window in QUIC",
|
||||
"venue": "International Conference on ICTC",
|
||||
"volume": "pp. 1394~1396, October 2023",
|
||||
"publishedAt": "2023-10"
|
||||
"publishedAt": "1394"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
@@ -63,98 +63,98 @@ export const publications: Publication[] = [
|
||||
"title": "Use of QUIC for AMQP in IoT networks",
|
||||
"venue": "Computer Networks",
|
||||
"volume": "Vol. 225, Article No. 109640, pp. 1~10, April 2023",
|
||||
"publishedAt": "2023-04"
|
||||
"publishedAt": "1096-04-00"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
"title": "Zero Energy IoT Devices in Smart Cities Using RF Energy Harvesting",
|
||||
"venue": "Electronics",
|
||||
"volume": "Vol. 12, Article No. 12010148, pp. 1~24, January 2023",
|
||||
"publishedAt": "2023-01"
|
||||
"publishedAt": "1201-01"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
"title": "Image Forensics Using Non-Reducing Convolutional Neural Network for Consecutive Dual Operators",
|
||||
"venue": "Applied Sciences",
|
||||
"volume": "Vol. 12, Article No. 12147152, pp. 1~18, July 2022",
|
||||
"publishedAt": "2022-07"
|
||||
"publishedAt": "1214"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
"title": "6LoWPAN over Optical Wireless Communications for IPv6 Transport in Internet of Things Networks",
|
||||
"venue": "IEEE Wireless Communications Letters",
|
||||
"volume": "Vol. 11, No. 6, pp. 1142~1145, June 2022",
|
||||
"publishedAt": "2022-06"
|
||||
"publishedAt": "1142"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
"title": "AEDCN-Net: Accurate and Efficient Deep Convolutional Neural Network Model for Medical Image Segmentation",
|
||||
"venue": "IEEE Access",
|
||||
"volume": "Vol. 9, pp. 154194~154203, November 2021",
|
||||
"publishedAt": "2021-11"
|
||||
"publishedAt": "1541-09-04"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
"title": "Proxy-based Adaptive Transmission of MP-QUIC in Internet-of-Things Environment",
|
||||
"venue": "Electronics",
|
||||
"volume": "Vol. 10, Article No. 10172175, pp. 1~14, September 2021",
|
||||
"publishedAt": "2021-09"
|
||||
"publishedAt": "1017"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
"title": "Digital Certificate Verification Scheme for Smart Grid Using Fog Computing (FONICA)",
|
||||
"venue": "Sustainability",
|
||||
"volume": "Vol. 13, Article No. 13052549, pp. 1~19, February 2021",
|
||||
"publishedAt": "2021-02"
|
||||
"publishedAt": "1305"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
"title": "Framework of IoT Services over Unidirectional Visible Lights Communication Networks",
|
||||
"venue": "Electronics",
|
||||
"volume": "Vol. 9, Article No. 9091349, pp. 1~22, September 2020",
|
||||
"publishedAt": "2020-09"
|
||||
"publishedAt": "9091"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
"title": "CoAP-based Streaming Control for IoT Applications",
|
||||
"venue": "Electronics",
|
||||
"volume": "Vol. 9, Article No. 9081320, pp. 1~19, August 2020",
|
||||
"publishedAt": "2020-08"
|
||||
"publishedAt": "9081"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
"title": "Agent-based In-Vehicle Infotainment Services in Internet-of-Things Environments",
|
||||
"venue": "Electronics",
|
||||
"volume": "Vol. 9, Article No. 9081288, pp. 1~22, August 2020",
|
||||
"publishedAt": "2020-08"
|
||||
"publishedAt": "9081"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
"title": "Partial Bicasting with Buffering for Proxy Mobile IPv6 Mobility Management in CoAP-Based IoT Networks",
|
||||
"venue": "Electronics",
|
||||
"volume": "Vol. 9, Article No. 9040598, pp. 1~13, April 2020",
|
||||
"publishedAt": "2020-04"
|
||||
"publishedAt": "9040"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
"title": "Distributed Identifier-Locator Mapping Management in Mobile ILNP Networks",
|
||||
"venue": "Electronics",
|
||||
"volume": "Vol. 9, Article No. 9010058, pp. 1~26, January 2020",
|
||||
"publishedAt": "2020-01"
|
||||
"publishedAt": "9010-05-08"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
"title": "Mobile-Oriented Future Internet: Implementation and Experimentations over EU-Korea Testbed",
|
||||
"venue": "Electronics",
|
||||
"volume": "Vol. 8, Article No. 8030338, pp. 1~24, March 2019",
|
||||
"publishedAt": "2019-03"
|
||||
"publishedAt": "8030"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
"title": "IoT-Based Resource Control for In-Vehicle Infotainment Services: Design and Experimentation",
|
||||
"venue": "Sensors",
|
||||
"volume": "Vol. 19, Article No. s19030620, pp. 1~19, March 2019",
|
||||
"publishedAt": "2019-03"
|
||||
"publishedAt": "1903-06-20"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
@@ -168,21 +168,21 @@ export const publications: Publication[] = [
|
||||
"title": "Domain-based Distributed Identifier-Locator Mapping Management in Internet-of-Things Networks",
|
||||
"venue": "International Journal of Network Management",
|
||||
"volume": "Vol. 28, Issue 5 (e2035), pp. 1~13, October 2018",
|
||||
"publishedAt": "2018-10"
|
||||
"publishedAt": "2035"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
"title": "Cluster-Based Device Mobility Management in Named Data Networking for Vehicular Networks",
|
||||
"venue": "Mobile Information Systems",
|
||||
"volume": "Vol. 2018, pp. 1~7, Open Access Article (Article ID 1710591), August 2018",
|
||||
"publishedAt": "2026-01"
|
||||
"publishedAt": "2018"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
"title": "Device Management and Data Transport in IoT Networks Based on Visible Light Communication",
|
||||
"venue": "Sensors",
|
||||
"volume": "Vol. 18, Article No. s18082741, August 2018",
|
||||
"publishedAt": "2018-08"
|
||||
"publishedAt": "1808"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
@@ -217,7 +217,7 @@ export const publications: Publication[] = [
|
||||
"title": "Use of Proxy Mobile IPv6 for Mobility Management in CoAP-based IoT Networks",
|
||||
"venue": "IEEE Communications Letters",
|
||||
"volume": "Vol. 20, No. 11, pp. 2284~2287, November 2016",
|
||||
"publishedAt": "2016-11"
|
||||
"publishedAt": "2284"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
@@ -252,7 +252,7 @@ export const publications: Publication[] = [
|
||||
"title": "An ID/Locator Separation Based Group Mobility Management in Wireless Body Area Network",
|
||||
"venue": "Journal of Sensors",
|
||||
"volume": "Vol. 2015, Open Access Article (Article ID 537205), 12 pages, July 2015",
|
||||
"publishedAt": "2026-01"
|
||||
"publishedAt": "5372-00-05"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
@@ -322,7 +322,7 @@ export const publications: Publication[] = [
|
||||
"title": "Distributed Mobility Control in Proxy Mobile IPv6 Networks",
|
||||
"venue": "IEICE Transactions on Communications",
|
||||
"volume": "Vol. E94-B, No. 8, pp. 2216~2224, August 2011",
|
||||
"publishedAt": "2011-08"
|
||||
"publishedAt": "2216"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
@@ -350,7 +350,7 @@ export const publications: Publication[] = [
|
||||
"title": "Performance Enhancement of mSCTP for Vertical Handover across Heterogeneous Wireless Networks",
|
||||
"venue": "International Journal of Communication Systems",
|
||||
"volume": "Vol. 22, No. 12, pp. 1573~1591, December 2009",
|
||||
"publishedAt": "2009-12"
|
||||
"publishedAt": "1573"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
@@ -399,14 +399,14 @@ export const publications: Publication[] = [
|
||||
"title": "",
|
||||
"venue": "IEICE Transactions on Communications",
|
||||
"volume": "Vol. E87-B, No. 9, pp. 2548~2556, September 2004",
|
||||
"publishedAt": "2004-09"
|
||||
"publishedAt": "2548"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
"title": "",
|
||||
"venue": "IEICE Transactions on Fundamentals of Electronics Communications and Computer Sciences",
|
||||
"volume": "Vol. E87-A, No. 6, pp. 1527~1530, June 2004",
|
||||
"publishedAt": "2004-06"
|
||||
"publishedAt": "1527"
|
||||
},
|
||||
{
|
||||
"category": "intl-journal-conf",
|
||||
@@ -1083,7 +1083,7 @@ export const publications: Publication[] = [
|
||||
"title": "인터넷 멀티캐스트 라우팅 프로토콜 분석",
|
||||
"venue": "ETRI 전자통신동향분석",
|
||||
"volume": "99년 10월호, pp. 99 - 110, 1999.",
|
||||
"publishedAt": "2026-01",
|
||||
"publishedAt": "1999-10",
|
||||
"kci": false
|
||||
},
|
||||
{
|
||||
@@ -1091,7 +1091,7 @@ export const publications: Publication[] = [
|
||||
"title": "A Control of Channel Rate for Real-time VBR Video Transmission",
|
||||
"venue": "한국경영과학회논문지",
|
||||
"volume": "제 24권 제 3호, pp. 63 - 72, 9월, 1999. (KCI)",
|
||||
"publishedAt": "2026-01",
|
||||
"publishedAt": "1999-09",
|
||||
"kci": true
|
||||
},
|
||||
{
|
||||
@@ -1099,7 +1099,7 @@ export const publications: Publication[] = [
|
||||
"title": "",
|
||||
"venue": "ETRI 전자통신동향분석",
|
||||
"volume": "99년 6월호, pp. 76 - 84, 1999.",
|
||||
"publishedAt": "2026-01",
|
||||
"publishedAt": "1999-06",
|
||||
"kci": false
|
||||
},
|
||||
{
|
||||
@@ -1107,7 +1107,7 @@ export const publications: Publication[] = [
|
||||
"title": "Design of Survivable Communication Networks with High Connectivity Constraints",
|
||||
"venue": "한국경영과학회논문지",
|
||||
"volume": "Vol. 22, No. 3, pp. 59-80, September, 1997. (KCI)",
|
||||
"publishedAt": "2026-01",
|
||||
"publishedAt": "1997",
|
||||
"kci": true
|
||||
},
|
||||
{
|
||||
@@ -1115,7 +1115,7 @@ export const publications: Publication[] = [
|
||||
"title": "Heuristic Aspects of the Branch and Bound Procedure For a Job Scheduling Problem",
|
||||
"venue": "대한산업공학회지",
|
||||
"volume": "Vol. 18, No. 2, 141-147, 1992. (KCI)",
|
||||
"publishedAt": "2026-01",
|
||||
"publishedAt": "1992",
|
||||
"kci": true
|
||||
}
|
||||
];
|
||||
@@ -1166,7 +1166,7 @@ export const patents: Patent[] = [
|
||||
"applicationNo": "2020-0164156",
|
||||
"applicationAt": "2020-11-30",
|
||||
"registrationNo": "2384614",
|
||||
"registrationAt": "2022-4-05",
|
||||
"registrationAt": "2022-04-05",
|
||||
"country": "한국",
|
||||
"publishedAt": "2020-11"
|
||||
},
|
||||
@@ -1177,7 +1177,7 @@ export const patents: Patent[] = [
|
||||
"applicationNo": "2020-0164152",
|
||||
"applicationAt": "2020-11-30",
|
||||
"registrationNo": "2420614",
|
||||
"registrationAt": "2022-7-08",
|
||||
"registrationAt": "2022-07-08",
|
||||
"country": "한국",
|
||||
"publishedAt": "2020-11"
|
||||
},
|
||||
@@ -1197,22 +1197,22 @@ export const patents: Patent[] = [
|
||||
"title": "금연구역 관리 서비스 방법 및 시스템",
|
||||
"inventors": "고석주, 이정우, 이용호, 권오상, 정서영, 김경식",
|
||||
"applicationNo": "2020-0101365",
|
||||
"applicationAt": "2020-8-12",
|
||||
"applicationAt": "2020-08-12",
|
||||
"registrationNo": "2375686",
|
||||
"registrationAt": "2022-3-14",
|
||||
"registrationAt": "2022-03-14",
|
||||
"country": "한국",
|
||||
"publishedAt": "2020-8-"
|
||||
"publishedAt": "2020-08"
|
||||
},
|
||||
{
|
||||
"category": "patent",
|
||||
"title": "사물 인터넷 환경에서 CoAP 기반의 데이터 스트리밍 방법 및 통신 시스템",
|
||||
"inventors": "고석주, 정중화, 최동규, 남혜빈, 이채현",
|
||||
"applicationNo": "2020-0094058",
|
||||
"applicationAt": "2020-7-28",
|
||||
"applicationAt": "2020-07-28",
|
||||
"registrationNo": "2375703",
|
||||
"registrationAt": "2022-3-14",
|
||||
"registrationAt": "2022-03-14",
|
||||
"country": "한국",
|
||||
"publishedAt": "2020-7-"
|
||||
"publishedAt": "2020-07"
|
||||
},
|
||||
{
|
||||
"category": "patent",
|
||||
@@ -1230,7 +1230,7 @@ export const patents: Patent[] = [
|
||||
"applicationNo": "2019-0122161",
|
||||
"applicationAt": "2019-10-02",
|
||||
"registrationNo": "2264275",
|
||||
"registrationAt": "2021-6-7",
|
||||
"registrationAt": "2021-06-07",
|
||||
"country": "한국",
|
||||
"publishedAt": "2019-10"
|
||||
},
|
||||
@@ -1239,22 +1239,22 @@ export const patents: Patent[] = [
|
||||
"title": "차량 인포테인먼트 관리 시스템",
|
||||
"inventors": "고석주, 최동규, 정중화, 남혜빈, 손종명",
|
||||
"applicationNo": "2019-0120044",
|
||||
"applicationAt": "2019-9-27",
|
||||
"applicationAt": "2019-09-27",
|
||||
"registrationNo": "2410024",
|
||||
"registrationAt": "2022-6-13",
|
||||
"registrationAt": "2022-06-13",
|
||||
"country": "한국",
|
||||
"publishedAt": "2019-9-"
|
||||
"publishedAt": "2019-09"
|
||||
},
|
||||
{
|
||||
"category": "patent",
|
||||
"title": "차량 인포테인먼트 마스터 장치 및 이를 포함하는 차량 인포테인먼트 통합 관리 시스템",
|
||||
"inventors": "고석주, 최동규, 정중화, 남혜빈, 신호경",
|
||||
"applicationNo": "2019-0059551",
|
||||
"applicationAt": "2019-5-21",
|
||||
"applicationAt": "2019-05-21",
|
||||
"registrationNo": "2251310",
|
||||
"registrationAt": "2021-5-6",
|
||||
"registrationAt": "2021-05-06",
|
||||
"country": "한국",
|
||||
"publishedAt": "2019-5-"
|
||||
"publishedAt": "2019-05"
|
||||
},
|
||||
{
|
||||
"category": "patent",
|
||||
@@ -1297,7 +1297,7 @@ export const patents: Patent[] = [
|
||||
"title": "가시광 통신을 이용한 서비스 제공 시스템 및 그 방법",
|
||||
"inventors": "고석주, 김철민, 김소용, 모닙고하르",
|
||||
"applicationNo": "2018-0155013",
|
||||
"applicationAt": "2018-12-5",
|
||||
"applicationAt": "2018-12-05",
|
||||
"country": "한국",
|
||||
"publishedAt": "2018-12"
|
||||
},
|
||||
@@ -1306,38 +1306,38 @@ export const patents: Patent[] = [
|
||||
"title": "차량 인포테인먼트 시스템",
|
||||
"inventors": "고석주, 최동규, 정중화, 정민우",
|
||||
"applicationNo": "2018-0083515",
|
||||
"applicationAt": "2018-7-18",
|
||||
"applicationAt": "2018-07-18",
|
||||
"country": "한국",
|
||||
"publishedAt": "2018-7-"
|
||||
"publishedAt": "2018-07"
|
||||
},
|
||||
{
|
||||
"category": "patent",
|
||||
"title": "CoAP 기반의 사물인터넷 기술을 이용한 센서 관리 방법 및 이를 이용한 시스템",
|
||||
"inventors": "고석주, 최동규, 정중화, 정민우",
|
||||
"applicationNo": "2018-0082485",
|
||||
"applicationAt": "2018-7-16",
|
||||
"applicationAt": "2018-07-16",
|
||||
"registrationNo": "2071974",
|
||||
"registrationAt": "2020-1-23",
|
||||
"registrationAt": "2020-01-23",
|
||||
"country": "한국",
|
||||
"publishedAt": "2018-7-"
|
||||
"publishedAt": "2018-07"
|
||||
},
|
||||
{
|
||||
"category": "patent",
|
||||
"title": "가시광 통신을 이용한 무선 인터넷 비밀번호 관리 시스템 및 방법",
|
||||
"inventors": "김소용, 김철민, 고석주",
|
||||
"applicationNo": "2018-0082463",
|
||||
"applicationAt": "2018-7-16",
|
||||
"applicationAt": "2018-07-16",
|
||||
"country": "한국",
|
||||
"publishedAt": "2018-7-"
|
||||
"publishedAt": "2018-07"
|
||||
},
|
||||
{
|
||||
"category": "patent",
|
||||
"title": "시각 장애인을 위한 가시광 통신 기반의 교통 신호 전달 시스템 및 방법",
|
||||
"inventors": "권경동, 금동우, 황지영, 채윤창, 김철민, 김소용, 고석주",
|
||||
"applicationNo": "2018-0079319",
|
||||
"applicationAt": "2018-7-9",
|
||||
"applicationAt": "2018-07-09",
|
||||
"country": "한국",
|
||||
"publishedAt": "2018-7-"
|
||||
"publishedAt": "2018-07"
|
||||
},
|
||||
{
|
||||
"category": "patent",
|
||||
@@ -1346,7 +1346,7 @@ export const patents: Patent[] = [
|
||||
"applicationNo": "2017-0153908",
|
||||
"applicationAt": "2017-11-17",
|
||||
"registrationNo": "1969652",
|
||||
"registrationAt": "2019-4-10",
|
||||
"registrationAt": "2019-04-10",
|
||||
"country": "한국",
|
||||
"publishedAt": "2017-11"
|
||||
},
|
||||
@@ -1357,7 +1357,7 @@ export const patents: Patent[] = [
|
||||
"applicationNo": "2017-0153357",
|
||||
"applicationAt": "2017-11-16",
|
||||
"registrationNo": "2031726",
|
||||
"registrationAt": "2019-10-7",
|
||||
"registrationAt": "2019-10-07",
|
||||
"country": "한국",
|
||||
"publishedAt": "2017-11"
|
||||
},
|
||||
@@ -1366,20 +1366,20 @@ export const patents: Patent[] = [
|
||||
"title": "비콘 기반 식당 정보 서비스 시스템 및 방법",
|
||||
"inventors": "고석주, 안창준, 김혜경, 송명근, 최예찬, 허동",
|
||||
"applicationNo": "2017-0087265",
|
||||
"applicationAt": "2017-7-10",
|
||||
"applicationAt": "2017-07-10",
|
||||
"country": "한국",
|
||||
"publishedAt": "2017-7-"
|
||||
"publishedAt": "2017-07"
|
||||
},
|
||||
{
|
||||
"category": "patent",
|
||||
"title": "사물 인터넷 네트워크에서의 모바일 단말 이동성 제어 장치 및 방법",
|
||||
"inventors": "고석주, 최상일",
|
||||
"applicationNo": "2017-0064039",
|
||||
"applicationAt": "2017-5-24",
|
||||
"applicationAt": "2017-05-24",
|
||||
"registrationNo": "1847081",
|
||||
"registrationAt": "2018-4-3",
|
||||
"registrationAt": "2018-04-03",
|
||||
"country": "한국",
|
||||
"publishedAt": "2017-5-"
|
||||
"publishedAt": "2017-05"
|
||||
},
|
||||
{
|
||||
"category": "patent",
|
||||
@@ -1388,7 +1388,7 @@ export const patents: Patent[] = [
|
||||
"applicationNo": "2016-0175882",
|
||||
"applicationAt": "2016-12-21",
|
||||
"registrationNo": "1972470",
|
||||
"registrationAt": "2019-4-19",
|
||||
"registrationAt": "2019-04-19",
|
||||
"country": "한국",
|
||||
"publishedAt": "2016-12"
|
||||
},
|
||||
@@ -1399,7 +1399,7 @@ export const patents: Patent[] = [
|
||||
"applicationNo": "2016-0157411",
|
||||
"applicationAt": "2016-11-24",
|
||||
"registrationNo": "1784309",
|
||||
"registrationAt": "2017-9-27",
|
||||
"registrationAt": "2017-09-27",
|
||||
"country": "한국",
|
||||
"publishedAt": "2016-11"
|
||||
},
|
||||
@@ -1426,22 +1426,22 @@ export const patents: Patent[] = [
|
||||
"title": "이동 단말 및 관리 서버의 제어 방법",
|
||||
"inventors": "고석주, 최상일",
|
||||
"applicationNo": "2016-0051126",
|
||||
"applicationAt": "2016-4-26",
|
||||
"applicationAt": "2016-04-26",
|
||||
"registrationNo": "1836116",
|
||||
"registrationAt": "2018-3-2",
|
||||
"registrationAt": "2018-03-02",
|
||||
"country": "한국",
|
||||
"publishedAt": "2016-4-"
|
||||
"publishedAt": "2016-04"
|
||||
},
|
||||
{
|
||||
"category": "patent",
|
||||
"title": "무선 통신을 이용한 범용 안내 서비스 제공 방법 및 시스템",
|
||||
"inventors": "고석주, 장호영, 이종훈, 박찬석, 서민영",
|
||||
"applicationNo": "2016-0013614",
|
||||
"applicationAt": "2016-2-3",
|
||||
"applicationAt": "2016-02-03",
|
||||
"registrationNo": "1716661",
|
||||
"registrationAt": "2017-3-9",
|
||||
"registrationAt": "2017-03-09",
|
||||
"country": "한국",
|
||||
"publishedAt": "2016-2-"
|
||||
"publishedAt": "2016-02"
|
||||
},
|
||||
{
|
||||
"category": "patent",
|
||||
@@ -1459,9 +1459,9 @@ export const patents: Patent[] = [
|
||||
"title": "무인 지상차량을 이용한 주차차량 관리 시스템",
|
||||
"inventors": "김인한, 권혜련, 이은섭, 고석주",
|
||||
"applicationNo": "2015-0008735",
|
||||
"applicationAt": "2015-1-19",
|
||||
"applicationAt": "2015-01-19",
|
||||
"country": "한국",
|
||||
"publishedAt": "2015-1-"
|
||||
"publishedAt": "2015-01"
|
||||
},
|
||||
{
|
||||
"category": "patent",
|
||||
@@ -1470,7 +1470,7 @@ export const patents: Patent[] = [
|
||||
"applicationNo": "2014-0180037",
|
||||
"applicationAt": "2014-12-15",
|
||||
"registrationNo": "1596320",
|
||||
"registrationAt": "2016-2-16",
|
||||
"registrationAt": "2016-02-16",
|
||||
"country": "한국",
|
||||
"publishedAt": "2014-12"
|
||||
},
|
||||
@@ -1526,7 +1526,7 @@ export const patents: Patent[] = [
|
||||
"applicationNo": "2014-0161975",
|
||||
"applicationAt": "2014-11-19",
|
||||
"registrationNo": "1612047",
|
||||
"registrationAt": "2016-4-6",
|
||||
"registrationAt": "2016-04-06",
|
||||
"country": "한국",
|
||||
"publishedAt": "2014-11"
|
||||
},
|
||||
@@ -1537,7 +1537,7 @@ export const patents: Patent[] = [
|
||||
"applicationNo": "2013-0167207",
|
||||
"applicationAt": "2013-12-30",
|
||||
"registrationNo": "1568365",
|
||||
"registrationAt": "2015-11-5",
|
||||
"registrationAt": "2015-11-05",
|
||||
"country": "한국",
|
||||
"publishedAt": "2013-12"
|
||||
},
|
||||
@@ -1548,7 +1548,7 @@ export const patents: Patent[] = [
|
||||
"applicationNo": "2013-0140737",
|
||||
"applicationAt": "2013-11-19",
|
||||
"registrationNo": "1405248",
|
||||
"registrationAt": "2015-4-17",
|
||||
"registrationAt": "2015-04-17",
|
||||
"country": "한국",
|
||||
"publishedAt": "2013-11"
|
||||
},
|
||||
@@ -1559,7 +1559,7 @@ export const patents: Patent[] = [
|
||||
"applicationNo": "2013-0140736",
|
||||
"applicationAt": "2013-11-19",
|
||||
"registrationNo": "1525047",
|
||||
"registrationAt": "2015-5-27",
|
||||
"registrationAt": "2015-05-27",
|
||||
"country": "한국",
|
||||
"publishedAt": "2013-11"
|
||||
},
|
||||
@@ -1570,7 +1570,7 @@ export const patents: Patent[] = [
|
||||
"applicationNo": "2013-0140734",
|
||||
"applicationAt": "2013-11-19",
|
||||
"registrationNo": "1538453",
|
||||
"registrationAt": "2015-7-15",
|
||||
"registrationAt": "2015-07-15",
|
||||
"country": "한국",
|
||||
"publishedAt": "2013-11"
|
||||
},
|
||||
@@ -1581,7 +1581,7 @@ export const patents: Patent[] = [
|
||||
"applicationNo": "2013-0108587",
|
||||
"applicationAt": "2013-09-10",
|
||||
"registrationNo": "1515493",
|
||||
"registrationAt": "2015-4-21",
|
||||
"registrationAt": "2015-04-21",
|
||||
"country": "한국",
|
||||
"publishedAt": "2013-09"
|
||||
},
|
||||
@@ -1601,7 +1601,7 @@ export const patents: Patent[] = [
|
||||
"applicationNo": "2012-0154836",
|
||||
"applicationAt": "2012-12-27",
|
||||
"registrationNo": "1405248",
|
||||
"registrationAt": "2014-6-2",
|
||||
"registrationAt": "2014-06-02",
|
||||
"country": "한국",
|
||||
"publishedAt": "2012-12"
|
||||
},
|
||||
@@ -1612,7 +1612,7 @@ export const patents: Patent[] = [
|
||||
"applicationNo": "2012-0154835",
|
||||
"applicationAt": "2012-12-27",
|
||||
"registrationNo": "1447104",
|
||||
"registrationAt": "2014-9-26",
|
||||
"registrationAt": "2014-09-26",
|
||||
"country": "한국",
|
||||
"publishedAt": "2012-12"
|
||||
},
|
||||
@@ -1623,7 +1623,7 @@ export const patents: Patent[] = [
|
||||
"applicationNo": "2012-0146740",
|
||||
"applicationAt": "2012-12-14",
|
||||
"registrationNo": "1459628",
|
||||
"registrationAt": "2014-11-3",
|
||||
"registrationAt": "2014-11-03",
|
||||
"country": "한국",
|
||||
"publishedAt": "2012-12"
|
||||
},
|
||||
@@ -1634,7 +1634,7 @@ export const patents: Patent[] = [
|
||||
"applicationNo": "2012-0030058",
|
||||
"applicationAt": "2012-03-23",
|
||||
"registrationNo": "1356721",
|
||||
"registrationAt": "2014-1-20",
|
||||
"registrationAt": "2014-01-20",
|
||||
"country": "한국",
|
||||
"publishedAt": "2012-03"
|
||||
},
|
||||
|
||||
@@ -17,19 +17,19 @@ export const standardsBodies: StandardsBody[] = [
|
||||
"title": "Multimedia Systems and Equipment for Metaverse - Part 1: Genaral",
|
||||
"ref": "IEC TR 63614-1 (May 2026)",
|
||||
"status": "TR",
|
||||
"publishedAt": "May 2026"
|
||||
"publishedAt": "2026-05"
|
||||
},
|
||||
{
|
||||
"title": "Multimedia Systems and Equipment for Metaverse - Part 2: Classification",
|
||||
"ref": "IEC TS 63614-2 (May 2026)",
|
||||
"status": "TS",
|
||||
"publishedAt": "May 2026"
|
||||
"publishedAt": "2026-05"
|
||||
},
|
||||
{
|
||||
"title": "Multimedia Systems and Equipment for Metaverse - Part 3: Gap Analysis",
|
||||
"ref": "IEC TR 63614-3 (March 2026)",
|
||||
"status": "TR",
|
||||
"publishedAt": "March 2026"
|
||||
"publishedAt": "2026-03"
|
||||
},
|
||||
{
|
||||
"title": "Multimedia Systems and Equipment for Metaverse - Part 4: AI Use Cases",
|
||||
@@ -46,13 +46,13 @@ export const standardsBodies: StandardsBody[] = [
|
||||
"title": "User's QoE for Multimedia Conference Services - Part 1: General",
|
||||
"ref": "IEC TR 63478-1 (November 2023)",
|
||||
"status": "TR",
|
||||
"publishedAt": "November 2023"
|
||||
"publishedAt": "2023-11"
|
||||
},
|
||||
{
|
||||
"title": "User's QoE for Multimedia Conference Services - Part 2: Requirments",
|
||||
"ref": "IEC IS 63478-2 (October 2025)",
|
||||
"status": "IS",
|
||||
"publishedAt": "October 2025"
|
||||
"publishedAt": "2025-10"
|
||||
},
|
||||
{
|
||||
"title": "User's QoE for Multimedia Conference Services - Part 3: Measurement Methods",
|
||||
@@ -69,19 +69,19 @@ export const standardsBodies: StandardsBody[] = [
|
||||
"title": "Infotainment Services for Public Vehicles (PVIS) - Part 1: General",
|
||||
"ref": "IEC TR 63479-1 (November 2023)",
|
||||
"status": "TR",
|
||||
"publishedAt": "November 2023"
|
||||
"publishedAt": "2023-11"
|
||||
},
|
||||
{
|
||||
"title": "Infotainment Services for Public Vehicles (PVIS) - Part 2: Requirements",
|
||||
"ref": "IEC IS 63479-2 (February 2026)",
|
||||
"status": "IS",
|
||||
"publishedAt": "February 2026"
|
||||
"publishedAt": "2026-02"
|
||||
},
|
||||
{
|
||||
"title": "Infotainment Services for Public Vehicles (PVIS) - Part 3: Framework",
|
||||
"ref": "IEC IS 63479-3 (January 2026)",
|
||||
"status": "IS",
|
||||
"publishedAt": "January 2026"
|
||||
"publishedAt": "2026-01"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -93,25 +93,25 @@ export const standardsBodies: StandardsBody[] = [
|
||||
"title": "Configurable Car Infotainment Services (CCIS) - Part 1: General",
|
||||
"ref": "IEC 63246-1 (August 2021)",
|
||||
"status": "IS",
|
||||
"publishedAt": "August 2021"
|
||||
"publishedAt": "2021-08"
|
||||
},
|
||||
{
|
||||
"title": "Configurable Car Infotainment Services (CCIS) - Part 2: Requirements",
|
||||
"ref": "IEC 63246-2 (January 2022)",
|
||||
"status": "IS",
|
||||
"publishedAt": "January 2022"
|
||||
"publishedAt": "2022-01"
|
||||
},
|
||||
{
|
||||
"title": "Configurable Car Infotainment Services (CCIS) - Part 3: Framework",
|
||||
"ref": "IEC 63246-3 (January 2022)",
|
||||
"status": "IS",
|
||||
"publishedAt": "January 2022"
|
||||
"publishedAt": "2022-01"
|
||||
},
|
||||
{
|
||||
"title": "Configurable Car Infotainment Services (CCIS) - Part 4: Protocol",
|
||||
"ref": "IEC TR 63246-4 (December 2022)",
|
||||
"status": "TR",
|
||||
"publishedAt": "December 2022"
|
||||
"publishedAt": "2022-12"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -131,7 +131,7 @@ export const standardsBodies: StandardsBody[] = [
|
||||
"title": "Part 1: Framework",
|
||||
"ref": "ISO/IEC TR 30189-1 (March 2025)",
|
||||
"status": "TR",
|
||||
"publishedAt": "March 2025"
|
||||
"publishedAt": "2025-03"
|
||||
},
|
||||
{
|
||||
"title": "Part 2: Use Cases",
|
||||
@@ -156,13 +156,13 @@ export const standardsBodies: StandardsBody[] = [
|
||||
"title": "Framework of IoT Services based on Visible Light Communications (VLC)",
|
||||
"ref": "ITU-T Recommendation Y.4465 (January 2020)",
|
||||
"status": "IS",
|
||||
"publishedAt": "January 2020"
|
||||
"publishedAt": "2020-01"
|
||||
},
|
||||
{
|
||||
"title": "Functional Architecture for IoT Services based on VLC",
|
||||
"ref": "ITU-T Recommendation Y.4474 (August 2020)",
|
||||
"status": "IS",
|
||||
"publishedAt": "August 2020"
|
||||
"publishedAt": "2020-08"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -182,19 +182,19 @@ export const standardsBodies: StandardsBody[] = [
|
||||
"title": "가시광 통신 기반 사물인터넷 서비스 - 제 1 부: 네트워크 모델 및 요구사항",
|
||||
"ref": "TTAK.KO-10.1158-part1 (2019년 12월)",
|
||||
"status": "IS",
|
||||
"publishedAt": "2019년 12월"
|
||||
"publishedAt": "2019-12"
|
||||
},
|
||||
{
|
||||
"title": "가시광 통신 기반 사물인터넷 서비스 - 제 2 부: 프레임워크",
|
||||
"ref": "TTAK.KO-10.1158-part2 (2020년 12월)",
|
||||
"status": "IS",
|
||||
"publishedAt": "2020년 12월"
|
||||
"publishedAt": "2020-12"
|
||||
},
|
||||
{
|
||||
"title": "가시광 통신 기반 사물인터넷 서비스 - 제 3 부: 프로토콜",
|
||||
"ref": "TTAK.KO-10.1158-part3 (2020년 12월)",
|
||||
"status": "IS",
|
||||
"publishedAt": "2020년 12월"
|
||||
"publishedAt": "2020-12"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -214,43 +214,43 @@ export const standardsBodies: StandardsBody[] = [
|
||||
"title": "NNI Mobility Management Requirements for SBI2K",
|
||||
"ref": "ITU-T Supplement to Recommendation Q.Sup52 (December 2004)",
|
||||
"status": "IS",
|
||||
"publishedAt": "December 2004"
|
||||
"publishedAt": "2004-12"
|
||||
},
|
||||
{
|
||||
"title": "Mobility Management Requirements for Next-Generation Networks",
|
||||
"ref": "ITU-T Recommendation Q.1706/Y.2801 (July 2006)",
|
||||
"status": "IS",
|
||||
"publishedAt": "July 2006"
|
||||
"publishedAt": "2006-07"
|
||||
},
|
||||
{
|
||||
"title": "Framework of IPv6 Multi-homing for NGN",
|
||||
"ref": "ITU-T Recommendation Y.2052 (Feb. 2008)",
|
||||
"status": "IS",
|
||||
"publishedAt": "Feb. 2008"
|
||||
"publishedAt": "2008-02"
|
||||
},
|
||||
{
|
||||
"title": "Generic Framework of Mobility Management for Next-Generation Networks",
|
||||
"ref": "ITU-T Recommendation Q.1707/Y.2804 (Feb. 2008)",
|
||||
"status": "IS",
|
||||
"publishedAt": "Feb. 2008"
|
||||
"publishedAt": "2008-02"
|
||||
},
|
||||
{
|
||||
"title": "Framework of Location Management for Next-Generation Networks",
|
||||
"ref": "ITU-T Recommendation Q.1708/Y.2805 (October 2008)",
|
||||
"status": "IS",
|
||||
"publishedAt": "October 2008"
|
||||
"publishedAt": "2008-10"
|
||||
},
|
||||
{
|
||||
"title": "Framework of Handover Control for Next-Generation Networks",
|
||||
"ref": "ITU-T Recommendation Q.1709/Y.2806 (October 2008)",
|
||||
"status": "IS",
|
||||
"publishedAt": "October 2008"
|
||||
"publishedAt": "2008-10"
|
||||
},
|
||||
{
|
||||
"title": "Framework of Mobility Management in Service Stratum for NGN",
|
||||
"ref": "ITU-T Recommendation Y.2809 (November 2011)",
|
||||
"status": "IS",
|
||||
"publishedAt": "November 2011"
|
||||
"publishedAt": "2011-11"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -270,37 +270,37 @@ export const standardsBodies: StandardsBody[] = [
|
||||
"title": "ECTP-1: Specification of Simplex Multicast Transport",
|
||||
"ref": "ITU-T Recommendation X.606 (October 2001) ISO/IEC IS 14476-1 (April 2002)",
|
||||
"status": "IS",
|
||||
"publishedAt": "October 2001"
|
||||
"publishedAt": "2001-10"
|
||||
},
|
||||
{
|
||||
"title": "ECTP-2: Specification of QoS Management for Simplex Multicast Transport",
|
||||
"ref": "ITU-T Recommendation X.606.1 (February 2003) ISO/IEC IS 14476-2 (June 2003)",
|
||||
"status": "IS",
|
||||
"publishedAt": "February 2003"
|
||||
"publishedAt": "2003-02"
|
||||
},
|
||||
{
|
||||
"title": "ECTP-3: Specification of Duplex Multicast Transport",
|
||||
"ref": "ITU-T Recommendation X.607 (February 2007) ISO/IEC IS 14476-3 (August 2008)",
|
||||
"status": "IS",
|
||||
"publishedAt": "February 2007"
|
||||
"publishedAt": "2007-02"
|
||||
},
|
||||
{
|
||||
"title": "ECTP-4: Specification of QoS Management for Duplex Multicast Transport",
|
||||
"ref": "ITU-T Recommendation X.607.1 (November 2008) ISO/IEC IS 14476-4 (April 2010)",
|
||||
"status": "IS",
|
||||
"publishedAt": "November 2008"
|
||||
"publishedAt": "2008-11"
|
||||
},
|
||||
{
|
||||
"title": "ECTP-5: Specification of N-plex Multicast Transport",
|
||||
"ref": "ITU-T Recommendation X.608 (February 2007) ISO/IEC IS 14476-5 (August 2008)",
|
||||
"status": "IS",
|
||||
"publishedAt": "February 2007"
|
||||
"publishedAt": "2007-02"
|
||||
},
|
||||
{
|
||||
"title": "ECTP-6: Specification of QoS Management for N-plex Multicast Transport",
|
||||
"ref": "ITU-T Recommendation X.608.1 (November 2008) ISO/IEC IS 14476-6 (April 2010)",
|
||||
"status": "IS",
|
||||
"publishedAt": "November 2008"
|
||||
"publishedAt": "2008-11"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -312,19 +312,19 @@ export const standardsBodies: StandardsBody[] = [
|
||||
"title": "RMCP-1: Framework",
|
||||
"ref": "ITU-T Recommendation X.603 (April 2004) ISO/IEC IS 16512-1",
|
||||
"status": "IS",
|
||||
"publishedAt": "April 2004"
|
||||
"publishedAt": "2004-04"
|
||||
},
|
||||
{
|
||||
"title": "RMCP-2: Specification of Simplex Group Applications",
|
||||
"ref": "ITU-T Recommendation X.603.1 (February 2007) ISO/IEC IS 16512-2",
|
||||
"status": "IS",
|
||||
"publishedAt": "February 2007"
|
||||
"publishedAt": "2007-02"
|
||||
},
|
||||
{
|
||||
"title": "RMCP-3: Specification of N-plex Group Applications",
|
||||
"ref": "ITU-T Recommendation X.603.2 (September 2010) ISO/IEC IS 16512-3",
|
||||
"status": "IS",
|
||||
"publishedAt": "September 2010"
|
||||
"publishedAt": "2010-09"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -336,19 +336,19 @@ export const standardsBodies: StandardsBody[] = [
|
||||
"title": "MMC-1: MMC Framework",
|
||||
"ref": "ITU-T Recommendation X.604 (March 2010) ISO/IEC IS 24793-1",
|
||||
"status": "IS",
|
||||
"publishedAt": "March 2010"
|
||||
"publishedAt": "2010-03"
|
||||
},
|
||||
{
|
||||
"title": "MMC-2: MMC Protocol over Native IP Multicast Networks",
|
||||
"ref": "ITU-T Recommendation X.604.1 (March 2010) ISO/IEC IS 24793-2",
|
||||
"status": "IS",
|
||||
"publishedAt": "March 2010"
|
||||
"publishedAt": "2010-03"
|
||||
},
|
||||
{
|
||||
"title": "MMC-3: MMC Protocol over Overlay Multicast Networks",
|
||||
"ref": "ITU-T Recommendation X.604.2 (September 2010) ISO/IEC IS 24793-3",
|
||||
"status": "IS",
|
||||
"publishedAt": "September 2010"
|
||||
"publishedAt": "2010-09"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -360,25 +360,25 @@ export const standardsBodies: StandardsBody[] = [
|
||||
"title": "Part 1: Overall Aspects",
|
||||
"ref": "ISO/IEC TR 29181-1 (September 2012)",
|
||||
"status": "TR",
|
||||
"publishedAt": "September 2012"
|
||||
"publishedAt": "2012-09"
|
||||
},
|
||||
{
|
||||
"title": "Part 2: Naming and Addressing",
|
||||
"ref": "ISO/IEC TR 29181-2 (December 2014)",
|
||||
"status": "TR",
|
||||
"publishedAt": "December 2014"
|
||||
"publishedAt": "2014-12"
|
||||
},
|
||||
{
|
||||
"title": "Part 3: Switching and Routing",
|
||||
"ref": "ISO/IEC TR 29181-3 (April 2013)",
|
||||
"status": "TR",
|
||||
"publishedAt": "April 2013"
|
||||
"publishedAt": "2013-04"
|
||||
},
|
||||
{
|
||||
"title": "Part 4: Mobility",
|
||||
"ref": "ISO/IEC TR 29181-4 (December 2013)",
|
||||
"status": "TR",
|
||||
"publishedAt": "December 2013"
|
||||
"publishedAt": "2013-12"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Binary file not shown.
@@ -7,6 +7,67 @@ BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__fil
|
||||
ISL_DIR = os.path.join(BASE_DIR, "..", "ISL-2026")
|
||||
CONTENT_DIR = os.path.join(BASE_DIR, "content")
|
||||
|
||||
MONTH_MAP = {
|
||||
"january": "01", "jan": "01",
|
||||
"february": "02", "feb": "02",
|
||||
"march": "03", "mar": "03",
|
||||
"april": "04", "apr": "04",
|
||||
"may": "05",
|
||||
"june": "06", "jun": "06",
|
||||
"july": "07", "jul": "07",
|
||||
"august": "08", "aug": "08",
|
||||
"september": "09", "sep": "09", "sept": "09",
|
||||
"october": "10", "oct": "10",
|
||||
"november": "11", "nov": "11",
|
||||
"december": "12", "dec": "12",
|
||||
}
|
||||
|
||||
def to_iso(raw):
|
||||
if not raw or "in progress" in raw.lower():
|
||||
return None
|
||||
raw = raw.strip()
|
||||
|
||||
# 1) YYYY-MM-DD or YYYY.MM.DD
|
||||
m = re.search(r'(\d{4})[. /\\-]?(\d{1,2})[. /\\-]?(\d{1,2})', raw)
|
||||
if m:
|
||||
yr = int(m.group(1))
|
||||
mo = int(m.group(2))
|
||||
day = int(m.group(3))
|
||||
if mo <= 12 and day <= 31:
|
||||
return f"{yr:04d}-{mo:02d}-{day:02d}"
|
||||
|
||||
# 2) "May 2026", "Feb. 2008", "August 2018"
|
||||
m_txt = re.search(r'([A-Za-z]+)\.?\s*(\d{4})', raw)
|
||||
if m_txt:
|
||||
mo_str = m_txt.group(1).lower().rstrip('.')
|
||||
yr_str = m_txt.group(2)
|
||||
if mo_str in MONTH_MAP:
|
||||
return f"{yr_str}-{MONTH_MAP[mo_str]}"
|
||||
|
||||
# 3) "2019년 12월", "9월, 1999"
|
||||
m_kor = re.search(r'(\d{4})년\s*(\d{1,2})월', raw)
|
||||
if m_kor:
|
||||
return f"{int(m_kor.group(1)):04d}-{int(m_kor.group(2)):02d}"
|
||||
|
||||
m_kor2 = re.search(r'(\d{1,2})월.*?,?\s*(\d{4})', raw)
|
||||
if m_kor2:
|
||||
return f"{int(m_kor2.group(2)):04d}-{int(m_kor2.group(1)):02d}"
|
||||
|
||||
# 4) YYYY-MM or YYYY.MM
|
||||
m_ym = re.search(r'(\d{4})[. /\\-]?(\d{1,2})', raw)
|
||||
if m_ym:
|
||||
yr = int(m_ym.group(1))
|
||||
mo = int(m_ym.group(2))
|
||||
if mo <= 12:
|
||||
return f"{yr:04d}-{mo:02d}"
|
||||
|
||||
# 5) YYYY only
|
||||
m_y = re.search(r'(\d{4})', raw)
|
||||
if m_y:
|
||||
return f"{int(m_y.group(1)):04d}"
|
||||
|
||||
return raw
|
||||
|
||||
def read_file(filename):
|
||||
path = os.path.join(ISL_DIR, filename)
|
||||
with open(path, "r", encoding="utf-8-sig") as f:
|
||||
@@ -120,7 +181,6 @@ def parse_publications():
|
||||
intl_html = read_file("paper-international.html")
|
||||
dom_html = read_file("paper-domestic.html")
|
||||
pat_html = read_file("patent.html")
|
||||
month_map = {"January":"01","February":"02","March":"03","April":"04","May":"05","June":"06","July":"07","August":"08","September":"09","October":"10","November":"11","December":"12"}
|
||||
|
||||
intl_pubs = []
|
||||
intl_items = re.findall(r'<LI>(.*?)</LI>', intl_html, flags=re.S | re.I)
|
||||
@@ -137,12 +197,7 @@ def parse_publications():
|
||||
rest_clean = re.sub(r'<.*?>', '', rest).replace('\n', ' ').strip()
|
||||
rest_clean = re.sub(r'^\s*,\s*', '', rest_clean)
|
||||
|
||||
m_date = re.search(r'([A-Za-z]+)\s+(\d{4})', rest_clean)
|
||||
pub_date = "2026-01"
|
||||
if m_date:
|
||||
mo, yr = m_date.group(1), m_date.group(2)
|
||||
if mo in month_map:
|
||||
pub_date = f"{yr}-{month_map[mo]}"
|
||||
pub_date = to_iso(rest_clean) or "2026-01"
|
||||
|
||||
intl_pubs.append({
|
||||
"category": "intl-journal-conf",
|
||||
@@ -168,12 +223,7 @@ def parse_publications():
|
||||
rest_clean = re.sub(r'^\s*,\s*', '', rest_clean)
|
||||
|
||||
is_kci = "(KCI)" in item or "(KCI)" in rest_clean
|
||||
|
||||
m_date = re.search(r'(\d{4})년\s*(\d{1,2})월', rest_clean)
|
||||
if m_date:
|
||||
pub_date = f"{m_date.group(1)}-{int(m_date.group(2)):02d}"
|
||||
else:
|
||||
pub_date = "2026-01"
|
||||
pub_date = to_iso(rest_clean) or "2026-01"
|
||||
|
||||
dom_pubs.append({
|
||||
"category": "domestic-journal-conf",
|
||||
@@ -194,7 +244,7 @@ def parse_publications():
|
||||
title = lines[0]
|
||||
inventors = ""
|
||||
app_no = ""
|
||||
app_date = ""
|
||||
app_date = None
|
||||
reg_no = None
|
||||
reg_date = None
|
||||
country = "한국"
|
||||
@@ -207,14 +257,14 @@ def parse_publications():
|
||||
if m:
|
||||
app_no = m.group(1)
|
||||
country = m.group(2)
|
||||
app_date = m.group(3).replace('.', '-')
|
||||
app_date = to_iso(m.group(3))
|
||||
else:
|
||||
app_no = l.replace("출원번호:", "").strip()
|
||||
elif l.startswith("등록번호:"):
|
||||
m = re.search(r'등록번호:\s*([\d-]+)\s*\((.*?),\s*([\d.]+)\)', l)
|
||||
if m:
|
||||
reg_no = m.group(1)
|
||||
reg_date = m.group(3).replace('.', '-')
|
||||
reg_date = to_iso(m.group(3))
|
||||
else:
|
||||
reg_no = l.replace("등록번호:", "").strip()
|
||||
|
||||
@@ -287,7 +337,6 @@ def parse_standards():
|
||||
role = "Convenor" if "Convenor" in header or "Convenor" in body else None
|
||||
|
||||
projects = []
|
||||
# If 'o ' exists, split by 'o '
|
||||
if re.search(r'^\s*o\s+', body, flags=re.M):
|
||||
proj_blocks = re.split(r'\s*o\s+', body)
|
||||
for proj_b in proj_blocks:
|
||||
@@ -319,7 +368,7 @@ def parse_standards():
|
||||
elif "TS" in d_rest: status = "TS"
|
||||
|
||||
m_date = re.search(r'\((.*?)\)', d_rest)
|
||||
pub_date = m_date.group(1) if m_date and "In Progress" not in m_date.group(1) else None
|
||||
pub_date = to_iso(m_date.group(1)) if m_date else None
|
||||
|
||||
docs.append({
|
||||
"title": d_title,
|
||||
@@ -334,7 +383,6 @@ def parse_standards():
|
||||
"documents": docs
|
||||
})
|
||||
else:
|
||||
# Single project body
|
||||
doc_items = re.findall(r'<LI>(.*?)</LI>', body, flags=re.S | re.I)
|
||||
docs = []
|
||||
for d_item in doc_items:
|
||||
@@ -353,7 +401,7 @@ def parse_standards():
|
||||
elif "TS" in d_rest: status = "TS"
|
||||
|
||||
m_date = re.search(r'\((.*?)\)', d_rest)
|
||||
pub_date = m_date.group(1) if m_date and "In Progress" not in m_date.group(1) else None
|
||||
pub_date = to_iso(m_date.group(1)) if m_date else None
|
||||
|
||||
docs.append({
|
||||
"title": d_title,
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
#!/usr/bin/env python3
|
||||
import sys
|
||||
import os
|
||||
import re
|
||||
|
||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||
CONTENT_DIR = os.path.join(BASE_DIR, "refer_landing_page", "content")
|
||||
|
||||
sys.path.insert(0, os.path.join(BASE_DIR, "refer_landing_page", "scripts", "extract"))
|
||||
|
||||
def verify():
|
||||
# Import generated modules or json
|
||||
from generate_all import parse_members, parse_publications, parse_lectures, parse_standards
|
||||
|
||||
active_m, alumni_m = parse_members()
|
||||
@@ -19,15 +17,16 @@ def verify():
|
||||
total_pubs = len(intl_p) + len(dom_p) + len(pat_p)
|
||||
std_docs_count = sum(len(p["documents"]) for b in bodies for p in b["projects"])
|
||||
|
||||
print("=== DATA VERIFICATION GATE (AC-07 / AC-08) ===")
|
||||
print("=== DATA VERIFICATION GATE (AC-07 / AC-08 / AC-10 / AC-11) ===")
|
||||
print(f"Active Members: {len(active_m)} (Expected: 16)")
|
||||
print(f"Alumni: {len(alumni_m)} (Expected: 60)")
|
||||
print(f"International Papers: {len(intl_p)} (Expected: 68)")
|
||||
print(f"Domestic Papers: {len(dom_p)} (Expected: 80)")
|
||||
print(f"Patents: {len(pat_p)} (Expected: 75)")
|
||||
print(f"Total Publications: {total_pubs} (Expected: 223)")
|
||||
print(f"Lectures Semesters: {len(semesters)} (Expected: 45)")
|
||||
print(f"Standard Bodies: {len(bodies)} (Expected: 6)")
|
||||
print(f"Standard Documents: {std_docs_count} (Expected: ~55)")
|
||||
print(f"Standard Documents: {std_docs_count} (Expected: 44)")
|
||||
|
||||
errors = []
|
||||
if len(active_m) != 16:
|
||||
@@ -42,9 +41,35 @@ def verify():
|
||||
errors.append(f"Patents count mismatch: got {len(pat_p)}, expected 75")
|
||||
if total_pubs != 223:
|
||||
errors.append(f"Total Publications count mismatch: got {total_pubs}, expected 223")
|
||||
if len(semesters) != 45:
|
||||
errors.append(f"Semesters count mismatch: got {len(semesters)}, expected 45")
|
||||
if len(bodies) != 6:
|
||||
errors.append(f"Standard Bodies count mismatch: got {len(bodies)}, expected 6")
|
||||
if std_docs_count != 44:
|
||||
errors.append(f"Standard Documents count mismatch: got {std_docs_count}, expected 44")
|
||||
|
||||
# Date ISO 8601 validation (AC-11)
|
||||
content_dir = os.path.join(BASE_DIR, "content")
|
||||
for fname in ["members.ts", "publications.ts", "lectures.ts", "standards.ts"]:
|
||||
fpath = os.path.join(content_dir, fname)
|
||||
if not os.path.exists(fpath):
|
||||
errors.append(f"Missing content file: {fname}")
|
||||
continue
|
||||
with open(fpath, "r", encoding="utf-8") as f:
|
||||
text = f.read()
|
||||
|
||||
# Check BOM (AC-10)
|
||||
if text.startswith('\ufeff'):
|
||||
errors.append(f"BOM found in {fname}")
|
||||
|
||||
# Check dates
|
||||
dates = re.findall(r'"(publishedAt|applicationAt|registrationAt|graduatedAt)": "([^"]+)"', text)
|
||||
for k, d in dates:
|
||||
if not re.match(r'^\d{4}(-\d{2})?(-\d{2})?$', d):
|
||||
errors.append(f"Non-ISO 8601 date in {fname}: {k}='{d}'")
|
||||
|
||||
if errors:
|
||||
print("\n❌ VERIFICATION FAILED:")
|
||||
print("\n❌ DATA VERIFICATION FAILED:")
|
||||
for err in errors:
|
||||
print(f" - {err}")
|
||||
sys.exit(1)
|
||||
|
||||
Reference in New Issue
Block a user