◼︎ 환경
- Model : MacBook Pro (14-inch, 2021)
- CPU : Apple M1 Pro
- MENORY : 16GB
- DISK : 512 GB SSD
- OS : macOS 13.2.1 (22D68)
- TOOLS : Visual Studio Code, Git
Vuetify 프로젝트를 아래와 같이 yarn 명령을 사용하여 생성한다.
yarn create vuetify ◼︎ 환경
Vuetify 프로젝트를 아래와 같이 yarn 명령을 사용하여 생성한다.
yarn create vuetify 특정 화면에서 반복적인 작업을 수행해야하는 아래와 같은 경우를 가정해보자.
개발은 크게 고민하지 않고 공개된 Unsplash API 을 활용 이미지 목록을 가져와서 주기적으로 화면의 배경 이미지를 바꿔주었다.
Index View 에서는 ① mounted 되면 upsplash 에서 가져온 이미지 목록이 있는지 확인하고 없는 경우 fetch 함수를 호출하여 이미지 목록을 가져온다. ② setTimeout 함수를 사용하여 15000 단위로 바탕하면 이미지를 바꿔준다.
위 코드의 문제점은 아래와 같다.
◼︎ 개발환경
개발을 조금 쉽게 해보려고 무료로 이용이 가능한 Vuetify 3 - Vite Theme FREE 을 다운로드 하여 사용하였다. (기본적인 환경만 미리 세팅이 되어 있어 사용할 필요성을 없을 것 같다. 타입스크립트라던지 개발 편의를 위한 설정이라든지 등의 여러 설정을 추가하느라 결과적으로는 더 힘들게 되어 버렸다.)
◼︎ 개발환경
npm install @vuelidate/core @vuelidate/validators --saveVITE_API_URL=http://localhost:4000Vue 2.5 기반의 Vue Material Kit 을 사용한 경험이 있어 Vue 3.0 과 bootstrap 5.0 을 기반으로 하는 Vue Material Kit 2 을 경험해 보았다.
홈페이지를 통하여 다운로드하는 경우 회원가입 절차가 필요하지만 Github 사이트를 방문하여 다운로드 하는 방법도 있다.
Vue Material Kit 에서 제공하는 UI 컴포넌트들이 v-model 을 지원하지 않고 있어 "Best Ways to Use v-model to Custom Components in Vue 3 (Absolute Guide)" 자료를 참조 수정하여 사용하였다. 예를 들자면 MaterialInput.vue 컴포넌트을 (https://github.com/creativetimofficial/vue-material-kit/blob/master/src/components/MaterialInput.vue) 아래와 같이 수정하여 v-model 기능을 사용할 수 있도록 하였다.
vuex 대신 Pinia 를 사용하여 상태 값을 관리한다. 로그인 상태 값을 관하는 것을 예로 들자면 더욱 간단하게 구현이 가능하다. 개인적으로는 mutations 를 사용하지 않는 점이 편리하게 느껴졌다.
Vite 로 빌드된 Vue 3 앱은 기본적으로 dotenv(.env) 환경 변수를 지원하기 때문에 필요한 값들은 .env 파일에 정의하여 사용하면 된다. 주의할 것은 클라이언트 앱에서 사용하려면 VITE_ 접두사를 붙여야 한다. 서버 API URL 과 같은 값들을 정의하여 사용하면 편리하다.
![]() |
| https://code.visualstudio.com/ |
![]() |
| Vue Material Kit (Free) |
![]() |
| 전체 구성도 |