공부/Digital Twin Bootcamp

TIL_220207_DevOps/Git/Github

Ail_ 2022. 2. 7. 17:47

참고 도서 : IT 운용 체제를 위한 데브옵스

DevOps 탄생 배경

Waterfall

단계별 : 단계를 마치고 다음 단계로

웹 개발의 다양성 증가로 인한 요구사항의 증가로 지금은 잘 안씀

Agile

단계별 진화(프로토타입)

waterfall을 작은 단위로 한다고 생각

수정 등에서 유리

스프린트 Sprint : 반복적인 개발 주기

 

Agile Scrum 방식

 

DevOps

agile에 빠져 있는 운영이 추가됨(운영을 했을 때 발생하는 문제)

개발-배포-운영 등을 자동화 => DevOps 툴 사용(깃, 깃허브, 도커 등)

자동화 툴을 매개체로 개발자-운영자-QA 협업

 

Git

코드 이력 관리 툴

쉽게 말해 commit을 써서 세이브포인트를 만든다.

 

Git bash

git 초기 설정

git config --global user.name <이름>

git config --global user.email <이메일>

git config --list

 

git 레포지토리 초기화

mkdir 레포지토리명

cd 레포지토리명

git init

 

파일 생성

$ echo '샘플' > sample.txt

staging 영역에 모두 등록 / 파일 등록(임시 영역 = 커밋 준비)

$ git add .
$ git add <파일명>

파일 상태 확인

$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   sample.txt

작업 폴더에 하위 폴더 추가

$ mkdir child-dir

하위 폴더에 파일 추가

$ echo 'child-directory' > child-dir/sample.txt

하위 폴더 파일 확인

$ cat child-dir/sample.txt
child-directory

파일 상태 확인

$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   sample.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        child-dir/

staging 영역에 모두 등록

$ git add .

첫번째 commit 하기(= repository에 등록)

$ git commit -m "first commit"
[master (root-commit) f0afcb3] first commit
 2 files changed, 2 insertions(+)
 create mode 100644 child-dir/sample.txt
 create mode 100644 sample.txt

-m : 메세지(자유)

 

단계 정리

작업 폴더 --git add--> staging 영역 --commit--> repository

 

파일 상태 확인 : staging 영역에 아무 파일도 남지 않음

$ git status
On branch master
nothing to commit, working tree clean

commit 이력 확인(log)

$ git log
commit f0afcb3750c9769f6fad2e00ee9dd3446cbf9474 (HEAD -> master)
Author: JJ <youreawsome@gmail.com>
Date:   Mon Feb 7 13:46:55 2022 +0900

    first commit

간략하게 log 확인 : 누가 올렸는지 중요하지 않고 커밋 아이디와 로그만 보고 싶을 때

$ git log --oneline
f0afcb3 (HEAD -> master) first commit

파일 갱신하기

$ echo '파일 갱신!' > sample.txt

파일 변경 차이 확인

git diff

a/sample.txt, b/sample.txt : 변경 전/ 변경 후 구분

$ git diff
warning: LF will be replaced by CRLF in sample.txt.
The file will have its original line endings in your working directory
diff --git a/sample.txt b/sample.txt
index e95cdeb..878d478 100644
--- a/sample.txt
+++ b/sample.txt
@@ -1 +1 @@
-'<BB><F9><C7><C3>'
+파일 갱신!

git add

$ git add .
warning: LF will be replaced by CRLF in sample.txt.
The file will have its original line endings in your working directory

git status

$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   sample.txt

변경 파일 commit 하기

$ git commit -m 'sample.txt 변경'
[master 47bb027] sample.txt 변경
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 이력 확인(맨 위가 최신)

$ git log
commit 47bb027ad47eaab8f34fcfce5727f21a2ee9eb4e (HEAD -> master)
Author: JJ <youreawsome@gmail.com>
Date:   Mon Feb 7 14:21:38 2022 +0900

    sample.txt 변경

commit f0afcb3750c9769f6fad2e00ee9dd3446cbf9474
Author: JJ <youreawsome@gmail.com>
Date:   Mon Feb 7 13:46:55 2022 +0900

    first commit

한줄로 확인

$ git log --oneline
47bb027 (HEAD -> master) sample.txt 변경
f0afcb3 first commit

 

파일 갱신하기(2번째 줄에 내용 추가)

$ echo 'child directory 변경!' >> child-dir/sample.txt

파일 내용 확인

$ cat child-dir/sample.txt
child-directory
child directory 변경!

파일 변경 차이 확인

git diff

