{"componentChunkName":"component---src-templates-blog-post-js","path":"/etc/개발자-포트폴리오-구축-가이드-GitHub부터-배포까지/","result":{"data":{"site":{"siteMetadata":{"title":"Bottlehs Tech Blog","description":"웹·앱·AI 개발자 전병훈(bottlehs)의 기술 블로그. AI·LLM, JavaScript·Vue, Spring Boot, 알고리즘, 블록체인 실무 가이드를 다룹니다","siteUrl":"https://www.bottlehs.dev","author":{"name":"Jeon Byung Hun","summary":"개발을 즐기는 bottlehs - Engineer, MS, AI, FE, BE, OS, IOT, Blockchain, 설계, 테스트"},"social":{"github":"bottlehs","codepen":"bottlehs"}}},"markdownRemark":{"id":"9b514a09-02d8-53b1-bb08-83cac404ca02","excerpt":"개발자 포트폴리오 구축 가이드 개발자 포트폴리오는 단순한 이력서가 아니다. 자신의 기술 역량, 프로젝트 경험, 문제 해결 능력을 보여주는 창구다. 이 글은 GitHub 프로필 최적화부터 포트폴리오 웹사이트 제작, 배포까지 완벽한 포트폴리오 구축 가이드를 제공한다.…","html":"<p><img src=\"/assets/etc.png\" alt=\"개발자 포트폴리오 구축 가이드\" title=\"개발자 포트폴리오 구축 가이드\"></p>\n<p>개발자 포트폴리오는 단순한 이력서가 아니다. 자신의 기술 역량, 프로젝트 경험, 문제 해결 능력을 보여주는 창구다. 이 글은 GitHub 프로필 최적화부터 포트폴리오 웹사이트 제작, 배포까지 완벽한 포트폴리오 구축 가이드를 제공한다.</p>\n<h2 id=\"1-포트폴리오가-중요한-이유\" style=\"position:relative;\"><a href=\"#1-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4%EA%B0%80-%EC%A4%91%EC%9A%94%ED%95%9C-%EC%9D%B4%EC%9C%A0\" aria-label=\"1 포트폴리오가 중요한 이유 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>1. 포트폴리오가 중요한 이유</h2>\n<h3 id=\"1-1-포트폴리오의-역할\" style=\"position:relative;\"><a href=\"#1-1-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4%EC%9D%98-%EC%97%AD%ED%95%A0\" aria-label=\"1 1 포트폴리오의 역할 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>1-1. 포트폴리오의 역할</h3>\n<p><strong>기술 역량 증명:</strong></p>\n<ul>\n<li>코드 작성 능력</li>\n<li>프로젝트 경험</li>\n<li>문제 해결 능력</li>\n</ul>\n<p><strong>개인 브랜딩:</strong></p>\n<ul>\n<li>개발자로서의 정체성</li>\n<li>전문 분야 표현</li>\n<li>커뮤니티에서의 인지도</li>\n</ul>\n<p><strong>취업/이직 지원:</strong></p>\n<ul>\n<li>이력서보다 구체적인 증거</li>\n<li>면접관의 관심 유발</li>\n<li>차별화된 지원서</li>\n</ul>\n<h3 id=\"1-2-효과적인-포트폴리오의-특징\" style=\"position:relative;\"><a href=\"#1-2-%ED%9A%A8%EA%B3%BC%EC%A0%81%EC%9D%B8-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4%EC%9D%98-%ED%8A%B9%EC%A7%95\" aria-label=\"1 2 효과적인 포트폴리오의 특징 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>1-2. 효과적인 포트폴리오의 특징</h3>\n<p><strong>명확성:</strong></p>\n<ul>\n<li>무엇을 할 수 있는지 명확히 표현</li>\n<li>기술 스택이 잘 드러남</li>\n<li>프로젝트 설명이 이해하기 쉬움</li>\n</ul>\n<p><strong>시각적 매력:</strong></p>\n<ul>\n<li>깔끔한 디자인</li>\n<li>직관적인 네비게이션</li>\n<li>반응형 디자인</li>\n</ul>\n<p><strong>실전 경험:</strong></p>\n<ul>\n<li>실제 작동하는 프로젝트</li>\n<li>코드 품질이 좋음</li>\n<li>배포된 프로젝트</li>\n</ul>\n<h2 id=\"2-github-프로필-최적화\" style=\"position:relative;\"><a href=\"#2-github-%ED%94%84%EB%A1%9C%ED%95%84-%EC%B5%9C%EC%A0%81%ED%99%94\" aria-label=\"2 github 프로필 최적화 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2. GitHub 프로필 최적화</h2>\n<h3 id=\"2-1-readme-프로필-만들기\" style=\"position:relative;\"><a href=\"#2-1-readme-%ED%94%84%EB%A1%9C%ED%95%84-%EB%A7%8C%EB%93%A4%EA%B8%B0\" aria-label=\"2 1 readme 프로필 만들기 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2-1. README 프로필 만들기</h3>\n<p><strong>프로필 README 생성:</strong></p>\n<ol>\n<li>GitHub에서 자신의 사용자명과 동일한 이름의 저장소 생성</li>\n<li><code class=\"language-text\">README.md</code> 파일 추가</li>\n<li>자동으로 프로필에 표시됨</li>\n</ol>\n<p><strong>기본 템플릿:</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"markdown\"><pre class=\"language-markdown\"><code class=\"language-markdown\"><span class=\"token title important\"><span class=\"token punctuation\">#</span> 안녕하세요, [이름]입니다 👋</span>\n\n<span class=\"token title important\"><span class=\"token punctuation\">##</span> 소개</span>\n<span class=\"token list punctuation\">-</span> 💻 프론트엔드 개발자\n<span class=\"token list punctuation\">-</span> 🎯 React, TypeScript 전문\n<span class=\"token list punctuation\">-</span> 📚 지속적인 학습자\n\n<span class=\"token title important\"><span class=\"token punctuation\">##</span> 기술 스택</span>\n<span class=\"token list punctuation\">-</span> <span class=\"token bold\"><span class=\"token punctuation\">**</span><span class=\"token content\">Frontend</span><span class=\"token punctuation\">**</span></span>: React, Next.js, TypeScript\n<span class=\"token list punctuation\">-</span> <span class=\"token bold\"><span class=\"token punctuation\">**</span><span class=\"token content\">Backend</span><span class=\"token punctuation\">**</span></span>: Node.js, Express\n<span class=\"token list punctuation\">-</span> <span class=\"token bold\"><span class=\"token punctuation\">**</span><span class=\"token content\">Tools</span><span class=\"token punctuation\">**</span></span>: Git, Docker, AWS\n\n<span class=\"token title important\"><span class=\"token punctuation\">##</span> 프로젝트</span>\n<span class=\"token list punctuation\">-</span> <span class=\"token url\">[<span class=\"token content\">프로젝트 1</span>](<span class=\"token url\">링크</span>)</span> - 설명\n<span class=\"token list punctuation\">-</span> <span class=\"token url\">[<span class=\"token content\">프로젝트 2</span>](<span class=\"token url\">링크</span>)</span> - 설명\n\n<span class=\"token title important\"><span class=\"token punctuation\">##</span> 연락처</span>\n<span class=\"token list punctuation\">-</span> 📧 Email: your.email@example.com\n<span class=\"token list punctuation\">-</span> 💼 LinkedIn: [프로필 링크]\n<span class=\"token list punctuation\">-</span> 🌐 Blog: [블로그 링크]</code></pre></div>\n<h3 id=\"2-2-고급-프로필-readme\" style=\"position:relative;\"><a href=\"#2-2-%EA%B3%A0%EA%B8%89-%ED%94%84%EB%A1%9C%ED%95%84-readme\" aria-label=\"2 2 고급 프로필 readme permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2-2. 고급 프로필 README</h3>\n<p><strong>GitHub Stats 추가:</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"markdown\"><pre class=\"language-markdown\"><code class=\"language-markdown\"><span class=\"token title important\"><span class=\"token punctuation\">##</span> GitHub Stats</span>\n\n<span class=\"token url\"><span class=\"token operator\">!</span>[<span class=\"token content\">GitHub Stats</span>](<span class=\"token url\">https://github-readme-stats.vercel.app/api?username=yourusername&amp;show_icons=true&amp;theme=radical</span>)</span>\n\n<span class=\"token url\"><span class=\"token operator\">!</span>[<span class=\"token content\">Top Languages</span>](<span class=\"token url\">https://github-readme-stats.vercel.app/api/top-langs/?username=yourusername&amp;layout=compact&amp;theme=radical</span>)</span></code></pre></div>\n<p><strong>기술 스택 아이콘:</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"markdown\"><pre class=\"language-markdown\"><code class=\"language-markdown\"><span class=\"token title important\"><span class=\"token punctuation\">##</span> 기술 스택</span>\n\n<span class=\"token url\"><span class=\"token operator\">!</span>[<span class=\"token content\">React</span>](<span class=\"token url\">https://img.shields.io/badge/React-20232A?style=for-the-badge&amp;logo=react&amp;logoColor=61DAFB</span>)</span>\n<span class=\"token url\"><span class=\"token operator\">!</span>[<span class=\"token content\">TypeScript</span>](<span class=\"token url\">https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&amp;logo=typescript&amp;logoColor=white</span>)</span>\n<span class=\"token url\"><span class=\"token operator\">!</span>[<span class=\"token content\">Node.js</span>](<span class=\"token url\">https://img.shields.io/badge/Node.js-339933?style=for-the-badge&amp;logo=nodedotjs&amp;logoColor=white</span>)</span></code></pre></div>\n<p><strong>커밋 그래프:</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"markdown\"><pre class=\"language-markdown\"><code class=\"language-markdown\"><span class=\"token url\"><span class=\"token operator\">!</span>[<span class=\"token content\">GitHub Streak</span>](<span class=\"token url\">https://github-readme-streak-stats.herokuapp.com/?user=yourusername&amp;theme=radical</span>)</span></code></pre></div>\n<h3 id=\"2-3-프로젝트-readme-최적화\" style=\"position:relative;\"><a href=\"#2-3-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-readme-%EC%B5%9C%EC%A0%81%ED%99%94\" aria-label=\"2 3 프로젝트 readme 최적화 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2-3. 프로젝트 README 최적화</h3>\n<p><strong>좋은 README 구조:</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"markdown\"><pre class=\"language-markdown\"><code class=\"language-markdown\"><span class=\"token title important\"><span class=\"token punctuation\">#</span> 프로젝트 이름</span>\n\n짧은 한 줄 설명\n\n<span class=\"token title important\"><span class=\"token punctuation\">##</span> 🚀 기능</span>\n\n<span class=\"token list punctuation\">-</span> 주요 기능 1\n<span class=\"token list punctuation\">-</span> 주요 기능 2\n<span class=\"token list punctuation\">-</span> 주요 기능 3\n\n<span class=\"token title important\"><span class=\"token punctuation\">##</span> 🛠️ 기술 스택</span>\n\n<span class=\"token list punctuation\">-</span> React\n<span class=\"token list punctuation\">-</span> TypeScript\n<span class=\"token list punctuation\">-</span> Node.js\n\n<span class=\"token title important\"><span class=\"token punctuation\">##</span> 📸 스크린샷</span>\n\n<span class=\"token url\"><span class=\"token operator\">!</span>[<span class=\"token content\">스크린샷</span>](<span class=\"token url\">이미지링크</span>)</span>\n\n<span class=\"token title important\"><span class=\"token punctuation\">##</span> 🚀 시작하기</span>\n\n<span class=\"token title important\"><span class=\"token punctuation\">###</span> 설치</span>\n\n\\`\\`\\`bash\nnpm install\n\\`\\`\\`\n\n<span class=\"token title important\"><span class=\"token punctuation\">###</span> 실행</span>\n\n\\`\\`\\`bash\nnpm run dev\n\\`\\`\\`\n\n<span class=\"token title important\"><span class=\"token punctuation\">##</span> 📝 라이선스</span>\n\nMIT License</code></pre></div>\n<h2 id=\"3-포트폴리오-웹사이트-제작\" style=\"position:relative;\"><a href=\"#3-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EC%A0%9C%EC%9E%91\" aria-label=\"3 포트폴리오 웹사이트 제작 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>3. 포트폴리오 웹사이트 제작</h2>\n<h3 id=\"3-1-기술-스택-선택\" style=\"position:relative;\"><a href=\"#3-1-%EA%B8%B0%EC%88%A0-%EC%8A%A4%ED%83%9D-%EC%84%A0%ED%83%9D\" aria-label=\"3 1 기술 스택 선택 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>3-1. 기술 스택 선택</h3>\n<p><strong>추천 스택:</strong></p>\n<table>\n<thead>\n<tr>\n<th>스택</th>\n<th>장점</th>\n<th>단점</th>\n<th>추천 대상</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Next.js</strong></td>\n<td>SEO 우수, 빠른 배포</td>\n<td>학습 곡선</td>\n<td>프론트엔드 개발자</td>\n</tr>\n<tr>\n<td><strong>React + Vite</strong></td>\n<td>빠른 개발, 가벼움</td>\n<td>SEO 제한적</td>\n<td>React 개발자</td>\n</tr>\n<tr>\n<td><strong>Gatsby</strong></td>\n<td>정적 사이트 최적화</td>\n<td>설정 복잡</td>\n<td>블로그 통합 원하는 경우</td>\n</tr>\n<tr>\n<td><strong>Astro</strong></td>\n<td>빠른 성능, 다양한 프레임워크</td>\n<td>상대적으로 새로움</td>\n<td>성능 중시</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"3-2-nextjs-포트폴리오-만들기\" style=\"position:relative;\"><a href=\"#3-2-nextjs-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EB%A7%8C%EB%93%A4%EA%B8%B0\" aria-label=\"3 2 nextjs 포트폴리오 만들기 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>3-2. Next.js 포트폴리오 만들기</h3>\n<p><strong>프로젝트 초기화:</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\">npx create-next-app@latest portfolio <span class=\"token parameter variable\">--typescript</span> <span class=\"token parameter variable\">--tailwind</span> <span class=\"token parameter variable\">--app</span>\n<span class=\"token builtin class-name\">cd</span> portfolio</code></pre></div>\n<p><strong>기본 구조:</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">portfolio/\n├── app/\n│   ├── page.tsx          # 홈 페이지\n│   ├── about/\n│   │   └── page.tsx      # 소개 페이지\n│   ├── projects/\n│   │   └── page.tsx      # 프로젝트 페이지\n│   └── contact/\n│       └── page.tsx      # 연락처 페이지\n├── components/\n│   ├── Header.tsx\n│   ├── Footer.tsx\n│   └── ProjectCard.tsx\n└── public/\n    └── images/</code></pre></div>\n<p><strong>홈 페이지 예시:</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"typescript\"><pre class=\"language-typescript\"><code class=\"language-typescript\"><span class=\"token comment\">// app/page.tsx</span>\n<span class=\"token keyword\">import</span> Link <span class=\"token keyword\">from</span> <span class=\"token string\">'next/link'</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token keyword\">function</span> <span class=\"token function\">Home</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n    <span class=\"token operator\">&lt;</span>main className<span class=\"token operator\">=</span><span class=\"token string\">\"min-h-screen p-8\"</span><span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span>section className<span class=\"token operator\">=</span><span class=\"token string\">\"max-w-4xl mx-auto\"</span><span class=\"token operator\">></span>\n        <span class=\"token operator\">&lt;</span>h1 className<span class=\"token operator\">=</span><span class=\"token string\">\"text-4xl font-bold mb-4\"</span><span class=\"token operator\">></span>\n          안녕하세요<span class=\"token punctuation\">,</span> 개발자입니다\n        <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>h1<span class=\"token operator\">></span>\n        <span class=\"token operator\">&lt;</span>p className<span class=\"token operator\">=</span><span class=\"token string\">\"text-xl mb-8\"</span><span class=\"token operator\">></span>\n          프론트엔드 개발자로 React와 TypeScript를 주로 사용합니다<span class=\"token punctuation\">.</span>\n        <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>p<span class=\"token operator\">></span>\n        \n        <span class=\"token operator\">&lt;</span>div className<span class=\"token operator\">=</span><span class=\"token string\">\"flex gap-4 mb-12\"</span><span class=\"token operator\">></span>\n          <span class=\"token operator\">&lt;</span>Link \n            href<span class=\"token operator\">=</span><span class=\"token string\">\"/projects\"</span>\n            className<span class=\"token operator\">=</span><span class=\"token string\">\"px-6 py-3 bg-blue-500 text-white rounded\"</span>\n          <span class=\"token operator\">></span>\n            프로젝트 보기\n          <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>Link<span class=\"token operator\">></span>\n          <span class=\"token operator\">&lt;</span>Link \n            href<span class=\"token operator\">=</span><span class=\"token string\">\"/contact\"</span>\n            className<span class=\"token operator\">=</span><span class=\"token string\">\"px-6 py-3 border border-blue-500 text-blue-500 rounded\"</span>\n          <span class=\"token operator\">></span>\n            연락하기\n          <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>Link<span class=\"token operator\">></span>\n        <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>div<span class=\"token operator\">></span>\n        \n        <span class=\"token operator\">&lt;</span>section<span class=\"token operator\">></span>\n          <span class=\"token operator\">&lt;</span>h2 className<span class=\"token operator\">=</span><span class=\"token string\">\"text-2xl font-bold mb-4\"</span><span class=\"token operator\">></span>기술 스택<span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>h2<span class=\"token operator\">></span>\n          <span class=\"token operator\">&lt;</span>div className<span class=\"token operator\">=</span><span class=\"token string\">\"flex flex-wrap gap-2\"</span><span class=\"token operator\">></span>\n            <span class=\"token punctuation\">{</span><span class=\"token punctuation\">[</span><span class=\"token string\">'React'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'TypeScript'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'Next.js'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'Node.js'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">map</span><span class=\"token punctuation\">(</span>tech <span class=\"token operator\">=></span> <span class=\"token punctuation\">(</span>\n              <span class=\"token operator\">&lt;</span>span \n                key<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>tech<span class=\"token punctuation\">}</span>\n                className<span class=\"token operator\">=</span><span class=\"token string\">\"px-3 py-1 bg-gray-200 rounded\"</span>\n              <span class=\"token operator\">></span>\n                <span class=\"token punctuation\">{</span>tech<span class=\"token punctuation\">}</span>\n              <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>span<span class=\"token operator\">></span>\n            <span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span>\n          <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>div<span class=\"token operator\">></span>\n        <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>section<span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>section<span class=\"token operator\">></span>\n    <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>main<span class=\"token operator\">></span>\n  <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<h3 id=\"3-3-프로젝트-섹션-구현\" style=\"position:relative;\"><a href=\"#3-3-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%84%B9%EC%85%98-%EA%B5%AC%ED%98%84\" aria-label=\"3 3 프로젝트 섹션 구현 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>3-3. 프로젝트 섹션 구현</h3>\n<p><strong>프로젝트 데이터:</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"typescript\"><pre class=\"language-typescript\"><code class=\"language-typescript\"><span class=\"token comment\">// data/projects.ts</span>\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">interface</span> <span class=\"token class-name\">Project</span> <span class=\"token punctuation\">{</span>\n  id<span class=\"token operator\">:</span> <span class=\"token builtin\">string</span><span class=\"token punctuation\">;</span>\n  title<span class=\"token operator\">:</span> <span class=\"token builtin\">string</span><span class=\"token punctuation\">;</span>\n  description<span class=\"token operator\">:</span> <span class=\"token builtin\">string</span><span class=\"token punctuation\">;</span>\n  image<span class=\"token operator\">:</span> <span class=\"token builtin\">string</span><span class=\"token punctuation\">;</span>\n  technologies<span class=\"token operator\">:</span> <span class=\"token builtin\">string</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n  githubUrl<span class=\"token operator\">:</span> <span class=\"token builtin\">string</span><span class=\"token punctuation\">;</span>\n  liveUrl<span class=\"token operator\">?</span><span class=\"token operator\">:</span> <span class=\"token builtin\">string</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">const</span> projects<span class=\"token operator\">:</span> Project<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span>\n  <span class=\"token punctuation\">{</span>\n    id<span class=\"token operator\">:</span> <span class=\"token string\">'1'</span><span class=\"token punctuation\">,</span>\n    title<span class=\"token operator\">:</span> <span class=\"token string\">'E-commerce Platform'</span><span class=\"token punctuation\">,</span>\n    description<span class=\"token operator\">:</span> <span class=\"token string\">'React와 Node.js로 만든 전자상거래 플랫폼'</span><span class=\"token punctuation\">,</span>\n    image<span class=\"token operator\">:</span> <span class=\"token string\">'/images/project1.png'</span><span class=\"token punctuation\">,</span>\n    technologies<span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">'React'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'TypeScript'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'Node.js'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n    githubUrl<span class=\"token operator\">:</span> <span class=\"token string\">'https://github.com/username/project1'</span><span class=\"token punctuation\">,</span>\n    liveUrl<span class=\"token operator\">:</span> <span class=\"token string\">'https://project1.example.com'</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token comment\">// 더 많은 프로젝트...</span>\n<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></code></pre></div>\n<p><strong>프로젝트 카드 컴포넌트:</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"typescript\"><pre class=\"language-typescript\"><code class=\"language-typescript\"><span class=\"token comment\">// components/ProjectCard.tsx</span>\n<span class=\"token keyword\">import</span> Image <span class=\"token keyword\">from</span> <span class=\"token string\">'next/image'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">import</span> Link <span class=\"token keyword\">from</span> <span class=\"token string\">'next/link'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> Project <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">'@/data/projects'</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">interface</span> <span class=\"token class-name\">ProjectCardProps</span> <span class=\"token punctuation\">{</span>\n  project<span class=\"token operator\">:</span> Project<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token keyword\">function</span> <span class=\"token function\">ProjectCard</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span> project <span class=\"token punctuation\">}</span><span class=\"token operator\">:</span> ProjectCardProps<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n    <span class=\"token operator\">&lt;</span>div className<span class=\"token operator\">=</span><span class=\"token string\">\"border rounded-lg overflow-hidden shadow-lg\"</span><span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span>Image\n        src<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>project<span class=\"token punctuation\">.</span>image<span class=\"token punctuation\">}</span>\n        alt<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>project<span class=\"token punctuation\">.</span>title<span class=\"token punctuation\">}</span>\n        width<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token number\">400</span><span class=\"token punctuation\">}</span>\n        height<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token number\">250</span><span class=\"token punctuation\">}</span>\n        className<span class=\"token operator\">=</span><span class=\"token string\">\"w-full h-48 object-cover\"</span>\n      <span class=\"token operator\">/</span><span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span>div className<span class=\"token operator\">=</span><span class=\"token string\">\"p-4\"</span><span class=\"token operator\">></span>\n        <span class=\"token operator\">&lt;</span>h3 className<span class=\"token operator\">=</span><span class=\"token string\">\"text-xl font-bold mb-2\"</span><span class=\"token operator\">></span><span class=\"token punctuation\">{</span>project<span class=\"token punctuation\">.</span>title<span class=\"token punctuation\">}</span><span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>h3<span class=\"token operator\">></span>\n        <span class=\"token operator\">&lt;</span>p className<span class=\"token operator\">=</span><span class=\"token string\">\"text-gray-600 mb-4\"</span><span class=\"token operator\">></span><span class=\"token punctuation\">{</span>project<span class=\"token punctuation\">.</span>description<span class=\"token punctuation\">}</span><span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>p<span class=\"token operator\">></span>\n        \n        <span class=\"token operator\">&lt;</span>div className<span class=\"token operator\">=</span><span class=\"token string\">\"flex flex-wrap gap-2 mb-4\"</span><span class=\"token operator\">></span>\n          <span class=\"token punctuation\">{</span>project<span class=\"token punctuation\">.</span>technologies<span class=\"token punctuation\">.</span><span class=\"token function\">map</span><span class=\"token punctuation\">(</span>tech <span class=\"token operator\">=></span> <span class=\"token punctuation\">(</span>\n            <span class=\"token operator\">&lt;</span>span\n              key<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>tech<span class=\"token punctuation\">}</span>\n              className<span class=\"token operator\">=</span><span class=\"token string\">\"px-2 py-1 bg-blue-100 text-blue-800 text-sm rounded\"</span>\n            <span class=\"token operator\">></span>\n              <span class=\"token punctuation\">{</span>tech<span class=\"token punctuation\">}</span>\n            <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>span<span class=\"token operator\">></span>\n          <span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span>\n        <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>div<span class=\"token operator\">></span>\n        \n        <span class=\"token operator\">&lt;</span>div className<span class=\"token operator\">=</span><span class=\"token string\">\"flex gap-4\"</span><span class=\"token operator\">></span>\n          <span class=\"token operator\">&lt;</span>Link\n            href<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>project<span class=\"token punctuation\">.</span>githubUrl<span class=\"token punctuation\">}</span>\n            target<span class=\"token operator\">=</span><span class=\"token string\">\"_blank\"</span>\n            className<span class=\"token operator\">=</span><span class=\"token string\">\"text-blue-500 hover:underline\"</span>\n          <span class=\"token operator\">></span>\n            GitHub\n          <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>Link<span class=\"token operator\">></span>\n          <span class=\"token punctuation\">{</span>project<span class=\"token punctuation\">.</span>liveUrl <span class=\"token operator\">&amp;&amp;</span> <span class=\"token punctuation\">(</span>\n            <span class=\"token operator\">&lt;</span>Link\n              href<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>project<span class=\"token punctuation\">.</span>liveUrl<span class=\"token punctuation\">}</span>\n              target<span class=\"token operator\">=</span><span class=\"token string\">\"_blank\"</span>\n              className<span class=\"token operator\">=</span><span class=\"token string\">\"text-blue-500 hover:underline\"</span>\n            <span class=\"token operator\">></span>\n              Live Demo\n            <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>Link<span class=\"token operator\">></span>\n          <span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span>\n        <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>div<span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>div<span class=\"token operator\">></span>\n    <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>div<span class=\"token operator\">></span>\n  <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<h3 id=\"3-4-디자인-가이드\" style=\"position:relative;\"><a href=\"#3-4-%EB%94%94%EC%9E%90%EC%9D%B8-%EA%B0%80%EC%9D%B4%EB%93%9C\" aria-label=\"3 4 디자인 가이드 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>3-4. 디자인 가이드</h3>\n<p><strong>색상 팔레트:</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"css\"><pre class=\"language-css\"><code class=\"language-css\"><span class=\"token comment\">/* tailwind.config.js */</span>\n<span class=\"token selector\">module.exports =</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token selector\">theme:</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token selector\">extend:</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token selector\">colors:</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token property\">primary</span><span class=\"token punctuation\">:</span> <span class=\"token string\">'#3B82F6'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token property\">secondary</span><span class=\"token punctuation\">:</span> <span class=\"token string\">'#8B5CF6'</span><span class=\"token punctuation\">,</span>\n        <span class=\"token property\">accent</span><span class=\"token punctuation\">:</span> <span class=\"token string\">'#10B981'</span><span class=\"token punctuation\">,</span>\n      <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span></code></pre></div>\n<p><strong>타이포그래피:</strong></p>\n<ul>\n<li>명확한 계층 구조</li>\n<li>읽기 쉬운 폰트 크기</li>\n<li>적절한 줄 간격</li>\n</ul>\n<p><strong>레이아웃:</strong></p>\n<ul>\n<li>반응형 디자인</li>\n<li>적절한 여백</li>\n<li>직관적인 네비게이션</li>\n</ul>\n<h2 id=\"4-프로젝트-소개-방법\" style=\"position:relative;\"><a href=\"#4-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%86%8C%EA%B0%9C-%EB%B0%A9%EB%B2%95\" aria-label=\"4 프로젝트 소개 방법 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>4. 프로젝트 소개 방법</h2>\n<h3 id=\"4-1-프로젝트-선택-기준\" style=\"position:relative;\"><a href=\"#4-1-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%84%A0%ED%83%9D-%EA%B8%B0%EC%A4%80\" aria-label=\"4 1 프로젝트 선택 기준 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>4-1. 프로젝트 선택 기준</h3>\n<p><strong>포함할 프로젝트:</strong></p>\n<ul>\n<li>실제 작동하는 프로젝트</li>\n<li>다양한 기술 스택을 보여주는 프로젝트</li>\n<li>문제 해결 과정이 드러나는 프로젝트</li>\n<li>최근에 작업한 프로젝트</li>\n</ul>\n<p><strong>제외할 프로젝트:</strong></p>\n<ul>\n<li>미완성 프로젝트</li>\n<li>튜토리얼 따라하기 프로젝트</li>\n<li>오래된 프로젝트 (최신 기술 스택 반영 안 됨)</li>\n</ul>\n<h3 id=\"4-2-프로젝트-설명-작성법\" style=\"position:relative;\"><a href=\"#4-2-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%84%A4%EB%AA%85-%EC%9E%91%EC%84%B1%EB%B2%95\" aria-label=\"4 2 프로젝트 설명 작성법 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>4-2. 프로젝트 설명 작성법</h3>\n<p><strong>좋은 프로젝트 설명:</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"markdown\"><pre class=\"language-markdown\"><code class=\"language-markdown\"><span class=\"token title important\"><span class=\"token punctuation\">##</span> 프로젝트 이름</span>\n\n<span class=\"token title important\"><span class=\"token punctuation\">###</span> 문제</span>\n사용자가 겪는 문제를 명확히 설명\n\n<span class=\"token title important\"><span class=\"token punctuation\">###</span> 해결 방법</span>\n어떻게 문제를 해결했는지 설명\n\n<span class=\"token title important\"><span class=\"token punctuation\">###</span> 기술 스택</span>\n사용한 기술과 선택 이유\n\n<span class=\"token title important\"><span class=\"token punctuation\">###</span> 주요 기능</span>\n<span class=\"token list punctuation\">-</span> 기능 1: 설명\n<span class=\"token list punctuation\">-</span> 기능 2: 설명\n\n<span class=\"token title important\"><span class=\"token punctuation\">###</span> 배운 점</span>\n프로젝트를 통해 배운 것들\n\n<span class=\"token title important\"><span class=\"token punctuation\">###</span> 스크린샷/데모</span>\n시각적 자료 포함</code></pre></div>\n<p><strong>나쁜 예시:</strong></p>\n<ul>\n<li>“React로 만든 프로젝트입니다” (너무 모호)</li>\n<li>기술 스택만 나열 (문제 해결 과정 없음)</li>\n<li>스크린샷 없음 (시각적 증거 부족)</li>\n</ul>\n<p><strong>좋은 예시:</strong></p>\n<ul>\n<li>“사용자의 일일 할 일을 관리할 수 있는 앱입니다. 로컬 스토리지를 활용하여 데이터를 저장하고, 반응형 디자인으로 모바일과 데스크톱 모두에서 사용할 수 있습니다.”</li>\n</ul>\n<h3 id=\"4-3-코드-품질-관리\" style=\"position:relative;\"><a href=\"#4-3-%EC%BD%94%EB%93%9C-%ED%92%88%EC%A7%88-%EA%B4%80%EB%A6%AC\" aria-label=\"4 3 코드 품질 관리 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>4-3. 코드 품질 관리</h3>\n<p><strong>코드 리뷰 체크리스트:</strong></p>\n<ul>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 일관된 코딩 스타일</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 적절한 주석</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 에러 핸들링</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 타입 안정성 (TypeScript 사용 시)</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 테스트 코드 (가능한 경우)</li>\n</ul>\n<p><strong>README 최적화:</strong></p>\n<ul>\n<li>설치 및 실행 방법 명시</li>\n<li>환경 변수 설정 가이드</li>\n<li>주요 기능 설명</li>\n<li>기술 스택 명시</li>\n</ul>\n<h2 id=\"5-배포-전략\" style=\"position:relative;\"><a href=\"#5-%EB%B0%B0%ED%8F%AC-%EC%A0%84%EB%9E%B5\" aria-label=\"5 배포 전략 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>5. 배포 전략</h2>\n<h3 id=\"5-1-배포-플랫폼-선택\" style=\"position:relative;\"><a href=\"#5-1-%EB%B0%B0%ED%8F%AC-%ED%94%8C%EB%9E%AB%ED%8F%BC-%EC%84%A0%ED%83%9D\" aria-label=\"5 1 배포 플랫폼 선택 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>5-1. 배포 플랫폼 선택</h3>\n<p><strong>Vercel (추천):</strong></p>\n<ul>\n<li>Next.js와 완벽한 통합</li>\n<li>무료 플랜 제공</li>\n<li>자동 배포</li>\n<li>빠른 CDN</li>\n</ul>\n<p><strong>Netlify:</strong></p>\n<ul>\n<li>정적 사이트 최적화</li>\n<li>폼 처리 기능</li>\n<li>무료 플랜 제공</li>\n</ul>\n<p><strong>GitHub Pages:</strong></p>\n<ul>\n<li>무료 호스팅</li>\n<li>GitHub와 통합</li>\n<li>간단한 설정</li>\n</ul>\n<p><strong>자체 서버:</strong></p>\n<ul>\n<li>완전한 제어</li>\n<li>커스터마이징 가능</li>\n<li>비용 발생</li>\n</ul>\n<h3 id=\"5-2-vercel-배포\" style=\"position:relative;\"><a href=\"#5-2-vercel-%EB%B0%B0%ED%8F%AC\" aria-label=\"5 2 vercel 배포 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>5-2. Vercel 배포</h3>\n<p><strong>배포 단계:</strong></p>\n<ol>\n<li>GitHub에 코드 푸시</li>\n<li>Vercel에 GitHub 연동</li>\n<li>프로젝트 선택</li>\n<li>자동 배포</li>\n</ol>\n<p><strong>환경 변수 설정:</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token comment\"># Vercel 대시보드에서 설정</span>\n<span class=\"token assign-left variable\">API_KEY</span><span class=\"token operator\">=</span>your-api-key\n<span class=\"token assign-left variable\">DATABASE_URL</span><span class=\"token operator\">=</span>your-database-url</code></pre></div>\n<p><strong>커스텀 도메인:</strong></p>\n<ol>\n<li>Vercel 대시보드에서 도메인 추가</li>\n<li>DNS 설정 변경</li>\n<li>SSL 자동 인증</li>\n</ol>\n<h3 id=\"5-3-cicd-설정\" style=\"position:relative;\"><a href=\"#5-3-cicd-%EC%84%A4%EC%A0%95\" aria-label=\"5 3 cicd 설정 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>5-3. CI/CD 설정</h3>\n<p><strong>GitHub Actions:</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token comment\"># .github/workflows/deploy.yml</span>\n<span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> Deploy Portfolio\n\n<span class=\"token key atrule\">on</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">push</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">branches</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">[</span>main<span class=\"token punctuation\">]</span>\n\n<span class=\"token key atrule\">jobs</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">deploy</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">runs-on</span><span class=\"token punctuation\">:</span> ubuntu<span class=\"token punctuation\">-</span>latest\n    <span class=\"token key atrule\">steps</span><span class=\"token punctuation\">:</span>\n      <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">uses</span><span class=\"token punctuation\">:</span> actions/checkout@v3\n      \n      <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> Setup Node.js\n        <span class=\"token key atrule\">uses</span><span class=\"token punctuation\">:</span> actions/setup<span class=\"token punctuation\">-</span>node@v3\n        <span class=\"token key atrule\">with</span><span class=\"token punctuation\">:</span>\n          <span class=\"token key atrule\">node-version</span><span class=\"token punctuation\">:</span> <span class=\"token string\">'20'</span>\n      \n      <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> Install dependencies\n        <span class=\"token key atrule\">run</span><span class=\"token punctuation\">:</span> npm install\n      \n      <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> Build\n        <span class=\"token key atrule\">run</span><span class=\"token punctuation\">:</span> npm run build\n      \n      <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> Deploy to Vercel\n        <span class=\"token key atrule\">uses</span><span class=\"token punctuation\">:</span> amondnet/vercel<span class=\"token punctuation\">-</span>action@v20\n        <span class=\"token key atrule\">with</span><span class=\"token punctuation\">:</span>\n          <span class=\"token key atrule\">vercel-token</span><span class=\"token punctuation\">:</span> $<span class=\"token punctuation\">{</span><span class=\"token punctuation\">{</span> secrets.VERCEL_TOKEN <span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n          <span class=\"token key atrule\">vercel-org-id</span><span class=\"token punctuation\">:</span> $<span class=\"token punctuation\">{</span><span class=\"token punctuation\">{</span> secrets.ORG_ID <span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n          <span class=\"token key atrule\">vercel-project-id</span><span class=\"token punctuation\">:</span> $<span class=\"token punctuation\">{</span><span class=\"token punctuation\">{</span> secrets.PROJECT_ID <span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span></code></pre></div>\n<h2 id=\"6-seo-최적화\" style=\"position:relative;\"><a href=\"#6-seo-%EC%B5%9C%EC%A0%81%ED%99%94\" aria-label=\"6 seo 최적화 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>6. SEO 최적화</h2>\n<h3 id=\"6-1-메타-태그-설정\" style=\"position:relative;\"><a href=\"#6-1-%EB%A9%94%ED%83%80-%ED%83%9C%EA%B7%B8-%EC%84%A4%EC%A0%95\" aria-label=\"6 1 메타 태그 설정 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>6-1. 메타 태그 설정</h3>\n<p><strong>Next.js Metadata:</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"typescript\"><pre class=\"language-typescript\"><code class=\"language-typescript\"><span class=\"token comment\">// app/layout.tsx</span>\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">const</span> metadata <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n  title<span class=\"token operator\">:</span> <span class=\"token string\">'개발자 포트폴리오'</span><span class=\"token punctuation\">,</span>\n  description<span class=\"token operator\">:</span> <span class=\"token string\">'프론트엔드 개발자 포트폴리오입니다.'</span><span class=\"token punctuation\">,</span>\n  keywords<span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">'개발자'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'포트폴리오'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'React'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'TypeScript'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n  openGraph<span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n    title<span class=\"token operator\">:</span> <span class=\"token string\">'개발자 포트폴리오'</span><span class=\"token punctuation\">,</span>\n    description<span class=\"token operator\">:</span> <span class=\"token string\">'프론트엔드 개발자 포트폴리오입니다.'</span><span class=\"token punctuation\">,</span>\n    images<span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">'/og-image.png'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span></code></pre></div>\n<h3 id=\"6-2-구조화된-데이터\" style=\"position:relative;\"><a href=\"#6-2-%EA%B5%AC%EC%A1%B0%ED%99%94%EB%90%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0\" aria-label=\"6 2 구조화된 데이터 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>6-2. 구조화된 데이터</h3>\n<p><strong>JSON-LD:</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"typescript\"><pre class=\"language-typescript\"><code class=\"language-typescript\"><span class=\"token comment\">// components/StructuredData.tsx</span>\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token keyword\">function</span> <span class=\"token function\">StructuredData</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">const</span> structuredData <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token string-property property\">'@context'</span><span class=\"token operator\">:</span> <span class=\"token string\">'https://schema.org'</span><span class=\"token punctuation\">,</span>\n    <span class=\"token string-property property\">'@type'</span><span class=\"token operator\">:</span> <span class=\"token string\">'Person'</span><span class=\"token punctuation\">,</span>\n    name<span class=\"token operator\">:</span> <span class=\"token string\">'Your Name'</span><span class=\"token punctuation\">,</span>\n    jobTitle<span class=\"token operator\">:</span> <span class=\"token string\">'Frontend Developer'</span><span class=\"token punctuation\">,</span>\n    url<span class=\"token operator\">:</span> <span class=\"token string\">'https://yourportfolio.com'</span><span class=\"token punctuation\">,</span>\n    sameAs<span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span>\n      <span class=\"token string\">'https://github.com/username'</span><span class=\"token punctuation\">,</span>\n      <span class=\"token string\">'https://linkedin.com/in/username'</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n\n  <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n    <span class=\"token operator\">&lt;</span>script\n      type<span class=\"token operator\">=</span><span class=\"token string\">\"application/ld+json\"</span>\n      dangerouslySetInnerHTML<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token punctuation\">{</span> __html<span class=\"token operator\">:</span> <span class=\"token constant\">JSON</span><span class=\"token punctuation\">.</span><span class=\"token function\">stringify</span><span class=\"token punctuation\">(</span>structuredData<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n    <span class=\"token operator\">/</span><span class=\"token operator\">></span>\n  <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<h2 id=\"7-성능-최적화\" style=\"position:relative;\"><a href=\"#7-%EC%84%B1%EB%8A%A5-%EC%B5%9C%EC%A0%81%ED%99%94\" aria-label=\"7 성능 최적화 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>7. 성능 최적화</h2>\n<h3 id=\"7-1-이미지-최적화\" style=\"position:relative;\"><a href=\"#7-1-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%B5%9C%EC%A0%81%ED%99%94\" aria-label=\"7 1 이미지 최적화 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>7-1. 이미지 최적화</h3>\n<p><strong>Next.js Image 컴포넌트:</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"typescript\"><pre class=\"language-typescript\"><code class=\"language-typescript\"><span class=\"token keyword\">import</span> Image <span class=\"token keyword\">from</span> <span class=\"token string\">'next/image'</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token operator\">&lt;</span>Image\n  src<span class=\"token operator\">=</span><span class=\"token string\">\"/profile.jpg\"</span>\n  alt<span class=\"token operator\">=</span><span class=\"token string\">\"Profile\"</span>\n  width<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token number\">200</span><span class=\"token punctuation\">}</span>\n  height<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token number\">200</span><span class=\"token punctuation\">}</span>\n  priority\n  placeholder<span class=\"token operator\">=</span><span class=\"token string\">\"blur\"</span>\n<span class=\"token operator\">/</span><span class=\"token operator\">></span></code></pre></div>\n<h3 id=\"7-2-코드-스플리팅\" style=\"position:relative;\"><a href=\"#7-2-%EC%BD%94%EB%93%9C-%EC%8A%A4%ED%94%8C%EB%A6%AC%ED%8C%85\" aria-label=\"7 2 코드 스플리팅 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>7-2. 코드 스플리팅</h3>\n<p><strong>동적 임포트:</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"typescript\"><pre class=\"language-typescript\"><code class=\"language-typescript\"><span class=\"token keyword\">import</span> dynamic <span class=\"token keyword\">from</span> <span class=\"token string\">'next/dynamic'</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">const</span> HeavyComponent <span class=\"token operator\">=</span> <span class=\"token function\">dynamic</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token keyword\">import</span><span class=\"token punctuation\">(</span><span class=\"token string\">'./HeavyComponent'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token function-variable function\">loading</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token operator\">&lt;</span>p<span class=\"token operator\">></span>Loading<span class=\"token operator\">...</span><span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>p<span class=\"token operator\">></span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<h3 id=\"7-3-폰트-최적화\" style=\"position:relative;\"><a href=\"#7-3-%ED%8F%B0%ED%8A%B8-%EC%B5%9C%EC%A0%81%ED%99%94\" aria-label=\"7 3 폰트 최적화 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>7-3. 폰트 최적화</h3>\n<p><strong>Next.js Font:</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"typescript\"><pre class=\"language-typescript\"><code class=\"language-typescript\"><span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> Inter <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">'next/font/google'</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">const</span> inter <span class=\"token operator\">=</span> <span class=\"token function\">Inter</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span> subsets<span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">'latin'</span><span class=\"token punctuation\">]</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token keyword\">function</span> <span class=\"token function\">Layout</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span> children <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n    <span class=\"token operator\">&lt;</span>html className<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>inter<span class=\"token punctuation\">.</span>className<span class=\"token punctuation\">}</span><span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span>body<span class=\"token operator\">></span><span class=\"token punctuation\">{</span>children<span class=\"token punctuation\">}</span><span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>body<span class=\"token operator\">></span>\n    <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>html<span class=\"token operator\">></span>\n  <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<h2 id=\"8-연락처-및-소셜-링크\" style=\"position:relative;\"><a href=\"#8-%EC%97%B0%EB%9D%BD%EC%B2%98-%EB%B0%8F-%EC%86%8C%EC%85%9C-%EB%A7%81%ED%81%AC\" aria-label=\"8 연락처 및 소셜 링크 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>8. 연락처 및 소셜 링크</h2>\n<h3 id=\"8-1-연락처-섹션\" style=\"position:relative;\"><a href=\"#8-1-%EC%97%B0%EB%9D%BD%EC%B2%98-%EC%84%B9%EC%85%98\" aria-label=\"8 1 연락처 섹션 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>8-1. 연락처 섹션</h3>\n<p><strong>연락처 폼:</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"typescript\"><pre class=\"language-typescript\"><code class=\"language-typescript\"><span class=\"token comment\">// components/ContactForm.tsx</span>\n<span class=\"token string\">'use client'</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> useState <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">'react'</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token keyword\">function</span> <span class=\"token function\">ContactForm</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">const</span> <span class=\"token punctuation\">[</span>formData<span class=\"token punctuation\">,</span> setFormData<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token function\">useState</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>\n    name<span class=\"token operator\">:</span> <span class=\"token string\">''</span><span class=\"token punctuation\">,</span>\n    email<span class=\"token operator\">:</span> <span class=\"token string\">''</span><span class=\"token punctuation\">,</span>\n    message<span class=\"token operator\">:</span> <span class=\"token string\">''</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n  <span class=\"token keyword\">const</span> <span class=\"token function-variable function\">handleSubmit</span> <span class=\"token operator\">=</span> <span class=\"token keyword\">async</span> <span class=\"token punctuation\">(</span>e<span class=\"token operator\">:</span> React<span class=\"token punctuation\">.</span>FormEvent<span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n    e<span class=\"token punctuation\">.</span><span class=\"token function\">preventDefault</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token comment\">// 폼 제출 로직</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n\n  <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n    <span class=\"token operator\">&lt;</span>form onSubmit<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>handleSubmit<span class=\"token punctuation\">}</span> className<span class=\"token operator\">=</span><span class=\"token string\">\"space-y-4\"</span><span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span>input\n        type<span class=\"token operator\">=</span><span class=\"token string\">\"text\"</span>\n        placeholder<span class=\"token operator\">=</span><span class=\"token string\">\"이름\"</span>\n        value<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>formData<span class=\"token punctuation\">.</span>name<span class=\"token punctuation\">}</span>\n        onChange<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token punctuation\">(</span>e<span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token function\">setFormData</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span> <span class=\"token operator\">...</span>formData<span class=\"token punctuation\">,</span> name<span class=\"token operator\">:</span> e<span class=\"token punctuation\">.</span>target<span class=\"token punctuation\">.</span>value <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span>\n        className<span class=\"token operator\">=</span><span class=\"token string\">\"w-full p-2 border rounded\"</span>\n      <span class=\"token operator\">/</span><span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span>input\n        type<span class=\"token operator\">=</span><span class=\"token string\">\"email\"</span>\n        placeholder<span class=\"token operator\">=</span><span class=\"token string\">\"이메일\"</span>\n        value<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>formData<span class=\"token punctuation\">.</span>email<span class=\"token punctuation\">}</span>\n        onChange<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token punctuation\">(</span>e<span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token function\">setFormData</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span> <span class=\"token operator\">...</span>formData<span class=\"token punctuation\">,</span> email<span class=\"token operator\">:</span> e<span class=\"token punctuation\">.</span>target<span class=\"token punctuation\">.</span>value <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span>\n        className<span class=\"token operator\">=</span><span class=\"token string\">\"w-full p-2 border rounded\"</span>\n      <span class=\"token operator\">/</span><span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span>textarea\n        placeholder<span class=\"token operator\">=</span><span class=\"token string\">\"메시지\"</span>\n        value<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>formData<span class=\"token punctuation\">.</span>message<span class=\"token punctuation\">}</span>\n        onChange<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token punctuation\">(</span>e<span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token function\">setFormData</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span> <span class=\"token operator\">...</span>formData<span class=\"token punctuation\">,</span> message<span class=\"token operator\">:</span> e<span class=\"token punctuation\">.</span>target<span class=\"token punctuation\">.</span>value <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span>\n        className<span class=\"token operator\">=</span><span class=\"token string\">\"w-full p-2 border rounded\"</span>\n        rows<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token number\">5</span><span class=\"token punctuation\">}</span>\n      <span class=\"token operator\">/</span><span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span>button\n        type<span class=\"token operator\">=</span><span class=\"token string\">\"submit\"</span>\n        className<span class=\"token operator\">=</span><span class=\"token string\">\"px-6 py-2 bg-blue-500 text-white rounded\"</span>\n      <span class=\"token operator\">></span>\n        전송\n      <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>button<span class=\"token operator\">></span>\n    <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>form<span class=\"token operator\">></span>\n  <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<h3 id=\"8-2-소셜-링크\" style=\"position:relative;\"><a href=\"#8-2-%EC%86%8C%EC%85%9C-%EB%A7%81%ED%81%AC\" aria-label=\"8 2 소셜 링크 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>8-2. 소셜 링크</h3>\n<p><strong>소셜 아이콘:</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"typescript\"><pre class=\"language-typescript\"><code class=\"language-typescript\"><span class=\"token comment\">// components/SocialLinks.tsx</span>\n<span class=\"token keyword\">import</span> Link <span class=\"token keyword\">from</span> <span class=\"token string\">'next/link'</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token keyword\">function</span> <span class=\"token function\">SocialLinks</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n    <span class=\"token operator\">&lt;</span>div className<span class=\"token operator\">=</span><span class=\"token string\">\"flex gap-4\"</span><span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span>Link href<span class=\"token operator\">=</span><span class=\"token string\">\"https://github.com/username\"</span> target<span class=\"token operator\">=</span><span class=\"token string\">\"_blank\"</span><span class=\"token operator\">></span>\n        GitHub\n      <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>Link<span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span>Link href<span class=\"token operator\">=</span><span class=\"token string\">\"https://linkedin.com/in/username\"</span> target<span class=\"token operator\">=</span><span class=\"token string\">\"_blank\"</span><span class=\"token operator\">></span>\n        LinkedIn\n      <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>Link<span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span>Link href<span class=\"token operator\">=</span><span class=\"token string\">\"https://twitter.com/username\"</span> target<span class=\"token operator\">=</span><span class=\"token string\">\"_blank\"</span><span class=\"token operator\">></span>\n        Twitter\n      <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>Link<span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span>Link href<span class=\"token operator\">=</span><span class=\"token string\">\"mailto:your.email@example.com\"</span><span class=\"token operator\">></span>\n        Email\n      <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>Link<span class=\"token operator\">></span>\n    <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>div<span class=\"token operator\">></span>\n  <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<h2 id=\"9-포트폴리오-체크리스트\" style=\"position:relative;\"><a href=\"#9-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EC%B2%B4%ED%81%AC%EB%A6%AC%EC%8A%A4%ED%8A%B8\" aria-label=\"9 포트폴리오 체크리스트 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>9. 포트폴리오 체크리스트</h2>\n<h3 id=\"필수-항목\" style=\"position:relative;\"><a href=\"#%ED%95%84%EC%88%98-%ED%95%AD%EB%AA%A9\" aria-label=\"필수 항목 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>필수 항목</h3>\n<p><strong>기본 정보:</strong></p>\n<ul>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 이름 및 소개</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 기술 스택</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 연락처 정보</li>\n</ul>\n<p><strong>프로젝트:</strong></p>\n<ul>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 최소 3개 이상의 프로젝트</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 각 프로젝트 설명 및 스크린샷</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> GitHub 링크</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> Live Demo 링크 (가능한 경우)</li>\n</ul>\n<p><strong>기술적 요소:</strong></p>\n<ul>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 반응형 디자인</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 빠른 로딩 속도</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> SEO 최적화</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 접근성 고려</li>\n</ul>\n<p><strong>추가 요소:</strong></p>\n<ul>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 블로그 링크 (있는 경우)</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 이력서 다운로드 링크</li>\n<li class=\"task-list-item\"><input type=\"checkbox\" disabled> 소셜 미디어 링크</li>\n</ul>\n<h2 id=\"10-포트폴리오-예시\" style=\"position:relative;\"><a href=\"#10-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EC%98%88%EC%8B%9C\" aria-label=\"10 포트폴리오 예시 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>10. 포트폴리오 예시</h2>\n<h3 id=\"10-1-좋은-포트폴리오의-특징\" style=\"position:relative;\"><a href=\"#10-1-%EC%A2%8B%EC%9D%80-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4%EC%9D%98-%ED%8A%B9%EC%A7%95\" aria-label=\"10 1 좋은 포트폴리오의 특징 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>10-1. 좋은 포트폴리오의 특징</h3>\n<p><strong>명확한 구조:</strong></p>\n<ul>\n<li>홈: 간단한 소개</li>\n<li>소개: 상세한 경력 및 기술</li>\n<li>프로젝트: 프로젝트 목록 및 상세</li>\n<li>연락처: 연락 방법</li>\n</ul>\n<p><strong>시각적 요소:</strong></p>\n<ul>\n<li>깔끔한 디자인</li>\n<li>일관된 색상 팔레트</li>\n<li>적절한 이미지 사용</li>\n</ul>\n<p><strong>기능적 요소:</strong></p>\n<ul>\n<li>빠른 로딩 속도</li>\n<li>부드러운 애니메이션</li>\n<li>직관적인 네비게이션</li>\n</ul>\n<h3 id=\"10-2-참고할-만한-포트폴리오\" style=\"position:relative;\"><a href=\"#10-2-%EC%B0%B8%EA%B3%A0%ED%95%A0-%EB%A7%8C%ED%95%9C-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4\" aria-label=\"10 2 참고할 만한 포트폴리오 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>10-2. 참고할 만한 포트폴리오</h3>\n<p><strong>인기 포트폴리오 사이트:</strong></p>\n<ul>\n<li><a href=\"https://brittanychiang.com/\">https://brittanychiang.com/</a></li>\n<li><a href=\"https://jacekjeznach.com/\">https://jacekjeznach.com/</a></li>\n<li><a href=\"https://www.rammaheshwari.com/\">https://www.rammaheshwari.com/</a></li>\n</ul>\n<p><strong>학습 포인트:</strong></p>\n<ul>\n<li>레이아웃 구조</li>\n<li>색상 사용</li>\n<li>애니메이션 효과</li>\n<li>콘텐츠 구성</li>\n</ul>\n<h2 id=\"faq\" style=\"position:relative;\"><a href=\"#faq\" aria-label=\"faq permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>FAQ</h2>\n<p><strong>Q: 포트폴리오에 몇 개의 프로젝트를 포함해야 하나요?</strong><br>\nA: 3-5개 정도가 적당합니다. 너무 많으면 집중이 어렵고, 너무 적으면 역량을 충분히 보여주기 어렵습니다. 품질이 양보다 중요합니다.</p>\n<p><strong>Q: 튜토리얼 따라하기 프로젝트를 포함해도 되나요?</strong><br>\nA: 가능하면 피하는 것이 좋습니다. 하지만 튜토리얼을 따라하면서 개선하거나 새로운 기능을 추가했다면 포함할 수 있습니다.</p>\n<p><strong>Q: 포트폴리오를 만들 기술을 모르면 어떻게 하나요?</strong><br>\nA: 간단한 HTML/CSS/JavaScript로 시작하거나, Next.js 같은 프레임워크를 학습하면서 만드는 것도 좋은 방법입니다. 포트폴리오 자체가 학습 프로젝트가 될 수 있습니다.</p>\n<p><strong>Q: 커스텀 도메인이 필수인가요?</strong><br>\nA: 필수는 아니지만, 전문성을 보여주는 데 도움이 됩니다. 무료 도메인(.tk, .ml 등)보다는 유료 도메인(.com, .dev 등)을 추천합니다.</p>\n<p><strong>Q: 포트폴리오를 자주 업데이트해야 하나요?</strong><br>\nA: 새로운 프로젝트를 완성하거나 새로운 기술을 학습했을 때 업데이트하는 것이 좋습니다. 최소 분기별로 한 번은 업데이트하는 것을 추천합니다.</p>\n<p><strong>Q: 모바일에서도 잘 보여야 하나요?</strong><br>\nA: 네, 필수입니다. 많은 사람들이 모바일로 포트폴리오를 확인하므로 반응형 디자인은 필수입니다.</p>\n<h2 id=\"결론-나만의-포트폴리오-만들기\" style=\"position:relative;\"><a href=\"#%EA%B2%B0%EB%A1%A0-%EB%82%98%EB%A7%8C%EC%9D%98-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EB%A7%8C%EB%93%A4%EA%B8%B0\" aria-label=\"결론 나만의 포트폴리오 만들기 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>결론: 나만의 포트폴리오 만들기</h2>\n<p>개발자 포트폴리오는 단순한 웹사이트가 아니라 자신을 표현하는 창구다. 기술 역량, 프로젝트 경험, 문제 해결 능력을 보여주는 중요한 도구다.</p>\n<p>완벽한 포트폴리오를 한 번에 만들려고 하지 말고, 점진적으로 개선해나가자. 작은 것부터 시작하여 지속적으로 업데이트하고 개선하는 것이 중요하다.</p>\n<p>가장 중요한 것은 진정성이다. 자신의 경험과 성장 과정을 솔직하게 보여주는 포트폴리오가 가장 효과적이다. 기술적 완벽함보다는 자신의 이야기를 잘 전달하는 것이 중요하다.</p>\n<p>포트폴리오를 통해 더 나은 기회를 만나고, 더 많은 사람들과 연결되기를 바란다. 함께 성장하는 개발자 커뮤니티에서 우리의 여정은 계속된다.</p>\n<h2 id=\"포트폴리오-완성-후-다음-단계\" style=\"position:relative;\"><a href=\"#%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EC%99%84%EC%84%B1-%ED%9B%84-%EB%8B%A4%EC%9D%8C-%EB%8B%A8%EA%B3%84\" aria-label=\"포트폴리오 완성 후 다음 단계 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>포트폴리오 완성 후 다음 단계</h2>\n<p>포트폴리오를 완성했다면, 이제 실제 프로젝트에 참여하여 경험을 쌓아보자. <a href=\"https://bluebutton.kr/\">블루버튼</a> 같은 프로젝트 매칭 플랫폼을 활용하여 포트폴리오에 보여줄 수 있는 실전 프로젝트를 찾아보자. 다양한 프로젝트 경험을 통해 포트폴리오를 더욱 풍성하게 만들고, 실무 역량을 키워나가자.</p>","tableOfContents":"<ul>\n<li>\n<p><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#1-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4%EA%B0%80-%EC%A4%91%EC%9A%94%ED%95%9C-%EC%9D%B4%EC%9C%A0\">1. 포트폴리오가 중요한 이유</a></p>\n<ul>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#1-1-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4%EC%9D%98-%EC%97%AD%ED%95%A0\">1-1. 포트폴리오의 역할</a></li>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#1-2-%ED%9A%A8%EA%B3%BC%EC%A0%81%EC%9D%B8-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4%EC%9D%98-%ED%8A%B9%EC%A7%95\">1-2. 효과적인 포트폴리오의 특징</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#2-github-%ED%94%84%EB%A1%9C%ED%95%84-%EC%B5%9C%EC%A0%81%ED%99%94\">2. GitHub 프로필 최적화</a></p>\n<ul>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#2-1-readme-%ED%94%84%EB%A1%9C%ED%95%84-%EB%A7%8C%EB%93%A4%EA%B8%B0\">2-1. README 프로필 만들기</a></li>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#2-2-%EA%B3%A0%EA%B8%89-%ED%94%84%EB%A1%9C%ED%95%84-readme\">2-2. 고급 프로필 README</a></li>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#2-3-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-readme-%EC%B5%9C%EC%A0%81%ED%99%94\">2-3. 프로젝트 README 최적화</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#3-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EC%A0%9C%EC%9E%91\">3. 포트폴리오 웹사이트 제작</a></p>\n<ul>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#3-1-%EA%B8%B0%EC%88%A0-%EC%8A%A4%ED%83%9D-%EC%84%A0%ED%83%9D\">3-1. 기술 스택 선택</a></li>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#3-2-nextjs-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EB%A7%8C%EB%93%A4%EA%B8%B0\">3-2. Next.js 포트폴리오 만들기</a></li>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#3-3-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%84%B9%EC%85%98-%EA%B5%AC%ED%98%84\">3-3. 프로젝트 섹션 구현</a></li>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#3-4-%EB%94%94%EC%9E%90%EC%9D%B8-%EA%B0%80%EC%9D%B4%EB%93%9C\">3-4. 디자인 가이드</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#4-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%86%8C%EA%B0%9C-%EB%B0%A9%EB%B2%95\">4. 프로젝트 소개 방법</a></p>\n<ul>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#4-1-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%84%A0%ED%83%9D-%EA%B8%B0%EC%A4%80\">4-1. 프로젝트 선택 기준</a></li>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#4-2-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%84%A4%EB%AA%85-%EC%9E%91%EC%84%B1%EB%B2%95\">4-2. 프로젝트 설명 작성법</a></li>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#4-3-%EC%BD%94%EB%93%9C-%ED%92%88%EC%A7%88-%EA%B4%80%EB%A6%AC\">4-3. 코드 품질 관리</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#5-%EB%B0%B0%ED%8F%AC-%EC%A0%84%EB%9E%B5\">5. 배포 전략</a></p>\n<ul>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#5-1-%EB%B0%B0%ED%8F%AC-%ED%94%8C%EB%9E%AB%ED%8F%BC-%EC%84%A0%ED%83%9D\">5-1. 배포 플랫폼 선택</a></li>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#5-2-vercel-%EB%B0%B0%ED%8F%AC\">5-2. Vercel 배포</a></li>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#5-3-cicd-%EC%84%A4%EC%A0%95\">5-3. CI/CD 설정</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#6-seo-%EC%B5%9C%EC%A0%81%ED%99%94\">6. SEO 최적화</a></p>\n<ul>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#6-1-%EB%A9%94%ED%83%80-%ED%83%9C%EA%B7%B8-%EC%84%A4%EC%A0%95\">6-1. 메타 태그 설정</a></li>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#6-2-%EA%B5%AC%EC%A1%B0%ED%99%94%EB%90%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0\">6-2. 구조화된 데이터</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#7-%EC%84%B1%EB%8A%A5-%EC%B5%9C%EC%A0%81%ED%99%94\">7. 성능 최적화</a></p>\n<ul>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#7-1-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%B5%9C%EC%A0%81%ED%99%94\">7-1. 이미지 최적화</a></li>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#7-2-%EC%BD%94%EB%93%9C-%EC%8A%A4%ED%94%8C%EB%A6%AC%ED%8C%85\">7-2. 코드 스플리팅</a></li>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#7-3-%ED%8F%B0%ED%8A%B8-%EC%B5%9C%EC%A0%81%ED%99%94\">7-3. 폰트 최적화</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#8-%EC%97%B0%EB%9D%BD%EC%B2%98-%EB%B0%8F-%EC%86%8C%EC%85%9C-%EB%A7%81%ED%81%AC\">8. 연락처 및 소셜 링크</a></p>\n<ul>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#8-1-%EC%97%B0%EB%9D%BD%EC%B2%98-%EC%84%B9%EC%85%98\">8-1. 연락처 섹션</a></li>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#8-2-%EC%86%8C%EC%85%9C-%EB%A7%81%ED%81%AC\">8-2. 소셜 링크</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#9-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EC%B2%B4%ED%81%AC%EB%A6%AC%EC%8A%A4%ED%8A%B8\">9. 포트폴리오 체크리스트</a></p>\n<ul>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#%ED%95%84%EC%88%98-%ED%95%AD%EB%AA%A9\">필수 항목</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#10-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EC%98%88%EC%8B%9C\">10. 포트폴리오 예시</a></p>\n<ul>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#10-1-%EC%A2%8B%EC%9D%80-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4%EC%9D%98-%ED%8A%B9%EC%A7%95\">10-1. 좋은 포트폴리오의 특징</a></li>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#10-2-%EC%B0%B8%EA%B3%A0%ED%95%A0-%EB%A7%8C%ED%95%9C-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4\">10-2. 참고할 만한 포트폴리오</a></li>\n</ul>\n</li>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#faq\">FAQ</a></li>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#%EA%B2%B0%EB%A1%A0-%EB%82%98%EB%A7%8C%EC%9D%98-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EB%A7%8C%EB%93%A4%EA%B8%B0\">결론: 나만의 포트폴리오 만들기</a></li>\n<li><a href=\"/etc/%EA%B0%9C%EB%B0%9C%EC%9E%90-%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EA%B5%AC%EC%B6%95-%EA%B0%80%EC%9D%B4%EB%93%9C-GitHub%EB%B6%80%ED%84%B0-%EB%B0%B0%ED%8F%AC%EA%B9%8C%EC%A7%80/#%ED%8F%AC%ED%8A%B8%ED%8F%B4%EB%A6%AC%EC%98%A4-%EC%99%84%EC%84%B1-%ED%9B%84-%EB%8B%A4%EC%9D%8C-%EB%8B%A8%EA%B3%84\">포트폴리오 완성 후 다음 단계</a></li>\n</ul>","wordCount":{"words":845},"fields":{"slug":"/etc/개발자-포트폴리오-구축-가이드-GitHub부터-배포까지/","image":null,"faq":[{"question":"포트폴리오에 몇 개의 프로젝트를 포함해야 하나요?","answer":"3-5개 정도가 적당합니다. 너무 많으면 집중이 어렵고, 너무 적으면 역량을 충분히 보여주기 어렵습니다. 품질이 양보다 중요합니다."},{"question":"튜토리얼 따라하기 프로젝트를 포함해도 되나요?","answer":"가능하면 피하는 것이 좋습니다. 하지만 튜토리얼을 따라하면서 개선하거나 새로운 기능을 추가했다면 포함할 수 있습니다."},{"question":"포트폴리오를 만들 기술을 모르면 어떻게 하나요?","answer":"간단한 HTML/CSS/JavaScript로 시작하거나, Next.js 같은 프레임워크를 학습하면서 만드는 것도 좋은 방법입니다. 포트폴리오 자체가 학습 프로젝트가 될 수 있습니다."},{"question":"커스텀 도메인이 필수인가요?","answer":"필수는 아니지만, 전문성을 보여주는 데 도움이 됩니다. 무료 도메인(.tk, .ml 등)보다는 유료 도메인(.com, .dev 등)을 추천합니다."},{"question":"포트폴리오를 자주 업데이트해야 하나요?","answer":"새로운 프로젝트를 완성하거나 새로운 기술을 학습했을 때 업데이트하는 것이 좋습니다. 최소 분기별로 한 번은 업데이트하는 것을 추천합니다."},{"question":"모바일에서도 잘 보여야 하나요?","answer":"네, 필수입니다. 많은 사람들이 모바일로 포트폴리오를 확인하므로 반응형 디자인은 필수입니다."}]},"frontmatter":{"title":"개발자 포트폴리오 구축 가이드 - GitHub부터 배포까지","date":"2025년 12월 30일","dateISO":"2025-12-30T06:15:00.000Z","updatedISO":null,"category":"etc","description":"개발자 포트폴리오를 구축하는 완벽한 가이드다. GitHub 프로필 최적화, 포트폴리오 웹사이트 제작, 프로젝트 소개 방법, 배포 전략까지 실무에서 바로 사용할 수 있는 포트폴리오 구축 방법을 정리한다.","tags":["포트폴리오","GitHub","개발자 브랜딩","이력서","개발자 마케팅","웹사이트 제작","배포","개발자 커리어"]}}},"pageContext":{"slug":"/etc/개발자-포트폴리오-구축-가이드-GitHub부터-배포까지/","previous":{"fields":{"slug":"/etc/2025년-개발자-회고-한-해를-돌아보며-배운-것들/"},"frontmatter":{"title":"2025년 개발자 회고 - 한 해를 돌아보며 배운 것들","tags":["개발자 회고","연말 정리","개발자 성장","학습","경험 공유","개발자 커리어","2025년 회고"]}},"next":{"fields":{"slug":"/etc/2026년-개발-트렌드-예측-개발자가-주목해야-할-기술/"},"frontmatter":{"title":"2026년 개발 트렌드 예측 - 개발자가 주목해야 할 기술","tags":["2026년 트렌드","개발 트렌드","기술 예측","개발자 트렌드","미래 기술","개발자 커리어","기술 스택","개발 예측"]}}}},"staticQueryHashes":["213619243","3262363727"]}