diff --git a/docs/plans/portfolio-improvement-plan.md b/docs/plans/portfolio-improvement-plan.md index 0a6e0e3..a79555d 100644 --- a/docs/plans/portfolio-improvement-plan.md +++ b/docs/plans/portfolio-improvement-plan.md @@ -189,3 +189,6 @@ Establish a repeatable development workflow and then improve the portfolio in sm - 2026-06-18: Removed the `/ai-fitting` route, home service card, sitemap entry, smoke-check expectation, and current docs references after retiring the AI fitting demo. - 2026-06-18: Updated the visible repository card name from `커리어 에이전트` to `who-am-ai` while keeping the chat-facing agent copy unchanged. - 2026-06-20: Removed finance/API skill promotions from the home page while keeping the `/agent-skills` detail route available. +- 2026-06-20: Added a `Current Focus` experience entry for post-Gmarket backend, AI agent, and automation work without exposing the private wallstreetcats repository name. +- 2026-06-20: Refined About, skills, current focus, and metadata copy around practical AI backend experiments across public repos and private toy projects without overstating production AI specialization. +- 2026-06-22: Ran a Humanize Korean pass over public UI copy, trimming translationese, stiff status text, and over-explanatory contact messages while preserving technical names and project facts. diff --git a/src/app/agent-skills/page.tsx b/src/app/agent-skills/page.tsx index 81030c5..af026c5 100644 --- a/src/app/agent-skills/page.tsx +++ b/src/app/agent-skills/page.tsx @@ -5,7 +5,7 @@ import AgentSkillsSection from '@/components/sections/AgentSkillsSection' export const metadata: Metadata = { title: 'Open Source Agent Skills — dd3ok | AI 코딩 에이전트 스킬 모음', description: - 'dd3ok의 오픈소스 AI Agent Skill 모음: 네이버증권 API, 토스증권 API, 바이낸스 API, 야후 파이낸스, 문서 브리핑 캐시, 세션 핸드오프, WATCHLIST.md. Codex와 Claude Code에서 사용 가능한 Python 기반 스킬.', + 'dd3ok의 오픈소스 AI Agent Skill 모음: 네이버증권 API, 토스증권 API, 바이낸스 API, 야후 파이낸스, 문서 브리핑 캐시, 세션 핸드오프, WATCHLIST.md. Codex와 Claude Code에서 쓰는 Python 기반 스킬.', keywords: [ 'agent skill', 'codex skill', @@ -24,7 +24,7 @@ export const metadata: Metadata = { openGraph: { title: 'Open Source Agent Skills — dd3ok', description: - 'AI 코딩 에이전트(Codex, Claude Code)에서 사용할 수 있는 오픈소스 스킬 모음. 금융 데이터 API부터 생산성 도구까지.', + 'AI 코딩 에이전트(Codex, Claude Code)에서 쓰는 오픈소스 스킬 모음. 금융 데이터 API부터 생산성 도구까지.', url: 'https://dd3ok.github.io/agent-skills', type: 'website', locale: 'ko_KR', @@ -41,7 +41,7 @@ export const metadata: Metadata = { card: 'summary_large_image', title: 'Open Source Agent Skills — dd3ok', description: - 'AI 코딩 에이전트에서 사용할 수 있는 오픈소스 스킬 모음: 네이버증권, 토스증권, 바이낸스, 야후 파이낸스 API 외 생산성 도구.', + 'AI 코딩 에이전트에서 쓰는 오픈소스 스킬 모음: 네이버증권, 토스증권, 바이낸스, 야후 파이낸스 API 외 생산성 도구.', images: ['/logo.png'], }, alternates: { @@ -54,7 +54,7 @@ const jsonLd = { '@type': 'CollectionPage', name: 'Open Source Agent Skills — dd3ok', description: - 'AI 코딩 에이전트(Codex, Claude Code)에서 사용할 수 있는 오픈소스 Python 스킬 모음', + 'AI 코딩 에이전트(Codex, Claude Code)에서 쓰는 오픈소스 Python 스킬 모음', url: 'https://dd3ok.github.io/agent-skills', author: { '@type': 'Person', diff --git a/src/app/layout.tsx b/src/app/layout.tsx index d33684a..81cc22c 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -10,7 +10,7 @@ const notoSansKR = Noto_Sans_KR({ const siteUrl = 'https://dd3ok.github.io' const siteTitle = 'dd3ok — Backend Developer Portfolio' const siteDescription = - 'Backend Developer dd3ok의 포트폴리오. Spring Boot, 분산 시스템, AI Agent Skill 오픈소스 프로젝트 — 네이버증권 API, 토스증권 API, 바이낸스 API, 야후 파이낸스 스킬 등.' + 'Backend Developer dd3ok의 포트폴리오. Spring Boot 기반 백엔드 경험과 who-am-ai, Waitworthy, Repoclip, Agent Skill 등 AI 백엔드·자동화 토이 프로젝트를 정리합니다.' export const metadata: Metadata = { metadataBase: new URL(siteUrl), @@ -23,15 +23,15 @@ export const metadata: Metadata = { 'dd3ok', 'backend developer', 'portfolio', + 'Spring Boot', + 'AI backend', + 'RAG', + 'LLMOps', + 'AI agent', 'agent skill', 'codex skill', 'openai skill', - '네이버증권 API', - '토스증권 API', - 'Binance API', - 'Yahoo Finance', 'Python', - 'Spring Boot', 'open source', ], authors: [{ name: 'dd3ok', url: 'https://github.com/dd3ok' }], diff --git a/src/components/sections/AIChat.tsx b/src/components/sections/AIChat.tsx index a06662c..671755f 100644 --- a/src/components/sections/AIChat.tsx +++ b/src/components/sections/AIChat.tsx @@ -30,7 +30,7 @@ const TimeoutMessage = ({ onRetry }: { onRetry: () => void }) => (

- 응답이 늦으면 외부 서비스가 깨어나는 중일 수 있습니다. 급한 문의는 이메일로 바로 연락해주세요. + 외부 서비스가 wake up 중일 수 있습니다. 잠시 후 다시 시도해주세요.

) diff --git a/src/components/sections/ContactSection.tsx b/src/components/sections/ContactSection.tsx index c809298..aec57cc 100644 --- a/src/components/sections/ContactSection.tsx +++ b/src/components/sections/ContactSection.tsx @@ -21,7 +21,7 @@ export default function ContactSection() { Contact

- 새로운 기회나 협업에 관심이 있으시다면 언제든 연락해 주세요 + 새로운 기회나 협업이 있다면 편하게 연락해 주세요

@@ -35,7 +35,7 @@ export default function ContactSection() { 함께 일해요!

- 흥미로운 프로젝트나 새로운 기회에 대해 이야기하고 싶습니다. + 흥미로운 프로젝트나 새로운 기회가 있다면 편하게 이야기해 주세요. AI를 활용한 백엔드, 분산 시스템 등 스터디도 환영합니다.

diff --git a/src/components/sections/HeroSection.tsx b/src/components/sections/HeroSection.tsx index 552c337..6ecd855 100644 --- a/src/components/sections/HeroSection.tsx +++ b/src/components/sections/HeroSection.tsx @@ -33,7 +33,7 @@ export default function HeroSection() {

- 스프링 기반 백엔드 경험을 바탕으로,
+ 스프링 백엔드 경험을 살려,
확장성·안정성을 갖춘 서비스를 설계하고 개발합니다.

diff --git a/src/components/sections/PagesSection.tsx b/src/components/sections/PagesSection.tsx index e12ba54..b58babf 100644 --- a/src/components/sections/PagesSection.tsx +++ b/src/components/sections/PagesSection.tsx @@ -15,7 +15,7 @@ export default function PagesSection() { Toys

- 개인적인 페이지와 토이프로젝트 repository입니다 + AI, 자동화, 개발 도구를 작게 만들어본 개인 프로젝트입니다

diff --git a/src/data/agentSkills.ts b/src/data/agentSkills.ts index 0251b05..874b09a 100644 --- a/src/data/agentSkills.ts +++ b/src/data/agentSkills.ts @@ -5,7 +5,7 @@ export const agentSkills: AgentSkill[] = [ id: 'naverstock-api-skill', title: 'NaverStock API Skill', description: - '네이버증권(stock.naver.com) 비공식 읽기 전용 웹 API를 AI 에이전트가 안전하게 조회할 수 있도록 돕는 스킬입니다. 국내 주식 시세, 업종/테마/ETF, 뉴스, 리서치 데이터를 지원합니다.', + '네이버증권(stock.naver.com) 비공식 읽기 전용 웹 API를 AI 에이전트가 안전하게 조회하도록 돕는 스킬입니다. 국내 주식 시세, 업종/테마/ETF, 뉴스, 리서치 데이터를 지원합니다.', shortDescription: '네이버증권 API 스킬', tech: ['Python', 'Codex', 'OpenAI'], github: 'https://github.com/dd3ok/naverstock-api-skill', @@ -56,7 +56,7 @@ export const agentSkills: AgentSkill[] = [ id: 'yahoo-finance-market-skill', title: 'Yahoo Finance Market Skill', description: - 'yfinance 라이브러리를 활용한 Yahoo Finance 시장 조사 Agent Skill입니다. 주가 조회, 재무제표, 차트 데이터, 글로벌 시장 데이터를 AI 에이전트에서 사용할 수 있습니다.', + 'yfinance 라이브러리를 활용한 Yahoo Finance 시장 조사 Agent Skill입니다. 주가 조회, 재무제표, 차트 데이터, 글로벌 시장 데이터를 AI 에이전트에서 다룹니다.', shortDescription: '야후 파이낸스 스킬', tech: ['Python', 'yfinance'], github: 'https://github.com/dd3ok/yahoo-finance-market-skill', diff --git a/src/data/portfolio.ts b/src/data/portfolio.ts index b6f20ff..1b8c9d6 100644 --- a/src/data/portfolio.ts +++ b/src/data/portfolio.ts @@ -1,12 +1,12 @@ import type { AboutContent, Experience, Project, Service, Skill } from '@/types' export const aboutContent: AboutContent = { - summaryTags: ['클린코드', '대용량트래픽', '분산환경', 'AI', 'LLM'], - title: '확장 가능하고 안정적인 시스템을 만듭니다', + summaryTags: ['Spring', '분산시스템', 'AI에이전트', 'RAG', '자동화'], + title: '백엔드 경험에 AI를 작게 더해봅니다', paragraphs: [ - '스프링 기반의 백엔드 서비스를 주로 담당했고 최근에는 AI와 LLM에 관심이 있습니다. 웹 애플리케이션 개발과 운영에 전문성을 갖추고 있습니다.', - '특히 분산 시스템 아키텍처에 관심이 많으며, 안정적인 시스템을 만들기 위해 노력합니다.', - '지속적인 학습을 통해 최신 기술 트렌드를 따라가며, 팀과의 협업을 통한 문제 해결을 선호합니다.', + 'Spring 백엔드 개발과 운영을 해왔고, 최근에는 RAG, AI Agent, LLMOps, 자동화 파이프라인을 개인 토이 프로젝트에 적용해봅니다.', + '지마켓 ESM+와 삼성전자 BQMS에서 로그인·인증, 판매자 API, 업무 시스템 운영 경험을 쌓았고, 안정성과 확장성을 우선합니다.', + 'who-am-ai, Repoclip, Agent Skill, 데이터 브리핑 파이프라인을 만들며 AI를 백엔드 시스템에 자연스럽게 녹이는 방법을 탐색하고 있습니다.', ], } @@ -14,10 +14,22 @@ export const skills: Skill[] = [ { category: 'Language', items: ['Java', 'Kotlin', 'javascript', 'C#'] }, { category: 'Framework & Library', items: ['Spring Boot', 'React', 'Next.js', 'Vue', 'jQuery'] }, { category: 'Database', items: ['Oracle', 'MSSQL', 'Redis', 'MongoDB', 'Kafka'] }, + { category: 'AI Backend', items: ['Spring AI', 'RAG', 'Agent Tooling', 'LLM Eval', 'MCP'] }, { category: 'Monitoring', items: ['Prometheus', 'Grafana', 'ELK Stack', 'Datadog'] }, ] export const experiences: Experience[] = [ + { + company: 'Current Focus', + position: 'Backend / AI Agent Engineering', + period: '2025.01 - Present', + description: [ + 'Spring AI 기반 커리어 Q&A 에이전트 who-am-ai 개발', + 'Python 기반 주식 데이터 수집·분석·평가·브리핑 자동화 파이프라인 개발', + 'RAG, Agent Tooling, Eval, Observability를 개인 토이 프로젝트에 조금씩 적용', + 'Codex, Claude Code에서 쓰는 Agent Skill과 개발 자동화 워크플로우 학습', + ], + }, { company: '지마켓', position: 'Backend Developer', @@ -52,7 +64,7 @@ export const projects: Project[] = [ }, { title: 'ESM+ 판매자 가입 개선', - description: '신규 판매자 가입시 지마켓/옥션 동시가입 및 ESM 가입프로세스 개선 작업입니다.', + description: '신규 판매자 가입 시 지마켓/옥션 동시가입과 ESM 가입 프로세스를 개선했습니다.', tech: ['.NET', 'Spring Boot', 'Spring Batch', 'MSSQL'], image: '/image/projects/esm-signup.png', github: '#', @@ -60,7 +72,7 @@ export const projects: Project[] = [ }, { title: 'ESM+ 로그인 및 인증 서비스 개발', - description: '모놀리식 서비스였던 ESM+의 MSA화를 위해 로그인 서비스를 닷넷에서 스프링으로 마이그레이션했습니다.', + description: 'ESM+ MSA 전환 과정에서 로그인 서비스를 .NET에서 Spring으로 마이그레이션했습니다.', tech: ['Spring Boot', 'MSSQL', 'Redis', 'Kafka'], image: '/image/projects/esm-signin.png', github: '#', @@ -68,7 +80,7 @@ export const projects: Project[] = [ }, { title: 'ESM+ 슈퍼딜/올킬 신청 프로세스', - description: '판매자가 슈퍼딜/올킬 직접 신청할 수 있는 프로세스이며 프론트와 백엔드 모두 담당했습니다.', + description: '판매자가 슈퍼딜/올킬을 직접 신청하는 프로세스로, 프론트와 백엔드를 모두 담당했습니다.', tech: ['Spring Boot', 'MSSQL', 'Next.js', 'React'], image: '/image/projects/esm-seller-deal.png', github: '#', @@ -76,7 +88,7 @@ export const projects: Project[] = [ }, { title: 'ESM+ 카테고리 담당자 관리', - description: 'ESM+ 카테고리와 영업 담당자와 매칭 및 관리 프로젝트로 백엔드 전체와 어드민 프론트 개발을 했습니다.', + description: 'ESM+ 카테고리와 영업 담당자를 매칭하고 관리하는 프로젝트로, 백엔드 전체와 어드민 프론트를 개발했습니다.', tech: ['Spring Boot', 'MSSQL', 'Redis', 'Spring Batch', 'Vue'], image: '/image/projects/esm-category-manager.png', github: '#', @@ -92,7 +104,7 @@ export const projects: Project[] = [ }, { title: '삼성전자 입찰견적관리시스템(BQMS) MRO 몰', - description: '삼성 임직원들을 위한 B2B 서비스로 결제를 제외한 상품부터 정산까지 개발/운영했습니다.', + description: '삼성 임직원을 위한 B2B 서비스입니다. 결제를 제외한 상품 관리부터 정산까지 개발·운영했습니다.', tech: ['Spring', 'Oracle', 'Mybatis', 'jQuery', 'SOAP'], image: '/image/projects/sec-bqms.png', github: '#', @@ -120,10 +132,10 @@ export const services: Service[] = [ { id: 'nopairprgm', title: '코드리뷰 AI', - description: 'PR을 올려 Gemini 한테 리뷰를 받자', + description: 'GitHub PR에 Gemini 기반 리뷰를 붙여본 코드리뷰 자동화', icon: '🤖', path: 'https://github.com/dd3ok/no-pair-prgm', - features: ['Gemini 1.5 Flash 연동', 'Github API 연동', 'Github PR 자동 코드리뷰'], + features: ['Gemini 1.5 Flash 연동', 'GitHub API 연동', 'GitHub PR 자동 코드리뷰'], color: 'from-purple-500 to-indigo-500', buttonText: 'Repository 바로가기', buttonType: 'repo', @@ -131,7 +143,7 @@ export const services: Service[] = [ { id: 'oauth', title: 'OAuth 로그인 + 세션/토큰 관리', - description: 'Naver, Kakao, Google OAuth로 간편하게 로그인하세요', + description: 'OAuth 로그인과 JWT/Redis 세션 관리를 구현한 인증 서비스 예제', icon: '🔐', path: 'https://github.com/dd3ok/auth-service', features: ['OAuth 2.0 로그인', 'JWT 토큰 인증', 'Redis 세션 관리'], @@ -154,10 +166,10 @@ export const services: Service[] = [ { id: 'repoclip', title: 'Repoclip', - description: 'LLM을 위한 Repository 요약 도구', + description: 'Repository를 LLM 컨텍스트로 정리하는 요약 도구', icon: '📦', path: 'https://repoclip.onrender.com', - features: ['Github 저장소 / ZIP 파일 업로드', '클립보드 or 텍스트파일로 export'], + features: ['GitHub 저장소 / ZIP 파일 업로드', '클립보드 또는 텍스트 파일로 export'], color: 'from-yellow-500 to-green-500', buttonText: '서비스 이용하기', buttonType: 'service',