Nuxt와 Bootstrap4 기반의 Dashboard 만들기

1. 프로젝트 생성 및 Github Repository 환경구성

Nuxt.js

오늘의 포스트는 Nuxt와 Bootstrap4 기반의 Dashboard 만들기의 첫 시작으로 프로젝트 생성 및 Github 환경구성 에 대해 작성해보겠습니다.

지난 포스트에서 Dashboard 개발에 관한 전반적인 사항들을 설계해봤습니다. 그럼 개발을 시작하기 전에 Nuxt 프로젝트 생성과 Github Repository 환경구성을 해보겠습니다.

개발 순서

  1. 프로젝트 생성 및 Github Repository 환경구성
  2. Heroku 배포 환경구성
  3. Nuxt & Express API 환경구성
  4. Axios
  5. Bootstrap & Bootstrap-vue 환경구성
  6. Page & UI 개발

Nuxt 프로젝트 생성

Nuxt는 Vue.js의 Server-Side Rendering을 지원하기 위한 프레임워크로, SSR 뿐만 아니라 Static Site 그리고 SPA 또한 지원한다. (Nuxt에 대한 소개는 추후 다른 포스트에서 계속하기로 하고…) 이제 Nuxt 프로젝트를 생성해보자!!!

Nuxt를 생성하기 위한 명령어로는 아래와 같으며

1
2
3
4
5
6
7
8
9
// yarn
yarn create nuxt-app <project-name>

// npx
npx create-nuxt-app <project-name>

// npm
npm init nuxt-app <project-name>

저는 두번째 npx CLI를 통해 생성해보겠습니다.

1
npx create-nuxt-app nuxt-bootstrap-dashboard

