Skip to content
@koscom-team01

koscom-team01

📝 해커톤 협업 가이드라인 (Trunk-Based)

우리 팀은 빠른 개발 속도와 부드러운 통합을 위해 트렁크 기반 개발(Trunk-Based Development) 전략을 사용합니다. main 브랜치를 중심으로 짧은 호흡으로 개발하며, 모든 변경 사항은 CI/CD를 통해 단일 k8s 서버에 실시간으로 자동 배포됩니다.


🚀 1. 브랜치 전략 및 규칙

📌 단일 브랜치 중심 구조

  • 우리는 develop 이나 staging 브랜치를 두지 않습니다. main 브랜치가 곧 실서버 배포 브랜치입니다.
  • 미니 프로젝트로 단일 배포환경에서 빠른 개발이 중요하므로 GitFlow가 아닌 Trunk Based 규칙을 이용하여 협업합니다.
  • 모든 기능 개발은 main에서 파생된 단기 기능 브랜치에서 이루어지며, 개발 완료 후 최대 수 시간 내에 main으로 머지(Merge)되어야 합니다.
       feat/1-login (짧고 빠른 기능 개발)
       ┌───────────┐
───────┴───────────┴───► main (ArgoCD가 실시간으로 k8s에 자동 배포)

🏷️ 브랜치 명명 규칙

  • 기능 개발: feat/이슈번호-기능명 (예: feat/12-login)
  • 버그 수정: fix/이슈번호-버그명 (예: fix/45-cors-error)
  • 기타 작업: chore/이슈번호-작업명 (예: chore/3-config)

🛠️ 2. 커밋 메시지 컨벤션 (Commit Convention)

커밋 메시지는 다음과 같은 형식으로 작성하여, 히스토리만 보고도 어떤 작업이 진행되었는지 직관적으로 알 수 있게 합니다.

형식: 태그: 작업_내용_요약

  • feat : 새로운 기능 추가
  • fix : 버그 수정
  • chore : 빌드 업무 수정, 패키지 매니저 설정, 단순 리팩토링 등
  • docs : 문서 수정 (README 등)

✍️ 좋은 커밋 예시:

  • feat: 구글 로그인 API 연동
  • fix: 프론트엔드 CORS 에러 우회 설정
  • chore: 빌드 스크립트 수정

🔄 3. 기능 개발 및 협업 워크플로우 (★가장 중요★)

모든 팀원은 기능을 개발할 때 반드시 아래 5단계 흐름을 지켜주세요.

Step 1. GitHub Issue 발행

  • 무작정 코드부터 짜지 말고, 작업 전에 GitHub의 Issues 탭에서 티켓을 먼저 생성합니다.
  • 템플릿에 맞게 작업 내용을 적고 Submit을 누르면 이슈 번호(예: #12)가 부여됩니다.
  • 우측 Projects에서 우리 팀 칸반 보드를 지정하여 상태를 관리합니다.

Step 2. 로컬 브랜치 생성 및 개발

  • main 브랜치를 최신화한 상태에서 새 브랜치를 생성합니다.
git checkout main
git pull origin main
git checkout -b feat/12-login
  • 기능을 개발하면서 컨벤션에 맞춰 커밋을 쪼개어 남깁니다.

Step 3. Pull Request (PR) 생성

  • 기능 개발이 완료되면 리포지토리에 push 후 Pull Request를 생성합니다.
git push origin feat/12-login
  • PR 본문 템플릿에 있는 Close #이슈번호 문구를 반드시 적어줍니다. (예: Close #12)
  • 💡 이 문구가 있으면 PR이 머지될 때 관련 이슈가 자동으로 종료됩니다.

Step 4. 상호 코드 리뷰 및 승인 (Approve)

  • 해커톤 속도를 위해 최소 1명의 팀원이 코드를 확인하고 Approve를 눌러야 머지가 가능합니다.
  • 코드가 정상적으로 빌드되는지, 로컬에서 잘 도는지만 빠르게 확인하고 소통합니다.

Step 5. 머지(Merge) 및 자동 배포

  • 승인이 완료되면 Squash and Merge 방식으로 main 브랜치에 합칩니다.
  • main에 코드가 합쳐지는 순간, GitHub Actions가 도커 이미지를 빌드하고 ArgoCD가 클러스터에 새 버전을 주입하여 k8s 서버에 자동 무중단 배포가 진행됩니다.
  • 사용이 끝난 로컬 및 원격 브랜치는 삭제합니다.

🚨 4. 해커톤 기간 주의사항

  1. 컴파일 에러 금지: main 브랜치가 터지면 단일 서버 전체가 터져 다른 팀원의 테스트가 중단됩니다. push 하거나 머지하기 전에 로컬에서 반드시 빌드가 정상적으로 끝나는지 확인하세요.
  2. 충돌(Conflict) 최소화: 트렁크 기반 개발의 핵심은 '자주 합치기'입니다. 하나의 브랜치를 너무 오래 붙잡고 있으면 대형 충돌이 발생합니다. 작업 단위를 최대한 쪼개서 main에 바로바로 올려주세요.
  3. 칸반 보드 최신화: 내가 지금 무엇을 개발하고 있는지 팀원들이 실시간으로 볼 수 있도록, GitHub Project 보드의 카드를 In Progress에서 Done으로 자주 옮겨주세요.

Popular repositories Loading

  1. koslink-ai koslink-ai Public

    PLpgSQL 1

  2. koslink-fe koslink-fe Public

    koscom 1조의 frontend 레포지토리입니다.

    TypeScript 1

  3. kosops kosops Public

    koscom 1조의 devops 시스템입니다.

    HCL

  4. .github .github Public

  5. test-web-app test-web-app Public

    테스트용 레포지토리

    JavaScript

  6. koslink-backend koslink-backend Public

    Java

Repositories

Showing 6 of 6 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…