๋ค์๊ณผ ๊ฐ์ ์ฐ๊ฒฐ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
var Mongoose = require('mongoose');
connectionUrl = mongodb://some_login:some_pwd<strong i="6">@some_host</strong>:27017/some_db?authSource=admin
Mongoose.connect(connectionUrl);
... ๋ฌธ์ ์ ๋์ ์์ง๋ง NodeJS ์ฝ์์ ๋ค์ ๊ฒฝ๊ณ ๊ฐ ํ์๋ฉ๋๋ค.
Db.prototype.authenticate method will no longer be available
in the next major release 3.x as MongoDB 3.6 will only allow auth
against users in the admin db and will no longer allow multiple credentials on a socket.
Please authenticate using MongoClient.connect with auth credentials.
Connection with database succeeded.
( ?authSource=admin
์๋ตํ๋ฉด ์ธ์ฆ ์คํจ)
์ด ๋จ๊ณ์์ ์ ์์ ๋๊น (๋ค์ ๋ชฝ๊ตฌ์ค ๋ฆด๋ฆฌ์ค๋ฅผ ๊ธฐ๋ค๋ ค์ผํฉ๋๊น?).๋๋ ์ง๊ธ๋ถํฐ ๋ฌด์์ ๋ณ๊ฒฝํด์ผํฉ๋๊น?
๋ฒ์ :
๋
ธ๋ : 7.10.0
๋ชฝ๊ตฌ์ค : 4.10.3
MongoDB : 3.4
๊ฐ์ฌํฉ๋๋ค.
+1
+1
+1
๋งฅ OS X 10.12.5
๋
ธ๋ : v7.10.0
๋ชฝ๊ตฌ์ค : 4.10.3
MongoDB v3.4.4
+1
yup๋ ์ค์ ๋ก db๋ฅผ ํฐ์นํ์ฌ (์ฐ๊ธฐ์ ๊ฐ์) ์์ ์ ์ํ ํ ํ์ ๋ง โโ๋ฐ์ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
gh_5304
(๋์ผํ ์ํธ ์ฌ์ฉ)๋ผ๋ ๊ด๋ฆฌ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฌ์ฉ์๋ฅผ ๋ง๋ค๊ณ ์ฌ์ฉ์์๊ฒ dbAdminAnyDatabase
๊ถํ์ ๋ถ์ฌํ ๋ค์ gh-5304
์ ๋ํ ์ฐ๊ฒฐ ๋ฌธ์์ด์์ ํด๋น ์ฌ์ฉ์์ ๋ํด ์ธ์ฆํ์ต๋๋ค. admin
ํ
์ด๋ธ์ authSource๋ก ์ง์ ํ๋ ํ
์ด๋ธ :
const mongoose = require('mongoose');
const co = require('co');
mongoose.Promise = global.Promise;
const GITHUB_ISSUE = `gh-5304`;
exec()
.then(() => {
console.log('successfully ran program');
process.exit(0);
})
.catch(error => {
console.error(`Error: ${ error }\n${ error.stack }`);
});
function exec() {
return co(function*() {
const db = mongoose.connect(`mongodb://gh_5304:gh_5304<strong i="11">@localhost</strong>:27017/${ GITHUB_ISSUE }?authSource=admin`);
const schema = new mongoose.Schema({ name: String });
const Model = db.model('Model', schema);
const doc = yield Model.create({ name: 'Test' });
});
}
๋ก๊ทธ ์ถ๋ ฅ :
Db.prototype.authenticate method will no longer be available in the next major release 3.x
as MongoDB 3.6 will only allow auth against users in the admin db and will no longer allow
multiple credentials on a socket. Please authenticate using MongoClient.connect with auth c
redentials.
successfully ran program
๋๋ ์ด๊ฒ์ "๋ฒ๊ทธ"๋ก ํ์ ํ ๊ฒ์ด๋ค. ๋น๋ก ๋ด๊ฐ ์ด๊ฒ์ ๋ฌด์์ผ๋ก ์ค๋ช ํ ๊ฒ์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง. ์ฃผ์ํด์ผ ํ ๊ฒฝ๊ณ ์ ๋๋ค ...
authSource
๋ฌธ์ ๋ ์์๋๋ ๋์ atm์
๋๋ค. some_db
์ฐ๊ฒฐ ์ค์ด๊ณ ์ฌ์ฉ์๊ฐ some_db
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์๋์ด ์์ง ์์ ๊ฒฝ์ฐ authSource
์ ์ง์ ํด์ผํฉ๋๋ค
Re : ๊ฒฝ๊ณ , ์ด๊ฒ์ ๋ชฝ๊ตฌ์ค ์ธ์ฆ์ด ํ์ฌ ์๋ํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ด๊ธฐ ๋๋ฌธ์ ์ ์คํ๊ฒ ํด๊ฒฐํด์ผ ํ ๊ฒ์
๋๋ค. MongoClient.connect ()์์ ์๊ฒฉ ์ฆ๋ช
์ ์ง์ ํ๋๋ผ๋ mongoose๋ ์ฌ์ ํ ๋ด๋ถ์ ์ผ๋ก authenticate()
ํธ์ถํฉ๋๋ค. ํ์ฌ ๊ณํ์ URI ๋ง ์ ๊ณตํ๋ฉด 4.11์์ MongoClient.connect()
๋ฅผ ์ฌ์ฉํ๋๋กํ๊ณ ํธ์คํธ, ์ฌ์ฉ์ ๋ฑ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ mongoose์ ๋ด๋ถ ์ฐ๊ฒฐ ๋
ผ๋ฆฌ๋ก ๋์ฒดํ๋ ๊ฒ์
๋๋ค.
4.11๊น์ง๋์ด ๊ฒฝ๊ณ ์ ๋ํด ๊ฑฑ์ ํ์ง ์์ต๋๋ค. ๋ด๊ฐ ์๋ ํ, MongoDB 3.6 ๋ฐ MongoDB ๋๋ผ์ด๋ฒ 3.0์ ์ฌํด ๋ง๊น์ง ์ถ์ ๋ ๊ฐ๋ฅ์ฑ์ด ๋ฎ์ผ๋ฉฐ ์ด๋ฌํ ๋ณ๊ฒฝ ์ฌํญ์๋ ์ต์ข ์ฌ์ฉ์ ๋ณ๊ฒฝ์ด ํ์ํ์ง ์์ต๋๋ค.
์์ธํ ๋ต๋ณ์ ์ํด @varunjayaraman @ vkarpov15 ์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.)
๋๊ตฌ๋ ์ง์ด ๋ฉ์์ง๋ฅผ ๋นํ์ฑํ / ์จ๊ธฐ๊ธฐ ๋ฐฉ๋ฒ์ ์๊ณ ์์ต๋๊น? ํ๋ก์ธ์ค๋ฅผ ์์ฑ ํ ๋ ๊ณ์ ํ์๋๊ณ ์ ๊ฒฝ์ด ์ฐ์ด๊ณ ์์ต๋๋ค! ๐
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋ชฝ๊ตฌ์ค๋ฅผ ์ฌ์ฉํด์ผํ ์ง ๋ง์์ผํ ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
+1
์ฌ๊ธฐ์ ๊ฐ์ ๋ฌธ์
+1
+1
๋ชฝ๊ตฌ์ค : 4.10.3
MongoDB v3.4
4.11๊น์ง mongodb ๋๋ผ์ด๋ฒ์์ ๊ฒฝ๊ณ ๋ฅผ ๋๋ ค๋ฉด ์ฌ๊ธฐ ๋จ๊ณ๋ฅผ ์ฌ์ฉํ๊ณ mongoose์ ๊ธฐ๋ณธ ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ก๊ฑฐ๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.
http://mongodb.github.io/node-mongodb-native/2.2/reference/management/logging/
๊ทธ๋ ์ง ์์ผ๋ฉด ๊ด์ฐฎ์ ๊ฒ์ด๊ณ ๋ฌธ์ ๋ 4.11
์์ ํด๊ฒฐ๋์ด์ผํฉ๋๋ค.
+1
const ๋ชฝ๊ตฌ์ค = require ( 'mongoose');
var db = mongoose.connect ( "mongodb : // saiganesh : [email protected] : 61121 / tester");
var Scheme = mongoose.Schema ({
์ ๋ชฉ : ๋ฌธ์์ด,
์ ์ : String,
๋ณธ๋ฌธ : ๋ฌธ์์ด,
์ฃผ์ : [{๋ณธ๋ฌธ : ๋ฌธ์์ด, ๋ ์ง : ๋ ์ง}],
๋ ์ง : {์ ํ : ๋ ์ง, ๊ธฐ๋ณธ๊ฐ : Date.now},
์จ๊น : ๋ถ์ธ,
๋ฉํ : {
ํฌํ : ๋ฒํธ,
favs : ๋ฒํธ
}
});
module.exports = db.model ( 'mongodb', Scheme);
var BlogPost = require ( "./ models / mongodb.js");
// ์ ๋ชจ๋ธ ์์ฑ
var post = new BlogPost ({title : "๋ด ์ฒซ ๊ฒ์๋ฌผ", ์์ฑ์ : "saiganesh",
body : "๋ฌธ์๋ฅผ ์ธ๋ชจ ์๊ฒ ๋ง๋ค๊ณ ์ถ์ต๋๋ค"});
post.save (function (err) {
if (err) {
๋ฐํ ์ค๋ฅ;
}
else {
console.log ( "๊ฒ์๋ฌผ ์ ์ฅ ๋จ");
}
});
์ค๋ฅ:
node .index.js (node โโ: 2604) DeprecationWarning : Mongoose : mpromise (mongoose 's de
๊ฒฐํจ ์ฝ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ)๋ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ต๋๋ค. ๋์ ์์ ์ ์ฝ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐ๊ฒฐํ์ญ์์ค. http://mongoosejs.com/docs/promises.html
MongoDB 3.6์ ๊ด๋ฆฌ์์ ์ฌ์ฉ์์ ๋ํ ์ธ์ฆ ๋ง ํ์ฉํ๋ฏ๋ก Db.prototype.authenticate ๋ฉ์๋๋ ๋ค์ ์ฃผ ๋ฆด๋ฆฌ์ค 3.x์์ ๋ ์ด์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
db์ด๋ฉฐ ๋ ์ด์ ์์ผ์์ ์ฌ๋ฌ ์๊ฒฉ ์ฆ๋ช
์ ํ์ฉํ์ง ์์ต๋๋ค. MongoClient.connect๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ฆ ์๊ฒฉ ์ฆ๋ช
์ผ๋ก ์ธ์ฆํ์ญ์์ค.
events.js : 160
์ด ๋์ ธ; // ์ฒ๋ฆฌ๋์ง ์์ '์ค๋ฅ'์ด๋ฒคํธ
^
MongoError : ์ธ์ฆ์ ์คํจํ์ต๋๋ค.
Function.MongoError.create (C : UserssaiganeshDesktopsocket.io-masterexampleschatmongoosedbnode_modulesmongodb-coreliberror.js : 31 : 11)
C : UserssaiganeshDesktopsocket.io-masterexampleschatmongoosedbnode_modulesmongodb-corelibconnectionpool.js : 497 : 72
authenticateStragglers์์ (C : UserssaiganeshDesktopsocket.io-masterexampleschatmongoosedbnode_modulesmongodb-corelibconnectionpool.js : 443 :
16)
Connection.messageHandler (C : UserssaiganeshDesktopsocket.io-masterexampleschatmongoosedbnode_modulesmongodb-corelibconnectionpool.js : 4
77 : 5)
์์ผ์์.
1:22)
emitOne (events.js : 96 : 13)
Socket.emit (events.js : 188 : 7)
readableAddChunk (_stream_readable.js : 176 : 18)
Socket.Readable.push (_stream_Readable.js : 134 : 10)
TCP.onread (net.js : 548 : 20)
์ด ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด ์ด๋ค MongoDB ๋ฐ Mongoose ๋ฒ์ ์ ์ฌ์ฉํด์ผํฉ๋๊น?
์ด๊ฒ์ ๋ฒ๊ทธ ๋ง์ต๋๊น?
๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. MongoDB ์
ธ ๋ฒ์ v3.4.2
ํจํค์ง json์ ์ข
์์ฑ : "mongodb": "^ 2.2.28", "mongoose": "^ 4.10.4"
"mongoose": "~ 4.10.2"๋ ์ผ์ ๋๋ค!
์ด์ node_module ํด๋๋ฅผ ์ ๊ฑฐํ๊ณ ๊ณ ์ ๋ ์ด์ ๋ฒ์ "mongoose": "4.10.2"๋ฅผ ์ฌ์ฉํ๋๋ก package.json์ ๋ณ๊ฒฝํ์ต๋๋ค. npm ์ค์น ํ ๊ฒฝ๊ณ ๋ฉ์์ง๊ฐ ์ฌ๋ผ์ง๋๋ค.
โโโฌ [email protected]
โ โโโ [email protected]
โโโฌ [email protected]
โโโฌ [email protected]
โโโ [email protected]
์ด๊ฒ์ด ์ข์ ์ ๊ทผ๋ฒ์ด ์๋๊น ๋๋ ต์ต๋๋ค. ์ต์ mongoose์ mongo ์ํํธ์จ์ด ์ฌ์ด์ ํธํ์ฑ์ด ์์ด์ผํฉ๋๋ค.
์, ๋ค์ ๋ฒ์ ์ด ๋ ์์๋ ๋ฒ๊ทธ ์์ ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค.
๋จ์ง +1
๋ํด ์ธ๊ธํ์ง ๋ง์๊ธฐ ๋ฐ๋๋๋ค. ์ฐ๋ฆฌ๋ ์ด๊ฒ์ด ๋ธ๋ ์ดํน ๋ฒ๊ทธ๊ฐ ์๋๋ผ๊ณ ๋ช
์ํ๊ณ ๋ฌธ์ ๋ฅผ confirmed-bug
๋ก ํ์ํ๊ณ mongoose 4.11๊น์ง ๊ด์ฐฎ์ต๋๋ค. ์ด๊ฒ์ ๋จ์ํ ๊ฒฝ๊ณ ๋ฉ์์ง์ด๋ฉฐ, ์์๊ฑฐ๋ฅผ ์ํ ๊ฒฝ์ฐ mongodb ๋ก๊ฑฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉ์์ง๋ฅผ ์จ๊ธธ ์์๋ ๋ฐฉ๋ฒ๋ ๊ฒ์ํ์ต๋๋ค. ๋น์ฐํ ๋ง์ ์๋์ง๋ง, +1 ๋ฉ์์ง๋ ๋จ์ํ๋ฐ์ ํธ์งํจ์ผ๋ก ๊ฐ๋ ์ฐจ์ ์ค๋ ๋๋ฅผ ์ฝ์ ๋ ํนํ ์ฑ๊ฐ ์๊ฒ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์์ ๋ณด์ฌ์ค๋๋ค.
๊ทํ์ ๋ฌธ์ @msaiganesh์ ๊ดํด์ ๋ db ์ธ์ฆ๊ณผ ๊ด๋ จ๋ ๋ณ๋์ ๋ฌธ์ ๊ฐ๋ฉ๋๋ค. ๋ณ๋์ ๋ฌธ์ ๋ฅผ ์ด์ด ์ฃผ์๊ฒ ์ต๋๊น?
+2 (๋์ ๋ด ๋๋ฃ)
"๋ชฝ๊ตฌ์ค": "^ 4.10.4"
์ด ์ค๋ฅ๋ ๋ฐ์ํฉ๋๋ค. ๋ฒ๊ทธ๊ฐ ์๋ ๊ฒฝ๊ณ ๋ฉ์์ง ์ผ ๋ฟ์ด๋ฉฐ ๊ณ์ ์งํํ๋ ๊ฒ์ ๋ฐฉํดํ์ง ์์ต๋๊น?
Db.prototype.authenticate ๋ฉ์๋๋ MongoDB 3.6์ด admin db์ ์ฌ์ฉ์์ ๋ํ ์ธ์ฆ ๋ง ํ์ฉํ๊ณ ์์ผ์์ ๋ ์ด์ ์ฌ๋ฌ ์๊ฒฉ ์ฆ๋ช ์ ํ์ฉํ์ง ์์ผ๋ฏ๋ก ๋ค์ ๋ฉ์ด์ ๋ฆด๋ฆฌ์ค 3.x์์ ๋ ์ด์ ์ฌ์ฉํ ์ ์์ต๋๋ค. MongoClient.connect๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ฆ ์๊ฒฉ ์ฆ๋ช ์ผ๋ก ์ธ์ฆํ์ญ์์ค.
๋ชฝ๊ตฌ์ค๋ก mlab ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ๋ ค๊ณ ํฉ๋๋ค. ์ด์ ๋ฒ์ ์ ๋ชฝ๊ตฌ์ค๋ฅผ ์ค์นํด ๋ณด์์ต๋๋ค.
MEAN ์ฑ์์ npm start๋ฅผ ์คํํ ๋์ด ์ค๋ฅ๊ฐ ๊ณ์ ๋ฐ์ํฉ๋๋ค. ์ฑ์ ์์ํ ์ ์์ต๋๋ค. ๋๊ตฌ๋ ์ง ๋์ธ ์ ์์ต๋๊น?
์ด๋ฏธ ๋ต๋ณ ๋ ์ง๋ฌธ์ ๋ณด๋ด๊ณ ์ด ๋ฌธ์ ์ ๋ํ ์ ๋ฐ์ดํธ๋ฅผ ๊ตฌ๋ ํ ๋ชจ๋ ์ฌ๋์๊ฒ ์ฐ์ฐํ ์ด๋ฉ์ผ์ ๋ณด๋ด๊ธฐ ์ ์ ๋ฌธ์ ์ ์ฒด๋ฅผ ์ฝ์ผ์ญ์์ค.
๋๋ ๋น์ ์ด ๊ทธ๊ฒ์ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง ๊ถ๊ธํฉ๋๋ค @JonathanBristow
๋๋ v read these comments in this page but I still can
์ด ๋ฌธ์ ๋ฅผ ๊ณ ์น์ง ์๋๋ค !! ๋ด ์ฝ๋๋ฅผ ํ์ธํด ์ฃผ ์๊ฒ ์ด์?
์ด๊ฒ์ ๋ด ์ฐ๊ฒฐ ์ฝ๋์ ๋๋ค.
mongoose.Promise = require ( 'bluebird');
mongoose.connect ( "mongodb : //: @ cluster0-shard-00-00-xlnqd.mongodb. net : 27017 , cluster0-shard-00-01-xlnqd.mongodb. net : 27017 , cluster0-shard-00-02-xlnqd.mongodb. ๊ทธ๋ฌผ : 27017 / ? ssl = true & replicaSet = Cluster0-shard-0 & authSource = admin ", function (err) {
if (err) {
console.log (err);
} else {
console.log ( '๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฑ๊ณต์ ์ผ๋ก ์ฐ๊ฒฐ๋์์ต๋๋ค.');
}
});
์ด ๊ฒฝ๊ณ ๋ฅผ ๋ฐ์์ต๋๋ค.
"Db.prototype.authenticate ๋ฉ์๋๋ ๋ค์ ๋ฒ์ ์์ ๋ ์ด์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
MongoDB 3.6๊ณผ ๊ฐ์ ์ฃผ์ ๋ฆด๋ฆฌ์ค 3.x๋ ์ฌ์ฉ์์ ๋ํ ์ธ์ฆ ๋ง ํ์ฉํฉ๋๋ค.
admin db์ด๋ฉฐ ๋ ์ด์ ์์ผ์์ ์ฌ๋ฌ ์๊ฒฉ ์ฆ๋ช
์ ํ์ฉํ์ง ์์ต๋๋ค. ๋ถ๋
MongoClient.connect๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ฆ ์๊ฒฉ ์ฆ๋ช
์ผ๋ก ์ธ์ฆํฉ๋๋ค. "
@thinkdiff ... warning
์ด ์๋๋ผ error
์
๋๋ค. ๊ฒฝ๊ณ ๋ ์ผ๋ฐ์ ์ผ๋ก ์ฝ๋๋ฅผ ์์์ํค์ง ์์ ๊ฒ์์ ๋ํ๋
๋๋ค. ์์ด๋ก : ๊ตฌ์กฐ์ ์ผ๋ก ์๋ชป๋ ๊ฒ์ ์์ต๋๋ค. ๊ฑฑ์ ํ์ง ๋ง์ธ์.
์คํธ์ด ๊ณ์๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ผ์์ ์ผ๋ก์ด ๋ฌธ์ ๋ฅผ ์ ๊ทธ๊ณ ์์ต๋๋ค. 4.11์์์ด ๊ฒฝ๊ณ ๋ฅผ ์ฐจ๋จํ๋ ์ต์ ์ด ์์ผ๋ฉฐ, ์์์น ๋ชปํ ์ง์ฐ์ ์ ์ธํ๊ณ ์ด๋ฒ ์ฃผ์ ๋ฆด๋ฆฌ์ค ๋ ์์ ์ ๋๋ค. 4.10.x์์๋์ด ๊ฒฝ๊ณ ๋ฅผ ์ฐํ ํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์ํด ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋จ์ง
+1
๋ํด ์ธ๊ธํ์ง ๋ง์๊ธฐ ๋ฐ๋๋๋ค. ์ฐ๋ฆฌ๋ ์ด๊ฒ์ด ๋ธ๋ ์ดํน ๋ฒ๊ทธ๊ฐ ์๋๋ผ๊ณ ๋ช ์ํ๊ณ ๋ฌธ์ ๋ฅผconfirmed-bug
๋ก ํ์ํ๊ณ mongoose 4.11๊น์ง ๊ด์ฐฎ์ต๋๋ค. ์ด๊ฒ์ ๋จ์ํ ๊ฒฝ๊ณ ๋ฉ์์ง์ด๋ฉฐ, ์์๊ฑฐ๋ฅผ ์ํ ๊ฒฝ์ฐ mongodb ๋ก๊ฑฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉ์์ง๋ฅผ ์จ๊ธธ ์์๋ ๋ฐฉ๋ฒ๋ ๊ฒ์ํ์ต๋๋ค. ๋น์ฐํ ๋ง์ ์๋์ง๋ง, +1 ๋ฉ์์ง๋ ๋จ์ํ๋ฐ์ ํธ์งํจ์ผ๋ก ๊ฐ๋ ์ฐจ์ ์ค๋ ๋๋ฅผ ์ฝ์ ๋ ํนํ ์ฑ๊ฐ ์๊ฒ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์์ ๋ณด์ฌ์ค๋๋ค.