serin99
serin 개발 일기
serin99
전체 방문자
오늘
어제
  • 분류 전체보기 (76)
    • FE (25)
      • JavaScript (14)
      • React (6)
      • Web (5)
    • IT (22)
      • [FE] 위클리 페이퍼 (19)
      • CS (2)
    • Project (4)
    • Python (8)
    • DB (2)
    • IoT (14)
      • 라즈베리파이 (9)
      • 아두이노 (4)

태그

  • 자바스크립트
  • 라즈베리파이
  • Python
  • 부트캠프
  • 프로그래밍

인기 글

최근 글

최근 댓글

티스토리

hELLO · Designed By 정상우.
serin99

serin 개발 일기

[FE] 📚 Git - Flow
IT/[FE] 위클리 페이퍼

[FE] 📚 Git - Flow

2024. 4. 11. 17:17
728x90

 

 

🤗 오늘의 위클리 페이퍼는

Git - Flow에 대한 토픽입니다.

 

git flow란?

 

👉 Git Flow는 Vincent Driessen이 제안한 Git을 위한 branch 전략으로, 다양한 종류의 branch를 통해 소프트웨어 개발 생명 주기를 관리합니다. 주요한 branch 유형으로는 master, develop, feature, release, hotfix가 있습니다.

 


✔ 먼저 2가지 기준이 되는 브랜치입니다.

 

  • master 👉  정식 배포의 기준이 되는 브랜치로, 항상 안정적인 제품이 서비스될 수 있는 소스코드이며, 언제나 배포가능한상태로 유지되어야 하는 브랜치입니다.
  • develop 👉  개발 중인 코드를 관리하는 브랜치입니다. 새로운 기능 개발과 개발된 변화를 담은 버전 배포작업이 시작될 수 있는 브랜치입니다.

이렇게 보면, develop은 master를 기준으로 변화가 일어나는 브랜치이고, 준비가 되면 쌓여온 변화들이 master에 병합시키기 위한 브랜치라는 것을 알 수 있죠. 새 버전이 배포되는 시점만큼은 master 브랜치와 동일한 상태일 것입니다.

앞서 본 것처럼, develop 브랜치에서 기능개발과 릴리즈를 준비합니다. 이런 경우 feature, release브랜치를 develop브랜치로부터 생성해서, 작업을 하게 됩니다.

 

  • feature 👉  개발할 기능을 위한 브랜치입니다. 기능 개발이 완료되면 그 변화가 develop 브랜치로 병합하고, feature브랜치는 제거됩니다.
  • release 👉  배포를 위한 브랜치입니다. 배포 전 마무리 작업과 버그 수정이 이루어집니다. 완료되면 master와 develop 브랜치로 병합됩니다. 역시 릴리즈가 끝나면 제거됩니다.


추가로, master 브랜치에 긴급한 수정이 필요할 때는, hotfix 브랜치를 활용해서 빠르게 배포하기도 합니다.

 

  • hotfix 👉  긴급한 버그 수정을 위한 브랜치입니다. master 브랜치에서 발생한 버그를 고치고 master와 develop 브랜치로 병합합니다. master브랜치를 기준으로 생성하기 때문에, 빠르게 master에 병합해서 버그에 대응할 수 있습니다.

 

 

Git flow는 안정적인 코드 배포를 위한 강력한 전략이지만, 프로젝트가 작을 때는 비효율적일 수 있습니다. 배포주기가 긴 대형 서비스이면서, 서비스의 안정성이 강조되는 경우에 좋은 전략이 될 수 있습니다.



📗 장점

 

  • 안정적인 배포를 위한 구조가 갖춰져 있습니다.
  • 긴 개발 주기에 적합하며, 복잡한 기능 개발과 버그 수정에 유용합니다.
  • 배포 전 마무리 작업과 테스트를 위한 release 브랜치를 사용할 수 있습니다.

 

📙 단점

 

  • 브랜치가 많아지고 관리해야 할 작업이 증가할 수 있습니다. (이를 보완하기 위한 git flow 도구가 있습니다.)
  • 작은 규모의 프로젝트에서는 비효율적일 수 있습니다

 


 

Git Flow는 개발 프로세스를 체계적으로 관리하고 협업을 원활하게 할 수 있는 효율적인 Git branch 전략입니다. 처음 Git을 배우는 사람들에게도 이해하기 쉽고 적용하기 편리한 방법 중 하나입니다.

728x90

'IT > [FE] 위클리 페이퍼' 카테고리의 다른 글

[FE] 📚 자바스크립트 얕은 복사(Shallow Copy) & 깊은 복사(Deep Copy)  (0) 2024.04.11
[FE] 📚 자바스크립트 ==와 ===의 차이  (0) 2024.04.11
[FE] 📚 Git -Branch merge  (0) 2024.04.11
[FE] 📚 CSS에서의 Position  (0) 2024.04.10
[FE] 📚 CSS에서의 Font-size  (0) 2024.04.10
    'IT/[FE] 위클리 페이퍼' 카테고리의 다른 글
    • [FE] 📚 자바스크립트 얕은 복사(Shallow Copy) & 깊은 복사(Deep Copy)
    • [FE] 📚 자바스크립트 ==와 ===의 차이
    • [FE] 📚 Git -Branch merge
    • [FE] 📚 CSS에서의 Position
    serin99
    serin99
    FE 개발자가 되기 위해 공부하는 사람

    티스토리툴바