Git의 목적 |
1. 버전관리
2. 백업
3. 협업
이라고 이고잉님이 정의 하셨습니다. ^-^
Git을 꼭 사용해야 하나? |
꼭 사용할 필요는 없습니다. 간단한 작업이라면 어설프게 git을 다룬다면 프로젝트에 방해가 될 수 있죠. 그렇지만 혼자서 작업한다면 모르겠지만 둘 이상의 사람이 하나의 프로젝트를 진행할 수 있겠죠. 예를들어 한명의 웹퍼블리셔와 또 한 명의 개발자가 함께 협업하는 경우를 들 수 있습니다.
효율적인 형상관리를 위해서. |
산출물들이 변경됨으로써 점차 변해가는 소프트웨어 형상을 체계적으로 관리하고 유지하는 기법이다.
(네이버 지식백과 - 형상 관리의 개념과 절차 (쉽게 배우는 소프트웨어 공학, 2015. 11. 30., 한빛아카데미(주)) 에서발췌)
직관적으로 쉽게 말해보겠다.
1. 프로그램을 완성하고 고객에게 작업물을 보여줬다.
2. "고객이 보고 이기능 수정해 주세요."
3. 기존에 있던 작업물을 지우고 요구사항대로 고침.
4. 고객놈이 와서 "음.. 이 기능보다 저번 기능이 났네요 저번에 그걸로 다시 돌려줘요."
5. (뭐?ㅅㅂ?)
엄청 극단적인 경우지만 git은 이런 경우를 방지해준다. 명령어 한방이면 전에 작업했던 기능으로 돌아간다.
아직도 모르겠으면 이고잉님 동영상 참조 --> 링크클릭
효과적인 작업! |
@ 만약 퍼블리셔가 작업 후 개발서버에 반영하면 생기는 일
퍼블리셔가 파일을 받아 작업 후 해당 파일을 다시 서버에 올리는 경우 만약 그 파일에 개발자가 새로 작업한 내용이 있었다면? 개발자의 작업 내용은 사라지고 기능은 동작하지 않을 수 있습니다. 실제로 이런 일을 자주 겪을 수 있는데요... 이는 git을 사용함으로써 해결할 수 있습니다.
@ Git은 각자의 작업 내용을 클라우드 환경에 저장
git을 사용하면 누가 무엇을 어디서 수정했는지 알 수 있습니다. 모든 변경내용이 서버에 반영되는데 그런 이유로 항상 최근 작업된 내용을 서버에서 가져올 수 있고 또 내가 작업한 내용을 언제든 서버에 반영할 수 있게됩니다. 그렇기 때문에 다른 사람이 새로 작업한 부분을 웨퍼블리셔가 다른 코드로 올리려고하면 conflict가 발생하여 바로 덮어 씌우는 문제가 발생하지 않습니다. 즉 위와 같은 문제는 사전에 예방이 가능하게됩니다.
손쉬운 개발 및 테스트 환경을 구축 |
개발 및 테스트 환경은 Requirements 및 Plan을 기준으로 필요한 환경이 구축되어야합니다. 기본이 되는 파일들을 매번 ftp나 ssh를 사용하여 전달받는 방법은 시간도 오래걸리고 모든 파일이 정확히 업로드 되었는지도 확신하기 어려워 매번 확인과정이 필요합니다. 하지만 git을 사용하면 간단한 명령어로 이런 번거로움으로 해결됩니다. 또한 별도 테스트 및 신규 프로젝트를 진행하는 경우 기존 소스는 그대로 두고 별도의 브랜치를 생성할 수 있으며 이는 독립된 환경을 만들어주기 때문에 새로운 서버 구축 등등의 문제점을 간단하게 해결할 수 있죠.
효율적인 배포관리 |
서비스의 복잡도에따라 배포까지는 몇 번의 과정들을 겪어야합니다. 이때 git을 사용하면 언제든 새로운 내용들을 기록하여 배포할 수 있고 또 장애 등의 문제가 발생하더라도 원하는 배포시점으로 돌아갈 수 있게됩니다. 이를 자세히 알아보려면 아래의 글을 참고하시기 바랍니다.
https://webisfree.com/2017-11-27/gitflow-이해하기-효과적인-배포관리-방안
참조