TechFeedTechFeed
Startup / Product

개발자 포트폴리오 사이트 만들기 2026

필수 섹션, 기술 스택, 배포, SEO, 면접관이 보는 포인트까지 포트폴리오 구축 가이드.

한 줄 요약: 2026년 개발자 포트폴리오의 기준이 바뀌었다. 면접관이 실제로 보는 것은 프로젝트 목록이 아니라 "이 사람이 실제로 문제를 해결할 수 있는가"다. Next.js + Vercel로 배포하고, GitHub 연동과 명확한 프로젝트 설명만 있어도 합격 라인의 포트폴리오는 만들 수 있다.

이 글은 포트폴리오 사이트를 처음 만드는 사람과 기존 것을 갱신하려는 사람 모두를 위해 쓰였다. 필수 섹션, 기술 스택 선택, SEO, 배포까지 실무 기준으로 정리했다. 디자인 감각보다 콘텐츠가 더 중요하다는 전제를 기억하며 읽어라.

면접관이 실제로 보는 것

10년 이상 개발자를 채용한 시니어 엔지니어와 테크 리드들이 공통적으로 말하는 포트폴리오 평가 기준은 아래 순서다.

  1. 실제로 동작하는 프로젝트가 있는가: 깃허브 스타 수나 프레임워크 목록이 아니라, 지금 URL을 열면 동작하는 서비스가 있는가.
  2. 문제 정의가 명확한가: "이 프로젝트를 왜 만들었는가, 어떤 문제를 해결하는가"가 1~2문장으로 설명되어 있는가.
  3. 기술적 결정에 이유가 있는가: "왜 이 스택을 선택했는가, 어떤 트레이드오프를 고려했는가"가 설명되어 있는가.
  4. 코드 품질: GitHub 링크에서 실제 코드를 보았을 때 일관성, 주석, 테스트 여부.
  5. 업데이트 이력: 마지막 커밋이 3년 전이라면 활발하게 개발하는 사람이라는 신호를 주기 어렵다.

면접관이 보지 않는 것

  • 화려한 애니메이션과 커서 효과
  • 사용 기술 목록의 길이 (React, Vue, Angular, Svelte... 전부 나열)
  • 학교 과제 프로젝트 (설명 없이 링크만 있는 경우)
  • 디자인 수준 (개발자 포트폴리오는 디자이너 포트폴리오가 아님)

필수 섹션 — 이것만 있으면 된다

포트폴리오 사이트에 있어야 할 섹션과 각 섹션에서 실제로 보여줘야 할 내용을 정리했다. 섹션이 많다고 좋은 포트폴리오가 되는 것이 아니다 — 각 섹션의 콘텐츠 밀도가 중요하다.

섹션필수 내용피해야 할 것
헤더/히어로이름, 직무, 한 줄 포지셔닝"열정적인 개발자"같은 추상 문구
프로젝트문제, 해결책, 기술, 라이브 링크스크린샷만 있고 설명 없는 카드
기술 스택실제로 써본 것만 자신 있게로고 30개 나열
경험/이력임팩트 중심 서술 (숫자 포함)업무 목록 나열
연락처이메일, GitHub, LinkedIn폼만 있고 이메일 주소 없음

프로젝트 카드 작성법

각 프로젝트 카드는 아래 4가지 정보를 담아야 한다:

  • 문제: 왜 만들었는가 (1문장)
  • 해결: 어떻게 해결했는가 (2~3문장)
  • 기술: 사용한 주요 기술 (3~5개)
  • 링크: 라이브 데모 + GitHub 저장소

기술 스택 선택 — Next.js vs Gatsby vs Astro

포트폴리오 사이트에서 기술 스택 선택은 "내가 이 기술을 실제로 쓸 수 있다"를 보여주는 기회다. 동시에 과도한 복잡도는 오히려 마이너스다.

프레임워크추천 대상특징
Next.js 15풀스택 개발자, React 익숙한 사람블로그 기능 추가 용이, Vercel 최적화
Astro정적 콘텐츠 중심, 성능 최우선JS 최소화, Lighthouse 100점 달성 용이
Remix웹 표준 중시, 풀스택Form 처리, 로더 패턴 보여주기 좋음
단순 HTML/CSS프론트엔드 기초 강조 목적빠른 제작, SEO 기본 충족

결론: 백엔드나 풀스택 포지션을 노린다면 Next.js 15가 가장 무난하다. 프론트엔드 성능에 강점이 있음을 보여주고 싶다면 Astro가 효과적이다.

Next.js 포트폴리오 구조 — 실제 코드

아래는 실무에서 쓰는 Next.js 15 기반 포트폴리오의 디렉토리 구조와 핵심 코드다. MDX 기반 블로그 포스트 지원이 포함되어 있어 기술 블로그로 확장도 가능하다.

