본문 바로가기
J-H-T

[Bitbucket] Git 소스코드 저장소 + 협업 + 배포 자동화 기능을 제공하는 서비스

by METAVERSE STORY 2026. 8. 6.
반응형

 

 

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 구조입니다. 🚀

 

반응형

댓글