{"id":7640,"date":"2023-02-25T19:28:33","date_gmt":"2023-02-25T10:28:33","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=7640"},"modified":"2023-02-25T20:16:27","modified_gmt":"2023-02-25T11:16:27","slug":"spring-boot-%ed%85%9c%ed%94%8c%eb%a6%ac%ed%8a%b8-%ed%94%84%eb%a1%9c%ec%a0%9d%ed%8a%b8-%ec%83%9d%ec%84%b1%ed%95%98%ea%b8%b0","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=7640","title":{"rendered":"Spring Boot \ud15c\ud50c\ub9ac\ud2b8 \ud504\ub85c\uc81d\ud2b8 \uc0dd\uc131\ud558\uae30"},"content":{"rendered":"<h1>Spring Boot \ud15c\ud50c\ub9ac\ud2b8 \ud504\ub85c\uc81d\ud2b8 \uc0dd\uc131\ud558\uae30<\/h1>\n<p>\ud504\ub85c\uc81d\ud2b8\ub97c \uc9c4\ud589\ud558\ub2e4 \ubcf4\ub2c8 Entity-Repository-Service-Controller \uc0dd\uc131\uc774 \uc0c1\ub2f9\ud788 \uc720\uc0ac\ud55c \ud328\ud134\uc73c\ub85c \uc774\ub8e8\uc5b4\uc9c0\ub294 \uac83\uc744 \uc54c\uac8c\ub41c\ub2e4.<\/p>\n<p>\uc608\ub97c\ub4e4\uc5b4, User \uc5d4\ud130\ud2f0\ub97c \uc704\ud574 \uc0dd\uc131\ud558\ub294 \ud074\ub798\uc2a4\ub4e4\uc774 \uc544\ub798\uc640 \uac19\ub2e4\uace0 \ud558\uc790.<\/p>\n<pre><code class=\"language-java\">User\nUserExpression\nUserRepository\nUserRepositoryCustom\nUserRepositoryImpl\n\nUserConverter\nUserDto\nUserCreateRequestDto\nUserModifyRequestDto\nUserSearchRequestDto\nUserResponseDto\nUserService\n\nUserController<\/code><\/pre>\n<p>\ub610 Store \uc5d4\ud130\ud2f0\ub97c \uc704\ud574\uc11c \ub3d9\uc77c\ud55c \ud615\ud0dc\uc758 \ud074\ub798\uc2a4\ub4e4\uc744 \uc0dd\uc131\ud558\uac8c \ub41c\ub2e4.<\/p>\n<pre><code class=\"language-java\">Store\nStoreExpression\nStoreRepository\nStoreRepositoryCustom\nStoreRepositoryImpl\n\nStoreConverter\nStoreDto\nStoreCreateRequestDto\nStoreModifyRequestDto\nStoreSearchRequestDto\nStoreResponseDto\nStoreService\n\nStoreController<\/code><\/pre>\n<h2>\uc790\ub3d9 \uc0dd\uc131 \uc2a4\ud06c\ub9bd\ud2b8<\/h2>\n<p>\uc774\uc5d0 \ucc29\uc548\ud574 \ud074\ub798\uc2a4 \uc790\ub3d9\uc0dd\uc131 \uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc0dd\uc131\ud574 \ubcf8\ub2e4.<\/p>\n<pre><code class=\"language-python\">from shutil import copyfile\nimport os\n\nclass_list = []\nreplace_list = []\ndata_type = &#039;class&#039;\n\n# ======================================\n# \ub370\uc774\ud0c0 \uc77d\uae30\n# ======================================\nf = open(&quot;generate.txt&quot;, &#039;r&#039;, encoding=&#039;UTF8&#039;)\nlines = f.readlines()\nfor line in lines:\n    line = line.strip()\n    if line.startswith(&#039;#&#039;):\n        if &#039;class&#039; in line:\n            data_type = &#039;class&#039;\n        elif &#039;replace&#039; in line:\n            data_type = &#039;replace&#039;\n    else:\n        if line.strip() != &#039;&#039;:\n            if data_type == &#039;class&#039;:\n                class_list.append(line.strip())\n            elif data_type == &#039;replace&#039;:\n                replace_list.append(line.strip())\nf.close()\n\nfor src_path in class_list:\n    dest_path = src_path\n    for r in replace_list:\n        r = r.split(&#039;\\t&#039;)\n        dest_path = dest_path.replace(r[0], r[1])\n    os.makedirs(os.path.dirname(dest_path), exist_ok=True)\n    copyfile(src_path, dest_path)\n    with open(dest_path, &#039;r&#039;) as file:\n        file_data = file.read()\n        for r in replace_list:\n            r = r.split(&#039;\\t&#039;)\n            file_data = file_data.replace(r[0], r[1])\n    with open(dest_path, &#039;w&#039;) as file:\n        file.write(file_data)<\/code><\/pre>\n<pre><code class=\"language-text\"># class\nsrc\\main\\java\\com\\example\\template\\domain\\partner\\Partner.java\n\n# replace\npartner test\nPartner Test\n\uace0\uac1d\uc0ac \ud14c\uc2a4\ud2b8\n<\/code><\/pre>\n<h2>\uc791\ub3d9\ubc29\uc2dd<\/h2>\n<p>class \ub2e8\uc5d0 \uc0dd\uc131\ud574\uc57c \ud560 \uc18c\uc2a4\ucf54\ub4dc \ubaa9\ub85d\uc744 \ucd94\uac00\ud574 \uc900\ub2e4.<br \/>\nreplace \ub2e8\uc5d0 \ubcc0\uacbd\ud574\uc57c\ud560 \ubb38\uc790\uc5f4\uc744 \ub123\uc5b4\uc90d\ub2c8\ub2e4.<\/p>\n<p>\ud30c\uc774\uc120\uc5d0\uc11c \ub514\ub809\ud1a0\ub9ac \ub610\ub294 \ud30c\uc77c\uba85 \ub610\ub294 \uc18c\uc2a4\ucf54\ub4dc\uc5d0\uc11c \ubcc0\uacbd\ud574\uc57c \ud560 \ud14d\uc2a4\ud2b8\ub4e4\uc744 \ubcc0\uacbd\ud574 \uc900 \ud6c4 \ud30c\uc77c\uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Spring Boot \ud15c\ud50c\ub9ac\ud2b8 \ud504\ub85c\uc81d\ud2b8 \uc0dd\uc131\ud558\uae30 \ud504\ub85c\uc81d\ud2b8\ub97c \uc9c4\ud589\ud558\ub2e4 \ubcf4\ub2c8 Entity-Repository-Service-Controller \uc0dd\uc131\uc774 \uc0c1\ub2f9\ud788 \uc720\uc0ac\ud55c \ud328\ud134\uc73c\ub85c \uc774\ub8e8\uc5b4\uc9c0\ub294 \uac83\uc744 \uc54c\uac8c\ub41c\ub2e4. \uc608\ub97c\ub4e4\uc5b4, User \uc5d4\ud130\ud2f0\ub97c \uc704\ud574 \uc0dd\uc131\ud558\ub294 \ud074\ub798\uc2a4\ub4e4\uc774 \uc544\ub798\uc640 \uac19\ub2e4\uace0 \ud558\uc790. User UserExpression UserRepository UserRepositoryCustom UserRepositoryImpl UserConverter UserDto UserCreateRequestDto UserModifyRequestDto UserSearchRequestDto UserResponseDto UserService UserController \ub610 Store \uc5d4\ud130\ud2f0\ub97c \uc704\ud574\uc11c \ub3d9\uc77c\ud55c \ud615\ud0dc\uc758 \ud074\ub798\uc2a4\ub4e4\uc744 \uc0dd\uc131\ud558\uac8c \ub41c\ub2e4. Store StoreExpression StoreRepository StoreRepositoryCustom StoreRepositoryImpl StoreConverter StoreDto StoreCreateRequestDto\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=7640\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29],"tags":[],"class_list":["post-7640","post","type-post","status-publish","format-standard","hentry","category-spring-boot-2-5"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/7640","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7640"}],"version-history":[{"count":2,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/7640\/revisions"}],"predecessor-version":[{"id":7652,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/7640\/revisions\/7652"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7640"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7640"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7640"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}