💻 Frontend/HTML, git

[코딩온] 프론트엔드 입문 Day 30 (git 협업)

hjinn0813 2024. 3. 13. 21:26
728x90

오늘은 본격적인 2차 프로젝트 시작에 앞서 git으로 협업하는 방법을 배웠다. 개발 방법이나 git의 branch를 관리하는 개념에 대해서는 앞으로 프로젝트를 진행하면서 자주 사용해야되는 부분이니까 반드시 기억해야겠다.


개발을 진행하는 방법

  1. Waterfall - 폭포수처럼 순차적으로 개발하는 방법.
    * 장점: 체계화된 문서를 기준으로 진행하기 때문에 프로젝트의 상황을 명확하게 파악할 수 있다.
    * 단점: 완료된 단계는 다시 되돌리기 어렵다. (행여 오류가 생기면?)
  2. Agile - 짧은 주기로 설계, 개발, 테스트, 배포 과정을 반복하여 하나의 큰 프로젝트를 완성하는 방법.
    요구사항을 작은 단위로 쪼개어 솔루션을 만들고 빠르게 보여줌으로서 요구사항에 대한 검증을 진행한다.
    * 장점: 유연하게 일 처리를 할 수 있고, 변화에 빠르게 대응할 수 있다.
    * 단점: 문서화 혹은 체계적이지 않기 때문에 협력과 피드백(소통)이 매우 중요하다!

Agile Scrum 방식 예시

Agile 방식으로 개발을 진행하는 경우, Scrum 또는 Kanban 방식으로 프로젝트를 관리할 수 있다.

  • 스크럼(Scrum) - 계획, 개발, 테스트, 완료까지의 과정을 주기적으로 시행하여 더 발전된 제품을 고객에게 전달할 수 있게 하는 것. 짧은 주기의 스프린트를 반복하므로 문제에 빠르고 유연한 대처가 가능하다. 기간이 정해져있는 개발 프로세스에 어울리는 방식.
  • 칸반(Kanban) - 우선 순위에 따라 업무 흐름을 시각화하여 프로젝트 진행 상황을 확인할 수 있다.

※ 스크럼과 칸반 방식의 차이 - https://boardmix.com/kr/reviews/agile-scrum-vs-agile-kanban/

 

정면 비교: 애자일 스크럼 vs 애자일 칸반

애자일 프로세스를 실천할 수 있는 대표적인 방법론 두가지를 소개하려고 합니다. 바로 애자일 스크럼과 애자일 칸반입니다. 이 두가지를 차근차근 알아보시고, 팀에 맞는 방법론을 선택해 효

boardmix.com


Git - Branch

Branch(브랜치)란 독립적으로 작업을 하기 위해 필요한 개념. '분기'라고도 부른다.

개발을 할 때, 각자의 브랜치에서 작업을 진행하고 최초의 브랜치로 병합하는 과정을 통해 제품을 만들어야 한다.

Branch 사용 예시


Branch 명령어 종류

$ git branch
# 현재 브랜치 목록 확인

$ git branch "test 1"
# "test 1" 이라는 브랜치 만들기

$ git checkout "test 2"
# "test 2" 라는 브랜치로 이동

$ git checkout -b "test 3"
# "test 3" 브랜치 만들어서 이동

$ git branch -d "test 4"
# "test 4" 라는 브랜치 삭제하기

Branch와 관련된 기본적인 명령어는 위 예시처럼 5개가 있다.

이걸 수업시간에 리더님과 직접 실험해보고, 실제로 우리가 사용할 프로젝트 폴더에서도 브랜치를 만들어보았다.


Merge

브랜치를 다른 브랜치와 병합하는 과정.

b 브랜치에서 작업을 완료해서 a 브랜치에 병합하려는 경우, a 브랜치로 이동해서 merge를 진행해야 한다.

  • 각자의 브랜치에서 서로 다른 파일을 수정했을 때 → 각자가 작업한 파일이 알아서 합쳐진다.
  • 같은 파일에서 다른 부분을 수정했을 때 → 각자가 수정한 부분으로 알아서 합쳐진다.
  • 같은 파일에서 같은 부분을 수정한다면? → 충돌이 발생하여 수동으로 해결 후 add, commit, push 해야한다.

github repo에서 'pull request' 기능으로 merge를 진행하면 코드 충돌을 줄일 수 있다.

위 예시 사진처럼 VS Code에서 새로운 브랜치를 만들어서 작업을 완료한 뒤에, 메인 브랜치로 pull request를 열어서 merge하고 작업이 끝난 브랜치는 삭제한다. 브랜치 정리를 자주 해줘야 작업이 수월해진다.


Branch 종류

  • main - 제품으로 서비스될 수 있는 브랜치. 배포 이력을 관리하기 위해 사용하며, 배포 가능한 상태만을 관리한다.
  • develop - 다음 출시 버전의 개발을 진행하는 브랜치. 기능 개발을 위한 브랜치들을 병합하기 위해 사용한다.
  • feature - 기능 개발을 진행하는 브랜치. 새로운 기능 개발이나 버그 수정을 여기서 하고 develop으로 병합한다.
  • release - 출시 버전을 준비하기 위한, 배포 전용 브랜치.
  • hotfix - 출시 버전에서 발생한 버그 수정 브랜치. 배포한 버전에 급한 수정사항이 있을 때 사용. main에서 분기된다.


.gitignore

git 버전관리에서 제외할 것들을 지정하는 파일.

git에 올리기 전에 .gitignore에 제외시킬 파일 목록을 미리 추가해야 한다.


여기까지가 프로젝트 시작 전에 배운 내용이었고, 오후부터는 팀끼리 모여서 프로젝트 기획 회의를 진행하며 본격적인 2차 프로젝트가 시작되었다! 앞으로 2주간 팀원들과 멋진 결과물을 만들어낼 수 있으면 좋겠다!

728x90