diff --git a/public/about/whitehat.avif b/public/about/whitehat.avif deleted file mode 100644 index 11256c2..0000000 Binary files a/public/about/whitehat.avif and /dev/null differ diff --git a/public/about/whitehat.png b/public/about/whitehat.png new file mode 100644 index 0000000..3d32581 Binary files /dev/null and b/public/about/whitehat.png differ diff --git a/public/fonts/corben/Corben-Bold.woff2 b/public/fonts/corben/Corben-Bold.woff2 new file mode 100644 index 0000000..c64b59a Binary files /dev/null and b/public/fonts/corben/Corben-Bold.woff2 differ diff --git a/public/fonts/corben/Corben-Regular.woff2 b/public/fonts/corben/Corben-Regular.woff2 new file mode 100644 index 0000000..8c9a7d3 Binary files /dev/null and b/public/fonts/corben/Corben-Regular.woff2 differ diff --git a/public/hero-dark.avif b/public/hero-dark.avif deleted file mode 100644 index 88e7a6d..0000000 Binary files a/public/hero-dark.avif and /dev/null differ diff --git a/public/hero-dark.png b/public/hero-dark.png new file mode 100644 index 0000000..805451e Binary files /dev/null and b/public/hero-dark.png differ diff --git a/public/hero-light.avif b/public/hero-light.avif deleted file mode 100644 index 4462089..0000000 Binary files a/public/hero-light.avif and /dev/null differ diff --git a/public/hero-light.png b/public/hero-light.png new file mode 100644 index 0000000..1c902d3 Binary files /dev/null and b/public/hero-light.png differ diff --git a/public/icon/pinkheart.avif b/public/icon/pinkheart.avif deleted file mode 100644 index e3d17b8..0000000 Binary files a/public/icon/pinkheart.avif and /dev/null differ diff --git a/public/projects/IMG_0170.avif b/public/projects/IMG_0170.avif deleted file mode 100644 index fb4f45b..0000000 Binary files a/public/projects/IMG_0170.avif and /dev/null differ diff --git a/public/projects/epc-finale-broadcast.avif b/public/projects/epc-finale-broadcast.avif deleted file mode 100644 index 3092921..0000000 Binary files a/public/projects/epc-finale-broadcast.avif and /dev/null differ diff --git a/public/projects/tape.svg b/public/projects/tape.svg deleted file mode 100644 index d8f9e81..0000000 --- a/public/projects/tape.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/public/side.avif b/public/side.avif deleted file mode 100644 index 9906bce..0000000 Binary files a/public/side.avif and /dev/null differ diff --git a/public/side.png b/public/side.png new file mode 100644 index 0000000..01b06a1 Binary files /dev/null and b/public/side.png differ diff --git a/src/components/About.astro b/src/components/About.astro index 7ed6612..99e7e86 100644 --- a/src/components/About.astro +++ b/src/components/About.astro @@ -1,143 +1,145 @@ --- -import { events } from "@/lib/events"; - -const sortedEvents = [...events].sort((a, b) => b.date.localeCompare(a.date)); -const years = [...new Set(sortedEvents.map((event) => event.date.slice(0, 4)))]; -// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below. -const eventsByYear = years.map((year) => ({ - year, - events: sortedEvents.filter((event) => event.date.startsWith(year)), -})); - -// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below. -const getShortDate = (date: string) => { - const [, month, day] = date.split("-"); - return `${month}.${day}`; -}; - -const currentYear = new Date().getFullYear(); -// biome-ignore lint/correctness/noUnusedVariables: Used in the Astro template below. -const daysUntilYearEnd = Math.ceil( - (new Date(currentYear + 1, 0, 1).getTime() - Date.now()) / - (1000 * 60 * 60 * 24), -); +import ExperienceRow from "@/components/ExperienceRow.astro"; ---
-
+
-

- 저는 {years.length}년간 {events.length}개의 - 개성있는 조각들을 모아왔어요. -

+

저는 이런 것들을 해왔어요.

-
- { - eventsByYear.map(({ year, events: yearEvents }) => ( -
+

+ Information security +

+
+ + + 선린인터넷고등학교 정보보안 동아리 + + Layer7 + + + + + 선린인터넷고등학교 정보보호과 + + + + + 화이트햇스쿨 3기 이수 + +
+
+ +
+

+ Software engineering +

+
+ + + ADOFAI.gg + Full Stack, Mod Developer -
-

- {year} -

- - {yearEvents.length}{" "} - {yearEvents.length === 1 - ? "EVENT" - : "EVENTS"} - -
-
+ -
    - {yearEvents.map((event) => ( -
  1. - -
    -
    - - {event.category} - - {event.link && ( - - )} -
    - {event.link ? ( - - {event.description} - - ) : ( -

    - {event.description} -

    - )} -
    -
  2. - ))} -
- {year === currentYear.toString() && ( -
-
- - ✨ | D-{daysUntilYearEnd}동안 - 만들어나갈 멋진 것들을 - 기대해주세요. - -
+
+ + +
+ +
+
+ Effect Playing Contest + 2025 · Finale
- )} -
- )) - } +
+ Broadcast Engineer + ARG Creator + Full Stack Developer + Mod Developer +
+
+
+
+
활동 사진 콜라주 -
-
-
-

