본문 바로가기
프로그래머로의 여정

GitHub 저장소 내비게이션 바

by nunaaa 2025. 5. 27.

 

 

GitHub 저장소 내비게이션 바 설명

GitHub 저장소 페이지 상단에 있는 이 탭들은 프로젝트 관리, 코드 협업, 보안 등에 필요한 다양한 기능들을 제공합니다. 각 탭에 대해 자세히 설명해 드리겠습니다.


1. < > Code (코드)

  • 설명: 저장소의 모든 코드 파일과 디렉토리를 탐색하고 관리하는 주된 탭입니다. README 파일, 라이선스, .gitignore 등도 여기서 확인할 수 있습니다. 기본 브랜치(예: main 또는 master)의 내용이 기본으로 표시됩니다.
  • 주요 기능:
    • 파일 탐색: 디렉토리와 파일을 클릭하여 내용을 확인합니다.
    • 커밋 내역: 각 파일/디렉토리 옆의 커밋 ID를 클릭하여 해당 파일/디렉토리의 변경 내역을 확인할 수 있습니다.
    • 브랜치 변경: 드롭다운 메뉴를 통해 다른 브랜치로 전환하여 해당 브랜치의 코드를 볼 수 있습니다.
    • 파일 업로드/생성: 웹 인터페이스를 통해 파일을 직접 업로드하거나 새로운 파일을 생성할 수 있습니다.
    • 코드 다운로드: 저장소의 코드를 ZIP 파일로 다운로드하거나, Git 명령어를 사용하여 클론(clone)할 수 있는 URL을 제공합니다.
  • 예시: erkApp 저장소의 모든 소스 코드 파일(예: .js, .css, .html 파일)과 프로젝트 구조를 볼 수 있습니다.

2. ! Issues (이슈)

  • 설명: 프로젝트와 관련된 버그, 기능 요청, 개선 사항 등 추적해야 할 모든 작업을 관리하는 곳입니다. 개발자들이 문제점을 공유하고 해결 과정을 논의하는 데 사용됩니다.
  • 주요 기능:
    • 새 이슈 생성: 버그나 기능 요청을 기록합니다.
    • 이슈 필터링/검색: 특정 키워드, 라벨, 담당자 등으로 이슈를 찾습니다.
    • 이슈 댓글: 이슈에 대한 토론을 진행하고 코드 스니펫, 이미지 등을 첨부할 수 있습니다.
    • 라벨/마일스톤/담당자 할당: 이슈에 라벨을 붙여 분류하고, 마일스톤(특정 목표)에 할당하며, 특정 개발자에게 담당자로 지정할 수 있습니다.
  • 예시: "로그인 버튼이 작동하지 않음"이라는 버그 이슈를 생성하고, 담당자를 지정하며, 해결될 때까지 진행 상황을 추적할 수 있습니다.

3. Pull requests (풀 리퀘스트)

  • 설명: 협업의 핵심적인 부분으로, 개발자가 자신의 변경 사항(커밋)을 프로젝트의 메인 브랜치(예: main)에 병합(merge)하기 위해 제안하는 기능입니다. 다른 팀원들이 코드를 검토하고 피드백을 제공할 수 있습니다.
  • 주요 기능:
    • 새 풀 리퀘스트 생성: 로컬 브랜치의 변경 사항을 원격 브랜치로 병합하기 위해 제안합니다.
    • 코드 리뷰: 팀원들이 제안된 코드 변경 사항을 검토하고, 댓글을 달고, 변경을 요청하거나 승인할 수 있습니다.
    • CI/CD 통합: GitHub Actions와 같은 CI/CD 도구와 연동하여 자동으로 테스트를 실행하고 코드 품질을 검사할 수 있습니다.
    • 병합: 모든 리뷰가 완료되고 테스트를 통과하면, 변경 사항을 대상 브랜치에 병합합니다.
  • 예시: 새로운 기능 add-user-profile 브랜치에서 작업한 내용을 main 브랜치에 추가하기 위해 풀 리퀘스트를 생성하고, 팀원들이 코드를 검토하게 할 수 있습니다.

4. Actions (액션)

  • 설명: GitHub Actions는 저장소에서 직접 소프트웨어 개발 워크플로우를 자동화할 수 있는 CI/CD(지속적 통합/지속적 배포) 플랫폼입니다. 빌드, 테스트, 배포 등 다양한 작업을 자동화할 수 있습니다.
  • 주요 기능:
    • 워크플로우 정의: YAML 파일을 사용하여 자동화할 작업을 정의합니다.
    • 자동화된 테스트: 코드를 푸시하거나 풀 리퀘스트가 열릴 때 자동으로 테스트를 실행하여 버그를 조기에 발견합니다.
    • 자동 배포: 코드가 특정 브랜치에 병합될 때 자동으로 애플리케이션을 배포할 수 있습니다.
    • 코드 품질 검사: 린트(lint) 검사나 보안 스캔을 자동화하여 코드 품질을 유지합니다.
  • 예시: 코드를 main 브랜치에 푸시할 때마다 자동으로 애플리케이션을 빌드하고, 단위 테스트를 실행하고, 웹 서버에 배포하는 워크플로우를 설정할 수 있습니다.

