분류 전체보기 242

[VueQuill] quill Overwriting modules/imageUploader with class

vue3에서 쓰는 에디터인데 module을 붙이는 과정에서 위와 같은 경고창이 자꾸 뜸. 에러는 아니다만 거슬려서 한참을 찾아서 겨우 없앴는데 문제는 다른 에러([Violation] Added synchronous DOM mutation listener to a 'DOMNodeInserted' event. Consider using MutationObserver to make the page more responsive.)가 생기긴함.. 아직 방법 못찾음.. 1. debug 값 변경 import { QuillEditor } from "@vueup/vue-quill"; QuillEditor.props.globalOptions.default = () => { return {debug: 'error'} }; ..

라이브러리 2023.02.28

nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'link'

db에 link칼럼을 하나 추가했는데 또 이런 오류가 나길래 뭔가 했더니 모델에 link 쓰는걸 빼먹엇따리 1. 모델에 값 추가 public class userMaster extends EntityObject { // ... private String userId; private String link; // 추가 @Builder public userMaster(String userId, String link) { this.userId = userId; this.link = link; // 추가 } } 에휴 자바 공부도 해야하는데.. 까막눈인 상태로 수정하는수준.. 과연..

백엔드 2023.02.21

[vue3] dispatch에 await 쓰는 법

actions에 promise를 반환하는 함수가 있고, 그걸 dispatch로 받아서 데이터 요청을 하고 있었는데 죽어도 비동기가 안되길래 찾아봤는데 for문으로 하면 되더라. 이유는.. 몰러... // 원래 하던거 let promises = arr.map((m) => await store.dispatch("user/add", userNo)); // 바꾼거 let promises = []; for (let i = 0; i < arr.length; i++) { let p = await store.dispatch("user/add", userNo)); promises.push(p); }; await Promise.all(promises).then()

vue 2023.02.16

MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction

데이터 날렸는데 저런 문구가 떴음. db에 10가지 항목을 싹 넣어줬어야했는데 확인해보니 db에는 일부만 저장되어있던걸보니 요청만 너무 빨리 날려서 그런거 같더라. 난 백엔드는 모르니 프론트에서 할수있는 방법으로 적음. 1. promise나 await 등으로 순차적으로 보내기 // 기존 arr.map((data) => axios.post(url, data)); // 변경 let promises = arr.map(async (data) => axios.post(data)); await Promise.all(promises).then() 후로미스 주의할점 forEach쓰지말것.. await 주의할점 후로미스 반환되는 함수 왼쪽편에만 쓸수있음..

백엔드 2023.02.15

Failed to convert value of type 'java.lang.String' to required type 'int'; For input string: "undefined"

제목을 뭐로 해야할지 모르겠는데 암튼 위와 같은 오류와 아래와 같은 다른 오류 메세지도 떴었고, 심지어 이상하게 디버깅도 안되서(근데 postman으로는 되서 프론트에서 url를 잘못썼나 싶었음) 발장구좀 쳤는데 예상했듯이 보낸 params 형태가 이상해서였음. JSON parse error: Cannot deserialize value of type... Failed to convert value of type 'java.lang.String' to required type 'int'; ... 1. params 형태 확인 자세히보면 array안에 object가 있는 형태인데 몽총하게 object만 줄창 보내고있어서 저런 오류가 떴었음(하지만 정말 안보인다..!)

백엔드 2023.02.14

[vue3] child component에 계속 변하는 값 전달하기

예를들어 주기적으로 변하는 값이 있는데 이 값은 부모한테서 받아오고, 출력은 자식에서 하는데 값이 변한다는걸 인지해서 자동으로 바꿔줘야할때가 있음(예: 파일업로드 할때 몇퍼센트 되었는지 계속 찍어줘야할때) 1. 전달할 ref에 데이터 넣어주기 (부모) const num = ref(0); // 계속 값을 전달해주는 함수에서 // percent라는 값을 줘야할때 num.value = percent 일단 부모는 그냥 평범하게 써줌. 2. computed로 받기 (자식) const props = defineProps({ num: Number }); let computedNum = computed(() => props.num.toFixed(2) * 100); 중요한것은 나는 보통 새로운 변수에 props로 받아온..

vue 2023.02.13

[vue3] child component를 랜덤하게 동적으로 보여주기(markRow)

단순히 v-for를 돌려서 같은걸 보여주는게 아니라 컴포넌트를 보여줘야했음. 그리고 순서도 랜덤으로ㅇㅇ 1. 문제 만약에 html에 미리 이렇게 써놓고 숨겨놨다고 한다면, my2 다음에 my1을 보여주고 싶어도 무조건 저기에 써놓은 순서대로 my1이 위에있고 my2가 밑에 있게됨. 2. 컴포넌트를 넣어주는 방법 html에 와 그 안에 :is라는 요소를 넣어줌(:item은 그냥 데이터 전달용 props). 그리고 markRaw로 감싼 컴포넌트를 :is의 값으로 전달해주면 된다. 3. 컴포넌트를 넣어주는 방법(여러개) 위에꺼랑 다를건 없고 v-for를 추가해주고 여러 컴포넌트를 넣어주면 된다. --- 참고로 markRow로 넣은 component에서 watch가 안먹힐 경우 아래 포스팅 확인! [vue3] ..

vue 2023.02.09