Skip to content

Improve recruiter-facing portfolio quality across content, UX, SEO, and CI#25

Merged
Ring-wdr merged 2 commits intomainfrom
feat/portfolio-feedback-remediation
Mar 27, 2026
Merged

Improve recruiter-facing portfolio quality across content, UX, SEO, and CI#25
Ring-wdr merged 2 commits intomainfrom
feat/portfolio-feedback-remediation

Conversation

@Ring-wdr
Copy link
Copy Markdown
Owner

PR 유형

어떤 변경 사항이 있나요?

  • 새로운 기능 추가
  • CSS 등 사용자 UI 디자인 변경
  • 코드 리팩토링
  • 문서 수정
  • 테스트 추가, 테스트 리팩토링
  • 빌드 부분 혹은 패키지 매니저 수정

변경 요약

채용 관점 피드백을 반영해 포트폴리오의 신뢰성, 모바일 UX, SEO/공유 품질, 자동화 신호를 한 번에 정리했습니다.

1) 콘텐츠 / 신뢰성

  • 프로젝트 카드 데이터를 projectDetailList 기준 단일 소스로 정리
  • README의 프로젝트/환경변수 설명을 실제 코드와 일치하도록 수정
  • 대표 프로젝트(POCAZ Remake, 메뉴 고르기 앱, react-devtool-cli) 메시지를 케이스 스터디 관점으로 강화
  • 프로젝트 데이터 정합성 회귀 테스트 추가

2) 모바일 UX / Contact

  • 모바일 햄버거/드로어 내비게이션 추가
  • Contact 페이지의 고정 여백 구조를 반응형 레이아웃으로 교체
  • Contact 폼에 email / company / purpose 필드 추가
  • 허니팟 + in-memory rate limit 기반 기본 스팸 방지 추가
  • 메일 템플릿을 새 폼 구조에 맞게 확장

3) SEO / 공유 / 구조화 데이터

  • locale별 route metadata 추가
  • canonical / hreflang alternates 추가
  • sitemap.xml, robots.txt 추가
  • 루트 / 프로젝트 상세용 Open Graph / Twitter 이미지 라우트 추가
  • Person / WebSite / Project JSON-LD 추가

4) 품질 / 자동화

  • ESLint ignore 정리로 로컬 에이전트 산출물에 영향받지 않도록 수정
  • 모바일 Playwright smoke 테스트 추가
  • GitHub Actions CI 및 성능 회귀 워크플로 추가
  • 아키텍처/트레이드오프 문서 추가 및 README 연결

주요 파일

  • src/shared/constant/project.tsx
  • src/shared/constant/project-detail.tsx
  • src/shared/constant/site.ts
  • src/shared/ui/header.tsx
  • src/feature/mail/action/send-mail.ts
  • src/feature/mail/ui/email-form.tsx
  • src/app/sitemap.ts
  • src/app/robots.ts
  • .github/workflows/ci.yml
  • docs/architecture-tradeoffs.md

검증

  • pnpm lint
  • pnpm exec vitest run
  • pnpm build
  • pnpm exec playwright test tests/main.spec.ts tests/contact.mobile.spec.ts --project="Desktop Chrome" --project="Mobile Chrome"

리스크 / 후속 메모

  • Contact rate limit은 in-memory 구현이라 분산 환경에서는 강한 보호가 아닙니다.
  • GitHub Actions 워크플로는 작성했지만 GitHub 상 실제 실행 검증은 아직 하지 않았습니다.
  • 전체 브라우저 매트릭스와 전체 성능 스위트는 이번 PR의 필수 smoke 범위에는 포함하지 않았습니다.

기타

  • recruiter-facing 메시지 일관성, 모바일 검토 경험, 공유 미리보기 품질, 실무형 개발 신호를 동시에 개선하는 PR입니다.

This change finishes the planned feedback pass: recruiter-facing project facts now flow from one canonical source, flagship case-study copy is stronger, mobile navigation and contact UX are production-safe, and the app now emits route-level SEO/share metadata with automation to keep it from regressing.

Constraint: Must avoid committing local agent/tooling artifacts from this workstation
Constraint: Keep the contact hardening lightweight and self-contained without new services or dependencies
Rejected: External CMS for project content | too much operational overhead for a portfolio-sized system
Rejected: Third-party anti-spam service | unnecessary complexity for current inquiry volume
Confidence: medium
Scope-risk: broad
Directive: Keep recruiter-visible facts anchored to shared project detail data; do not reintroduce duplicate summaries without regression checks
Tested: pnpm lint; pnpm exec vitest run; pnpm build; pnpm exec playwright test tests/main.spec.ts tests/contact.mobile.spec.ts --project=Desktop Chrome --project=Mobile Chrome
Not-tested: GitHub-hosted workflow execution; full cross-browser Playwright matrix; scheduled performance workflow in Actions
@vercel
Copy link
Copy Markdown

vercel bot commented Mar 26, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
next-portfolio Ready Ready Preview, Comment Mar 27, 2026 1:04am

The root-level opengraph-image.tsx and twitter-image.tsx were unreachable
because the i18n middleware intercepted /opengraph-image before the route
handler could serve the image. Moving them under [locale] ensures the
images are served at locale-prefixed paths and og:image / twitter:image
meta tags are now emitted on all pages including the homepage.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@Ring-wdr Ring-wdr merged commit f7b7129 into main Mar 27, 2026
2 of 3 checks passed
@Ring-wdr Ring-wdr deleted the feat/portfolio-feedback-remediation branch March 27, 2026 01:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant