> For the complete documentation index, see [llms.txt](https://soojle.gitbook.io/project/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://soojle.gitbook.io/project/backend-api/undefined-1.md).

# 서버 구축 및 배포

## 개요

앞으로의 프로젝트 개발을 위해 미리 테스트용 서버의 기반을 구축해 놓을 필요가 있다. AWS 또한 Ubuntu 기반이므로 Pure Ubuntu 워크스테이션에 본 프로젝트의 테스트 상용 서버를 구축 해 놓음으로써, 앞으로의 프로젝트 진행에서 구현된 API들을 즉각 테스트 서버에 업로드하여 작동 유/무 및 버그 등을 손쉽게 확인할 수 있다.&#x20;

테스트용 서버에서 검증이 된 API들은 Github 보관소를 통하여 보관한다.

## 요구 사항

* OS(Ubuntu), Backend(Python Flask), DB(Python Pymongo) 기반 구축
* 상용 서버 (UWSGI + NGINX) 구축

## OS(Ubuntu)

본 프로젝트의 최종 호스팅 서버는 AWS(Amazon Web Service)이다. AWS 또한 Ubuntu 기반이므로 SOOJLE 프로젝트 테스트 서버 또한 Ubuntu 기반 위에서 구현한다.

### Ubuntu 워크스테이션 환경설정

* 테스트용 Ubuntu 서버는 Ubuntu 18.04.3 LTS 버전을 설치.
* Free OS이기 때문에 SOOJLE 서버에 필요한 각종 모듈 설치.
* 드라이버 설치.

  • wireless-tools- wpasupplicant (무선 랜 드라이버)<br>
* 설치 모듈

  • git (깃 허브)

  • python3 (파이썬)

  • nginx (엔진엑스)

  • sublime-text-installer (서브라임 텍스트3 코드 에디터)

  • google-chrome-stable (구글 크롬)

## Backend(Python Flask)

SOOJLE 메인 서버인 Application을 구현한다.

![](https://728901758-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-L_Wo7SRUvbKJuPojzzZ%2F-LwN9jjXNJIz3_xHEm0B%2F-LwN9vyTxsgxjpyS-_LN%2Fimage.png?alt=media\&token=48d5c6c2-4321-462c-862d-a3ae3d59f916)

SOOJLE은 기본적으로 코드 관리의 효율성과 디버깅의 효율을 위해 모든 API소스를 분류해서 보관한다.

#### 설치된 모듈 (후에 API 변동에 따라 추가/삭제될 수 있음)

|                            |
| -------------------------- |
| APScheduler==3.6.0         |
| atomicwrites==1.3.0        |
| attrs==19.1.0              |
| beautifulsoup4==4.7.1      |
| boto==2.49.0               |
| boto3==1.9.223             |
| botocore==1.12.223         |
| bs4==0.0.1                 |
| certifi==2019.6.16         |
| chardet==3.0.4             |
| Click==7.0                 |
| colorama==0.4.1            |
| docutils==0.15.2           |
| Flask==1.1.1               |
| Flask-Cors==3.0.8          |
| Flask-JWT-Extended==3.20.0 |
| funcy==1.13                |
| future==0.17.1             |
| gensim==3.8.0              |
| idna==2.8                  |
| importlib-metadata==0.20   |
| itsdangerous==1.1.0        |
| Jinja2==2.10.1             |
| jmespath==0.9.4            |
| joblib==0.13.2             |
| JPype1==0.7.0              |
| JPype1-py3==0.5.5.4        |
| konlpy==0.5.1              |
| MarkupSafe==1.1.1          |
| more-itertools==7.2.0      |
| nltk==3.4.5                |
| numexpr==2.7.0             |
| numpy==1.17.1              |
| packaging==19.1            |
| pandas==0.25.1             |
| Pillow==6.1.0              |
| pipenv==2018.11.26         |
| pluggy==0.12.0             |
| py==1.8.0                  |
| PyJWT==1.7.1               |
| pyLDAvis==2.1.2            |
| pymongo==3.8.0             |
| pyparsing==2.4.2           |
| pytest==5.1.2              |
| python-dateutil==2.8.0     |
| pytz==2019.2               |
| requests==2.22.0           |
| s3transfer==0.2.1          |
| scipy==1.3.1               |
| six==1.12.0                |
| smart-open==1.8.4          |
| soupsieve==1.9.2           |
| tzlocal==1.5.1             |
| urllib3==1.25.3            |
| virtualenv==16.7.5         |
| virtualenv-clone==0.5.3    |
| wcwidth==0.1.7             |
| Werkzeug==0.15.4           |
| zipp==0.6.0                |
