1. 왜 형상 관리 시스템을 다시 정리했는가
개발 조직에서 형상 관리(Source / Configuration Management) 는
단순히 “코드를 저장하는 도구”가 아니다.
- 협업 방식
- 배포 전략
- 장애 대응
- 보안 정책
- 비용 구조
까지 모두 연결된다.
이 글은
GitHub / GitLab / Bitbucket을 실제 운영 관점에서 비교하고,
Jenkins 기반 CI 연동까지 포함해 정리한 실무 기준 기록이다.
특정 회사나 프로젝트가 아니라,
일반적인 개발 조직에서 충분히 겪을 수 있는 선택지를 기준으로 정리했다.
2. 형상 관리 vs 소스 관리
먼저 개념부터 짚고 간다.
- 소스 관리(Source Control)
→ 코드의 버전 관리 (Git, SVN 등) - 형상 관리(Configuration Management)
→ 코드 + 설정 + 빌드 결과 + 배포 이력까지 포함한 관리 개념
즉,
GitHub/GitLab/Bitbucket은
“소스 관리 도구이면서 형상 관리의 중심 축”
이라고 볼 수 있다.
3. GitHub (SaaS) 정리
3.1 특징
- 퍼블릭/프라이빗 리포지토리 무제한
- 직관적인 UI
- GitHub Actions 기반 CI/CD
- 오픈소스 생태계 압도적
3.2 무료 플랜 기준
- 리포지토리 수 제한 없음
- 협업 기능 기본 제공
- GitHub Actions 사용 가능
- 퍼블릭: 사실상 무제한
- 프라이빗: 월 제한 시간 존재
3.3 장점
- 진입 장벽 낮음
- 플러그인·예제·문서 풍부
- 외부 서비스 연동 쉬움
- 클라우드 CI/CD 구축이 매우 빠름
3.4 단점 / 한계
- 고급 DevOps 기능은 상대적으로 제한적
- 조직 단위 세밀한 통제는 유료 플랜 필요
- 대용량 파일 관리에는 LFS 필수
3.5 이런 팀에 적합
- 소규모~중규모 팀
- 빠른 협업 시작이 필요한 경우
- 오픈소스 또는 외부 공개 프로젝트
4. GitLab SaaS 정리
4.1 특징
- “DevOps 올인원 플랫폼” 성격
- 이슈, 보드, CI/CD, 배포까지 통합
- SaaS → 설치형(Self-Hosted) 전환 가능
4.2 무료 플랜 기준
- 리포지토리 무제한
- CI/CD 월 400분 제공
- 기본 DevOps 기능 사용 가능
4.3 장점
- CI/CD 통합도가 매우 높음
- 프로젝트 관리 + 코드 관리 일체화
- 자체 Runner 구성 가능 (비용 제어)
4.4 단점 / 한계
- UI/UX는 GitHub보다 무거운 편
- 유료 플랜 비용이 높음
- 러닝 커브 존재
4.5 이런 팀에 적합
- CI/CD와 프로젝트 관리를 강하게 묶고 싶은 팀
- 향후 온프레미스 전환 가능성 있는 조직
- DevOps 성숙도가 어느 정도 있는 팀
5. Bitbucket (SaaS) 정리
5.1 특징
- Atlassian 생태계(Jira, Confluence)와 강력한 통합
- 소규모 팀에 초점
- Bitbucket Pipelines 제공
5.2 무료 플랜 기준
- 최대 5명 사용자
- 프라이빗 리포지토리 무제한
- CI/CD 50분/월
5.3 장점
- Jira 연동 시 이슈 트래킹 매우 편리
- 팀 단위 작업 흐름 명확
- 권한 관리 비교적 직관적
5.4 단점 / 한계
- CI/CD 무료 제공 시간이 매우 적음
- 대규모 팀에는 비용 부담 증가
- 레포지토리 크기 제한이 비교적 명확
5.5 이런 팀에 적합
- Jira 기반 협업이 중심인 팀
- 소규모 조직
- 복잡한 CI/CD가 필요 없는 경우
6. 소스 관리 시스템 실무 제약 정리
6.1 리포지토리 크기
- GitHub:
- 단일 파일 100MB 초과 푸시 차단
- 권장 레포 크기 ~5GB
- GitLab:
- 무료 플랜 기준 총 10GB
- 초과 시 비용 발생
- Bitbucket:
- 개별 레포 2GB 권장
- 4GB 초과 시 푸시 제한
👉 대용량 바이너리는 반드시 LFS 사용
6.2 사용자 수 제한
- GitHub: 명시적 제한 없음
- GitLab: 무료 플랜 최대 5명
- Bitbucket: 무료 플랜 최대 5명 (초과 시 읽기 전용)
6.3 실무적 결론
소스 관리 도구 선택은
“기능”보다 팀 규모 + 협업 방식 + CI 전략이 핵심이다.
7. Jenkins + GitHub 연동 정리
클라우드 CI가 아닌,
자체 CI 서버(Jenkins)를 운영하는 경우 가장 흔한 연동 방식이다.
7.1 연동 개요
- GitHub에서 Personal Access Token 발급
- Jenkins에 Credential 등록
- GitHub Repository에 Webhook 설정
- Jenkins Job/Pipeline 구성
- Push / PR 이벤트로 자동 빌드
7.2 핵심 설정 포인트
GitHub Token 권한
- repository 접근
- webhook 관리 권한
Webhook 설정
- Payload URL:
Jenkins URL + /github-webhook/ - Content-Type: application/json
- Trigger:
- Push
- Pull Request
Jenkins 설정
- GitHub Integration Plugin
- Webhook Trigger Plugin
- Pipeline Script from SCM
7.3 운영 시 주의사항
- Jenkins 포트 방화벽 오픈
- HTTPS 적용
- Reverse Proxy(Nginx) 권장
- 인증 정보 노출 주의
8. 실무에서의 선택 기준 정리
상황추천
| 빠른 협업, 단순 CI | GitHub |
| DevOps 통합, 확장 | GitLab |
| Jira 중심 협업 | Bitbucket |
| 내부 CI 서버 필요 | Jenkins 연동 |
9. 마무리
형상 관리 시스템은
“유행”이나 “회사 이름”으로 선택할 문제가 아니다.
- 팀 규모는?
- CI/CD를 얼마나 자동화할 것인가?
- 클라우드 의존도를 어느 정도로 가져갈 것인가?
- 보안·권한 통제가 얼마나 필요한가?
이 질문에 답이 나오면
도구 선택은 자연스럽게 따라온다.
이 글은
그 판단을 돕기 위한 실무 기준 정리 기록이다.
※ 본 글은 일반적인 개발 조직의 형상·소스 관리 경험을 정리한 기술 기록이며, 특정 회사·프로젝트의 내부 정보를 포함하지 않습니다.
'[실무 설계와 판단]' 카테고리의 다른 글
| ERP(Ecount 계열) API 연동 개발 정리 (0) | 2025.12.26 |
|---|---|
| Kafka 기반 데이터 이관 실행 계획 정리 (0) | 2025.12.26 |
| AWS 비용 최적화와 인프라 선택에 대한 현실적인 고민 (0) | 2025.12.26 |
| 현실적인 프로젝트 구조 설계 고민 (0) | 2025.12.26 |
| AWS 비용 최적화 실무 정리 (0) | 2025.12.26 |