데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      야구로 쉽게 이해해 보는 Git Flow 전략 이야기

      broccoli 24.08.23
      3,312 13 0
      DEVOTEE 요약
      Git Flow 전략을 야구팀의 시즌 준비 과정에 비유하여 설명했습니다. 야구팀이 시즌을 준비하고 연습 경기를 치르고 경기 후 분석하는 것처럼, 메인 브랜치, 디벨롭 브랜치, 피처 브랜치 등을 사용해 소프트웨어 개발 과정을 관리합니다. 경기 중 문제 발생 시 버그 수정 브랜치와 핫픽스 브랜치를 생성해 수정하고, 상용 환경에 배포한 후에도 지속적으로 개선하며 다음 개발 주기를 준비합니다.
      DEVOTEE 추천 블로그

      IT분야의 기술 또는 기법 도입 배경을 이해하기 쉽게 설명하기 위해 스토리텔링 형식으로 정리를 시도해 보고 있습니다.
      요즘 새로운 프로젝트를 시작하고 있어 팀원들과 Git Flow 전략에 대해 서로 소통하는 시간을 가졌습니다.

      야구팀의 시즌 준비, 훈련, 경기 출전, 그리고 경기 후 분석까지의 과정에 비유하여 Git Flow 전략을 설명합니다.

      각 단계는 브랜치 관리와 함께 상용기 배포 이후의 테스트 및 결함 수정 절차를 포함하며,

      "Main/Develop/Feature/Stage/Bugfix/Hotfix Branch"라는 용어를 사용하여 전체 과정을 설명합니다.

      1. 개발 환경 준비 단계 = 팀 구성 및 훈련장 준비

      야구 시즌이 다가오면, 팀은 선수단을 구성하고 훈련장을 준비합니다. 각 선수들은 장비를 점검하고, 훈련할 준비를 마칩니다.

      코칭 스태프는 각 선수의 역할을 명확히 하고, 시즌을 대비한 훈련 계획을 세웁니다.

      • 메인 브랜치(Main Branch): 주전 선수 명단과 같습니다. 이 브랜치는 항상 안정적이고, 배포 가능한 최종 상태를 반영해야 합니다.

      • 디벨롭 브랜치(Develop Branch): 훈련장과 같습니다. 여기서 새로운 전략을 시도하고, 모든 코드가 처음으로 통합됩니다.

      이 단계에서는 개발자들이 로컬 환경을 설정하고, 메인 브랜치와 디벨롭 브랜치를 클론하여 같은 출발점에서 작업할 수 있도록 준비합니다.

      2. 피처 개발 = 전술 연습 및 훈련

      시즌이 시작되기 전에, 각 선수는 자신의 포지션에 맞는 전술을 연습합니다.

      예를 들어, 타자는 새로운 타격 기술을 연습하고, 투수는 다양한 구질을 연습합니다. 팀은 이러한 훈련을 통해 전반적인 경기력을 향상시킵니다.

      • 피처 브랜치(Feature Branch): 선수들이 개별 전술을 연습하는 과정입니다.

        개발자는 새로운 기능이나 개선 사항을 구현하기 위해 피처 브랜치를 만듭니다.

        이 브랜치는 디벨롭 브랜치에서 파생되며, 작업이 완료되면 다시 디벨롭 브랜치로 병합됩니다.

      이 단계에서 개발자들은 각각의 피처 브랜치에서 독립적으로 작업하여 새로운 기능을 개발하고, 테스트를 진행합니다.

      3. 개발기 배포 = 연습 경기

      새로운 전술과 전략이 충분히 연습되었다면, 팀은 연습 경기를 통해 이를 시험합니다.

      연습 경기는 실제 경기와 유사한 상황에서 이루어지며, 팀이 준비한 전략을 적용해 보는 기회입니다.

      이 과정에서 문제점을 발견하고, 이를 수정합니다.

      • 디벨롭 브랜치(Develop Branch): 연습 경기를 위한 무대입니다.

        모든 피처 브랜치에서 병합된 코드가 디벨롭 브랜치에 모이며, 개발 환경에서 테스트가 이루어집니다.

      이 단계에서는 디벨롭 브랜치에 병합된 모든 기능을 개발 환경에 배포하여, 실제로 어떻게 작동하는지 확인합니다.

      개발 환경에서의 테스트는 다음 단계로 진행하기 전에 필수적입니다.

      4. 스테이징기 배포 = 최종 시뮬레이션 경기

      시즌 개막을 앞두고, 팀은 최종 시뮬레이션 경기를 진행합니다.

      이 경기는 실제 경기와 유사한 조건에서 이루어지며, 경기 전 마지막 점검을 위한 중요한 단계입니다.

      시뮬레이션에서 팀은 전술을 시험하고, 경기력을 최종적으로 확인합니다.

      • 버전 결정(Versioning): 스테이지 브랜치 단계에 진입할 때, 버저닝이 이루어집니다.

        이 버전은 QA 팀과의 소통에 일관성을 유지하도록 사용되며, 테스트 과정에서의 참조를 명확하게 합니다.

        이 버전은 최종 배포가 이루어지는 메인 브랜치에서도 동일하게 사용됩니다.

      • 스테이지 브랜치(Stage Branch): 최종 시뮬레이션을 위한 브랜치입니다.

        디벨롭 브랜치에서 파생된 스테이지 브랜치는 스테이징 환경에서 최종 점검을 받습니다.

        모든 준비가 끝난 후, 이 브랜치는 메인 브랜치로 병합되어 실제 배포에 들어갑니다.

      5. 스테이징기 배포 이후 = 시뮬레이션 경기 후 테스트 과정

      시뮬레이션 경기가 끝나면, 팀은 경기 중 발생한 모든 상황을 분석합니다.

      이 과정에서 전술이 제대로 작동했는지, 팀의 협력은 어땠는지, 개별 선수들의 경기력이 목표한 대로 발휘되었는지 등을 평가합니다.

      • 테스트 과정: 스테이징 환경에서의 테스트는 다양한 시나리오를 통해 소프트웨어가 예상대로 작동하는지 확인하는 과정입니다.

        여기에는 자동화된 테스트, 수동 테스트, 그리고 사용자 시나리오 기반 테스트가 포함됩니다.

        이 테스트를 통해 소프트웨어가 상용 환경에 배포될 준비가 되었는지를 확인합니다.

      6. 결함 발생 시 = 시뮬레이션 경기 중 문제점 발견

      시뮬레이션 경기 중 예상치 못한 문제가 발생할 수 있습니다.

      예를 들어, 특정 상황에서 선수들의 전술이 제대로 작동하지 않거나, 경기 중 협력이 원활하지 않은 경우가 있을 수 있습니다.

      이 경우, 코칭 스태프는 즉각적으로 문제를 파악하고, 이를 해결하기 위한 방안을 모색합니다.

      • 버그 수정 브랜치(Bugfix Branch): 만약 스테이징 환경에서 결함이 발견되면, 새로운 버그 수정 브랜치를 생성하여 이를 수정합니다.

        이 브랜치는 스테이지 브랜치에서 파생되며, 수정된 내용은 다시 스테이지 브랜치로 병합됩니다.

      • 버그 수정 시 버전 관리: 경미한 결함이 발생하고, 이 결함이 빠르게 수정될 수 있다면, 기존 버전 내에서 패치를 적용할 수 있습니다.

        이 경우, 기존 버전 번호는 그대로 유지되며, QA 팀과의 소통에서 혼란을 줄일 수 있습니다.

      • 수정 후 재테스트: 결함이 수정된 후, 다시 테스트를 진행합니다. 수정된 코드가 문제를 제대로 해결했는지, 그리고 다른 기능에 영향을 주지 않았는지를 재확인합니다.

        이 과정에서 모든 문제가 해결되었다고 판단되면, 스테이지 브랜치는 메인 브랜치로 병합되고, 최종 배포가 준비됩니다.

      7. 상용기 배포 = 중요한 경기 출전

      모든 준비가 끝나면, 팀은 중요한 경기에 출전합니다.

      그동안의 훈련과 준비가 경기에서 성과를 낼 수 있는 순간입니다.

      팀은 최고의 경기력을 발휘하여 승리를 목표로 합니다.

      • 메인 브랜치(Main Branch): 주전 선수들과 같습니다.

        이제 메인 브랜치에 병합된 코드는 상용 환경에 배포되며, 모든 사용자가 이 코드를 사용하게 됩니다.

      이 단계에서는 메인 브랜치로 스테이지 브랜치를 병합하고, 최종적으로 상용 환경에 배포합니다.

      사용자는 최신 기능과 개선된 성능을 경험할 수 있으며, 팀은 이 경기에서의 승리를 목표로 합니다.

      8. 상용기 배포 이후 = 경기 후 분석 및 다음 시즌 준비

      중요한 경기를 승리로 이끈 후, 팀은 다음 경기를 위해 준비해야 합니다.

      경기 후 팀은 자신들의 경기력을 분석하고, 잘된 부분과 개선이 필요한 부분을 검토합니다.

      코칭 스태프는 다음 경기를 대비하여 훈련 계획을 새로이 수립하고, 선수들은 새로운 전략을 연습하기 시작합니다.

      • 핫픽스 브랜치(Hotfix Branch): 경기 중에 발견된 작은 문제들을 신속하게 해결하는 과정입니다.

        만약 상용 환경에서 긴급한 버그가 발견되었다면, 핫픽스 브랜치에서 이를 수정하고 메인 브랜치와 디벨롭 브랜치에 반영합니다.

      • 메인 브랜치 → 디벨롭 브랜치 병합: 상용기 배포 후, 메인 브랜치에서 이루어진 모든 변경 사항은 디벨롭 브랜치로 병합되어야 합니다.

        이를 통해 디벨롭 브랜치는 최신 상태를 유지하며, 다음 개발 주기를 위한 준비가 완료됩니다.

      • 디벨롭 브랜치(Develop Branch): 메인 브랜치에서 병합된 변경 사항을 포함한 최신 상태로 돌아가, 새로운 기능 개발을 위한 준비 상태를 유지합니다.

      • 피처 브랜치(Feature Branch): 새로운 기능 개발이 다시 시작됩니다. 각 개발자는 새롭게 할당된 피처 브랜치에서 작업을 시작하며, 이 작업은 결국 디벨롭 브랜치로 병합됩니다.



      결론: Git Flow 전략의 지속적인 개선과 배포

      Git Flow 전략은 야구팀이 시즌 중 경기를 준비하고, 경기를 치르고, 다음 경기를 준비하는 과정과 유사합니다.

      각 단계에서의 철저한 준비와 검토는 최종 배포가 안정적이고, 사용자에게 최상의 경험을 제공할 수 있도록 보장합니다.

      특히, 상용기 배포 후에는 메인 브랜치의 변경 사항을 디벨롭 브랜치에 병합하여 다음 개발 주기를 위한 준비를 마무리해야 합니다.

      참고할 만한 도식화된 그림

      츨처: https://medium.com/@yanminthwin/understanding-github-flow-and-git-flow-957bc6e12220



      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      broccoli 님의 최신 블로그

      더보기

      DEVOTEE 추천 블로그

      동영상 기고하기