3. 오픈 소스 프로젝트에 기여하기

    - 깃허브를 자신의 소스 저장 공간으로 사용하는 것도 좋지만, 깃허브의 핵심이라고 할 수 있는 오픈 소스 프로젝트에

      기여해 보는 경험은 자신의 실력을 키우고, 나아가 타인에게 증명할 수 있는 좋은 기회가 될 것이다.

 

    3-1. contribution의 종류

          - 깃허브에서 기여 활동을 나타내는 말인 contribution에는 소스의 버그를 수정하는 것뿐만 아니라

            그 오픈 소스에 도움이 될만한 거의 모든 활동이 포함된다.

 

          1) 막 특정 오픈 소스에 대해 공부하기 시작했을 경우

            : 대부분 오픈 소스의 README 파일이 영문으로 작성되어 있는데 이를 한국어로 번역하는 것을 해보자.

              (분량이 적은 문서부터 천천히 해보고, 오픈 소스 개발자에게 메일을 통해 번역을 해도 되는지 확인하고 진행하자)

 

          2) 해당 오픈 소스 프로젝트를 어느 정도 이해하고 있는 경우

            : 문서화 작업을 도울 수 있다. (소스나 문서의 오타 수정 또는 잘못 번역된 한글 수정)

 

          3) 소스 코드 수정
            : 오픈 소스의 버그를 찾거나 그 버그를 수정한다. 또는 추가되었으면 하는 기능을 제안할 수 있다.

 

    3-2. 오픈 소스 저장소 복제하기

          - 오픈 소스 프로젝트에 기여하려면 가장 먼저 수정하려는 오픈 소스 저장소 를 자신의 저장소로 복제해야한다.

            (이 과정을 'fork한다'고 한다)

 

실습을 위해 저자의 계정에 있는 저장소에 접속해 [fork] 클릭
저장소가 복제되고 있는 중...
계정 이름/저장소가 나타나고, forked from..으로 어디서 fork했는지 나온다.

저장소를 fork 했다면 그 저장소에 있는 소스나 README 파일일 수정할 수 있다.

 

    3-3. 포크한 저장소를 지역 저장소로 클론하기

          - 포크한 소스는 깃허브의 원격 저장소에 있기 때문에 사용자 컴퓨터로 복제(clone)한 뒤 지역 저장소에서 수정하고 

             push한다.

 

저장소의 주소를 복사한다.
git clone 명령을 사용하여 방금 주소를 복사한 저장소를 복제한다!
원격 저장소에 있던 파일들이 복제되었다.
demo.txt 파일 수정하기
커밋하고 원격 저장소에 push하기
원격 저장소에서 업데이트된 커밋 확인하기

하지만! 원래 소스가 있던 peacein/doit 저장소에 반영되자 않았다.

오픈 소스 개발자에게 수정한 내용을 원래 소스에 합쳐 달라고 알려주어야 한다.

그 방법은 다음 실습에서 하도록 하자.

 

    3-4. 오픈 소스 프로젝트로 pull request 보내기

          - fork 해온 원격 저장소의 새로운 커밋을 원본 저장소에 합치는 방법을 알아보자.

          - 먼저 원본 저장소의 개발자에게 내가 수정한 것을 반영해달라고 요청해야 하는데, 이 요청을 pull request라고 한다.

 

fork한 자신의 저장소에서 [pull request]를 클릭!
원본 저장소의 master Branch와 복제된 저장소의 master Branch 사이에 어떤 차이가 있는지 보여준다.
수정 내용 확인이 다 끝났다면, 수정 내용을 원본 저장소에 반영해달라고 요청하기 위해 [create pull request]를 클릭한다.
커밋할 때 입력했던 커밋 메시지와 설명이 나타난다. 내용 입력이 끝나면 [Create pull request]를 누른다.

원본 저장소의 개발자에게 문서의 어떤 부분을 수정했는지 설명할 내용을 입력하는 것이 좋다.

(원본 저장소에서 영문을 사용한다면, 커밋 메시지와 설명도 영문으로 작성하는 센스!)

 

화면이 원본 저장소의 pull requests으로 바뀌면서 내 pull request가 등록된 것이 나타난다.

보통 이 공간에서 저장소의 개발자와 질문과 답변을 주고 받고,

수정한 내용을 원본 소스에 반영할지 여부를 결정한다.

 

    +) 내가 만든 소스를 누군가가 수정한다면???

 

