협업을 하게 되면 필수로 사용하는 개발도구 중 하나는 형상 관리 툴이다. 형상 관리 툴에는 Git, SVN, CVS 등이 있고 팀 구성원에게 익숙한 것을 사용하게 된다. 좋은 도구임에는 틀림이 없으나 형상 관리 툴을 관리하는 사람이 없으면 사실상 골치 덩어리로 전락한다. 따라서, 사용하게 된다면 팀원 모두 사용법을 익히고 관리할 사람을 정해 뒤죽박죽 되지 않게 해야 한다.
팀이 아닌 나 홀로 개발자에게도 형상 관리 툴은 유용하다. 나는 다음과 같은 이유에서 GIT을 쓴다.
1) 버전 관리
버전 관리라고 해서 특별난 것은 아니다. 일부 기능이 완성된 후, 일단 GIT에 올리고 다음 작업을 한다. 작업하다 보면 여기 조금 저기 조금 고치게 되는데 어느 순간 블랙홀에 빠진다. 그럴 때는 GIT을 사용해서 변경된 부분을 확인하고 원복이 가능하다.
2) 주석의 한계
한 때 코드에 주석을 길게 달곤 했다. 수필 수준으로 말이다. 문제는 곳곳에 수필이 쓰이면서 언제 쓰인 것인지 코드와 주석은 동일하게 수정된 것인지 등등 난감해지는 경우가 생긴다. 주석 관리가 어려울 경우 간단한 설명만 하고 중요한 시점에 변경 부분을 커밋하여 관리하자. 물론 커밋은 테스트된 후에 해야 한다.
3) 백업 도구
하드웨어 개발자라도 소프트웨어 개발을 병행하는 사람이 있고 최소한 MCU 코딩은 기본적으로 할 줄 알아야 한다는 것이 내 생각이다. 내가 아는 분은 하드웨어 개발자로서의 능력도 뛰어나고 MCU 제어도 편하게 한다. 그런데 소스 관리에 대한 경험은 부족해야 양산 버전의 코드를 압축 후에 날짜와 일부 코멘트로 관리하는 것을 봤다. 그러다 하드 디스크 날아가면 어쩌시려고... 클라우드 서비스도 많지만 소스 코드를 편하게 관리하기 위해서는 부족하다. 이런 경우 GIT은 좋은 백업 도구가 된다. 용량 큰 데이터를 올리기는 부담이겠지만 일반적인 소스코드를 올리기에는 충분하다.
4) 경력 관리
회사를 옮기거나 할 때 자신이 했던 것을 요약하거나 보여줄 때 유용할 수 있다. 따로 정리해 두지 않으면 머리를 굴려 과거의 어느 시점으로 가서 하나씩 복기해야 한다. 평소에 하나하나 정리해서 이력서를 업데이트하는 것이 제일 좋겠지만 그런 성격이 아니다면 GIT이 대안이 될 수 있다. 언제 뭘 했는지 어떤 성과가 있었고 어떤 문제가 있었는지 물론 회사의 소유인 소스코드라면 외부에 노출되지 않게 잘 관리를 해야 하며 자신의 GIT으로 옮기는 것이 문제의 소지가 되면 위험을 감수할 필요는 없다. 그냥 간단하게 repository를 생성하여 README.md 파일에 적는 것도 충분하리라 생각된다.
5) 소스 코드 공유
개인 프로젝트라고 해도 필요한 사람이 있다면 공유할 수 있다. 이럴 때 소스코드를 압축해서 넘기는 것은 머리 무거운 일이다. 받는 사람도 귀찮고 지메일 같은 경우 보안 문제로 전달이 되지 않을 수 있다. repository에 접근 권한을 주어 손쉽게 공유할 수 있다.
6) Private repository
이전에는 github에서 private repository를 사용하기 위해서는 유료 등록이 필요했다. 그래서 gitlab을 사용했는데 이제는 github에서도 무료로 private repository 사용이 가능하다. 물론 기능에 제한은 있지만 개인 사용자 입장에서는 충분하다고 본다. 타인에게 노출할 수 없는 내용은 사실상 private repository를 사용해야 한다. gitlab은 물론 github도 private repository를 무료로 사용 가능하니 이보다 좋을 수 있겠는가.
7) 참조용 소스 코드 관리
개발을 하다 보면 오픈 소스를 참조하는 경우가 많이 이런 소스 코드는 대부분 github 또는 gitlab에 등록되어 있는 경우가 많다. 참조할 코드의 주소를 따로 적어 두거나 북마크 해두고 다음에 봐야지 하면 찾기 어려운 경우가 많다. 이런 문제는 git의 fork 기능을 활용하여 해결할 수 있다. fork를 하면 자신의 repository에서 볼 수 있어 다음에 찾아볼 때 확인하기 편하다.
이외에도 여러 목적으로 git을 사용하는 분들이 있을 것이다. 사용을 강제할 수 없겠지만 잇점이 있는 것은 확실하니 사용을 한 번 검토해 보시길.
'놀기 > 잡스러운 것' 카테고리의 다른 글
개발도서, MSDN의 추억 그리고 인터넷 검색 시대 (0) | 2021.07.20 |
---|---|
ASCII 코드 값 (0 ~ 255) (0) | 2021.07.13 |
제안요청서 (RFP, request for proposal) (0) | 2021.07.12 |
나누어진 문자열 순서 뒤집어 붙이기 (0) | 2021.06.25 |
1 프레임짜리 H.264 color bar 영상 & Hex 값 만들기 (0) | 2021.06.25 |
댓글