Github 저장소에서 코드를 받아와 실행하는 방법입니다. 아래 설명은 Ubuntu 20.04 기준으로 작성되었습니다. 윈도우 자동화 쉘스크립트는 차후 배포 예정입니다.

1. Installation

# Ubuntu 20.04LTS(focal)
# AWS EC2

# 저장소로부터 가져오기
$ git clone <https://lab.ssafy.com/s05-webmobile3-sub3/S05P13A109.git>

$ sudo chmod 774 ./S05P13A109/sh/*

# docker, nodejs 설치
$ sudo ./S05P13A109/apt.sh

2 Docker Server

스크립트로 nginX, React, nodejs 등 서버 구동에 필요한 요소들을 Docker 가상화시켜 실행할 수 있습니다.

$ sudo ./S05P13A109/frontend_build.sh
$ sudo ./S05P13A109/backend_build.sh

3. DB config

DB에 연결하기위한 설정 정보를 생성합니다.

$ vi ./S05P13A109/backend/src/.env

#.env
---
NODEJS_PORT=8079

#DB dump파일에 생성된 계정으로 접속합니다.
MYSQL_USERNAME=sfens
MYSQL_PASSWORD=rlathdgus
MYSQL_DATABASE="sfens"
MYSQL_HOST=127.0.0.1
MYSQL_PORT=3308

4. DB migration

DB를 생성하고 서버에 필요한 스키마를 생성하고, 샘플 데이터 인스턴스를 생성(4-1)할 수 있습니다.

또는 DB를 생성하고 DB 덤프(4-2)를 통해 준비된 데이터를 사용할 수 있습니다.

저희는 DB 덤프(4-2)를 권장합니다.

4-1. Sequelize migrate, seed

전자의 경우 sequelize-cli 명령어를 통해 3. DB config에서 설정된 DB를 생성하고 스키마에 맞는 테이블을 생성할 수 있습니다.

$ npx sequelize db:create
$ npx sequelize db:migrate

또한 seed라는 기능을 통해 미리 준비한 데이터 세트를 추가할 수 있으나, seed 파일은 제공하지 않으므로 5. 실행 이후 서비스에서 직접 데이터를 추가할 수 있습니다.

4-2. DB 덤프

DB dump는 DB 상태를 저장하고 불러오는 것을 의미합니다.

서버에 SSH로 연결하여 CLI 환경에서 사용하거나, dbeaver와 같은 GUI 툴을 이용해 SSH 터널링으로 접근할 수 있습니다. 후자의 경우 프로그램을 설치해야하지만 더 많은 기능을 제공하므로 추천합니다.

CLI 환경

  1. 서버에서 $ mysql -u [아이디] -p를 통해 DB에 접근할 계정으로 로그인합니다.
  2. > create database [복구할 DB명]를 통해 DB를 생성합니다. 이 때 복구할 DB명은 3. DB config에서 설정한 sfens를 사용합니다.
  3. > quit으로 SSH로 돌아와서 mysql -u [아이디] -p [복구할데이터베이스이름] < [덤프파일].sql을 입력합니다. 덤프파일(.sql)은 현재 SSH의 실행 위치에 있어야합니다.

DBeaver를 이용한 GUI 환경

  1. 갓대희 컨설턴트님의 포스팅(https://goddaehee.tistory.com/202)을 보고 DBeaver를 설치합니다.

  2. DBeaver에서 [새 데이터베이스 연결] - [mariaDB]를 선택합니다.

  3. [Connection Setting]에서 아래와 같이 작성합니다. password는 3. DB config에 따르면 됩니다.

    Untitled

    Untitled

  4. 연결이 되면 [Create] - [Database] 혹은 [sfens 우클릭] - [Create New Database]를 통해 sfens라는 이름의 데이터베이스를 생성합니다.

  5. 생성된 sfens 데이터베이스 [우클릭] - [도구] - [Restore database]를 통해 덤프파일을 선택하여 실행하면 sfens데이터베이스에 덤프파일의 내용이 들어가게 됩니다.

5. 실행

$ cd @/S05P13A109/backend/src
$ pm2 start index.js