Next.js 15 포트폴리오 디렉토리 구조
portfolio/ ├── app/ │ ├── layout.tsx # 루트 레이아웃 (메타데이터, 폰트) │ ├── page.tsx # 홈 (히어로 + 프로젝트 + 스킬) │ ├── projects/ │ │ └── [slug]/ │ │ └── page.tsx # 프로젝트 상세 (MDX) │ └── blog/ │ ├── page.tsx # 블로그 목록 │ └── [slug]/ │ └── page.tsx # 블로그 포스트 (MDX) ├── components/ │ ├── ProjectCard.tsx │ ├── SkillBadge.tsx │ └── ContactForm.tsx ├── content/ │ ├── projects/ # .mdx 파일 (프로젝트 설명) │ └── posts/ # .mdx 파일 (블로그 포스트) ├── lib/ │ └── mdx.ts # MDX 파싱 유틸리티 └── public/ └── og.png # OG 이미지
프로젝트 목록 페이지 핵심 코드 (app/page.tsx)
// app/page.tsx import { getProjects } from '@/lib/mdx' import ProjectCard from '@/components/ProjectCard' export default async function Home() { const projects = await getProjects() return ( <main> <section className="hero"> <h1>이름</h1> <p>무엇을 만드는 개발자인지 한 줄로</p> <div className="links"> <a href="https://github.com/username">GitHub</a> <a href="/resume.pdf">이력서</a> </div> </section> <section className="projects"> <h2>프로젝트</h2> <div className="grid"> {projects.map((project) => ( <ProjectCard key={project.slug} project={project} /> ))} </div> </section> </main> ) } // MDX 프로젝트 파일 예시 (content/projects/my-saas.mdx) // --- // title: SaaS 프로젝트명 // description: 한 줄 요약 // tech: [Next.js, Supabase, Stripe] // demo: https://demo.example.com // github: https://github.com/username/repo // --- // // ## 문제 // 왜 이걸 만들었는지 // // ## 해결 방법 // 어떻게 구현했는지, 기술적 결정 이유

SEO 설정 — 검색에 노출되는 포트폴리오

포트폴리오 SEO의 목표는 "[이름] 개발자" 또는 "[기술스택] 개발자 포트폴리오" 검색에서 상위 노출이다. Next.js 15의 Metadata API를 사용하면 최소한의 코드로 핵심 SEO를 설정할 수 있다.

Next.js 15 메타데이터 + OG 이미지 설정
// app/layout.tsx import type { Metadata } from 'next' export const metadata: Metadata = { title: { template: '%s | 이름 — 개발자', default: '이름 — 풀스택 개발자', }, description: 'Next.js, TypeScript, Supabase를 주로 사용하는 풀스택 개발자입니다. SaaS, 웹앱 프로젝트 경험이 있습니다.', openGraph: { type: 'website', locale: 'ko_KR', url: 'https://yourname.dev', siteName: '이름 포트폴리오', images: [{ url: '/og.png', width: 1200, height: 630 }], }, twitter: { card: 'summary_large_image', creator: '@twitter_handle', }, robots: { index: true, follow: true, }, }
SEO 체크리스트: (1) 도메인은 yourname.dev 또는 yourname.com 형식이 이상적이다. (2) robots.txt에서 index: true 확인. (3) OG 이미지(1200x630)가 없으면 링크 공유 시 썸네일이 없어 클릭률이 크게 떨어진다. Vercel의 @vercel/og로 동적 OG 이미지를 생성할 수 있다.

Vercel 배포 — 10분 안에 완료

Next.js 포트폴리오를 Vercel에 배포하는 과정은 단순하다. GitHub 저장소 연결 후 Vercel이 자동으로 Next.js를 감지해 설정한다.

배포 체크리스트

  1. GitHub에 저장소 생성 후 코드 push
  2. vercel.com에서 "Import Project" 클릭
  3. GitHub 저장소 연결
  4. 환경변수 없으면 그대로 Deploy
  5. 커스텀 도메인 연결 (Vercel 대시보드 Domains 탭)

도메인 추천

형식예시연간 비용
.devyourname.dev$12~15
.comyourname.com$12~15
.ioyourname.io$32~40

.dev 도메인은 HTTPS가 강제되고 개발자 포지션에 어울리면서 .com과 비용이 비슷해 최선의 선택이다.

피해야 할 실수 — 면접관이 이탈하는 포인트

수백 개의 포트폴리오를 검토한 면접관들이 공통적으로 언급하는 이탈 포인트다.

가장 흔한 실수 3가지

1. 라이브 데모가 없다: GitHub 링크만 있고 동작하는 URL이 없는 프로젝트는 면접관이 확인하지 않는다. 무료 플랜으로라도 배포하라.

2. "개발 중"인 프로젝트 표시: 완성되지 않은 프로젝트는 넣지 않는다. 차라리 완성도 높은 프로젝트 2개가 미완성 프로젝트 5개보다 낫다.

3. 연락처가 어렵다: 이메일 주소가 한 번 클릭으로 찾을 수 없으면 기회를 잃는다.

추가로 피해야 할 것들:

  • 마지막 업데이트 날짜 표시: 2022년으로 적혀있으면 활동하지 않는 것처럼 보인다.
  • 이력서와 포트폴리오 내용 불일치: 포트폴리오에 있는 프로젝트를 이력서에서 언급하지 않거나 반대 케이스.
  • 로딩 3초 이상: 포트폴리오 사이트에 Lighthouse 성능 점수가 50 이하면 성능에 무관심한 개발자로 비친다.
포트폴리오개발자Next.js배포취업

관련 포스트

개발자 커리어 성장 전략 20262026-03-03개발자 사이드 프로젝트 가이드 — 시작부터 수익화까지2026-02-27인디해커 기술 스택 2026 — 1인 개발자의 최적 선택2026-02-28개발자 생산성 도구 2026 총정리2026-03-02