배열 내에 특정 항목이 존재하는지 검사할 때에는 보통 Array.indexOf() 메소드를 사용합니다. 예)let Arr = ["a","b","c"];Arr.indexOf("a"); // 0Arr.indexOf("d"); // -1 위의 예와 같이 배열에 특정 항목이 있는경우 0또는 0보다 큰 값을 return하고 항목을 찾을 수 없는 경우 음수를 return합니다. 그런데 객체로 구성된 배열에서 객체의 특정 key값이 특정 value인 객체가 존재하는지 확인하려면 어떻게 해야할까요? 먼저 반복문으로 구현해 볼 수 있겠습니다.let Arr = [ { name:"a", pass:"b"}, { name:"b", pass:"t"}, { name:"c", pass:"f"}, { name:"d", pass:"e"..
카카오 링크가 업데이트되었다는 이메일이 날아와서 확인해보았습니다.그중 반가운 소식이 있었는데요. 바로 PC에서 카카오톡공유가 가능해졌다는 점입니다.기존에는 카카오링크를 적용해도 PC에서는 작동하지 않으므로 숨겨야하는 불편함이 있었지만 이제 PC에서도 공유버튼이 동작하므로 매우 편리해졌습니다. 이번 업데이트로 PC용 카카오톡뿐만 아니라 웹용 카카오톡의 등장도 기대해볼만합니다.기존에 PC에서 카카오링크 버튼을 클릭해도 아무 반응이 없었지만업데이트 이후에는(2월7일) 클릭하면 로그인창이 뜹니다.반드시 주소가 https://accounts.kakao.com 인것을 확인하고 로그인해주세요모바일과 마찬가지로 공유할 친구나 채팅방을 선택하면 됩니다. 카카오 링크 적용방법은 아래 글을 참조해주세요.티스토리에 카카오톡 ..
AWS가 아무래도 축적된 강좌나 가이드같은 자료가 많아서 편리했는데 1년 프리티어 기간이 끝나간다.네이버클라우드는 이제 막 활성화되고 있는 것 같다. 그런데 HDD서버 하나를 무료로 제공한다.웹서버는 좋은 사양이 필요없기에 AWS 1년 무료 기간이 끝나기 전에 한번 서버 이사를 해보려고한다. AWS 서버 세팅을 어떻게 했는지 잘 기억이나지 않는다.내가 AWS EC2를 도입하면서 겪은 고충들http://nubiz.tistory.com/697이전에 작성해놓은 나의 메모를 참고해서 겨우겨우 다시 세팅하고있다. 옮기는김에 우분투에서 centOS7 로 이사하기로했다. 이글은 다시 서버세팅을 하게된다면 참고하기위해 작성한다. 0.CentOS 계정 비밀번호 변경passwd1. npm, node 7.x설치curl --..
let's enrypt는 무료 ssl이지만 90마다 갱신을 해줘야하는 불편함이있다. 90일마다 갱신해주는 crontab을 실행시켜놨는데 어디갔는지 안보여서 수동으로 갱신하기로했다. 다행히 갱신할 때가 되면 이메일로 갱신알림이 온다. #먼저 nginx서버를 잠깐 끈다sudo service nginx stop #리뉴명령 실행 ./letsencrypt/letsencrypt-auto renew #nginx서버 다시 열기sudo service nginx start 자동작업으로 해놓으면 편하겠지만 왠지 자동작업이 사라져있는 경우에 대비해서 메모해둔다.
nodemailer가 언제 업데이트되었는지 구글링으로 찾은 gmail 인증 방법이 작동하지 않는다. 좀더 구글링해보니 nodemailer가 업데이트되면서 oauth2가 기본내장되어 xoauth2를 쓰는 방법이 작동하지 않는 것이었다. xoauth2를 계속사용하면 responsecode: 535, username and password not accepted 라는 오류가 나온다. 간단히 구글 아이디 비밀번호로도 gmail 전송이 되긴 하지만 oauth2를 통한 방법이 보안에 훨씬 좋으면서도 gmail에서 차단하지 않는다. node.js 코드 예제 const nodemailer = require('nodemailer');let transporter = nodemailer.createTransport({ se..
mongodb에 간단한 base64 인코딩 이미지를 저장및 불러오는 방법을 기록해둔다. html2canvas를 이용하여 html일부를 스크린샷형태로 저장하면 base64 인코딩된 문자열을 받을 수 있다. 이걸 그냥 db에 저장한다. (data:image/jpeg:base64,/~~~로 시작하는 그대로) 문제는 불러올때인데, 예를들어 /screenshot/asdf 에 접속하면 다운받을 수 있게 하고자 하는 코드 예제이다.주소가 파일명이 아니지만 파일로 인식하게하기위한 작업이다. app.get("/screenshot/:seats_id",(req,res)=>{ //db로 불러온걸 base64data에 넣어주는 작업이 여기 들어갑니다. let img = new Buffer(base64data.split(",")..
자음검색(초성검색)을 구현하려하는데 자바스크립트로 구현하려니 쉽지않다. 한글 초성검색 in Javascript구글링해보면 이 글이 눈에 띄는데 굉장히 이론적이다. 하지만 내가 원하는 작업은 홍길동 -> ㅎㄱㄷ인데 응용력이 부족한지 구현하려니 자꾸 복잡해진다. 구글링을 더 해보니 Hangul.js라는 라이브러리가 이미 있다! https://github.com/e-/Hangul.js npm모듈도 있어서 node.js에서 사용하기도 쉽다. Hangul.js를 이용해 초성만 모아 반환하는 예제는 다음과 같다 var name = "홍길동"; var disassemble = Hangul.disassemble(name,true);//2번째 인자로 true를 전달하면 글자마다 독립된 배열을 만들어준다// disasse..
요즘 웹앱 개발에 도전하면서 아마추어 개발자로 겪은 고충들을 나중에 다시 반복하지 않기 위해 글을 써둡니다.(나에게 쓰는 글이므로 이하 경어체) 원래 heroku라는 서버 호스팅서비스를 쓰다가 아마존 웹 서비스(이하 aws)로 직접 서버 운영하려니 어려운점이 많다.내 웹앱은 node.js로 만들었고 github를통해 관리하고있다. db는 mlab이라는 mongodb서비스를 이용하다가 얼마전에 mongodb에서 mongodb atlas서비스를 출시해서 mongodb atlas로 이전했다.(무료티어 조건이 훨씬 좋다) 오픈튜토리얼스 node.js 수업 AWS의 서비스들이 뭔지부터 몰랐다aws를 들어가보면 서비스들이 너무많다.. 무엇부터 시작해야할지 막막해진다. 다행히도 오픈튜토리얼스의 생활코딩 강좌에 aws..
운영중이던 티스토리 실험실(http://tistory-lab.tistory.com) 블로그를 정리하기위해 본 블로그로 포스팅 이동합니다. 티스토리 댓글 탭으로 보기 - CSS만으로!에서 이어지는 글입니다. 참고로 Material T에는 이미 적용되어있는 기능입니다.(Material T mark3 부터는 호환성을 위해 CSS와 javascript를 함께사용합니다.) ------------------------------------------- 댓글 플랫폼을 여러가지 사용하는 블로그에 유용한 플러그인입니다.미리보기See the Pen tab only CSS by Kim young wook (@nubiz) on CodePen. 태블릿 크기 이상에서는 탭으로 표시되며, 모바일기기에서는 탭이 세로로 배치됩니다. ..
운영중이던 티스토리 실험실(http://tistory-lab.tistory.com) 블로그를 정리하기위해 본 블로그로 포스팅 이동합니다. 참고로 Material T에는 이미 적용되어있는 기능입니다.------------------------------------------- 출처: http://nubiz.tistory.com/690 [Life is an egg.] 1. 영역에서 다음 구문을 찾습니다. (일치하지 않더라도 viewport가 들어있는 meta태그를 찾습니다.) 2. 찾은 코드를 삭제하고 아래 코드를 붙여넣습니다. 3. 아래는 PC버전 보기 버튼이 될 코드입니다. 버튼을 넣을 곳에 위치시켜주세요.(이 블로그에는 페이지 제일 하단에 위치하고있습니다.)PC버전 4. PC모드에서 다시 모바일로 돌아..