Spring Boot\ub294 \ud604\ub300 \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uac1c\ubc1c\uc5d0\uc11c \ub110\ub9ac \uc0ac\uc6a9\ub418\ub294 \ud504\ub808\uc784\uc6cc\ud06c\ub85c, \uac1c\ubc1c\uc790\uc5d0\uac8c \ube60\ub974\uace0 \ud6a8\uc728\uc801\uc778 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uad6c\ucd95\uc744 \uac00\ub2a5\ud558\uac8c \ud569\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \ubcf5\uc7a1\ud574\uc9d0\uc5d0 \ub530\ub77c \uc131\ub2a5 \ubb38\uc81c\ub3c4 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c \uc131\ub2a5 \ubd84\uc11d \ub3c4\uad6c\uc640 \ubaa8\ub2c8\ud130\ub9c1 \uc804\ub7b5\uc740 \ud544\uc218\uc801\uc785\ub2c8\ub2e4. \uc774 \uae00\uc5d0\uc11c\ub294 Spring Boot\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \ub2e4\uc591\ud55c \uc131\ub2a5 \ubd84\uc11d \ub3c4\uad6c\uc640 \ubaa8\ub2c8\ud130\ub9c1 \uc804\ub7b5\uc5d0 \ub300\ud574 \uae4a\uc774 \uc788\uac8c \ub2e4\ub8e8\uc5b4 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n
\uc131\ub2a5 \ubd84\uc11d\uc740 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \ud6a8\uc728\uc131\uc744 \ud3c9\uac00\ud558\uace0 \uac1c\uc120\ud558\ub294 \ub370 \uc911\uc694\ud55c \uc5ed\ud560\uc744 \ud569\ub2c8\ub2e4. \uc131\ub2a5 \ubb38\uc81c\ub294 \uc0ac\uc6a9\uc790 \uacbd\ud5d8\uc5d0 \uc9c1\uc811\uc801\uc778 \uc601\ud5a5\uc744 \ubbf8\uce58\uba70, \uc774\ub294 \ube44\uc988\ub2c8\uc2a4 \uc131\uacfc\uc5d0\ub3c4 \ud070 \uc601\ud5a5\uc744 \ubbf8\uce60 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c \uc131\ub2a5 \ubd84\uc11d\uc744 \ud1b5\ud574 \ubb38\uc81c\ub97c \uc870\uae30\uc5d0 \ubc1c\uacac\ud558\uace0 \ud574\uacb0\ud558\ub294 \uac83\uc774 \uc911\uc694\ud569\ub2c8\ub2e4.<\/p>\n
\uc131\ub2a5 \ubd84\uc11d\uc758 \uc8fc\uc694 \uc774\uc810\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n
\uc774\ub7ec\ud55c \uc774\uc720\ub85c \uc131\ub2a5 \ubd84\uc11d\uc740 \ubaa8\ub4e0 \uac1c\ubc1c\uc790\uc640 \uae30\uc5c5\uc5d0\uac8c \ud544\uc218\uc801\uc778 \uc694\uc18c\uc785\ub2c8\ub2e4.<\/p>\n
Spring Boot\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \ub2e4\uc591\ud55c \uc131\ub2a5 \ubd84\uc11d \ub3c4\uad6c\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uc139\uc158\uc5d0\uc11c\ub294 \uac00\uc7a5 \ub110\ub9ac \uc0ac\uc6a9\ub418\ub294 \ub3c4\uad6c\ub4e4\uc744 \uc18c\uac1c\ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n
Spring Boot Actuator\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc0c1\ud0dc\uc640 \uba54\ud2b8\ub9ad\uc744 \ubaa8\ub2c8\ud130\ub9c1\ud560 \uc218 \uc788\ub294 \uac15\ub825\ud55c \ub3c4\uad6c\uc785\ub2c8\ub2e4. \uc774 \ub3c4\uad6c\ub97c \uc0ac\uc6a9\ud558\uba74 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \ub2e4\uc591\ud55c \uc815\ubcf4\ub97c \uc27d\uac8c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \uba54\ubaa8\ub9ac \uc0ac\uc6a9\ub7c9, \uc2a4\ub808\ub4dc \uc218, \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc5f0\uacb0 \uc218 \ub4f1\uc744 \ubaa8\ub2c8\ud130\ub9c1\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n
\n@SpringBootApplication\npublic class DemoApplication {\n public static void main(String[] args) {\n SpringApplication.run(DemoApplication.class, args);\n }\n}\n<\/code><\/pre>\n
Actuator\ub97c \uc0ac\uc6a9\ud558\ub824\uba74, \uc758\uc874\uc131\uc744 \ucd94\uac00\ud574\uc57c \ud569\ub2c8\ub2e4:<\/p>\n
\ndependencies {\n implementation 'org.springframework.boot:spring-boot-starter-actuator'\n}\n<\/code><\/pre>\n
\uc774\uc81c Actuator\uc758 \uc5d4\ub4dc\ud3ec\uc778\ud2b8\ub97c \ud1b5\ud574 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc0c1\ud0dc\ub97c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \/actuator\/health \uc5d4\ub4dc\ud3ec\uc778\ud2b8\ub97c \ud638\ucd9c\ud558\uba74 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uac74\uac15 \uc0c1\ud0dc\ub97c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n
2.2. JProfiler<\/h3>\n
JProfiler\ub294 Java \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc131\ub2a5\uc744 \ubd84\uc11d\ud558\ub294 \ub370 \uc720\uc6a9\ud55c \ub3c4\uad6c\uc785\ub2c8\ub2e4. \uc774 \ub3c4\uad6c\ub294 CPU \uc0ac\uc6a9\ub7c9, \uba54\ubaa8\ub9ac \uc0ac\uc6a9\ub7c9, \uc2a4\ub808\ub4dc \ud65c\ub3d9 \ub4f1\uc744 \uc2dc\uac01\uc801\uc73c\ub85c \ubd84\uc11d\ud560 \uc218 \uc788\ub294 \uae30\ub2a5\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. JProfiler\ub97c \uc0ac\uc6a9\ud558\uba74 \uc131\ub2a5 \ubcd1\ubaa9 \ud604\uc0c1\uc744 \uc27d\uac8c \ucc3e\uc544\ub0bc \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n
VisualVM\uc740 Java \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \ubaa8\ub2c8\ud130\ub9c1 \ubc0f \uc131\ub2a5 \ubd84\uc11d\uc744 \uc704\ud55c \ubb34\ub8cc \ub3c4\uad6c\uc785\ub2c8\ub2e4. \uc774 \ub3c4\uad6c\ub294 JVM\uc758 \uc0c1\ud0dc\ub97c \uc2e4\uc2dc\uac04\uc73c\ub85c \ubaa8\ub2c8\ud130\ub9c1\ud560 \uc218 \uc788\uc73c\uba70, \uba54\ubaa8\ub9ac \ubc0f CPU \uc0ac\uc6a9\ub7c9, \uc2a4\ub808\ub4dc \uc0c1\ud0dc \ub4f1\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. VisualVM\uc740 \ud2b9\ud788 \uac1c\ubc1c \uc911\uc5d0 \uc720\uc6a9\ud558\uac8c \uc0ac\uc6a9\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n
YourKit\uc740 Java \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc131\ub2a5\uc744 \ubd84\uc11d\ud558\ub294 \ub370 \ub9e4\uc6b0 \uc720\uc6a9\ud55c \uc0c1\uc6a9 \ub3c4\uad6c\uc785\ub2c8\ub2e4. \uc774 \ub3c4\uad6c\ub294 \uba54\ubaa8\ub9ac \ubc0f CPU \ud504\ub85c\ud30c\uc77c\ub9c1, \uc2a4\ub808\ub4dc \ubd84\uc11d, \uba54\ubaa8\ub9ac \ub204\uc218 \ud0d0\uc9c0 \ub4f1\uc758 \uae30\ub2a5\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. YourKit\uc740 \uc9c1\uad00\uc801\uc778 UI\ub97c \uc81c\uacf5\ud558\uc5ec \uc0ac\uc6a9\uc790\uac00 \uc27d\uac8c \uc131\ub2a5 \ubb38\uc81c\ub97c \ud30c\uc545\ud560 \uc218 \uc788\ub3c4\ub85d \ub3d5\uc2b5\ub2c8\ub2e4.<\/p>\n
\uc131\ub2a5 \ubd84\uc11d \ub3c4\uad6c\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83 \uc678\uc5d0\ub3c4 \ud6a8\uacfc\uc801\uc778 \ubaa8\ub2c8\ud130\ub9c1 \uc804\ub7b5\uc744 \uc218\ub9bd\ud558\ub294 \uac83\uc774 \uc911\uc694\ud569\ub2c8\ub2e4. \uc774 \uc139\uc158\uc5d0\uc11c\ub294 Spring Boot \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ubaa8\ub2c8\ud130\ub9c1\ud558\uae30 \uc704\ud55c \uba87 \uac00\uc9c0 \uc804\ub7b5\uc744 \uc18c\uac1c\ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n
\ub85c\uadf8\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc0c1\ud0dc\ub97c \ud30c\uc545\ud558\ub294 \ub370 \uc911\uc694\ud55c \uc5ed\ud560\uc744 \ud569\ub2c8\ub2e4. Spring Boot\uc5d0\uc11c\ub294 SLF4J\uc640 Logback\uc744 \uc0ac\uc6a9\ud558\uc5ec \ub85c\uadf8\ub97c \uad00\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub85c\uadf8 \ub808\ubca8\uc744 \uc801\uc808\ud788 \uc124\uc815\ud558\uace0, \uc911\uc694\ud55c \uc774\ubca4\ud2b8\uc5d0 \ub300\ud55c \ub85c\uadf8\ub97c \ub0a8\uae30\ub294 \uac83\uc774 \uc911\uc694\ud569\ub2c8\ub2e4.<\/p>\n
\nlogging:\n level:\n root: INFO\n com.example: DEBUG\n<\/code><\/pre>\n\uc774\ub807\uac8c \uc124\uc815\ud558\uba74, com.example \ud328\ud0a4\uc9c0\uc758 \ub85c\uadf8\ub294 DEBUG \ub808\ubca8\ub85c \uae30\ub85d\ub418\uace0, \ub098\uba38\uc9c0 \ub85c\uadf8\ub294 INFO \ub808\ubca8\ub85c \uae30\ub85d\ub429\ub2c8\ub2e4.<\/p>\n
3.2. \uba54\ud2b8\ub9ad \uc218\uc9d1<\/h3>\n
\uba54\ud2b8\ub9ad \uc218\uc9d1\uc740 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc131\ub2a5\uc744 \ubaa8\ub2c8\ud130\ub9c1\ud558\ub294 \ub370 \ud544\uc218\uc801\uc785\ub2c8\ub2e4. Spring Boot Actuator\ub97c \uc0ac\uc6a9\ud558\uba74 \ub2e4\uc591\ud55c \uba54\ud2b8\ub9ad\uc744 \uc27d\uac8c \uc218\uc9d1\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, HTTP \uc694\uccad \uc218, \uc751\ub2f5 \uc2dc\uac04, \uba54\ubaa8\ub9ac \uc0ac\uc6a9\ub7c9 \ub4f1\uc744 \ubaa8\ub2c8\ud130\ub9c1\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n
\uc131\ub2a5 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud588\uc744 \ub54c \uc989\uc2dc \uc54c\ub9bc\uc744 \ubc1b\uc744 \uc218 \uc788\ub294 \uc2dc\uc2a4\ud15c\uc744 \uad6c\ucd95\ud558\ub294 \uac83\uc774 \uc911\uc694\ud569\ub2c8\ub2e4. \uc774\ub97c \uc704\ud574 Prometheus\uc640 Grafana\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Prometheus\ub294 \uba54\ud2b8\ub9ad\uc744 \uc218\uc9d1\ud558\uace0 \uc800\uc7a5\ud558\uba70, Grafana\ub294 \uc774\ub97c \uc2dc\uac01\ud654\ud558\uc5ec \ub300\uc2dc\ubcf4\ub4dc\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/p>\n
\uc815\uae30\uc801\uc778 \uc131\ub2a5 \ud14c\uc2a4\ud2b8\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc131\ub2a5\uc744 \uc720\uc9c0\ud558\ub294 \ub370 \ub3c4\uc6c0\uc774 \ub429\ub2c8\ub2e4. JMeter\uc640 \uac19\uc740 \ub3c4\uad6c\ub97c \uc0ac\uc6a9\ud558\uc5ec \ubd80\ud558 \ud14c\uc2a4\ud2b8\ub97c \uc218\ud589\ud558\uace0, \uc131\ub2a5 \uc800\ud558\uac00 \ubc1c\uc0dd\ud558\ub294 \uc9c0\uc810\uc744 \ucc3e\uc544\ub0b4\ub294 \uac83\uc774 \uc911\uc694\ud569\ub2c8\ub2e4.<\/p>\n
\uc774 \uc139\uc158\uc5d0\uc11c\ub294 \uc2e4\uc81c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c \uc131\ub2a5 \ubd84\uc11d \ub3c4\uad6c\uc640 \ubaa8\ub2c8\ud130\ub9c1 \uc804\ub7b5\uc744 \uc801\uc6a9\ud55c \uc0ac\ub840\ub97c \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n
A \uae30\uc5c5\uc740 Spring Boot\ub97c \uae30\ubc18\uc73c\ub85c \ud55c \uc804\uc790\uc0c1\uac70\ub798 \ud50c\ub7ab\ud3fc\uc744 \uc6b4\uc601\ud558\uace0 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \uc0ac\uc6a9\uc790 \uc218\uac00 \uc99d\uac00\ud568\uc5d0 \ub530\ub77c \uc131\ub2a5 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud558\uae30 \uc2dc\uc791\ud588\uc2b5\ub2c8\ub2e4. \uc774\uc5d0 \ub530\ub77c A \uae30\uc5c5\uc740 \uc131\ub2a5 \ubd84\uc11d \ub3c4\uad6c\uc640 \ubaa8\ub2c8\ud130\ub9c1 \uc804\ub7b5\uc744 \ub3c4\uc785\ud558\uae30\ub85c \uacb0\uc815\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n
A \uae30\uc5c5\uc740 Spring Boot Actuator, JProfiler, Prometheus, Grafana\ub97c \ub3c4\uc785\ud588\uc2b5\ub2c8\ub2e4. Actuator\ub97c \ud1b5\ud574 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uae30\ubcf8 \uba54\ud2b8\ub9ad\uc744 \uc218\uc9d1\ud558\uace0, JProfiler\ub97c \uc0ac\uc6a9\ud558\uc5ec CPU \ubc0f \uba54\ubaa8\ub9ac \uc0ac\uc6a9\ub7c9\uc744 \ubd84\uc11d\ud588\uc2b5\ub2c8\ub2e4. \ub610\ud55c Prometheus\uc640 Grafana\ub97c \ud1b5\ud574 \uc2e4\uc2dc\uac04 \ubaa8\ub2c8\ud130\ub9c1 \ub300\uc2dc\ubcf4\ub4dc\ub97c \uad6c\ucd95\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n
\uc774\ub7ec\ud55c \ub3c4\uad6c\uc640 \uc804\ub7b5\uc744 \ud1b5\ud574 A \uae30\uc5c5\uc740 \uc131\ub2a5 \ubb38\uc81c\ub97c \uc870\uae30\uc5d0 \ubc1c\uacac\ud558\uace0 \ud574\uacb0\ud560 \uc218 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. CPU \uc0ac\uc6a9\ub7c9\uc774 \ub192\uc740 \ucffc\ub9ac\ub97c \ucd5c\uc801\ud654\ud558\uace0, \uba54\ubaa8\ub9ac \ub204\uc218\ub97c \ucc3e\uc544\ub0b4\uc5b4 \uc218\uc815\ud568\uc73c\ub85c\uc368 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc751\ub2f5 \uc2dc\uac04\uc744 50% \ub2e8\ucd95\uc2dc\ud0ac \uc218 \uc788\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n
\uc131\ub2a5 \ubd84\uc11d\uacfc \ubaa8\ub2c8\ud130\ub9c1 \uc678\uc5d0\ub3c4 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc131\ub2a5\uc744 \ucd5c\uc801\ud654\ud558\uae30 \uc704\ud55c \ub2e4\uc591\ud55c \uae30\ubc95\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uc139\uc158\uc5d0\uc11c\ub294 \uba87 \uac00\uc9c0 \uc8fc\uc694 \uae30\ubc95\uc744 \uc18c\uac1c\ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n
\ub370\uc774\ud130\ubca0\uc774\uc2a4\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc131\ub2a5\uc5d0 \ud070 \uc601\ud5a5\uc744 \ubbf8\uce69\ub2c8\ub2e4. \ucffc\ub9ac\ub97c \ucd5c\uc801\ud654\ud558\uace0 \uc778\ub371\uc2a4\ub97c \uc801\uc808\ud788 \uc124\uc815\ud558\ub294 \uac83\uc774 \uc911\uc694\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \uc790\uc8fc \uc870\ud68c\ub418\ub294 \uceec\ub7fc\uc5d0 \uc778\ub371\uc2a4\ub97c \ucd94\uac00\ud558\uba74 \uc870\ud68c \uc131\ub2a5\uc774 \ud06c\uac8c \ud5a5\uc0c1\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n
\nCREATE INDEX idx_user_email ON users(email);\n<\/code><\/pre>\n5.2. \uce90\uc2f1 \uc804\ub7b5<\/h3>\n
\uce90\uc2f1\uc740 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc811\uadfc\uc744 \uc904\uc774\uace0 \uc751\ub2f5 \uc18d\ub3c4\ub97c \ub192\uc774\ub294 \ub370 \ud6a8\uacfc\uc801\uc785\ub2c8\ub2e4. Spring Boot\uc5d0\uc11c\ub294 Ehcache, Redis\uc640 \uac19\uc740 \uce90\uc2dc \uc194\ub8e8\uc158\uc744 \uc27d\uac8c \ud1b5\ud569\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n
\n@Bean\npublic CacheManager cacheManager() {\n return new EhCacheCacheManager(ehCacheManagerFactoryBean().getObject());\n}\n<\/code><\/pre>\n5.3. \ube44\ub3d9\uae30 \ucc98\ub9ac<\/h3>\n
\ube44\ub3d9\uae30 \ucc98\ub9ac\ub97c \ud1b5\ud574 \uc694\uccad \ucc98\ub9ac \uc2dc\uac04\uc744 \ub2e8\ucd95\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Spring Boot\uc5d0\uc11c\ub294 @Async \uc5b4\ub178\ud14c\uc774\uc158\uc744 \uc0ac\uc6a9\ud558\uc5ec \ube44\ub3d9\uae30 \uba54\uc11c\ub4dc\ub97c \uc27d\uac8c \uc815\uc758\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n
\n@Async\npublic CompletableFuture asyncMethod() {\n \/\/ \ube44\ub3d9\uae30 \uc791\uc5c5 \uc218\ud589\n}\n<\/code><\/pre>\n6. \ucd5c\uc2e0 \ub3d9\ud5a5 \ubc0f \uae30\uc220<\/h2>\n
\uc131\ub2a5 \ubd84\uc11d \ubc0f \ubaa8\ub2c8\ud130\ub9c1 \ubd84\uc57c\ub294 \uc9c0\uc18d\uc801\uc73c\ub85c \ubc1c\uc804\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uc139\uc158\uc5d0\uc11c\ub294 \ucd5c\uadfc\uc758 \ub3d9\ud5a5\uacfc \uae30\uc220\uc5d0 \ub300\ud574 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n
6.1. \ud074\ub77c\uc6b0\ub4dc \uae30\ubc18 \ubaa8\ub2c8\ud130\ub9c1<\/h3>\n
\ud074\ub77c\uc6b0\ub4dc \ud658\uacbd\uc5d0\uc11c\uc758 \ubaa8\ub2c8\ud130\ub9c1\uc740 \uc810\uc810 \ub354 \uc911\uc694\ud574\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4. AWS CloudWatch, Azure Monitor\uc640 \uac19\uc740 \ud074\ub77c\uc6b0\ub4dc \uae30\ubc18 \uc194\ub8e8\uc158\uc740 \uc790\ub3d9\ud654\ub41c \ubaa8\ub2c8\ud130\ub9c1\uacfc \uacbd\uace0 \uae30\ub2a5\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/p>\n
6.2. AI \uae30\ubc18 \uc131\ub2a5 \ubd84\uc11d<\/h3>\n
\uc778\uacf5\uc9c0\ub2a5(AI)\uc744 \ud65c\uc6a9\ud55c \uc131\ub2a5 \ubd84\uc11d \uae30\uc220\uc774 \ubc1c\uc804\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. AI\ub294 \ub300\ub7c9\uc758 \ub370\uc774\ud130\ub97c \ubd84\uc11d\ud558\uc5ec \ud328\ud134\uc744 \ucc3e\uc544\ub0b4\uace0, \uc608\uce21 \ubaa8\ub378\uc744 \ud1b5\ud574 \uc131\ub2a5 \ubb38\uc81c\ub97c \uc0ac\uc804\uc5d0 \uc608\ubc29\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n
7. \uacb0\ub860<\/h2>\n
Spring Boot\uc5d0\uc11c\uc758 \uace0\uae09 \uc131\ub2a5 \ubd84\uc11d \ub3c4\uad6c\uc640 \ubaa8\ub2c8\ud130\ub9c1 \uc804\ub7b5\uc740 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc131\uacf5\uc5d0 \ud544\uc218\uc801\uc785\ub2c8\ub2e4. \ub2e4\uc591\ud55c \ub3c4\uad6c\uc640 \uc804\ub7b5\uc744 \ud1b5\ud574 \uc131\ub2a5 \ubb38\uc81c\ub97c \uc870\uae30\uc5d0 \ubc1c\uacac\ud558\uace0 \ud574\uacb0\ud568\uc73c\ub85c\uc368 \uc0ac\uc6a9\uc790 \uacbd\ud5d8\uc744 \ud5a5\uc0c1\uc2dc\ud0a4\uace0 \ube44\uc988\ub2c8\uc2a4 \uc131\uacfc\ub97c \uac1c\uc120\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n
8. \ucc38\uace0 \uc790\ub8cc<\/h2>\n
\uc774 \uae00\uc5d0\uc11c \ub2e4\ub8ec \ub0b4\uc6a9\uc5d0 \ub300\ud55c \ucd94\uac00 \uc790\ub8cc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n
\n- Spring Boot \uacf5\uc2dd \ubb38\uc11c<\/a><\/li>\n
- JProfiler \uacf5\uc2dd \uc6f9\uc0ac\uc774\ud2b8<\/a><\/li>\n
- VisualVM \uacf5\uc2dd \uc6f9\uc0ac\uc774\ud2b8<\/a><\/li>\n
- YourKit \uacf5\uc2dd \uc6f9\uc0ac\uc774\ud2b8<\/a><\/li>\n
- Prometheus \uacf5\uc2dd \uc6f9\uc0ac\uc774\ud2b8<\/a><\/li>\n
- Grafana \uacf5\uc2dd \uc6f9\uc0ac\uc774\ud2b8<\/a><\/li>\n<\/ul>\n
\uc774 \uae00\uc774 Spring Boot\uc5d0\uc11c\uc758 \uc131\ub2a5 \ubd84\uc11d\uacfc \ubaa8\ub2c8\ud130\ub9c1 \uc804\ub7b5\uc5d0 \ub300\ud55c \uc774\ud574\ub97c \ub192\uc774\ub294 \ub370 \ub3c4\uc6c0\uc774 \ub418\uc5c8\uae30\ub97c \ubc14\ub78d\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"
\ubaa9\ucc28 Spring Boot\uc5d0\uc11c\uc758 \uace0\uae09 \uc131\ub2a5 \ubd84\uc11d \ub3c4\uad6c\uc640 \ubaa8\ub2c8\ud130\ub9c1 \uc804\ub7b5 1. \uc131\ub2a5 \ubd84\uc11d\uc758 \uc911\uc694\uc131 2. Spring […]<\/p>\n","protected":false},"author":1,"featured_media":33704,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1957],"tags":[2421,2189,2156],"class_list":["post-51538","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development","tag-boot","tag-health","tag-spring"],"acf":[],"_links":{"self":[{"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/posts\/51538","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/comments?post=51538"}],"version-history":[{"count":0,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/posts\/51538\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/media\/33704"}],"wp:attachment":[{"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/media?parent=51538"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/categories?post=51538"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/tags?post=51538"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}