SFTP로 작업하던 회사에 GitLab 도입한 이야기
회사에 git이 없었음. git 계정도 없고, 그냥 SFTP로 운영 서버에 붙어서 파일을 직접 고치는 방식으로 일하고 있었음.
SFTP 직접 작업의 고통
제일 힘들었던 건 프론트 담당자와의 코드 충돌. PHP다 보니 백/프론트가 나눠져 있지도 않고 API 방식도 아니라서, 같은 파일을 서로 건드리는 일이 계속 생김. 누가 파일을 고치면 뭘 고쳤는지 알 방법이 없음. 덮어쓰면 그냥 날아가는 거고.
백업이랍시고 하던 방식도 원시적이었음. home.php를 고쳐야 하면 복사해서 home1.php 만들어놓고 작업하는 식. 근데 이게 그누보드라서 home1.php 하나 띄우려면 몇 단계를 거쳐서 파일을 3~4개씩 만들어야 함. 화면 하나 복사하는데 파일이 줄줄이 따라붙으니 관리가 될 리가 없음.
GitHub 말고 GitLab
처음엔 회사 이메일로 GitHub 계정 파서 쓸까 했음. 근데 그때 기억으로 GitHub private 저장소가 무제한이 아니었고, 무엇보다 회사 소스코드를 외부 서비스에 올린다는 게 보안적으로 영 아닌 것 같았음. 그래서 전 회사에서 써봤던 GitLab을 셀프호스팅으로 도입하기로 함.
GitLab 서버 직접 구축
마침 회사가 소스코드를 매일 서버에 저장하고 그걸 rsync로 NAS에 백업하는 이중화를 하고 있길래, 나는 여기에 하나 더 얹기로 함.
- 회사에 XenServer(가상화 서버)가 있어서 거기에 VM 하나 파서 GitLab 설치
- GitLab 서버가 홈페이지 서버의 파일을 rsync로 매일 긁어옴
- 긁어온 소스를 git 저장소에 커밋
이러면 서버 → NAS 이중화에 GitLab까지 삼중화가 됨. 백업은 덤이고, 진짜 목적은 로컬에서 편하게 작업할 수 있는 환경. 서버에 SFTP로 붙어서 눈 감고 고치는 게 아니라, 로컬에 clone 받아서 작업하고 이력도 남김.
이 방식으로 수십 개의 홈페이지랑 여러 프로젝트를 혼자 rsync로 물려서 잘 씀. 무료로 git 저장소 쓰는 셈이니 아쉬울 게 없었음.
전사 도입
혼자 잘 쓰고 있었는데 부장님이 이거 전사적으로 쓰자고 함. 그래서 판을 키움.
- GitLab 버전 업그레이드
- 내부 계열사에서도 써야 해서 접근 방식 고민. 포트포워딩으로 할까 말까 하다가 그냥 외부 아이피를 붙임
- 서버 스펙 증설: 4core / 16GB(당시 최소 권장사양 이였던 것으로 기억) → 8core / 32GB
혼자 쓰던 백업용 서버가 회사 공식 인프라가 된다고 해서 부담이 좀 되었음.