위 명령어를 실행하면 nuxt 앱을 생성하기 위한 다양한 옵션이 있으며 프로젝트에 맞는 옵션을 선택해주면 프로젝트 초기부터 구조가 잡힌 상태로 생성되면 그렇지 않다고 해서 개발 도중에 환경구성을 추가로 할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
create-nuxt-app v3.6.0
? Project name: nuxt-bootstrap-dashboard
? Programming language: (Use arrow keys)
❯ JavaScript
TypeScript
? Package manager: (Use arrow keys)
Yarn
❯ Npm
? UI framework: (Use arrow keys)
None
Ant Design Vue
BalmUI
❯ Bootstrap Vue
Buefy
Chakra UI
Element
Framevuerk
Oruga
Tachyons
Tailwind CSS
Windi CSS
Vant
View UI
Vuesax
(Move up and down to reveal more choices)
? Nuxt.js modules: (Press <space> to select, <a> to toggle all, <i> to invert selection)
❯◉ Axios - Promise based HTTP client
◯ Progressive Web App (PWA)
◯ Content - Git-based headless CMS
? Linting tools:
❯◉ ESLint
◯ Prettier
◯ Lint staged files
◯ StyleLint
◯ Commitlint
? Testing framework:
None
❯ Jest
AVA
WebdriverIO
Nightwatch
? Rendering mode: (Use arrow keys)
❯ Universal (SSR / SSG)
Single Page App
? Deployment target: (Use arrow keys)
❯ Server (Node.js hosting)
Static (Static/Jamstack hosting)
❯◉ jsconfig.json (Recommended for VS Code if you're not using typescript)
◯ Semantic Pull Requests
◯ Dependabot (For auto-updating dependencies, GitHub only)
Version control system: (Use arrow keys)
? Continuous integration: None
❯ None
GitHub Actions
Circle ci
...
? Version control system: (Use arrow keys)
❯ Git
None

// 설치 시작
⠸ Installing packages with npm

아래는 선택한 옵션 목록입니다. 몇 가지 설명을 부연하자면, 이번 프로젝트에서는 UI Component 옵션에서는 Bootstrap Vue 를, Nuxt.js modules 옵션에서는 Axios 를 선택했습니다. 사실 이 둘은 나중에 설치 및 환경구성을 해줘도 되지만 그렇게 되면 환경구성에 대해 직접 해줘야해서 다소 번거로워 되도록이면 프로젝트 생성과정에서 설치해주는게 이득인거 같습니다. 그리고 이외의 Linting tools, Testing framework, Rendering mode 와 같은 부분은 Nuxt 어플리케이션 skeleton을 잡기 위한 프로젝트 옵션으로써 앱 생성 옵션 선택에서 해주는 것이 중요합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
✨  Generating Nuxt.js project in nuxt-bootstrap-dashboard
? Project name: nuxt-bootstrap-dashboard
? Programming language: JavaScript
? Package manager: Npm
? UI framework: Bootstrap Vue
? Nuxt.js modules: (Press <space> to select, <a> to toggle all, <i> to invert selection)
? Linting tools: (Press <space> to select, <a> to toggle all, <i> to invert selection)
? Testing framework: Jest
? Rendering mode: Universal (SSR / SSG)
? Deployment target: Server (Node.js hosting)
? Development tools: (Press <space> to select, <a> to toggle all, <i> to invert selection)
? Continuous integration: None
? Version control system: Git

생성된 프로젝트의 디렉토리는 아래 이미지와 같습니다.

Nuxt Bootstrap Dashboard 디렉토리 - 생성 초기

생성이 완료되면 Command 창에 앱을 구동하기 위한 npm script 로 추후에 개발 환경변수RestAPI를 개발하면서 수정할 예정입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
🎉  Successfully created project nuxt-bootstrap-dashboard

To get started:

cd nuxt-bootstrap-dashboard
npm run dev

To build & start for production:

cd nuxt-bootstrap-dashboard
npm run build
npm run start

To test:

cd nuxt-bootstrap-dashboard
npm run test

Github Repository 환경구성

Repository 생성 및 프로젝트 연결

깃허브 원격 레포지터리 생성

자, 이제 Skeleton을 생성했으니 프로젝트 버전관리를 위해서 Github에 Repository를 생성해 연결해보겠습니다. Github 페이지에서 원격 저장소를 생성하면 아래와 같은 저장소 화면으로 이동하며 우리는 이미 프로젝트를 생성한 후 원격 저장소를 연결하는 것이기 때문에 existing repository from the command line 방법을 따릅니다.

1
2
3
4
5
6
7
8
9
10
11
12
// 해당 디렉토리의 저장소 초기화
git init

// 로컬 파일 추가 및 커밋
git add .
git commit -m "Initial Commit"

// 원격 저장소 주소 설정
git remote add origin https://github.com/Joontae-Kim/Nuxt-Bootstrap-Dashboard.git

// 원격 저장소로 commit한 파일 push
git push origin master

깃허브 원격 레포지터리 연결

Develop 브랜치 생성하기

default 브랜치 Develop 브랜치로 변경하기

프로젝트의 버전관리를 위해 Gitflow Workflow를 따를 것이고, Default Branch를 develop 브랜치로 변경 후 아래의 브랜치들을 가지고 Workflow를 수행할 것입니다.

  • master: 제품으로 출시될 수 있는 브랜치
  • develop: 다음 출시 버전을 개발하는 브랜치
  • feature: 기능을 개발하는 브랜치
  • release : 이번 출시 버전을 준비하는 브랜치
  • hotfix : 출시 버전에서 발생한 버그를 수정 하는 브랜치

참고

Gitflow Workflow에 대해서는 아래의 참고 URL로 대체합니다.

마치며

이상으로 이번 포스트의 주제인 1. 프로젝트 생성 및 Github Repository 환경구성 에 대해서 다뤄봤습니다. 일전에도 Git Flow 기반의 프로젝트 개발을 진행해봤었지만 아직도 햇갈리는 부분도 있고, 실수도 있습니다. 그러나 대규모 프로젝트에 참여해 개발을 진행할땐 팀내 협업을 위해서는 필수적이며 체계적인 배포 버전관리와 기능개발을 위해서도 개발자라면 혼자서라도 한번쯤은 연습 또는 실습해봐야할 개발 환경입니다. 추후에 Git Flow 기반의 프로젝트 개발에 대한 포스트를 작성해보겠습니다.

다음 포스트로는 2. Heroku 환경구성 에 대해 다뤄보겠습니다.