---
# System prepended metadata

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

---

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


![](https://i.imgur.com/IUsNz5Z.png)
![](https://i.imgur.com/MWa4xkc.png)

## 작업 시간



## 커밋 컨벤션
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 분리해서 관리하기

![](https://i.imgur.com/NUzyMU3.png)

### 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


## 우리 그룹에서 목표하는 기능
- 시간별로 할일을 관리하고 피드백하는 앱
- 잡다한 다양한 정보들을 보여주는 할일 관리 앱
- 