C ๋๋ผ์ด๋ฒ ์์ํ๊ธฐ
์ด ํ์ด์ง์ ๋ด์ฉ
- ๊ฐ์
- ๋ค์ด๋ก๋ ๋ฐ ์ค์น
- C ๋๋ผ์ด๋ฒ ๋ค์ด๋ก๋
- MongoDB Deployment ์์ฑ
- Atlas์ ๋ฌด๋ฃ MongoDB ๋ฐฐํฌ์๋ฒ ์์ฑ
- ์๊ฒฉ ์ฆ๋ช ์ ์ฅ
- ์ฐ๊ฒฐ ๋ฌธ์์ด ๋ง๋ค๊ธฐ
- MongoDB Atlas ์ฐ๊ฒฐ ๋ฌธ์์ด ์ฐพ๊ธฐ
- ์ฐ๊ฒฐ ๋ฌธ์์ด ๋ณต์ฌ
- ์๋ฆฌ ํ์์ ์ ๋ฐ์ดํธ
- ์ํ ์ฟผ๋ฆฌ ์คํ
- ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ ๋ง๋ค๊ธฐ
- C ๋๋ผ์ด๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ๋ง๋ค๊ธฐ
- ์ฐ๊ฒฐ ๋ฌธ์์ด ํ ๋น
- C ์ ํ๋ฆฌ์ผ์ด์ ์คํ
- ๋ค์ ๋จ๊ณ
๊ฐ์
MongoDB C ๋๋ผ์ด๋ฒ ๋ MongoDB ์ ์ฐ๊ฒฐํ๊ณ ๋ฐฐํฌ์๋ฒ ์ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ์ํธ ์์ฉ ์ฌ์ฉํ ์ ์๋ C ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ์ด ๊ฐ์ด๋ C ์ด์ ์ ์ฌ์ฉํ์ฌ MongoDB Atlas ์์ ํธ์คํ ๋๋ MongoDB cluster ์ ์ฐ๊ฒฐํ๊ณ ํด๋ฌ์คํฐ ์ ๋ฐ์ดํฐ๋ฅผ ์ฟผ๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
ํ
MongoDB Atlas๋ ๊ด๋ฆฌํ ํด๋ผ์ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋น์ค๋ก, MongoDB deployment๋ฅผ ํธ์คํ ํฉ๋๋ค. ์ด ๊ฐ์ด๋์ ๋จ๊ณ์ ๋ฐ๋ผ ์์ฒด ๋ฌด๋ฃ(์ ์ฉ์นด๋ ํ์ ์์) MongoDB Atlas ๋ฐฐํฌ์๋ฒ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
์ด ๊ฐ์ด๋ ์ ๋ฐ๋ผ ์ํ C ์ ํ๋ฆฌ์ผ์ด์ MongoDB Atlas ๋ฐฐํฌ์๋ฒ ์๋ฒ์ ์ฐ๊ฒฐํฉ๋๋ค. ๋ค๋ฅธ ์ด์ ์ ๋๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ฌ์ฉํ์ฌ MongoDB ์ ์ฐ๊ฒฐํ๋ ค๋ ๊ฒฝ์ฐ ๊ณต์ ๋๋ผ์ด๋ฒ ๋ชฉ๋ก์ ์ฐธ์กฐํ์ธ์.
๋ค์ด๋ก๋ ๋ฐ ์ค์น
C ๋๋ผ์ด๋ฒ ๋ค์ด๋ก๋
C ์ด์ ์ ๋ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ libbson
๋ฐ libmongoc
๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ด ๊ฐ์ด๋ ์์๋ libbson
์ ํจ๊ป ๋ฒ๋ค๋ก ์ ๊ณต๋๋ libmongoc
๋ฅผ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ํ์ต ๋ด
๋๋ค.
ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์์ค์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ์ฌ C ์ด์ ์ ์ค์นํ ์ ์์ต๋๋ค. ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์ฌ์ฉํ์ฌ ์ค์นํ ๋ Linux ๋ฐฐํฌํ์ ์๋ก ๋ค๋ฅธ ๋ฒ์ ์ ์ด์ ์ ์ค์นํฉ๋๋ค. ๋ฐ๋ผ์ ์ด์ ์ ์ค์นํ๊ธฐ ์ ์ ๋ฐฐํฌ์ ํฌํจ๋ ๋ฒ์ ์ ํ์ธํด์ผ ํฉ๋๋ค.
RHEL( RedHat Enterprise Linux ) ๋ฐฐํฌํ์ ๊ฒฝ์ฐ ์ ธ ์์ ๋ค์ ๋ช ๋ น์ ์คํ ํ์ฌ ๋ฒ์ ์ ํ์ธํ ์ ์์ต๋๋ค.
sudo dnf info mongo-c-driver-devel
Debian ๊ธฐ๋ฐ ๋ฐฐํฌ์์๋ ์ ธ ์์ ๋ค์ ๋ช ๋ น์ ์คํ ํ์ฌ ๋ฒ์ ์ ํ์ธํ ์ ์์ต๋๋ค.
apt-cache policy libmongoc-dev
์ฌ์ฉ ๊ฐ๋ฅํ ์ด์ ์ ๋ฒ์ ์ด ์ํ๋ ๋ฒ์ ์ด ์๋ ๊ฒฝ์ฐ ์์ค์์ ์ด์ ์ ์ค์นํ ์ ์์ต๋๋ค. ์์ค์์ ์ด์ ์ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ํ์ต ์์ค์์ C ๋๋ผ์ด๋ฒ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋น๋ํ๊ธฐ ๊ฐ์ด๋ ๋ฅผ ์ฐธ์กฐํ์ธ์.
ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์ฌ์ฉํ์ฌ ์ด์ ์ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ํ์ต ์ด์ ์ฒด์ ์ ํด๋นํ๋ ํญ ์ ํํฉ๋๋ค.
RedHat Enterprise Linux ๋ฐฐํฌํ
RHEL( RedHat Enterprise Linux ) ๋ฐฐํฌํ, ๋ฒ์ 7 ์ด์ ๋๋ ๋ค์๊ณผ ๊ฐ์ RHEL ๊ธฐ๋ฐ ๋ฐฐํฌํ์ ์ด์ ์ ์ค์นํ ์ ์์ต๋๋ค.
Fedora๋ฅผ ์ ์ธํ RHEL ๋ฐฐํฌ์ ์ด์ ์ ์ค์นํ๊ธฐ ์ ์ ๋จผ์ EPEL(Enterprise Linux ์ฉ ์ถ๊ฐ ํจํค์ง) ๋ฆฌํฌ์งํ ๋ฆฌ ํ์ฑํ ํด์ผ ํฉ๋๋ค. ๋ค์ ์์ ์ ๊ฐ์ด epel-release
ํจํค์ง ์ค์นํ์ฌ EPEL ๋ฆฌํฌ์งํ ๋ฆฌ ํ์ฑํ ํ ์ ์์ต๋๋ค.
yum install epel-release
๊ทธ๋ฐ ๋ค์ yum
๋ฅผ ์ฌ์ฉํ์ฌ C ์ด์ ์ ์ค์นํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ์
ธ ์์ ๋ค์ ๋ช
๋ น์ ์คํ .
yum install mongo-c-driver-devel
์ฐธ๊ณ
๊ฐ๋ฐ์ ํจํค์ง
์์ ์ฝ๋ ์์ C ์ด์ ์ ์ฌ์ฉํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น๋ ๋ฐ ํ์ํ ๊ฐ๋ฐ์ ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค. ๊ฐ๋ฐ ํ์ผ ์์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ง ์ค์นํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ ์คํ .
yum install mongo-c-driver
๋ฒ์ 8 ์ด์์ธ RHEL ๋ฐฐํฌ์ ์ค์นํ๋ ๊ฒฝ์ฐ yum
๋์ dnf
๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์ฝ๋ ์์ ๋ฅผ ์คํ ๊ฒ์ด ์ข์ต๋๋ค.
Fedora
Fedora ๋๋ ๋ฒ์ ์ด์์ ์ํฐํ๋ผ์ด์ฆ Linux ๋ฐฐํฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์์ 8 ์์ ์ ํ์๋ ๊ฒ๊ณผ ๋์ผํ ๋ช
๋ น์ ์ฌ์ฉํ๊ณ yum
๋ฅผ ๋ก ๋ฐ๊ฟ ์ด์ ์ ์ค์นํ ์ dnf
์์ต๋๋ค.
๋ค์ ์์ Fedora ๋ฐฐํฌ์ C ์ด์ ์ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
dnf install mongo-c-driver-devel
Debian ๊ธฐ๋ฐ ๋ฐฐํฌํ
Ubuntu ๋ฐ Ubuntu ํ์ ์ ํ์ ํฌํจํ Debian ๊ธฐ๋ฐ Linux ๋ฐฐํฌ์์ ์ด์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๊ณ ๊ธ ํจํค์ง ๋๊ตฌ(APT)๋ฅผ ํตํด ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ ธ ์์ ๋ค์ ๋ช ๋ น์ ์คํ ํ์ฌ APT๋ก ์ด์ ์ ์ค์นํ ์ ์์ต๋๋ค.
apt install libmongoc-dev
์์ ์ฝ๋ ์์ C ์ด์ ์ ์ฌ์ฉํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น๋ ๋ฐ ํ์ํ ๊ฐ๋ฐ์ ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค. ๊ฐ๋ฐ ํ์ผ ์์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ง ์ค์นํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ ์คํ .
apt install libmongoc-1.0-0
Windows ํ๊ฒฝ์ ๊ฒฝ์ฐ ๋ก์ปฌ ๋๊ตฌ ์ฒด์ธ๊ณผ์ ์ต๋ ํธํ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ์์ค์์ C ์ด์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋น๋ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. vcpkg์๊ฐ์ ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจํค์ง ๊ด๋ฆฌ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์ค์์ ๋น๋๋ฅผ ์๋ํํ ์ ์์ต๋๋ค.
ํ
vcpkg๋ฅผ ์์ํ๋ ๋ฐฉ๋ฒ์ ํ์ต Microsoft ์ค๋ช ์์์ vcpkg ์์ํ๊ธฐ ๊ฐ์ด๋ ์ฐธ์กฐํ์ธ์.
vcpkg ๋งค๋ํ์คํธ ๋ชจ๋ ์์ ๋ค์ ์์ ์ ๊ฐ์ด ์ด์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ๋ก์ ํธ์ vcpkg.json
๋งค๋ํ์คํธ ํ์ผ ์ ์ถ๊ฐํฉ๋๋ค.
{ // ... "dependencies": [ // ... "mongo-c-driver" ] }
vcpkg ํตํฉ์ ์ฌ์ฉํ์ฌ CMake ํ๋ก์ ํธ ๋น๋ vcpkg.json
๋งค๋ํ์คํธ ํ์ผ ์๋ ๊ฒฝ์ฐ vcpkg๋ ๊ตฌ์ฑ์ ์งํํ๊ธฐ ์ ์ ํ๋ก์ ํธ์ ์ข
์์ฑ์ ์๋์ผ๋ก ์ค์นํฉ๋๋ค.
vcpkg ํด๋์ ๋ชจ๋ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ ธ ์์ ๋ค์ ๋ช ๋ น์ ์คํ ํ์ฌ ์ด์ ์ ์ค์นํ ์ ์์ต๋๋ค.
vcpkg install mongo-c-driver
์ด์ ์ ์ค์นํ๋ฉด ํ์ค CMake ๊ตฌ์ฑ ํ์ผ ๊ณผ ์์ฑ๋ IMPORTED
๋์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ค์ ์์ ์ ๊ฐ์ด CMakeLists.txt
ํ์ผ ๋ง๋ค ์ ์์ต๋๋ค.
find_package(mongoc-1.0 CONFIG REQUIRED) target_link_libraries(my-application PRIVATE $<IF:$<TARGET_EXISTS:mongo::mongoc_shared>,mongo::mongoc_shared,mongo::mongoc_static>)
์ฐธ๊ณ
์์ ์์ ์์ {0}lt;IF:{0}lt;TARGET_EXISTS...>:...>
์์ฑ๊ธฐ ํํ์ ์ฌ์ฉํ์ฌ find_package()
๋ช
๋ น์์ ์ฌ์ฉํ ์ ์๋ ํ์์ ๋ฐ๋ผ libmongoc
์ ๋งํฌ ์ ํ์ ์ ํํ ์ ์์ต๋๋ค. ๋ ๋์ ๋ฐ
libmongoc
์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ํ์ ๋ชจ๋ ์ฌ์ฉํ์ฌ ๋น๋๋ฅผ ์ง์ํ์ง๋ง vcpkg๋ ํ ๋ฒ์ ํ๋์ ์ ํ๋ง ์ค์นํฉ๋๋ค.
vcpkg ํตํฉ์ ์ฌ์ฉํ์ฌ CMake ํ๋ก์ ํธ ๊ตฌ์ฑํ๋ ค๋ฉด ์ ธ ์์ ๋ค์ ๋ช ๋ น์ ์คํ ํ์ฌ ๊ตฌ์ฑ ๋ช ๋ น์์ CMake ๋๊ตฌ ์ฒด์ธ ํ์ผ ์ค์ ํ๋ค .
cmake -S . -B _build -D CMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake
MacOS์์ Homebrew ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์ฌ์ฉํ์ฌ C ์ด์ ์ ๋ค์ด๋ก๋ ํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ์ ธ ์์ ๋ค์ ๋ช ๋ น์ ์คํ .
brew install mongo-c-driver
์ด ๋จ๊ณ๋ฅผ ์๋ฃํ๋ฉด ์ปดํจํฐ์ C ์ด์ ์ ์ค์น๋ฉ๋๋ค.
MongoDB Deployment ์์ฑ
MongoDB Atlas์ ํ๋ฆฌ ํฐ์ด MongoDB ๋ฐฐํฌ๋ฅผ ์์ฑํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. MongoDB Atlas๋ ํด๋ผ์ฐ๋์์ MongoDB database๋ฅผ ํธ์คํ ํ๊ณ ๊ด๋ฆฌํฉ๋๋ค.
Atlas์ ๋ฌด๋ฃ MongoDB ๋ฐฐํฌ์๋ฒ ์์ฑ
Atlas ์์ํ๊ธฐ ๊ฐ์ด๋๋ฅผ ์๋ฃํ์ฌ ์ Atlas ๊ณ์ ์ ์ค์ ํ๊ณ ์๋ก์ด ํ๋ฆฌ ๊ณ์ธต MongoDB ๋ฐฐํฌ์๋ฒ์ ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ์ธ์.
์ด ๋จ๊ณ๋ฅผ ์๋ฃํ๋ฉด Atlas์ ์๋ก์ด ํ๋ฆฌ ํฐ์ด MongoDB ๋ฐฐํฌ์๋ฒ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์ ์๊ฒฉ ์ฆ๋ช ๋ฐ ์ํ ๋ฐ์ดํฐ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ก๋๋ฉ๋๋ค.
์ฐ๊ฒฐ ๋ฌธ์์ด ๋ง๋ค๊ธฐ
์ฐ๊ฒฐ ๋ฌธ์์ด์ด๋ผ๊ณ ๋ ํ๋ ์ฐ๊ฒฐ URI์ ์ ๊ณตํ์ฌ MongoDB ๋ฐฐํฌ์๋ฒ์ ์ฐ๊ฒฐํ ์ ์์ผ๋ฉฐ, ์ด ์ฐ๊ฒฐ ๋ฌธ์์ด์ ๋๋ผ์ด๋ฒ์ MongoDB ๋ฐฐํฌ์๋ฒ๋ก ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ๊ณผ ์ฐ๊ฒฐ๋ ๋์ ๋์ํ๋ ๋ฐฉ๋ฒ์ ์ง์ํฉ๋๋ค.
์ฐ๊ฒฐ ๋ฌธ์์ด์๋ ๋ฐฐํฌ์๋ฒ์ ํธ์คํธ ์ด๋ฆ ๋๋ IP ์ฃผ์์ ํฌํธ, ์ธ์ฆ ๋ฉ์ปค๋์ฆ, ํด๋น๋๋ ๊ฒฝ์ฐ ์ฌ์ฉ์ ์๊ฒฉ ์ฆ๋ช , ์ฐ๊ฒฐ ์ต์ ๋ฑ์ด ํฌํจ๋ฉ๋๋ค.
Atlas ์์ ํธ์คํ ๋์ง ์๋ ์ธ์คํด์ค ๋๋ ๋ฐฐํฌ์๋ฒ ์ ์ฐ๊ฒฐํ๋ ค๋ฉด ์ฐ๊ฒฐ ๋์ ์ ํ ๊ฐ์ด๋ ๋ฅผ ์ฐธ์กฐํ์ธ์.
MongoDB Atlas ์ฐ๊ฒฐ ๋ฌธ์์ด ์ฐพ๊ธฐ
์ด์ ๋จ๊ณ์์ ๋ง๋ ๋ฐฐํฌ์๋ฒ์ ๋ํ ์ฐ๊ฒฐ ๋ฌธ์์ด ์กฐํ ํ๋ ค๋ฉด Atlas ๊ณ์ ์ ๋ก๊ทธ์ธ Database ์น์ ์ผ๋ก ์ด๋ํ ๋ค์ ์ ๋ฐฐํฌ์๋ฒ์ ๋ํ Connect ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.

Connect your application ์น์ ์ผ๋ก ์ด๋ํ์ฌ Driver ์ ํ ๋ฉ๋ด์์ "C"๋ฅผ ์ ํํ๊ณ Version ์ ํ ๋ฉ๋ด์์ ์ค์นํ ๋ฒ์ ๊ณผ ๊ฐ์ฅ ์ผ์นํ๋ ๋ฒ์ ์ ์ ํํฉ๋๋ค.
Password (SCRAM) ์ธ์ฆ ๋ฉ์ปค๋์ฆ์ ์ ํํฉ๋๋ค.
์ฐ๊ฒฐ string ๋ง ๋ณด๋ ค๋ฉด Include full driver code example ์ต์ ์ ์ ํ ์ทจ์ํฉ๋๋ค.
์๋ฆฌ ํ์์ ์ ๋ฐ์ดํธ
์ด ์ฐ๊ฒฐ ๋ฌธ์์ด์ ์ํ๋ ํ
์คํธ ํธ์ง๊ธฐ์ ํ์ผ์ ๋ถ์ฌ๋ฃ๊ณ <db_username>
๋ฐ <db_password>
์๋ฆฌ ํ์์๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์์ ์ฌ์ฉ์ ์ด๋ฆ ๋ฐ ๋น๋ฐ๋ฒํธ๋ก ๋ฐ๊ฟ๋๋ค.
๋ค์ ๋จ๊ณ์์ ์ฌ์ฉํ ์ ์๋๋ก ์ด ํ์ผ์ ์์ ํ ์์น์ ์ ์ฅํฉ๋๋ค.
์ด ๋จ๊ณ๋ฅผ ์๋ฃํ๋ฉด ํด๋ฌ์คํฐ ์ ํด๋นํ๋ ์ฐ๊ฒฐ string Atlas ์ด ์์ฑ๋ฉ๋๋ค.
์ํ ์ฟผ๋ฆฌ ์คํ
MongoDB deployment ์ ์ฐ๊ฒฐํ๊ณ sample_mflix
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ movies
์ปฌ๋ ์
์์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋ ์ ํ๋ฆฌ์ผ์ด์
๋ง๋ค ์ ์์ต๋๋ค.
sample_mflix
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํด ์์ธํ ํ์ตํ๋ ค๋ฉด Atlas ์ค๋ช
์์์ ์ํ Mflix ๋ฐ์ดํฐ ์ธํธ ๋ฅผ ์ฐธ์กฐํ์ธ์.
ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ ๋ง๋ค๊ธฐ
์
ธ ์์ ์ ํ๋ฆฌ์ผ์ด์
๋ง๋ค๋ ค๋ ์์น๋ก ์ด๋ํ ํ ๋ค์ ๋ช
๋ น์ ์คํ ์ด ํ๋ก์ ํธ ์ ๋ํด c-quickstart
๋๋ ํ ๋ฆฌ ๋ง๋ญ๋๋ค.
mkdir c-quickstart
์ด์ ์ฒด์ ์ ํด๋นํ๋ ํญ ์ ์ ํํ๊ณ ๋ค์ ๋ช
๋ น์ ์คํ ํ์ฌ c-quickstart
๋๋ ํ ๋ฆฌ ์ quickstart.c
์ ํ๋ฆฌ์ผ์ด์
ํ์ผ ์ ๋ง๋ญ๋๋ค.
cd c-quickstart touch quickstart.c
cd c-quickstart type nul > quickstart.c
C ๋๋ผ์ด๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ๋ง๋ค๊ธฐ
๋ค์ ์ฝ๋๋ฅผ ๋ณต์ฌํ์ฌ sample_mflix
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ movies
์ปฌ๋ ์
์ ์ฟผ๋ฆฌํ๋ quickstart.c
ํ์ผ ์ ๋ถ์ฌ๋ฃ์ต๋๋ค.
int main (void) { const bson_t *doc; mongoc_init (); mongoc_client_t *client = mongoc_client_new ("<connection string>"); mongoc_collection_t *collection = mongoc_client_get_collection (client, "sample_mflix", "movies"); // Specify the query filter bson_t *query = BCON_NEW ("title", "The Shawshank Redemption"); mongoc_cursor_t *results = mongoc_collection_find_with_opts (collection, query, NULL, NULL); // Print the results while (mongoc_cursor_next (results, &doc)) { char* str = bson_as_canonical_extended_json (doc, NULL); printf ("%s\n", str); bson_free (str); } bson_destroy (query); mongoc_cursor_destroy (results); mongoc_collection_destroy (collection); mongoc_client_destroy (client); mongoc_cleanup (); return EXIT_SUCCESS; }
์ฐ๊ฒฐ ๋ฌธ์์ด ํ ๋น
<connection string>
์๋ฆฌ ํ์์๋ฅผ ์ด ๊ฐ์ด๋์ ์ฐ๊ฒฐ ๋ฌธ์์ด ๋ง๋ค๊ธฐ ๋จ๊ณ์์ ๋ณต์ฌํ ์ฐ๊ฒฐ ๋ฌธ์์ด๋ก ๋ฐ๊ฟ๋๋ค.
C ์ ํ๋ฆฌ์ผ์ด์ ์คํ
shell ์์ ๋ค์ ๋ช ๋ น์ ์คํ ํ์ฌ ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปดํ์ผํ๊ณ ์คํ ํฉ๋๋ค.
gcc -o quickstartc quickstart.c $(pkg-config --libs --cflags libmongoc-1.0) ./quickstartc
๋ช ๋ น์ค ์ถ๋ ฅ์๋ ๊ฒ์๋ ์ํ ๋ฌธ์์ ๋ํ ์ธ๋ถ ์ ๋ณด๊ฐ ํฌํจ๋ฉ๋๋ค.
{ "_id" : { "$oid" : "..." }, "plot" : "Two imprisoned men bond over a number of years, finding solace and eventual redemption through acts of common decency.", ... "title" : "The Shawshank Redemption", ...
์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฑฐ๋ ์ถ๋ ฅ์ด ํ์๋์ง ์๋ ๊ฒฝ์ฐ quickstart.c
ํ์ผ์ ์ ์ ํ ์ฐ๊ฒฐ ๋ฌธ์์ด์ ์ง์ ํ๋์ง, ๊ทธ๋ฆฌ๊ณ ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๋์ง ํ์ธํฉ๋๋ค.
์ด ๋จ๊ณ๋ฅผ ์๋ฃํ ํ์๋ ๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ MongoDB deployment์ ์ฐ๊ฒฐํ๊ณ , ์ํ ๋ฐ์ดํฐ์ ๋ํด ์ฟผ๋ฆฌ๋ฅผ ์คํํ๊ณ , ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ๋ฑ ์ ์์ ์ผ๋ก ์๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๊ฒ ๋ ๊ฒ์ ๋๋ค.
๋ค์ ๋จ๊ณ
๋น ๋ฅธ ์์ ํํ ๋ฆฌ์ผ์ ์๋ฃํ์ ๊ฒ์ ์ถํ๋๋ฆฝ๋๋ค!
์ฐธ๊ณ
์ด ํํ ๋ฆฌ์ผ์์ ๋ฌธ์ ๊ฐ ์คํ ํ๋ฉด MongoDB Community ํฌ๋ผ ์์ ๋์์ ์์ฒญํ๊ฑฐ๋ ์ด ํ์ด์ง์ ์ค๋ฅธ์ชฝ ๋๋ ์ค๋ฅธ์ชฝ ํ๋จ์ ์๋ Rate this page ํญ ์ฌ์ฉํ์ฌ ํผ๋๋ฐฑ ์ ์ถ .
์ด ํํ ๋ฆฌ์ผ์์๋ MongoDB Atlas ์์ ํธ์คํ ๋๋ MongoDB deployment ์ ์ฐ๊ฒฐํ๊ณ ์ฟผ๋ฆฌ ์ ์ผ์นํ๋ ๋ฌธ์ ๊ฒ์ํ๋ C ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค์์ต๋๋ค.
๋ค์ ๋ฆฌ์์ค์์ C ์ด์ ์ ์ ๋ํด ์์ธํ ๋ณด๊ธฐ .
๋ฐ์ดํฐ ์ฝ๊ธฐ ์น์ ์์ ์ฝ๊ธฐ ์์ ์ ์ํํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.
MongoDB ์ ๋ฐ์ดํฐ ์ฐ๊ธฐ ์น์ ์์ ์ฐ๊ธฐ (write) ์์ ์ ์ํํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.