몇달 전, 하이퍼레저 패브릭을 이요해 사용자들 간 토큰을 주고받는 네트워크를 기반으로 한 웹 어플리케이션을 개발한 경험이 있다!
최근에 코드 리팩토링을 하며 이것저것 바뀐 내용이 좀 있는데 정리도 할 겸!
리눅스 환경에서MongoDB
를 설치하고 사용하는 방법을 포스팅 해보려 한다🤗
먼저 우분투 버전을 확인해야 한다. 필자는 20.04.1 LTS
에 코드네임은 focal
이다.
이후 몽고디비를 위한 list 파일을 생성하는데 버전에 따라 달라지기 때문에 꼭! 확인해야 한다.
이후 패키지 관리 시스템에서 사용하는 공개키를 가져온다.
앞서 말한, 몽고디비를 위한 list 파일을 생성한다! 버전에 따라 명령어가 달라지니 주의해야 한다.
MongoDB
패키지 설치를 위해, 로컬패키지 데이터베이스를 불러온다.
MongoDB
패키지를 설치한다.
MongoDB
를 시작한다.
그리고 MongoDB
가 성공적으로 실행되었는지 확인한다! 초록불 확인
MongoDB
와 Nodejs
를 연동하기 위해 Mongoose
모듈을 설치한다.
이는 이후에 나올 로그인 기능을 구현하기 위함이다!
MongoDB
를 시작하고, admin
계정을 생성한다.
use admin
- admin 이라는 데이터베이스를 생성db.createUser({user: 'admin', pwd: 'password', roles: ['userAdminAnyDatabase', db:'admin']})
admin
데이터베이스에 사용자를 추가하고, 권한을 부여한다.userAdminAnyDatabase
는 어떤 데이터베이스든 사용자를 생성하고 제거할 수 있다는 것을 의미한다.db.auth('admin','password')
- admin
데이터베이스에 관리자를 인증해야 하는데, 쉘에서 이와 같은 명령어를 입력해 쉽게 인증할 수 있다. 1이 나오면 성공적으로 인증됐다는 뜻이다.📌 참고
admin
데이터 베이스에 관리자를 인증하는 또 다른 방법은 쉘에 접속하는 동시에 인증을 거치는 것이다.
➡️mongo -u <user> -p <pwd> --authenticationDatabase admin
Ubuntu
와 같은 리눅스 시스템에서 service mongod start
처럼 service를 이용할 경우, config 파일을 통해 실행되는데, 이 경우 /etc/mongod.conf
에 위와같이 추가하고 재시작해야 한다!
관리자 계정을 만들었으니 일반 사용자 계정도 만들어 보자.
관리자 계정을 만들었던 것처럼, 만들고자 하는 데이터베이스를 use
하고 사용자를 추가한다.
dbOwner
라는 권한은 해당 데이터베이스에 대한 모든 수정,삭제 권한을 가진다는 것을 의미한다.
마지막으로 로그인 기능 구현을 위해 데이터베이스에 collection
, document
을 생성했다!
정보는 간단히 사용자 이름, 비밀번호, 토큰의 유효기간만 넣었다.
MongoDB
를 설치하고 데이터베이스 생성 및 관리자/사용자 계정까지 만들어보았다!
다음에는 MongoDB
, Nodejs
를 연동하여 로그인 기능을 구현하는 포스팅을 작성해 보겠다🤗