{"id":655,"date":"2021-09-26T21:15:05","date_gmt":"2021-09-26T21:15:05","guid":{"rendered":"https:\/\/scrutineer.co.kr\/wordpress\/?p=655"},"modified":"2021-09-26T22:22:22","modified_gmt":"2021-09-26T22:22:22","slug":"chapter-1","status":"publish","type":"post","link":"https:\/\/scrutineer.co.kr\/wordpress\/index.php\/2021\/09\/26\/chapter-1\/","title":{"rendered":"\ubabd\uace0\ub514\ube44 \uc778 \uc561\uc158 1\uc7a5"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\" style=\"font-size:30px\">\ucd5c\uc2e0 \uc6f9\uc744 \uc704\ud55c \ub3c4\ud050\uba3c\ud2b8 \ub370\uc774\ud130\ubca0\uc774\uc2a4<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">MongoDB\ub294 \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uacfc \uc778\ud130\ud15f \uae30\ubc18\uc744 \uc704\ud574 \uc124\uacc4\ub41c \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uad00\ub9ac \uc2dc\uc2a4\ud15c\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">MongoDB\uc758 \ub3c4\ud050\uba3c\ud2b8 \ud615\uc2dd : JSON \ubc29\uc2dd\uc758 \ub370\uc774\ud130\uad6c\uc870 \uc2a4\ud0a4\ub9c8 (Hasp Map\uacfc \uac19\uc740.)<br>=> \uad00\uacc4\ud615\ubaa8\ub378\ucc98\ub7fc \uc11c\ub85c join\uc758 \ud544\uc694\uc131 \ubc0f \ud14c\uc774\ube14 \ucd94\uac00\uac00 \ud544\uc694\uc5c6\ub2e4.<br>=> \uc0c8\ub85c\uc6b4 \uc18d\uc131\uc744 \ud55c \ub3c4\ud050\uba3c\ud2b8\uc5d0 \ub3d9\uc801\uc73c\ub85c \ucd94\uac00\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">{\n_id: 10,\nusername: 'peter',\nemail: [\n 'pbbakkum@gmail.com',\n 'pbb7c@virginia.edu'\n ]\n}<\/code><\/pre>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">\uc560\ub4dc\ud639 \ucffc\ub9ac (ad hoc query)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud0a4-\uac12 \ud0c0\uc785\uc758 \uc800\uc7a5 \uc2dc\uc2a4\ud15c\uc740 \ud558\ub098\uc758 \ud0a4-\uac12\uc73c\ub85c\ub9cc \uc9c8\uc758\ud560 \uc218 \uc788\uc74c.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\uc2dc. \ucd94\ucc9c\uc218\uac00 10\uc774\uc0c1\uc758 &#8216;politics&#8217; \uc6a9\uc5b4 \ud3ec\uc2a4\ud2b8 \uc870\ud68c<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>SQL\ucffc\ub9ac<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">SELECT * FROM posts\nINNER JOIN posts_tags ON posts.id = posts_tags.post_id\nINNER JOIN tags ON posts_tags.tag_id == tags.id\nWHERE tags.text = 'politics' AND posts.vote_count > 10;<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>MongoDB<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">db.posts.find({'tags': 'politics', 'vote_count': {'$gt': 10}});<\/code><\/pre>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">\uc778\ub371\uc2a4 (INDEX)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">MongoDB\uc5d0\uc11c \uc778\ub371\uc2a4\ub294 B-\ud2b8\ub9ac\ub85c \uad6c\ud604\ub418\uc5b4 \uc788\ub2e4.<br>\ub2e4\ub978 NoSQL\ub370\uc774\ud130\ubca0\uc774\uc2a4\uc640\ub294 \ub2e4\ub974\uac8c \uc138\ucee8\ub354\ub9ac \uc778\ub371\uc2a4(PK\uc678 \uc778\ub371\uc2a4)\ub3c4 \ud5c8\uc6a9\ud568\uc73c\ub85c\uc368 \uc0ac\uc6a9\uc790\uac00 \ub113\uc740 \ubc94\uc704\uc758 \ucffc\ub9ac\ub97c \ucd5c\uc801\ud654\ud558\ub3c4\ub85d \ud5c8\uc6a9\ud55c\ub2e4.<br>MongoDB\ub294 \ud55c \uceec\ub809\uc158\uc5d0 64\uac1c\uae4c\uc9c0 \uc138\ucee8\ub354\ub9ac \uc778\ub371\uc2a4\ub97c \ub9cc\ub4e4\uc218 \uc788\ub2e4. \uc624\ub984\ucc28\uc21c, \ub0b4\ub9bc\ucc28\uc21c, Unique, \ubcf5\ud569\ud0a4(compound-key), \ud574\uc2dc, \ud14d\uc2a4\ud2b8, \uacf5\uac04\uc778\ub371\uc2a4 \uac19\uc740 \ubaa8\ub4e0 \uc778\ub371\uc2a4\ub97c \uc0ac\uc6a9\uac00\ub2a5 \ud558\ub2e4.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">\ubcf5\uc81c (Replica Set)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">MongoDB\ub294 \ubcf5\uc81c\uc138\ud2b8(replica set)\ub77c\uace0 \ubd80\ub974\ub294 \uad6c\uc131\uc744 \ud1b5\ud574 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ubcf5\uc81c\uae30\ub2a5\uc744 \uc81c\uacf5\ud55c\ub2e4.<br>\uc774\ub97c \ud1b5\ud574 \uc790\ub3d9 \uc7a5\uc560\uc870\uce58 \uc9c0\uc6d0 \ubc0f \ud504\ub77c\uc774\uba38\ub9ac \ub178\ud2b8\uc5d0 \ub300\ud574 \uc77d\uae30,\uc4f0\uae30 \uc138\ucee8\ub354\ub9ac \ub178\ub4dc\uc5d0 \uc77d\uae30\ub9cc \uac00\ub2a5\ud558\ub3c4\ub85d \ubd84\uc0b0\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">\uc18d\ub3c4\uc640 \ub0b4\uad6c\uc131<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub9ce\uc740 RDBMS\uac00 \uce90\uc2dc\uc640 \ub514\uc2a4\ud06c\ub97c \uc870\ud569\ud558\uba70, \uba54\ubaa8\ub9ac\uc5d0 \uc6b0\uc120\uc801\uc73c\ub85c \uc4f0\uae30 \uc791\uc5c5\uc774\ub098 \ub370\uc774\ud130\ub97c \uc77d\uc5b4\uc640\uc11c \ucc98\ub9ac\ud558\uace0, \uba54\ubaa8\ub9ac\uc5d0\uc11c \uc644\ub8cc\ub41c \uc791\uc5c5\ub9cc\uc740 \ub514\uc2a4\ud06c\uc5d0\uc11c \ucc98\ub9ac\ud558\ub294 \ubc29\uc2dd\uc744 \uc0ac\uc6a9\ud558\uc9c0\ub9cc, MongoDB\uc758 \uacbd\uc6b0 \uc4f0\uae30 \uc2dc\ub9e8\ud2f1\uc2a4\uc640 \uc800\ub110\ub9c1\uc744 \ud1b5\ud574 \uc18d\ub3c4\uc640 \ub0b4\uad6c\uc131 \uc0ac\uc774\uc5d0\uc11c \ud0c0\ud611\uc744 \uc774\ub8f0 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">\ud655\uc7a5<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">MongoDB\ub294 \uc218\ud3c9\uc801 \ud655\uc7a5\uc774 \uc6a9\uc774\ud558\ub3c4\ub85d \uc0e4\ub529(sharding)\uc744 \ud1b5\ud55c \ud655\uc7a5\uc744 \uc9c0\uc6d0\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">\ucf54\uc5b4\uc11c\ubc84<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ucf54\uc5b4 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub294 \uc11c\ubc84\ub294 mongod\ub97c \ud1b5\ud574 \uad6c\ub3d9\ub41c\ub2e4.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">MongoDB\ub97c \uc0ac\uc6a9\ud558\ub294 \uc774\uc720<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">MongoDB\ub294 \ud0a4-\uac12 \uc800\uc7a5 \uc2dc\uc2a4\ud15c(\uc2dc\uc2a4\ud15c\uc758 \ub2e8\uc21c\uc131\uc73c\ub85c \uc18d\ub3c4\uac00 \ube60\ub974\uace0 \ud655\uc7a5\ub3c4 \uc6a9\uc774)\uc758 \uc7a5\uc810\ub9cc\uc744 \ubaa8\uc544\uc11c \uc124\uacc4\ub418\uc5c8\ub2e4.<br>MongoDB\ub294 \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158, \ubd84\uc11d\uacfc \ub85c\uae45 \uc560\ud50c\ub9ac\ucf00\uc774\uc158, Cache\ub97c \ud544\uc694\ub85c\ud558\ub294 \ud558\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c \uc77c\ucc28 \uc800\uc7a5 \uc2dc\uc2a4\ud15c\uc73c\ub85c \uc801\ud569\ud558\ub2e4. \ub610\ud55c, \uc2a4\ud0a4\ub9c8\uac00 \uc5c6\ub294 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\uae30\uac00 \uc720\uc6a9\ud568\uc73c\ub85c \ubbf8\ub9ac \uad6c\uc870\ub97c \uc54c\uae30 \ud798\ub4e0 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\ub294\ub370 \uc720\uc6a9\ud558\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td>\uc608<\/td><td>\ub370\uc774\ud130 \ubaa8\ub378<\/td><td>\uc6a9\ub840<\/td><\/tr><tr><td>\uac04\ub2e8\ud55c \ud0a4-\uac12 \uc800\uc7a5 \uc2dc\uc2a4\ud15c<\/td><td>\uba64\uce90\uc2dc\ub514, Redis<\/td><td>\ud0a4-\uac12,\uba64\uce90\uc2dc\ub514\ub294 \uc774\uc9c4 blob<\/td><td>\uce90\uc2f1, \uc6f9 ops<\/td><\/tr><tr><td>\uc815\uad50\ud55c \ud0a4-\uac12 \uc800\uc7a5 \uc2dc\uc2a4\ud15c<\/td><td>\uce74\uc0b0\ub4dc\ub77c, \ubcfc\ub4dc\ubaa8\ud2b8 \ud504\ub85c\uc81d\ud2b8, Riak \ub4f1<\/td><td>\uce74\uc0b0\ub4dc\ub77c\ub294 \uce7c\ub7fc\uc73c\ub85c \ubd80\ub974\ub294 \ud0a4-\uac12\uc744 \uc0ac\uc6a9.\ubcfc\ub4dc\ubaa8\ud2b8\ub294 \uc774\uc9c4 blob\uc744 \uc0ac\uc6a9.<\/td><td>\uace0\ud6a8\uc728 verticals(\uc561\ud2f0\ube44\ud2f0 \ud53c\ub4dc, \uba54\uc2dc\uc9c0 \ud050)\uce90\uc2f1. \uc6f9 ops<\/td><\/tr><tr><td>\uad00\uacc4\ub370\uc774\ud130\ubca0\uc774\uc2a4(RDBMS)<\/td><td>\uc624\ub77c\ud074, MySQL, MariaDB, PostgreSQL \ub4f1<\/td><td>\ud14c\uc774\ube14<\/td><td>\ud2b8\ub79c\uc7ad\uc158\uc774 \ud544\uc694\ud55c \uc2dc\uc2a4\ud15c \ub610\ub294 SQL.\uc815\uaddc\ud654\ub41c \ub370\uc774\ud130 \ubaa8\ub378.<\/td><\/tr><\/tbody><\/table><figcaption>\ub2e4\ub978 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc640 \ube44\uad50<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\ub3c4\ud050\uba3c\ud2b8 \ub370\uc774\ud130\ubca0\uc774\uc2a4<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">MongoDB\uc640 CouchDB\uac00 \uc788\uc73c\uba70, CouchDB\ub294 JSON\uc744 \ub2e8\uc21c \ud14d\uc2a4\ud2b8\ub85c \uc800\uc7a5\ud55c\ub2e4. <br>CouchDB\ub3c4 \uc138\ucee8\ub354\ub9ac \uc778\ub371\uc2a4\ub97c \uc9c0\uc6d0\ud558\uc9c0\ub9cc, \uc778\ub371\uc2a4\uac00 \ub9f5\ub9ac\ub4c0\uc2a4 \ud568\uc218\ub97c \uc791\uc131\ud574\uc11c \uc815\uc758\ub41c\ub2e4\ub294 \uc810\uc774 \ub2e4\ub974\ub2e4. \uc120\uc5b8\uc801\uc778 \uad6c\ubb38\ubcf4\ub2e4 \ub354 \ubcf5\uc7a1\ud558\uace0 \uc0e4\ub529\uc740 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc73c\uba70 \uac01\uac01\uc758 \ub178\ub4dc\uc5d0 \ub3d9\uc77c\ud55c \ubcf5\uc81c \ub178\ub4dc\ub9cc \uad6c\uc131\ub41c\ub2e4.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">\uc0ac\uc6a9 \uc608\uc640 \ubc30\ud3ec<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 : \uc6f9 \uc560\ud50c\ub9ac\ucf00\ub2c8\uc158\uc5d0\uc11c \uc77c\ucc28\uc801 \ub370\uc774\ud130 \uc800\uc7a5 \uc2dc\uc2a4\ud15c\uc73c\ub85c \uc0ac\uc6a9\ud558\uae30 \uc801\ub2f9\ud558\ub2e4.<\/li><li>\uc560\uc790\uc77c \uac1c\ubc1c : \uc560\uc790\uc77c\uc758 \uc2e0\uc18d\uac1c\ubc1c\uc5d0 \uc774\uc6a9 \uc801\ud569\ud558\ub2e4.<\/li><li>\ubd84\uc11d\uacfc \ub85c\uae45 : automic\uc5c5\ub370\uc774\ud2b8(\ud074\ub77c\uc774\uc5b8\ud2b8\ub294 \uce74\uc6b4\ud130 \uac12\uc744 \ud6a8\uc728\uc801\uc73c\ub85c \uc99d\uac00\ud558\uace0 \uac12\uc744 \ubc30\uc5f4\uc5d0 \ud478\uc2dc)\uc640 capped\uceec\ub809\uc158 \ud2b9\uc9d5\uc73c\ub85c \ub85c\uae45\uc5d0 \uc720\uc6a9\ud558\ub2e4.<\/li><li>\uce90\uc2f1 <\/li><li>\uac00\ubcc0\uc801\uc778 \uc2a4\ud0a4\ub9c8<\/li><\/ul>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">\ud301\uacfc \ud55c\uacc4<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>MongoDB\ub294 \ubcf4\ud1b5 64\ube44\ud2b8 \uc2dc\uc2a4\ud15c\uc5d0\uc11c \uc2e4\ud589\ub418\uc5b4\uc57c\ud55c\ub2e4. (32\ube44\ud2b8\ub294 4GB \uba54\ubaa8\ub9ac\ub9cc \uc0ac\uc6a9\uac00\ub2a5\ud558\ub2e4)<\/li><li>\uc804\uc6a9 \uc11c\ubc84\uc5d0\uc11c \ucd5c\uc801 \uc2e4\ud589\ub41c\ub2e4.<\/li><li>SQL\ucffc\ub9ac\ub9cc\ud07c \uce5c\uc219\ud558\uac70\ub098 \uc27d\uc9c0\uc54a\ub2e4.<\/li><li>\ub300\uaddc\ubaa8\uc758 \ud074\ub7ec\uc2a4\ud130\ub97c \uc6b4\uc601\ud558\uae30 \uc704\ud574\uc11c\ub294 \uc720\uc9c0\ube44\uc6a9\uc774 \ubc1c\uc0dd\ud55c\ub2e4.<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\ucd5c\uc2e0 \uc6f9\uc744 \uc704\ud55c \ub3c4\ud050\uba3c\ud2b8 \ub370\uc774\ud130\ubca0\uc774\uc2a4 MongoDB\ub294 \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uacfc \uc778\ud130\ud15f \uae30\ubc18\uc744 \uc704\ud574 \uc124\uacc4\ub41c \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uad00\ub9ac \uc2dc\uc2a4\ud15c\uc774\ub2e4. MongoDB\uc758 \ub3c4\ud050\uba3c\ud2b8 \ud615\uc2dd : JSON \ubc29\uc2dd\uc758 \ub370\uc774\ud130\uad6c\uc870 \uc2a4\ud0a4\ub9c8 (Hasp Map\uacfc \uac19\uc740.)=> \uad00\uacc4\ud615\ubaa8\ub378\ucc98\ub7fc \uc11c\ub85c join\uc758 \ud544\uc694\uc131 \ubc0f \ud14c\uc774\ube14 \ucd94\uac00\uac00 \ud544\uc694\uc5c6\ub2e4.=> \uc0c8\ub85c\uc6b4 \uc18d\uc131\uc744 \ud55c \ub3c4\ud050\uba3c\ud2b8\uc5d0 \ub3d9\uc801\uc73c\ub85c \ucd94\uac00\ud560 \uc218 \uc788\ub2e4. \uc560\ub4dc\ud639 \ucffc\ub9ac (ad hoc query) \ud0a4-\uac12 \ud0c0\uc785\uc758 \uc800\uc7a5 \uc2dc\uc2a4\ud15c\uc740 \ud558\ub098\uc758 \ud0a4-\uac12\uc73c\ub85c\ub9cc \uc9c8\uc758\ud560 \uc218 &#8230; <a title=\"\ubabd\uace0\ub514\ube44 \uc778 \uc561\uc158 1\uc7a5\" class=\"read-more\" href=\"https:\/\/scrutineer.co.kr\/wordpress\/index.php\/2021\/09\/26\/chapter-1\/\" aria-label=\"Read more about \ubabd\uace0\ub514\ube44 \uc778 \uc561\uc158 1\uc7a5\">Read more<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-655","post","type-post","status-publish","format-standard","hentry","category-4"],"_links":{"self":[{"href":"https:\/\/scrutineer.co.kr\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/655","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scrutineer.co.kr\/wordpress\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scrutineer.co.kr\/wordpress\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scrutineer.co.kr\/wordpress\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/scrutineer.co.kr\/wordpress\/index.php\/wp-json\/wp\/v2\/comments?post=655"}],"version-history":[{"count":4,"href":"https:\/\/scrutineer.co.kr\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/655\/revisions"}],"predecessor-version":[{"id":663,"href":"https:\/\/scrutineer.co.kr\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/655\/revisions\/663"}],"wp:attachment":[{"href":"https:\/\/scrutineer.co.kr\/wordpress\/index.php\/wp-json\/wp\/v2\/media?parent=655"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scrutineer.co.kr\/wordpress\/index.php\/wp-json\/wp\/v2\/categories?post=655"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scrutineer.co.kr\/wordpress\/index.php\/wp-json\/wp\/v2\/tags?post=655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}