2021/01/16 - [분류 전체보기] - Do it! 공부단
이지퍼블리싱 출판사의 'Do it! 자바 프로그래밍 입문' 책으로 첫 Do it! 공부단을 신청한 후,
1, 2, 3회차의 스터디 노트를 작성하고 선물로 'Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문' 책을 받았습니다 ㅎㅎ
프로그래밍 공부를 시작하기 전부터 '깃허브를 꼭 이용해야지!' 하고 마음먹었지만
막상 해보려고 하니까 너무 어렵더라구요 ㅠㅠ 뭐가 뭔지.... 도통 알 수가 있어야지요..
그래서 첫 Do it 공부단을 완주하게 된다면 깃허브 책을 신청해야겠다고 마음먹었죠!
실제로 자바 프로그래밍 입문 책 완주를 한 후 깃허브 책을 신청했고,
이렇게 받은 책으로는 당연히 Do it! 공부단 신청이 안될 줄 알았어요. 그런데.. 오잉...?
수료 기념으로 받은 책으로도 Do it! 공부단 신청이 가능하다고 해요!!!
이런 좋은 기회를 놓칠 수는 없죠! 그래서 다시 공부단을 신청했답니다 ㅎㅎ
이번에도 3회차까지 스터디 노트를 작성하기로 했어요ㅎㅎ
회차는 3회차지만 3일만 공부해서 스터디 노트를 작성하는 게 아니고,
학습 분량을 1/3씩 쪼개어 일주일씩 공부한 후 1회차를 올리고 하는 식으로 할거에요!
이번에도 완주를 하고 ! 다음 책을 받아 공부하는 행복한 상상을 해봅니다 ㅎㅎ
아니 근데 이렇게 책을 주시면.. 남는 게 있나요?
저같은 독자들의 입장에서는 Do it! 공부단이 엄청난 동기부여가 됨과 동시에
계속 공부를 할 수 있는 교재를 제공해 주는 거잖아요....!
공부단 신청은 월 3회로 제한된다. 이것 외에는 다른 제약도 없는 것 같구...
일단! 감사한 마음으로 공부를 시작해 볼게요!
깃과 깃허브는 무엇일까?
머리말
다루는 소스와 파일이 많아지수록 무엇을 작성하고 수정했는지 기록하고, 그 기록을 관리하는 일이 점점 중요
> 이때 필요한 것이 바로 깃(Git)과 깃허브(GitHub)!
개발 초보 때부터 깃을 쓰는 습관을 들이라고 말하지만, 사용법이 복잡해 계속 미루게 된다.
깃과 깃허브의 핵심 개념, 어떻게 작동하는지를 알려준다.
처음부터 끝까지 예제를 통한 실습으로 진행 > 시습은 터미널을 사용
터미널 : 깃을 사용하는 가장 기본적인 방법이자 현업에서 깃을 능숙하게 다루는 실무자들도 애용하는 방법
추천 독자
공부하며 만든 파일을 체계적으로 관리, 공부한 내용을 기록하기 편하다
깃허브에 저장된 내용은 포트폴리오로도 활용 가능
수많은 파일의 변경 사항을 파악해야 하는 사람이라면 누구나
텍스트, 이미지, 소스 코드 등의 문서에 빠져 허우적대고 있다
많은 회사에서 깃과 깃허브를 활용하며 업무를 진행
학습목표
1. 깃과 깃허브가 무엇인지 이해하고 깃 실습 환경 구성
2. 깃으로 문서의 버전을 관리하는 방법 알아보기
01 깃 시작하기
하나의 프로그램을 개발하기 위해서는 소스 코드를 수십, 수백 번 수정해야 하는데, 수정한 소르를 관리하기 위해 필요한 시스템이 바로 깃
01-1 지옥에서 온 관리자, 깃
리눅스뿐만 아니라 수많은 소프트웨어의 소스 코드가 깃을 통해 관리되고 있다
깃이 제공하는 핵심 기능
1. 버전 관리(Version Control)
- 문서를 수정할 때마다 언제 수정했는지, 어떤 것을 변경했는지 편하고 구체적으로 기록하기 위한 버전 관리 시스템
2. 백업(Backup)
- 내 컴퓨터는 언제 고장 날지 모른다 > 언젠가는 자료가 유실될 것이다 > 반드시 백업을 해야 한다
- 백업 : 현재 컴퓨터에 있는 자료를 다른 컴퓨터에 복제하는 것
ex) 외장 하드 디스크, USB, 드롭박스, 구글드라이브, 깃허브
3. 협업(Collaboration)
- 깃을 사용해 팀원들이 파일을 편하게 주고받으면서 일할 수 있고, 누가 어느 부분을 어떻게 수정했는지 기록에 남아 오류가 생겼을 때 파악아기 쉽다
- 협업 과정에서 일어날 수 있는 여러 문제를 중간에서 정리해 주는 기능(두 사람이 같은 파일을 수정하는 경우, 두 사람이 같은 파일의 같은 행을 수정할 경우 등)
>> 이 세 가지 기능은 순서대로 배워야 한다
깃 프로그램의 종류
- 깃 프로그램 : 깃을 좀 더 편리하게 사용할 수 있도록 해주, 깃 클라이언트 프로그램이라고도 한다
1. 깃허브 데스크톱(GitHub Desktop) : 깃허브에서 제공하는 프로그램, 복잡한 깃 사용법을 GUI로 구현
- 장점 : 사용이 쉬워 누구나 쉽게 배울 수 있다
- 단점 : 자주 쓰는 기본적인 기능 위주 > 고급 사용자가 되면 아쉬울 수 있다
2. 토터스깃(TortoiseGit) : 윈도우 전용 > 윈도우 탐색기의 빠른 메뉴에 추가되는 프로그램
3. 소스트리(SourceTree) : 깃의 기본 기능부터 고급 기능까지 사용할 수 있는 프로그램
- 기능이 많아 사용법은 복잡하지만 익숙해지면 자유룝게 활용 가능
커맨드 라인 인터페이(Command Line Interface, CLI)
터미널 창에 직접 명령을 입력해서 깃을 사용하는 방식
-> 소스트리나 깃허브 데스크톱 등 그래픽 사용자 인페이스로 만들어진 프로그램으로 깃을 사용하는 것보다 어려움
-> 기본적인 리눅스 명령을 알아야 하고, 깃 명령도 외워야 하기 때문
-> Buy, 이 방법에 익숙해지면 훨씬 빠르게 깃을 다룰 수 있으며 반복해야 할 일을 자동화시키거나 서버 환경에서 깃을 사용하는 등 다양한 활용도 가능!!
-> 개발자 대부분은 이것으로 깃을 사용, 책에서도 이 방법을 중심으로 설명
한 걸음 더 : 외에 다른 프로그램 https://git-scm.com/downloads/guis 참고(윈도우, 맥, 리눅스, 안드로이드, iOS에서 사용할 수 있는 다양한 깃 프로그램 소개되어 있음)
01-2 깃 설치하기
누구나 무료로 설치가 가능
윈도우에 깃 설치하기
- 깃에서는 리눅스 명령 사용 -> 윈도우에 깃 설치 시 리눅스 명령을 사용할 수 있도록 깃 배시(Git Bash) 프로그램이 함께 설치됨
1. https://git-scm.com/ 접속
우측 하단 Download 2.30.1 for Windows 클릭 > 설치
아마 버전은 매번 달라지는 것 같음
2. 설치가 되었다면 Git Bash 창에서 git 이라고 치고 엔터를 치면
깃 명령에서 사용할 수 있는 여러 옵션이 표시된다 --> rltdl wpeofh tjfclehls rjt
깃 환경 설정하기
- 사용 전, 사용자 정보를 먼저 입력 -> 깃은 버전을 저장할 때마다 그 버전을 만든 사용자 정보도 함께 저장 --> 이를 통해 어떤 버전을 누가 언제 만들었는지 쉽게 파악할 수 있다.
- 깃에 사용자 정보 입력해보자 : 사용하는 운영체제가 윈도우라면 깃 배시를, 맥이라면 터미널 창 열기
- 깃에서 사용자 정보 설정 : git config에 --global 옵션 추가 -> 현재 컴퓨터에 있는 모든 저장소에서 같은 사용자의 정보를 사용하도록 설정
=> 터미널 창에서 다음과 같이 입력하여 사용자의 이름과 메일 주소 저장
$ git config --global user.name "유저네임입력"
$ git config --global user.email "이메일입력"
01-3 리눅스 명령 학습하기
터미널 창에서 깃을 사용하기 위해 쓰는 명령 == 리눅스 명령
깃을 사용하기 전 미리 알아두어야 할 리눅스 명령
현재 디렉터리 살펴보기
1. 깃 배시 실행 > 커서 맨 윗줄을 보면 맽 끝에 물결(~) 표시 : 현재 홈 디렉터리(home directory) 에 있다는 의미
2. pwd 명령어 입력 후 [Enter] -> 현재 위치의 경로가 나타난다.
- pwd : print working idrectory
- 현재 위치의 경로가 나타난다
3. 현재 디렉터리에 어떤 파일이나 디렉터리가 있는지 확인할 때는 'Is' 명령 사용
ls(-> list의 준말)입력 후 [Enter] -> 디렉터리와 파일 이름이 나타난다.
이름 뒤에 /가 붙어있는 것이 디렉터리
- clear : 터미널 창 클리어
4. 리눅스 명령에 옵션(Option)을 추가하려면 붙임표(-)와 원하는 옵션을 나타내는 글자를 함께 입력
ex1) 파일과 디렉터리의 상세 정보까지 표시하는 옵션 추가 : '-l'
ls -l
--> ls가 현재 디렉터리에 어떤 파일이나 디렉터리가 있는지 확인하는 명령인데, 거기에 상세 정보까지 보여달라 -l
ex2) 숨긴 파일과 디렉터리를 표시 : '-a'
ls -a
ex3) 두 옵션을 함께 사용 : '-la' 또는 '-al'
==> 순서에 상관없이 글자를 붙여서 추가 입력
ls -la 또는 ls -al
ls 명령 옵션 모음
- ls 명령 사용 시 옵션을 추가 --> 다양한 형식으로 파일, 디렉터리 표시 가능
- 자주 사용하는 ls 명령 옵션
옵션 | 명령 |
-a | 숨김 파일/디렉터리 함께 표시 (all 느낌?) |
-l | 파일/디렉터리 상세 정보 함께 표시 |
-r | 파일 정렬 순서를 거꾸로 표시 (reverse ??) |
-t | 파일 작성 시간 순으로 (내림차순) 표시 (time ??) |
터미널 창에서 디렉터리 이동하기
- cd 명령어 사용
1. 현재 위치에서 상위 디렉터리로 이동 -> cd .. (change directory 줄임말)
- cd + [spacebar] + .. + [Enter]
- pwd(현재 위치 확인) : /c/Users/rnjsq 였음 -> C: 아래 Users 아래 rnjsq(사용자 아이디)
- cd .. : /c/Users -> C: 아래 Users -> 사용자아이디에서 한 단계 위로 올라간 경로
- cd .. : /c -> C: -> Users에서 한 단계 더 올라오니까 C드라이브의 루트(root) 폴더, 즉 /c까지 이동
- cd .. : / -> 내 PC -> C드라이브 위에는??? 내 PC가 존재
2. 하위 디렉터리로 이동 -> cd + 이동할 하위 디렉터리 이름 (change directory 줄임말)
- 현재 내 PC에 위치 -> 다시 C드라이브로 이동해보자
- cd C: -> C드라이브로 이동해달라
** 상위 디렉터리로 갈 때는 .. 만 입력하면 되는데 그 이유는 상위 디렉터리는 1개 뿐이기 때문! 그러나 한 디렉터리 안에는 여러 다른 디렉터리가 있으므로 하위로 내려갈 때는 여러 하위 디렉터리 중 어떤 디렉터리로 가고싶은지 적어주어야 한다
- 여기서 C 드라이브 안의 파일과 디렉터리를 한 번 확인 해보자
ls
C드라이브에 있는 파일/디렉터리들이 쫙 나온다!
3. Users 디렉터리로 이동해보자
- 만약 C드라이브에서 사용자 아이디 디렉터리로 가고 싶으면 이렇게 입력해줘도 될까?
cd rnjsq --> 불가능 --> 바로 하위 디렉터리로만 이동이 가능한 듯
C:\Users\rnjsq --> C: 아래의 Users 디렉터리에서 rnjsq로 이동 가능
4. 처음에 출발했던 디렉터리, 즉 홈 디렉터리로 돌아가보자 : cd ~
홈 디렉터리 rnjsq로 이동이 되었음
위에서 C:에서 바로 rnjsq로 가자고 했을 때는 실행이 안 되었으나 홈 디렉터리 표시 ~ 로는 이동이 가능하다
리눅스에서 디렉터리를 나타내는 기호
- 현재 위치나 파일 경로를 나타낼 때 몇 가지 약속된 기호를 사용하고 있으며 이 기호들은 꼭 기억하자
기호 | 설명 |
~ | 현재 접속 중인 사용자의 '홈 디렉터리' == '사용자 디렉터리' 경로 : c/Users/사용자 아이디 사용자 아이디는 5글자까지만 나타남 |
./ | 현재 사용자가 작업 중인 디렉터리 |
../ | 현재 디렉터리의 상위 디렉터리 |
터미널 창에서 디렉터리 만들기 및 삭제하기
1. 현재 디렉터리 안에 하위 디렉터리를 만들 때 : mkdir 명령 사용 (make directory)
ex) 홈 디렉터리 안에 있는 Documents 디렉터리에 'test'라는 하위 디렉터리를 만들어보자
- 홈 디렉터리 ~ 에서 -> 하위 Documents 디렉터리로 이동(cd Documents) -> test 디렉터리 만들기(mkdir test)
- 만약 현재 위치가 홈 디렉터리가 아니라면 : cd ~/Documents -> mkdir test
--> 홈 디렉터리 ~의 하위 디렉터리 Documnets로 이동 후 mkdir test
2. 위에서는 직접 파일 탐색기(Windows + e)에서 test 디렉터리가 만들어졌는지 확인을 했지만, 터미널 창에서 바로 확인하고 싶다면 ls 명령을 사용해서 확인
test/ --> test라는 dir이 만들어진 것을 확인할 수 있다
3. 만든 디렉터리 삭제하기 : rm 명령(remove)
rm test
--> test 디렉터리 삭제
여기서 -r 옵션을 붙이면 디렉터리 안에 있는 하위 디렉터리와 파일까지 함께 삭제됨
** 삭제할 디렉터리 'test'의 상위 디렉터리 'Documents'에서 rm 명령 입력해야 함
빔에서 텍스트 문서 만들기
- 보통 텍스트 파일을 만든다 하면, 깃을 사용하다가 메모장을 열어서 텍스트 파일을 만들고 다시 깃으로 돌아오고..
-> 터미널 화면에서 텍스트 문서를 만들어보자
->
빔(Vim)
- 리눅스의 기본 편집기로 터미널에서 사용할 수 있는 대표적인 편집기(앞서 깃을 설치할 때 기본 편집기를 빔으로 설정했던 이유!!! 맥에서는 빔 대신 나노를 사용하기도 함)
- 터미널 창에서 키보드 입력만으로 사용
1. 깃 배시 프로그램을 실행해서 터미널 창 열기 : 기본적으로 홈 디렉터리부터 시작
- Documents 디렉터리로 이동 -> test 디렉터리를 만들고, test 디렉터리로 이동
2. 현재 test 디렉터리에 test.txt 파일 만들기 : vim 명령을 입력해야 함
- vim 명령 : 뒤에 입력한 파일 이름과 같은 파일이 없다면 그 이름으로 새로운 텍스트 문서를 만들고, 파일이 있다면 그 파일을 연다.
$ vim test.txt
3. 다음과 같이 화면이 바뀌면 잘 실행된 것
- 화면 왼쪽 위 : 커서가 깜빡이고
- 왼쪽 아래 : 현재 빔으로 연 파일 이름이 표시됨
4. 새로 만든 파일에 내용 입력하기
- 바로 글자를 쓰면 제대로 입력되지 않는데, 빔은 처음에 문서를 저장하는 'ex 모드'로 열리기 때문!
- '입력 모드' : [I] 또는 [A]를 눌러서 문서를 작성하는 '입력 모드'로 바꿔야 입력이 가능함 (Insert, Add)
- 'ex 모드' (Add) : [Esc]키를 눌러 저장, 종료를 하는 'ex 모드'로 바꿀 수 있음
5. 텍스트 입력 후 파일을 저장하기 위해 'ex 모드'로 돌아간 뒤 저장하고 종료하기
- [Esc] 키 눌러 'ex 모드'로 돌아가기
- : 입력해 명령을 입력할 수 있도록 만들기
- 저장하는 명령어 w
- 종료하는 명령어 q
-> 두가지 한꺼번에 사용 wq
- [Enter] : 저장하고 편짐기가 종료 됨 -> 빔을 실행했던 터미널 창으로 되돌아 감
빔 ex 모드 명령 모음
- ex 모드에서 사용하는 명령은 콜론(:)으로 시작하고, 자주 사용하는 명령은 아래와 같다
명령 | 설명 |
:w :write |
편집 중이던 문서 저장 |
:q :quit |
편집기 종료 |
:wq :wq (파일) |
편집 중이던 문서를 저장하고 종료 파일 이름을 함께 입력하면 그 이름으로 저장 |
:q! | 문서를 저장하지 않고 편집기 종료 확장자가 .swp인 임시 파일이 생성됨 |
[한 걸음 더! 깃에서 기본 편집기 변경하기]
우리는 깃 설치 시 기본 편집기를 빔으로 설정했지만, 다른 편집기를 사용하고자 한다면 깃 설치 후에도 변경 가능
ex) 깃의 기본 편집기를 'Notepad++'로 변경하고 싶다
$ git config --global core.editor "ntoepad++"
입력
- 'notepad++'이런 식으로 편집기 이름을 적어주어도 되고, 편집기 실행 파일의 경로를 입력해도 된다
텍스트 문서 내용 확인하기
터미널 창에서 간단히 텍스트 문서의 내용 확인 : 리눅스의 cat 명령 사용
- cat + 텍스트 파일 이름
cat 명령으로 실행할 수 있는 기능
명령 | 설명 |
$ cat 파일 | 파일 내용 화면에 표시 |
$ cat 파일 파일2 ... 파일n > 새파일 | 파일 n개를 차례로 연결 -> 새로운 파일 만듦 |
$ cat 파일1 >> 파일2 | 파일1의 내용을 파일2 끝에 연결 |
- 실습해보자! test2.txt 파일을 만들고 test.txt 파일과 연결해서 c.txt 파일 만들어보기
- c.txt 파일을 삭제하고 test2.txt 파일의 내용을 test.txt파일 끝에 연결해보자
wow.... 신기하다
'프로그래밍 > 깃&깃허브' 카테고리의 다른 글
[깃&깃허브] 06. 깃허브에서 개발자와 소통하기 (p.202~220) (0) | 2021.03.21 |
---|---|
[깃&깃허브] 05. 깃허브로 협업하기 (p.166~201) (1) | 2021.03.20 |
[깃&깃허브] 04. 깃허브로 백업하기 (p.131~165) (0) | 2021.03.16 |
[깃&깃허브] 03. 깃과 브랜치 (p.84~130) (0) | 2021.03.13 |
[깃&깃허브] 02. 깃으로 버전 관리하기 (p.38~83) (0) | 2021.03.01 |