## Flask 프로젝트 기본 설정

### 기본 정보
- Flask 2.0.2 이상
<<<<<<< HEAD
- nodejs 10.x 이상
=======
- nodejs 11.x 이상
>>>>>>> 449771c (- main.html -> 기본 화면)
- 기본 모듈과 패키지 구성, 설정 파일 구성 포함
- 폴더 구조  

### 초기 설치 필요 패키지
```bash
# 필요 패키지 설치
$> pip install -r requirements.txt

# nvm, node(11버전 이상), npm 설치(Ubuntu18.04 기준)
$> curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
$> nvm install 10
$. nvm use 10
```

### 프로젝트 폴더 상세
```bash
./
├── README.md # this file
├── config # 설정이 포함된 경로
├── data # 각종 데이터 저장에 사용되는 폴더
├── mods # 라이브러리 모듈이 사용되는 폴더
├── requirements.txt # Python 모듈 의존성 정의
├── runweb.py # 웹서비스 실행, 기본 8888 포트로 구동 프로그램
├── test # 테스트 코드 폴더
└── web # 웹 관련 모듈 폴더
```

### 웹프로젝트 폴더 상세
```bash
./web
├── __init__.py # 기본 설정 내용
├── jss # javascript 소스 경로
├── main # 컨트롤러와 서비스 모듈 위치
├── static # image, js, css 등 정적 파일 위치
└── templates # view 템플릿 위치
```

### JS 라이브러리 관련
- jss 폴더에 소스가 있고 webpack 을 이용하여 빌드하면 web/static/js 에 deploy 됨
<<<<<<< HEAD
- `npm install`, `npm run build`, `npm run watch` 등을 이용하여 사용

### 사용 방법
- 빌드 방법이 있긴하지만 절대로 이 프로젝트에 바로 사용하지 않는다.
- 다른 웹 기반 프로젝트 생성 시 최초에 본 프로젝트를 머지해서 사용한다.
- pull request 와 비슷한 방법으로 사용한다.
```bash
# 신규 프로젝트를 git 에서 생성, 예시 프로젝트명 : gogosing

# 생성한 프로젝트 clone
$> git clone https://...../gogosing
$> cd gogosing

# 신규 프로젝트의 remote에 레파지토리 등록, 예시 Alias : flask1st
$> git remote add flask1st https://gitlab.synap.co.kr/innodev/flask1st.git

# flask1st 를 pull 하여 최신 버전 유지
$> git pull flask1st

# flask1st 의 내용을 신규 프로젝트에 merge
$> git merge flask1st/master

# 신규 프로젝트에 생성된 템플릿 추가
$> git push origin

# 옵션) 필요 없는 경우 템플릿 리모트 제거
$> git remote remove flask1st
=======
- `npm install`, `npm run prod`, `npm run debug` 등을 이용하여 사용
>>>>>>> 449771c (- main.html -> 기본 화면)
```

### 사용 방법
- 빌드 방법이 있긴하지만 절대로 이 프로젝트에 바로 사용하지 않는다.
- 다른 웹 기반 프로젝트 생성 시 최초에 본 프로젝트를 머지해서 사용한다.
- pull request 와 비슷한 방법으로 사용한다.
```bash
# 신규 프로젝트를 git 에서 생성, 예시 프로젝트명 : gogosing

# 생성한 프로젝트 clone
$> git clone https://...../gogosing
$> cd gogosing

# 신규 프로젝트의 remote에 레파지토리 등록, 예시 Alias : flask1st
$> git remote add flask1st https://gitlab.synap.co.kr/innodev/flask1st.git

# flask1st 를 pull 하여 최신 버전 유지
$> git pull flask1st

# flask1st 의 내용을 신규 프로젝트에 merge
$> git merge flask1st/master

# 신규 프로젝트에 생성된 템플릿 추가
$> git push origin

# 옵션) 필요 없는 경우 템플릿 리모트 제거
$> git remote remove flask1st
```

