Clokey
는 Closet
과 Key
의 합성어로, 사용자의 옷장을 효율적으로 관리하고 활용할 수 있도록 도와주는 서비스입니다.
Clokey iOS 팀과 컨벤션 규칙을 소개합니다.
이름 | 닉네임 | 역할 | GitHub ID |
---|---|---|---|
황상환 | 에그 | iOS 팀 리더 | @Hrepay |
한태빈 | 해태 | iOS 개발자 | @taebin2 |
한금준 | 누비 | iOS 개발자 | @Funital |
소민준 | 쏘쏘 | iOS 개발자 | @sososominjun |
Git-Flow 방식을 따르며 브랜치 구조는 아래와 같습니다.
main
├── develop
├── feature/login
├── feature/calendar_view
├── feature/edit_profile
├── refactor/login-token-refresh
├── fix/profile
└── hotfix/critical_bug
- main
- 항상 배포 가능한 상태를 유지하며, 최종 릴리즈 버전의 코드가 포함됩니다.
- develop
- 개발 중인 모든 기능이 병합되는 브랜치로, 안정적인 상태를 유지합니다.
- feature/
- 새로운 기능 개발을 위한 브랜치입니다.
- 작업 완료 후 develop 브랜치에 병합합니다.
- release/
- 배포 준비를 위한 브랜치입니다.
- 버그를 수정하고 최종 테스트를 거친 뒤, main에 병합합니다.
- fix/
- devleop에서 발견된 버그를 수정하기 위한 브랜치입니다.
- 수정 완료 후 develop에 병합합니다.
- refactor/
- devleop에서 리팩토링을 위한 브랜치입니다.
- 작업 완료 후 develop에 병합합니다.
- hotfix/
- main에서 발견된 긴급한 버그를 수정하기 위한 브랜치입니다.
- 수정 완료 후 main과 develop에 병합합니다.
-
develop
브랜치에서 작업할 브랜치를 생성git checkout -b feature/<기능명>
- 예시:
feature/login
,feature/sign-up
- 예시:
-
작업 후, 변경사항을 커밋
git add . git commit -m "feat: 로그인 화면 UI 구현"
-
원격 저장소에 푸시
git push origin feature/<기능명>
-
푸시 후, PR을 생성
- PR 생성 시
develop
브랜치를 타겟으로 지정 - 리뷰어를 지정하고 작업 내용 작성
- PR 생성 시
모든 커밋 메시지는 아래 형식을 따라 작성해주세요:
[#이슈번호] 커밋 내용
예시:
[#123] 로그인 오류 수정
[#98] README 구성 정리
[#45] 홈 화면 새로고침 기능 구현
-
커밋은 이슈 번호와 연동되어야 하며, 꼭 관련 이슈를 먼저 생성해주세요.
-
자동으로 PR 제목에도 반영되므로, 이슈 제목과 통일성 있는 메시지가 좋습니다.
코드 스타일은 스타일쉐어에서 오픈소스로 배포하는 코딩 컨벤션 가이드를 활용합니다.
코드 작성 전에 꼭 읽어주세요!
https://github.com/StyleShare/swift-style-guide
Clokey/
├── Application/ # 앱 초기화 관련 파일
│ ├── AppDelegate.swift
│ └── SceneDelegate.swift
├── Resources/ # 정적 리소스 (이미지, 폰트 등)
│ ├── Assets.xcassets
│ └── Fonts/
├── Sources/ # 앱 주요 소스
│ ├── Common/ # 공통적으로 사용되는 뷰, 컴포넌트, 확장 기능
│ ├── Feature/ # 주요 기능 관련 코드
│ │ ├── Login/ # 로그인 화면 및 로직
│ │ ├── Main/ # 메인 화면 및 로직
│ │ ├── Home/ # 홈 화면 및 로직
│ │ ├── Calendar/ # 캘린더 화면 및 로직
│ │ ├── AddCloth/ # 옷 추가 화면 및 로직
│ │ ├── Closet/ # 옷장 화면 및 로직
│ │ ├── Profile/ # 프로필 화면 및 로직
│ │ └── Services/ # 기능별 서비스 로직
│ └── Network/ # 네트워크 요청 및 응답 처리
└── Supporting Files/ # 프로젝트 설정 파일
└── Info.plist
이 디렉터리 구조는 프로젝트 요구사항에 따라 변경될 수 있습니다.
Signing & Capabilities에서 자신의 Apple ID로 Team을 변경해주세요.
Bundle Identifier를 자신의 것으로 수정해주세요.
- 이슈와 PR은 템플릿을 참고해서 작성해주세요!
- 리뷰어와 태그는 꼭 해주세요!
- Then (필수): 초기화 설정을 간결하게 도와주는 유틸리티 라이브러리
- SnapKit (필수): 코드 기반으로 Auto Layout을 작성할 수 있는 DSL 기반 라이브러리
- Moya (필수): HTTP 네트워크 요청과 응답 처리를 더 구조화하고 효율적으로 만들어주는 네트워크 추상화 라이브러리
- RxSwift (선택): 반응형 프로그래밍을 지원하며, 데이터와 이벤트 스트림을 처리하는 라이브러리
필수 프레임워크는 모든 팀원이 반드시 설치 및 활용해야 합니다.
선택 프레임워크는 필요에 따라 사용할 수 있으며, 사용 시 커밋과 이슈를 통해 공지하도록 합니다.