Node.js에서 모듈 설치 시에 다음과 같은 "self signed certificate in certificate chain" 에러를 만나게 되었을 때 아래 명령어로 해결 가능하다. $ set NODE_TLS_REJECT_UNAUTHORIZED=0 $ set npm_config_strict_ssl=false npm WARN read-shrinkwrap This version of npm is compatible with lockfileVersion@1, but package-lock.json was generated for lockfileVersion@2. I'll try to do my best with it! > geckodriver@3.0.1 postinstall D:\workspace\tist..
최근에 활용해본 적이 있는 형태소 분석을 node.js로 해보려고 합니다. 형태소에 대해서 간략하게 알아봅시다. 1. 형태소란. 문장을 의미가 있는 가장 작은 단위로 나누는 것이죠. 예를 들어 '아버지가방에들어가신다.' 라고 있다면 ['아버지', '가', '방','에','들어가신다'] 머 이런식으로 나눈다는 거죠. 가방은 어미의 '가'와 '방'으로 나뉠수도 있고 '가방'으로 분리될 수도 있는거구요. 개발쪽에서 봤을 때는 일정한 글에서 가장 많이 사용되는 단어를 파악하는 용도라던지 유사 글을 찾는다던지 할 때 사용할 수 있을 것 같습니다. 형태소로 나누어 활용하려는 방안이 있다면 무엇에든 사용할 수 있겠죠. ? 그럼 기본적인 node.js 설치가 되어있다는 가정 하에 node.js 버전으로 형태소 분석을 ..
현재 개인 미니 프로젝트를 만들고 있는데 nuxt.js를 이용하고 있다. 아마 next.js를 비롯해서 vue.js 등등 webpack을 이용한 환경에서 주로 발생하는 것 같다. 내 환경에서 발생한 내용은 아래와 같다. ERROR Failed to compile with 2 errors friendly-errors 16:34:37 These dependencies were not found: friendly-errors 16:34:37 friendly-errors 16:34:37 * net in ./node_modules/redis/index.js friendly-errors 16:34:37 * tls in ./node_modules/redis/index.js friendly-errors 16:34:37..
예전에 스프링과 타임리프 조합을 사용해보면서부터 SSR와 CSR의 적절한 조합이 최적의 프로젝트 환경이라고 생각을 해왔고 나중에 기회가 된다면 SSR + CSR을 조합해서 써봐야겠다고 다짐다짐을 했엇더랬다. 그런데다 최근 node.js 만능설과 vue.js에 빠진 내가 nuxt.js를 선택하지 않는 것은 거의 불가능에 가까운 일이었다. 그리고 UI/UX 프레임워크로는 부트스트랩과 vuetify 를 비교하다가 부트스트랩이 vue와 잘 맞지 않는 부분이 있고 bootstrap-vue 프로젝트 자체가 업데이트가 더딘 것이 보여서 최종적으로 vuetify 를 선택하게 됐다. vuetify 는 굉장히 업데이트가 잘 되고 있는 프로젝트로 보인다. 그리고 vue.js와 궁합도 당연히 최적화되어있고... 부트스트랩-v..
node를 이용하다보면 스케줄러를 이용할 일이 있는데 node 같은 경우엔 cron 사용방법을 구현한 라이브러리들이 인기가 많은 것 같다. 그 둘에 대한 비교 자료가 없어서 간단하게 비교하는 이야길 해보자. 1. os 스케줄러( cron) vs node 스케줄러 OS 스케줄러를 사용하게 되면 윈도우, 맥, 리눅스 os 별로 별도 스케줄러를 등록하고 관리해야 하는 단점이 있다. 대신 node 스케줄러보다 조금 더 안정적일 수 있고, 불필요하게 별도 스케줄러 프로세스를 띄우지 않아도 되니 리소스도 낭비 되지 않을 것이다. 또 node 프로세스가 죽는 경우 스케줄러 자체가 동작되지 않는 문제도 미연에 방지 할수 있다. 하지만 node 프로세스 관리 라이브러리인 pm2나 forever 같은 것까지 사용하게 되면..
얼마전에 CORS-Anywhere를 자체적으로 띄우기 위해서 헤로쿠를 이용했었는데요. 이게 자꾸 지 혼자 잠이 들어서 해당 서비스를 처음 호출할때 처음에 2~30초간에 서비스를 깨우는 시간인 일명 웨이크업 타임이 필요하게 되는데요. 이는 30분간 아무 트래픽이 없으면 헤로쿠가 이 앱을 재워버리기 때문입니다. 이것저것 방법을 생각해봤는데요. 별도의 서버에서 이 헤로쿠 서버에 주기적으로 웹 리퀘스트를 날려줄 수 있는 방법으로 집에 있는 PC에서 해야하나 aws 서버에서 해줘야 하나, 주기적으로 날려줄수 있는 function 서비스 같은걸 알아봐? 하면서 이것저것 고민을 하다가... 1. 24시간 헤로쿠 깨어있게 만드는 방법 자기 자신의 도메인을 호출하면 된다는 걸 깨닫고 소스에 세줄 정도 추가했습니다;;; ..
오늘은 헤로쿠 가입부터 node.js 배포까지 진행해보도록 하겠습니다. 간단하게 서비스를 띄울 무료 PaaS 서비스를 찾는다면 무조건 헤로쿠겠죠. 1. PaaS 서비스의 대표주자 헤로쿠(Heroku) 헤로쿠라는 사이트가 있습니다. 이 글을 검색하셨다면 헤로쿠가 무엇인지는 대충 아실 겁니다. 헤로쿠는 내가 가진 어플리케이션을 배포하면 바로 온 사이트로 서비스를 해주는 대표적인 *PaaS 서비스입니다. *PasS ( Platform as a Service) : 클라우드에서 제공되는 완전한 개발 및 배포 환경이라고 생각하면 됩니다. 개발적으로는 서버, 저장소, 네트워킹, 미들웨어, 개발도구, BI, 서비스, 데이터베이스 , 빌드, 테스트, 배포, 관리, 업데이트 등 모든 어플리케이션 수명 주기를 지원하는 서비..
개인적으로 토이프로젝트를 하기위해서 사용했던 atom을 떠나보내고(아톰아 그동안 정말 잘 썼다.) vscode로 갈아탄지는 좀 되었지만 쉽사리 익숙해지지는 않는거 같다. 우선 atom보다 동작이 빠릿빠릿한 느낌이 좋다. 그리고 비주얼스튜디오를 만든 ms사의 노하우가 녹아들어간 ide인 만큼 엄청난 지지를 받고 있는 것 같다. ( 좋아요 좋아. ) 개인적인 토이 프로젝트는 스태틱한 github.io에 올리는 웹 페이지, 그리고 node.js, 자바 웹 프로젝트가 있는데 node를 실행하기 위해서 하는 방법을 해봤다. 우선 F5를 누르게 되면 디버깅 모드로 실행이 되는데 맥북 2018을 사용하는 나로서는 F5가 매우 불편하다. FN을 누른 뒤에 다시 F5를 찾아서 두번을 눌러야 하니까. 그래서 단축키를 설정..
좀 웃기는 상황이다. 내가 개발하는 피씨는 여러개인데 그 중에 한대가 vscode, atom 등의 개발툴이 먹통인데 원인은 찾지 못하고 ... ( 대충 짐작은 간다만... 해결 불가능한 이슈임. ) 그래서 nodeclipse를 사용하려고 한다. 안되는 피씨에서는 nodeclipse를 되는 맥북이나 윈도우에서는 vscode를 ... 그래서 nodeclipse를 쓰려고 테스트로 디버깅을 해보다가 저 에러 메세지를 만났다! Failed to connect to Standalone V8 VM nodeclipse는 node 디버깅 시에 --debug 옵션으로 5858포트에 붙게 되어있는데 nodejs 8이상 버전부터는 --inspect 옵션과 9229 포트를 사용해야 디버깅이 가능하다. 즉... nodeclips..
최근 node로 뭔가 프로그램을 만드려고 하는데 하도 안만진지 오래 되어 작업을 하다 말고 버전을 최신화 해야겠단 생각에 윈도우와 리눅스에 버전을 둘다 최신화 하였다. 물론 버전을 업데이트 할 때는 LTS 정도로만 업데이트해도 충분하다고 생각한다. 윈도우에는 node.js 홈페이지에서 파일을 다운받아 설치하면 이전 버전으로 알아서 덮어씌워준다. 특별한 이유가 없다면 LTS 버전을 쓰자. 개인적으로 우분투를 쓰고 있는데 우분투나 Debian은 아래처럼 설치해주면 된다. # Using Ubuntu curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - sudo apt-get install -y nodejs # Using Debian, as root ..
말 그대로 os x atom-runner 를 사용하고 있는데 NODE_ENV 설정이 제대로 되질 않았다. 암만 터미널에서 export NODE_ENV를 하든 뭘하든 안되는거다. 알고보니 os x 는 터미널과 launchpad에서 실행하는 컨텍스트가 다르면 환경 설정 값도 제대로 물고 갈수 없는 것 같다. 그러니 터미널에서 open -a atom.app으로 실행하게 되면 아주 잘된다. 그러나 매번 터미널에서 실행할수는 없어서 찾아보니 ... 터미널에서 이렇게 입력해주면 된다. $ launchctl setenv NODE_ENV development 이렇게 하고 나서 아톰을 실행해보니 아주 잘된다. 런치패드의 환경 설정을 해주는 명령어다. 참고할 것.
얼마 전 설치했던 fibers나 synchronize 모듈의 경우에는 git에서 직접 소스를 공수해와 수동 빌드만이 성공하고 npm install 로 인한 타 패키지 설치 후 전체 빌드 시에는 실패하게 되는데 이때 package.json에 옵션을 지정하여 해당 패키지 빌드 실패하여도 새로운 패키지는 설치하도록 할 수 있다. 바로 optionalDependencies 옵션을 추가하면 되는데 필자의 경우 아래처럼 추가했다. "optionalDependencies": { "fibers": "^2.0.0", "synchronize": "^2.0.0" } 그리고 다시 설치하고 싶었던 패키지를 인스톨 시키니 성공했다.
얼마전까지 윈도우에서 개발했던 node 프로젝트를 mac os에 세팅할 일이 생겨 git으로 되어있던 프로젝트를 clone하고 npm install을 해서 node modules를 모두 설치하였으나 node-gyp는 설치를 실패했다. 이전 윈도우에서도 설치하느라 꽤나 애먹었던 기억이 난다. 오늘 mac에도 설치를 해보면서 기록을 남겨보고자 한다. 우선 node-gyp 패키지 사이트를 참고해보면 ( https://www.npmjs.com/package/node-gyp ) python 2.7이 있는지 묻는다. mac은 기본적으로 파이썬이 설치되어있는 것 같다 버전을 확인해봤다. 터미널에서 xcode-select -install 명령어로 cli를 설치해준다. 그리고 나서 npm i node-gyp 하게 되면 ..