$ git diff
warning: LF will be replaced by CRLF in child-dir/sample.txt.
The file will have its original line endings in your working directory
diff --git a/child-dir/sample.txt b/child-dir/sample.txt
index eb33c8d..22c58f4 100644
--- a/child-dir/sample.txt
+++ b/child-dir/sample.txt
@@ -1 +1,2 @@
 child-directory
+child directory 변경!

git add

$ git add .
warning: LF will be replaced by CRLF in child-dir/sample.txt.
The file will have its original line endings in your working directory

git status

$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   child-dir/sample.txt

변경 파일 commit 하기

$ git commit -m 'child dir sample.txt 변경'
[master b2a212f] child dir sample.txt 변경
 1 file changed, 1 insertion(+)

commit 이력 확인(맨 위가 최신)

$ git log
commit b2a212fa5bd0828b3eac18e3ca947b9c374c3d61 (HEAD -> master)
Author: JJ <youreawsome@gmail.com>
Date:   Mon Feb 7 14:26:48 2022 +0900

    child dir sample.txt 변경

commit 47bb027ad47eaab8f34fcfce5727f21a2ee9eb4e
Author: JJ <youreawsome@gmail.com>
Date:   Mon Feb 7 14:21:38 2022 +0900

    sample.txt 변경

commit f0afcb3750c9769f6fad2e00ee9dd3446cbf9474
Author: JJ <youreawsome@gmail.com>
Date:   Mon Feb 7 13:46:55 2022 +0900

    first commit

한줄로 확인

$ git log --oneline
b2a212f (HEAD -> master) child dir sample.txt 변경
47bb027 sample.txt 변경
f0afcb3 first commit

 

staging 되돌리기

staging에 파일 내용 변경하여 올리기

user@LAPTOP-VFKJ34NR MINGW64 ~/sample_repo (master)
$ echo '변경합니다' > sample.txt

user@LAPTOP-VFKJ34NR MINGW64 ~/sample_repo (master)
$ git diff
warning: LF will be replaced by CRLF in sample.txt.
The file will have its original line endings in your working directory
diff --git a/sample.txt b/sample.txt
index 878d478..548b816 100644
--- a/sample.txt
+++ b/sample.txt
@@ -1 +1 @@
-파일 갱신!
+변경합니다

user@LAPTOP-VFKJ34NR MINGW64 ~/sample_repo (master)
$ git add .
warning: LF will be replaced by CRLF in sample.txt.
The file will have its original line endings in your working directory

user@LAPTOP-VFKJ34NR MINGW64 ~/sample_repo (master)
$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   sample.txt

git reset

$ git reset
Unstaged changes after reset:
M       sample.txt

되돌린 결과 확인

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   sample.txt

no changes added to commit (use "git add" and/or "git commit -a")

 

파일 변경점 되돌리기

$ git reset --hard
HEAD is now at b2a212f child dir sample.txt 변경

파일 내용 확인

$ cat sample.txt
파일 갱신!

 

특정 커밋으로 되돌리기

HEAD : 현재 상태 위치

$ git log
commit b2a212fa5bd0828b3eac18e3ca947b9c374c3d61 (HEAD -> master)
Author: JJ <youreawsome@gmail.com>
Date:   Mon Feb 7 14:26:48 2022 +0900

    child dir sample.txt 변경

commit 47bb027ad47eaab8f34fcfce5727f21a2ee9eb4e
Author: JJ <youreawsome@gmail.com>
Date:   Mon Feb 7 14:21:38 2022 +0900

    sample.txt 변경

commit f0afcb3750c9769f6fad2e00ee9dd3446cbf9474
Author: JJ <youreawsome@gmail.com>
Date:   Mon Feb 7 13:46:55 2022 +0900

    first commit

특정 commit id로 되돌리기

$ git reset --hard f0afcb3750c9769f6fad2e00ee9dd3446cbf9474
HEAD is now at f0afcb3 first commit

결과 확인 : 다른 커밋(세이브포인트) 모두 삭제됨

$ git log
commit f0afcb3750c9769f6fad2e00ee9dd3446cbf9474 (HEAD -> master)
Author: JJ <youreawsome@gmail.com>
Date:   Mon Feb 7 13:46:55 2022 +0900

    first commit

 

Github

원격 레포지토리(remote repository)를 제공하는 git-hosting 서비스

clone : 원격 레포지토리를 복사 (= 다운로드)

pull : 현재 브랜치의 내용을 당겨오기(브랜치 : 작업 단위)

fetch : 현재 레포지토리 최신 버전으로 갱신

push : 로컬 레포지토리 업로드

 

 

빈 레포지토리 생성

 

main branch 생성

