예전에는 거의 모든 SI 프로젝트에서 SVN을 사용했지만
요즘은 GIT 비율도 슬금슬금 늘어나는 추세다
아마 시간이 지날수록 GIT 비율이 늘어나는게 추세겠지만
그래도 대부분의 프로젝트는
GIT보다는 SVN을 훨씬 많이 쓴다
일단 SVN와 GIT의 결정적인 차이는
SVN이나 GIT이나 서로 온갖 기능이 있다고 하지만
SVN은 한 저장소(Repository)를 가지고
모든 개발자가 동시에 작업을 수행한 뒤
개발 종료 후 그 저장소를 가지고 배포를 하게 되고
GIT은 동일한 저장소에서
각각 Branch를 따간 후 필요한 부분을 개발하고
Master Branch에 합친 뒤(Merge)
Master Branch를 배포하는 식으로 사용하게 된다
일단 대부분의 프로젝트에서는 GIT보다 SVN이 훨씬 유리한데
SVN에도 엄청나게 많은 기능이 있다고는 하지만
99%는 Commit, Update, Override and Update
마지막 1%는 SVN 에러났을 때에
sqlite를 이용한 svn locked, svn cleanup first
에러만 해결할 줄 알면
어떤 프로젝트를 가건
SVN 가지고 작업을 하기에 문제가 없다
SVN은 생초보도 10분이면 다 배우지만
GIT은 10분으로는 어림도 없다는 걸 생각해보면
바로 투입해서 바로 개발해야 하는 SI 프로젝트에는
SVN이 훨씬 경제적이다
그리고 대부분의 프로젝트는
지속적으로 계속 개발할 필요가 없는데
지속적으로 개발하려면 돈도 지속적으로 나가기 때문이다
따라서 요건을 모두 받아놓은 후
그것만 한번에 다 개발해 놓으면
그 이후에는 에러 유지보수 정도를 제외하고는
프로젝트 자체에 손댈 일이 없다는 얘기다
에러도 오픈 후 2-3주면 웬만한 오류가 다 잡혀서
오픈 후에는 개발자 소수에 PM만 빼고
대부분의 개발자가 모두 철수하게 된다
이제 자연스럽게 SVN의 장점이 보일텐데
많은 SI 프로젝트에서는 오픈하면
추가적으로 손이 가지 않는 경우가 대부분이기 때문에
사용하기도 쉽고 직관적인 SVN이 많이 쓰이게 된다
반면 GIT은 변경사항이 많고, 배포가 잦을 경우에 주로 사용되는데
대부분의 SI 프로젝트는 한번 만들어 놓으면 그걸로 끝이지만
포털, 쇼핑몰, 서비스 이런 분야는
변경사항도 많고 배포도 엄청나게 잦아서
대부분은 매주 여러번 배포를 하게 된다
SI 프로젝트는
배포를 몇 달에 한번 하는 걸 생각해보면
엄청나게 차이가 나는거다
그리고 이용자 수 자체가 엄청나게 많고
소스 에러나면 영향이 큰데
SI는 중요한 몇 파트만 제외하면
에러나면 어? 에러났네 이러고 고친 뒤에
점심먹을 때 교체하거나 퇴근 시간에 올리거나
화면단의 경우에는 대놓고 교체해도
눈치채는 사람도 적고 영향도 적은데
포털에서 뭐 하나 바꿀려고
네이버를 내렸다고 하면 그날로 해고 확정이다
(물론 이런데는 서비스를 몇십~몇백개로 쪼개 사용하는 MSA방식이다)
GIT은 개발할 부분이 있으면
master branch를 잘라와서
내 branch를 만들고 그걸 개발해서 검증받은 후
master branch에 합치고
그걸 배포하는 식으로 사용하게 되는데
검증 과정이 붙는 이유가
GIT을 사용하는 경우에는 서비스 규모가 크고
에러나면 영향이 크기 때문에
DBA, QC, 소스 리뷰 등 각종 검증을 거치게 된다
그리고 branch 단위로 합치기 때문에
특정 branch를 합친 후 에러가 발생했다면
그 branch만 다시 떼어놓으면 버전 관리도 간단하다
SVN의 경우에는 대부분 한번에 왕창 개발해서 배포하지만
GIT의 경우에는 요건을 나눠서
지속적으로 개발하면서 배포를 하게 된다
이게 SVN과 GIT을 기술적으로 분리하려고 하면
엄청 어렵게 받아들이게 되는데
단순하게 요약해보자면
한번 개발하고 한동안 추가 개발 없음 - SVN
지속적으로 개발, 코드 안정성 필요 - GIT
이게 결정적인 차이가 되겠다
기술적인 차이가 어쩌고 저쩌고 하지만
솔직히 SVN은 위에 말해둔 4개만 할줄 알면 만점이고
GIT도 하는 동작만 계속 반복하기 때문에 핵심만 알아두면
나중에 누가 물어봐도 물 흐르듯 대답할 수 있을거다
'잡담 > 웹개발(SI) 일지' 카테고리의 다른 글
승진에 관심없다는 말 진짜 맞나? (0) | 2021.02.14 |
---|---|
내가 개발한 프로그램에 에러가 발생할 경우 (0) | 2021.02.14 |
SI 명절 전날 조기퇴근 가능할까? (0) | 2021.02.09 |
SI에서 명절에 출근하는 기준은? (0) | 2021.02.07 |
SI에서 좋은 PM과 계속 일을 하려면 (0) | 2021.02.07 |
댓글