Javascript
-
How to programmatically migrate the sequelize instead of sequelize-cliJavascript/node.js 2020. 7. 6. 01:33
이 포스팅은 본인의 github pages 기반 블로그에서 이동해온 글 입니다 먼저 sequelize-cli 란? NodeJS로 RDB를 사용하려면 Sequelize 처럼 편리한 친구도 없을 것이다. 정말? 그런 Sequelize를 정말 편리하게 마이그레이션 할 수 있게 도와주는 친구가 하나 있는데, 그게 바로 sequelize-cli 이다. 사용법은 링크를 통해 가서 확인해 보자. 오늘의 포스팅 주제는? 제목 그대로 sequelize-cli 대신, 코드를 작성해서 Sequelize 를 마이그레이션 하는 방법이다. 이걸 왜 하게 됬냐면, 소스코드 내에 RDB의 암호를 설정파일에 하드코딩 해놨었는데 내가 한건 아니고... 보안점검때 딱 걸려서 AWS KMS 를 통해 암호를 관리하도록 코드를 수정하게 되었다..
-
Express에서 URL escapeJavascript/node.js 2020. 7. 6. 01:20
이 포스팅은 본인의 github pages 기반 블로그에서 이동해온 글 입니다 버그의 시작 맘에 안들지만 임시방편으로 굉장히 기괴한 API를 하나 만들었다. 검색어에 대한 정보를 뿌려줘야 하는데, 새로 개발한 프로젝트가 플랫폼 이슈로 인해 사용할 수 없었고, 기존에 있던 프로젝트의 API를 호출해서 검색어에 대한 정보를 뿌려주도록 구현을 했다. 정말 맘에 안든다. 그렇게... 버그가 태어나기 시작했다. 버그의 출현 검색어는 당연 한글이 들어온다. 이건 전혀 문제가 되지 않는다. 그런데 괴상한 Exception이 자꾸 로그에 찍히고 있었다. Uncaught URIError: URI malformed 라인 번호는 여기가 어떻고 이쪽 스택은 또 어쩌고 저쩌고 저쪽 스택도 어쩌고 저쩌고 블라블라...문제가 된 ..
-
normalizeJavascript/basic 2020. 7. 6. 01:01
이 포스팅은 본인의 github pages 기반 블로그에서 이동해온 글 입니다. 먼저 들어가기 앞서… 본인은 앱등이라 Mac OS X를 사용한다. 그런데 메일로 첨부파일을 보내면 받는 쪽 (아마도 Windows 사용자?) 에서 파일명이 왜 이렇게 오냐고 뭐라고 한 적이 있었다. 대충 아래와 같은 느낌? 🤬 ㅈㅏㅂㅏㅅㅡㅋㅡㄹㅣㅂㅌㅡㅉㅏㅇ.doc그때는 그냥 OS끼리 호환이 안되나 보다 하고 별거 아닌듯 넘겼었는데 오늘 이것 때문에 엄청난 시간을 허비했다… 재현 5개의 depth를 가진 카테고리 값을 가진 속성이 있다. 하위 카테고리로 내려갈수록 카테고리 분류가 더욱 상세히 바뀐다. 따라서 상위 카테고리보다 하위 카테고리의 갯수가 앞도적으로 많다. 아직 초기 개발단계라 상위 카테고리에 해당되는 이미지들만 DB..
-
Menu 작성하기Javascript/electron 2017. 9. 8. 00:28
electron에서 매뉴얼을 따라서 Menu 기능을 구현하려고 하였다. 근데 안되는 것이다... 오타가 있나 해서 예제의 소스코드를 그대로 복사해서 갖다 붙혀도 Menu가 전혀 생성되지 않았다. 예제 소스코드는 다음과 같다. const {app, Menu} = require('electron') const template = [ { label: 'Edit', submenu: [ {role: 'undo'}, {role: 'redo'}, {type: 'separator'}, {role: 'cut'}, {role: 'copy'}, {role: 'paste'}, {role: 'pasteandmatchstyle'}, {role: 'delete'}, {role: 'selectall'} ] }, { label: 'V..
-
textarea 가장 아래로 자동 scrolling 하기Javascript/jQuery 2017. 9. 4. 11:29
textarea를 콘솔처럼 사용하려고 해서 봤더니 기본적으로 textarea는 자동으로 가장 아래쪽으로 스크롤링을 하지 않는다. 데이터를 textarea로 계속 append하면 스크롤 위치는 계에에에속 맨 위에 고정되어 있다. 그럼, 이걸 어떻게 처리할 수 있을까? HTML 코드는 다음처럼 심플하게 만들었다. click 자 그 다음, button을 클릭하면 input에 있는 데이터를 textarea로 append 하는 스크립트를 작성해보자. $('#btn').on('click', () => { const data = $('#txt').val(); $('#console').append(`${data}\n`); }); 결과는...? 위에서 말한것과 같이 textarea의 스크롤이 꿈쩍도 안한다. 후후후.....
-
동적으로 생성된 button의 값 가져오기!Javascript/jQuery 2017. 9. 2. 23:39
으아아아주 오래전에 학교 프로젝트로 웹 개발을 해본 뒤에 회사에 와서 으아아아주 오래전에 웹 개발 프로젝트 2개 해보고 그 뒤로 웹에 대해 거의 접해보지 못했다가 요즘 electron과 express를 접하면서 다시 HTML5와 jQuery, bootstrap 등을 보고 있는데 왜케 어려운지 ㅋㅋㅋㅋ 아무튼, 동적으로 생성된 button의 class를 통해 접근해서 value값을 가져올 일이 생겼다. (사실 동적이 아니어도 똑같다) 근데 아무리 눌러도 undefined만 내뱉는 것이다... (아... javascript에 대한 이해도가 떨어지는 그대여... ㅠㅠ) 그 해법을 알게되서 이렇게 포스팅을 하려고 한다. 자, 우선 HTML 태그는 다음과 같다. click me! click me! click me..
-
ES6(1) - ArrowsJavascript/ES6 2017. 8. 31. 11:12
예전부터 ES6에 대해 정리를 한번 해보려고 했는데 계속 미루기만 하다가 드디어! 포스팅을 하기로 마음을 먹었다. ES6는 무엇인가?! ECMAScript 6 (이하 ES6)은 ES5가 2009년에 발표된 이후 2015년인 6년만에 발표된 새로운 Javascript 언어 스펙이다. 따라서 굉장히 많고, 굉장히 유용하고, 굉장히 신기한(?) 기능들이 대거 추가되었다. 그중에서 첫 번째로 Arrow function 이라고 불리는 화살표 함수에 대해 알아보려고 한다. 해당 내용은 MDN web docs의 화살표 함수 항목을 참고했습니다. 정의 간단하게 설명하면, 기존 function 표현에 비해 구문이 짧고, 항상 익명으로 사용되며, this, arguments, super, new.target을 바인딩 하지..
-
Events(1)Javascript/node.js 2017. 8. 30. 10:45
Intro Node.js의 특징인 Event driven과 Asynchronous를 잘 활용을 못하고 있는 것 같아서 Node.js의 매뉴얼 중 Events 항목을 한번 자세히 읽어 보기로 했다. 문서의 버전은 v6.11.2 LTS 이다. 그럼 하나씩 훑어보자. 아니 자세히 보자. 영어 실력이 개판이니 내맘대로 번역해도 이해해주시기 바랍니다 :) Events 매뉴얼을 들어가면 초록색 박스에 Stability:2 - Stable 이라고 되어 있다. 이 부분은 매뉴얼의 Stability Index 항목을 참고하면 된다. 간단하게 설명 하자면 Stability: NUMBER 에서 NUMBER 가 높을수록 안정된 API라는 의미이다. 사실 색상만 봐도 안정됬는지 안됬는지 알 수 있다. 0은 deprecated,..