애플리케이션에 대한 한 줄 소개
| 김도연(도리) | 박유수(어헛차) | 양지애(나루) | 조경석(조나단) |
|---|---|---|---|
| @kimdoyeon1234 | @Park-yu-su | @yangjiae12 | @rudtjr1106 |
기본 브랜치: master(배포), develop(개발)
전략: 모든 작업은 master / develop 브랜치에서 파생된 기능별 하위 브랜치에서 진행하며, 브랜치명은 태그/#이슈번호 형식을 따른다.
- 예:
feat/#2,ui/#15
💡 태그 종류
| 태그 | 설명 |
|---|---|
| master | 애플리케이션 배포 브랜치 |
| develop | 개발을 위한 통합 브랜치 |
| feat | 새로운 기능 개발(로직 포함) |
| ui | 레이아웃 및 UI 작업 |
| fix | 버그 수정 및 에러 해결 |
| refactor | 코드 리팩토링 |
| chore | 빌드 설정 및 라이브러리 관리 |
이슈는 템플릿 형태로 주어지며, 아래 내용을 작성한다.
기능 개요: 구현하고자 하는 기능을 요약해 작성상세 내용: 기능과 관련된 추가적인 정보를 작성작업 체크리스트: 작업 간 수행 여부 작성 및 체크참고 사항: 외부 문서나 추후 작업 시 참고 사항 작성
제목 형식: [태그] 작업 제목
- 예:
[UI] 온보딩 화면 UI 구현
💡 태그 종류 (커밋/PR 컨벤션과 동일)
| 태그 | 설명 |
|---|---|
| [Feat] | 새로운 기능 추가 및 로직 구현 |
| [UI] | XML, Drawable, UI 컴포넌트 등 디자인 작업 |
| [Fix] | 버그 수정 및 예외 처리 |
| [Data] | API 연결, DTO 구성, 로컬 DB 등 데이터 관련 작업 |
| [Refactor] | 리팩토링 및 파일/변수 이름 변경 |
| [Merge] | 브랜치 머지 및 충돌 해결 |
| [Chore] | 빌드 설정, 라이브러리 관리 등 기타 |
PR 작성 시 탬플릿 형태가 주어지며, 아래 내용을 작성한다.
작업 내용: 이번 PR에서 작업한 내용을 간단히 요약리뷰 요구사항: 리뷰어가 중점적으로 봐주었으면 하는 부분 작성체크리스트: 코드에 이상 없는지 확인 및 체크스크린샷(선택): 작업한 화면 스크린샷
제목 형식: [태그/#이슈번호] 작업 제목
- 예:
[Feat/#2] 온보딩 화면 구현
커밋 메시지는 [태그/#이슈번호] 작업 내용 형식을 권장한다.
- 예:
[Feat/#2] 온보딩 화면 UI 구현
| 태그 | 설명 |
|---|---|
| [Feat] | 새로운 기능 추가 및 로직 구현 |
| [UI] | XML, Drawable, UI 컴포넌트 등 디자인 작업 |
| [Fix] | 버그 수정 및 예외 처리 |
| [Data] | API 연결, DTO 구성, 로컬 DB 등 데이터 관련 작업 |
| [Refactor] | 리팩토링 및 파일/변수 이름 변경 |
| [Merge] | 브랜치 머지 및 충돌 해결 |
| [Chore] | 빌드 설정, 라이브러리 관리 등 기타 환경 설정 |
-
XML ID:
화면명_위젯명_기능순으로 작성한다.(예:
main_btn_back) -
Layout:
type_name.xml(예:
activity_main.xml) -
Drawable:
ic_(icon명),bg_(background명)(예:
ic_back_24dp.xml)
Ktlint을 통해 안드로이드 공식 스타일 가이드를 준수하며, 자동 점검한다.
-
Class / Interface:
PascalCase(예:
UserViewModel) -
함수 / 변수:
camelCase(예:
getUserId()) -
상수:
UPPER_SNAKE_CASE(예:
BASE_URL)
com.project.name
├── di # Hilt Module 주입
├── extension # 확장 함수 정의 (ex. String.toJson())
├── data # 데이터 로직 처리 (Data Layer)
│ ├── api # API Interface
│ ├── base # Data 모듈 베이스 코드
│ ├── dto # Request / Response 데이터 객체
│ ├── dataSource # Local(Room, DataStore), Remote 인터페이스
│ │ ├── local # dataSource의 Local implementation (ex. RoomDB)
│ │ └── remote # dataSource의 Network implementation
│ └── repository # Domain Repository Implementation
├── domain # 비즈니스 로직 (Domain Layer)
│ ├── repository # Repository Interface
│ ├── model # UI 전달용 실제 Data Class
│ └── usecase # Repository 호출을 위한 UseCase
└── presentation # UI 레이어 (Presentation Layer)
├── base # 공통 내용 정의 (BaseFragment, ViewModel)
└── ui # UI 구현 (Activity, Fragment, Adapter)