GitHub 비공개 프로젝트 공개 방법 총정리
포트폴리오 제출용 안전한 공개 전략
GitHub에서 비공개로 작업한 프로젝트를 포트폴리오 첨부 링크로 제출하려고 할 때 가장 먼저 고민되는 부분은 그냥 공개 전환할지, 아니면 제출용 공개 레포를 새로 만들지입니다. 단순히 private를 public으로 바꾸는 것 자체는 어렵지 않지만, 실제로는 민감정보, 커밋 기록, README 구성, 폴더 정리까지 함께 봐야 안전합니다.

한눈에 보는 핵심 인포그래픽
바로 변경 가능
노출 가능
레포 별도 생성
바로 보여줌
신뢰도를 높임
공개 방식별 추천도 비교 그래프
포트폴리오 제출 관점에서 바로 공개 전환 방식과 제출용 공개 레포 분리 방식을 비교하면 아래처럼 이해하면 쉽습니다.
바로 공개 전환 방식
제출용 공개 레포 분리 방식
GitHub 공개 방식 비교 표
| 구분 | 설명 | 장점 | 주의할 점 |
|---|---|---|---|
| 기존 private 레포를 public으로 전환 | 현재 작업 중인 저장소를 그대로 공개하는 방식 | 가장 빠르고 링크 제출이 바로 가능함 | 민감정보, 커밋 기록, 불필요한 파일이 그대로 노출될 수 있음 |
| 제출용 public 레포를 새로 생성 | 보여줄 코드와 문서만 골라 새 저장소를 만드는 방식 | 가장 안전하고 README 구성도 포트폴리오용으로 최적화 가능함 | 복사·정리·재구성 시간이 조금 더 필요함 |
| 레포는 private 유지, 별도 설명 자료 제출 | 코드는 비공개 유지하고 문서나 캡처만 제출하는 방식 | 보안상 안전함 | 실제 코드 검토가 어려워 설득력이 약해질 수 있음 |
GitHub 비공개 프로젝트 공개 전환 경로
기존 저장소를 그대로 공개하고 싶다면 보통 아래 순서로 진행하면 됩니다.
GitHub에서 공개하려는 프로젝트 저장소로 들어갑니다.
상단 메뉴에서 Settings 탭으로 이동합니다.
하단 영역의 Danger Zone 섹션에서 저장소 공개 여부 변경 메뉴를 찾습니다.
private 저장소를 public으로 바꾸는 옵션을 선택합니다.
안내에 따라 레포 이름을 입력하고 공개 전환을 완료합니다.
공개 전환 전에 반드시 점검할 항목
.env, API Key, DB 비밀번호, 토큰, Firebase 키, AWS 키, 개인정보가 없는지 확인합니다.
지금 파일에서 지워도 과거 커밋에 남아 있으면 노출될 수 있으므로 히스토리도 같이 봐야 합니다.
테스트용 파일, 임시 이미지, 개인 메모, 디버깅 로그, 사용하지 않는 설정 파일을 정리합니다.
README, 실행 방법, 프로젝트 소개, 역할 설명, 화면 예시가 있어야 제출용 링크로 기능합니다.
특히 중요한 부분
민감정보는 파일에서 삭제했다고 끝이 아닙니다. 한 번이라도 커밋된 적이 있다면 공개 전환 전에 기록까지 점검해야 합니다.
포트폴리오용 README에 꼭 들어가야 할 항목
| 항목 | 왜 필요한가 | 예시 내용 |
|---|---|---|
| 프로젝트 소개 | 무슨 서비스인지 한 번에 이해시키기 위해 | 어떤 문제를 해결하는 웹 서비스인지 2~3문장 요약 |
| 개발 기간 | 프로젝트 규모와 진행 맥락을 보여주기 위해 | 2025.09 ~ 2025.10 |
| 기술 스택 | 사용 기술과 범위를 빠르게 확인시키기 위해 | React, Node.js, MySQL, GitHub |
| 주요 기능 | 기능 구현 범위를 보여주기 위해 | 로그인, 검색, 상세 페이지, 예외 처리 |
| 담당 역할 | 팀 프로젝트에서 본인 기여도를 명확히 하기 위해 | 프론트엔드 화면 구현, 상태 관리, API 연동 |
| 트러블슈팅 | 문제 해결 역량을 보여주기 위해 | 입력 검증 오류 해결, 렌더링 문제 개선 |
| 실행 방법 | 채용 담당자나 면접관이 쉽게 확인할 수 있도록 | npm install / npm run dev |
| 화면 예시 | 읽는 사람 이해를 빠르게 돕기 위해 | screenshot-main.png, screenshot-detail.png |
| 배포 링크 | 실행 결과를 바로 확인시키기 위해 | Vercel, Netlify, Demo URL |
포트폴리오 제출용 GitHub 레포 구조 예시
project-name/
├─ README.md
├─ .gitignore
├─ package.json
├─ public/
├─ src/
│ ├─ components/
│ ├─ pages/
│ ├─ hooks/
│ ├─ utils/
│ └─ assets/
├─ docs/
│ ├─ screenshot-main.png
│ ├─ screenshot-detail.png
│ └─ architecture.png
└─ LICENSE
이 구조에서 포트폴리오 관점으로 특히 중요한 것은 README.md와 docs/ 폴더입니다. 코드만 올려두는 것보다 프로젝트 설명과 실행 화면이 함께 있어야 링크의 완성도가 올라갑니다.
레포 이름과 커밋 메시지도 평가에 영향을 줍니다
- shopping-mall-web
- movie-recommendation-service
- task-manager-app
- ai-prompt-generator
- portfolio-project-guava
프로젝트 주제와 서비스 형태가 바로 보이게 짓는 것이 좋습니다.
- feat: 로그인 UI 구현
- feat: 사용자 입력 검증 로직 추가
- fix: 상세 페이지 렌더링 오류 수정
- refactor: 공통 함수 분리
- docs: README 프로젝트 설명 보완
반대로 수정, test, 최종진짜최종 같은 메시지는 포트폴리오 품질을 떨어뜨릴 수 있습니다.
가장 추천하는 제출 순서
실제로는 기존 private 저장소를 바로 공개하기보다 아래 순서로 준비하는 방식이 가장 안정적입니다.
왜 제출용 public 레포를 따로 만드는 것이 좋은가
1. 민감정보 노출 위험을 줄일 수 있습니다
기존 private 저장소에는 개발 중 사용한 설정 파일, 임시 코드, 테스트 흔적, 내부용 메모가 섞여 있는 경우가 많습니다. 제출용 레포를 따로 만들면 보여줄 자료만 선택적으로 구성할 수 있어 불필요한 노출을 줄일 수 있습니다.
2. 커밋 히스토리를 포트폴리오형으로 정리할 수 있습니다
실제 작업용 저장소에는 실험적 커밋이나 임시 수정이 남아 있기 쉽습니다. 반면 제출용 레포는 핵심 기능 중심으로 정돈된 커밋 흐름을 만들 수 있어 읽는 사람 입장에서 훨씬 보기 좋습니다.
3. README 품질을 따로 끌어올릴 수 있습니다
실무용 또는 팀 협업용 레포 README와 포트폴리오용 README는 목적이 다릅니다. 제출용 README는 면접관이나 채용 담당자가 몇 분 안에 이해하도록 구성되어야 하므로, 소개 방식 자체를 따로 가져가는 것이 유리합니다.
4. 팀 프로젝트에서도 내 역할을 더 분명히 보여줄 수 있습니다
팀 전체 레포를 공개하면 본인 기여가 묻힐 수 있습니다. 제출용 레포에서는 내가 맡았던 파트, 직접 구현한 기능, 해결한 문제를 훨씬 선명하게 정리할 수 있습니다.
제출 전 마지막 체크리스트
환경변수, 토큰, 비밀번호, 개인 정보, 사내 정보가 없는지 다시 확인합니다.
무엇을 만들었고, 왜 만들었고, 내가 무엇을 했는지가 한 번에 보여야 합니다.
npm install, npm run dev처럼 최소 실행 가이드를 넣어야 합니다.
코드만 있는 저장소보다 훨씬 이해가 빠르고 설득력이 높아집니다.
링크를 열었을 때 첫인상이 깔끔해야 합니다.
임시 파일, 테스트 파일, 사용하지 않는 산출물은 최대한 제거하는 것이 좋습니다.
FAQ
Q1. GitHub 비공개 프로젝트를 바로 공개로 바꿔도 되나요?
가능은 하지만 포트폴리오 제출용이라면 민감정보, 불필요한 파일, 커밋 기록 노출 위험이 있어 바로 공개 전환보다 제출용 public 레포를 새로 만드는 방식이 더 안전합니다.
Q2. 공개 전환 전에 가장 먼저 확인해야 할 것은 무엇인가요?
API 키, .env 파일, 비밀번호, 토큰, 개인정보, 회사 내부 코드처럼 외부 공개가 위험한 정보가 있는지부터 확인해야 합니다.
Q3. 포트폴리오용 GitHub README에는 무엇을 넣어야 하나요?
프로젝트 소개, 개발 기간, 기술 스택, 주요 기능, 담당 역할, 트러블슈팅, 실행 방법, 화면 예시, 배포 링크를 넣는 구성이 가장 무난합니다.
Q4. 브랜치 하나만 공개하고 나머지는 비공개로 둘 수 있나요?
일반적으로 공개 여부는 레포지토리 단위로 보는 것이 현실적이므로, 일부만 보여주고 싶다면 제출용 public 레포를 별도로 만드는 방식이 더 안전합니다.
함께 넣으면 좋은 포트폴리오 요소