node.js 에서 mongoose 연동


// 이 전에 mongoose 설치 > npm install mongoose

// connect to mongodb server

var db = mongoose.connection;

db.on('error', console.error);

db.once('open', function(){

    console.log("Connected to mongod server");

});


mongoose.connect('mongodb+srv://[username]:[password]@beappcluster-xwyff.mongodb.net/test?retryWrites=true', {

  useNewUrlParser: true

});


// username, password 에 해당하는 값 삽입




mongodb 설치 : https://nesoy.github.io/articles/2017-04/MongoDB




'데이터베이스 > MongoDB' 카테고리의 다른 글

Atlas 사용 방법  (0) 2019.04.02
mongoDB 간단 문법  (0) 2019.03.19

맥북을 사고 제일먼저 설치한건.. NVM 이다.

처음엔 굳이 필요한가 싶었지만 node를 여러 버전으로 깔다보면 꼬일 가능성이 많다고하여 NVM 으로 버전관리를 해보려고한다.




1. NVM 설치방법


nvm 을 설치하기 위해서는 curl 로 설치하는 방법 homebrew 로 설치하는 방법이 있다. 


[curl]

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash



[homebrew]


$ brew install nvm


brew 명령어를 쓰기 위해서는 homebrew를 먼저 설치해야 한다. (homebrew 설치방법 참고)



설치 후에는 다음 작업을 해줘야 한다.


// bash_profile 설정 변경

$ vi ~/.bash_profile


// 아래 코드가 있는지 확인하고 없으면 추가

export NVM_DIR="$HOME/.nvm"

