fix: resolve review feedback I1-I7 including ISO 8601 dates, footer address, readme routes, and strict verify_counts gate

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