기사 검색

검색어를 입력하세요
스카이 테크 블로그
배트맨 토토에서 Git/GitLab으로의 마이그레이션 사례: 개발 프로세스 최적화를 향하여

배트맨 토토에서 Git/GitLab으로의 마이그레이션 사례: 개발 프로세스 최적화를 향하여

이 문서에서는 배트맨 토토에서 Git/GitLab으로 마이그레이션하는 방법에 대해 설명합니다 배트맨 토토의 운영상의 문제점을 정리하고, Git/GitLab으로 마이그레이션할 때의 이점과 구체적인 마이그레이션 프로세스, 운영 개선 효과를 설명합니다

1 소개

배트맨 토토은 아직도 많은 기업에서 사용하고 있으며, 버전 관리 시스템(VCS) 초기부터 많은 프로젝트를 지원해 왔습니다
배트맨 토토은 단순하고 중앙화된 모델로 인해 높은 신뢰성을 자랑하지만분산 개발과 빈번한 연속 릴리스가 표준이 되면서 설계 가정의 변경에 독창성과 보완이 필요한 상황이 점점 더 많아지고 있습니다

이 문서는 배트맨 토토을 운영 중이거나 Git/GitLab으로 마이그레이션을 고려 중인 사람들을 위한 것입니다배트맨 토토 운영에 관한 이슈를 정리하고 Git/GitLab을 통해 얻은 이점과 지식을 공유하는 것이 목적입니다

배트맨 토토에서 Git/GitLab으로 이동하는 것은 단순한 버전 제어 도구 전환 그 이상입니다
Git의 빠른 작동성, 유연한 분기 및 강력한 병합 기능을 결합하여 배트맨 토토의 병합 요청(MR) 검토, Issues를 통한 문제 관리, CI/CD를 통한 자동화,개발 속도와 품질의 균형을 이루는 개발 프로세스를 실현하는 것이 가능해졌습니다

이번에는 좀 늦었어요우리는 개발 효율성과 품질을 향상시키기 위해 100명이 참여한 개발 프로젝트에서 배트맨 토토에서 Git/GitLab으로 마이그레이션했습니다
이 기사에서 우리는 이러한 노력의 세부사항을 소개할 것입니다

또한, 우리는 앞으로 여러 차례에 걸쳐 각 테마를 심도있게 소개할 것입니다

2 이번에 Git 도입으로 개선 효과 기대

배트맨 토토 운영의 일부 문제는 Git으로 마이그레이션하여 해결할 수 있습니다상당히 감소됨나는 그것이 가능하다고 봅니다
여기에서는 마이그레이션 이전에 나타났던 주요 이슈와 Git 마이그레이션으로 인한 개선 효과를 요약해 보겠습니다

21 대규모 저장소 확인 및 업무 효율성에 미치는 영향

대규모 저장소의 경우 체크아웃에 몇 분 정도 소요됩니다변경 사항이 많은 경우 분기를 전환하는 데 몇 분 이상이 소요되었습니다
지역적 차이가 획득되거나 히스토리 간의 차이가 획득될 때마다 수초~수분의 대기 시간이 발생하여 작업 효율성이 저하됩니다

Git Packfile 최적화로 인한 빠른 복제 속도
Git은 Packfile 최적화라는 메커니즘을 사용하여 통신 트래픽을 최소화하므로 복제가 몇 분 안에 완료될 수 있습니다 저장소가 로컬이기 때문에 업데이트와 차이점 획득도 충분히 빠르므로 개발자는 기다릴 필요가 없습니다
*로컬 환경에 저장소를 확보하는 작업을 배트맨 토토에서는 체크아웃, Git에서는 복제라고 합니다

22 높은 지점 운영 비용 및 경쟁 위험

배트맨 토토에서는 분기 및 병합 작업이 상대적으로 무겁기 때문에 사람들은 분기를 피하고 트렁크에 직접 커밋하는 경향이 있습니다
기능 추가 및 수정이 트렁크에 집중되어 출시 직전에 충돌이 발생하고, 충돌을 잘못 해결하여 빌드 오류 및 후퇴를 일으킬 위험이 있었습니다

