Skip to content

Commit

Permalink
Rewrite install and setting chapters (#14)
Browse files Browse the repository at this point in the history
* Rewrite install and setting chapters

* Rename and remove unused images
  • Loading branch information
cseteram authored Dec 18, 2022
1 parent 08190d5 commit a50ddb9
Show file tree
Hide file tree
Showing 36 changed files with 172 additions and 156 deletions.
11 changes: 6 additions & 5 deletions src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@

[Introduction](README.md)

# Install and Setting
# Background and Setting

- [설치](install/README.md)
- [패키지 관리자를 사용하여 설치](install/package-manager.md)
- [바이너리 파일을 받아 설치](install/binary.md)
- [배경]()
- [버전 관리 시스템이란?]()
- [Git의 기초]()
- [세팅](setting/README.md)
- [터미널 세팅](setting/terminal.md)
- [Git 설치](setting/install-git.md)
- [계정 아이덴티티 설정](setting/identity.md)
- [SSH 키 생성 및 GitHub에 등록](setting/ssh.md)

Expand Down Expand Up @@ -40,4 +41,4 @@
- [Git 사용하기](practice/use-git.md)
- [풀 리퀘스트(PR) 날리기](practice/create-pr.md)
- [풀 리퀘스트(PR) 리뷰 및 승인하기](practice/review-pr.md)
- [마무리](practice/end.md)
- [마무리](practice/end.md)
Empty file added src/background/README.md
Empty file.
Empty file added src/background/about-git.md
Empty file.
Empty file.
Binary file removed src/images/GitBashHere.PNG
Binary file not shown.
Binary file removed src/images/SSH1.PNG
Binary file not shown.
Binary file removed src/images/SSH2.PNG
Binary file not shown.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
Binary file removed src/images/설치1.PNG
Binary file not shown.
Binary file removed src/images/설치10-1.PNG
Binary file not shown.
Binary file removed src/images/설치10.PNG
Binary file not shown.
Binary file removed src/images/설치11.PNG
Binary file not shown.
Binary file removed src/images/설치12.PNG
Binary file not shown.
Binary file removed src/images/설치13.PNG
Binary file not shown.
Binary file removed src/images/설치2-1.PNG
Binary file not shown.
Binary file removed src/images/설치2.PNG
Binary file not shown.
Binary file removed src/images/설치3.PNG
Binary file not shown.
Binary file removed src/images/설치4.PNG
Binary file not shown.
Binary file removed src/images/설치5.PNG
Binary file not shown.
Binary file removed src/images/설치6.PNG
Binary file not shown.
Binary file removed src/images/설치7.PNG
Binary file not shown.
Binary file removed src/images/설치8.PNG
Binary file not shown.
Binary file removed src/images/설치9.PNG
Binary file not shown.
15 changes: 0 additions & 15 deletions src/install/README.md

This file was deleted.

36 changes: 0 additions & 36 deletions src/install/binary.md

This file was deleted.

25 changes: 0 additions & 25 deletions src/install/package-manager.md

This file was deleted.

10 changes: 2 additions & 8 deletions src/setting/README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,4 @@
# 세팅

Git을 설치하였다고 바로 Git을 사용할 수는 없다. 실제 Git을 사용하려면 몇 가지 세팅을 더 해줘야 한다.
명령어를 입력하기 위하여 터미널을 세팅 및 실행하여야 하며, Git 자체의 최초 설정도 진행하여야 한다.
그리고 GitHub을 이용하기 위한 인증 설정 역시 필요하다.


* [터미널 세팅](./terminal.md)
* [계정 아이덴티티 설정](./identity.md)
* [SSH 키 생성 및 GitHub에 등록](./ssh.md)
이 챕터에서는 Git을 사용하는데 필요한 작업에 대하여 알아본다. 우선 명령어를 입력할 수 있도록 터미널을 세팅하고 실행하는
방법에 대해 알아본다. 그리고 Git을 사용하기 위하여 설치 및 최초 설정을 진행한다. 마지막으로 GitHub을 이용하기 위한 인증 설정에 대해 설명한다.
55 changes: 39 additions & 16 deletions src/setting/identity.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,56 @@
# 계정 아이덴티티 설정
Git을 설치한터미널을 세팅하였으면 이제 Git 명령어를 칠 준비가 된 것이다.
하지만 Git을 사용하려면 몇 가지 환경 설정을 더 할 필요가 있다.
# Git 설정
터미널을 세팅한Git을 설치하였으면 이제 Git 명령어를 칠 준비가 된 것이다.
하지만 실제로 Git을 사용하려면 사용자 정보나 몇 가지 환경 설정을 더 할 필요가 있다.

`git config` 로 설정 내용을 확인하고 변경할 수 있는데, 이는 다음 두 설정 파일에서 값을 읽어 가져온다.
기본적으로 Git의 설정은 다음 두 파일에서 값을 읽고 수정하여 진행할 수 있다.

* 현재 사용자에게 적용되는 설정인 `~/.gitconfig`
* 현재 작업 중인 프로젝트에만 적용되는 설정인 `.git/config`
* 현재 디렉토리에만 적용되는 설정인 `.git/config`

설정 파일은 `.git/config` 파일이 `~.gitconfig` 파일보다 우선시 된다.

## 사용자 정보
Git을 설치한 후 가장 먼저 할 일은 사용자 이름과 이메일 주소를 설정하는 것이다.
## Git 설정하기

앞에서 언급한 파일을 수정하여도 무방하지만, 여기서는 `git config` 명령어를 사용하여 설정을 진행한다.
터미널을 실행한 후 다음 과정을 진행한다.

터미널을 실행한 후, 다음을 입력한다.
`[your_name]``[you@example.com]` 부분에 자신의 이름과 이메일을 적으면 된다.
### 사용자 정보

Git을 설치한 후 가장 먼저 할 일은 사용자 이름과 이메일 주소를 설정하는 것이다.
다음과 같이 입력하여 사용자의 정보를 설정한다. `[your_name]``[you@example.com]` 부분에 자신의 이름과 이메일을 적으면 된다.

```console
$ git config --global user.name "[your_name]"
$ git config --global user.email "[you@example.com]"
```
git config --global user.name "[your_name]"
git config --global user.email "[you@example.com]"

> `--global` 옵션은 현재 사용자의 모든 리포지토리에 같은 아이덴티티를 적용하겠다는 의미이다.
> 만약 작업 중인 리포지토리에만 이 아이덴티티를 적용하고 싶다면 `--global` 대신 `--local` 옵션을 적어 실행한다.
### 기본 브랜치 이름

Git은 원래 기본 브랜치 이름으로 `master`라는 이름을 사용하였으나, 현재의 Git 생태계는 `main`이라는 이름을 사용하는 것을
권장한다. 따라서 다음과 같이 기본 브랜치 이름을 `main`으로 지정한다.

```console
$ git config --global init.defaultBranch main
```

`--global` 옵션은 현재 사용자의 모든 레포지토리에 같은 아이덴티티를 적용하겠다는 의미이다.
만약 작업 중인 프로젝트에만 이 아이덴티티를 적용하고 싶다면 `--global` 대신 `--local` 옵션을 적어 실행한다.
### Git Pull 기본 동작 변경

## 설정 확인
`git config --list` 명령을 실행하면 설정한 모든 것이 보여진다.
설치법이나 세팅에 따라 다음 예시보다 추가적인 항목이 더 있을 수 있다.
Git에서는 원격에서 업데이트가 된 데이터를 로컬에 반영할 때 `git pull` 명령어를 사용한다. 하지만 이 명령어의 기본 동작은
Pull의 동작을 정확히 이해하지 못한 채 사용해서는 안된다. 정석은 `ff-only` 모드를 사용하는 것이지만, 여기서는 편의상
`rebase` 모드를 사용한다.

```console
$ git config --global pull.rebase true
```

## 설정 확인

`git config --list` 명령을 실행하면 설정한 모든 것이 보여진다. 이는 설치법이나 세팅에 따라 다음 예시보다 추가적인 항목이 더 있을 수 있다.

```console
$ git config --list
user.email=[REDACTED]
user.name=[REDACTED]
Expand Down
53 changes: 53 additions & 0 deletions src/setting/install-git.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# 설치

Git을 사용하려면 우선 설치를 하여야 한다. 이는 다음과 같이 크게 3가지 방법으로 설치할 수 있다.

* 패키지 관리자를 사용하여 설치
* 별도의 바이너리 인스톨러를 받아 설치
* 직접 소스코드를 내려받아서 컴파일

패키지 관리자를 사용하여 설치하는 것이 가장 간편하고 보편적인 방법이다. 따라서 여기에서는 이 방법을 사용하여 설명을
진행한다. 나머지 두 방법의 경우 여기서 다루지 않으니 필요한 경우 직접 알아볼 것을 추천한다.

## Windows
윈도우는 Windows 10 버전 1709부터 공식 패키지 관리자인 `winget` 을 지원한다.

```console
$ winget install -e --id Git.Git
```

## Linux
각 리눅스 배포판에서 제공하는 패키지 관리자를 사용하면 된다. 다음은 그 예시이다.

### Debian/Ubuntu

```console
$ apt install git
```

### Arch Linux

```console
$ pacman -S git
```

### Nix/NixOS

```console
$ nix-env -i git
```

### Alpine

```console
$ apk add git
```

## macOS

macOS의 경우 기본적으로 개발 환경 구성을 위해 Command Line Tools for Xcode를 설치하여야 하는데, 이 때 Git이 자동으로
설치가 된다. 이는 다음과 같이 입력하여 설치할 수 있다. 이 과정은 macOS 버전을 업데이트 시 다시 진행할 필요가 있다.

```console
$ xcode-select --install
```
89 changes: 57 additions & 32 deletions src/setting/ssh.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# SSH 키 생성 및 GitHub에 등록
GitHub을 이용하려면 적절한 방법으로 GitHub과 인증 과정을 거쳐야 한다.

여기서는 SSH 키를 생성하여 GitHub에 등록하는 과정을 설명한다.
더 자세한 매뉴얼은 [여기](https://docs.github.com/en/authentication/connecting-to-github-with-ssh)에서 확인 가능하다.
GitHub을 이용하려면 적절한 방법으로 GitHub과 인증 과정을 거쳐야 한다. 여기서는 SSH 키를 생성하여 GitHub에 등록하는 과정을 설명한다.
더 자세한 매뉴얼은 [GitHub 공식 문서][connecting-github-by-using-ssh]를 참고하라.

## SSH 키 생성

우선 할 일은 기존에 만든 SSH 키가 있는지 확인하는 작업이다.

터미널을 열고, `ls ~/.ssh` 를 입력한 후 `id_ed25519` 또는 `id_rsa` 가 있는지 확인한다.
Expand All @@ -15,79 +15,104 @@ GitHub을 이용하려면 적절한 방법으로 GitHub과 인증 과정을 거
1. 다음을 입력하여 새로운 키를 생성한다.
첫번째 줄은 Ed25519 알고리즘을, 두번째 줄은 RSA 알고리즘을 이용하는 SSH 키를 생성하는 방법이다.
두 가지 방법 중 하나만 수행하면 되며, Ed25519 방식을 권장한다.
```
ssh-keygen -t ed25519 -C "[your_email@example.com]"
ssh-keygen -t rsa -b 4096 -C "[your_email@example.com]"
```console
$ ssh-keygen -t ed25519 -C "[your_email@example.com]"
$ ssh-keygen -t rsa -b 4096 -C "[your_email@example.com]"
```

2. 키 생성을 시도하면 먼저 어느 위치에 저장할 것인지 물어보는데,
enter 키를 입력하면 기본값으로 설정되어 넘어간다.
```
```console
> Generating public/private algorithm key pair.
> Enter file in which to save the key (/path/to/home/.ssh/algorithm):
```

3. 다음은 비밀번호(passphrase)를 입력하는 과정이다.
그냥 enter 키를 입력하여 비밀번호 없이 사용 가능하다. 하지만 GitHub 공식 문서에서는 **비밀번호를 설정하는 것을 권장**한다.
```
3. 다음은 비밀번호(passphrase)를 입력하는 과정이다. 원하는 비밀번호를 입력한 후 enter 키를 입력하여 설정 가능하다.
만약 비밀번호 없이 사용하고 싶은 경우 빈 칸으로 넘어가면 된다.
```console
> Enter passphrase (empty for no passphrase):
```

4. 한번 더 비밀번호를 입력한다. 같은 비밀번호를 입력하되, 이전에 빈 비밀번호로 넘어갔다면 또 enter 키를 누르면 된다.
```
```console
> Enter same passphrase again:
```

5. 이제 다음 사진처럼 출력되면서 `~/.ssh/` 폴더 안에 SSH 키가 생성되었다.
Ed25519 방식의 경우 `id_ed25519``id_ed25519.pub` 파일이 생성된다. 만약 RSA라면 `id_rsa`, `id_rsa.pub` 파일이 생성된다.

![SSH2](../images/SSH2.PNG)
5. 이제 다음과 같이 유사한 출력이 나오면 SSH 키가 생성이 된 것이다.
생성한 키는 기본적으로 `~/.ssh/` 폴더 안에 생성되며, Ed25519 방식의 경우 `id_ed25519``id_ed25519.pub` 파일이 생성된다.
만약 RSA라면 `id_rsa`, `id_rsa.pub` 파일이 생성된다.
```console
Your identification has been saved in /home/user/.ssh/id_ed25519
Your public key has been saved in /home/user/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:ST4YSAYHqCufkOFQPmAy9snp96U+AsUu5wh+BulN/Ak your_email@example.com
The key's randomart image is:
+--[ED25519 256]--+
| .oo+ |
|=o.+ . |
|==o = . . |
|+ o= o = . |
|o++.o . S |
|== E + o |
|+o=.X o o |
| oo= = + |
| o o.. |
+----[SHA256]-----+
```

참고로 `.pub` 확장자가 붙은 파일은 public key, 그렇지 않은 파일은 private key라고 부른다.
public key는 다른 사람들에게 공개하는 키지만, private key는 **절대 다른 사람에게 공개되어서는 안 된다.**
이는 패스워드를 다른 사람에게 알려주는 것과 동일한 행동이다. 절대 유출되지 않도록 하자.
> 참고로 `.pub` 확장자가 붙은 파일은 public key, 그렇지 않은 파일은 private key라고 부른다.
> public key는 다른 사람들에게 공개하는 키지만, private key는 **절대 다른 사람에게 공개되어서는 안 된다.**
> 이는 패스워드를 다른 사람에게 알려주는 것과 동일한 행동이다. 절대 유출되지 않도록 하자.
## GitHub에 SSH 키 등록

이제 앞에서 생성한 SSH 키의 public key를 GitHub에 등록하면 된다.

1. 먼저 public key를 출력한 후 내용물을 복사한다.
Windows에서는 `cat ~/.ssh/id_ed25519.pub | clip.exe`,
macOS 에서는 `cat ~/.ssh/id_ed25519.pub | pbcopy` 를 입력하여 복사 가능하다.

2. [GitHub]에 접속한 후 #을 한다.
2. [GitHub][github]에 접속한 후 #을 한다. 만약 계정이 없다면 계정을 만든 후 진행한다.

3. 아래 사진처럼 오른쪽에 있는 자신의 초상화를 클릭하고 "Settings"를 클릭한다.
![SSH3](../images/SSH3.PNG)
![github-ssh-configure-0](../images/github-ssh-configure-0.png)

4. 아래 사진처럼 "SSH and GPG keys" 메뉴로 들어간다.
그리고 오른쪽 위에 있는 초록색 "New SSH key" 버튼을 클릭한다.
![SSH4](../images/SSH4.PNG)
![github-ssh-configure-1](../images/github-ssh-configure-1.png)

5. 아래 사진처럼 "Title"에는 자신이 알아볼 수 있도록 제목을 넣고, "Key"에는 위에서 복사한 public key의 내용물을 붙여넣는다.
필자는 개인적으로 "Title"에 컴퓨터 종류를 적는다.
![SSH5](../images/SSH5.PNG)
Title을 채우기 어렵다면 지금 등록하는 컴퓨터의 정보를 입력하자.
![github-ssh-configure-2](../images/github-ssh-configure-2.png)

6. 마지막으로 아래에 있는 초록색 "Add SSH key" 버튼을 클릭한다.

위 과정을 마친 후에는 이제 생성한 SSH 키를 이용하여 GitHub 접근이 가능하다!

## SSH 테스트

실제로 SSH 키가 잘 등록되었는 지 확인하고 싶다면 다음을 수행한다.

1. 터미널을 열고 다음을 입력한다.
```
ssh -T git@github.com
```console
$ ssh -T git@github.com
```

2. `ssh`를 통해 처음으로 GitHub에 접속한다면 다음과 같은 경고 메시지가 뜰 것이다.
[GitHub의 public key fingerprint]랑 일치하는 지 확인한 후, 맞다면 `yes`를 입력한다.
![SSH1](../images/SSH1.PNG)
[GitHub의 public key fingerprint][github-public-key-fingerprint]랑 일치하는 지 확인한 후, 맞다면 `yes`를 입력한다.
```console
The authenticity of host 'github.com (20.200.245.247)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])?
```

3. 특별한 에러 없이 다음과 같은 메시지가 뜬다면 SSH 키 등록이 잘 완료된 것이다.
```
> Hi username! You've successfully authenticated, but GitHub does not
> provide shell access.
```console
Hi username! You've successfully authenticated, but GitHub does not
provide shell access.
```

[GitHub]: https://github.com
[GitHub의 public key fingerprint]: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/githubs-ssh-key-fingerprints
[connecting-github-by-using-ssh]: https://docs.github.com/en/authentication/connecting-to-github-with-ssh
[github]: https://github.com
[github-public-key-fingerprint]: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/githubs-ssh-key-fingerprints
Loading

0 comments on commit a50ddb9

Please # to comment.