์ฐ๊ฒฐ ๋ฌธ์ ํด๊ฒฐ
์ด ํ์ด์ง์ ๋ด์ฉ
- ์ฐ๊ฒฐ ์ค๋ฅ
- ์ฐ๊ฒฐ ๋ฌธ์์ด ํ์ธ
- ๋ฐฉํ๋ฒฝ ๊ตฌ์ฑ
- ์ธ์ฆ ์ค๋ฅ
- ์ฐ๊ฒฐ ๋ฌธ์์ด ํ์ธ
- MongoClientSettings ์์ฑ ํ์ธ
- ์ฌ์ฉ์๊ฐ ์ธ์ฆ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋์ง ํ์ธํ๊ธฐ
- X.509 ์๊ฒฉ ์ฆ๋ช ์ค๋ฅ
- ๋ฉ์์ง ์ ์ก ์ค๋ฅ
- ์ฌ์ฉ์ ๊ถํ ํ์ธ
- ๋ฐฉํ๋ฒฝ ๊ตฌ์ฑ
- ์ฐ๊ฒฐ ํ์ ํ์ธ
- ์ด๋ ค ์๋ ์ฐ๊ฒฐ์ด ๋๋ฌด ๋ง์
- ์ฐ๊ฒฐ ํ์ ํ์ธ
- ์๊ฐ ์ด๊ณผ ์ค๋ฅ
- ์ฐ๊ฒฐ ์ ํ ์๊ฐ ์ค์
- ์ฐ๊ฒฐ ํ์ ํ์ธ
์ด ํ์ด์ง์์๋ MongoDB .NET/C# ๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ MongoDB ๋ฐฐํฌ์ ์ฐ๊ฒฐํ ๋ ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ์ ๋ํ ์ ์ฌ์ ์ธ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
์ฐธ๊ณ
์ด ํ์ด์ง์์๋ ์ฐ๊ฒฐ ๋ฌธ์ ๋ง ๋ค๋ฃน๋๋ค. MongoDB ๋๋ ๋๋ผ์ด๋ฒ์ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ ๋ค์ ๋ฆฌ์์ค๋ฅผ ๋ฐฉ๋ฌธํ์ธ์.
.NET/ C# ๋๋ผ์ด๋ฒ ์ ๋ํ ์์ฃผ ๋ฌป๋ ์ง๋ฌธ( FAQ )
๋ฒ๊ทธ ๋ณด๊ณ , ๋๋ผ์ด๋ฒ ๊ธฐ์ฌ, ์ถ๊ฐ ๋ฆฌ์์ค ์ฐพ๊ธฐ์ ๋ํ ์ ๋ณด๊ฐ ํฌํจ๋ ๋ฌธ์ ๋ฐ ๋์๋ง ํ์ด์ง
์ง๋ฌธ, ํ ๋ก ๋๋ ์ผ๋ฐ์ ์ธ ๊ธฐ์ ์ง์์ ์ํ MongoDB Community ํฌ๋ผ
์ฐ๊ฒฐ ์ค๋ฅ
๋ค์ ์ค๋ฅ ๋ฉ์์ง๋ ๋๋ผ์ด๋ฒ๊ฐ ์ง์ ๋ ํธ์คํธ ์ด๋ฆ ๋๋ ํฌํธ์ ์๋ฒ์ ์ฐ๊ฒฐํ ์ ์์์ ๋ํ๋
๋๋ค. ์ฌ๋ฌ ์ํฉ์์ ์ด ์ค๋ฅ ๋ฉ์์ง๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด ์ํ ์ค๋ฅ ๋ฉ์์ง์์ ํธ์คํธ ์ด๋ฆ์ 127.0.0.1
(์ด)๊ณ ํฌํธ๋ 27017
์
๋๋ค.
Error: couldn't connect to server 127.0.0.1:27017
๋ค์ ์น์ ์์๋ ์ ์ฌ์ ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ทจํ ์ ์๋ ์กฐ์น์ ๋ํด ์ค๋ช ํฉ๋๋ค.
์ฐ๊ฒฐ ๋ฌธ์์ด ํ์ธ
์ฐ๊ฒฐ ๋ฌธ์์ด์ ํธ์คํธ ์ด๋ฆ๊ณผ ํฌํธ ๋ฒํธ๊ฐ ๋ชจ๋ ์ ํํ์ง ํ์ธํ์ธ์. MongoDB ์ธ์คํด์ค์ ๊ธฐ๋ณธ ํฌํธ ๊ฐ์ 27017
(์ด)์ง๋ง ๋ค๋ฅธ ํฌํธ์์ ํต์ ํ๋๋ก MongoDB๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
๋ฐฉํ๋ฒฝ ๊ตฌ์ฑ
MongoDB ๋ฐฐํฌ ์๋ฒ๊ฐ ์์ ํ๋ ํฌํธ๊ฐ ๋์ผํ ๋คํธ์ํฌ์ ๋ฐฉํ๋ฒฝ์ ์ํด ์ฐจ๋จ๋์ง ์์๋์ง ํ์ธํฉ๋๋ค. MongoDB๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํฌํธ 27017
์(๋ฅผ) ์ฌ์ฉํฉ๋๋ค. MongoDB์์ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ํฌํธ ๋ฐ ๋ณ๊ฒฝ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๊ธฐ๋ณธ MongoDB ํฌํธ๋ฅผ ์ฐธ์กฐํ์ธ์.
๊ฒฝ๊ณ
MongoDB deployment์์ ์ฌ์ฉ๋๋ ํฌํธ์ธ์ง ํ์คํ์ง ์์ ๊ฒฝ์ฐ ๋ฐฉํ๋ฒฝ์์ ํฌํธ๋ฅผ ์ด์ง ์๋๋ก ํฉ๋๋ค.
์ธ์ฆ ์ค๋ฅ
์ธ์ฆ ๋ฉ์ปค๋์ฆ์ด ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋์ง ์์ ๊ฒฝ์ฐ .NET/C# ๋๋ผ์ด๋ฒ๊ฐ MongoDB ์ธ์คํด์ค์ ์ฐ๊ฒฐํ์ง ๋ชปํ ์ ์์ต๋๋ค. ์ธ์ฆ์ SCRAM-SHA-256
๋๋ SCRAM-SHA-1
์ ์ฌ์ฉํ๋๋ฐ ๋๋ผ์ด๋ฒ๊ฐ ์ฐ๊ฒฐ์ ์คํจํ ๊ฒฝ์ฐ, ๋๋ผ์ด๋ฒ์์ ๋ค์ ๋ฉ์์ง ์ค ํ๋์ ์ ์ฌํ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ํ์ํ ์ ์์ต๋๋ค.
Command failed with error 18 (AuthenticationFailed): 'Authentication failed.' on server <hostname>:<port>.
Authentication failed","attr":{"mechanism":"SCRAM-SHA-256","principalName": "<db_username>","<auth database>":"<db_username>","client":"127.0.0.1:2012", "result":"UserNotFound: Could not find user}}
connection() error occurred during connection handshake: auth error: sasl conversation error: unable to authenticate using mechanism "SCRAM-SHA-256": (AuthenticationFailed) Authentication failed.
๋ค์ ์น์ ์์๋ ์ ์ฌ์ ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ทจํ ์ ์๋ ์กฐ์น์ ๋ํด ์ค๋ช ํฉ๋๋ค.
์ฐ๊ฒฐ ๋ฌธ์์ด ํ์ธ
์๋ชป๋ ์ฐ๊ฒฐ ๋ฌธ์์ด์ ์ฐ๊ฒฐ ๋ฌธ์์ด๊ณผ SCRAM-SHA-256
๋๋ SCRAM-SHA-1
์ ์ฌ์ฉํ์ฌ MongoDB์ ์ฐ๊ฒฐํ๋ ค๊ณ ํ ๋ ์ธ์ฆ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์์ธ์
๋๋ค.
ํ
์ฐ๊ฒฐ ๋ฌธ์์ด์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฐ๊ฒฐ ๊ฐ์ด๋์ ์ฐ๊ฒฐ URI๋ฅผ ์ฐธ์กฐํ์ธ์.
์ฐ๊ฒฐ string ๋ฌธ์์ด ์ ์ฌ์ฉ์ ์ด๋ฆ ๊ณผ ๋น๋ฐ๋ฒํธ๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ ์ฌ๋ฐ๋ฅธ ํ์์ธ์ง ํ์ธํ์ธ์. ์ฌ์ฉ์ ์ด๋ฆ ๋๋ ๋น๋ฐ๋ฒํธ์ ๋ค์ ๋ฌธ์๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ ํผ์ผํธ๋ก ์ธ์ฝ๋ฉ๋์ด์ผ ํฉ๋๋ค:
: / ? # [ ] @
๋ค์ ์๋ '#MyP@assword?'๋ฅผ ํผ์ผํธ๋ก ์ธ์ฝ๋ฉํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
Console.WriteLine(System.Web.HttpUtility.UrlEncode("#MyPassword?"));
์ด๋ ๊ฒ ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค.
%23MyPassword%3F
MongoClientSettings ์์ฑ ํ์ธ
MongoDB ๋ฐฐํฌ์ ์ฐ๊ฒฐ์ ์๋ํ ๋ MongoClientSettings
๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. Credential
์์ฑ์ ์ฌ์ฉํ์ฌ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. ์๊ฒฉ ์ฆ๋ช
์ ๋ณด๊ฐ ์ ํํ์ง ์์ ๊ฒฝ์ฐ MongoDB ๋ฐฐํฌ์ ์ฐ๊ฒฐํ๋ ค๊ณ ํ ๋ ์ธ์ฆ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ฌ์ฉ์๊ฐ ์ธ์ฆ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋์ง ํ์ธํ๊ธฐ
SCRAM-SHA-256
๋๋ SCRAM-SHA-1
๊ณผ ํจ๊ป ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐ์ ์ฑ๊ณต์ ์ผ๋ก ์ธ์ฆํ๋ ค๋ฉด ์ฌ์ฉ์ ์ด๋ฆ์ ์ธ์ฆ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ํด์ผ ํฉ๋๋ค. ๊ธฐ๋ณธ ์ธ์ฆ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ admin
๋ฐ์ดํฐ๋ฒ ์ด์ค์
๋๋ค. ์ธ์ฆ์ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ฐ๊ฒฐ ๋ฌธ์์ด์ authSource
๋ฅผ ์ง์ ํฉ๋๋ค. ๋ค์ ์์์๋ users
๋ฅผ ์ธ์ฆ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ฌ์ฉํ๋๋ก ๋๋ผ์ด๋ฒ์ ์ง์ํฉ๋๋ค.
using MongoDB.Driver; // Connection URI const string connectionUri = "mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=users"; // Create a new client and connect to the server var client = new MongoClient(connectionUri);
MongoClientSettings
๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ณ ์ด๋ฅผ MongoClient
์์ฑ์์ ์ ๋ฌํ์ฌ ๊ตฌ์ฑ ์ค์ ์ ์ง์ ํ ์๋ ์์ต๋๋ค. Credential
์์ฑ์ ์ฌ์ฉํด์ ์ธ์ฆ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ง์ ์ ๋น๋กฏํ์ฌ ๋ก๊ทธ์ธ ์๊ฒฉ ์ฆ๋ช
์ ์ค์ ํ ์ ์์ต๋๋ค. MongoClientSettings
์ฌ์ฉ์ ๋ํ ์์ธํ ๋ด์ฉ๊ณผ ๋ช ๊ฐ์ง ์๋ฅผ ๋ณด๋ ค๋ฉด MongoClientSettings ์ฌ์ฉํ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋์ผํ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ก์ปฌ ์์คํ ์์ ํธ์คํ ๋๋ MongoDB ์ธ์คํด์ค์ ์ฐ๊ฒฐ์ ์๋ํ์ฌ ์ด๊ฒ์ด ๋ฌธ์ ์ธ์ง ํ์ธํ ์ ์์ต๋๋ค. ๋์ผํ ๋จธ์ ์ ๋ฐฐํฌ์๋ฒ์๋ ์ฐ๊ฒฐํ๋ ๋ฐ ๊ถํ ๋ถ์ฌ๊ฐ ํ์ํ์ง ์์ต๋๋ค.
X.509 ์๊ฒฉ ์ฆ๋ช ์ค๋ฅ
Windows ๋ฅผ ์ด์ ์ฒด์ ๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ .NET/ C# ๋๋ผ์ด๋ฒ ๊ฐ ๋ฉ๋ชจ๋ฆฌ์์ X.509
์ธ์ฆ ์ธ์ฆ์๋ฅผ ์ฐพ์ ์ ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด ์ค๋ฅ๋ ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ํ์ํฉ๋๋ค.
No credentials are available in the security package
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์
์ ๋ค์ ์ฝ๋๋ฅผ ์ถ๊ฐํ์ธ์. ์ด ์ฝ๋๋ ์ ํ๋ฆฌ์ผ์ด์
์ ํ์ํ X.509
์ธ์ฆ์๋ฅผ ์์ฑํ์ฌ ๋์คํฌ์ ์ ์ฅํฉ๋๋ค.
using (X509Certificate2 certWithKey = certOnly.CopyWithPrivateKey(key)) { return new X509Certificate2(certWithKey.Export(X509ContentType.Pkcs12)); }
๋ฉ์์ง ์ ์ก ์ค๋ฅ
์์ฒญ์ ํ ํ ๋๋ผ์ด๋ฒ๊ฐ ๋ช ๋ น์ ์ ์กํ์ง ๋ชปํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ ๋ฉ์์ง๊ฐ ํ์๋ ์ ์์ต๋๋ค.
com.mongodb.MongoSocketWriteException: Exception sending message
๋ค์ ์น์ ์์๋ ์ ์ฌ์ ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ทจํ ์ ์๋ ์กฐ์น์ ๋ํด ์ค๋ช ํฉ๋๋ค.
์ฌ์ฉ์ ๊ถํ ํ์ธ
์ฌ๋ฐ๋ฅธ ์ฌ์ฉ์๋ก MongoDB deployment์ ์ก์ธ์คํ๋์ง ํ์ธํ์ธ์. ์ค๋ฅ์ '๋ฉ์์ง'๋ผ๋ ์ฉ์ด๋ ๋๋ผ์ด๋ฒ๊ฐ ๋ณด๋ธ ๋ช ๋ น์ผ ์ ์์ต๋๋ค. ๋ช ๋ น์ ๋ณด๋ผ ๊ถํ์ด ์๋ ์ฌ์ฉ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋๋ผ์ด๋ฒ์์ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
๋ํ ์ฌ์ฉ์์๊ฒ ๋ณด๋ด๋ ๋ฉ์์ง์ ๋ํ ์ ์ ํ ๊ถํ์ด ์๋์ง ํ์ธํฉ๋๋ค. MongoDB๋ RBAC(์ญํ ๊ธฐ๋ฐ ์ก์ธ์ค ์ ์ด)๋ฅผ ์ฌ์ฉํ์ฌ MongoDB ๋ฐฐํฌ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ์ดํฉ๋๋ค. MongoDB์์ RBAC๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ญํ ๊ธฐ๋ฐ ์ก์ธ์ค ์ ์ด๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ฐฉํ๋ฒฝ ๊ตฌ์ฑ
๋ฐฉํ๋ฒฝ์๋ MongoDB ์ธ์คํด์ค์ ํต์ ํ ์ ์๋ ๊ฐ๋ฐฉํ ํฌํธ๊ฐ ์์ด์ผ ํฉ๋๋ค. ๋ฐฉํ๋ฒฝ ๊ตฌ์ฑ ์ ๋ณด๋ ์ฐ๊ฒฐ ์ค๋ฅ ์น์ ์ ๋ฐฉํ๋ฒฝ ๊ตฌ์ฑ์์ ์์ธํ ํ์ธํ์ธ์.
์ฐ๊ฒฐ ํ์ ํ์ธ
๊ฐ MongoClient
์ธ์คํด์ค๋ ์ฐ๊ฒฐ ํ์์ ์ต๋ ๋์ ๊ฐ๋ฐฉ ์ฐ๊ฒฐ ์๋ฅผ ์ง์ํฉ๋๋ค. ์ด ์ ํ์ ์ ์ํ๋ ๋งค๊ฐ๋ณ์ MaxConnectionPoolSize
์(๋ฅผ) ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ๊ฐ์ 100
์
๋๋ค. MaxConnectionPoolSize
๋งํผ ์ด๋ ค ์๋ ์ฐ๊ฒฐ์ด ์ด๋ฏธ ์ฌ๋ฌ ๊ฐ ์๋ ๊ฒฝ์ฐ ์๋ฒ๋ ์ฐ๊ฒฐ์ ์ฌ์ฉํ ์ ์์ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค. ์ด ๋๊ธฐ ์๊ฐ์ด MaxConnectionIdleTime
๊ฐ์ ์ด๊ณผํ๋ฉด ๋๋ผ์ด๋ฒ๋ ์ค๋ฅ๋ก ์๋ตํฉ๋๋ค.
์ฐ๊ฒฐ ํ๋ง์ ์๋ ๋ฐฉ์์ ๋ํ ์์ธํ ๋ด์ฉ์ FAQ์์ .NET/C# ๋๋ผ์ด๋ฒ์์ ์ฐ๊ฒฐ ํ๋ง์ ์ด๋ป๊ฒ ์๋ํ๋์?๋ฅผ ์ฐธ์กฐํ์ธ์.
์ด๋ ค ์๋ ์ฐ๊ฒฐ์ด ๋๋ฌด ๋ง์
๋๋ผ์ด๋ฒ๋ ์ฐ๊ฒฐ์ ์ด๋ ค๊ณ ์๋ํ์ง๋ง ์ต๋ ์ฐ๊ฒฐ ์์ ๋๋ฌํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์์ฑํฉ๋๋ค.
connection refused because too many open connections
๋ค์ ์น์ ์์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํฉ๋๋ค.
์ฐ๊ฒฐ ํ์ ํ์ธ
์ด๋ฆฐ ์ฐ๊ฒฐ์ ๋ ๋ง๋ค์ด์ผ ํ๋ ๊ฒฝ์ฐ MaxConnectionPoolSize
๋ฅผ ๋๋ฆฌ์ธ์. ์ฐ๊ฒฐ ์ ํ์ธ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ฉ์์ง ์ ์ก ์ค๋ฅ ์น์
์ ์ฐ๊ฒฐ ์ ํ์ธ์ ์ฐธ์กฐํ์ธ์.
์๊ฐ ์ด๊ณผ ์ค๋ฅ
๋คํธ์ํฌ๊ฐ ๋๋ผ์ด๋ฒ์ ์์ฒญ์ ์๋ฒ์ ์ถฉ๋ถํ ๋น ๋ฅด๊ฒ ์ ๋ฌํ์ง ๋ชปํ๋ฉด ํ์์์์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๋ค์ ๋ฉ์์ง์ ์ ์ฌํ ์ค๋ฅ ๋ฉ์์ง๊ฐ ๋ํ๋ ์ ์์ต๋๋ค.
timed out while checking out a connection from connection pool: context canceled
์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ๋ค์ ์กฐ์น๋ฅผ ์๋ํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ธ์.
์ฐ๊ฒฐ ์ ํ ์๊ฐ ์ค์
์ฐ๊ฒฐํ ์ ์๋ ๋ณต์ ๋ณธ ์ธํธ ๋
ธ๋์ ๋๋ฌํ๋ ๋ฐ ์๊ฐ์ด ๋๋ฌด ์ค๋ ๊ฑธ๋ ค ์ฐ๊ฒฐ์ ์ค์ ํ ์ ์๋ ๊ฒฝ์ฐ ๋๋ผ์ด๋ฒ๊ฐ ์ค๋จ๋ ์ ์์ต๋๋ค. connectTimeMS
์ค์ ์ ์ฌ์ฉํ์ฌ ๋๋ผ์ด๋ฒ๊ฐ ์ฐ๊ฒฐ์ ์๋ํ๋ ๋ฐ ์์๋๋ ์๊ฐ์ ์ ํํ ์ ์์ต๋๋ค. ์ด ์ค์ ์ ๋ํด ์์ธํ ์์๋ณด๋ ค๋ฉด MongoDB Server ๋งค๋ด์ผ์ ์๊ฐ ์ด๊ณผ ์ต์
์ ์ฐธ์กฐํ์ธ์.
connectTimeoutMS
์ค์ ์ด ํด๋น ์ธํธ์ ๋ฉค๋ฒ์ ๋ํ ์ต๋ ๋คํธ์ํฌ ์ง์ฐ ์๊ฐ๋ณด๋ค ๋ฎ์ง ์์์ง ํ์ธํด์ผ ํฉ๋๋ค. ์ธ์ปจ๋๋ฆฌ ๋ฉค๋ฒ ์ค ํ๋์ ์ง์ฐ ์๊ฐ์ด 10000๋ฐ๋ฆฌ์ด์ธ ๊ฒฝ์ฐ connectTimeoutMS
์(๋ฅผ) 9000์ผ๋ก ์ค์ ํ๋ฉด ๋๋ผ์ด๋ฒ๊ฐ ํด๋น ๊ตฌ์ฑ์์ ์ฐ๊ฒฐ๋์ง ์์ต๋๋ค.
์ด ์ต์
์ ์ฐ๊ฒฐ ๋ฌธ์์ด์์ ์ค์ ํ ์ ์์ต๋๋ค. ๋ค์ ์์์๋ connectTimeoutMS
๋ฅผ 10000๋ฐ๋ฆฌ์ด๋ก ์ค์ ํฉ๋๋ค.
using MongoDB.Driver; // Connection URI const string connectionUri = "mongodb://<db_username>:<db_password>@<hostname>:<port>/?connectTimeoutMS=10000"; // Create a new client and connect to the server var client = new MongoClient(connectionUri);
MongoClientSettings
๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ณ ์ด๋ฅผ MongoClient
์์ฑ์์ ์ ๋ฌํ์ฌ ๊ตฌ์ฑ ์ค์ ์ ์ง์ ํ ์๋ ์์ต๋๋ค. MongoClientSettings
์ฌ์ฉ์ ๋ํ ์์ธํ ๋ด์ฉ๊ณผ ๋ช ๊ฐ์ง ์๋ฅผ ๋ณด๋ ค๋ฉด MongoClientSettings ์ฌ์ฉํ๊ธฐ๋ฅผ ์ฐธ์กฐ ํ์ธ์.
์ฐ๊ฒฐ ํ์ ํ์ธ
์๋ฒ์ ๋ํ ์ฐ๊ฒฐ ์๊ฐ MaxConnectionPoolSize
๊ฐ๋ฅผ ์ด๊ณผํ ์ ์์ต๋๋ค. ์ฐ๊ฒฐ ์๋ฅผ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ค๋ฅ ๋ฉ์์ง ์ ์ก ์ค ์ฐ๊ฒฐ ์ ํ์ธ ์น์
์ ์ฐธ์กฐํ์ธ์.