[nodejs] MongoDB와의 데이터베이스 연동을 위한 샤딩 설정

MongoDB는 대량의 데이터를 처리할 수 있는 확장 가능한 데이터베이스 시스템으로 유명합니다. 이를 위해 MongoDB는 샤딩을 통해 데이터를 수평적으로 분산시킬 수 있습니다.

샤딩을 설정하기 위해서는 데이터베이스와의 연동도 중요한데, 이번 글에서는 Node.js와 MongoDB를 연동하는 방법과 함께 샤딩 설정에 대해 알아보겠습니다.

MongoDB와의 연동

MongoDB를 Node.js와 연동하기 위해서는 mongoose라이브러리를 사용할 수 있습니다. 이 라이브러리를 사용하면 MongoDB와의 연결 및 쿼리 작성이 간편해집니다.

const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/myapp', {useNewUrlParser: true});

위의 예제에서 mongoose.connect를 사용하여 MongoDB에 연결할 수 있습니다. mongodb://localhost:27017/myapp 부분에서 myapp은 연결할 데이터베이스의 이름을 나타냅니다.

MongoDB의 샤딩 설정

샤딩을 위해서는 우선 mongos 프로세스를 실행해야 합니다. mongos는 샤딩을 위한 라우터 역할을 합니다.

샤딩을 설정하려면 먼저 shard를 추가해야 합니다. shard는 실제 데이터가 저장되는 물리적인 서버나 클러스터를 가리킵니다. 각 shard에는 분산된 데이터 일부가 저장됩니다.

샤드를 추가하고 데이터를 분산하기 위해서는 sh.addShard() 명령어를 사용합니다.

sh.addShard( "shard1.example.net:27017" );
sh.addShard( "shard2.example.net:27017" );

위의 예제에서 shard1.example.net:27017shard2.example.net:27017는 각각 샤드의 주소를 나타냅니다.

샤딩된 컬렉션을 생성하려면 sh.shardCollection() 명령어를 사용할 수 있습니다.

sh.shardCollection( "test.users", { "country": 1 } );

위의 예제에서 test는 데이터베이스 이름이며, users는 컬렉션 이름을 나타냅니다. { "country": 1 }는 샤딩할 키를 나타냅니다.

샤딩을 설정하고 데이터베이스와의 연동을 완료했다면, MongoDB는 대량의 데이터를 효율적으로 처리할 수 있습니다.

결론

Node.js를 통해 MongoDB와의 데이터베이스 연동과 함께 샤딩 설정에 대해 알아보았습니다. MongoDB의 샤딩을 통해 데이터를 효율적으로 처리할 수 있으며, Node.js를 사용하면 더욱 간편하게 MongoDB와 연동할 수 있습니다.

이번 글에서는 기본적인 샤딩 설정에 대해 다뤘지만, 실제 운영 환경에서는 더 다양한 설정과 고려사항이 필요할 수 있습니다. 각 상황에 맞게 적절한 샤딩 및 연동 설정을 고민해보시기 바랍니다.

마지막으로 Node.js와 MongoDB를 함께 사용하여 대규모 데이터를 효율적으로 관리하는 방법에 대해 공부해보시기를 권장합니다.

참고 자료