https://redonearth.com/

 

Redonearth의 개발 블로그 | Redonearth의 개발 블로그

Blog

www.redonearth.com

한 번씩 들러주세요.

감사합니다.

(최초 작성한 글이 날아갔다. 아...)

 

 

현재 진행 중인 프로젝트에서 표에 평균값을 표시하는 화면을 구현 중이었다.

 

하나의 칸이 NaN으로 표시되길래, 원인을 추적했다.

해당 컬럼의 데이터 타입은 FLOAT이다. 그 컬럼에서 수백 개의 데이터 중 딱 하나가 NaN으로 들어가있었다.

 

내가 해결한 방법은 Impala의 내장 함수 중 IS_NAN을 사용했다.

 

 

https://docs.cloudera.com/runtime/7.0.3/impala-sql-reference/topics/impala-math-functions.html#math_functions__is_nan

 

Impala mathematical functions

Mathematical functions, or arithmetic functions, perform numeric calculations that are typically more complex than basic addition, subtraction, multiplication, and division. For example, these functions include trigonometric, logarithmic, and base conversi

docs.cloudera.com

 

NaN이 있으면 true, 없으면 false를 반환한다.

 

이것을 이용해서, NaN이 포함되어 있으면 0을, 없으면 원래 값을 출력했다.

 

[예시 쿼리]

1
2
SELECT DECODE(IS_NAN(superman), true0, superman)
FROM crypton

 

 

끗.

 







윈도우10 WSL 환경에서 Node.js 실습을 진행하고 있었다.


