-
Notifications
You must be signed in to change notification settings - Fork 4
컨벤션
Park-Mu-Seong edited this page Dec 2, 2024
·
12 revisions
- 각 용도에 맞게 main(master), develop, feature, release, hotfix 브랜치를 분리해서 사용
- 명확한 릴리즈 기간과 주기적인 버전이 정해진 프로덕트를 개발하는 환경에 적합
- 릴리즈 버전 관리를 위한 release 브랜치를 따로 관리하기 때문에, 특정 버전에 대한 유지보수 기간이 길고, 여러 버전을 동시에 관리해야 할 필요가 있을때 유용함
관리 할 브랜치가 많아지고 해당 프로젝트가 이정도의 규모가 아니라 탈락
- Git Flow가 Github에서 사용하기에는 복잡하다고 나온 브랜치 전략
- hotfix 브랜치나 feature 브랜치를 구분하지 않음
- 수시로 배포가 일어나며, CI와 배포가 자동화되어있는 프로젝트에 유용
Git Flow만큼 복잡하지 않으면서 TBD처럼 너무 간단하지 않아서 선정
- 기본적으로 Trunk/Main 브랜치 하나만 사용
- 신규 피쳐의 경우 main에 커밋하거나, 수일 내로 머지 할 브랜치를 생성
- PR을 생성하지 않음
PR을 생성한다고 하면 GitHub Flow와 다를게 없고 없앤다고 하면 추적이 힘들어져 탈락
1. 기능 추가: feature/기능명
- ex)
feature/login
,feature/add-product
2. 버그 수정: fix/버그명
- ex)
fix/login-err
3. 리팩토링:refactor/리팩토링명
- ex)
refactor/login-ui
4. 문서:docs/문서명
- ex)
docs/readme
-
Require a pull request before merging
-
main
브랜치로의 병합은 반드시 PR을 거쳐야함. - 1명 이상에게 승인을 받아야 병합이 가능함.
-
-
Require status checks to pass before merging
- 병합되기 전에 반드시 Github Actions 테스트 스크립트가 문제없이 성공한 상태여야 함.
-
Require conversation resolution before merging
- 모든 conversation은 resolved 처리 되어있어야함.
-
Do not allow bypassing the above settings
- Admin 권한을 가진 사용자도 위의 규칙들을 준수해야함.
접두사 | 설명 | 예시 |
---|---|---|
✨ feat | 새로운 기능을 추가할 때 사용 | ✨ feat: 유저 프로필 기능 추가 |
🐛 fix | 기존 버그를 수정할 때 사용 | 🐛 fix: 로그인 오류 해결 |
♻️ refactor | 코드 구조를 개선할 때 사용 | ♻️ refactor: API 호출 로직 정리 |
⚡️ perf | 성능을 향상시킬 때 사용 | ⚡️ perf: DB 쿼리 최적화 |
💄 style | UI/UX 스타일 변경 시 사용 | 💄 style: 버튼 색상 변경 |
📝 docs | 문서를 추가하거나 수정할 때 사용 | 📝 docs: README 업데이트 |
✅ test | 테스트 코드를 추가/수정할 때 사용 | ✅ test: 유닛 테스트 추가 |
📦 chore | 패키지 관리, 빌드 관련 작업 시 사용 | 📦 chore: 라이브러리 버전 업데이트 |
🧼 clean | 필요없는 코드 제거, 이름 변경 시 사용 | 🧼 clean: import문 제거 |
- 🏃♂️ k8s pod 사용해보기
- 🏃♂️ Promise 동작 이해하기
- 🏃♂️ SMTP를 가볍게 알아보자
- 🏃♂️ postman test는 어떻게 하는 걸까?
- 🏃♂️ 쿠키와 보안 가볍게 이해하기
- 🏃♂️ Nest.js 이해하기
- 🏃♂️ Nest 환경에서 로깅 시스템을 구축해보자
- 🏃♂️ CI/CD 흐름 이해하기
- 🏃♂️ 인프라 흐름 이해하기
- ☄️ Single 스레드 VS Multi 스레드
- ☄️ MySQL 풀텍스트 인덱스로 검색 구현하기
- ☄️ NGINX를 사용해 프록시 서버 구축하기
- ☄️ VPC 및 Subnet을 활용한 클라우드 서버 구축
- ☄️ PM2를 사용해 여러개의 서비스를 한번에 실행하기
- 🐟 react-testing-library 기본 사용법
- 🐟 framer-motion 기본 사용법
- 🐟 SEO에 대해서 알아보자
- 🐟 여러가지 디자인 라이브러리 및 shadcn
- 🐟 웹 접근성이란?
- 🍎 Message Queue
- 🍎 Polling vs Server Sent Event vs WebSocket, QUIC
- 🍎 HTTPS
- 🍎 Redis
- 🍎 NodeJS ORM 차이점
- 🍎 외부에서 내부 DB 접속법
- 🍎 환경변수 모듈들
- 🌱 Motion과 CSS Grid의 레이아웃 차이 분석 및 PostCard 컴포넌트의 높이 불일치 해결하기
- 🌱 브라우저 팝업 차단으로 인한 문제와 해결책
- 🌱 타입을 활용해 API로 전달되는 날짜 안전하게 포맷팅하기
- 🌱 연속 실행이 필요한 비동기 작업에서의 고민
- 🌱 Server-Sent Events를 이용해 실시간으로 트렌드 게시글 표시하기
- 🌱 Fetch 기반 mock API를 axios-mock-adapter로 마이그레이션 하기
- 🌱 useInfiniteScroll hooks로 구현하는 무한 스크롤
- 🌱 이미지 lazy loading
- 🌱 clsx와 tailwind-merge로 구현하는 className 유틸리티 함수
- 🌱 우리 팀의 환경에서 적합한 패키지 매니저는 무엇일까?
- 🌱 프론트엔드 테스트 도입기
- 🌱 React Query로 상태 관리와 성능 최적화하기 1: React Query 소개
- 🌱 React Query로 상태 관리와 성능 최적화하기 2: useQuery
- 🌱 React Query로 상태 관리와 성능 최적화하기 3: useInfiniteQuery
- 🌱 React Query로 상태 관리와 성능 최적화하기 5: useQuery, useMutation 차이