{"id":17326974,"url":"https://github.com/uyu423/resume-nextjs","last_synced_at":"2025-04-08T08:12:17.160Z","repository":{"id":42480048,"uuid":"243575867","full_name":"uyu423/resume-nextjs","owner":"uyu423","description":"Next.js 로 누구나 쉽게 만드는 Static HTML 이력서","archived":false,"fork":false,"pushed_at":"2024-11-11T12:19:31.000Z","size":4539,"stargazers_count":302,"open_issues_count":4,"forks_count":174,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-01T05:34:20.926Z","etag":null,"topics":["nextjs","resume","resume-builder","resume-template","resume-website"],"latest_commit_sha":null,"homepage":"https://uyu423.github.io/resume-nextjs","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uyu423.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-27T17:28:14.000Z","updated_at":"2025-03-28T08:04:33.000Z","dependencies_parsed_at":"2023-02-08T16:15:54.591Z","dependency_job_id":"e2506855-d57b-4c86-a071-5ffabe8ddfe0","html_url":"https://github.com/uyu423/resume-nextjs","commit_stats":{"total_commits":150,"total_committers":11,"mean_commits":"13.636363636363637","dds":0.09999999999999998,"last_synced_commit":"25293bda87bd6e57e676ee1a378cfdcc37722949"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uyu423%2Fresume-nextjs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uyu423%2Fresume-nextjs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uyu423%2Fresume-nextjs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uyu423%2Fresume-nextjs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uyu423","download_url":"https://codeload.github.com/uyu423/resume-nextjs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247801170,"owners_count":20998339,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nextjs","resume","resume-builder","resume-template","resume-website"],"created_at":"2024-10-15T14:18:12.003Z","updated_at":"2025-04-08T08:12:17.129Z","avatar_url":"https://github.com/uyu423.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/uyu423/resume-nextjs/raw/master/logo.jpg\" alt=\"Resume Next.js Logo\"\u003e\n  \u003cbr/\u003e\u003chr/\u003e\n  \u003ca href=\"https://github.com/uyu423/resume-nextjs\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/uyu423/resume-nextjs.svg?style=popout\" alt=\"Github Star\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://circleci.com/gh/uyu423/resume-nextjs\"\u003e\u003cimg src=\"https://circleci.com/gh/uyu423/resume-nextjs.svg?style=shield\" alt=\"CircleCI\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://app.codacy.com/manual/uyu423/resume-nextjs?utm_source=github.com\u0026utm_medium=referral\u0026utm_content=uyu423/resume-nextjs\u0026utm_campaign=Badge_Grade_Dashboard\"\u003e\u003cimg src=\"https://api.codacy.com/project/badge/Grade/fe3253d51d544a2a971b637ed1570ac7\" alt=\"Codacy Badge\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://codeclimate.com/github/uyu423/resume-nextjs/maintainability\"\u003e\u003cimg src=\"https://api.codeclimate.com/v1/badges/19edd90e9309634ee66a/maintainability\" alt=\"Maintainability\"/\u003e\u003c/a\u003e\n  \u003cbr/\u003e\n\u003c/div\u003e\n\n## Introduce\n\n- 누구나 예쁜 웹 이력서를 쉽게 만들 수 있어 \u003csmall\u003e(약간의 코딩으로..)\u003c/small\u003e\n- Next.js, Bootstrap CSS 가 사용되었다.\n- 사실 https://github.com/uyu423/resume-legacy 를 Next.js 로 포팅한 것.\n- Sample: https://uyu423.github.io/resume-nextjs\n  - 더 많은 예제는 [EXAMPLE.md](https://github.com/uyu423/resume-nextjs/blob/master/EXAMPLE.md) 를 참고한다.\n\n## Contributors\n\n- [Yowu (uyu423)](https://github.com/uyu423)\n- [Dal-ya](https://github.com/Dal-ya)\n- [Taeyeong Kim (lizard-kim)](https://github.com/lizard-kim)\n- [Taeyang Jin (heli-os)](https://github.com/heli-os)\n- [Hyogeun Oh (Zerohertz)](https://github.com/Zerohertz)\n\n## Requirements\n\n- Node.js \u003e 18\n  - Node.js 18 버전 이상부터 발생하는 `ERR_OSSL_EVP_UNSUPPORTED` 이슈를 회피하기 위해 `NODE_OPTIONS=--openssl-legacy-provider` 옵션이 적용되어 있습니다.\n  - 가급적 Node.js 버전 18 이상에서 테스트하기를 권장하며 가급적 `.nvmrc` 에 기재된 Node.js 버전 사용을 권고합니다.\n\n## Install\n\n```bash\n# fork to your github account \u0026 git cloning your forked repository\nnpm install\n```\n\n## Run Development Mode\n\n```bash\nnpm run dev\n```\n\n## Structure\n\n- asset/\n  - images, favicon\n- component/\n  - React Components\n- pages/\n  - `index.html` 을 렌더링하기 위한 하나의 페이지 뿐이다.\n- **payload/**\n  - **Payload 데이터 변경만으로 개인 웹 이력서를 뽑아낼 수 있다.**\n  - 이력서 렌더링에 필요한 데이터가 포함된다.\n  - 하단의 Payload Detail 참고\n- docs/\n  - `npm run export (next export)` 를 실행하면 Static HTML 이 렌더링되어 `docs` 디렉토리 하단에 생성된다.\n  - Github Pages 의 master branch 의 `docs/` 디렉토리를 지정하여 Github Pages 호스팅을 할 수 있는데, 이를 위해 export 디렉토리 이름을 docs 로 명명했다.\n  - `docs/typedoc/` 에는 TypeDoc HTML 이 포함되지만 `npm run export` 로는 생성하지 않는다. `npm run typedoc` 으로 TypeDoc 을 생성할 수 있다.\n\n### Payload Description\n\n- TypeDoc: https://uyu423.github.io/resume-nextjs/typedoc\n  - TypeDoc 내에 모든 Payload 에 대한 Rendering Sample Screenshot 이 포함되어 있습니다.\n- `_global`, `footer` Payload 을 제외한 모든 Payload 에는 `disable?: boolean` 필드가 존재합니다. 해당 필드가 `true` 면 해당 Payload 의 Section 을 렌더링하지 않습니다.\n\n#### Profile\n\n- 프로필 사진, 이름, 연락수단, 약간의 공지사항 영역\n- TypeDoc: [IProfile.Payload](https://uyu423.github.io/resume-nextjs/typedoc/interfaces/iprofile.payload.html)\n- TS Sample: [payload/profile.ts](https://github.com/uyu423/resume-nextjs/blob/master/payload/profile.ts)\n\n#### Introduce\n\n- 자기 소개 영역\n- TypeDoc: [IIntroduce.Payload](https://uyu423.github.io/resume-nextjs/typedoc/interfaces/iintroduce.payload.html)\n- TS Sample: [payload/introduce.ts](https://github.com/uyu423/resume-nextjs/blob/master/payload/introduce.ts)\n\n#### Skill\n\n- 본인 보유 기술에 대한 소개 영역\n- TypeDoc: [ISkill.Payload](https://uyu423.github.io/resume-nextjs/typedoc/interfaces/iskill.payload.html)\n- TS Sample: [payload/skill.ts](https://github.com/uyu423/resume-nextjs/blob/master/payload/skill.ts)\n\n#### Experience\n\n- (직장)경험에 대한 소개 영역\n- TypeDoc: [IExperience.Payload](https://uyu423.github.io/resume-nextjs/typedoc/interfaces/iexperience.payload.html)\n- TS Sample: [payload/experience.ts](https://github.com/uyu423/resume-nextjs/blob/master/payload/experience.ts)\n\n#### Project\n\n- 수행 프로젝트에 대한 소개 영역\n- TypeDoc: [IProject.Payload](https://uyu423.github.io/resume-nextjs/typedoc/interfaces/iproject.payload.html)\n- TS Sample: [payload/project.ts](https://github.com/uyu423/resume-nextjs/blob/master/payload/project.ts)\n\n#### Open Source\n\n- 오픈소스 활동에 대한 소개 영역\n- TypeDoc: [IOpenSource.Payload](https://uyu423.github.io/resume-nextjs/typedoc/interfaces/iopensource.payload.html)\n- TS Sample: [payload/openSource.ts](https://github.com/uyu423/resume-nextjs/blob/master/payload/openSource.ts)\n\n#### Presentation\n\n- 발표 활동에 대한 소개 영역\n- TypeDoc: [IPresentation.Payload](https://uyu423.github.io/resume-nextjs/typedoc/interfaces/ipresentation.payload.html)\n- TS Sample: [payload/presentation.ts](https://github.com/uyu423/resume-nextjs/blob/master/payload/presentation.ts)\n\n#### Article\n\n- 블로그/SNS 포스트, 기사에 대한 소개 영역\n- TypeDoc: [IArticle.Payload](https://uyu423.github.io/resume-nextjs/typedoc/interfaces/iarticle.payload.html)\n- TS Sample: [payload/article.ts](https://github.com/uyu423/resume-nextjs/blob/master/payload/article.ts)\n\n#### Education\n\n- 학업에 대한 소개 영역\n- TypeDoc: [IEducation.Payload](https://uyu423.github.io/resume-nextjs/typedoc/interfaces/ieducation.payload.html)\n- TS Sample: [payload/education.ts](https://github.com/uyu423/resume-nextjs/blob/master/payload/education.ts)\n\n#### ETC\n\n- 기타 항목(대회, 자격증, 봉사 등)에 대한 소개 영역\n- TypeDoc: [IEtc.Payload](https://uyu423.github.io/resume-nextjs/typedoc/interfaces/ietc.payload.html)\n- TS Sample: [payload/etc.ts](https://github.com/uyu423/resume-nextjs/blob/master/payload/etc.ts)\n\n#### \\_Global\n\n- 전역 설정(Web Title, SEO, favicon 등)에 대한 설정 영역\n- TypeDoc: [IGlobal.Payload](https://uyu423.github.io/resume-nextjs/typedoc/interfaces/iglobal.payload.html)\n- TS Sample: [payload/\\_global.ts](https://github.com/uyu423/resume-nextjs/blob/master/payload/_global.ts)\n\n## Export\n\n```bash\nnpm run export\n```\n\n- `/docs` 하위에 Static HTML 리소스가 생성된다.\n- Sub Path 가지는 도메인 구조일 경우 (ex. https://uyu423.github.io/resume 로 호스팅) `package.json` 내의 `homepage` 필드 값을 호스팅 원하는 도메인으로 변경한다.\n  - `homepage` 필드에 `pathname` 이 있을 경우 `next.config.js` 의 `assetPrefix` 추가하는 로직이 있음\n\n### Export to Github Pages\n\n#### Repository Setting\n\n- Options - Github Pages - Source - master branch /docs folder 를 선택\n  - Github Pages Source 에 대한 자세한 내용은 [help.github.com](https://help.github.com/en/github/working-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site) 을 참고한다.\n- `npm run export` 를 실행하여 `docs` 내 Static HTML 을 갱신한다.\n- 외부 도메인이 있는 경우 Custom Domain 항목에 기입한다.\n  - **Github Pages Hosting 에 필요한 `docs/CNAME` 파일은 `npm run export` 과정에서 자동으로 생성됩니다.**\n  - `docs/CNAME` 파일 생성에는 `package.json` 내 `homepage` 필드를 참고합니다. Custom Domain 사용시 homepage 값을 수정해주세요.\n  - `package.json` 내 `homepage` 필드가 `*.github.io/*` 로 추정될 경우 Custom Domain 을 사용하지 않는 것으로 간주하고 `docs/CNAME`을 생성하지 않습니다.\n  - 외부 도메인에 대한 자세한 내용은 [help.github.com](https://help.github.com/en/github/working-with-github-pages/configuring-a-custom-domain-for-your-github-pages-site) 를 참고한다.\n- `*.github.io` 도메인을 그대로 사용하는 경우 `http://{username}.github.io/{repository_name}` 접속하면 웹 이력서가 나타난다.\n\n## Contribution\n\n- If you want additional features, please pull request. Always open.\n\n## Question?\n\n- production 빌드에서 이미지가 깨지는 경우\n  - see https://github.com/uyu423/resume-nextjs/issues/24\n- Section 의 순서는 어떻게 조절하나요?\n  - 현재는 `pages/index.tsx` 에서 직접 렌더링 순서를 변경하는 수 밖에 없습니다.\n  - 데이터나 `_global` payload 로 핸들링하는 방법을 고민 중입니다.\n- index.html 에서 이미지, CSS가 404 발생하는 경우\n  - https://github.com/uyu423/resume-nextjs/issues/37 참고\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuyu423%2Fresume-nextjs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuyu423%2Fresume-nextjs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuyu423%2Fresume-nextjs/lists"}