누군가의 요청을 받은 저장소의 [pull requests] 목록에 숫자가 나타날 것이다.
다른 사용자가 보낸 수정 내용을 컴토하고 자신의 소스에 합치고 싶다면 [Merge pull request]를 클릭한다.

 

공부하다가 놀고 싶거나, 쉬고 싶을 때 영어 필기체를 연습하고 싶어졌다.

 

인터넷에 '따라쓸 수 있는 대본 하나 없을까?' 싶어서 검색했는데

역시나... 한국인들은 유료화가 정말 빠르다!

 

그래서 대본을 만들 수 있는 사이트를 찾았고 직접 만든 대본을 공유하고 싶어서 올리게 되었다.

 

////원하는 글을 필기체로 변환하는 방법/////

(알파벳은 첨부 파일 다운받으세요!)

 

www.worksheetworks.com/

 

WorksheetWorks.com

 

www.worksheetworks.com

 

사이트에 들어가 스크롤을 내려서 Handwriting Practice를 클릭!

 

아래로 스크롤 내리기!!

 

보고 본인이 원하는 옵션으로 선택하면 된다!

나는 따라쓰고 싶었고(Tracing), Curve가 있는 것이 좋기 때문에 파란색 영역으로 선택!!

 

아래로 스크롤 내리기!!

 

글자수를 원하는 크기로 설정하기!

 

변환하고 싶은 텍스트를 넣고, 옵션을 선택한다!
(나는 내 블로그의 OPIC script를 활용했다)

다 했으면 [create worksheet] 클릭!!

 

해당 Pdf 사진을 누르게 되면

 

이런 식으로 worksheet를 만들어주는데 다운 받아서 사용하면 된다!

 

========= 파일을 만드는 기준 =========

v1 따라쓸 수 있는 버전
-1: 한 문장씩
-2: 단락 별로   

v2 따라 써보고, 직접 써보는 버전

 

[필기체] 알파벳대,소_v1.pdf

 

[필기체] 알파벳대,소_v2.pdf

다들 영어 필기체를 잘 쓰게 되기를!!!

 

[필기체] 알파벳대,소_v2.pdf
0.10MB
[필기체] 알파벳대,소_v1.pdf
0.07MB

2. README 파일 작성하기

    - 프로필과 contribution 그래프만 살펴보는 것으로는 그 저장소의 주인이 어떤 활동을 했는지 구체적으로

      알기가 어렵다.

    - 따라서 대부분 깃허브 사용자는 방문자가 편하게 자신의 저장소를 살펴볼 수 있도록 안내문을 만들어

      첫 화면에 띄워두는데, 이를 README 파일이라고 한다.

 

    2-1. README 파일 만들기

          - README 파일은 마크다운 문법을 사용하기 때문에 확장자는 .md를 사용한다.

          - 단순히 텍스트만 나열하는 것이 아니라 제목과 본문을 다르게 표현하거나 글씨체를 바꾸는 등

            여러 서식을 다르게 적용할 수 있다. 또한 이미지나 외부 링크도 넣을 수 있다.

https://github.com/kyrieko/html5-book-9의 README 파일
README 파일을 만들 깃허브 저장소에 접속해 [Add a README]를 클릭한다.
텍스트 편집기에 원하는 내용을 입력한다. (가운데 빈 줄이 있어야 실제 화면에서 줄이 바뀌어 나타난다!!!)
[Edit new file]에서 작성한 후 [Preview]를 보면 결과 화면을 미리 볼 수 있다.
기본 커밋 메시지를 사용하거나 직접 작성한 후  [Commit new file]을 눌러 커밋한다.
저장소 첫 화면에 업데이트 된 README 파일 확인하기 (오른쪽 연필 아이콘으로 수정가능)
README 파일 수정 하기 (commit 하기전에 preview로 보면 추가된 내용과 삭제된 내용을 보여준다고 한다)

 

    2-2. 마크 다운 문법 알아보기

           - 마크 다운의 장점: 사용이 쉽고 HTML 태그에 비해 간단하기 때문에 문서 작성이 편리하다.

           - 마크 다운의 단점: 마크 다운을 지원하는 프로그램이나 사이트에서면 사용할 수 있다.

           2-2.1) 제목

                     - #을 붙여서 제목 글자 크기를 정할 수 있다.

           2-2.2) 텍스트 단락 줄 바꾸기

                     - [Enter]를 두번 눌러준다. 

제목 텍스트일 경우에는 편집기 상에서 줄을 바꾸면 그대로 나타난다

           2-2.3) 가로 줄

                     - 아래 방법 중 하나를 사용하면 된다.

           2-2.4) 순서 있는 목록

                     - 1,2,3... 처럼 번호를 붙여서 나타낼 수 있다.