5. Projects (프로젝트)

  • 설명: GitHub Projects는 칸반 보드나 스프레드시트 형태로 이슈, 풀 리퀘스트, 기타 노트를 시각적으로 정리하고 추적할 수 있는 도구입니다. 프로젝트 진행 상황을 한눈에 파악하고 팀의 작업을 관리하는 데 유용합니다.
  • 주요 기능:
    • 칸반 보드: "To Do", "In Progress", "Done"과 같은 열을 만들어 작업의 진행 상황을 시각적으로 추적합니다.
    • 스프레드시트 뷰: 이슈와 풀 리퀘스트를 표 형태로 보고 정렬, 필터링, 그룹화할 수 있습니다.
    • 자동화: 특정 조건에 따라 이슈나 풀 리퀘스트를 자동으로 이동시키거나 상태를 변경할 수 있습니다.
  • 예시: 다음 스프린트의 모든 기능 개발 작업을 Projects 보드에 추가하고, 각 작업의 진행 상황을 "To Do"에서 "In Progress"를 거쳐 "Done"으로 이동시키면서 추적할 수 있습니다.

6. Wiki (위키)

  • 설명: 저장소와 관련된 문서, 지식 베이스, 사용 설명서 등을 작성하고 관리하는 곳입니다. 프로젝트에 대한 장기적인 정보나 자주 업데이트되지 않는 자료를 저장하기에 적합합니다.
  • 주요 기능:
    • 마크다운 기반 문서 작성: Git을 사용하여 위키 페이지를 버전 관리하고 편집할 수 있습니다.
    • 쉬운 문서 공유: 프로젝트 멤버들이 필요한 정보를 쉽게 찾고 공유할 수 있습니다.
    • 튜토리얼 및 가이드: 프로젝트 설정 방법, 새로운 기능 사용법 등에 대한 가이드를 제공할 수 있습니다.
  • 예시: erkApp 프로젝트의 개발 환경 설정 방법, API 사용법, 기여 가이드라인 등을 Wiki에 작성하여 팀원들이 참고할 수 있도록 할 수 있습니다.

7. Security (보안)

  • 설명: 저장소의 코드와 의존성(dependency)에 대한 보안 취약점을 식별하고 관리하는 기능을 제공합니다.
  • 주요 기능:
    • Dependabot alerts: 사용 중인 라이브러리나 프레임워크에 알려진 보안 취약점이 있을 경우 알림을 제공합니다.
    • Code scanning alerts: 코드 내에서 잠재적인 보안 취약점이나 버그를 스캔하고 보고합니다.
    • Secret scanning alerts: 실수로 커밋된 API 키나 비밀번호 같은 민감한 정보가 있는지 스캔하고 알림을 보냅니다.
    • Security policy: 저장소에 대한 보안 정책을 정의하고 표시합니다.
  • 예시: 프로젝트에 사용된 axios 라이브러리에 보안 취약점이 발견되면 Dependabot이 알림을 보내고, 해당 취약점을 해결할 수 있는 PR을 자동으로 생성해 줄 수 있습니다.

8. Insights (인사이트)

  • 설명: 저장소의 활동, 커밋 내역, 풀 리퀘스트 통계, 참여자 현황 등 다양한 분석 데이터를 제공하여 프로젝트의 상태와 개발 동향을 파악하는 데 도움을 줍니다.
  • 주요 기능:
    • Contributors: 프로젝트에 기여한 사람들의 목록과 기여도를 보여줍니다.
    • Community: 프로젝트 커뮤니티의 건강 상태와 성숙도를 측정하는 지표를 제공합니다.
    • Traffic: 저장소의 방문자 수와 클론 수를 보여줍니다.
    • Forks: 저장소가 포크된 횟수와 포크된 저장소를 보여줍니다.
  • 예시: 지난 한 달 동안 가장 많이 기여한 개발자가 누구인지, 프로젝트의 코드가 얼마나 자주 업데이트되었는지, 방문자가 얼마나 되는지 등을 확인할 수 있습니다.

9. Settings (설정)

  • 설명: 저장소의 이름 변경, 권한 관리, 브랜치 보호 규칙 설정, 웹훅 설정 등 저장소 자체의 모든 관리와 구성을 담당하는 탭입니다. 이 탭은 저장소의 관리자 권한이 있는 사용자만 접근할 수 있습니다.
  • 주요 기능:
    • General (일반): 저장소 이름, 설명, 토픽, 기능 활성화/비활성화 등을 설정합니다.
    • Collaborators and teams (협업자 및 팀): 다른 GitHub 사용자나 팀에게 저장소 접근 권한을 부여하거나 제거합니다.
    • Branches (브랜치): 특정 브랜치(예: main)에 푸시 보호 규칙을 설정하여 강제 푸시를 방지하거나 코드 리뷰를 필수로 만들 수 있습니다.
    • Webhooks (웹훅): 특정 이벤트(예: 푸시, 풀 리퀘스트)가 발생했을 때 외부 서비스에 알림을 보내도록 설정합니다.
    • Pages (페이지): GitHub Pages를 통해 저장소의 정적 웹사이트를 호스팅합니다.
    • Secrets and variables (비밀 및 변수): GitHub Actions 워크플로우에서 사용할 민감한 정보(API 키 등)를 안전하게 저장합니다.
  • 예시: nao 계정에 erkApp 저장소에 대한 푸시 권한을 부여하려면, nun 계정으로 로그인하여 이 Settings 탭의 Collaborators and teams 섹션에서 naom를 추가하고 쓰기 권한을 부여해야 합니다.