NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 팁 앤 테크
  • 매뉴얼

    팁과 테크니컬 노하우를 확인하세요.

    팁 앤 테크

    팁과 테크니컬 노하우를 확인하세요.

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    기타 3부 - 여러 버전의 스크립트를 바꿔가면서 테스트하기.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 1부에서 소스 콘트롤인 깃헙을 설치하고 환경을 구성했습니다. 2부에서는 VSC에서 엔지엠의 스크립트, 이미지 및 설정 정보들의 이력을 관리할 수 있는 방법을 알아보았구요. 그리고, 스크립트를 되돌리는 방법도 알아봤는데요. 이번에는 Reset, Revert, Drop과 같이 삭제하는게 아닌 체크아웃으로 작업 버전을 이동하는 방법을 알아볼께요. 보통은 브랜치를 전환할 때 Checkout to...를 이용합니다. 우리는 마스터 브랜치뿐이라 뭐 복잡한건 없어요^^; 아무튼 다른 작업자가 만든 브랜치에서 이어서 작업한다면 아래 그림처럼 Checkout to... 를 이용해서 이동하면 됩니다.

    HO8a65k.png

     

     

    테스트를 위해 아래와 같은 스크립트를 만들고 저장했습니다.

    HWWeHGh.png

     

     

    VSC에서 커밋하고, Git Graph를 보면 아래와 같이 커밋한 버전이 추가되어 있을겁니다.

    ldx8EPb.png

     

     

    이력이 중요한 작업이기 때문에 가급적이면~ Reset은 사용하지 않는게 좋습니다. 하지만, 버전이 많아지고 복잡해지면 불필요한 커밋은 삭제하는게 좋겠죠? 설명(Comment)만 잘 달아두면 특별히 문제가 발생하지는 않을거예요. 아무튼, 아래와 같이 이동하고 싶은 버전에서 Checkout하면 즉각 변경된 모든 내용들이 해당 버전으로 돌아갑니다.

    Q3vKVcz.png

     

     

    에디터에서 스크립트를 다시 열어볼까요?

    HvLoODs.png

     

     

    원래 상태로 잘 돌아갔죠? 작업 단위를 스크립트와 이미지로 묶어서 커밋한다면, 스크립트에서 사용되는 이미지들도 모두 해당 버전으로 되돌아 가게 됩니다. 복잡한 작업을 진행하던 중이라면 이미지들도 어떤 것들이 변경되었는지 알기는 쉽지 않습니다. 특히나 작업이 길어지고 수정되는 항목들이 많아질수록 더이상 사람의 머리로는 관리가 안됩니다. 되는분도 있을지 모르겠지만요^^;

     

    깃은 몇가지 중요한 내용만 잘 기억하면 됩니다. 파일의 상태는 3가지로 관리되는데요. committed는 어떤 수정도 없는 상태를 말합니다. 보통 git clone으로 소스를 받은 모든 파일의 상태입니다. commit을 수행해도 그렇죠. 두번째로 modified인데요. committed 상태에서 수정하게되면 modified가 됩니다. 이때는 Git GUI에서 Unstaged가 되며, 이전 글에서와 같이 커밋하기 위해 git add(Staged)를 수행합니다. 그 후 코멘트를 넣고 commit하게 되는거죠.

    EYNNmgx.png

     

     

    깃을 사용하기 어렵게 만드는 가장 큰 요인은 관리 상태 또는 흐름을 시각적으로 확인할 수 없다는 점입니다. 이점은 개발자도 동일하게 어려워하는 부분이고, 각각의 명령이 어떤 기능을 수행하는지도 자세하게 설명되어 있지 않습니다. 그래서, 협업을 위해 무턱대고 깃을 도입했다가 러닝커브를 넘지 못하고 과거로 회귀하는 경우들도 있습니다. 프로젝트 기한은 정해져 있는데 깃을 잘못 사용해서 발생되는 여러가지 문제들을 해결하는데 너무나 많은 비용이 발생하기 때문입니다. (정말 거지같은 시스템이라고 느껴질때가...)

     

    중요한 몇가지를 숙지하고 규칙을 잘 따르면 이만큼 편리한 소스 콘트롤도 없을겁니다. 처음 프로젝트를 시작하면 깃에대해 학습하면서 여러가지를 준비할 수 있는데요. 중도에 투입이 되면 제대로 알려주는 사람 없이 소스 커밋했다가 낭패를 보는일이 많이 발생합니다. 이런 경우 git clone 후 git checkout로 개발을 시작할 수 있는 브랜치로 전환해야 합니다. 그 후 git pull을 통해 최신 버전과 동기화하고 변경된 소스를 커밋합니다. 그리고~ git push로 서버에 반영하면 됩니다.

     

    아무튼~ 실수로 브랜치가 지저분해질 수 있는 요소들이 많은데요. VSC 확장에는 커밋하기 전에 Pull을 받을 수 있기도하고, Post Commit Command에서 Pull, Push을 자동으로 처리도 가능합니다. 다른 개발자가 먼저 머지하는 경우 자동으로 분기되는 브랜치들을 방지하려면 Pull을 잊지 말아야 합니다. 제가 자주하는 실수이기도 한데요. Eclipse나 Visual Studio는 커밋하기전에 자동으로 Pull하는 기능이 있는데 VSC는 어디에 있는지 모르겠군요^^;

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천1 비추천0

    댓글목록

    등록된 댓글이 없습니다.