순서대로 작성하지 않아도 순서 목록대로 나타난다.

           2-2.5) 순서 없는 목록

                     - '+' or '-' or '*' 를 붙여서 나열하면 자동으로 글머리 부호가 붙는다.

                     - Tab을 눌러 항목을 들여 쓰면 여러 단계를 가진 목록을 만들 수 있다.

           2-2.6) 텍스트 강조

                     - 굵게: 텍스트의 앞뒤를 __ or ** 로 감싼다.

                     - 기울임체: 텍스트의 앞뒤를 - or *로 감싼다.

                     - 굵은 기울임체: 텍스트의 앞뒤를 ___ or ***로 감싼다.

                     - 취소선: 텍스트의 앞뒤를 ~~로 감싼다.

           2-2.7) 인용

                     - 인용문을 삽입할 때마다 >를 추가하면 된다.

           2-2.8) 소스코드

                    - 텍스트 사이에 소스 코드를 삽입하고 싶다면, 키보드 1 옆에 있는 grave 키`를 삽입하면 된다.

                    - 소스 코드로 표시하면 고정폭 글꼴로 나타난다.

           2-2.9) 링크

                     - 아래 여러 가지의 형태로 삽입할 수 있다.

                        1) <링크 주소>
                           : 링크 주소가 그대로 화면에 나타나고, 누르면 해당 주소로 이동한다.

                        2) [링크 텍스트](링크 주소)

                           : 링크 텍스트만 나타나며 텍스트를 누르면 괄호에 입력한 주소로 이동한다.
                        3) [링크 텍스트](링크 주소, "부가 설명") 

                           : 결과 화면에서 링크 텍스트에 커서를 올렸을 때 부가 설명이 말풍선 형태로 나타난다.

           2-2.10) 이미지

                       - ![대체 텍스트](이미지 파일 경로)
                       - 이미지 파일이 경로를 가지려면, 웹에 올라와 있어야 한다!
                       - 대체 테스트: 이미지를 나타낼 수 없는 상황이나 화면 낭독기에서 이미지를 소리로 설명할 수 있도록
                                               삽입하는 텍스트이다.

 

    2-3. 깃허브에 이미지 올리고 README에 삽입하기

          - 일반적으로 따로 웹사이트를 운영하지 않기 때문에 위에 작성한 이미지 삽입 방법은 사용하기 어렵다.

          - 이럴 때는 이미지를 깃허브 저장소에 올린 다음 그 경로를 README 파일에 지정하면 된다.

          2-3.1) Images 디렉토리 생성하기

                    - 깃허브 저장소에 직접 이미지를 올릴 수도 있지만, 커밋 관리 중인 파일들과 섞이지 않도록

                      별도의 디렉토리를 만들어 관리한다.

                    - 사용자 컴퓨터에 디렉터리 안에 필요한 이미지들을 모아둘 Images 디렉토리를 생성한다.

                      (어디에 있든지 상관없지만, 계속 이미지를 추가해 사용한다면 지역 저장소 안에 넣어두는 것이 관리가 편리함)

          2-3.2) 업로드하기

이미지를 사용할 저장소에 접속한 후 [Upload Files] 클릭
Images 디렉토리를 깃허브 저장소로 끌어온다
이미지 파일 올리기가 끝나면 [commit changes] 클릭

          2-3.3) README 파일에 이미지 삽입하기

업로드 확인 및 README 파일 수정하기
흠... 그대로 따라했는데 왜 안될까..?

      +) 다른 방법을 찾았다.

하늘색 칸에 README에 삽입하고 싶은 이미지를 drag&drop한다. 생성된 URL을 복사하여 README 파일에 삽입한다.
끝!

제 6장 깃허브로 협업하기

           - 깃허브는 자신이 커밋한 소스를 보여줄 수 있을 뿐만 아니라 다른 개발자들과 그 소스에 대한 여러 의견들을

             나눌 수 있는 공간이다.

           - 오픈 소스 프로젝트에 참여하면서 자신의 깃허브 활동을 풍부하게 만드는 방법을 알아본다.

           - 또한 깃허브 저장소를 사용해 개인 블로그를 작성하는 방법도 함께 살펴본다.

 

            1. 깃허브 프로필 관리하기

            2. README 파일 작성하기

            3. 오픈 소스 프로젝트에 기여하기

            4. 깃허브에 개인 블로그 만들기

 

1. 깃허브 프로필 관리하기

    - 깃허브에 커밋을 꾸준히 쌓아놓으면 자신이 성실하게 맡은 프로젝트를 관리하고 있다는 것을 보여줄 수 있다.

    - 깃허브 프로필을 보고 협업이나 일자리 제안을 받을 수도 있기 때문에 자신의 개발 경력을 잘 드러내는 것이 좋다.

 

    1-1. 프로필 작성하기

           - 'https://github.com/깃허브아이디'로 접속하면 해당 아이디 사용자의 프로필 사진을 비롯해서,

             저장소 목록과 커밋 현황 등 다양한 정보가 있는 화면이 나타난다.

 

프로필 이미지 변경하기
사진 선택 및 사용자 기본 정보 입력 후 Update 하기
프로필 설정 확인!

 
1) Profile: 프로필 정보를 입력하거나 수정한다.
2) account: 사용자의 이름을 바꾸거나 계정을 삭제한다.
3) account security: 비밀변호를 변경하거나, 이중 인증을 켤 수 있다.
4) Security log: 
5) Security & analysis: 
6) Emails: 사용자 메일 주소를 추가 or 주 메일&백업 메일 주소를 지정할 수 있다.
7) Notification: 깃허브에서 알림을 받을 때 어떤 방법을 사용할지 지정한다.
8) Billing: 유료 계정으로 전환할 수 있다.
9) SSH and GPG keys: SSH 키나 GPG 키를 입력할 수 있다.
10) Blocked Users: 특정 사용자를 차단한다.
11) Repositoires: 저장소를 관리한다. (필요하다면 저장소를 삭제할 수 있다)
12) Organizations: 해당 계정이 속한 조직이 있을 때 따로 저장해두고 사용할 수 있다.
13) Saved replies: 반복해 작성하는 댓글이 있을 경우 따로 저장해두고 사용할 수 있다.
14) Applications: 깃허브 앱이나 깃허브 인증 관련 앱이 나타난다.
15) Developer settings: 깃허브와 관련된 개발을 할 때, 앱을 등록하고 개발 관련 정보를
                                           참고한다.

 

    1-2. contribution 살펴보기

           - contribution graph(컨트리뷰션 그래프)
              : 사용자가 1년 동안 깃허브에서 얼마나 활발하게 활동했는지 보여주는 곳이다.

egoing님의 깃허브 사이트

             특징)

               - 작은 사각형 하나하나가 하루에 해당하고, contribution이 있는 날에는 사각형에 초록색이 칠해진다.

               - 초록색이 진할수록 그날 contribution이 많았다는 뜻이며

               - 사각형 위에 마우스를 올리면 날짜와 contribution 개수가 나타나고,

                 사각형을 클릭하면 그래프 아래에 선택한 날짜의 contribution 활동이 나열된다.

               - contribution은 개인이 작성한 소스 코드를 커밋하는 것과 오픈 소스 프로젝트에 기여하는 것 모두 포함된다.

4. 협업에서 브랜치 사용하기

    - 협업을 하다보면 팀원들이 각자 다른 기능을 맡아서 작업하는 경우가 많다. 이럴 때는 각자의 작업이 master branch에
      있는 문서들과 섞이지 않도록 새 브랜치를 만들어서 버전을 관리한다. 그리고 각 팀원이 만든 새 브랜치 역시 원격 저장소에
      그대로 push할 수 있다.

 

    4-1. 새로 만든 Branch push하기

          - 팀장이 새로운 기능을 위해 자신의 지역 저장소에 f라는 branch를 만들어 커밋한 후 원격 저장소에 푸시하는 과정

깃허브 원격 저장소에서 branch 개수가 증가한 것을 확인한다.

    4-2. pull request로 push한 Branch 병합하기

          -  아직 원격 저장소의 파일 목록에는 f branch에서 만들었던 f1.txt가 없다.

             왜냐하면 push한 branch는 pull request를 통해 병합해야 원격 저장소에 반영되기 때문이다.

이후 pull request 메시지를 작성한 후 [create pull request]를 누르면 협업 중인 저장소에 pull request가 전송된다.
협업 중인 원격 저장소에 등록된 pull request는 공동 작업자 중 누구나 살펴보고 병합할 수 있다
pull request 메시지를 살펴본 다음에 문제가 없으면 [Merge pull request]를 누른다.
커밋 메시지를 직접 입력하거나 기본 메시지를 사용할 수도 있다. [Confirm merge]를 누르면 병합이 끝난다.
branch가 병합되면 해당 branch에 있던 파일이 master 화면에 나타날 것이다.
branch가 병합된 상태라면 Merged라고 표시되어 있고, 공동 작업자 중 누가 병합했는지도 알 수 있다.

          -  깃허브에서 협업할 때는 보통 작업자마다 브랜치를 만들어서 진행하고, 작업 중간중간 pull request를 보내서

             master branch에 병합한다! (작업 전에 항상 pull하여 다른 작업자의 변경 내용을 반영하는 것도 잊지 말기!)

3.협업의 기본 알아보기

    - 깃허브의 원격 저장소를 사용해 협업할 때 가장 기본으로 사용되는 방법을 알아보자

    - 하나의 작업을 여러 사용자가 협업하기 위해서는 각자 지역 저장소에서 작업한 내용을 자유롭게 원격 저장소에서 

      공유할 수 있어야 하므로 사용자가 총 3명이라고 가정한다.

 

    3-1. 공동 작업자 추가하기

           - 깃허브의 공개 저장소는 주소만 알면 누구든지 접속해 소스를 살펴볼 수 있지만, 저장소에 커밋을 푸시할 순 없다.

             공개 저장소든, 비공개 저장소든 여러 사람이 협업한다면 승인된 공동 작업자에게만 커밋을 올릴 수 있는 권한을

             주어야 한다. 그래야 프로젝트 소스 파일의 무분별한 수정을 막을 수 있기 때문이다.

           - 여기에서는 '팀장'과 '팀원1', '팀원2' 이렇게 세 사람이 깃허브를 통해 협업한다고 가정한다.

 

팀장이 협업하고 싶은 저장소에 setting, Manage acess 클릭 후 invite a collabotaor를 누른다.
팀원 1과 팀원 2의 깃허브 아이디나 이메일 주소를 입력한 후 select a collaborator above를 누른다.

          - 팀원은 협업자로부터 초대되었다는 메일과 깃허브 메시지를 받게 되는데, 깃허브 메시지 화면에서 accept 클릭!

          - 공동 작업자들이 모두 초대를 수락하면 collaborator 화면에 사용자 이름이 나타난다.

 

    3-2. 작업 환경 구성하기

           - 원격 저장소에 공동 작업자가 모두 추가되었다면 팀장, 팀원1, 팀원2가 번갈아 커밋을 올리거나 내려서 작업하기

              때문에 실습은 두 대의 컴퓨터가 필요하다...(나는 없어서..그냥 쓱 읽어보고 넘어간다..)

           - 모든 공동 작업자가 아래와 같은 방식으로 지역 저장소와 기본 사용자 환경을 지정해야 한다.

 

1) 각 작업자의 컴퓨터에 지역 저장소를 생성하고
2) 공동 작업에서 사용할 이름과 이메일 주소를 지정한다.

(저장소마다 다른 이름이나 메일 주소를 사용하기 위해서는 config 명령 시 --globals 옵션을 뺀다)

 

    3-3. 원격 저장소에 첫 커밋 푸시하기

           - 팀장이 overview.txt 문서를 생성해서 커밋한 후 원격 저장소의 master branch로 push한다.

 

팀장 쪽에서 커밋하기
원격 저장소에 push하기

git push -u : 다음 부터는 git push 명령만으로 원격 저장소의 master branch에 접근할 수 있다.

이렇게 해서 깃허브 원격 저장소를 확인하면 팀장이 올린 overview.txt 문서의 최종 커밋이 올라와 있을 것이다.

 

    3-4. 공동 작업자 컴퓨터에 원격 저장소 복제하기

           - 공동 작업자는 자신의 작업을 진행하기 전에 git clone 명령을 사용해서 원격 저장소를 복제한다.

 

    3-5. 첫 번째 커밋이 아니라면 풀 먼저하기

           - 여러 사람이 함께 문서를 수정하고 push하기 때문에 반드시 작업하기 전에 원격 저장소의 최신 커밋을 pull한 후

             자신의 커밋을 push해야 한다.

팀장이 새로운 커밋을 올렸다.
팀원 1은 그 사이에 새로운 커밋을 생성한다.

팀원 1이 push하게 되면, 오류 메시지가 뜬다.

" ! [rejected] " : 원격 저장소에 있는 최신 커밋 정보가 팀원 1의 컴퓨터에 저장되어 있지 않기 때문에

나타난 것으로 꼭 자신의 커밋을 수정하기 전에 원격 저장소의 최신 커밋을 가져와야 한다.(git pull)

따라서, git pull -> commit 생성 -> git push -u origin master !!

+ Recent posts