(node:1129) UnhandledPromiseRejectionWarning: MongooseServerSelectionError: connect ECONNREFUSED 127.0.0.1:27017
    at NativeConnection.Connection.openUri (/workspace/webdevbootcamp/YelpCamp/v3/node_modules/mongoose/lib/connection.js:800:32)
    at cb (/workspace/webdevbootcamp/YelpCamp/v3/node_modules/mongoose/lib/index.js:341:10)
    at Promise (/workspace/webdevbootcamp/YelpCamp/v3/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:5)
    at new Promise (<anonymous>)
    at promiseOrCallback (/workspace/webdevbootcamp/YelpCamp/v3/node_modules/mongoose/lib/helpers/promiseOrCallback.js:30:10)
    at Mongoose.connect (/workspace/webdevbootcamp/YelpCamp/v3/node_modules/mongoose/lib/index.js:340:10)
    at Object.<anonymous> (/workspace/webdevbootcamp/YelpCamp/v3/app.js:9:10)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
(node:1129) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by reje
cting a promise which was not handled with .catch(). (rejection id: 1)

 

데이터를 불러올 mongodb와 연결에 문제가 있을 경우 발생한다.

1. mongodb가 실행되어 있는지 확인
mongdb 실행 명령어: mongod

2. mongoose와 mongodb connection을 확인한다. 기본 포트는 27017이다.

// mongodb와 mongoose 연결하여 js로 mongodb 사용 가능하게 설정한다. 27017은 mongodb의 기본 포트
mongoose.connect("mongodb://localhost:27017/yelp_camp", {useNewUrlParser: true, useUnifiedTopology: true});

(node:1950) UnhandledPromiseRejectionWarning: MongoParseError: Invalid connection string at parseConnectionString (/workspace/webdevbootcamp/RESTful/RESTfulBlogApp/node_modules/mongodb/lib/core/uri_parser.js:565:21) at connect (/workspace/webdevbootcamp/RESTful/RESTfulBlogApp/node_modules/mongodb/lib/operations/connect.js:282:3) at cb (/workspace/webdevbootcamp/RESTful/RESTfulBlogApp/node_modules/mongodb/lib/mongo_client.js:223:5) at maybePromise (/workspace/webdevbootcamp/RESTful/RESTfulBlogApp/node_modules/mongodb/lib/utils.js:662:3) at MongoClient.connect (/workspace/webdevbootcamp/RESTful/RESTfulBlogApp/node_modules/mongodb/lib/mongo_client.js:219:10) at Promise (/workspace/webdevbootcamp/RESTful/RESTfulBlogApp/node_modules/mongoose/lib/connection.js:788:12) at new Promise () at NativeConnection.Connection.openUri (/workspace/webdevbootcamp/RESTful/RESTfulBlogApp/node_modules/mongoose/lib/connection.js:785:1 9) at cb (/workspace/webdevbootcamp/RESTful/RESTfulBlogApp/node_modules/mongoose/lib/index.js:341:10) at Promise (/workspace/webdevbootcamp/RESTful/RESTfulBlogApp/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:5) at new Promise () at promiseOrCallback (/workspace/webdevbootcamp/RESTful/RESTfulBlogApp/node_modules/mongoose/lib/helpers/promiseOrCallback.js:30:10) at Mongoose.connect (/workspace/webdevbootcamp/RESTful/RESTfulBlogApp/node_modules/mongoose/lib/index.js:340:10) at Object. (/workspace/webdevbootcamp/RESTful/RESTfulBlogApp/app.js:6:10) at Module._compile (internal/modules/cjs/loader.js:778:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10) (node:1950) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async fun ction without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 3) (node:1950) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not hand led will terminate the Node.js process with a non-zero exit code.

해당 에러 발생 시 mongodb://.....  부분에 오류가 없는지 확인한다.

mongoose.connect("mongodb://localhost:27017/restful_blog_app", {useNewUrlParser: true, useUnifiedTopology: true});
// mongoose 이나 어떤 방식으로든지 mongodb와 연결 할 시 오타가 있을 경우 연결이 안됨을 알리는 에러이다.
// mongdb, mondb, mongod 등 오탈자가 있는지 확인한다.

 

UNIX/Linux 시스템에서 사용자 계정으로 java 컴파일이 발생한 경우 다음과 같은 에러가 발생한다. 이는 컴파일이나 라이브러리를 구동할 때 사용하는 임시파일을 쓸 권한이 없어 발생하는 문제이다. 특히 root권한을 가진 계정으로 구동 시에 문제가 없을 경우는 100% 권한으로 인한 문제이다. 다만 매번 root 계정을 사용할 수 없으므로, 해당 권한이 필요한 디렉토리가 어디인지 확인하고 시스템/사용자 계정에 쓰기권한을 부여해야 한다.

 

 

 

실제 발생했던 에러와 테스트를 위해 구현한 에러 메세지는 조금 다른데, 핵심은 아래와 같다. 

 

java.io.IOException : Permision denied

at java.io.UnixFileSystem.createFileExclusively(Native Method)

at java.io.File.createTempFile

 

 

본 case의 경우 /tmp 내에 2개의 디렉토리가 생성되는데, 각각의 디렉토리가 생성되는 이유는 아래와 같다.

[그림 1] /tmp 디렉토리 내에 umsadm이라는 계정으로 생성된 디렉토리가 2개 보인다.

 

