
## 테이블명 컨벤션
- 테이블명은 소문자
## 기능 구현 순서
1. 이슈 목록 (메인 화면)을 화면을 표시한다.
- issue 테이블에서 데이터 json으로 만들어 넘기기.
-
-
2. 이슈 작성 기능을 추가한다.
-
3. 이슈 상세
4. 이슈 필터
5. 로그인
## 테이블 구조
### MileStone
```
CREATE TABLE milestone (
name VARCHAR(255) PRIMARY KEY,
due_date timestamp,
valid BOOLEAN DEFAULT FALSE
);
```
### Issue
```
CREATE TABLE issue (
id INT PRIMARY KEY,
title VARCHAR(255),
content TEXT,
profile_image VARCHAR(255),
milestone_id VARCHAR(255),
label_id VARCHAR(255),
manager VARCHAR(255),
writer VARCHAR(255),
create_time TIMESTAMP,
deleted BOOLEAN DEFAULT FALSE,
FOREIGN KEY (milestone_id) REFERENCES milestone(name),
FOREIGN KEY (label_id) REFERENCES label(name),
FOREIGN KEY (manager) REFERENCES user(user_id),
FOREIGN KEY (writer) REFERENCES user(user_id)
);
```
### user
```
CREATE TABLE user (
user_id VARCHAR(255) PRIMARY KEY,
user_password VARCHAR(255)
);
```
### label
```
CREATE TABLE label (
name VARCHAR(255) PRIMARY KEY,
description VARCHAR(255),
color VARCHAR(255)
);
```
## 코드 스타일
- 사용하지 않는 import 제거
- default 포맷 사용
- 클래스
- 클래스 다음 한칸 띄우기
- 중괄호 위치
``` java
// 여는 중괄호를 키워드와 같은 줄에 두는 예시
if (condition) {
// code
} else {
// code
}
```
- 변수 및 메서드 명명 규칙
클래스 이름: 파스칼 케이스(PascalCase)
매소드 이름: 카멜 케이스(camelCase)
- 공백
```
int sum = a + b;
```
## API 문서화
- spring rest docs 사용 시도
- 사용이 익숙치 않으면 postman 혹은 위키로 작성