Git 경량 브랜치의 장점
Git 브랜치는 가볍고 즉시 생성 및 삭제가 가능합니다 또한 분산 버전 관리 시스템이므로 개발자는 독립적인 로컬 저장소에 자유롭게 커밋하고 분기할 수 있습니다 이러한 장점을 활용한 빈번한 Merge Request 기반 작업을 통해 충돌을 작고 빈번하게 해결할 수 있으며 결과적으로 충돌 위험을 크게 줄일 수 있습니다

23 코드 검토 및 승인 프로세스의 운영 문제

배트맨 토토 운영은 주로 패치 파일 공유와 대면 리뷰를 포함하며, 리뷰 요청 및 이슈 이력을 관리하려면 일정 수준의 독창성이 필요했습니다
구체적으로 대면 검토 시간을 조정하고 제기된 사항과 답변 내용/상황을 엑셀 등을 활용하여 적절하게 관리할 필요가 있었습니다
또한 표시 및 수정 이력을 체계적으로 관리할 수 있는 시스템이 없기 때문에,``누가'', '언제'', '어떤 점'이 만들어졌고, '누가', '언제'', '어디에서' 수정이 흩어지고 파편화되는 일련의 역사

배트맨 토토의 병합 요청을 사용한 중앙 집중식 검토 관리
배트맨 토토의 Merge Request 기능을 사용하면 배트맨 토토에서 리뷰 요청부터 병합까지 모든 것을 중앙에서 관리할 수 있으며, 이슈 관리 시스템인 배트맨 토토 Issue와 연동하고 Merge Request의 리뷰 포인트와 응답 내역을 자동으로 기록함으로써 리뷰의 시각화 및 추적이 크게 향상됩니다 라인별 변경 내역이 링크된 Merge Requests도 참고할 수 있어 추후 구현 배경과 이력을 쉽게 확인할 수 있습니다

24 품질 게이트(CI) 구축의 장애물과 한계

배트맨 토토 환경에서 트렁크에 커밋하기 전에 빌드, 테스트 및 정적 분석을 자동으로 실행하고 실패할 경우 트렁크에 대한 커밋을 방지하는 품질 게이트를 구축하려면 Jenkins와 여러 도구의 조정이 필요하므로 구성 및 운영 비용이 증가하고 운영 오류 위험이 증가합니다
트렁크에 커밋하기 전에 사람의 오류를 감지하기 어렵고 커밋 후에 오류와 문제가 감지되어 배포 준비 재커밋 및 재실행과 같은 관련 당사자 간의 조정 비용이 증가합니다다음의 위험이 있었습니다 14338_14352|

배트맨 토토 CI/CD 파이프라인 정의 및 이점
배트맨 토토 CI/CD를 사용하면 저장소로 파이프라인 정의(배트맨 토토-ciyml)를 관리하여 병합 요청 기반으로 빌드, 테스트 및 정적 분석을 자동으로 실행하고 통과/실패를 병합 조건에 통합할 수 있습니다 웹 UI에서 실패 지점을 즉시 확인하고 파이프라인이 녹색이 ​​될 때까지 병합을 차단할 수 있기 때문에 체계적으로 인적 오류를 제거하고 저렴한 비용으로 안정적인 품질 게이트를 달성할 수 있습니다 이는 릴리스 품질을 향상시킬 뿐만 아니라 팀의 심리적 안정감을 높여 더욱 안심하고 개발을 진행할 수 있는 환경을 조성합니다

25 대규모 바이너리 파일 관리 문제

바이너리 파일을 배트맨 토토에 커밋하면 저장소가 커집니다
이는 유용성과 체크아웃 시간에 부정적인 영향을 미쳤습니다

Git 대용량 파일 저장소(LFS) 정보
Git에는 Git Large File Storage(LFS)라는 대용량 파일 관리 확장 기능이 있습니다 이를 통해 대용량 바이너리 등을 포인터로 관리할 수 있으며 저장소가 너무 커지는 것을 방지할 수 있습니다

26 마이그레이션 전후 비교표

다음은 배트맨 토토 운영 중 및 Git 마이그레이션 이후 주요 개선점 목록입니다