1.   Hsperfdata 디렉토리 및 내부의 파일은 JVM에서 모니터링을 수행하기 위해 생성된다.

 

2.   poifiles 디렉토리는 Apache POI API를 사용할 경우 /tmp에 생성된다. Apache POI API의 역할은 다양한 포맷의 문서파일에서 text를 추출하는 역할을 수행한다. (https://poi.apache.org/text-extraction.html)

 

 

Solution

JVM Apache POI API가 정상적으로 /tmp 디렉토리에서 쓰기작업을 할 수 있도록 해당 계정에 쓰기 권한을 부여한다. 

미국 주식을 하시는 분이라면 VIX라는 것을 들어보신 적이 있으실 겁니다.

VIX(Volatility Index)는 S&P 500 지수 옵션 가격이 향후 30일간 어떻게 변동성을 가질까라는 시장의 기대를

나타내는 지수 입니다.

 

 

 

쉽게 말해서 VIX Index가 30%라면 향후 30일간 주식 시장이 30%의 등락을 거듭할 것이라고 예측하는 

투자자들이 많다고 해석할 수 있는거죠.

 

향후 30일간 53%의 변동성이 예상될꺼라는 지수가 보이네요.. ㄷㄷ

 

 

그래서 CNN에서 이 VIX를 반대로 추종하는 지수를 하나 만들었습니다.

그 이름도 유명한 CNN Fear & Greed Index!

 

사진으로 우선 살펴보시죠. 

 

2020년 3월 중순에 저 공포지수가 2였습니다....

 

보시는 법은 간단합니다.

 

1) 0에 가까울수록 투자자들은 급락할 꺼라고 예측

2) 100에 가까울수록 투자자들은 주가가 우상향 할 꺼라고 예측

 

 

저 수치가 2였을 때 나스닥에 진입하셨던 분들은 돈좀 버셨을껍니다. 

 

CNN Fear & Greed Index가 2였을 당시 SPY 가격 ($229.78)

 

가끔씩 들어가셔서 CNN Fear & Greed Index 확인하시고, 버핏 할배가 말한대로

공포에 사서 탐욕에 파신다면 좀 더 안전한 투자가 될 수 있겠네요!

 

-끝-

링크 : https://stocktwits.com/

 

Stocktwits - The largest community for investors and traders

Join Stocktwits for free stock discussions, prices, and market sentiment with millions of investors and traders. Stocktwits is the largest social network for finance.

stocktwits.com

 

국내 주식을 하시는 분들은 네이버 종목토론방 약칭 네이버 종토방에서 정보를 얻거나,

종목 분위기를 파악하기 위해 들어가서 글을 보시기도 하시죠.

 

 

저도 가끔씩 들어갑니다만 항상 긍정적인 분들만 아니라 물 흐리시는 분들도 계시고,

정신 건강상 자주는 들어가지 않습니다만 호재가 딱 터지거나 했을 때 같이 응원하는 사람들이

있으면 재밌으니까 가끔씩은 들어가서 새로운 정보를 얻기도 하고, 멘탈도 나가기도 합니다. 

 

 

그렇다면 우리 미국 형님들이 주로 노시는 미국판 네이버 종토방은 어떤게 있을까요?

 

1) 야후 파이낸스(https://finance.yahoo.com/)

2) 인베스팅닷컴(https://www.investing.com/) 우측 상단에서 국가를 미국으로 바꾸어 주셔야 합니다.

3) 스톡트위츠(https://stocktwits.com/)

 

등등이 있는데요. 

 

 

오늘은 스톡트위츠에 대해서 설명드리려고 합니다. 

 

 

스톡트위츠는 SNS를 표방한 종목토론방인데요. 그래서 SNS를 자주 접해보신 분들은 이용하시기가 편하실꺼예요.

 

 

간단하게 웹페이지부터 확인해보면 

 

Stocktwits.com 메인 페이지

보시다시피 좌측에 내가 등록한 주식들, 가운데로는 등록한 주식과 관련된 글들이 나옵니다.

 

관심있는 주식들을 등록해놓고, 접속해서 실시간 주가(프리마켓, 포스트마켓 가격도 실시간 연동이 되기는 하지만

오류가 많기 때문에 다른 사이트에서 시세 확인하시는거 꼭 필요합니다.)

 

 

 

 

좌측에 등록해놓은 종목을 클릭하면 상세 페이지로 넘어가게 됩니다. 

 

종목 별 상세페이지

 

여기 들어가시면 투자자들 혹은 해당 종목을 즐겨찾기 해놓은 사람들이 써놓은 의견을 볼 수 있는데요.

 

간단하게 몇개만 확인해볼까요?

 

테크니컬한 차트분석?

 

같은 산업군에 대비해 안정적이라는 의견

 

이렇게 논리적인 의견을 확인할 수도 있지만, 물 흐리는 친구들도 많죠. 사람 사는게 여기나 저기나 

똑같나 봅니다.

 

스타벅스는 끝났어 조니...

 

어쨌든 나스닥에 투자하시면서 같이 의견을 공유하실 분이 없으시다면 가끔씩 들어가서

다른 투자자들은 어떻게 생각하시는지 참조하는 것도 좋습니다. 

 

다만 팩트체크는 늘 본인이 하셔야 하는거 잊지마시구요.

 

 

감사합니다.

 

 

-끝-

 

 

+ Recent posts