-M : 해당 branch를 메인으로 사용하겠다

user@LAPTOP-VFKJ34NR MINGW64 ~/practice (master)
$ git branch -M main

user@LAPTOP-VFKJ34NR MINGW64 ~/practice (main)
$

 

원격 레포지토리 추가

$ git remote add origin https://github.com/jay0v0/sample-repo.git

 

파일 업로드 하기 Push

$ git push -u origin main
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 213 bytes | 213.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/jay0v0/sample-repo.git
 * [new branch]      main -> main
Branch 'main' set up to track remote branch 'main' from 'origin'.

결과 확인

 

파일 수정 후 push

최초 push 때 -u 옵션 사용, 따라서 그냥 git push만 해도 됨 설명

user@LAPTOP-VFKJ34NR MINGW64 ~/practice (main)
$ mkdir child

user@LAPTOP-VFKJ34NR MINGW64 ~/practice (main)
$ echo 'dddd' > child/sample.txt

user@LAPTOP-VFKJ34NR MINGW64 ~/practice (main)
$ git add .
warning: LF will be replaced by CRLF in child/sample.txt.
The file will have its original line endings in your working directory

user@LAPTOP-VFKJ34NR MINGW64 ~/practice (main)
$ cat child/sample.txt
dddd

user@LAPTOP-VFKJ34NR MINGW64 ~/practice (main)
$ git status
On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   child/sample.txt


user@LAPTOP-VFKJ34NR MINGW64 ~/practice (main)
$ git commit -m 'second'
[main 77e77cb] second
 1 file changed, 1 insertion(+)
 create mode 100644 child/sample.txt

user@LAPTOP-VFKJ34NR MINGW64 ~/practice (main)
$ git log
commit 77e77cbee23251b59d2a581dd010236051342c72 (HEAD -> main)
Author: JJ <youreawsome@gmail.com>
Date:   Mon Feb 7 15:29:24 2022 +0900

    second

commit a4d6f5b7c29767e36811fcbc9427cae3a4024378 (origin/main)
Author: JJ <youreawsome@gmail.com>
Date:   Mon Feb 7 14:50:50 2022 +0900

    first commit

