
Bitbucket(비트버킷)은 아주 쉽게 말하면 개발 소스코드를 저장하고, 버전을 관리하고, 여러 사람이 같이 작업하는 공간입니다.
개발팀에서는 흔히 Git 저장소 서버라고 보면 됩니다. 🙂
🔹 한 줄로 설명하면
Bitbucket = Git 소스코드 저장소 + 협업 + 배포 자동화 기능을 제공하는 서비스
비슷한 서비스로는 GitHub, GitLab이 있습니다.
예를 들어 개발자가 아래 파일들을 관리한다고 해보겠습니다.
Dockerfile
Kubernetes YAML
Helm Chart
Python 소스
Java 소스
Terraform
Ansible
배포 Script
이 파일들을 개인 PC에만 보관하면 문제가 생길 수 있습니다.
개발자 A PC
↓
app.py 수정
개발자 B PC
↓
app.py 수정
누가 최신 파일이지? 🤔
Bitbucket을 사용하면 중앙에서 버전을 관리합니다.
Bitbucket
Git Repository
│
┌───────┼───────┐
↓ ↓ ↓
개발자 A 개발자 B 개발자 C
개발자들은 Bitbucket에서 코드를 가져와서 수정하고 다시 올립니다.
🔹 Bitbucket에서 가장 중요한 개념 5개
1️⃣ Repository
소스코드를 저장하는 공간입니다.
예를 들어:
Bitbucket
└─ gpu-platform
├─ Dockerfile
├─ deployment.yaml
├─ service.yaml
├─ values.yaml
└─ app.py
gpu-platform이라는 Repository 안에서 모든 파일의 변경 이력을 관리합니다.
2️⃣ Git
Bitbucket은 기본적으로 Git을 사용합니다.
Git은 파일을 그냥 저장하는 것이 아니라 변경 이력까지 기록합니다.
예를 들어:
v1
deployment.yaml
replicas: 1
↓ 수정
v2
deployment.yaml
replicas: 2
↓ 수정
v3
deployment.yaml
replicas: 3
Bitbucket에서는 이런 변경 내역을 추적할 수 있습니다.
즉,
"누가, 언제, 무엇을 변경했는가?"
를 확인할 수 있습니다.
3️⃣ Branch
Branch는 원본 코드를 건드리지 않고 별도로 작업하는 공간입니다.
보통 이런 식입니다.
main
│
├─ develop
│
├─ feature-login
│
└─ feature-gpu-monitoring
예를 들어 운영 코드가 main에 있다면 개발자는 바로 main을 수정하지 않고:
main
↓
feature-gpu-monitoring
↓
개발 및 테스트
↓
검토
↓
main 병합
이 방식으로 작업합니다.
4️⃣ Pull Request
Bitbucket에서 매우 중요한 기능입니다.
개발자가 코드를 수정했다고 바로 운영 코드에 합치는 것이 아니라:
개발자
↓
코드 수정
↓
Push
↓
Pull Request
↓
동료 코드 리뷰
↓
승인
↓
Merge
즉,
"제가 코드를 수정했으니 검토 후 main에 합쳐주세요."
라는 요청이 Pull Request(PR) 입니다.
5️⃣ Pipeline
Bitbucket에는 CI/CD 자동화 기능도 있습니다.
이를 Bitbucket Pipelines라고 합니다.
예를 들어:
개발자 코드 수정
↓
Bitbucket Push
↓
Pipeline 실행
↓
Docker Image Build
↓
Container Registry Push
↓
Kubernetes 배포
즉, 코드를 올리는 것만으로도 빌드 → 테스트 → 배포를 자동화할 수 있습니다.
🔹 Kubernetes 환경에서 보면 더 쉽게 이해됩니다
예를 들어 K8s를 운영하고 있다면 Bitbucket에 이런 파일을 저장할 수 있습니다.
Bitbucket Repository
k8s-project/
├─ Dockerfile
├─ deployment.yaml
├─ service.yaml
├─ ingress.yaml
├─ values.yaml
└─ helm/
그리고 Argo CD와 연결할 수도 있습니다.
개발자
↓
Bitbucket
↓
Git Repository
↓
Argo CD
↓
Kubernetes
↓
Pod
개발자가 Bitbucket의 YAML을 수정하면:
replicas: 3
Argo CD가 변경 내용을 감지해서 Kubernetes에 적용하는 방식입니다.
이것이 흔히 말하는 GitOps입니다.
🔹 GitHub / GitLab / Bitbucket 차이는?
구분BitbucketGitHubGitLab
| Git 저장소 | ✅ | ✅ | ✅ |
| 코드 리뷰 | ✅ | ✅ | ✅ |
| Pull Request | ✅ | ✅ | Merge Request |
| CI/CD | Pipelines | Actions | GitLab CI |
| 기업 사용 | 많음 | 매우 많음 | 매우 많음 |
| Jira 연동 | ⭐ 매우 강함 | 가능 | 가능 |
| 제조사 | Atlassian | Microsoft | GitLab |
Bitbucket의 강점은 Atlassian 제품과 연동이 좋다는 것입니다.
특히:
Jira
Confluence
Bitbucket
조합을 많이 사용합니다.
🔹 Jira와 Bitbucket을 같이 쓰면
예를 들어 Jira에 작업이 하나 있다고 가정하겠습니다.
JIRA-123
GPU Monitoring 기능 추가
개발자는 Branch를 이렇게 만들 수 있습니다.
feature/JIRA-123-gpu-monitoring
그리고 Bitbucket에서 코드를 수정하고 PR을 만들면:
Jira
↕
Bitbucket
↕
Pull Request
↕
Pipeline
작업 진행 상태를 추적하기 쉬워집니다.
🔹 Git / Bitbucket 관계가 헷갈리기 쉬워요
둘은 같은 것이 아닙니다.
Git
= 버전 관리 기술
Bitbucket
= Git Repository를 관리하는 서비스
비유하면:
Git = 문서를 관리하는 방법
Bitbucket = 문서를 보관하는 중앙 서버
GitHub나 GitLab도 마찬가지입니다.
Git
│
┌──────┼──────┐
↓ ↓ ↓
GitHub GitLab Bitbucket
🔹 SVN을 알고 있다면 이렇게 이해하면 가장 쉽습니다
기존에 SVN을 사용했다면:
SVN Server
↓
Source 관리
Bitbucket에서는:
Bitbucket
↓
Git Repository
↓
Source 관리
라고 보면 됩니다.
다만 Git은 SVN보다 Branch, Merge, 분산 작업이 훨씬 강력합니다.
✅ 핵심만 정리
Bitbucket은 개발 소스와 Kubernetes YAML, Dockerfile, Terraform 같은 파일을 Git으로 관리하는 중앙 저장소입니다.
그리고 단순 저장만 하는 것이 아니라:
① 소스 저장
② 변경 이력 관리
③ Branch 관리
④ 코드 리뷰
⑤ Pull Request
⑥ CI/CD Pipeline
⑦ Jira 연동
⑧ Argo CD 연동
까지 담당할 수 있습니다.
특히 온프레미스 Kubernetes + Argo CD 환경이라면 다음 구조를 이해하면 중요합니다.
개발자
↓
Git Push
↓
Bitbucket
↓
Pull Request / 승인
↓
main Branch
↓
Argo CD
↓
Kubernetes
↓
Deployment / Pod
이 구조가 실무에서 굉장히 많이 사용되는 Bitbucket + Argo CD + Kubernetes GitOps 구조입니다. 🚀
댓글