아이템 마이그레이션 전(배트맨 토토) 마이그레이션 후(Git/배트맨 토토)
체크아웃 시간 몇십분 몇 분 내로
브랜치 전환/생성 몇 분 즉시
지역차/역사차 획득 초에서 분 즉시
병합 충돌 위험 높음(출시 직전에 집중하는 경향) 낮음(소형 단위의 초기 해상도/높은 빈도)
코드 검토 낮은 효율성(패치 파일 전송/대면, 기록 배포/조각화) 고효율(MR을 통한 중앙관리, 이력자동화)
검토 요청의 장애물 업무/정신적 부담이 큼(리뷰 요청, 패치 파일 생성, 시간 조정, 리뷰 관리 테이블 생성 등) 낮은 업무/정신적 부담(MR로 쉽고 빠르게 요청 가능)
리뷰 관리 노력 대형 소형
품질 게이트 수동 조작으로 구축 및 유지 관리가 어려움 CI/CD를 통한 자동화, 표준화 및 품질 안정성
사람의 오류 감지 높은 비용(커밋 후 감지, 재작업/재조정 비용) 저비용(MR 장치 병합 전 차단)
운영/유지보수 시스템 많은 연구량, 개인 지원 배트맨 토토의 시각화 및 추적성 개선, CI/CD로 자동화

3 마이그레이션 계획 및 실행

31 마이그레이션 목표 정의

우리는 개발 속도와 품질을 동시에 향상시키고 마이그레이션 후 혼란과 릴리스 오류를 방지하는 것을 주요 목표로 설정했습니다

32 마이그레이션 시기 결정

기능 개발을 위해 적시에 Git/GitLab으로 마이그레이션하여 기능 개발에 미치는 영향을 줄였습니다
전환 당시 배트맨 토토은 동결되었으며 Git/GitLab은 완전히 작동했습니다
마이그레이션 고려/준비 기간 동안 기능 개발과 병행하여 작업해야 했기 때문에 3~4개월의 준비 시간을 따로 확보했습니다

33 마이그레이션 방법 및 도구 선택/검증

마이그레이션 도구로 git-배트맨 토토을 선택하고 사전에 절차와 마이그레이션 품질을 확인했습니다
git-배트맨 토토을 사용하면 배트맨 토토의 커밋 기록을 포함하여 Git으로 마이그레이션할 수 있습니다
대형 저장소의 경우 기록을 변환하는 데 시간이 걸릴 수 있습니다
이번에는 트렁크만 변환하는데 8시간 이상이 걸렸습니다
또한마이그레이션된 데이터의 무결성을 보장하기 위해 마이그레이션 전후의 모든 파일의 해시 값을 계산하고 일치시키는 스크립트를 생성그렇습니다

문제: 빈 폴더 누락으로 인한 빌드 실패

  • 내용/원인
    Git은 빈 폴더를 관리하지 않으므로 마이그레이션 후 빈 폴더가 존재하지 않는 것을 발견했습니다 사전 검증 과정에서는 파일 해시와 기록에만 초점을 맞추고 빈 폴더 처리를 간과했습니다
    빈 폴더가 존재한다는 가정하에 빌드 스크립트가 구현되어 빌드가 실패했습니다
  • 대책
    마이그레이션 전후 저장소에 있는 모든 폴더를 비교하여 빈 폴더를 식별했습니다 필요한 빈 폴더의 경우 *gitkeep*c

34 바이너리 파일 관리 검토(LFS 도입 고려)

거대한 바이너리를 커밋할 때 Git 저장소가 비대해지기 때문에 우리는 Git 대용량 파일 저장소(LFS)를 사용하여 바이너리 파일을 관리하는 방향으로 전환했습니다
배트맨 토토에서 Git으로 변환할 때 바이너리 데이터의 기록도 포함되어 변환 직후 저장소 용량이 커졌습니다
따라서 ``git filter-repo''라는 도구를 사용하여 바이너리 데이터의 기록을 삭제했습니다
이것으로작업 속도를 향상시키기 위해 저장소 크기를 12GB에서 4GB로 크게 압축했습니다

35 지점 전략 설계

생산을 위해 우리는 git-flow를 기반으로 한 분기 전략을 채택했습니다
릴리스 브랜치 구조, 운영 규칙 및 구체적인 예를 명확하게 문서화하여 팀 내에서 통일된 이해를 목표로 했습니다

36 품질 게이트 구축

우리는 배트맨 토토의 CI/CD 기능을 활용하여 품질 게이트를 구축했습니다
다양한 기존 정적 분석 메커니즘을 재설계하고 소스 코드에서 특정 키워드를 확인하고 병합 요청 생성 시 자동으로 실행함으로써 우리는 항상 개발 브랜치의 상태를 보장했습니다
그러므로안정화된 코드 품질 및 개발자에게 빠른 피드백실현되었습니다

