NM

2019-09-30

들어가며

Node.js + MongoDB를 사용해야 할 일이 생겼다. Ubuntu 서버 환경이 제공되기는 하지만 로컬에서 테스트를 위해 Windows에서도 환경을 구축해야 했다. 그래서 이전 APM 글#과 비슷한 이유로 정리해 놓는다. 특이하게도 Windows에서는 거의 설정할 것이 없는데 반해, Ubuntu 18.04 LTS에서는 저장소 추가를 처음에 해 주어야 한다.

특히 이번에는 Ubuntu 18.04 LTS에서 0-1023번 포트를 사용하려면 sudo 권한이 필요한데, node에 sudo 권한을 주지 않고 1000번 포트를 사용하는 방법을 찾고자 했다. 이전까지는 서버에서의 계속적 실행을 위해 npm forever 패키지를 사용했는데, 이번에는 npm pm2를 써 보기로 하면서 읽어보니 문서에 관련 내용이 있었다.

처음에 한 번 sudo 권한으로 파일을 만든 후 소유자를 변경하면 authbind를 사용하여 해당 포트를 사용할 수 있다. 그런데 다른 페이지에는 거의 언급이 없는 EPERM 오류가 계속 발생했다. 약 1시간 동안 도대체 왜 안 되는지 열심히 검색만 하다가 결국 manpage#에 들어갔더니 하단에 512-1023번 포트에 관한 얘기가 있었다. 일부 프로토콜이 이 범위를 사용할 수 있으니 주의하고, 정 사용하겠다면 해당 파일 이름 앞에 !를 붙이라는 것이었다. 심지어 bash에서는 해당 문자가 특수한 의미를 가지기에 그냥 붙여서 만들 수도 없고 escape해서 붙여야 한다.

역시 현시점에서 최신 페이지와 버전을 적어 놓았지만, 나중에는 당연히 갱신될 것이다. Latest Stable Release를 사용하자.

[Windows] Node.js

Download

http://nodejs.org/en/download

LTS, Windows Binary (.zip) (node-v10.16.3-win-x64.zip) 다운로드

Configure

없음

Execution

"C:\node-v10.16.3-win-x64\node.exe" --version

[Windows] MongoDB

Download

http://www.mongodb.com/download-center/community

MongoDB Community Server, 4.2.0, Windows x64 x64, ZIP (mongodb-win32-x86_64-2012plus-4.2.0.zip) 다운로드

Configure

없음

Execute

"C:\mongodb-win32-x86_64-2012plus-4.2.0\bin\mongod.exe" --dbpath="C:\mongodb-win32-x86_64-2012plus-4.2.0\data" --logpath="C:\mongodb-win32-x86_64-2012plus-4.2.0\log" --install
sc start MongoDB
mongo

[Windows] MongoDB Compass

MySQL/MariaDB, PostgreSQL 같은 RDBMS는 HeidiSQL 등으로 잘 사용할 수 있지만, NoSQL을 사용해 보는 것이 처음이라서 이 프로그램을 써보기로 했다.

Download

http://www.mongodb.com/download-center/compass

1.19.12, Windows 64-bit (7+) (Zip) (mongodb-compass-1.19.12-win32-x64.zip) 다운로드

[Ubuntu 18.04 LTS] Node.js

Install

curl -sL https://deb.nodesource.com/setup_10.x | bash -
sudo apt update
sudo apt install nodejs authbind

Configure

sudo touch /etc/authbind/byport/\!1000
sudo chown ubuntu /etc/authbind/byport/\!1000
sudo chmod 755 /etc/authbind/byport/\!1000

Execute

node --version

[Ubuntu 18.04 LTS] MongoDB

Install

wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
sudo apt update
sudo apt install mongodb-org

Configure

/etc/mongod.conf

해당 줄을 찾아서 아래와 같이 변경

  bindIp: 0.0.0.0

Execute

sudo service mongod start
mongo

돌아가기