{"id":58,"date":"2025-04-08T11:49:22","date_gmt":"2025-04-08T02:49:22","guid":{"rendered":"https:\/\/wordpress.koseongnam.com\/?p=58"},"modified":"2025-04-10T17:07:32","modified_gmt":"2025-04-10T08:07:32","slug":"fastapi-django-rest-framework-flask-%eb%b9%84%ea%b5%90","status":"publish","type":"post","link":"https:\/\/wordpress.koseongnam.com\/?p=58","title":{"rendered":"FastAPI, Django REST Framework, Flask \ube44\uad50"},"content":{"rendered":"\n<p>\uc131\ub2a5 \ud14c\uc2a4\ud2b8\uc5d0 \ub530\ub974\uba74, \uc138 \ud504\ub808\uc784\uc6cc\ud06c\uc758 \uc131\ub2a5\uc740 \ub2e4\uc74c\uacfc \uac19\uc740 \uc21c\uc11c\ub85c \ub098\ud0c0\ub0a9\ub2c8\ub2e4:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>FastAPI<\/strong>: \uac00\uc7a5 \ube60\ub978 \uc131\ub2a5\uc744 \ubcf4\uc5ec\uc8fc\uba70, ASGI(Asynchronous Server Gateway Interface)\ub97c \uae30\ubc18\uc73c\ub85c \ud558\uc5ec \ube44\ub3d9\uae30 \ucc98\ub9ac\uc5d0 \ucd5c\uc801\ud654\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li><strong>Flask<\/strong>: Django\ubcf4\ub2e4\ub294 \ube60\ub974\uc9c0\ub9cc FastAPI\ubcf4\ub2e4\ub294 \ub290\ub9bd\ub2c8\ub2e4. \uacbd\ub7c9\ud654\ub41c \uad6c\uc870\ub85c \uc0c1\ub300\uc801\uc73c\ub85c \uc88b\uc740 \uc131\ub2a5\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li><strong>Django\/DRF<\/strong>: \ud480\uc2a4\ud0dd \ud504\ub808\uc784\uc6cc\ud06c\ub85c\uc11c \ub9ce\uc740 \uae30\ub2a5\uc744 \ub0b4\uc7a5\ud558\uace0 \uc788\uc5b4 \uc138 \ud504\ub808\uc784\uc6cc\ud06c \uc911 \uac00\uc7a5 \ub290\ub9b0 \uc131\ub2a5\uc744 \ubcf4\uc785\ub2c8\ub2e4.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">\uc0ac\uc6a9 \uc0ac\ub840 \ube44\uad50<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">FastAPI\uac00 \uc801\ud569\ud55c \uacbd\uc6b0:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ub192\uc740 \uc131\ub2a5\uc774 \ud544\uc694\ud55c API \uac1c\ubc1c<\/li>\n\n\n\n<li>\uc2e4\uc2dc\uac04 \uc751\ub2f5\uc774 \uc911\uc694\ud55c \uc560\ud50c\ub9ac\ucf00\uc774\uc158(\uba54\uc2dc\uc9d5, \ub300\uc2dc\ubcf4\ub4dc \ub4f1)<\/li>\n\n\n\n<li>\ud0c0\uc785 \uc720\ud6a8\uc131 \uac80\uc0ac\uac00 \uc911\uc694\ud55c \ud504\ub85c\uc81d\ud2b8<\/li>\n\n\n\n<li>\ub370\uc774\ud130 \uc9d1\uc57d\uc801\uc778 \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8(\uae30\uacc4 \ud559\uc2b5 \ubaa8\ub378, \ub370\uc774\ud130 \ucc98\ub9ac \ub4f1)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Django REST Framework\uac00 \uc801\ud569\ud55c \uacbd\uc6b0:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ubcf5\uc7a1\ud55c \ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1\uc774 \ud544\uc694\ud55c \ub300\uaddc\ubaa8 \ud504\ub85c\uc81d\ud2b8<\/li>\n\n\n\n<li>\uad00\uacc4\ud615 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \ud6a8\uacfc\uc801\uc73c\ub85c \ub2e4\ub8e8\uc5b4\uc57c \ud558\ub294 \uacbd\uc6b0<\/li>\n\n\n\n<li>\uc778\uc99d, \uad8c\ud55c, \uad00\ub9ac\uc790 \ud328\ub110 \ub4f1 \ub2e4\uc591\ud55c \uae30\ub2a5\uc774 \ud544\uc694\ud55c \uacbd\uc6b0<\/li>\n\n\n\n<li>\ud300 \uaddc\ubaa8\uac00 \ud06c\uace0 \ud45c\uc900\ud654\ub41c \uad6c\uc870\uac00 \ud544\uc694\ud55c \ud504\ub85c\uc81d\ud2b8<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Flask\uac00 \uc801\ud569\ud55c \uacbd\uc6b0:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc791\uace0 \uac04\ub2e8\ud55c \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ub610\ub294 API<\/li>\n\n\n\n<li>\ub9de\ucda4\ud615 \uc194\ub8e8\uc158\uc774 \ud544\uc694\ud55c \ud504\ub85c\uc81d\ud2b8<\/li>\n\n\n\n<li>\ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uc544\ud0a4\ud14d\ucc98<\/li>\n\n\n\n<li>\ube60\ub978 \ud504\ub85c\ud1a0\ud0c0\uc774\ud551\uc774 \ud544\uc694\ud55c \uacbd\uc6b0<\/li>\n\n\n\n<li>\uc790\uc720\ub86d\uac8c \uad6c\uc870\ub97c \uc124\uacc4\ud558\uace0 \uc2f6\uc740 \uacbd\uc6b0<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\ud559\uc2b5 \uace1\uc120 \ube44\uad50<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Flask<\/strong>: \uac00\uc7a5 \ubc30\uc6b0\uae30 \uc26c\uc6c0, \uc9c1\uad00\uc801\uc778 API\uc640 \uac04\uacb0\ud55c \ubb38\ubc95<\/li>\n\n\n\n<li><strong>FastAPI<\/strong>: \uc911\uac04 \uc218\uc900, Python \ud0c0\uc785 \ud78c\ud2b8\uc640 \ube44\ub3d9\uae30 \ud504\ub85c\uadf8\ub798\ubc0d \uac1c\ub150 \ud544\uc694<\/li>\n\n\n\n<li><strong>Django\/DRF<\/strong>: \uac00\uc7a5 \uac00\ud30c\ub978 \ud559\uc2b5 \uace1\uc120, \uad11\ubc94\uc704\ud55c \uae30\ub2a5\uacfc \ucca0\ud559 \uc774\ud574 \ud544\uc694<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\uc694\uc57d \ud45c<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\ud2b9\uc131<\/th><th>FastAPI<\/th><th>Django REST Framework<\/th><th>Flask<\/th><\/tr><\/thead><tbody><tr><td>\uc124\uacc4 \ucca0\ud559<\/td><td>API \ube4c\ub4dc\ub97c \uc704\ud55c \uacbd\ub7c9 \ub9c8\uc774\ud06c\ub85c\ud504\ub808\uc784\uc6cc\ud06c<\/td><td>\uad00\uacc4\ud615 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uae30\ubc18 \ud480\uc2a4\ud0dd \ud504\ub808\uc784\uc6cc\ud06c<\/td><td>\ubc31\uc5d4\ub4dc \uacbd\ub7c9 \ub9c8\uc774\ud06c\ub85c\ud504\ub808\uc784\uc6cc\ud06c<\/td><\/tr><tr><td>\uc131\ub2a5<\/td><td>\uac00\uc7a5 \ube60\ub984<\/td><td>\uac00\uc7a5 \ub290\ub9bc<\/td><td>\uc911\uac04 \uc218\uc900<\/td><\/tr><tr><td>\ubb38\uc11c\ud654<\/td><td>\uc790\ub3d9 API \ubb38\uc11c \uc0dd\uc131(Swagger\/ReDoc)<\/td><td>\ube0c\ub77c\uc6b0\uc800\ube14 API, \uc218\ub3d9 \ubb38\uc11c\ud654 \ud544\uc694<\/td><td>\uc678\ubd80 \ub3c4\uad6c \ud544\uc694<\/td><\/tr><tr><td>\ud0c0\uc785 \uac80\uc99d<\/td><td>\ub0b4\uc7a5(Pydantic)<\/td><td>\uc2dc\ub9ac\uc5bc\ub77c\uc774\uc800\ub85c \uad6c\ud604<\/td><td>\uc678\ubd80 \ub77c\uc774\ube0c\ub7ec\ub9ac \ud544\uc694<\/td><\/tr><tr><td>\ube44\ub3d9\uae30 \uc9c0\uc6d0<\/td><td>\uae30\ubcf8 \uc9c0\uc6d0<\/td><td>\ubd80\ubd84 \uc9c0\uc6d0<\/td><td>\uc81c\ud55c\uc801 \uc9c0\uc6d0<\/td><\/tr><tr><td>\ub370\uc774\ud130\ubca0\uc774\uc2a4<\/td><td>ORM \uc678\ubd80 \ud1b5\ud569 \ud544\uc694<\/td><td>\uac15\ub825\ud55c ORM \ub0b4\uc7a5<\/td><td>\uc678\ubd80 \ud1b5\ud569 \ud544\uc694(SQLAlchemy \ub4f1)<\/td><\/tr><tr><td>\ud655\uc7a5\uc131<\/td><td>\ub9e4\uc6b0 \uc88b\uc74c<\/td><td>\uc81c\ud55c\uc801<\/td><td>\uc88b\uc74c<\/td><\/tr><tr><td>\ucee4\ubba4\ub2c8\ud2f0\/\uc0dd\ud0dc\uacc4<\/td><td>\uc131\uc7a5 \uc911\uc774\uc9c0\ub9cc \uc791\uc74c<\/td><td>\uac00\uc7a5 \ud06c\uace0 \uc131\uc219\ud568<\/td><td>\ud06c\uace0 \uc548\uc815\uc801<\/td><\/tr><tr><td>\ucd9c\uc2dc \ub144\ub3c4<\/td><td>2018\ub144<\/td><td>2005\ub144(Django)<\/td><td>2010\ub144<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\uacb0\ub860<\/h2>\n\n\n\n<p>\uc138 \ud504\ub808\uc784\uc6cc\ud06c \ubaa8\ub450 \ud6cc\ub96d\ud55c \uc120\ud0dd\uc9c0\uc774\uba70, \uc5b4\ub5a4 \uac83\uc744 \uc120\ud0dd\ud560\uc9c0\ub294 \ud504\ub85c\uc81d\ud2b8\uc758 \uc694\uad6c\uc0ac\ud56d, \ud300\uc758 \uacbd\ud5d8 \uc218\uc900, \uadf8\ub9ac\uace0 \uc6b0\uc120\uc21c\uc704\uc5d0 \ub530\ub77c \ub2ec\ub77c\uc9c8 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\uc131\ub2a5\uc774 \ucd5c\uc6b0\uc120\uc774\ub77c\uba74<\/strong>: FastAPI<\/li>\n\n\n\n<li><strong>\uae30\ub2a5\uacfc \uc0dd\ud0dc\uacc4\uac00 \uc911\uc694\ud558\ub2e4\uba74<\/strong>: Django REST Framework<\/li>\n\n\n\n<li><strong>\uc720\uc5f0\uc131\uacfc \ub2e8\uc21c\ud568\uc774 \ud544\uc694\ud558\ub2e4\uba74<\/strong>: Flask<\/li>\n<\/ol>\n\n\n\n<p>\ucd5c\uc885 \uc120\ud0dd\uc740 \ud504\ub85c\uc81d\ud2b8\uc758 \ud2b9\uc131\uacfc \ud300\uc758 \uae30\uc220 \uc2a4\ud0dd\uc5d0 \ub530\ub77c \ub2ec\ub77c\uc838\uc57c \ud569\ub2c8\ub2e4. \uc791\uc740 \ud504\ub85c\uc81d\ud2b8\ub294 Flask\ub098 FastAPI\ub85c \uc2dc\uc791\ud558\uace0, \ubcf5\uc7a1\ud55c \uae30\ub2a5\uc774 \ud544\uc694\ud55c \ub300\uaddc\ubaa8 \ud504\ub85c\uc81d\ud2b8\ub294 Django REST Framework\ub97c \uace0\ub824\ud558\ub294 \uac83\uc774 \uc88b\uc2b5\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc131\ub2a5 \ud14c\uc2a4\ud2b8\uc5d0 \ub530\ub974\uba74, \uc138 \ud504\ub808\uc784\uc6cc\ud06c\uc758 \uc131\ub2a5\uc740 \ub2e4\uc74c\uacfc \uac19\uc740 \uc21c\uc11c\ub85c \ub098\ud0c0\ub0a9\ub2c8\ub2e4: \uc0ac\uc6a9 \uc0ac\ub840 \ube44\uad50 FastAPI\uac00 \uc801\ud569\ud55c \uacbd\uc6b0: Django REST Framework\uac00 \uc801\ud569\ud55c \uacbd\uc6b0: Flask\uac00 \uc801\ud569\ud55c \uacbd\uc6b0: \ud559\uc2b5 \uace1\uc120 \ube44\uad50 \uc694\uc57d \ud45c \ud2b9\uc131 FastAPI Django REST Framework Flask \uc124\uacc4 \ucca0\ud559 API \ube4c\ub4dc\ub97c \uc704\ud55c \uacbd\ub7c9 \ub9c8\uc774\ud06c\ub85c\ud504\ub808\uc784\uc6cc\ud06c \uad00\uacc4\ud615 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uae30\ubc18 \ud480\uc2a4\ud0dd \ud504\ub808\uc784\uc6cc\ud06c \ubc31\uc5d4\ub4dc \uacbd\ub7c9 \ub9c8\uc774\ud06c\ub85c\ud504\ub808\uc784\uc6cc\ud06c \uc131\ub2a5 \uac00\uc7a5 \ube60\ub984 \uac00\uc7a5 \ub290\ub9bc [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-58","post","type-post","status-publish","format-standard","hentry","category-3-24----"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.koseongnam.com\/index.php?rest_route=\/wp\/v2\/posts\/58","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.koseongnam.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.koseongnam.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.koseongnam.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.koseongnam.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=58"}],"version-history":[{"count":1,"href":"https:\/\/wordpress.koseongnam.com\/index.php?rest_route=\/wp\/v2\/posts\/58\/revisions"}],"predecessor-version":[{"id":59,"href":"https:\/\/wordpress.koseongnam.com\/index.php?rest_route=\/wp\/v2\/posts\/58\/revisions\/59"}],"wp:attachment":[{"href":"https:\/\/wordpress.koseongnam.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=58"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.koseongnam.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=58"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.koseongnam.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=58"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}