[Github] 협업을 위한 기초


1. README 파일 관리

이전까지는 Github에 코드를 올릴 때 README의 중요성을 잘 알지 못했었다.
”그냥 제목이랑 무슨 웹서비스인지 개괄적인 설명만 하면 되지 않을까?”

절~~대 아니다. 이는 오히려 나의 코드와 서비스에 대한 가능성을 저해하는 것과 마찬가지다. 내가 좋은 서비스와 코드를 배포했다면, 당연히 다른 사람들이 내 레포지토리를 확인하고 사용법 등을 읽어볼 것이라고 가정해야 한다.

사용설명서

즉, README 파일을 제대로 작성하지 않는 것은 사용 설명서 없이 전자제품을 판매하는 것과 같은 것이라 봐도 무방하다.

📝 README에 들어가야 하는 필수 요소

  1. 프로젝트 이름
  2. 배포 주소
  3. 설치 & 실행 방법
  4. 디렉토리 구조 (Project Structure)
  5. 프로젝트 설명
  6. 핵심 기능 구현 예시 (gif, jpeg 등등)
  7. 핵심 코드 설명
  8. 프로젝트에 대한 회고

2. 팀원들과 원활한 협업을 위한 사전 약속

그동안 코딩을 할 때, 혼자 주로 해왔었기에 커밋, css, 디렉토리 구조 등등 다~~ 내 마음대로 했었다.
물론 완전 체계없이 한 것은 아니었지만, 협업을 위해선 팀원들과의 사전 약속이 필요하다.

  1. 디렉토리 구조

    아래와 같이 이번 프로젝트에서 우리는 CRA를 통해 React프로젝트 뼈대를 만들었고, 디렉토리 구조를 사전에 약속했다.

    디렉토리 구조

    이렇게 사전에 디렉토리 구조를 약속하고 코드를 짜니 훨씬 소통도 잘 되고 협업하는 것도 수월했다.

  2. CSS 사용 방법

    나는 styled-components를, 다른 팀원은 tailwind, 또 다른 팀원은 SASS를 선호한다고 해서 각자 서로 다른 CSS 스타일링을 하면 안된다. 따라서 팀원들 간의 합의를 통해 공통된 CSS 작성법을 약속해야 한다.

  3. Commit 메시지의 통일

    팀원들이 각기 아래와 같이 통일감 없이 마음대로 커밋 메시지를 작성하면 팀원들을 차치하고서라도 다른 사람들이 봤을 때 프로젝트 진행 과정 등을 한 눈에 알아보기가 어렵다. 따라서 프로젝트 시작 전 팀원들 간에 commit 메시지 작성법을 정하는 것이 좋다.

    커밋 메시지 예시
    기능 추가 : 무한 스크롤 기능 추가하여 구현하였습니다!
    무한 스크롤, CSS 스타일링, API KEY 수정
    🔥 루트 디렉토리 test.js파일 삭제

    그리고 **습니다”, “반말”, “작업중“**과 같은 표현들은 커밋 메시지를 작성할 때 최대한 지양하는 것이 좋다.

    git commit 메시지 작성 예시


3. 제발 .gitignore 작성해주세요….

.gitignore를 작성하지 않고 push를 하면 사용자 입장에서 전~혀 필요 없는, 또는 올라와서는 안될 파일들이 github 레포지토리에 올라가게 된다.

관객 입장에선 필요 없는 도구들...

우리가 어떤 미술 전시를 보러 갔는데 미술 작품만 걸려있는게 아닌, 해당 작가가 사용했던 물감, 붓, 펜, 포장지, 받침대 등등 잡다한 것들도 전부 다 전시되어있다면 어떨까?

같은 이치다. 물론 보안상의 이유도 물론 있지만, 우리의 코드를 받아서 쓰는 사용자들은 nodemodules나 build, .vscode와 같은 폴더 및 파일들이 전혀 필요 없다. 오히려 짐만 될 뿐이다. 따라서 보안상의 이유(env 파일 등)와 효율성을 위해 .gitignore파일을 생성하여 작성하자.


Author

Hoonjoo

Posted on

2022-01-27

Updated on

2022-02-07

Licensed under

Comments