{"id":398750,"date":"2023-10-20T04:31:15","date_gmt":"2023-10-20T03:31:15","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=kotlin&#038;p=398750"},"modified":"2023-10-20T04:31:19","modified_gmt":"2023-10-20T03:31:19","slug":"exposed-moving-forward","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/ko\/kotlin\/2023\/10\/exposed-moving-forward\/","title":{"rendered":"\uc55e\uc73c\ub85c\uc758 Exposed \uc804\uac1c \ubc29\ud5a5"},"content":{"rendered":"<p><a href=\"https:\/\/github.com\/jetbrains\/exposed\" target=\"_blank\" rel=\"noopener\">Exposed<\/a>\ub294 \uba87 \ub144 \uc804 Kotlin\uc73c\ub85c \uc791\uc131\ub41c \uac00\ubcbc\uc6b4 ORM\/DAO\ub85c \uc2dc\uc791\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc774\ud6c4 JetBrains\uc758 \uc5ec\ub7ec \ud575\uc2ec \uc81c\ud488\uc5d0 \ub0b4\ubd80\uc801\uc73c\ub85c \uc0ac\uc6a9\ub418\uc5c8\uc73c\uba70 <a href=\"https:\/\/github.com\/jetbrains\/exposed\" target=\"_blank\" rel=\"noopener\">GitHub\uc5d0\uc11c <em>Team(\ud300) <\/em>\ud504\ub85c\uc81d\ud2b8<\/a>\ub85c \ubd84\ub958\ub418\uc5c8\uc74c\uc5d0\ub3c4 \ubd88\uad6c\ud558\uace0 \ub9ce\uc740 \uc678\ubd80 \uc0ac\uc6a9\uc790\ub97c \ud655\ubcf4\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ud504\ub85c\uc81d\ud2b8 <a href=\"https:\/\/github.com\/Tapac\" target=\"_blank\" rel=\"noopener\">\ub2f4\ub2f9\uc790<\/a>\uac00 \uc9c0\uc6d0\uc744 \uc81c\uacf5\ud558\uba70 \uac1c\uc120\uc744 \uc774\ub8e8\uae30 \uc704\ud574 \ucd5c\uc120\uc744 \ub2e4\ud558\uace0 \uc788\uc9c0\ub9cc JetBrains\ub294 \ub354 \ub9ce\uc740 \ub9ac\uc18c\uc2a4\ub97c \ud22c\uc785\ud574\uc57c \ud560 \uc2dc\uae30\uac00 \ub418\uc5c8\ub2e4\ub294 \ud310\ub2e8\uc744 \ub0b4\ub838\uc2b5\ub2c8\ub2e4. \uc774\uc5d0 \ub530\ub77c \uc815\uaddc\uc9c1 \uac1c\ubc1c\uc790\ub4e4\uacfc \uae30\uc220 \ucc45\uc784\uc790 1\uba85\uc744 \uace0\uc6a9\ud558\uc5ec Exposed\ub97c \ucd5c\uace0\uc758 \uc81c\ud488\uc73c\ub85c \ub9cc\ub4e4\uae30 \uc704\ud574 \uc791\uc5c5\uc744 \uc9c4\ud589\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc5ec\uae30\uc11c\ub294 \ud5a5\ud6c4 \uacc4\ud68d\uc744 \uc54c\ub824 \ub4dc\ub9ac\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<h2 class=\"wp-block-heading\">\uc81c\ud488<\/h2>\n<h3 class=\"wp-block-heading\">1.0\uc744 \uc704\ud55c \uade0\uc77c\ud55c API<\/h3>\n<p>Exposed\uc758 \uc7a5\uc810 \uc911 \ud558\ub098\ub294 SQL\uacfc \uc720\uc0ac\ud558\uac8c \uc815\uc801\uc73c\ub85c \ud0c0\uc785\uc774 \uc9c0\uc815\ub41c \uc5b8\uc5b4\ub97c \uc81c\uacf5\ud558\uc5ec \ucf54\ub4dc\uc5d0\uc11c SQL \ubb38\uc790\uc5f4\uc744 \uc0ac\uc6a9\ud558\ub294 \ub2e8\uc810 \uc5c6\uc774 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uc27d\uac8c \ucffc\ub9ac\ud560 \uc218 \uc788\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4. \uc5ec\uae30\uc11c <em>\uc720\uc0ac<\/em>\ud558\ub2e4\ub294 \ub9d0\uc758 \uc758\ubbf8\ub97c \uc798 \uc0c8\uaca8\uc57c \ud569\ub2c8\ub2e4. SQL\uacfc \uc0c1\ub2f9\ud55c \ud3b8\ucc28\uac00 \uc0dd\uae30\ub294 \uacbd\uc6b0\uac00 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774\uc5d0 \uad6c\ubb38\uc744 \ucd5c\ub300\ud55c SQL\uc5d0 \uac00\uae5d\uac8c \ub9cc\ub4e4\uace0 Exposed\uc758 DAO \ubc0f DSL \uc811\uadfc \ubc29\uc2dd \uac04\uc5d0 \uc77c\ubd80 \ubd88\uc77c\uce58\ub97c \uc5c6\uc560\ub824\uace0 \ub178\ub825\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774 \uacfc\uc815\uc5d0\uc11c \uc801\uc9c0 \uc54a\uc740 \ubcc0\uacbd \uc0ac\ud56d\uc774 \ub3c4\uc785\ub418\uaca0\uc9c0\ub9cc Exposed\uc758 \ubc1c\uc804\uc744 \uc704\ud55c \uacac\uace0\ud55c \uae30\ubc18\uc744 \ub9c8\ub828\ud558\uae30 \uc704\ud574 \uaf2d \ud544\uc694\ud558\ub2e4\uace0 \uc0dd\uac01\ud569\ub2c8\ub2e4.<\/p>\n<h3 class=\"wp-block-heading\">\uc0c1\uc6a9\uad6c \uc791\uc131\ub7c9 \ucd95\uc18c<\/h3>\n<p>Kotlin\uacfc \ub9c8\ucc2c\uac00\uc9c0\ub85c Exposed\ub85c \uc791\uc5c5\ud560 \ub54c \uc791\uc131\ud574\uc57c \ud558\ub294 \uc0c1\uc6a9\uad6c \ucf54\ub4dc\uc758 \uc591\uc744 \uc904\uc774\ub294 \uac83\uc774 \ubaa9\ud45c\uc785\ub2c8\ub2e4. \uc544\uc27d\uac8c\ub3c4 \ud604\uc7ac\ub294 \uadf8\ub807\uc9c0 \ubabb\ud569\ub2c8\ub2e4. \ubc18\ubcf5\uc801 \ucf54\ub4dc\ub97c \uc791\uc131\ud574\uc57c \ud558\ub294 \ubd80\ub2f4\uc744 \uc904\uc77c \uc218 \uc788\ub294 \uc5ec\uc9c0\uac00 \ubd84\uba85\ud788 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ubb3c\ub860 Ktor\uc640 \ub9c8\ucc2c\uac00\uc9c0\ub85c \uc5b4\ub178\ud14c\uc774\uc158\uc744 \ub3c4\uc785\ud560 \uc218\ub3c4 \uc788\uaca0\uc9c0\ub9cc <em>\ub9c8\ubc95\ucc98\ub7fc \ud574\uacb0\ub418\ub294 \uacb0\uacfc<\/em>\ub294 \ud53c\ud558\uace0 \uc2f6\uc2b5\ub2c8\ub2e4. \uac1c\ubc1c\uc790\uac00 \uc815\ud655\ud788 \ubb34\uc2a8 \uc77c\uc774 \uc5b4\ub5bb\uac8c \uc77c\uc5b4\ub098\uace0 \uc788\ub294\uc9c0 \uc54c\uc544\uc57c \ud558\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uae30\uc900\uc744 \ucda9\uc871\ud558\uae30 \uc704\ud55c \uc811\uadfc \ubc29\uc2dd\uc744 \ucc3e\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h3 class=\"wp-block-heading\">\uc7a5\uae30 \ubbf8\ud574\uacb0 \ubb38\uc81c<\/h3>\n<p>\uad75\uc9c1\ud55c \ubcc0\uacbd \uc0ac\ud56d \uc678\uc5d0 \ud574\uacb0\ud574\uc57c \ud560 \ud574\ubb35\uc740 \ubb38\uc81c\ub3c4 \ub9ce\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uc55e\uc73c\ub85c \uba87 \ub2ec \ub3d9\uc548 \ucd5c\ub300\ud55c \ub9ce\uc774 \ud574\uacb0\ud558\ub294 \uac83\uc774 \ubaa9\ud45c\uc785\ub2c8\ub2e4. \uc8fc\uc694 \ubcc0\uacbd\uc774 \ud544\uc694\ud55c \ubd80\ubd84\uc740 1.0 \uc774\ud6c4\ub85c \uc5f0\uae30\ub420 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<h3 class=\"wp-block-heading\">\ub9b4\ub9ac\uc2a4 \uacfc\uc815<\/h3>\n<p><a href=\"https:\/\/ktor.io\" target=\"_blank\" rel=\"noopener\">Ktor<\/a>\uc5d0\uc11c \uadf8\ub7ac\ub358 \uac83\ucc98\ub7fc Exposed\ub97c <a href=\"https:\/\/semver.org\" target=\"_blank\" rel=\"noopener\">Semantic Versioning<\/a>\uc73c\ub85c \uc774\ub3d9\ud560 \uc608\uc815\uc785\ub2c8\ub2e4. API\uc5d0 \ub300\ud55c \uba87 \uac00\uc9c0 \uc6b0\ub824 \uc0ac\ud56d\uc744 \ud574\uacb0\ud558\ub294 \ub300\ub85c 1.0\uc744 \ub9b4\ub9ac\uc2a4\ud558\ub824\uace0 \ud569\ub2c8\ub2e4. \ud604\uc7ac \uc608\uc0c1\ud558\ub294 \uc2dc\uc810\uc740 2024\ub144 1\ubd84\uae30\uc785\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc774\uc640 \ubcc4\ub3c4\ub85c, \ubb38\uc81c\uac00 \ud574\uacb0\ub418\ub294 \uc989\uc2dc \uc0ac\uc6a9\ud574 \ubcfc \uc218 \uc788\ub3c4\ub85d \uc6d4\ubcc4 \ub9b4\ub9ac\uc2a4\ub97c \ub0b4\ub193\uc744 \uc608\uc815\uc785\ub2c8\ub2e4.<\/p>\n<h3 class=\"wp-block-heading\">\ubb38\uc11c \ubc0f \uc0d8\ud50c<\/h3>\n<p>Exposed\uc758 \uc8fc\uc694 \ubb38\uc81c\uc810 \uc911 \ud558\ub098\ub294 \ubb38\uc11c\uac00 \ud3ec\uad04\uc801\uc774\uc9c0 \ubabb\ud558\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4. \uc774\ub97c \uc704\ud574 \uae30\uc874 \ubb38\uc11c\ub97c \uac80\ud1a0\ud558\uace0 \uc7ac\uad6c\uc131\ud558\uace0 \uac1c\uc120\ud558\ub294 \uacfc\uc815\uc5d0 \uc788\uc73c\uba70, \uc0c8\ub85c\uc6b4 Exposed \uc6f9\uc0ac\uc774\ud2b8(\ub9c8\ucc2c\uac00\uc9c0\ub85c \uc791\uc5c5 \uc911)\uc5d0 \uac8c\uc2dc\ud560 \uc608\uc815\uc785\ub2c8\ub2e4. \ub610\ud55c \uc27d\uac8c \ub530\ub77c\ud558\uace0 \ubc30\uc6b8 \uc218 \uc788\ub294 \ubcf4\ub2e4 \uc644\uc804\ud55c \uad6c\uc131\uc758 \uc0d8\ud50c\uc744 \uc81c\uacf5\ud558\uace0\uc790 \ud569\ub2c8\ub2e4.<\/p>\n<h3 class=\"wp-block-heading\">YouTrack\uc73c\ub85c \uc774\ub3d9<\/h3>\n<p>\uc9c4\ud589\ud558\uace0 \uc788\ub294 \uc791\uc5c5\uc758 \uc77c\ud658\uc73c\ub85c \uc774\uc288 \ubcf4\uace0\ub97c <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/exposed\" target=\"_blank\" rel=\"noopener\">YouTrack<\/a>\uc73c\ub85c \uc62e\uae30\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \uc774\uc288\ub97c \ubcf4\ub2e4 \uc6d0\ud65c\ud558\uac8c \ucd94\uc801, \ubd84\ub958 \ubc0f \ucc98\ub9ac\ud560 \uc218 \uc788\uac8c \ub420 \uac83\uc785\ub2c8\ub2e4. GitHub\uc758 \uae30\uc874 \uc774\uc288\ub294 \uc774\ub3d9\ud558\uc9c0 \uc54a\uc744 \uc608\uc815\uc785\ub2c8\ub2e4. \uc774\uc804\uc5d0 Ktor\uc5d0\uc11c \uc774\ub97c \uc2dc\ub3c4\ud558\ub294 \uacfc\uc815\uc5d0\uc11c \ucf54\uba58\ud2b8 \uc791\uc131\uc790\ub97c \uc18c\uc2e4\ud55c \uc801\uc774 \uc788\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4. \ub610\ud55c GitHub\uc5d0\ub294 \uac80\ud1a0\ud558\uace0 \uc81c\uac70\ud574\uc57c \ud560 \uc624\ub798\ub41c \ubbf8\ud574\uacb0 \uc774\uc288\ub4e4\uc774 \ub9ce\uc774 \uc788\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc0c8 \uc774\uc288\ub294 <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/exposed\" target=\"_blank\" rel=\"noopener\">YouTrack<\/a>\uc5d0 \uae30\ub85d\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<p>Exposed\uac00 \uac1c\ubc1c\uc790\uc5d0\uac8c \ub9ce\uc740 \uac00\ub2a5\uc131\uc744 \uc81c\uc2dc\ud560 \uc218 \uc788\uc744 \uac83\uc774\ub77c\uace0 \uae30\ub300\ud558\uba70, \uc774 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uacc4\uc18d \uad6c\ucd95\ud558\uc5ec \uc0ac\uc6a9\uc790 \uc5ec\ub7ec\ubd84\uc5d0\uac8c \ucd5c\uace0\uc758 \uacbd\ud5d8\uc744 \uc81c\uacf5\ud558\uace0 \uc2f6\uc2b5\ub2c8\ub2e4. Kotlin Slack\uc758 <a href=\"https:\/\/app.slack.com\/client\/T09229ZC6\/C0CG7E0A1\" target=\"_blank\" rel=\"noopener\">Exposed \ucc44\ub110<\/a>\uc5d0\uc11c \uc800\ud76c \ud300\uc6d0\uc5d0\uac8c \uc5f0\ub77d\ud558\uace0 \uc9c0\uc6d0\uc744 \ubc1b\uc744 \uc218 \uc788\ub2e4\ub294 \uc0ac\uc2e4\uc744 \uc78a\uc9c0 \ub9c8\uc138\uc694. \uc544\uc9c1 ID\uac00 \uc5c6\ub2e4\uba74 \uc774 <a href=\"https:\/\/surveys.jetbrains.com\/s3\/kotlin-slack-sign-up\" target=\"_blank\" rel=\"noopener\">\uc591\uc2dd<\/a>\uc744 \uc0ac\uc6a9\ud558\uc5ec \uac00\uc785\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uac10\uc0ac\ud569\ub2c8\ub2e4.<\/p>\n<p>Exposed \ud300<\/p>\n<p><em>\uac8c\uc2dc\ubb3c \uc6d0\ubb38 \uc791\uc131\uc790<\/em><\/p>\n\n    <div class=\"about-author \">\n        <div class=\"about-author__box\">\n            <div class=\"row\">\n                <div class=\"about-author__box-img\">\n                    <img decoding=\"async\" src=\"https:\/\/secure.gravatar.com\/avatar\/?s=200&#038;r=g\" width=\"200\" height=\"200\" alt=\"\" loading=\"lazy\"  class=\"avatar avatar-200 wp-user-avatar wp-user-avatar-200 photo avatar-default\">\n                <\/div>\n                <div class=\"about-author__box-text\">\n                                                        <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"author":964,"featured_media":378915,"comment_status":"closed","ping_status":"closed","template":"","categories":[89],"tags":[],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin\/398750"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/types\/kotlin"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/users\/964"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/comments?post=398750"}],"version-history":[{"count":4,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin\/398750\/revisions"}],"predecessor-version":[{"id":398754,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin\/398750\/revisions\/398754"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media\/378915"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media?parent=398750"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/categories?post=398750"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/tags?post=398750"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/cross-post-tag?post=398750"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}