- 무대 뒤에서,
경험을 만들면서... -

-

- 불과 얼음의 춤(A Dance of Fire and Ice)의 이펙트 제작과 - 플레이를 함께 다루는 대회, Effect Playing Contest. 2025와 - Finale 시즌에 참여하며 방송부터 ARG, 개발까지 함께했어요. -

-
    - { - roles.map((role) => ( -
  • - {role} -
  • - )) - } -
- -
-
-
- 012026 · FINALE -
-

- Effect Playing Contest : Finale -

-

- 달성이 주관하고 ADOFAI.gg가 공동 주최하는 EPC의 - 마지막 시즌이에요.
방송 화면 개발과 운영을 맡고, - 대회의 퍼즐을 경험하는 ARG를 제작했었어요. -

- Finale 영상 플레이리스트 -
- -
-
- 022025 -
-

- Effect Playing Contest 2025 -

-

- 이펙트 제작자와 플레이어가 각자의 실력을 선보이는 - 리듬 게임 대회입니다. 방송 화면의 대부분의 기능을 - 개발하고, 방송 운영을 담당했습니다. -

- 2025 영상 플레이리스트 -
-
-
-
- -
-
-
-
- -
- - -
- -
- 점자로 보이는 단서가 적힌 찢어진 종이와 태블릿, 펜이 놓인 ARG 작업 사진 - - -
-
-
-
- - - diff --git a/src/components/Hero.astro b/src/components/Hero.astro index bffe7ce..7e9cf08 100644 --- a/src/components/Hero.astro +++ b/src/components/Hero.astro @@ -24,10 +24,10 @@ class="font-normal text-foreground/50" >로 만들어나가는 암냥입니다. - 남현석입니다.
@@ -45,12 +45,12 @@ - + > @@ -76,13 +75,13 @@ if (root.classList.contains("dark")) { heroThemeSource.media = "all"; - heroThemeSource.srcset = "/hero-dark.avif"; + heroThemeSource.srcset = "/hero-dark.png"; } else if (root.classList.contains("light")) { heroThemeSource.media = "all"; - heroThemeSource.srcset = "/hero-light.avif"; + heroThemeSource.srcset = "/hero-light.png"; } else { heroThemeSource.media = "(prefers-color-scheme: dark)"; - heroThemeSource.srcset = "/hero-dark.avif"; + heroThemeSource.srcset = "/hero-dark.png"; } }; diff --git a/src/lib/events.ts b/src/lib/events.ts index 56d116b..4db0e03 100644 --- a/src/lib/events.ts +++ b/src/lib/events.ts @@ -1,17 +1,4 @@ -interface Event { - description: string; - category: string; - date: string; - link?: string; -} - -export const events: Event[] = [ - { - description: "제 2회 SSD CTF - 최다 풀이자 SSD상 수상", - category: "Award", - date: "2026-08-30", - link: "https://forge.hspace.io/competitions/6a8b93c72586e8e70978b4df" - }, +export const events = [ { description: "33회 해킹캠프 발표 - LLM에 로그인했더니 내 계정이 아니게 됐다???", category: "Presentation", @@ -158,5 +145,27 @@ export const events: Event[] = [ date: "2022-05-23", description: "2022학년도 석정초SW영재학급 첫 수업", category: "Education", - } + }, + { + date: "2022-07-26", + description: "제 14회 맑은하늘 맑은웃음 공모전에서 맑은웃음상 수여", + category: "Award", + }, + { + date: "2021-11-14", + description: "Become a ZEPETO Creator 이수", + category: "Education", + }, + { + date: "2021-05-19", + description: + "소프트웨어와 전자신문이 주관한 소프트웨어재단 꿈찾기 캠프 이수", + category: "Education", + }, + { + date: "2018-01-27", + description: + "제4회 맑은하늘 맑은웃음 어린이 문예공모전에서 위닉스상(2위) 수여", + category: "Award", + }, ]; diff --git a/src/pages/index.astro b/src/pages/index.astro index 50b0680..8475458 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,6 +1,5 @@ --- import About from "@/components/About.astro"; -import EPCProjects from "@/components/EPCProjects.astro"; import Header from "@/components/Header.astro"; import Hero from "@/components/Hero.astro"; import "@/globals.css"; @@ -34,11 +33,10 @@ import "@/globals.css";
-