From e8d3e65b698894644443e28215bf6cd31995c1c9 Mon Sep 17 00:00:00 2001 From: gahusb Date: Sun, 18 Jan 2026 15:32:58 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B8=94=EB=A1=9C=EA=B7=B8=20=EB=A6=AC?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=EC=9D=98=20=ED=83=80=EC=9D=B4=ED=8B=80=20?= =?UTF-8?q?=EC=83=89=EC=83=81=20=EB=B3=80=ED=99=94=20=EB=A9=94=EC=9D=B8=20?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=EC=97=90=20profile=20card=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20=20-=20=EB=82=B4=20=EC=A0=95=EB=B3=B4=20?= =?UTF-8?q?=EC=97=85=EB=A1=9C=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/data/blog.js | 7 ++- src/pages/blog/Blog.css | 1 + src/pages/home/Home.css | 107 ++++++++++++++++++++++++++++++++++++++++ src/pages/home/Home.jsx | 64 ++++++++++++++++++++++++ 4 files changed, 177 insertions(+), 2 deletions(-) diff --git a/src/data/blog.js b/src/data/blog.js index 9cce36b..5ee2ae1 100644 --- a/src/data/blog.js +++ b/src/data/blog.js @@ -39,6 +39,8 @@ const extractExcerpt = (body) => { return ''; }; +const allowedTags = new Set(['일상', '개발', '공부', '아이디어', '기타']); + const normalizeTags = (value) => { if (!value) return []; const mapped = value @@ -54,7 +56,8 @@ const normalizeTags = (value) => { return tag; }); - return Array.from(new Set(mapped)); + const normalized = mapped.map((tag) => (allowedTags.has(tag) ? tag : '기타')); + return Array.from(new Set(normalized)); }; const normalizeTitle = (slug) => @@ -70,7 +73,7 @@ const inferTagFromPath = (path) => { if (folder === 'dev') return '개발'; if (folder === 'study') return '공부'; if (folder === 'ideas') return '아이디어'; - return ''; + return '기타'; }; const inferDateFromSlug = (slug) => { diff --git a/src/pages/blog/Blog.css b/src/pages/blog/Blog.css index 61e6f93..f6d16f2 100644 --- a/src/pages/blog/Blog.css +++ b/src/pages/blog/Blog.css @@ -132,6 +132,7 @@ margin: 0; font-weight: 600; font-size: 16px; + color: #f8f3ee; } .blog-list__excerpt { diff --git a/src/pages/home/Home.css b/src/pages/home/Home.css index 9b00f96..81ff552 100644 --- a/src/pages/home/Home.css +++ b/src/pages/home/Home.css @@ -196,6 +196,113 @@ letter-spacing: 0.14em; } +.home-profile { + display: grid; +} + +.home-profile__card { + border: 1px solid var(--line); + border-radius: 22px; + padding: 22px; + background: var(--surface); + display: grid; + gap: 16px; +} + +.home-profile__identity { + display: flex; + align-items: center; + gap: 14px; +} + +.home-profile__avatar { + width: 52px; + height: 52px; + border-radius: 16px; + object-fit: cover; + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3); +} + +.home-profile__role { + margin: 0; + font-size: 12px; + text-transform: uppercase; + letter-spacing: 0.2em; + color: var(--accent); +} + +.home-profile__name { + margin: 6px 0 0; + font-weight: 600; + font-size: 18px; +} + +.home-profile__bio { + margin: 0; + color: var(--muted); + line-height: 1.6; +} + +.home-profile__timeline { + display: grid; + gap: 10px; +} + +.home-profile__section-title { + margin: 0; + font-size: 12px; + text-transform: uppercase; + letter-spacing: 0.22em; + color: var(--accent); +} + +.home-profile__timeline ul { + list-style: none; + margin: 0; + padding: 0; + display: grid; + gap: 10px; +} + +.home-profile__timeline li { + display: grid; + gap: 4px; + padding: 12px 14px; + border-radius: 16px; + border: 1px solid var(--line); + background: rgba(255, 255, 255, 0.03); +} + +.home-profile__timeline span { + font-size: 12px; + color: var(--muted); +} + +.home-profile__timeline strong { + font-size: 15px; + font-weight: 600; +} + +.home-profile__tags { + display: flex; + flex-wrap: wrap; + gap: 8px; +} + +.home-profile__tags span { + border: 1px solid var(--line); + border-radius: 999px; + padding: 6px 10px; + font-size: 12px; + color: var(--muted); +} + +.home-profile__actions { + display: flex; + flex-wrap: wrap; + gap: 10px; +} + @media (max-width: 900px) { .home-hero { grid-template-columns: 1fr; diff --git a/src/pages/home/Home.jsx b/src/pages/home/Home.jsx index 54f9b79..2299ac8 100644 --- a/src/pages/home/Home.jsx +++ b/src/pages/home/Home.jsx @@ -2,6 +2,7 @@ import React from 'react'; import { Link } from 'react-router-dom'; import { navLinks } from '../../routes.jsx'; import { getBlogPosts } from '../../data/blog'; +import myPhoto from '../../assets/myPhoto.jpg'; import './Home.css'; const Home = () => { @@ -82,6 +83,69 @@ const Home = () => { ))} + +
+
+

Profile

+

페이지 주인 소개 영역입니다.

+
+
+
+
+ Profile +
+

Server Developer

+

박 재 오

+
+
+

+ 주변 동료와 함께 소통하며 성장하는걸 좋아합니다.
+ 성능 최적화, 인프라 자동화를 중요하게 생각합니다.
+ 여행과 사진, 새로운 기술 탐구를 좋아합니다. +

+
+

연혁

+
    +
  • + 2023.02 - 현재 + Server Developer + 내비 TIS 교통 서버/현대오토에버 +
  • +
  • + 2020.01 - 2023.02 + Embedded Device SW Developer + 캐시비 단말기 개발/롯데정보통신 +
  • +
  • + 2019.07 - 2019.12 + SSAFY - 삼성 SW Academy + SSAFY +
  • +
+
+
+ C++ + Git + AWS + Jira + MySQL + Docker + Kubernetes + Linux +
+
+ + + 연락하기 + +
+
+
+
); };