From a56923a6b3a9df2d044ec3187a26a5ef75712ce7 Mon Sep 17 00:00:00 2001 From: gahusb Date: Mon, 27 Apr 2026 14:38:18 +0900 Subject: [PATCH] =?UTF-8?q?refactor(home):=20Profile=20=EC=84=B9=EC=85=98?= =?UTF-8?q?=20portfolio=20API=20=EC=97=B0=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - /api/profile/public에서 프로필·기술스택 동적 로드 - 서비스 미가동 시 하드코딩 폴백 유지 - "프로필 수정" → "포트폴리오 보기" Link로 교체 - 타임라인 섹션 제거 (포트폴리오 페이지에서 관리) Co-Authored-By: Claude Opus 4.6 (1M context) --- src/pages/home/Home.jsx | 49 +++++++++++++++++------------------------ 1 file changed, 20 insertions(+), 29 deletions(-) diff --git a/src/pages/home/Home.jsx b/src/pages/home/Home.jsx index 21f9bdf..dbf4bac 100644 --- a/src/pages/home/Home.jsx +++ b/src/pages/home/Home.jsx @@ -23,6 +23,14 @@ const Home = () => { const isMobile = useIsMobile(); const [todosByStatus, setTodosByStatus] = useState({ todo: [], in_progress: [], done: [] }); + const [portfolio, setPortfolio] = useState(null); + + useEffect(() => { + fetch('/api/profile/public') + .then(r => r.ok ? r.json() : null) + .catch(() => null) + .then(d => setPortfolio(d)); + }, []); const loadTodos = useCallback(async () => { const data = await getTodos(); @@ -222,47 +230,30 @@ const Home = () => {
Profile
-

Server Developer

-

박 재 오

+

{portfolio?.profile?.role || 'Server Developer'}

+

{portfolio?.profile?.name || '박 재 오'}

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

-
-

연혁

-
    -
  • - 2023.02 - 현재 - Server Developer - 내비 TIS 교통 서버 / 현대오토에버 -
  • -
  • - 2020.01 - 2023.02 - Embedded Device SW Developer - 캐시비 단말기 개발 / 롯데정보통신 -
  • -
  • - 2019.07 - 2019.12 - SSAFY - 삼성 SW Academy - SSAFY 1기 수료 -
  • -
-
- {['C++', 'Git', 'AWS', 'Jira', 'MySQL', 'Docker', 'Kubernetes', 'Linux'].map((tag) => ( + {(portfolio?.skills || []).slice(0, 8).map((s) => ( + {s.name} + ))} + {!portfolio && ['C++', 'Git', 'AWS', 'Jira', 'MySQL', 'Docker', 'Kubernetes', 'Linux'].map((tag) => ( {tag} ))}
- - + + 포트폴리오 보기 + + 연락하기