본문 바로가기

쬬는 개발중28

요즘 인기있는 npm 패키지/라이브러리를 비교할 수 있는 사이트, npm trends npm trends: Compare NPM package downloads Which NPM package should you use? Compare packages download stats, bundle sizes, github stars and more. Spot trends, pick the winner. npmtrends.com 개발자의 길로 접어들면서 사수에게 가장 많이 들었던 말이, 트렌드를 알아야된다는 말이였다. 개발의 세계는 무궁무진하고 업데이트속도가 빨라서 고작 1년만 지났음에도 불구하고 신기한 라이브러리,,AI 등등 신기술들이 등장하게 된다. 그 몇년의 세월을 견디고도 살아남은 라이브러리나 프레임워크도 많지만, 결국 JQuery 가 옛날 언어가 되어버린 것처럼..(최근 부트캠프 학생들.. 2023. 6. 24.
[Vue Error] npm run serve 오류 vue-cli-service: command not found git clone 을 실행하고 npm run serve 를 실행했는데 해당 오류가 발생했다. sh: vue-cli-service: command not found npm ERR! code ELIFECYCLE npm ERR! syscall spawn npm ERR! file sh npm ERR! errno ENOENT npm ERR! chart@0.1.0 serve: `vue-cli-service serve` npm ERR! spawn ENOENT npm ERR! npm ERR! Failed at the chart@0.1.0 serve script. npm ERR! This is probably not a problem with npm. There is likely additional logging out.. 2023. 6. 24.
[javascript] 모바일 검색창 숨기기 기능 구현 (터치 떨림 보정) 모바일에서 작동하는 검색창을 구현하려던 도중 터치아웃을 하는 순간 스크롤 감지에 의해 검색바가 깜빡이는 현상에 부딧혔다. 해당 버그를 수정하기 위해서 별의 별 짓을 다햇다.. lodash의 throttle 이나 touchout, touchstart 등등 여러가지 이벤트로 핸들링 하려고 해봤지만 깜빡이는 문제를 잡기 쉽지않았다.(스크롤이 워낙 민감하게 동작하기때문에..) 그러던 도중, 해당 글을 발견했고 jQuery 대신 javascript 로 구현한 로직을 짤 수 있었다. 사실, setInterval을 쓸 생각은 하지도 못했는데 덕분에 좋은 기능 구현을 할 수 있었다. :-) javascript var didScroll; var lastScrollTop = 0; var delta = 5; var navb.. 2023. 1. 30.
masonry / infinite scroll / imagesLoaded 활용하여 핀터레스트 | 네이버 이미지 리스트화면 구현하기 벽돌처럼 차곡차곡쌓아진 디자인을 masonry 라고 이야기한다. 이번엔 사이즈가 제각각 다른 이미지를 활용해 이런 피드리스트를 구현해보았다. 추가로 스크롤링시 다음 페이지를 호출하는 방식을 사용했다. (infinite scroll) masonry 만 사용한 경우 발생되는 문제점이 애초에 해당 프로젝트는 pull-refresh 를 사용하고 있어서 제대로 영역을 감지 못하는 상태였다. 게다가 데이터 내부에 이미지를 받아오자마자 뿌려주다보니 이미지가 완전히 load 되기 전에 레이아웃이 실행되어 높이 영역이 계속해서 겹치는 현상이 발생했다. 그럼 어떻게 해결할 수 있을까? 라는 생각을 이것저것 해보다가 이미지가 완전히 load 되어 높이가 지정되었을 때, 적용하면 문제없이 구현이 가능할것이라고 생각했다. 사용.. 2022. 12. 9.
[axios] 엑셀 파일 다운로드 기능 구현하기 엑셀 파일 다운로드 javascript 를 사용하여 a 태그에 받은데이터를 넣어서 동작 구현이 가능하다. api에 속성과 입력값에 따라 params 값을 설정해주고 responseType 을 설정해준다 axios({ url: "/report", methods: "GET", params: { year: this.year, month: this.month, xls: "Y", xlsLimit: "300" }, responseType: "blob" //responseType 설정 }).then(res => { const url = window.URL.createObjectURL(new Blob([res.data])); const link = document.createElement("a"); link.href .. 2022. 12. 4.
[axios] 이미지 POST 기능이 제대로 동작하지 않을때 확인사항 이슈 상황 이미지를 다른 객체들과 같이 post 요청을 보내려고 하는데 이미지 post 기능이 정상작동되지 않고 null 값을 찍힌다 1. header 에 Content-Type을 multipart/form-data 로 지정했는지 확인한다 //이미지를 넣는 axios 호출 부분 SetImg(params) { return axiosService.post("v1/files", params, { header: { "Content-Type": "multipart/form-data", }, }); }, 2. FormData로 요청하는지 확인한다. let fd = new FormData(); fd.append("key", img소스 ); //axios 호출 let val = await axiosService.Set.. 2022. 12. 2.
[javascript | Vue] 이미지 다운로드 기능 만들기 (canvas/url활용) get으로 받은 소스를 화면에 뿌리고> 그 이미지를 다운로드 받으려면 canvas를 활용해 가능하다. 👉 template (표현되어질 부분) 👉 template (다운로드 버튼) 다운받기mdi-arrow-down-bold-circle 👉 methods a 태그를 임의로 생성해 canvas 속성을 대입해 다운로드 기능을 동작하게 해준다 download() { var a = document.createElement("a"); // a.setAttribute("download", "파일이름" + ".png"); a.setAttribute( "href", document .getElementById("canvas") .toDataURL("image/png") .replace("image/png", "image/.. 2022. 12. 2.
[javascript] 문자 /n 줄바꿈 변환작업 백에서 전달받는 데이터중에는 문단의 특성을 전달받지 못한 경우가 많다 그래서 replace로 /n 를 변환해준다 //cardData /n이 포함된 문자열을 포함한 배열 cardData.forEach((el, index) => { cardData[index].cont = el.contents.replace(/\n/g, " "); }); vue 환경이라 v-html를 활용했지만 p태그 안에 적용해줘도된다 2022. 12. 2.
[javascript] window.open 팝업권한 사파리 문제해결 사파리에선 승인을하지 않으면 팝업창이 띄어지지 않는다 이런오류를 해결하기 위해 window.open을 null 값으로 먼저 띄어놓고 async await 비동기 호출을 통해 axios 호출 이후 미리 띄어진 window창에 url을 넣어주는 방식을 사용했다. // 팝업선언 let popup = window.open( undefined, "payment_pop", "top=10,left=10,width=500,height=600,status=no,menubar=no,toolbar=no,resizable=no" //사이즈설정 ); // 비동기로 url 호출 const url = await axiosService .post("post_url", params) .then((res) => { let url = ".. 2022. 11. 29.
[javascript] youtube embed 소스 자동재생 모바일에서 안된다면 (autoplay 이슈해결) | mobile 자동재생 안됨 유튜브 소스 자동재생 구현하려면 iframe을 사용해 autoplay를 설정해주는것이라고 알고 있을것이다. 사실 몰랐는데 최근 유튜브 영상 소스가 페이지 로드시 자동재생하는 기능을 구현하면서 현재(2022)는 autoplay가 web에서 지원되지 않는다는것을 알게되었다. 그것도 모르고 과거 블로그글들을 찾아보면서 계속 다른 부분에서 오점을 찾고 있었다. (이래서 공식 문서와 업데이트 사항을 명확하게 파악하는것이 중요하다) 결국 어느 블로그에서 autoplay 기능이 web에서만 제공되고 mobile 환경에서는 제공되지 않는다는 이야기를 듣고 여기저기 소스를 탐색해 본 끝에 youtube에서 지원해주는 iframe_api 소스를 활용해 모바일 환경에서도 자동재생 구현이 가능한 소스를 찾았다. 👉 html .. 2022. 11. 25.
반응형