{"id":790,"date":"2015-05-17T17:13:22","date_gmt":"2015-05-18T02:13:22","guid":{"rendered":"http:\/\/blog.box.kr\/?p=790"},"modified":"2015-05-17T17:13:22","modified_gmt":"2015-05-18T02:13:22","slug":"scrap-mqtt-%ec%8a%a4%ed%84%b0%eb%94%94-%eb%85%b8%ed%8a%b8","status":"publish","type":"post","link":"https:\/\/blog.box.kr\/?p=790","title":{"rendered":"[scrap] MQTT \uc2a4\ud130\ub514 \ub178\ud2b8"},"content":{"rendered":"<p><a href=\"http:\/\/bcho.tistory.com\/864\">http:\/\/bcho.tistory.com\/864<\/a><\/p>\n<p>&nbsp;<\/p>\n<p><b>MQTT \uc2a4\ud130\ub514 \ub178\ud2b8<\/b><\/p>\n<p><b>\uc2a4\ud130\ub514 \ub178\ud2b8<\/b><\/p>\n<p>&#8211; IBM\uc5d0\uc11c \ub9cc\ub4ec<\/p>\n<p>&#8211; FB \uba54\uc2e0\uc838\uac00 \uc774\uac78 \uc0ac\uc6a9. \uad6d\ub0b4 \ud1b5\uc2e0\uc0ac PUSH \uc11c\ubc84\ub3c4 \uc774\uac78 \uc0ac\uc6a9\ud568<\/p>\n<p>&#8211; \uc77c\ub2e8 FB\uac00 \uc4f0\ub2c8, \ub3d9\ub0a8\uc544\uad8c Telco\uc5d0\uc11c \ud328\ud0b7 \uac78\ub9ac\ub294 \ubb38\uc81c\ub294 \uc5c6\uc744\ub4ef<\/p>\n<p>&#8211; Qos 0,1,2\ub85c \ud574\uc11c, 2 \uc758 \uacbd\uc6b0 message delivery\ub97c gurantee\ud568<\/p>\n<p>&#8211; \uc800\uc804\ub825!! \uc774\uac8c \uc911\uc694.<\/p>\n<p>&#8211; XMPP\uc5d0 \ube44\ud574\uc11c \ud6e8\uc52c \uacbd\ub7c9. (XMPP\ub294 XML, MQTT\ub294 byte\ub85c \ubcf4\ub0b4\ub294\ub370, 2\ubc14\uc774\ud2b8\ubd80\ud130 \uc2dc\uc791)<\/p>\n<p>&#8211; MQTT \uc11c\ubc84\ub97c \ub77c\uc988\ubca0\ub9ac\uc640 \uac19\uc740 \uc784\ubca0\ub514\ub4dc \uc11c\ubc84\uc5d0\ub3c4 \ub123\uc744 \uc218 \uc788\uc74c. IOT\uc6a9!! \uc989 Things\uac00 \uc11c\ubc84\uac00 \ub420 \uc218 \uc788\ub2e4!!<\/p>\n<p>&#8211; \ub300\ubd80\ubd84 \uc0ac\uc6a9\uc790 \uc778\uc99d\ub9cc \uc81c\uacf5 (user id\/password \ubc29\uc2dd) \uc774\uac83\ub3c4 \ub300\ubd80\ubd84 \uc11c\ubc84\ub4e4\uc774 \ud30c\uc77c\uc5d0 \uc800\uc7a5\ud55c\ub2e4. (IDM\uc774\ub098 KEY \uc2dc\uc2a4\ud15c\uacfc \uc5f0\uacc4 \ud544\uc694)<\/p>\n<p>&#8211; TLS\/SSL\uc740 \uc9c0\uc6d0. X.509 \uc778\uc99d\uc11c\ub97c \uc774\uc6a9\ud55c \uc591\ubc29\ud5a5 \uc778\uc99d\ub3c4 \uc9c0\uc6d0<\/p>\n<p><b>\uac04\ub2e8 \ud14c\uc2a4\ud2b8<\/b><\/p>\n<p><b>1. <a href=\"http:\/\/mosquitto.org\/download\/\">http:\/\/mosquitto.org\/download\/<\/a> \uc5d0\uc11c \uc708\ub3c4\uc6b0\uc988\uc6a9 \ubc1b\uc544\uc11c \uc124\uce58<\/b><\/p>\n<p><b>2. \uc11c\ubc84 \uad6c\ub3d9<\/b><\/p>\n<p><span class=\"imageblock\"><span dir=\"http:\/\/cfile4.uf.tistory.com\/original\/22233D4C52FCA9770BF1E1\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/cfile4.uf.tistory.com\/image\/22233D4C52FCA9770BF1E1\" alt=\"\" width=\"677\" height=\"762\" \/><\/span><\/span><\/p>\n<p><b>2. Message Subscriber \uae30\ub3d9<\/b><\/p>\n<p>: -h host\uba85, -t \ud1a0\ud53d\uba85<br \/>\n<span id=\"callbacknestbchotistorycom864221\"><\/span><\/p>\n<p><span class=\"imageblock\"><span dir=\"http:\/\/cfile4.uf.tistory.com\/original\/22626C4952FCA98E26118E\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/cfile4.uf.tistory.com\/image\/22626C4952FCA98E26118E\" alt=\"\" width=\"677\" height=\"426\" \/><\/span><\/span><\/p>\n<p><b>3. \uba54\uc138\uc9c0 \ubcf4\ub0b4\uae30<\/b><\/p>\n<p>: -h \ud638\uc2a4\ud2b8\uba85 -t \ud1a0\ud53d\uba85 -m &#8220;\uba54\uc138\uc9c0&#8221;<\/p>\n<p><span class=\"imageblock\"><span dir=\"http:\/\/cfile30.uf.tistory.com\/original\/2213DF4A52FCA9A02B71F7\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/cfile30.uf.tistory.com\/image\/2213DF4A52FCA9A02B71F7\" alt=\"\" width=\"677\" height=\"394\" \/><\/span><\/span><\/p>\n<p>\u203b \ucc38\uace0 :<\/p>\n<ul>\n<li>\uadf8\ub0e5 \uc624\ub798 \ub194\ub450\uba74, \uc11c\ubc84\uc5d0\uc11c Subscriber\ub85c hearbeat\ub97c \ubcf4\ub0b4\ub294 \uac83\uc744 \ubcfc \uc218 \uc788\uc74c.<\/li>\n<li>Subscriber\ub97c hangup \uc2dc\ucf1c \ubc84\ub9ac\uba74, \uc11c\ubc84\uc5d0\uc11c \uc790\ub3d9\uc73c\ub85c Connection\uc744 \ub04a\uc74c.<\/li>\n<li>Subscriber hangup\uc744 \ud480\uc5b4\uc8fc\uba74, \uc790\ub3d9\uc73c\ub85c \uc11c\ubc84\ub85c \ubd99\ub294 \uac78 \ubcfc \uc218 \uc788\uc74c<\/li>\n<\/ul>\n<p><b>MQTT \uc11c\ubc84 \uac80\ud1a0 \uacb0\uacfc \uc694\uc57d<\/b><\/p>\n<p><b>mosquitto<\/b><\/p>\n<p>&#8211; \uac04\ud3b8\ud574\uc11c \uc88b\uae30\ub294 \ud55c\ub370. C \uae30\ubc18. \uadf8\ub9ac\uace0 \ud074\ub7ec\uc2a4\ud130\ub9c1\uc774 \uc548\ub428. \u00a0(HA, Fail over\ub294 \uc5b4\ucf00 \ud55c\ub2e4\ub0d0?). Facebook\uc774 \uc4f4\ub2e4\uace0 \ud558\ub294\ub370. Consistent hashing\uac19\uc740\uac78 \uc368\uc57c \ud558\ub294\ub370, Fail back\uc774 \ubcf5\uc7a1\ud560\ub4ef<\/p>\n<p>&#8211; user authentication\uc744 \uc774\uac74. file\uc5d0 \ub123\uace0 \ud55c\ub2e4.<\/p>\n<p>&#8211; \ud14c\uc2a4\ud2b8 \ud574\ubcf4\ub2c8 \uc77c\uc815 \uc2dc\uac04 \ud328\ud0b7\uc774 \uc548\uc624\uba74 \ud558\ud2b8\ube44\ud2b8 \uba54\uc138\uc9c0 \ubcf4\ub0b4\uae30 \uc2dc\uc791\ud558\uace0, \uba54\uc138\uc9c0\uac00 \uc548\uc624\uba74 \ub04a\uc5b4 \ubc84\ub9b0\ub2e4.<\/p>\n<p><b>HiveMQ (\uc800\uac00 \uc0c1\uc6a9)<\/b><\/p>\n<p>&#8211; Clustering \ub428 (Infinispan \uc500)<\/p>\n<p>&#8211; JMX \ubaa8\ub2c8\ud130\ub9c1 \ub514\ub294 \uac78\ub85c \ubd10\uc11c. \uc774\uac83\uc740 JAVA<\/p>\n<p>&#8211; MultiCast\ub85c \ud074\ub7ec\uc2a4\ud130\ub9c1\uc744 \ud558\uc9c0\ub9cc, TCP\ub85c Fixed Size \ud074\ub7ec\uc2a4\ud130\ub098, AWS EC2 \ud074\ub7ec\uc2a4\ud130 \uc9c0\uc6d0\uc774 \uac00\ub2a5\ud568.<\/p>\n<p>&#8211; AWS\/Azure \ubaa8\ub450 \uc9c0\uc6d0<\/p>\n<p>&#8211; \uadfc\ub370 \ud68c\uc0ac\uac00 \uc880 \uc791\uc544 \ubcf4\uc778\ub2e4?? \ub3c5\uc77c SI\ud68c\uc0ac<\/p>\n<p><b>Rabbit MQ<\/b><\/p>\n<p>&#8211; shared memory \uad6c\uc870\uac00 \uc5c6\uc5b4\uc11c \uc5b4\ub5bb\uac8c \ud558\ub294\uac00 \uad81\uae08\ud558\uae30\ub294 \ud558\uc9c0\ub9cc, federation\uc774\ub098 shovel \ucee8\uc149\uc744 \uc4f0\uba74 WAN \uad6c\uac04\ub3c4 \uac00\ub2a5\ud558\uae30 \ub54c\ubb38\uc5d0, \uc8fc\uc758\uae4a\uac8c \ubcfc\ub9cc\ud568. \ubb34\uc5c7\ubcf4\ub2e4 \ubb34\ub8cc\uc5d0\ub2e4\uac00 \uc0c1\ub300\uc801\uc73c\ub85c Learning curve\uac00 \ub0ae\uc74c.<\/p>\n<p>&#8211; MQTT 3.1 \uc9c0\uc6d0<\/p>\n<p>&#8211; QoS0\uacfc 1\ub9cc \uc9c0\uc6d0 (2\ub294 \uc9c0\uc6d0 \uc548\ud568)<\/p>\n<p>&#8211; SSL \uc9c0\uc6d0<\/p>\n<p>&#8211; Session stickiness \uc9c0\uc6d0<\/p>\n<p><b>IBM MQ\u00a0<\/b><\/p>\n<p>&#8211; http:\/\/www-03.ibm.com\/software\/products\/en\/wmq-telemetry \uc774\uac8c \uac11\uc778\ub4ef<\/p>\n<p><b>Vert.x<\/b><\/p>\n<p>&#8211; \u00a0\uc544\uc9c1 \ubd80\uc871\ud55c\ub4ef. &#8211; \ud2b9\ud788 QoS2 \uc9c0\uc6d0\ud558\ub824\uba74 Q\ub098 \uba54\uc138\uc9c0 \uc804\uc1a1\uc5d0 \ub300\ud55c \uacb0\uacfc\uce58\ub97c \uac00\uc9c0\uace0 resend\ud560 \uc218 \uc788\ub294 \uba54\uce74\ub2c8\uc998\uc774 \uc788\uc5b4\uc57c \ud558\ub294\ub370 \uc5c6\ub294\ub4ef.<\/p>\n<p><b>\ucd94\uac00\uc801\uc778 \uc758\ubb38\uc0ac\ud56d<\/b><\/p>\n<ul>\n<li>\uc11c\ubc84\uc5d0 \ubd99\uace0 \ub5a8\uc5b4\uc9c0\ub294 \uc774\ubca4\ud2b8\ub97c \ubc1b\uc744 \uc218 \uc788\ub098?<\/li>\n<li>\ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \ub5a8\uc5b4\uc9c0\ub294 \uc774\ubca4\ud2b8\ub294 \uc5b4\ub5bb\uac8c \ubc1b\uc9c0? mosquitto\ub294 \ub2e8\uc21c \uc11c\ubc84\ub77c\uc11c \ubaac\uac00 event listener\ub97c \ub2ec \uc218 \uc5c6\uc5b4. \uadf8\ub798\uc11c, \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \ub5a8\uc5b4\uc9c8\ub54c \ubaac\uac00\ub97c \ud560 \uc218 \uc5c6\uc9c0.<\/li>\n<li>\uadfc\ub370, \ub85c\uadf8\ub97c \ubcf4\uba74 \uc8fc\uae30\uc801\uc73c\ub85c ping\uc744 \ubcf4\ub0b4\ub294 \uac78?<\/li>\n<\/ul>\n<p><b>\ud074\ub77c\uc774\uc5b8\ud2b8<\/b><\/p>\n<p>&#8211; \uc774\ud074\ub9bd\uc2a4 Paho\ub4f1 \uc81c\ubc95 \ub9ce\uc74c<\/p>\n<p>&#8211; Embedded \uc2dc\uc2a4\ud15c\uc5d0 \ub123\uc744 \uc218 \uc788\uc744 \uc815\ub3c4\ub85c \uc791\uc74c<\/p>\n<p><b>\uad1c\ucc2e\uc740 \uc790\ub8cc<\/b><\/p>\n<p><iframe loading=\"lazy\" src=\"http:\/\/www.slideshare.net\/slideshow\/embed_code\/16217231\" width=\"427\" height=\"356\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<div>\n<p><strong><a title=\"Android Push Server &amp; MQTT\" href=\"https:\/\/www.slideshare.net\/ultrasonic\/android-push-server-mqtt\" target=\"_blank\">Android Push Server &amp; MQTT<\/a> <\/strong>from <strong><a href=\"http:\/\/www.slideshare.net\/ultrasonic\" target=\"_blank\">\uad11\uc6b4 \uc774<\/a><\/strong>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>http:\/\/bcho.tistory.com\/864 &nbsp; MQTT \uc2a4\ud130\ub514 \ub178\ud2b8 \uc2a4\ud130\ub514 \ub178\ud2b8 &#8211; IBM\uc5d0\uc11c \ub9cc\ub4ec &#8211; FB \uba54\uc2e0\uc838\uac00 \uc774\uac78 \uc0ac\uc6a9. \uad6d\ub0b4 \ud1b5\uc2e0\uc0ac PUSH \uc11c\ubc84\ub3c4 \uc774\uac78 \uc0ac\uc6a9\ud568 &#8211; \uc77c\ub2e8 FB\uac00 \uc4f0\ub2c8, \ub3d9\ub0a8\uc544\uad8c Telco\uc5d0\uc11c \ud328\ud0b7 \uac78\ub9ac\ub294 \ubb38\uc81c\ub294 \uc5c6\uc744\ub4ef &#8211; Qos 0,1,2\ub85c \ud574\uc11c, 2 \uc758 \uacbd\uc6b0 message delivery\ub97c gurantee\ud568 &#8211; \uc800\uc804\ub825!! \uc774\uac8c \uc911\uc694. &#8211; XMPP\uc5d0 \ube44\ud574\uc11c \ud6e8\uc52c \uacbd\ub7c9. (XMPP\ub294 XML, MQTT\ub294 byte\ub85c \ubcf4\ub0b4\ub294\ub370, 2\ubc14\uc774\ud2b8\ubd80\ud130 \uc2dc\uc791) &#8211; MQTT \uc11c\ubc84\ub97c \ub77c\uc988\ubca0\ub9ac\uc640 \uac19\uc740 \uc784\ubca0\ub514\ub4dc \uc11c\ubc84\uc5d0\ub3c4 \ub123\uc744 \uc218 \uc788\uc74c. IOT\uc6a9!! \uc989 Things\uac00 \uc11c\ubc84\uac00 \ub420 \uc218 \uc788\ub2e4!! &#8211; \ub300\ubd80\ubd84 \uc0ac\uc6a9\uc790 \uc778\uc99d\ub9cc \uc81c\uacf5 (user id\/password \ubc29\uc2dd) \uc774\uac83\ub3c4 \ub300\ubd80\ubd84 \uc11c\ubc84\ub4e4\uc774 \ud30c\uc77c\uc5d0 \uc800\uc7a5\ud55c\ub2e4. (IDM\uc774\ub098 KEY \uc2dc\uc2a4\ud15c\uacfc \uc5f0\uacc4 \ud544\uc694) &#8211; TLS\/SSL\uc740 \uc9c0\uc6d0. X.509 \uc778\uc99d\uc11c\ub97c \uc774\uc6a9\ud55c \uc591\ubc29\ud5a5 \uc778\uc99d\ub3c4 \uc9c0\uc6d0 \uac04\ub2e8 \ud14c\uc2a4\ud2b8 1. http:\/\/mosquitto.org\/download\/ \uc5d0\uc11c \uc708\ub3c4\uc6b0\uc988\uc6a9 \ubc1b\uc544\uc11c \uc124\uce58 2. \uc11c\ubc84 \uad6c\ub3d9 2. Message Subscriber \uae30\ub3d9 : -h host\uba85, -t \ud1a0\ud53d\uba85 3. \uba54\uc138\uc9c0 \ubcf4\ub0b4\uae30 : -h \ud638\uc2a4\ud2b8\uba85 -t \ud1a0\ud53d\uba85 -m &#8220;\uba54\uc138\uc9c0&#8221; \u203b \ucc38\uace0 : \uadf8\ub0e5 \uc624\ub798 \ub194\ub450\uba74, \uc11c\ubc84\uc5d0\uc11c Subscriber\ub85c hearbeat\ub97c \ubcf4\ub0b4\ub294 \uac83\uc744 \ubcfc \uc218 \uc788\uc74c. Subscriber\ub97c hangup \uc2dc\ucf1c \ubc84\ub9ac\uba74, \uc11c\ubc84\uc5d0\uc11c \uc790\ub3d9\uc73c\ub85c Connection\uc744 \ub04a\uc74c. Subscriber hangup\uc744 \ud480\uc5b4\uc8fc\uba74, \uc790\ub3d9\uc73c\ub85c \uc11c\ubc84\ub85c \ubd99\ub294 \uac78 \ubcfc \uc218 \uc788\uc74c MQTT \uc11c\ubc84 \uac80\ud1a0 \uacb0\uacfc \uc694\uc57d mosquitto &#8211; \uac04\ud3b8\ud574\uc11c \uc88b\uae30\ub294 \ud55c\ub370. C \uae30\ubc18. \uadf8\ub9ac\uace0 \ud074\ub7ec\uc2a4\ud130\ub9c1\uc774 \uc548\ub428. \u00a0(HA, Fail over\ub294 \uc5b4\ucf00 \ud55c\ub2e4\ub0d0?). Facebook\uc774 \uc4f4\ub2e4\uace0 \ud558\ub294\ub370. Consistent hashing\uac19\uc740\uac78 \uc368\uc57c \ud558\ub294\ub370, Fail back\uc774 \ubcf5\uc7a1\ud560\ub4ef &#8211; user authentication\uc744 \uc774\uac74. file\uc5d0 \ub123\uace0 \ud55c\ub2e4. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"ngg_post_thumbnail":0,"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[4,7],"tags":[],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5q9Zn-cK","jetpack-related-posts":[{"id":1239,"url":"https:\/\/blog.box.kr\/?p=1239","url_meta":{"origin":790,"position":0},"title":"Flutter \uc0ac\uc6a9 \uc815\ub9ac","date":"2021-05-14","format":false,"excerpt":"OSX, Windows, Linux, Web\uc5d0\uc11c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c\ub294 \uac01 \uae30\ub2a5\uc744 \ucf1c\uc918\uc57c\ud568. Flutter\ub85c \ub370\uc2a4\ud06c\ud1b1 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uac1c\ubc1c \uc2dc\uc791\ud558\uae30 \uc77c\ud68c\uc131 \uad6c\uc131 \ubcc0\uacbd\uc73c\ub85c \ub370\uc2a4\ud06c\ud1b1 \uc9c0\uc6d0\uc744 \uad6c\uc131\ud574\uc57c\ud569\ub2c8\ub2e4.$ flutter config --enable-windows-desktop # for the Windows runner$ flutter config --enable-macos-desktop \u00a0 # for the macOS runner$ flutter config --enable-linux-desktop \u00a0 # for the Linux runner \ub370\uc2a4\ud06c\ud1b1 \uc6a9 Flutter\uac00 \ud65c\uc131\ud654\ub418\uc5c8\ub294\uc9c0\u2026","rel":"","context":"In &quot;flutter&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":118,"url":"https:\/\/blog.box.kr\/?p=118","url_meta":{"origin":790,"position":1},"title":"[\ud38c]\ud55c\uad6d\uc758 \uc548\ub4dc\ub85c\uc774\ub4dc \uacfc\ub2e4 \uc758\uc874, \ubd80\uc791\uc6a9\uc774 \uc6b0\ub824\ub418\ub294 \uc774\uc720","date":"2014-06-23","format":false,"excerpt":"\ubbf8\uad6d\uc758 \uc2dc\uc7a5\uc870\uc0ac\uc5c5\uccb4 \uc2a4\ud2b8\ub798\ud2f0\uc9c0\uc560\ub110\ub9ac\ud2f1\uc2a4(SA)\ub294 \uc138\uacc4 88\uac1c\uad6d\uc744 \ub300\uc0c1\uc73c\ub85c \uc6b4\uc601\uccb4\uc81c(OS)\ubcc4 \uc2a4\ub9c8\ud2b8\ud3f0 \uc0ac\uc6a9\uc790 \uc218(IB; Installed Base)\uc640 \uc810\uc720\uc728\uc744 \uc870\uc0ac\ud55c \uacb0\uacfc, \ud55c\uad6d\uc758 \uc548\ub4dc\ub85c\uc774\ub4dc \uc2a4\ub9c8\ud2b8\ud3f0 \uc0ac\uc6a9\uc790 \uc810\uc720\uc728\uc774 93.4%\ub85c \uc138\uacc4\uc5d0\uc11c \uac00\uc7a5 \ub192\uc558\ub2e4\uace0 21\uc77c \ubc1c\ud45c\ud588\ub2e4. \uc0ac\uc6a9\uc790 \uc218(IB)\ub294 \ud2b9\uc815 \uae30\uac04\uc5d0 \uc81c\ud488\uc774 \uc5bc\ub9c8\ub098 \ud314\ub838\ub294\uac00\ub97c \uc9d1\uacc4\ud558\ub294 \ud310\ub9e4\ub7c9(\uacf5\uae09\ub7c9, Shipment)\uacfc \ub2ec\ub9ac \ub2f9\uc2dc \uc0ac\uc6a9\ub418\uace0 \uc788\ub294 \uc81c\ud488\uc774 \uba87 \ub300\uc778\uac00\ub97c \uc870\uc0ac\ud55c \uc218\uce58. \ud55c\uad6d\uc758 \uc548\ub4dc\ub85c\uc774\ub4dc \uc0ac\uc6a9\uc790 \uc218 \ube44\uc728\uc740\u2026","rel":"","context":"In &quot;\uc77c\ubc18&quot;","img":{"alt_text":"","src":"http:\/\/cfile24.uf.tistory.com\/image\/2318055052DFBCD52CE721","width":350,"height":200},"classes":[]},{"id":74,"url":"https:\/\/blog.box.kr\/?p=74","url_meta":{"origin":790,"position":2},"title":"Logging\uc124\uc815 for JEUS5","date":"2014-06-12","format":false,"excerpt":"Logging\uc124\uc815 for JEUS5 \uc18c\uac1c \uc774 \ubb38\uc11c\ub294 JEUS 5\uc758 \uc6f9 \uad00\ub9ac\uc790\ub97c \uc0ac\uc6a9\ud55c logging \uc124\uc815 \ubc29\ubc95 \ubc0f customization \ubc29\ubc95, log4j \uc0ac\uc6a9\ubc95 \ub4f1\uc744 \uc124\uba85\ud55c\ub2e4. \uae30\ubcf8logger \ud30c\uc77c \ucd5c\ucd08 JEUS \uc124\uce58 \uc2dc, JEUS log\ub294 default\ub85c console handler\ub97c \uc0ac\uc6a9\ud558\uae30 \ub54c\ubb38\uc5d0 JEUS manager\uc640 \ubaa8\ub4e0 engine container\uc758 log message\uac00 stdout\ud615\ud0dc\ub85c \ucd9c\ub825\ub41c\ub2e4. \ub610\ud55c web container \uc758 access log\uac00 $JEUS_HOME\/logs\/<\ub178\ub4dc\uba85>\/<\ub178\ub4dc\uba85>_<\ucee8\ud14c\uc774\ub108\uba85>\/servlet\/accesslog\/access.log\u2026","rel":"","context":"In &quot;JEUS &amp; WEBToB&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":357,"url":"https:\/\/blog.box.kr\/?p=357","url_meta":{"origin":790,"position":3},"title":"top5 open \uc18c\uc2a4 \ud504\ub85c\uc81d\ud2b8 \uad00\ub9ac \ud234","date":"2014-09-02","format":false,"excerpt":"\uc774 \ubb38\uc11c\ub294 \uc138\uacc4\uc801\uc73c\ub85c \ub9ce\uc774 \uc0ac\uc6a9\ub418\uace0 \uc788\ub294 5\uac1c\uc758 \uc624\ud508 \uc18c\uc2a4 \ud504\ub85c\uc81d\ud2b8 \uad00\ub9ac \ub3c4\uad6c\ub97c \uac04\ub2e8\ud558\uac8c \uc18c\uac1c\ud569\ub2c8\ub2e4. TOP5\ub294 opensource.com\uc758\u00a0Top 5 open source project management tools in 2014\ub97c \ucc38\uc870\ud558\uc5ec \uc791\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4.\u00a0 ProjectLibre ProjectLibre\ub294 MS Project\ub97c \ub300\uccb4\ud560 \uc218 \uc788\ub294 \ud504\ub85c\uc81d\ud2b8 \uad00\ub9ac \ub3c4\uad6c\uc785\ub2c8\ub2e4. Java\uac00 \uc124\uce58\ub418\uc5b4 \uc788\ub2e4\uba74, Linux, Mac OS, Windows OS\uc5d0\uc11c \uc0ac\uc6a9\uc774 \uac00\ub2a5\ud569\ub2c8\ub2e4. \ud604\uc7ac \ub77c\uc774\uc13c\uc2a4\ub294 Common Public\u2026","rel":"","context":"In &quot;\uae30\uc220\uc790\ub8cc&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":367,"url":"https:\/\/blog.box.kr\/?p=367","url_meta":{"origin":790,"position":4},"title":"[\ud38c]Scala \uc2dc\uc791\ud558\uae30","date":"2014-09-15","format":false,"excerpt":"\u00a0 http:\/\/ppassa.wordpress.com\/2012\/02\/19\/getting_started_scala\/ Scala \uc2dc\uc791\ud558\uae30 \uc694\uc998 \ub4e4\uc5b4\uc11c\u00a0Scala\ub97c \uacf5\ubd80\ud558\uace0 \uc788\ub2e4. \uc544\uc9c1 \ub9ce\uc774 \ubd80\uc871\ud558\uc9c0\ub9cc, \uc9c0\uae08\uae4c\uc9c0 \ubc30\uc6b4 \uac83\ub4e4 \uae30\ub85d\ud574\ub450\uace0, \ub610 \ud639\uc2dc \uc870\uae08\uc774\ub77c\ub3c4 \ub3c4\uc6c0\uc774 \ub418\ub294 \ubd84\ub4e4\uc774 \uc788\uc744 \uc9c0 \ubab0\ub77c \uacf5\uc720\ud574\ubcf4\uace0\uc790 \ud55c\ub2e4. 1. \ub4e4\uc5b4\uac00\uba70 \ubb58 \ub610 \ubc30\uc6cc\uc57c \ud55c\ub2e8 \ub9d0\uc778\uac00? \uc774\ubbf8 C++, Java, Python, Ruby, JavaScript \ub4f1 \ub9ce\uc740 \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4\ub4e4\uc774 \uc788\ub294\ub370, \uc65c \uc790\uafb8 \uc0c8\ub85c\uc6b4 \uc5b8\uc5b4\uac00 \ub098\uc624\uace0 \uc788\ub0d0?\u2026","rel":"","context":"In &quot;\ucc38\uace0\ub97c \uc704\ud55c \uc800\uc7a5\ubb3c&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":720,"url":"https:\/\/blog.box.kr\/?p=720","url_meta":{"origin":790,"position":5},"title":"[\ud38c]Java \uc5d0\uc11c DataBase Replication Master\/Slave (write\/read) \ubd84\uae30 \ucc98\ub9ac\ud558\uae30","date":"2015-04-15","format":false,"excerpt":"http:\/\/kwon37xi.egloos.com\/ \ub300\uaddc\ubaa8 \uc11c\ube44\uc2a4 \uac1c\ubc1c\uc2dc\uc5d0 \uac00\uc7a5 \uae30\ubcf8\uc801\uc73c\ub85c \ud558\ub294 \ud29c\ub2dd\uc740 \ubc14\ub85c \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c Write\uc640 Read DB\ub97c Replication(\ub9ac\ud50c\ub9ac\ucf00\uc774\uc158)\ud558\uace0 \uc4f0\uae30 \uc791\uc5c5\uc740 Master(Write)\ub85c \ubcf4\ub0b4\uace0 \uc77d\uae30 \uc791\uc5c5\uc740 Slave(Read)\ub85c \ubcf4\ub0b4\uc5b4 \ubd80\ud558\ub97c \ubd84\uc0b0 \uc2dc\ud0a4\ub294 \uac83\uc774\ub2e4. \ud2b9\ud788 \ub300\ubd80\ubd84\uc758 \uc11c\ube44\uc2a4\ub294 \uc77d\uae30\uac00 \uc555\ub3c4\uc801\uc73c\ub85c \ub9ce\uae30 \ub54c\ubb38\uc5d0\u00a0 Slave\ub294 \uc5ec\ub7ec \ub300\ub97c \ub450\uc5b4 \uc77d\uae30 \ubd80\ud558\ub97c \ubd84\uc0b0 \uc2dc\ud0a8\ub2e4. \uadf8\ub7f0\ub370 \ub610 \ud558\ub098 \uae30\uc5b5\ud574\uc57c \ud560 \uac83\uc774 Replication\uc740 \ube44\ub85d \uc9e7\ub354\ub77c\ub3c4\u2026","rel":"","context":"In &quot;JAVA&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts\/790"}],"collection":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=790"}],"version-history":[{"count":0,"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts\/790\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=790"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=790"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=790"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}