묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
건의사항
짐 코딩님 강의 정말 잘 보고 있습니다.강의 내용과 별도로 좋았던게 문서보는법이였는데요. 해당 부분 추후 강의에서 좀 더 다뤄주셨으면 좋을것 같아서요.제가 아직 강의를 다 수강한건 아니지만 FireBase 문서 뿐만 아니라 다른 프레임워크 문서, 라이브러리 문서, 기타 서비스 문서 보는 법과스택오버플로우 문서활용하는 법 (에러 내용은 같지만, 에러 발생한 및 개발하는 상황이 다른경우가 많더라구요)다른 사람들이 GitHub 코드 참고 및 활용하는 방법도 영상으로 꼭 다뤄주셨으면 좋겠습니다..! 추가로 FireBase 강의의 경우 DB 관리및 설계를 FireBase 를 활용해서 하였는데순수하게 백엔드 및 DB 설계하는 강의도 꼭 다뤄주시면 진짜 반드시 수강신청해서 완강하겠습니다..! 좋은 강의 올려주셔서 감사합니다
-
미해결Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
Firebase Hosting 후 페이지 안뜰 때!
혹시나 저 같으신 분 있으실까봐 공유해요!firebase hosting 후 Deploy complete! 라고 잘 떴는데도 불구하고 본인이 만든 페이지는 안뜨고 저 화면이 나타날때, 1분정도 기다렸다가 새로고침하니까 제대로 뜨네요 ㅎㅎ이런 이유인지 모르고 이것저것 다시 해보다가(삽질 ㅠㅠ)새로 고침 하니까 바로 뜨네요 😅😅
-
미해결Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
type : negative 무슨 의미인가요?
비동기상태(loading,error)관리 24:40제가 수업에서 놓친건진 모르겠는데요. 타입에 String, Number는 알겠지만 negative가 뭔지 모르겠네요. 검색해도 못찾겠구요.
-
미해결Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
강의 교안은 어떻게 볼 수 있나요?
여러군데 검색해도 나오지 않기에, 이곳에 올려봅니다. 항상 좋은 강의 감사드립니다!
-
미해결Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
플로그인 설치
안녕하세요volar 설치 확인 중 . volar 를 입력하면 강의에서 볼 수 있는 " Vue Langve Features(Volar)" 이 검색 되질 않습니다. TypeScriptg vue Plugn(volar) 은 취소선으로 처리되어 김색 데고요...Visaul Code 문제?..글쎄요.. 잘 모르겠습니다. 지원 부탁 드립니다.
-
미해결퀘이사(Quasar) 완벽 마스터: Vue 프론트 웹을 빠르게 만들고 싶다면! (Based Vue3)
quasar intellisense extension 관련 문의
안녕하세요. 강의 잘 듣고 있습니다.강의중에 퀘이사 컴포넌트 속성 작성하실때 (ex <q-input outline /> )영상에서는 o 만 타이밍해도 자동완성이 작동하던데, 저는 안되더라구요.퀘이사 다른 익스텐션을 테스트해봐도 작동이 안되거나 버전업이 안되는것들 뿐이네요.volar 에서 Vue - Official 로 바뀐거같긴합니다만 이거때문일까요? 다른방법이 없을까요? 아니면 따로 사용하시는게 있을까요?
-
미해결Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
Firebase 요금제에 관한 문의사항
Firebase 요금에 관한 문의 사항이 있습니다.회사 내 프로젝트인데 Firebase가 오픈 소스인 줄 알았는데 요금제가 있더군요생각보다 요금제에 대한 함정이 있는 것 같아 사용하기가 선뜻 내키지 않습니다.또한 저희는 오픈 소스를 사용해야 하는 입장이고 클라우드 환경이라면 AWS를 이용해야 하는 상황입니다. 질문혹시 Firebase를 사용하지 않고 자체 DB를 이용한다고 할 때 강의 내용에 나온 프론트 화면이나 로직은 사용이 가능합니까?만약 Firebase Store를 이용하지 않는다면 이 강의는 건너 뛰고 Nuxt3로 가는 것이 좋습니까?
-
미해결Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
사용자 컴포넌트를 작성하는 것에 대한 문의
프로젝트에서 Quasar를 이용하여 프론트를 개발할 때textarea, password 와 같은 입력 필드들을 base component로 만들어서 개발자에게 제공하는 것이 일반적인 방식인가요? 아니면 개발자가 하나하나 type이라던지 placeholder를 지정하면서 개발하는 것이 일반적인 방식인가요?
-
미해결Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
Firebase 강의 Section1의 Auto page 설정에 관련되어
강의 내용대로 진행을 하였는데 아래와 같은 에러가 발생합니다. 순서는 아래와 같이 진행을 했습니다.vitePlugins에서 조금 틀리게 나오지만 없는 부분은 주석 처리해서 해보았지만 같은 현상입니다.
-
미해결퀘이사(Quasar) 완벽 마스터: Vue 프론트 웹을 빠르게 만들고 싶다면! (Based Vue3)
q-tab 오류 문의
<q-tabs v-model="tab" class="bg-grey-9" dense align="justify"> <q-tab class="text-orange" name="C" icon="mail" label="콘텐츠 등록" /> <q-tab class="text-cyan" name="M" icon="alarm" label="메뉴 등록" /> </q-tabs> <div class="col-8"> <q-form @submit.prevent="handleSubmit"> <q-card-section class="q-gutter-y-sm"> <div class="flex justify-between"> <q-select v-model="newCategory.majorCategory" outlined :options="majorCategoryOptions" emit-value map-options option-value="value" option-label="label" placeholder="::대분류선택::" style="width: 300px" > <template v-if="!newCategory.majorCategory" #selected> <span class="text-grey-7">::대분류선택::</span> </template> </q-select> <q-select v-model="newCategory.middleCategory" outlined :options="middleCategoryOptions" emit-value map-options option-value="value" option-label="label" placeholder="::중분류선택::" style="width: 300px" > <template v-if="!newCategory.middleCategory" #selected> <span class="text-grey-7">::중분류선택::</span> </template> </q-select> </div>분류 선택 없이 탭메뉴 이동 시에는 해당 영역의 카테고리를 잘 불러 옵니다.하지만 분류 카테고리를 선택후 탭메뉴를 이동시에 오류가 발생 합니다.변수 초기화 (탭메뉴 이동시)const getInitialForm = async (cinfo = 'C') => { newCategory.value = { parent: null, majorCategory: null, middleCategory: null, subCategory: null, detailCategory: null, ctitle: '', ccode: '', clevel: 0, cinfo: cinfo, order: null, open_flag: 'Y', clink: '', }; tab.value = cinfo; // Ensure the tab reflects the initial cinfo value // Initialize category options majorCategoryOptions.value = []; middleCategoryOptions.value = []; subCategoryOptions.value = []; detailCategoryOptions.value = []; }; // 대분류 const fetchCategories = async () => { try { const result = await get_category_child(null, newCategory.value.cinfo); majorCategoryOptions.value = result.map(cat => ({ label: cat.ctitle, value: cat.ccode, })); middleCategoryOptions.value = []; subCategoryOptions.value = []; detailCategoryOptions.value = []; } catch (error) { console.error(error); } }; // 카테고리 선택에 따른 하위 카테고리 갱신 watch( () => newCategory.value.majorCategory, (newValue, oldValue) => { if (newValue !== oldValue && newValue !== null) { fetchMiddleCategories(newValue); } }, ); 탭메뉴 이동시에 초기화도 진행 하였습니다만 계속 오류가 발생하는데 조언 부탁 드립니다. 감사합니다.
-
미해결퀘이사(Quasar) 완벽 마스터: Vue 프론트 웹을 빠르게 만들고 싶다면! (Based Vue3)
q-upload 문의 드립니다.
안녕하세요quasar 강좌를 듣고파일 업로드 관련하여 q-upload 를 사용 하여 파일 업로드를 진행 하였습니다.백엔드는 fastapi 를 사용 하였으며소스는 아래와 같습니다.<q-uploader class="full-width" label="첨부파일 (for <78k size)" no-thumbnails v-model="files" accept=".jpg,.jpeg,.png,.gif,.pdf,.doc,.docx,.xls,.xlsx, .mp4" multiple hide-upload-btn auto-upload :factory="handleFileAdded" :upload_progress-label="uploadProgress" @rejected="onRejected" @removed="handleFileRemoved" /> <script setup> 부분 const files = ref([]); // 업로드된 파일 목록을 담을 배열 const uploadFile2 = async (file, uploadId, fileKey) => { const formData = new FormData(); formData.append('file', file); formData.append('uploadId', uploadId); formData.append('fileKey', fileKey); try { const response = await axios.post( `http://127.0.0.1:8000/api/v1/attachFile/Create`, formData, { headers: { 'Content-Type': 'multipart/form-data', Authorization: `Bearer ${localStorage.getItem('auth/access_token')}`, }, onUploadProgress: function (progressEvent) { const { loaded, total } = progressEvent; const progress = Math.round((loaded * 100) / total); uploadProgress.value = progress; console.log('uploadProgress.value', uploadProgress.value); console.log(`Upload Progress: ${progress}%`); }, }, ); return response.data; } catch (error) { console.error('Error uploading file:', error); throw error; } }; const handleFileAdded = async newFiles => { for (const file of newFiles) { try { const attachFile = await uploadFile2(file, uploadId, file.__key); console.log(attachFile.attach_id); console.log(`File uploaded successfully:`, attachFile); files.value.push(file); } catch (error) { console.error(`Error uploading file ${file.name}:`, error); } } }; 실행 하면 파일은 정상적으로 백엔드 서버에 등록되고등록된 파일 정보도 리턴되어 잘 받아 집니다.하지만 주의 표시아이콘과 파일 업로드 상태가 0% 로 표시 됩니다.선배님들의 조언 부탁 드립니다.감사합니다.
-
미해결퀘이사(Quasar) 완벽 마스터: Vue 프론트 웹을 빠르게 만들고 싶다면! (Based Vue3)
q-input과 :rules 속성을 함께 쓸때, items-center 속성이 이상한 현상
안녕하세요q-span과 q-input을 나란히 배치하는 UI를 만들고 있습니다. 세로 중앙정렬을 위해서 Container에 item-center 옵션을 사용하고 있는데, q-input에 :rules 속성만 주면 중앙 정렬이 깨지네요. 어떻게 해야 세로 중앙정렬이 가능할까요? 아래는 제가 시도해본 4가지 상황입니다. ps. 글쓰는거 코드랑 함께 넣는거 어렵네요. ㅠㅠ<template> <q-page> <!-- 유효성 검사 없이 items-center --> <div class="row q-mt-md bg-primary"> <div class="row full-width items-center"> <q-span class="text-h6 col-3" align="right">신청자</q-span> <q-span class="col-1"></q-span> <q-input class="" dense outlined v-model="userName" /> </div> </div> <!-- 유효성 검사와 items-center 모두 없음 --> <div class="row q-mt-md bg-primary"> <div class="row full-width"> <q-span class="text-h6 col-3" align="right">신청자</q-span> <q-span class="col-1"></q-span> <q-input class="" dense outlined v-model="userName" /> </div> </div> <!-- 유효성 검사와 items-center 모두 존재--> <div class="row q-mt-md bg-primary"> <div class="row full-width items-center"> <q-span class="text-h6 col-3" align="right">신청자</q-span> <q-span class="col-1"></q-span> <q-input class="" dense outlined v-model="userName" :rules="['text']" /> </div> </div> <!-- 유효성 검사 존재하고 items-center 없을 경우 --> <div class="row q-mt-md bg-primary"> <div class="row full-width"> <q-span class="text-h6 col-3" align="right">신청자</q-span> <q-span class="col-1"></q-span> <q-input class="" dense outlined v-model="userName" :rules="['text']" /> </div> </div> </q-page> </template>
-
미해결퀘이사(Quasar) 완벽 마스터: Vue 프론트 웹을 빠르게 만들고 싶다면! (Based Vue3)
Key값으로 Object 사용가능할까요?
안녕하세요. 질문이 있습니다.부모 컴포넌트에서 자식 컴포넌트를 리로드하기위해서 key값을 이용하고 있습니다.key값으로 object를 사용하고 있고 값 변경을 감지하고 리로드되고 있습니다.그런데 vue 문서에 보니 key값으로 Number, String, Symbol만 적혀있고 Object는 적혀있지 않아서요.key 값으로 Object를 사용하면 안되는걸까요?안된다면 id, enable 두개 값 중 하나라도 변경 되었을경우 자식 컴포넌트를 리로드하는 방법이 있을까요? <vn-list-in-vng :grp_info="grp_info" :key="grp_info" /> grp_info: ref({ id: Number(0), enable: Number(0), lv1_id: Number(0), }),
-
미해결Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
tiptap 스타일 파일은 따로 안 올려주시나요?
Tiptap Editor 강의를 듣다가 스타일 파일은 말씀으로는 자료에 올려주신다고 하셨지만, 자막을 보니 직접 타이핑을 하라고 말씀하시는 것 같아서요.따로 스타일 파일은 안 올려주시나요?
-
미해결Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
LocalStorage 값 변경 자동 체크
안녕하세요스토어에서 LocalStorage 를 사용 하여 로그인 진행 중 막혀 문의 드립니다.const accessToken = ref(localStorage.getItem('auth/access_token'))또는const accessToken = useLocalStorage('auth/access_token', null);이렇게 선언하여jwt토큰 값을 저장하고토큰이 만료 되면 service 에서리플래쉬 토큰으로 재발급하여 auth/access_token 에 다시 저장 하는데isTokenValid 값이 변경이 되지 않습니다. const isTokenValid = computed(() => { if (!accessToken.value) { console.log('No access token found.'); // Optionally log when no token is found. accessToken.value = null; return false; } const rtn_valuue = isTokenExpired(accessToken.value); if (!rtn_valuue) { // 토큰 만료 accessToken.value = null; } return rtn_valuue; }); useEventListener(window, 'local-storage', event => { if (event.key === 'auth/access_token') { console.log( 'Detected changes in access token from another tab or window.:: local', ); // 다른 탭에서 변경된 값으로 accessToken 업데이트 accessToken.value = event.newValue; } });이렇게 해도 체크가 안되네요isTokenValid 값은 화면을 리로드 하면 바뀌는데로컬 스토리지가 변경 되었을때는 변화가 없네요해결 방안좀 부탁 드립니다.감사합니다.
-
미해결Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
Volar Deprecated
안녕하세요. 오랜만에 들어서 다시 처음부터 듣고있는데요 Volar 관련된 플러그인이 다 Deprecated되었다고 합니다. 대체할 게 있을까요?
-
미해결Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
호스팅 문제 관련 질문 있습니다.
안녕하세요!! 강의를 보며 호스팅까지 진행하였습니다. 이후 설정된 url로 이동하니 이화면으로 계속 이동이 되는데 무슨 오류가 있는건지 어려워서요.. 혹시 해결방법이 있을까요?
-
미해결Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
안녕하세요!
안녕하세요~좋아요 수, 북마크 수, 댓글 수 카운팅 강의들으면서firebase emulator 실행하려고 하는데이 오류가 발생하며 계속 시작이 안되는데 어떻게 해결해야할지 모르겠습니다 ~~!이미지가 잘보이지 않는거 같아 코드 복사해서 첨부 합니다! --오류 코드 i emulators: Starting emulators: auth, functions, firestore, hosting, storage! functions: The following emulators are not running, calls to these services from the Functions emulator will affect production: database, pubsubi firestore: Firestore Emulator logging to firestore-debug.log+ firestore: Firestore Emulator UI websocket is running on 9150.! firestore: Fatal error occurred: Firestore Emulator has exited with code: 3221225786, stopping all running emulatorsi functions: Stopping Functions Emulatori firestore: Stopping Firestore Emulatori auth: Stopping Authentication Emulatori eventarc: Stopping Eventarc Emulatori hub: Stopping emulator hub
-
미해결퀘이사(Quasar) 완벽 마스터: Vue 프론트 웹을 빠르게 만들고 싶다면! (Based Vue3)
npm run build 시 오류 발생합니다
[vite:load-fallback] Could not load D:\quasar\quasar-project\src\pages/IndexPage.vue (imported by src/router/routes.js): ENOENT: no such file or directory, open 'D:\quasar\quasar-project\src\pages\IndexPage.vue' 오류에 보면 경로 pages/youtube/Indexpage.vue에 youtube가 빠져있습니다. 실제 파일 경로는 정상인 상태인데 왜 youtube가 빠져서 읽히는 건가요?
-
해결됨Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
emit, prop 대신 defineModel()을 사용하여 구현 하는 것에 대한 질문 입니다.
최근 vue 문서를 보다가 "Vue 3.4부터는 defineModel() 매크로를 사용하는 것이 권장되는 접근 방식입니다:"라고 되어있었습니다. 그래서 vue 버전을 올리고 강의에 emit, prop 사용하는 곳을 defineModel()방식으로 변경하고 싶어서 강의 코드를 수정하면서 진행 하고 있습니다. 대표적으로 커리큘럼 email 회원가입&로그인 파트에 사용된 prop, emit 부분을 아래와 같이 수정 해 보았습니다. 기존 AuthDialog.vue변경 AuthDialog.vue기존 SignInForm.vue변경 SignInForm.vue테스트 하면서 동작을 되지만 구현 하면서 질문이 두 가지 셍걌습니다:defaule.vue - AuthDialog.vue - SignInForm.vue간에 viewMode와 closeDialog 값을 제가 구현한 방식 대로 하는 게 문제가 없는지 알고 싶습니다.AuthDialog.vue에서 아래서 변경된 closeDialog 값을 인식 하기 위해서 watch를 사용하였는데 제가 구현한 방식보다 괜찮은 방법이 있는지 알고 싶습니다.defineModel() 방식을 사용하면 강의 코드 상당 수가 간단해 질 것 같네요 좋은 강의 곱씹으면서 보고 또 보고 있습니다. 정말 감사합니다.