user@LAPTOP-VFKJ34NR MINGW64 ~/practice (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (4/4), 323 bytes | 323.00 KiB/s, done.
Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/jay0v0/sample-repo.git
   a4d6f5b..77e77cb  main -> main

결과 확인

 

파일 다운로드 하기 Pull

github - readme 파일 생성

git pull

$ git pull
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 704 bytes | 140.00 KiB/s, done.
From https://github.com/jay0v0/sample-repo
   77e77cb..23c9446  main       -> origin/main
Updating 77e77cb..23c9446
Fast-forward
 README.md | 2 ++
 1 file changed, 2 insertions(+)
 create mode 100644 README.md

결과 확인

user@LAPTOP-VFKJ34NR MINGW64 ~/practice (main)
$ ls
README.md  child/  sample.txt

user@LAPTOP-VFKJ34NR MINGW64 ~/practice (main)
$ cat README.md
# sample-repo
샘플

 

파일 복사해오기 clone

파일 삭제

user@LAPTOP-VFKJ34NR MINGW64 ~/practice (main)
$ ls -al
total 22
drwxr-xr-x 1 user 197121  0 Feb  7 15:37 ./
drwxr-xr-x 1 user 197121  0 Feb  7 15:29 ../
drwxr-xr-x 1 user 197121  0 Feb  7 15:37 .git/
-rw-r--r-- 1 user 197121 23 Feb  7 15:37 README.md
drwxr-xr-x 1 user 197121  0 Feb  7 15:24 child/
-rw-r--r-- 1 user 197121  5 Feb  7 14:49 sample.txt

user@LAPTOP-VFKJ34NR MINGW64 ~/practice (main)
$ rm -rf .git

git clone

$ git clone https://github.com/jay0v0/sample-repo.git
Cloning into 'sample-repo'...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 10 (delta 0), reused 7 (delta 0), pack-reused 0
Receiving objects: 100% (10/10), done.

결과 확인

폴더명 지정 가능

$ git clone https://github.com/jay0v0/sample-repo.git my-repo
Cloning into 'my-repo'...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 10 (delta 0), reused 7 (delta 0), pack-reused 0
Receiving objects: 100% (10/10), done.

 

Branch

줄기를 나누는 것

다른 개발자와 협업 시 여러 작업을 동시에 진행하고 싶을 때 사용

 

branch 생성

user@LAPTOP-VFKJ34NR MINGW64 ~/practice/sample-repo (main)
$ git branch develop

user@LAPTOP-VFKJ34NR MINGW64 ~/practice/sample-repo (main)
$ git branch
  develop
* main

-b

생성과 동시에 바로 전환 옵션

$ git checkout -b develop
Switched to a new branch 'develop'

 

branch 전환

user@LAPTOP-VFKJ34NR MINGW64 ~/practice/sample-repo (main)
$ git checkout develop
Switched to branch 'develop'

user@LAPTOP-VFKJ34NR MINGW64 ~/practice/sample-repo (develop)
$

 

branch 삭제

$ git branch -D develop
Deleted branch develop (was 23c9446).

 

develop branch로 sample1.txt 생성

user@LAPTOP-VFKJ34NR MINGW64 ~/practice/sample-repo (develop)
$ echo 'develop branch test' > sample1.txt

user@LAPTOP-VFKJ34NR MINGW64 ~/practice/sample-repo (develop)
$ git add .
warning: LF will be replaced by CRLF in sample1.txt.
The file will have its original line endings in your working directory

user@LAPTOP-VFKJ34NR MINGW64 ~/practice/sample-repo (develop)
$ git status
On branch develop
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   sample1.txt


user@LAPTOP-VFKJ34NR MINGW64 ~/practice/sample-repo (develop)
$ git commit -m "develop branch"
[develop fba9719] develop branch
 1 file changed, 1 insertion(+)
 create mode 100644 sample1.txt

log 확인

user@LAPTOP-VFKJ34NR MINGW64 ~/practice/sample-repo (develop)
$ git log
commit fba9719989fd716f35abd24b93b50a09257ff3fa (HEAD -> develop)
Author: JJ <youreawsome@gmail.com>
Date:   Mon Feb 7 16:08:08 2022 +0900

    develop branch

commit 23c9446782e272e9b65681b01a148f7781cb6482 (origin/main, origin/HEAD, main)
Author: jay0v0 <96156114+jay0v0@users.noreply.github.com>
Date:   Mon Feb 7 15:36:16 2022 +0900

    Create README.md

commit 77e77cbee23251b59d2a581dd010236051342c72
Author: JJ <youreawsome@gmail.com>
Date:   Mon Feb 7 15:29:24 2022 +0900

    second

commit a4d6f5b7c29767e36811fcbc9427cae3a4024378
Author: JJ <youreawsome@gmail.com>
Date:   Mon Feb 7 14:50:50 2022 +0900

    first commit

 

main branch로 전환 / log 확인

HEAD는 branch당 하나씩 존재

user@LAPTOP-VFKJ34NR MINGW64 ~/practice/sample-repo (develop)
$ git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.

user@LAPTOP-VFKJ34NR MINGW64 ~/practice/sample-repo (main)
$ git log
commit 23c9446782e272e9b65681b01a148f7781cb6482 (HEAD -> main, origin/main, origin/HEAD)
Author: jay0v0 <96156114+jay0v0@users.noreply.github.com>
Date:   Mon Feb 7 15:36:16 2022 +0900

    Create README.md

commit 77e77cbee23251b59d2a581dd010236051342c72
Author: JJ <youreawsome@gmail.com>
Date:   Mon Feb 7 15:29:24 2022 +0900

    second

commit a4d6f5b7c29767e36811fcbc9427cae3a4024378
Author: JJ <youreawsome@gmail.com>
Date:   Mon Feb 7 14:50:50 2022 +0900

    first commit

 

branch push

user@LAPTOP-VFKJ34NR MINGW64 ~/practice/sample-repo (main)
$ git checkout -b issue
Switched to a new branch 'issue'

user@LAPTOP-VFKJ34NR MINGW64 ~/practice/sample-repo (issue)
$ git push origin issue
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote:
remote: Create a pull request for 'issue' on GitHub by visiting:
remote:      https://github.com/jay0v0/sample-repo/pull/new/issue
remote:
To https://github.com/jay0v0/sample-repo.git
 * [new branch]      issue -> issue

user@LAPTOP-VFKJ34NR MINGW64 ~/practice/sample-repo (issue)
$ git checkout develop
Switched to branch 'develop'

user@LAPTOP-VFKJ34NR MINGW64 ~/practice/sample-repo (develop)
$ git push origin develop
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 290 bytes | 290.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
remote:
remote: Create a pull request for 'develop' on GitHub by visiting:
remote:      https://github.com/jay0v0/sample-repo/pull/new/develop
remote:
To https://github.com/jay0v0/sample-repo.git
 * [new branch]      develop -> develop
 
 user@LAPTOP-VFKJ34NR MINGW64 ~/practice/sample-repo (develop)
$ git log
commit fba9719989fd716f35abd24b93b50a09257ff3fa (HEAD -> develop, origin/develop)
Author: JJ <youreawsome@gmail.com>
Date:   Mon Feb 7 16:08:08 2022 +0900

    develop branch

commit 23c9446782e272e9b65681b01a148f7781cb6482 (origin/main, origin/issue, origin/HEAD, main, issue)
Author: jay0v0 <96156114+jay0v0@users.noreply.github.com>
Date:   Mon Feb 7 15:36:16 2022 +0900

    Create README.md

commit 77e77cbee23251b59d2a581dd010236051342c72
Author: JJ <youreawsome@gmail.com>
Date:   Mon Feb 7 15:29:24 2022 +0900

    second

commit a4d6f5b7c29767e36811fcbc9427cae3a4024378
Author: JJ <youreawsome@gmail.com>
Date:   Mon Feb 7 14:50:50 2022 +0900

    first commit

결과

 

Network graph 확인하는 법

저 dot이 커밋 하나를 나타낸다

 

예전 commit으로 돌아가기

user@LAPTOP-VFKJ34NR MINGW64 ~/practice/sample-repo (develop)
$ git checkout a4d6
Note: switching to 'a4d6'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at a4d6f5b first commit

user@LAPTOP-VFKJ34NR MINGW64 ~/practice/sample-repo ((a4d6f5b...))
$ ls
sample.txt

 

현재 HEAD로 돌아오기

user@LAPTOP-VFKJ34NR MINGW64 ~/practice/sample-repo ((a4d6f5b...))
$ git checkout develop
Previous HEAD position was a4d6f5b first commit
Switched to branch 'develop'

user@LAPTOP-VFKJ34NR MINGW64 ~/practice/sample-repo (develop)
$ ls
README.md  child/  sample.txt  sample1.txt

따라서 branch는 팀 작업에서 주로 사용한다.

보통 혼자 할 땐 develop branch에서 개발을 모두 다 하고 완성하면 main이랑 합치는 식으로 많이 한다.

 

branch 합치기

New pull request

merge(합치기)

현재 파일은 충돌이 없기 때문에 그대로 merge 된다.

리뷰어 등 각종 옵션 설정 가능
comment도 달 수 있다.

모든 팀원이 확인하고 문제 없을 시 관리자가 Merge pull request 하면 된다.

완료

완료된 Pull requests 확인

Bash에서 확인

user@LAPTOP-VFKJ34NR MINGW64 ~/practice/sample-repo (main)
$ git pull
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (1/1), 617 bytes | 32.00 KiB/s, done.
From https://github.com/jay0v0/sample-repo
   23c9446..7882a01  main       -> origin/main
Updating 23c9446..7882a01
Fast-forward
 sample1.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 sample1.txt

user@LAPTOP-VFKJ34NR MINGW64 ~/practice/sample-repo (main)
$ git log
commit 7882a012b0b079d65913afc30c8a59e6654abf2d (HEAD -> main, origin/main, origin/HEAD)
Merge: 23c9446 fba9719
Author: jay0v0 <96156114+jay0v0@users.noreply.github.com>
Date:   Mon Feb 7 17:21:21 2022 +0900

    Merge pull request #1 from jay0v0/develop

    develop branch

commit fba9719989fd716f35abd24b93b50a09257ff3fa (origin/develop, develop)
Author: JJ <youreawsome@gmail.com>
Date:   Mon Feb 7 16:08:08 2022 +0900

    develop branch

commit 23c9446782e272e9b65681b01a148f7781cb6482 (origin/issue, issue)
Author: jay0v0 <96156114+jay0v0@users.noreply.github.com>
Date:   Mon Feb 7 15:36:16 2022 +0900

    Create README.md

commit 77e77cbee23251b59d2a581dd010236051342c72
Author: JJ <youreawsome@gmail.com>
Date:   Mon Feb 7 15:29:24 2022 +0900

    second

commit a4d6f5b7c29767e36811fcbc9427cae3a4024378
Author: JJ <youreawsome@gmail.com>
Date:   Mon Feb 7 14:50:50 2022 +0900

    first commit

 

 


느낀 점

예전엔 개발이 정말 수많은 노가다의 결정체였을 것 같다...

계속 발전해나가는 속도가 이렇게 빠른 게 프로그래밍의 흥미로운 점 중 하나다.

Git과 Github에 대해 비로소 좀 제대로 이해하게 되었다.

물론 이해와 사용은 또 다르니까 프로젝트 진행하며 열심히 적응해봐야겠다.