# 웨일 브라우저 확장앱과 연동된 지능형 할일관리 서비스 개발 A 그라운드 룰


## 작업 시간
## 커밋 컨벤션
https://junwoo45.github.io/2020-02-06-commit_template/
- 커밋 앞에 커밋 카테고리를 대괄호로 감싸주기
- ex) [feat] something
- 내용: "~를 위한 ~ 개발"
```
# [타입] <제목>
##### 제목은 최대 50 글자까지만 입력 ############## -> |
# 본문은 위에 작성
######## 본문은 한 줄에 최대 72 글자까지만 입력 ########################### -> |
# 꼬릿말은 아래에 작성: ex) #이슈 번호
# --- COMMIT END ---
# <타입> 리스트
# feat : 기능 (새로운 기능)
# fix : 버그 (버그 수정)
# refactor: 리팩토링
# style : 스타일 (코드 형식, 세미콜론 추가: 비즈니스 로직에 변경 없음)
# docs : 문서 (문서 추가, 수정, 삭제)
# test : 테스트 (테스트 코드 추가, 수정, 삭제: 비즈니스 로직에 변경 없음)
# chore : 기타 변경사항 (빌드 스크립트 수정 등)
# ------------------
# 제목 첫 글자를 대문자로
# 제목은 명령문으로
# 제목 끝에 마침표(.) 금지
# 제목과 본문을 한 줄 띄워 분리하기
# 본문은 "어떻게" 보다 "무엇을", "왜"를 설명한다.
# 본문에 여러줄의 메시지를 작성할 땐 "-"로 구분
# ------------------
```
## PR 컨벤션
- PR 하나에 commit 하나만 보내는 것은 지양해야 한다.
- CLIENT, SERVER, IOS 표기하기
- FIX인 경우에만 FIX를 추가
```
[CLIENT #이슈번호 (FIX)] PR 제목
## 구현의도
- 추상화 의도(재사용성, 인터페이스, etc...)
- 함수 구분 기준
- 클래스 계층구조
- Class, Struct, Object의 사용 의도
## 기능 흐름도, 클래스 다이어그램(선택사항)
## 사용된 기술
- 오픈소스 라이브러리
- 라이브러리를 왜 썼는가?
## 리뷰요청 & 논의사항 & 궁금한점
- A 부분은 더 깔끔한 방식이 있을까 궁금하다.
- B 클래스명은 괜찮은 지 궁금하다.
```
## 브랜치 관리 전략
- develop/server, develop/web, develop/ios 분리해서 관리하기

### Fork 후 작업 vs 그냥 작업
- 현업에 어떻게 하시는지
## 코딩 컨벤션
### WEB
- BE 파일이름은 .으로 모델과 기능을 구문하여 사용
- ex) issue.controller.js
- Class 대문자로 시작하는 `PascalCase`
- 파일, 변수이름은 소문자로 시작하고 `camelCase`
- 폴더 이름 `snake_case`
- DB 테이블명, 어트리뷰트명 `snake_case` 사용
```
- Prettier
{
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "es5",
"bracketSpacing": true,
"printWidth": 100
}
- ESLint airbnb style guide 사용
- 환경설정 파일에 규칙 추가로 커스텀
- early 리턴 권장
{
if(){
return ...;
}
...
...
...
return ...;
}
- if 사용시 중괄호{} 필수
- 변수 및 함수명은 길어지더라도 구체적으로 작성
- 삼항 연산자 사용을 권장하나 코드가 과도하게 길어질 시 코드 분리
- 중첩 삼항 연산자는 지양
- 구조분해 할당 적극 활용
{
const {a, b, c} = req.body
}
```
Vue
javascript
MySQL, Redis, SQLite
Express
테스트... JEST
GitHub Action,
Server 자동배포,
### IOS
- https://github.com/StyleShare/swift-style-guide
## 질문사항
- 참고할 만한 프로젝트, 깃허브 todo 등...
- 웨일브라우저API에서 어떤 정보를 받아올 수 있는지 궁금
- 웨일에 확장앱으로 최종적으로 등록하는 것인지...
- ios 요구사항에 오픈소스 사용불가라고 하는데 swiftlint 도 사용하면 안될까요?
- rxswift 와 mvvm 써보면 어떨까요
- 코디네이터 패턴
팀별 feature list
## 우리 그룹에서 목표하는 기능
- 시간별로 할일을 관리하고 피드백하는 앱
- 잡다한 다양한 정보들을 보여주는 할일 관리 앱
-