배트맨 토토의 CI/CD(지속적 통합/지속적 배포) 기능은 소스 코드 변경에 따라 빌드, 테스트, 배포 등의 프로세스를 자동화할 수 있는 메커니즘입니다 배트맨 토토에는 CI/CD 기능이 기본으로 제공되며 배트맨 토토의 저장소와 연결하여 코드 변경 감지부터 빌드/테스트, 결과 알림까지 모든 것을 한 번에 자동화할 수 있습니다
*CI는 개발자가 일상적인 작은 코드 변경 사항을 공유 저장소에 자주 통합하고 통합될 때마다 자동으로 정적 분석, 테스트 및 빌드를 수행하여 결함과 오류를 조기에 감지하고 수정하는 것을 말합니다

37 운영 규칙의 수립

Merge Request에 의한 코드 검토 및 승인/병합 규칙, 다양한 네이밍 규칙, 이슈/태그 운영 정책을 개발하였습니다
그러므로Git 운영을 표준화하고 팀 간 이해 불일치 위험을 줄입니다실현되었습니다

38 종합설명회 실시 및 자료 배포

Git/배트맨 토토으로 마이그레이션할 때는 기존 운영 방식과 크게 다른 개념과 운영 체제를 배우는 것이 필요하며 일반적으로높은 학습 비용이 우려됨로 나열됩니다
특히, 우리는 전환에서 중요한 점은 모든 개발 구성원이 분산 저장소의 개념, 분기 전략 및 Git/배트맨 토토의 기본 작업에 익숙하도록 하는 것임을 인식했습니다
따라서,환경 구축 절차, 운영 매뉴얼 및 교육 자료는 비즈니스를 최대한 고려하여 철저하고 포괄적으로 준비되었습니다그렇습니다

또한 불분명한 사항이나 오류에 대한 문의가 있을 경우에는 이를 즉시 자료에 반영하였습니다
Git 개념과 과거의 변경 사항을 문서로 요약한 것,모든 개발 구성원을 대상으로 종합 설명회를 개최하여 전환 초기 단계의 혼란을 최소화했습니다다 끝난 것 같아요

다양한 자료의 경우, 우리는 정적 웹사이트를 배트맨 토토 저장소에서 직접 게시할 수 있는 메커니즘인 배트맨 토토 Pages를 사용했습니다 배트맨 토토 Pages에 대한 빠른 수정과 자동 배포가 가능한 CI/CD 환경을 개발하여 문서를 빠르게 수정하고 게시할 수 있도록 했습니다
*우리는 마크다운 파일에서 정적 사이트를 생성할 수 있는 "Vite Press"라는 프레임워크를 사용했습니다

39 마이그레이션 후 운영 및 유지관리 시스템 설계

마이그레이션 진행 중~마이그레이션이 완료된 후에도 마이그레이션 담당자가 문의사항에 대해 답변을 해주고 신속하게 문서에 반영하였습니다
따라서 우리는 운영을 안정화하고 프로세스를 지속적으로 개선하기 위해 노력했습니다

배트맨 토토 Issues를 통해 문의를 제기하여 유사한 문의 발생을 방지하고 응답 이력을 시각화하여 정보와 지식을 공유합니다

4 결론

배트맨 토토에서 Git/GitLab으로의 전환은 단순한 도구 변경이 아니라 전체 개발 프로세스를 최적화하기 위한 출발점이었습니다
향후 이를 기반으로 CI/CD 등을 확대해 나갈 예정입니다개발 경험의 지속적인 개선 (*)

*개발자 경험(DX)은 개발자가 소프트웨어 설계, 구현, 운영 과정에서 느끼는 "사용 용이성, 편안함 및 만족감"을 말합니다 효율적인 개발 환경과 프로세스 설계를 통해 최종 제품의 품질과 직결되는 중요한 개념으로 간주됩니다


\공유해주세요! /
  • X
  • 페이스북
  • LINE

회사에 입사한 후 기술을 향상시키고 싶은 젊은 사람이든, 다양한 분야에서 자신의 경험을 활용하고 싶은 베테랑이든, 우리는 각 개인의 경험에 맞는 중견 채용을 제공합니다

스카이코퍼레이션의 소프트웨어 개발, 제품, 채용에 관한 문의사항은 아래 링크를 확인해주세요
문의하기