[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm


// 변경사항이 있으면 저장 명령어

$ source ~/.bash_profile 


[ nvm 명령어 ]


// Node 버전 설치 $ nvm install <version> # ex> nvm install 8.9.4 // 설치된 Node 버전 목록 확인 $ nvm ls // 사용할 Node 설정 $ nvm use <version> # ex> nvm use 8.9.4 $ nvm use <alias> # ex> nvm use default // 사용할 alias 설정 $ nvm alias <alias> <version> # ex> nvm alias test-v 8.9.4



2. NPM 설치방법


node 를 설치하면 npm 은 자동 설치된다




참고글 : https://heropy.blog/2018/02/17/node-js-install/

https://gist.github.com/falsy/8aa42ae311a9adb50e2ca7d8702c9af1

티스토리에 관리자 페이지로 이동하는 버튼이 없어진 후로... 관리자 페이지 들어가는 방법을 모르겠... 너무 불편하다..

내가 바보인건지... 여기 적어놔야겠당...



https://[티스토리주소].com/manage/posts/

'기타' 카테고리의 다른 글

티스토리 초대장 받는 방법  (21) 2018.04.27

[ 툴 버전정보 ]

mac os

truffle  : 5.0.8

ganache-cli  :  Ganache CLI v6.4.1 (ganache-core: 2.5.3)

web3.js  : 1.0.0-beta.48

express : 버전4


[ truffle 설치 ]

$ npm install -g truffle


[ ganache-cli 설치 ]

$ npm install -g ganache-cli



[ dapp 실행방법 ]


1. 가나슈 실행 (가나슈는 로컬 블록체인 환경을 구성해주는 툴)

$ ganache-cli


2. truffle 이용한 스마트 컨트랙트 컴파일 & 배포 (컨트랙트가 작성돼있다는 전제하에..)

$ truffle compile > 컨트랙트 컴파일 (build/contracts 디렉토리에 계약이름.json 파일 생성)

$ truffle migrate > 컨트랙트 배포 (가나슈가 실행중일때 가능)

$ truffle console > 트러플 콘솔 진입


3. web3 설치

$ npm install web3


4. 서버 설치

$ npm install -g express-generator


// express 로 프로젝트 생성

$ express [프로젝트이름]

$ cd [프로젝트이름]

$ npm install // 처음 셋팅 시 package.json 에 있는 모듈이 import 안돼있을수있음

$ npm start




** nodemon 으로 실행 시 

$ npm install nodemon

$ vi package.json 

"start": "node ./bin/www" > "start": "nodemon ./bin/www" 으로 변경



최근(?) 자바 유료화에 대한 이슈가 있어서 정확한 정책을 찾아보았다.


다른 나라에 비해 우리나라는 금융, 공공기업 등 많은 곳에서 오라클 자바를 사용하고 있고 자바는 무료라는 인식때문에 더욱 이슈가 되었다고 한다.


알아보니 유료화에 대한 정책 정책은 EOPU(엔드오브퍼블릭업데이트) 시점 이후 유료이고 이 부분은 기존과 동일하다고 한다.



참고글 : http://www.zdnet.co.kr/view/?no=20181102140004

'IT 기술 소식' 카테고리의 다른 글

코스모스 블록체인 프로젝트  (0) 2018.12.31

[ 일반용어 ]


하이퍼레저

- 프라이빗 블록체인


이오스 

블록체인 기술 종류


크립토커런시

- 영미권에서 가상화폐를 말하는 단어


메인넷 

독립적인 블록체인 플랫폼

코인은 메인넷이 있는 블록체인에서 사용


토큰 

- 메인넷이 아닌 다른 플렛폼에서 파생되어 사용


오라클라이즈 

폐쇄적인 블록체인의 단점을 보완하기 위해 데이터를 블록체인 내부로 가져오거나 외부로 가져가는 방식


스마트컨트랙트 

이더리움의 특징조건을 걸어놓고 해당조건이 성립되면 자동으로 계약이 실행되는 장치


트랜잭션 

거래 하나 단위이더리움은 초당 트랜잭션 처리량이 낮음 > 느림


온체인 

메인 블록체인 네트워크


오프체인 - 온체인 아닌거온체인 트랜젝션 처리 속도가 느리므로 이를 보완하기위해 사용


[ 툴 & 환경 ]


geth

- 이더리움 재단에서 제공하는 공식 클라이언트 소프트웨어

- go 언어로 개발 (go-ethereum이어서 geth)

- parity 라는 클라이언트 sw도 있고 이더리움황서의 사양에 따라 직접 클라이언트 구현도 가능 


web3.js

- 이더리움 블록체인과의 인터렉션을 제공하는 자바스크립트 라이브러리

- 이 라이브러리를 사용해 프론트엔드에서 dapp 이용 가능


truffle

- 루비, 장고 같은 웹 애플리케이션 프레임워크 

- 트러플은 dapp 개발할때 많이 쓰는 프레임워크 중 하나

- 블록체인에서 스마트 컨트랙트를 컴파일하고 배고하는 과정을 추상화

- embark 라는 프레임워크도 있음


ganache

- 개발 목적으로 사용하는 메모리 내 블록체인

- geth, parity 같은 클라이언트를 사용하면 트랜잭션 마다 15초씩 걸려서 느림

- ganache-cli 또는 GUI 버전으로 설치 가능


메타마스크

- 이더리움 지갑 중 커뮤니티에서 사용되는 가장 인기있는 지갑 중 하나

- 메타마스크는 크롬 플러그인으로 설치 가능 (계정생성, 키생성)


etherscan 

- 이더스캔 사에서 서비스하는 무료 프론트앤드 애플리케이션

- 퍼블릭 이더리움 블록체인의 주소, 트랜잭션, 블록에 대한 정보들을 확인하는 사이트


remix

- 리믹스는 스마트 컨트랙트를 코딩하는데 쓰는 브라우저 IDE

- 리믹스는 소규모용으로는 좋지만 전문적으로하려면 에디터를 사용하고 컴파일/배포는 트러플같은 프레임워크 사용이 나음



참고글 : https://programmers.co.kr/learn/courses/7322

Mac 터미널 명령어


1. 특정 포트 확인 및 프로세스 종료


sudo lsof -i:[포트번호]

sudo kill -9 [프로세스번호]



'프로젝트 관리 툴 > 기타' 카테고리의 다른 글

빌드툴 - Gradle과 Maven  (0) 2018.08.31
M/M (Man/Month) 계산 방법  (0) 2018.07.19

1. alias 등록


홈디렉토리에서 

vi .bashrc

alias [이름]='[명령어]'


변경 후 source .bashrc 실행



2. 열려있는 포트 확인


netstat -tnlp


소스를 git 에 올리고 서버에서 셋팅하는것까지는 완료되었고 

다음은 nginx 를 리버스 프록시로 사용하는 방법을 살펴보았다.


참고글을 참고(?)하여 /etc/nginx/sites-available/ 경로에 default 폴더를 수정해주었다.

*중간에 도메인뒤에 포트를 붙여주지않으면 css 나 js의 path 가 깨지는 문제가 있었는데 server 괄호에 있는 server_name 을 주석처리해주니 해결되었다! (도메인에 포트가 붙어야 접속이 되면 프록시를 사용하는 의미가 없다능..)


server {

 22         #listen 80 default_server;

 23         #listen [::]:80 default_server;

 24         listen 80;


location / {

 52                 # First attempt to serve request as file, then

 53                 # as directory, then fall back to displaying a 404.

 54                 # try_files $uri $uri/ =404;

 55                 proxy_set_header X-Real-IP $remote_addr;

 56                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

 57                 proxy_set_header Host $http_host;

 58                 proxy_set_header X-NginX-Proxy true;

 59 

 60                 proxy_pass http://127.0.0.1:3000/;

 61         }


}



참고글

https://medium.com/sjk5766/nginx-reverse-proxy-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-e11e18fcf843

https://velog.io/@jeff0720/2018-11-18-2111-%EC%9E%91%EC%84%B1%EB%90%A8-iojomvsf0n

Amazon Linux를 사용하다 sudoers 설정파일을 잘못건드리는 바람에.. 인스턴스를 우분투로 새로 생성하였다.


인스턴스 생성 후 ssh 접속할 때 키페어에 접근이 안되는 문제가 있어서 권한변경하여 해결하였다.


$ chmod 400 키페어이름.pem



ssh 접속 후 아래 명령어로 nginx 를 설치


$ sudo apt-get update

$ sudo apt-get install nginx


참고글 : http://technerd.tistory.com/18



서버에 node.js 설치


sudo apt-get install curl

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -

sudo apt-get install -y nodejs


npm 설치


sudo apt install npm


'사이드 프로젝트' 카테고리의 다른 글

Spring Boot 프로젝트 셋팅1 - 서버환경  (0) 2019.05.11
코딩야학 프로젝트 day5  (0) 2019.01.22
코딩야학 프로젝트 day3  (0) 2019.01.08
코딩야학 프로젝트 day2  (0) 2019.01.08
코딩야학 프로젝트 day1  (0) 2019.01.08

+ Recent posts