하드코딩하기 힘들어서 이번에 부트스트랩을 쓰게 되었죠. 아주 편하지만! 안 되는 것 또한 몇가지 있어서.. 부트스트랩을 접을 뻔.. 그러나 엄청 간단한 문제입니다. 당신도! 부트스트랩 공식문서에 있는 CDN을 복붙하셨나요? 그럼 문제가 좀 있을 수 있어요. 전 이거 갖다 붙이고 고생했어요. https://getbootstrap.com/docs/4.4/getting-started/introduction/ 모달이 열릴 때 backdrop이 두번 뜨나요? 모달 modal.hide()해도 백드롭은 닫히지 않나요? .animation()이 실행이 안되나요?! 다 복붙한 jQuery 때문입니다. jquery.slim.min.js를 복붙하라고 하니까.. 그러나 slim에는 우리가 쓰고싶은 함수 중에 빠진게 많습니다...
서비스를 운영하다보면 유저들에게 수많은 상품들을 출력해줄 때가 많습니다. 상품이 많아지다보면 page별로 출력하는게 서버에서는 부담이 될때가 있습니다... (속도가 느려진다던지, sort 기준이 애매하다던지) 빠르게 출력하기위해선 어떤 방법을 취해야할까요? 2가지 방법으로 나눈 다음 설명 들어가겠습니다. 방법 1) db 출력후 -> 서버에서 sort 후 -> slice(분할) 작업 하여 page 별로 나눈다음 -> 프론트에 넘긴다. 장점 -> custom한 sort가 쉽다. 단점 -> 데이터가 많아지면 많아질수록 느려진다. 방법 2) db 검색 할때 미리 필요한 sort값을 저장 후 split(분할) 작업과 sort 작업을 한 후 -> 프론트에 넘긴다. 장점 -> 데이터가 많아 지더라도 속도가 빠르고 보..
보통 다른 서버를 두고 진행하지만 저는 테스트를 위해 local 에서 진행하였습니다. 1. config 파일을 기본적으로 설정해줍니다. ( replice를 위해 2개 생성) mongodb1.conf 파일 # Where to store the data. - 폴더 만드시고 실행하세요 dbpath=/home/somefolder/replica/db1 #where to log logpath=/home/somefolder/문서/replica/log1 logappend=true bind_ip = 127.0.0.1 port = 50001 # Enable journaling, http://www.mongodb.org/display/DOCS/Journaling journal=true #replica replication:..
es6 문법중에 Object destructuring 라는 것이있는데 const / let / var {} = {}; 예를 들어 let {a, b} = {a : 1, b : 2}; 선언문이 있습니다. 이 선언은 let a = 1; let b = 2; 라는 의미와 동일 합니다 왜 Object destructuring 사용하는가는 2줄 짜리 선언문을 1줄로 대처 할수 있기때문이죠 (더 많은 장점이 있지만 패스) 그래서 선언문 없이 사용하고 싶다면 기존 처럼 {a, b} = {a : 1, b : 2}; 로 사용 시 오류가 나게 됩니다! 해결 방법은 간단합니다 ({a, b} = {a : 1, b : 2}) 갈호를 추가해주면 됩니다 :)!! 참조 : https://developer.mozilla.org/en-US..
안녕하세요 여행의 직구 개발자 준입니다. 서버에 error handler를 사용하지 않는다면 오류 발생 시 에러코드를 브라우저에 바로 보여집니다. 이현상을 잡기위해서는 error handler 가 필요한데요. 사용방법은 간단합니다. app.use의 마지막 부분에 // error handlerapp.use(function (err, req, res, next) { console.error("서버 오류 발생", err); res.status(500).send('서버오류가 발생하였습니다.');}); 소스를 추가해주시면 됩니다. 더 자세한 원리를 알고 싶으시다면La.place 님의 블로그에 잘 정리가 되어있습니다. 감사합니다~ http://dev-momo.tistory.com/entry/nodejs-error-..
개발환경로그 : pm2 logrotate 사용 안녕하세요 개발을 진행하다가 언젠가 부터 서버가 터져도 로그에 에러로그가 안남는 버그가 발생 했었습니다. 치명적인 버그가 발생하였는데 log 정보에 저장이 안된다는것은 매우 치명적인 현상이었습니다!! 그래서!! 이전 로그들을 추적하여 function에 예기치 못한 오류를 만나게 되면 서버가 종료되는 현상이 발견되었습니다. callback 함수로 이루어진 function 내에서 치명적인 버그(서버가 종료되는) pm2 logrotate가 error.log에 작성이 되지 않더군요. (아마 nodejs 에러 출력이 pm2 logrotate에 도달하기 전에 종료되어 그런것 같습니다.) 이점을 해결하기위해 사용한것이 !! process.on('uncaughtExcept..
1. 상품 디비 검색 후 populate를 통하여 user 정보를 가져 왔을때 user의 DB를 변경하면 다른 상품 정보라고 해도 같은 모든 user정보가 변경된다. ex) item[0] 정보와 item[3] 정보에서 user은 같은 user를 참조한다고 하였을때 item[0].user.email = "abc@abc.abc" 라고 했을때 console.log(item[3].user.email); 하면 "abc@abc.abc"가 출력된다!
안녕하세요. 개발자 jun 입니다. 이번에 사이트 맵이라는 개념을 알아볼텐데요 사이트 맵이란 무엇인가? 구글 search 콘솔에서 가져온 내용입니다. 사이트 : https://support.google.com/webmasters/answer/156184?hl=ko // ** 내용 ** // 사이트맵은 사이트의 웹페이지를 나열하는 파일로 사이트 콘텐츠의 구성을 Google 및 다른 검색 엔진에 알리는 데 사용됩니다. Googlebot과 같은 검색 엔진 웹 크롤러는 이 파일을 읽고 사이트를 더 지능적으로 크롤링하게 됩니다. 또한 사이트맵은 사이트맵에 표시한 페이지와 관련이 있는 가치 있는 메타데이터를 제공할 수 있습니다. 메타데이터는 웹페이지에 관한 정보로 페이지가 마지막으로 업데이트된 날짜, 페이지 변경 ..
안녕하세요~~~ㅋㅋㅋㅋㅋㅋㅋ#별점, #별점 채우기, #별 css 🤩 🤩 🤩 🤩 🤩 🤩 🤩 오늘 할 일은 바로 이겁니다.ㅋㅋㅋㅋㅋ 별이.. 차오른다.. 원래 기존 별점은 이랬습니다ㅋㅋㅋ아 그냥 4.7이면 대충 반올림해서 별 5개 칠하자...하지만 양심에 찔리는 기분이 들어서 별을 정확하게 채워보기로 했습니다. 방법은 간단합니다. 1. 배경 별: (전체) 별 5개가 꽉찰만한 width로 회색으로 채웁니다. 잘 재보세요.2. 색깔 별: (점수) 배경 별의 넓이*(점수/총점)을 width로 합니다. 1,2는 겹쳐야 하므로 position:absolute로 해줍니다. 여기서 색깔별은 width를 벗어나는 경우 안보이게 감춰야하고, overflow:hidden; 보통 글씨는 꽉차면 다음줄로 넘어가므로 다음줄로 넘어..
안녕하세요. 여행의 직구 개발자 jun 입니다. 이번에 몽고 3.6 버전으로 업데이트 되면서 많은 기능이 개편되었는데요. 그 중에서도!! 아주 유용한 배열을 식별자를 통하여 바로 검색하여 업데이트 할 수 있도록 개편이 되었습니다. 3.6 버전 부터 적용 되기 때문에 꼭 몽고DB를 업데이트해주셔야합니다!! 가장 중요한점!!! 3.6 이전에 버전에서 저장되어 있던 db 데이터들 또한 dump파일을 만드시고 몽고DB 3.6 버전이상에서 restore하셔야 사용가능합니다! 그냥 몽고DB 버전만 업데이트하시고 사용하시면 identifier가 적용 안되니 꼭 주의해주시길 바랍니다. ^-^ 일단 간단히 예시 부터 보도록 합시다. 공식 문서 : https://docs.mongodb.com/manual/reference..