rewrite #16
11 changed files with 364 additions and 363 deletions
commit
e33f173101
4
.vscode/extensions.json
vendored
4
.vscode/extensions.json
vendored
|
|
@ -1,4 +1,4 @@
|
||||||
{
|
{
|
||||||
"recommendations": ["astro-build.astro-vscode"],
|
"recommendations": ["astro-build.astro-vscode"],
|
||||||
"unwantedRecommendations": []
|
"unwantedRecommendations": []
|
||||||
}
|
}
|
||||||
|
|
|
||||||
18
.vscode/launch.json
vendored
18
.vscode/launch.json
vendored
|
|
@ -1,11 +1,11 @@
|
||||||
{
|
{
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"configurations": [
|
"configurations": [
|
||||||
{
|
{
|
||||||
"command": "./node_modules/.bin/astro dev",
|
"command": "./node_modules/.bin/astro dev",
|
||||||
"name": "Development server",
|
"name": "Development server",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"type": "node-terminal"
|
"type": "node-terminal"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
// @ts-check
|
// @ts-check
|
||||||
import { defineConfig } from 'astro/config';
|
import { defineConfig } from "astro/config";
|
||||||
import tailwindcss from '@tailwindcss/vite';
|
import tailwindcss from "@tailwindcss/vite";
|
||||||
|
|
||||||
// https://astro.build/config
|
// https://astro.build/config
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
vite: {
|
vite: {
|
||||||
plugins: [tailwindcss()],
|
plugins: [tailwindcss()],
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
|
|
|
||||||
52
package.json
52
package.json
|
|
@ -1,28 +1,28 @@
|
||||||
{
|
{
|
||||||
"name": "imnya-ng",
|
"name": "imnya-ng",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=22.12.0"
|
"node": ">=22.12.0"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "astro dev",
|
"dev": "astro dev",
|
||||||
"build": "astro build",
|
"build": "astro build",
|
||||||
"preview": "astro preview",
|
"preview": "astro preview",
|
||||||
"astro": "astro"
|
"astro": "astro"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sun-typeface/suit": "^2.0.5",
|
"@sun-typeface/suit": "^2.0.5",
|
||||||
"astro": "7.3.1",
|
"astro": "7.3.1",
|
||||||
"clsx": "^2.1.1"
|
"clsx": "^2.1.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@biomejs/biome": "2.5.12",
|
"@biomejs/biome": "2.5.12",
|
||||||
"@tailwindcss/vite": "^4.3.3",
|
"@tailwindcss/vite": "^4.3.3",
|
||||||
"tailwindcss": "^4.3.3"
|
"tailwindcss": "^4.3.3"
|
||||||
},
|
},
|
||||||
"overrides": {
|
"overrides": {
|
||||||
"@types/react": "19.2.2",
|
"@types/react": "19.2.2",
|
||||||
"@types/react-dom": "19.2.2"
|
"@types/react-dom": "19.2.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,21 +7,21 @@ const sortedEvents = [...events].sort((a, b) => b.date.localeCompare(a.date));
|
||||||
const years = [...new Set(sortedEvents.map((event) => event.date.slice(0, 4)))];
|
const years = [...new Set(sortedEvents.map((event) => event.date.slice(0, 4)))];
|
||||||
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
|
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
|
||||||
const eventsByYear = years.map((year) => ({
|
const eventsByYear = years.map((year) => ({
|
||||||
year,
|
year,
|
||||||
events: sortedEvents.filter((event) => event.date.startsWith(year)),
|
events: sortedEvents.filter((event) => event.date.startsWith(year)),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
|
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
|
||||||
const getShortDate = (date: string) => {
|
const getShortDate = (date: string) => {
|
||||||
const [, month, day] = date.split("-");
|
const [, month, day] = date.split("-");
|
||||||
return `${month}.${day}`;
|
return `${month}.${day}`;
|
||||||
};
|
};
|
||||||
|
|
||||||
const currentYear = new Date().getFullYear();
|
const currentYear = new Date().getFullYear();
|
||||||
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
|
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
|
||||||
const daysUntilYearEnd = Math.ceil(
|
const daysUntilYearEnd = Math.ceil(
|
||||||
(new Date(currentYear + 1, 0, 1).getTime() - Date.now()) /
|
(new Date(currentYear + 1, 0, 1).getTime() - Date.now()) /
|
||||||
(1000 * 60 * 60 * 24),
|
(1000 * 60 * 60 * 24),
|
||||||
);
|
);
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,154 +1,154 @@
|
||||||
---
|
---
|
||||||
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
|
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
|
||||||
const groups = [
|
const groups = [
|
||||||
{
|
{
|
||||||
id: "direct",
|
id: "direct",
|
||||||
title: "연락처",
|
title: "연락처",
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
name: "개인 이메일",
|
name: "개인 이메일",
|
||||||
value: "me@imnya.ng",
|
value: "me@imnya.ng",
|
||||||
href: "mailto:me@imnya.ng",
|
href: "mailto:me@imnya.ng",
|
||||||
icon: "mail",
|
icon: "mail",
|
||||||
tone: "pink",
|
tone: "pink",
|
||||||
email: true,
|
email: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "dazzle.st 이메일",
|
name: "dazzle.st 이메일",
|
||||||
value: "imnyang@dazzle.st",
|
value: "imnyang@dazzle.st",
|
||||||
href: "mailto:imnyang@dazzle.st",
|
href: "mailto:imnyang@dazzle.st",
|
||||||
icon: "mail",
|
icon: "mail",
|
||||||
tone: "green",
|
tone: "green",
|
||||||
email: true,
|
email: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Discord",
|
name: "Discord",
|
||||||
value: "@imnyang",
|
value: "@imnyang",
|
||||||
href: "https://discord.com/users/909353223901569035",
|
href: "https://discord.com/users/909353223901569035",
|
||||||
icon: "discord",
|
icon: "discord",
|
||||||
tone: "purple",
|
tone: "purple",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "social",
|
id: "social",
|
||||||
title: "소셜",
|
title: "소셜",
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
name: "X (Twitter)",
|
name: "X (Twitter)",
|
||||||
value: "@imnya_ng",
|
value: "@imnya_ng",
|
||||||
href: "https://twitter.com/imnya_ng",
|
href: "https://twitter.com/imnya_ng",
|
||||||
icon: "x",
|
icon: "x",
|
||||||
tone: "blue",
|
tone: "blue",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Instagram",
|
name: "Instagram",
|
||||||
value: "@imnya.ng",
|
value: "@imnya.ng",
|
||||||
href: "https://instagram.com/imnya.ng",
|
href: "https://instagram.com/imnya.ng",
|
||||||
icon: "instagram",
|
icon: "instagram",
|
||||||
tone: "pink",
|
tone: "pink",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "YouTube",
|
name: "YouTube",
|
||||||
value: "@imnyang",
|
value: "@imnyang",
|
||||||
href: "https://youtube.com/@imnyang",
|
href: "https://youtube.com/@imnyang",
|
||||||
icon: "youtube",
|
icon: "youtube",
|
||||||
tone: "red",
|
tone: "red",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "work",
|
id: "work",
|
||||||
title: "코드와 글",
|
title: "코드와 글",
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
name: "GitHub",
|
name: "GitHub",
|
||||||
value: "@imnyang",
|
value: "@imnyang",
|
||||||
href: "https://github.com/imnyang",
|
href: "https://github.com/imnyang",
|
||||||
icon: "github",
|
icon: "github",
|
||||||
tone: "neutral",
|
tone: "neutral",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "git.mizuki.guru",
|
name: "git.mizuki.guru",
|
||||||
value: "@imnyang",
|
value: "@imnyang",
|
||||||
href: "https://git.mizuki.guru/imnyang",
|
href: "https://git.mizuki.guru/imnyang",
|
||||||
icon: "mizuki",
|
icon: "mizuki",
|
||||||
tone: "orange",
|
tone: "orange",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Blog",
|
name: "Blog",
|
||||||
value: "blog.imnya.ng",
|
value: "blog.imnya.ng",
|
||||||
href: "https://blog.imnya.ng",
|
href: "https://blog.imnya.ng",
|
||||||
icon: "blog",
|
icon: "blog",
|
||||||
tone: "green",
|
tone: "green",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "game",
|
id: "game",
|
||||||
title: "Game",
|
title: "Game",
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
name: "Steam",
|
name: "Steam",
|
||||||
value: "@imnyang",
|
value: "@imnyang",
|
||||||
href: "https://steamcommunity.com/id/imnyang/",
|
href: "https://steamcommunity.com/id/imnyang/",
|
||||||
icon: "steam",
|
icon: "steam",
|
||||||
tone: "blue",
|
tone: "blue",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "maimai",
|
name: "maimai",
|
||||||
value: "@imnya.ng",
|
value: "@imnya.ng",
|
||||||
href: "https://mai.sft.sh/imnyang",
|
href: "https://mai.sft.sh/imnyang",
|
||||||
icon: "maimai",
|
icon: "maimai",
|
||||||
tone: "blue",
|
tone: "blue",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Project Sekai KR",
|
name: "Project Sekai KR",
|
||||||
value: "7354623251148069648",
|
value: "7354623251148069648",
|
||||||
href: "#",
|
href: "#",
|
||||||
icon: "project-sekai",
|
icon: "project-sekai",
|
||||||
tone: "blue",
|
tone: "blue",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Project Sekai JP",
|
name: "Project Sekai JP",
|
||||||
value: "729310364018688008",
|
value: "729310364018688008",
|
||||||
href: "#",
|
href: "#",
|
||||||
icon: "project-sekai",
|
icon: "project-sekai",
|
||||||
tone: "blue",
|
tone: "blue",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "VRChat",
|
name: "VRChat",
|
||||||
value: "@imnyang",
|
value: "@imnyang",
|
||||||
href: "https://vrchat.com/home/user/usr_d53ac697-182d-40d0-9fd8-1a7442b0ebfd",
|
href: "https://vrchat.com/home/user/usr_d53ac697-182d-40d0-9fd8-1a7442b0ebfd",
|
||||||
icon: "vrchat",
|
icon: "vrchat",
|
||||||
tone: "blue",
|
tone: "blue",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
|
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
|
||||||
const imageIcons: Record<string, { src: string; monochrome: boolean }> = {
|
const imageIcons: Record<string, { src: string; monochrome: boolean }> = {
|
||||||
github: { src: "/icon/github.svg", monochrome: true },
|
github: { src: "/icon/github.svg", monochrome: true },
|
||||||
discord: { src: "/icon/discord.svg", monochrome: true },
|
discord: { src: "/icon/discord.svg", monochrome: true },
|
||||||
mizuki: { src: "/icon/mizuki.svg", monochrome: false },
|
mizuki: { src: "/icon/mizuki.svg", monochrome: false },
|
||||||
// Source: https://github.com/simple-icons/simple-icons/blob/develop/icons/steam.svg
|
// Source: https://github.com/simple-icons/simple-icons/blob/develop/icons/steam.svg
|
||||||
steam: { src: "/icon/steam.svg", monochrome: true },
|
steam: { src: "/icon/steam.svg", monochrome: true },
|
||||||
maimai: { src: "/icon/maimai.webp", monochrome: false },
|
maimai: { src: "/icon/maimai.webp", monochrome: false },
|
||||||
vrchat: { src: "/icon/vrchat.svg", monochrome: true },
|
vrchat: { src: "/icon/vrchat.svg", monochrome: true },
|
||||||
// Source: https://pjsekai.sega.jp/assets/data/webp/icon/icon_app.png.webp
|
// Source: https://pjsekai.sega.jp/assets/data/webp/icon/icon_app.png.webp
|
||||||
"project-sekai": { src: "/icon/project-sekai.webp", monochrome: false },
|
"project-sekai": { src: "/icon/project-sekai.webp", monochrome: false },
|
||||||
};
|
};
|
||||||
|
|
||||||
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
|
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
|
||||||
const paths: Record<string, string> = {
|
const paths: Record<string, string> = {
|
||||||
mail: "M22 12a10 10 0 1 0-4 8 M16 8v5a3 3 0 0 0 6 0v-1 M16 12a4 4 0 1 1-8 0 4 4 0 0 1 8 0",
|
mail: "M22 12a10 10 0 1 0-4 8 M16 8v5a3 3 0 0 0 6 0v-1 M16 12a4 4 0 1 1-8 0 4 4 0 0 1 8 0",
|
||||||
x: "M4 3h4l12 18h-4L4 3Z M20 3l-7 8 M4 21l7-8",
|
x: "M4 3h4l12 18h-4L4 3Z M20 3l-7 8 M4 21l7-8",
|
||||||
instagram:
|
instagram:
|
||||||
"M7 3h10a4 4 0 0 1 4 4v10a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V7a4 4 0 0 1 4-4Z M16 12a4 4 0 1 1-8 0 4 4 0 0 1 8 0 M17.5 6.5h.01",
|
"M7 3h10a4 4 0 0 1 4 4v10a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V7a4 4 0 0 1 4-4Z M16 12a4 4 0 1 1-8 0 4 4 0 0 1 8 0 M17.5 6.5h.01",
|
||||||
youtube:
|
youtube:
|
||||||
"M7 5h10a5 5 0 0 1 5 5v4a5 5 0 0 1-5 5H7a5 5 0 0 1-5-5v-4a5 5 0 0 1 5-5Z M10 9l5 3-5 3V9Z",
|
"M7 5h10a5 5 0 0 1 5 5v4a5 5 0 0 1-5 5H7a5 5 0 0 1-5-5v-4a5 5 0 0 1 5-5Z M10 9l5 3-5 3V9Z",
|
||||||
blog: "M5 3h11l3 3v15H5V3Z M15 3v4h4 M9 11h6 M9 15h6",
|
blog: "M5 3h11l3 3v15H5V3Z M15 3v4h4 M9 11h6 M9 15h6",
|
||||||
};
|
};
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
export interface Props {
|
export interface Props {
|
||||||
targetDate: string;
|
targetDate: string;
|
||||||
label?: string;
|
label?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
const { targetDate, label } = Astro.props;
|
const { targetDate, label } = Astro.props;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
const videoUrl =
|
const videoUrl =
|
||||||
"https://www.youtube.com/live/5HDW7u3xt6Y?si=SgPxg83YMdeqGo3t&t=8366";
|
"https://www.youtube.com/live/5HDW7u3xt6Y?si=SgPxg83YMdeqGo3t&t=8366";
|
||||||
const roles = ["Broadcast Manager", "ARG Creator", "Developer"];
|
const roles = ["Broadcast Manager", "ARG Creator", "Developer"];
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,21 +5,21 @@ const sortedEvents = [...events].sort((a, b) => b.date.localeCompare(a.date));
|
||||||
const years = [...new Set(sortedEvents.map((event) => event.date.slice(0, 4)))];
|
const years = [...new Set(sortedEvents.map((event) => event.date.slice(0, 4)))];
|
||||||
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
|
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
|
||||||
const eventsByYear = years.map((year) => ({
|
const eventsByYear = years.map((year) => ({
|
||||||
year,
|
year,
|
||||||
events: sortedEvents.filter((event) => event.date.startsWith(year)),
|
events: sortedEvents.filter((event) => event.date.startsWith(year)),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
|
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
|
||||||
const getShortDate = (date: string) => {
|
const getShortDate = (date: string) => {
|
||||||
const [, month, day] = date.split("-");
|
const [, month, day] = date.split("-");
|
||||||
return `${month}.${day}`;
|
return `${month}.${day}`;
|
||||||
};
|
};
|
||||||
|
|
||||||
const currentYear = new Date().getFullYear();
|
const currentYear = new Date().getFullYear();
|
||||||
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
|
// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below.
|
||||||
const daysUntilYearEnd = Math.ceil(
|
const daysUntilYearEnd = Math.ceil(
|
||||||
(new Date(currentYear + 1, 0, 1).getTime() - Date.now()) /
|
(new Date(currentYear + 1, 0, 1).getTime() - Date.now()) /
|
||||||
(1000 * 60 * 60 * 24),
|
(1000 * 60 * 60 * 24),
|
||||||
);
|
);
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,162 +1,163 @@
|
||||||
interface Event {
|
interface Event {
|
||||||
description: string;
|
description: string;
|
||||||
category: string;
|
category: string;
|
||||||
date: string;
|
date: string;
|
||||||
link?: string;
|
link?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const events: Event[] = [
|
export const events: Event[] = [
|
||||||
{
|
{
|
||||||
description: "제 2회 SSD CTF - 최다 풀이자 SSD상 수상",
|
description: "제 2회 SSD CTF - 최다 풀이자 SSD상 수상",
|
||||||
category: "Award",
|
category: "Award",
|
||||||
date: "2026-08-30",
|
date: "2026-08-30",
|
||||||
link: "https://forge.hspace.io/competitions/6a8b93c72586e8e70978b4df"
|
link: "https://forge.hspace.io/competitions/6a8b93c72586e8e70978b4df",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
description: "33회 해킹캠프 발표 - LLM에 로그인했더니 내 계정이 아니게 됐다???",
|
description:
|
||||||
category: "Presentation",
|
"33회 해킹캠프 발표 - LLM에 로그인했더니 내 계정이 아니게 됐다???",
|
||||||
date: "2026-08-22"
|
category: "Presentation",
|
||||||
},
|
date: "2026-08-22",
|
||||||
{
|
},
|
||||||
description: "2026 사이버 가디언즈 CMX 대회 장려상 수상",
|
{
|
||||||
category: "Award",
|
description: "2026 사이버 가디언즈 CMX 대회 장려상 수상",
|
||||||
date: "2026-08-18"
|
category: "Award",
|
||||||
},
|
date: "2026-08-18",
|
||||||
{
|
},
|
||||||
description: "선린인터넷고등학교 전공동아리 Layer7 26기 입부",
|
{
|
||||||
category: "Education",
|
description: "선린인터넷고등학교 전공동아리 Layer7 26기 입부",
|
||||||
date: "2026-04-01"
|
category: "Education",
|
||||||
},
|
date: "2026-04-01",
|
||||||
{
|
},
|
||||||
description: "선린인터넷고등학교 121기 입학",
|
{
|
||||||
category: "Education",
|
description: "선린인터넷고등학교 121기 입학",
|
||||||
date: "2026-03-03"
|
category: "Education",
|
||||||
},
|
date: "2026-03-03",
|
||||||
{
|
},
|
||||||
description: "리눅스 마스터 2급",
|
{
|
||||||
category: "License",
|
description: "리눅스 마스터 2급",
|
||||||
date: "2026-01-02"
|
category: "License",
|
||||||
},
|
date: "2026-01-02",
|
||||||
{
|
},
|
||||||
description: "화이트햇스쿨 3기 이수",
|
{
|
||||||
category: "Education",
|
description: "화이트햇스쿨 3기 이수",
|
||||||
date: "2025-09-24",
|
category: "Education",
|
||||||
link: "https://whitehatschool.kr/home/kor/main.do",
|
date: "2025-09-24",
|
||||||
},
|
link: "https://whitehatschool.kr/home/kor/main.do",
|
||||||
{
|
},
|
||||||
date: "2025-09-13",
|
{
|
||||||
description: "선린인터넷고 소프트웨어 나눔축제 AnA 이수",
|
date: "2025-09-13",
|
||||||
category: "Education",
|
description: "선린인터넷고 소프트웨어 나눔축제 AnA 이수",
|
||||||
link: "https://ssf.sunrin.io/",
|
category: "Education",
|
||||||
},
|
link: "https://ssf.sunrin.io/",
|
||||||
{
|
},
|
||||||
date: "2025-07-26",
|
{
|
||||||
description: "선린인터넷고 여름방학 중학생 특별교육 우수 이수 (프로그래밍)",
|
date: "2025-07-26",
|
||||||
category: "Education",
|
description: "선린인터넷고 여름방학 중학생 특별교육 우수 이수 (프로그래밍)",
|
||||||
link: "https://sunrint.sen.hs.kr/",
|
category: "Education",
|
||||||
},
|
link: "https://sunrint.sen.hs.kr/",
|
||||||
{
|
},
|
||||||
date: "2025-01-19",
|
{
|
||||||
description: "2025 Sunrin LOGCON(TeamLog 주최) 중등부 3위",
|
date: "2025-01-19",
|
||||||
category: "Award",
|
description: "2025 Sunrin LOGCON(TeamLog 주최) 중등부 3위",
|
||||||
link: "https://teamlog.kr",
|
category: "Award",
|
||||||
},
|
link: "https://teamlog.kr",
|
||||||
{
|
},
|
||||||
date: "2025-01-12",
|
{
|
||||||
description: "2024 Sunrin Layer7 CTF 중등부 2위",
|
date: "2025-01-12",
|
||||||
category: "Award",
|
description: "2024 Sunrin Layer7 CTF 중등부 2위",
|
||||||
link: "https://layer7.kr",
|
category: "Award",
|
||||||
},
|
link: "https://layer7.kr",
|
||||||
{
|
},
|
||||||
date: "2025-01-10",
|
{
|
||||||
description: "선린인터넷고 겨울방학 중학생 특별교육 이수 (IT경영학과)",
|
date: "2025-01-10",
|
||||||
category: "Education",
|
description: "선린인터넷고 겨울방학 중학생 특별교육 이수 (IT경영학과)",
|
||||||
link: "https://sunrint.sen.hs.kr/",
|
category: "Education",
|
||||||
},
|
link: "https://sunrint.sen.hs.kr/",
|
||||||
{
|
},
|
||||||
date: "2024-12-14",
|
{
|
||||||
description:
|
date: "2024-12-14",
|
||||||
"2024 글로벌스타트업학교 K-청소년스타트업 경진대회 우수상 수상",
|
description:
|
||||||
category: "Award",
|
"2024 글로벌스타트업학교 K-청소년스타트업 경진대회 우수상 수상",
|
||||||
link: "https://www.ncf.or.kr/projects/'2024-%EA%B8%80%EB%A1%9C%EB%B2%8C%EC%8A%A4%ED%83%80%ED%8A%B8%EC%97%85%ED%95%99%EA%B5%90-k-%EC%B2%AD%EC%86%8C%EB%85%84%EC%8A%A4%ED%83%80%ED%8A%B8%EC%97%85-%EA%B2%BD%EC%A7%84%EB%8C%80%ED%9A%8C'-%EC%B0%B8%EA%B0%80%EC%9E%90-%EB%AA%A8%EC%A7%91",
|
category: "Award",
|
||||||
},
|
link: "https://www.ncf.or.kr/projects/'2024-%EA%B8%80%EB%A1%9C%EB%B2%8C%EC%8A%A4%ED%83%80%ED%8A%B8%EC%97%85%ED%95%99%EA%B5%90-k-%EC%B2%AD%EC%86%8C%EB%85%84%EC%8A%A4%ED%83%80%ED%8A%B8%EC%97%85-%EA%B2%BD%EC%A7%84%EB%8C%80%ED%9A%8C'-%EC%B0%B8%EA%B0%80%EC%9E%90-%EB%AA%A8%EC%A7%91",
|
||||||
{
|
},
|
||||||
date: "2024-12-07",
|
{
|
||||||
description: "글로벌 스타트업 학교 팀 1위",
|
date: "2024-12-07",
|
||||||
category: "Award",
|
description: "글로벌 스타트업 학교 팀 1위",
|
||||||
link: "https://ncf.or.kr",
|
category: "Award",
|
||||||
},
|
link: "https://ncf.or.kr",
|
||||||
{
|
},
|
||||||
date: "2024-12-07",
|
{
|
||||||
description: "글로벌 스타트업 학교 개인 최우수상",
|
date: "2024-12-07",
|
||||||
category: "Award",
|
description: "글로벌 스타트업 학교 개인 최우수상",
|
||||||
link: "https://ncf.or.kr",
|
category: "Award",
|
||||||
},
|
link: "https://ncf.or.kr",
|
||||||
{
|
},
|
||||||
date: "2024-08-18",
|
{
|
||||||
description: "29회 해킹캠프 CTF 1위 (고민중독)",
|
date: "2024-08-18",
|
||||||
category: "Award & Conference",
|
description: "29회 해킹캠프 CTF 1위 (고민중독)",
|
||||||
link: "https://ctf.hackingcamp.org/",
|
category: "Award & Conference",
|
||||||
},
|
link: "https://ctf.hackingcamp.org/",
|
||||||
{
|
},
|
||||||
date: "2024-08-01",
|
{
|
||||||
description:
|
date: "2024-08-01",
|
||||||
"글로벌 스타트업 학교 2기 베트남 해외 연수 데모데이 대상 (1위)",
|
description:
|
||||||
category: "Award",
|
"글로벌 스타트업 학교 2기 베트남 해외 연수 데모데이 대상 (1위)",
|
||||||
link: "http://ncf.or.kr",
|
category: "Award",
|
||||||
},
|
link: "http://ncf.or.kr",
|
||||||
{
|
},
|
||||||
date: "2024-05-16",
|
{
|
||||||
description: "글로벌 스타트업 학교 2기 합격",
|
date: "2024-05-16",
|
||||||
category: "Education",
|
description: "글로벌 스타트업 학교 2기 합격",
|
||||||
link: "http://ncf.or.kr",
|
category: "Education",
|
||||||
},
|
link: "http://ncf.or.kr",
|
||||||
{
|
},
|
||||||
date: "2024-05-11",
|
{
|
||||||
description: "LG AI 청소년 캠프 1기 LG 탐색상 수상",
|
date: "2024-05-11",
|
||||||
category: "Award",
|
description: "LG AI 청소년 캠프 1기 LG 탐색상 수상",
|
||||||
link: "https://lgaiyouthcamp.or.kr/",
|
category: "Award",
|
||||||
},
|
link: "https://lgaiyouthcamp.or.kr/",
|
||||||
{
|
},
|
||||||
date: "2024-05-11",
|
{
|
||||||
description: "LG AI 청소년 캠프 1기 수료",
|
date: "2024-05-11",
|
||||||
category: "Award & Education",
|
description: "LG AI 청소년 캠프 1기 수료",
|
||||||
link: "https://lgaiyouthcamp.or.kr/",
|
category: "Award & Education",
|
||||||
},
|
link: "https://lgaiyouthcamp.or.kr/",
|
||||||
{
|
},
|
||||||
date: "2023-11-14",
|
{
|
||||||
description: "인천상정중학교 2023학년도 SW 문제 해결 활동 우수상(2위) 수여",
|
date: "2023-11-14",
|
||||||
category: "Award",
|
description: "인천상정중학교 2023학년도 SW 문제 해결 활동 우수상(2위) 수여",
|
||||||
},
|
category: "Award",
|
||||||
{
|
},
|
||||||
date: "2023-09-02",
|
{
|
||||||
description:
|
date: "2023-09-02",
|
||||||
"선린인터넷고등학교 제6회 소프트웨어나눔축제 Layer7 부서 과정 이수",
|
description:
|
||||||
category: "Education",
|
"선린인터넷고등학교 제6회 소프트웨어나눔축제 Layer7 부서 과정 이수",
|
||||||
},
|
category: "Education",
|
||||||
{
|
},
|
||||||
date: "2023-07-24",
|
{
|
||||||
description: "한국정보기술연구원이 주도하는 사이버 가디언즈 보안캠프 수료",
|
date: "2023-07-24",
|
||||||
category: "Education",
|
description: "한국정보기술연구원이 주도하는 사이버 가디언즈 보안캠프 수료",
|
||||||
},
|
category: "Education",
|
||||||
{
|
},
|
||||||
date: "2023-05-15",
|
{
|
||||||
description: "한국 코드페어 예선 진출",
|
date: "2023-05-15",
|
||||||
category: "Award",
|
description: "한국 코드페어 예선 진출",
|
||||||
},
|
category: "Award",
|
||||||
{
|
},
|
||||||
date: "2022-12-20",
|
{
|
||||||
description: "2022 SW영재 창작대회 은상 수상",
|
date: "2022-12-20",
|
||||||
category: "Award",
|
description: "2022 SW영재 창작대회 은상 수상",
|
||||||
},
|
category: "Award",
|
||||||
{
|
},
|
||||||
date: "2022-09-27",
|
{
|
||||||
description: "2022 삼성 주니어 SW 창작대회 본선 진출",
|
date: "2022-09-27",
|
||||||
category: "Award",
|
description: "2022 삼성 주니어 SW 창작대회 본선 진출",
|
||||||
},
|
category: "Award",
|
||||||
{
|
},
|
||||||
date: "2022-05-23",
|
{
|
||||||
description: "2022학년도 석정초SW영재학급 첫 수업",
|
date: "2022-05-23",
|
||||||
category: "Education",
|
description: "2022학년도 석정초SW영재학급 첫 수업",
|
||||||
}
|
category: "Education",
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
{
|
{
|
||||||
"extends": "astro/tsconfigs/strict",
|
"extends": "astro/tsconfigs/strict",
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"baseUrl": ".",
|
"baseUrl": ".",
|
||||||
"paths": {
|
"paths": {
|
||||||
"@/*": ["./src/*"]
|
"@/*": ["./src/*"]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"include": [".astro/types.d.ts", "**/*"],
|
"include": [".astro/types.d.ts", "**/*"],
|
||||||
"exclude": ["dist"]
|
"exclude": ["dist"]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue