사용자 이름 및 비밀번호 인증으로 Git 저장소 복제하는 방법

GitBeginner
지금 연습하기

소개

Git 저장소를 복제하는 것은 개발자에게 필수적인 기술입니다. 개인 저장소 (private repository) 로 작업할 때는 코드에 접근하기 위해 인증이 필요한 경우가 많습니다. 이 랩에서는 사용자 이름과 비밀번호 인증을 사용하여 Git 저장소를 복제하는 과정을 안내합니다. 원격 저장소에 안전하게 접근하기 위한 올바른 구문과 보안 고려 사항을 배우게 됩니다.

Git 및 저장소 복제 이해

인증을 사용하여 저장소를 복제하기 전에 Git 이 무엇인지, 그리고 Git 컨텍스트에서 복제가 무엇을 의미하는지 이해해 봅시다.

Git 이란 무엇인가요?

Git 은 소프트웨어 개발 중에 소스 코드의 변경 사항을 추적하는 데 도움이 되는 분산 버전 관리 시스템 (distributed version control system) 입니다. 여러 개발자가 서로의 변경 사항을 덮어쓰지 않고 동일한 프로젝트에서 작업할 수 있도록 합니다.

몇 가지 주요 Git 개념은 다음과 같습니다.

  • 저장소 (Repository): 프로젝트와 해당 기록이 보관되는 저장 위치
  • 커밋 (Commit): 특정 시점의 프로젝트 스냅샷
  • 브랜치 (Branch): 독립적으로 개발할 수 있는 저장소의 병렬 버전
  • 원격 (Remote): 서버 (예: GitHub, GitLab 또는 Bitbucket) 에 호스팅된 저장소의 버전

Git 복제란 무엇인가요?

Git 저장소를 복제하는 것은 원격 저장소의 복사본을 로컬 머신에 생성하는 것을 의미합니다. 저장소를 복제하면 모든 파일, 브랜치 및 커밋 기록을 다운로드합니다. 이를 통해 로컬에서 프로젝트를 작업하고 나중에 변경 사항을 원격 저장소로 다시 푸시 (push) 할 수 있습니다.

Git 설치 확인

진행하기 전에 Git 이 시스템에 설치되어 있는지 확인해 보겠습니다. 터미널을 열고 다음을 실행합니다.

git --version

다음과 유사한 출력이 표시되어야 합니다.

git version 2.34.1

이는 Git 이 설치되어 사용 준비가 되었음을 확인합니다. 다음 단계에서는 인증을 사용하여 저장소를 복제하기 위한 구문을 살펴보겠습니다.

Git 복제 인증 방법

Git 저장소를 복제할 때 원격 저장소에 접근하기 위해 자신을 인증하는 다양한 방법이 있습니다. 사용자 이름과 비밀번호 인증에 중점을 두고 가장 일반적인 인증 방법을 살펴보겠습니다.

일반적인 인증 방법

Git 은 여러 인증 방법을 지원합니다.

  1. HTTPS (사용자 이름 및 비밀번호): Git 호스팅 계정 자격 증명 사용
  2. SSH 키: 공개 및 개인 키 쌍 사용
  3. 개인 액세스 토큰 (Personal Access Tokens): 비밀번호 대신 생성된 토큰 사용
  4. OAuth: 타사 서비스의 권한 부여 사용

HTTPS 인증 구문

이 랩에서는 사용자 이름과 비밀번호를 사용한 HTTPS 인증에 중점을 둡니다. 사용자 이름 인증을 사용하여 저장소를 복제하는 기본 구문은 다음과 같습니다.

git clone https://username@repository-url.git

그러면 시스템에서 비밀번호를 묻는 메시지가 표시됩니다. URL 에 사용자 이름과 비밀번호를 모두 포함하는 대체 구문은 다음과 같습니다.

git clone https://username:password@repository-url.git

그러나 이 방법은 명령에 비밀번호가 표시되고 셸 기록에 저장될 수 있으므로 덜 안전합니다.

보안 고려 사항

비밀번호 인증을 사용할 때는 다음 보안 사항을 염두에 두십시오.

  • 자격 증명을 다른 사람과 절대 공유하지 마십시오.
  • 공공 장소에서 비밀번호를 입력할 때 주의하십시오.
  • 많은 Git 호스팅 서비스 (GitHub, GitLab) 는 이제 비밀번호 대신 개인 액세스 토큰 사용을 권장합니다.
  • 비밀번호를 반복해서 입력하지 않도록 자격 증명 캐싱 (credential caching) 을 사용하는 것을 고려하십시오.

이제 인증 방법을 이해했으므로 다음 단계에서 저장소를 복제할 준비를 해보겠습니다.

사용자 이름 및 비밀번호로 Git 저장소 복제

이제 기본 사항을 이해했으므로 사용자 이름 및 비밀번호 인증을 사용하여 Git 저장소를 복제하는 실습을 수행해 보겠습니다.

작업 공간 준비

먼저, 저장소를 복제하려는 프로젝트 디렉토리로 이동합니다.

cd ~/project

저장소 복제

이 실습에서는 사용자 이름 labex_user와 비밀번호 labex_password를 사용하여 테스트 저장소를 복제합니다. 저장소 URL 은 https://localhost/git-server/test-repo.git입니다.

저장소를 복제하려면 다음 명령을 입력합니다.

git clone https://labex_user@localhost/git-server/test-repo.git

메시지가 표시되면 비밀번호 labex_password를 입력합니다.

위 명령에 문제가 발생하면 대안으로 결합된 구문을 사용할 수 있습니다 (하지만 실제 사용에서는 덜 안전합니다).

git clone https://labex_user:labex_password@localhost/git-server/test-repo.git

예상 출력

복제 명령을 실행한 후 다음과 유사한 출력이 표시되어야 합니다.

Cloning into 'test-repo'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.

복제 확인

저장소가 성공적으로 복제되었는지 확인하기 위해 새 디렉토리의 내용을 확인해 보겠습니다.

ls -la test-repo

README.md 파일과 .git 디렉토리를 포함하여 저장소 내용이 표시되어야 합니다.

total 16
drwxr-xr-x  3 labex labex 4096 Jul 15 12:34 .
drwxr-xr-x 10 labex labex 4096 Jul 15 12:34 ..
drwxr-xr-x  8 labex labex 4096 Jul 15 12:34 .git
-rw-r--r--  1 labex labex   16 Jul 15 12:34 README.md

이제 저장소를 성공적으로 복제했으므로 해당 내용을 검토하고 작업을 시작할 수 있습니다.

복제된 저장소 탐색 및 작업

이제 저장소를 성공적으로 복제했으므로 이를 탐색하고 작업하는 방법을 알아보겠습니다.

저장소 디렉토리로 이동

먼저, 복제된 저장소로 이동합니다.

cd ~/project/test-repo

저장소 내용 보기

저장소의 내용을 보려면 ls 명령을 사용합니다.

ls -la

README.md 파일과 .git 디렉토리가 표시되어야 합니다.

total 16
drwxr-xr-x  3 labex labex 4096 Jul 15 12:34 .
drwxr-xr-x 10 labex labex 4096 Jul 15 12:34 ..
drwxr-xr-x  8 labex labex 4096 Jul 15 12:34 .git
-rw-r--r--  1 labex labex   16 Jul 15 12:34 README.md

README.md 파일 보기

README.md 파일의 내용을 살펴보겠습니다.

cat README.md

파일에는 다음 내용이 포함되어야 합니다.

## Test Repository

Git 상태 확인

저장소의 상태를 확인하려면 git status 명령을 사용합니다.

git status

출력은 현재 main 브랜치에 있으며 작업 디렉토리가 깨끗함을 나타내야 합니다.

On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

커밋 기록 보기

저장소의 커밋 기록을 보려면 git log 명령을 사용합니다.

git log

초기 커밋이 표시되어야 합니다.

commit abcdef1234567890abcdef1234567890abcdef12 (HEAD -> master, origin/master)
Author: LabEx User <labex@example.com>
Date:   Mon Jul 15 12:34:56 2023 +0000

    Initial commit

저장소 변경

README.md 파일에 간단한 변경을 해보겠습니다.

echo "This is a test repository for learning Git authentication." >> README.md

업데이트된 내용 보기:

cat README.md

업데이트된 파일은 다음과 같아야 합니다.

## Test Repository
This is a test repository for learning Git authentication.

이제 사용자 이름과 비밀번호 인증을 사용하여 Git 저장소를 성공적으로 복제하고, 내용을 탐색하고, 파일에 변경을 했습니다. 실제 시나리오에서는 이러한 변경 사항을 커밋하고 원격 저장소로 푸시하게 되며, 이 또한 인증이 필요합니다.

요약

이 랩에서는 다음을 배웠습니다.

  • Git 의 기본 사항과 저장소 복제가 의미하는 바
  • Git 의 다양한 인증 방법, 특히 사용자 이름 및 비밀번호 인증에 중점
  • 올바른 구문을 사용하여 사용자 이름과 비밀번호로 Git 저장소를 복제하는 방법
  • 비밀번호 인증 사용 시 보안 고려 사항
  • 복제된 저장소를 탐색하고 변경하는 방법

이러한 기술은 협업 환경에서 작업하는 개발자에게 필수적입니다. 사용자 이름 및 비밀번호 인증은 일반적이지만, 많은 Git 호스팅 서비스는 개인 액세스 토큰 (personal access token) 또는 SSH 키와 같은 보다 안전한 인증 방법으로 전환하고 있습니다. Git 인증의 기본 사항을 이해하면 모든 Git 기반 워크플로우 (workflow) 에서 효과적으로 작업하는 데 도움이 됩니다.