암호화 패키지인 bcrypt를 설치할 때 아래처럼 오류가 발생하였다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
$ sudo npm i bcrypt
> bcrypt@3.0.3 install /mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt
> node-pre-gyp install --fallback-to-build
node-pre-gyp WARN Using needle for node-pre-gyp https download
node-pre-gyp WARN Tried to download(404): https://github.com/kelektiv/node.bcrypt.js/releases/download/v3.0.3/bcrypt_lib-v3.0.3-node-v64-linux-x64-glibc.tar.gz
node-pre-gyp WARN Pre-built binaries not found for bcrypt@3.0.3 and node@10.14.2 (node-v64 ABI, glibc) (falling back to source compile with node-gyp)
gyp ERR! build error
gyp ERR! stack Error: not found: make
gyp ERR! stack     at getNotFoundError (/usr/lib/node_modules/npm/node_modules/which/which.js:13:12)
gyp ERR! stack     at F (/usr/lib/node_modules/npm/node_modules/which/which.js:68:19)
gyp ERR! stack     at E (/usr/lib/node_modules/npm/node_modules/which/which.js:80:29)
gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/which/which.js:89:16
gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/isexe/index.js:42:5
gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/isexe/mode.js:8:5
gyp ERR! stack     at FSReqWrap.oncomplete (fs.js:154:21)
gyp ERR! System Linux 4.4.0-17134-Microsoft
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt/lib/binding/bcrypt_lib.node" "--module_name=bcrypt_lib" "--module_path=/mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt/lib/binding" "--napi_version=3" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v64"
gyp ERR! cwd /mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt
gyp ERR! node -v v10.14.2
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt/lib/binding/bcrypt_lib.node --module_name=bcrypt_lib --module_path=/mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt/lib/binding --napi_version=3 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v64' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:182:13)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:962:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:251:5)
node-pre-gyp ERR! System Linux 4.4.0-17134-Microsoft
node-pre-gyp ERR! command "/usr/bin/node" "/mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt
node-pre-gyp ERR! node -v v10.14.2
node-pre-gyp ERR! node-pre-gyp -v v0.12.0
node-pre-gyp ERR! not ok
Failed to execute '/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt/lib/binding/bcrypt_lib.node --module_name=bcrypt_lib --module_path=/mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt/lib/binding --napi_version=3 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v64' (1)
npm WARN nodebird@0.0.1 No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! bcrypt@3.0.3 install: `node-pre-gyp install --fallback-to-build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the bcrypt@3.0.3 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!     /home/jipro/.npm/_logs/2018-12-26T13_06_58_125Z-debug.log
cs


구글링을 해 본 결과 여러가지 해결법이 존재하였지만, 전혀 먹히지 않았다.

내 경우의 해결법은 의외로 간단했다.



https://www.npmjs.com/package/bcrypt#if-you-are-submitting-bugsissues


First, make sure that the version of node you are using is a stable version.



노드의 버전을 안정 버전(stable)으로 설치하면 된다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ sudo npm i bcrypt
 
> bcrypt@3.0.3 install /mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt
> node-pre-gyp install --fallback-to-build
 
node-pre-gyp WARN Using needle for node-pre-gyp https download
[bcrypt] Success: "/mnt/c/Users/Jipro/workspace/nodejs-book/ch9/9.3/nodebird/node_modules/bcrypt/lib/binding/bcrypt_lib.node" is installed via remote
npm WARN nodebird@0.0.1 No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
 
+ bcrypt@3.0.3
added 71 packages from 49 contributors and audited 2640 packages in 22.783s
found 0 vulnerabilities
cs


설치가 잘 되었다.



끝!

'개인 공부 > Node.js' 카테고리의 다른 글

윈도우10/우분투 Sequelize의 MySQL 포트 설정  (0) 2018.12.11

몽고DB를 실습하려고 우분투에서 4.0 버전을 설치하고

$ sudo service mongod start

타이핑 하고 엔터키를 딱 눌렀는데

 

mongod: unrecognized service

라는 에러를 뱉었다.

 

service라는 명령어는 알아보니 /etc/init.d에 해당 파일이 있을 때 동작하는 방식이다.

내 경우엔 mongod라는 파일이 존재하지 않았다.

 

구글링을 하면 MongoDB를 재설치해라, 또는 mongod 대신 mongodb를 타이핑해라. 등의 내용이 대부분이다.

 

$ sudo apt-get purge mongodb-org*

명령으로 삭제하고,

 

$ sudo apt autoremove

해 주고,

 

$ sudo rm -r /var/lib/mongodb
$ sudo rm -r /var/log/mongodb

디렉토리 날려주고...

다시 설치를 수십 번 반복.

 

이래도 안 되니 아래 방법을 시도.

$ sudo apt-get install --reinstall mongodb-org

 

하지만 이것 역시 안 됨.

mongodb라는 명령어는 MongoDB 2 버전을 깔았을 때 사용하는 커맨드인 듯 했다.

 

커맨드로 MongoDB를 설치하면 동작하는 것이 당연하다는 듯이 교재에도, 공식 매뉴얼에도 service 스크립트를 만들어라, 등록해라 라는 내용은 찾아볼 수 없었다.

 

답답해서 내가 찾아보니 이런 링크가 있었다.

https://github.com/mongodb/mongo/blob/master/debian/init.d

 

데비안 계열의 우분투에서 쓰는 init script의 내용이다.

$ sudo vi /etc/init.d/mongod

위의 내용을 붙여넣기 하고, wq로 저장했다.

 

$ cd /etc/init.d
$ ls -al

확인해 보면 방금 생성한 mongod 파일만 색상이 다르다. 권한이 다르다.

 

$ chmod 755 mongod

권한을 다른 파일과 동일하게 설정해 주었다.

그 후,

 

# service mongod start

또는

$ sudo service mongod start

하면

 

* Starting database mongod 					[ OK ]

라고 이쁘게 뜬다.

끗!!

아래의 링크를 참고했다.

https://superuser.com/questions/1126721/rebooting-ubuntu-on-windows-without-rebooting-windows/1347725


윈도우 CMD를 관리자 권한으로 실행하여 아래의 명령어를 입력한다.


net stop LxssManager
net start LxssManager


해 보았다.


C:\WINDOWS\system32>net stop LxssManager

LxssManager 서비스를 멈춥니다..

LxssManager 서비스를 잘 멈추었습니다.


C:\WINDOWS\system32>net start LxssManager

LxssManager 서비스를 시작합니다..

LxssManager 서비스가 잘 시작되었습니다.

'개인 공부 > 리눅스' 카테고리의 다른 글

윈도우10 우분투에서 MySQL 설정 파일 위치  (2) 2018.12.10

+ Recent posts