{"id":2484,"date":"2020-03-06T09:48:46","date_gmt":"2020-03-06T00:48:46","guid":{"rendered":"http:\/\/43.203.250.216\/?p=2484"},"modified":"2020-12-30T12:08:17","modified_gmt":"2020-12-30T03:08:17","slug":"%ed%95%9c%ea%b8%80-%ed%85%8d%ec%8a%a4%ed%8a%b8-%ec%b6%94%ec%b6%9c%ec%9d%84-%ec%9c%84%ed%95%9c-python-pdf-module","status":"publish","type":"post","link":"https:\/\/litcoder.com\/?p=2484","title":{"rendered":"\ud55c\uae00 \ud14d\uc2a4\ud2b8 \ucd94\ucd9c\uc744 \uc704\ud55c Python PDF module"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>\uc774 \ub0b4\uc6a9\uc740 2020\ub144 3\uc6d4\uc5d0 \uc791\uc131\ub41c \uac83\uc73c\ub85c \ucc38\uc870\ud558\ub294 \uc2dc\uc810\uc5d0 \ub530\ub77c \ubcc0\uacbd\ub41c \uc0ac\ud56d\ub4e4\uc774 \uc788\uc744 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/p><\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">PyPDF2<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">PyPDF2\ub294 PDF file\uc758 metadata \uc815\ubcf4\ub97c \uac00\uc838\uc624\uac70\ub098 \ud398\uc774\uc9c0 \ub2e8\uc704\ub85c \ub098\ub204\uac70\ub098 \ud569\uce58\ub294 \ub4f1\uc758 \uc5ec\ub7ec\uac00\uc9c0 \ud3b8\ub9ac\ud55c \uae30\ub2a5\ub4e4\uc744 \uc81c\uacf5\ud55c\ub2e4. \ud558\uc9c0\ub9cc \ud55c\uae00\uc744 \uc81c\ub300\ub85c \ucd94\ucd9c\ud558\uc9c0 \ubabb\ud558\ub294 \ubb38\uc81c\uac00 \uc788\uc5b4\uc11c(\ud55c\uae00 \ubfd0 \uc544\ub2c8\ub77c CJK \ubaa8\ub450 \ub77c\uace0 \ud568) \ubaa9\uc801\uc5d0\ub294 \uc801\ud569\ud558\uc9c0 \uc54a\uc558\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">PDFMiner<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\ud55c\uae00 \ucc98\ub9ac\ub294 \ubb38\uc81c \uc5c6\ub2e4. \uadf8\ub7f0\ub370 \ud398\uc774\uc9c0 \ub2e8\uc704\ub85c \ub098\ub204\uc5b4\uc11c \ucc98\ub9ac\ud558\ub294 \uac83\uc744 \ub530\ub85c \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc544\uc11c \uc6d0\ud558\ub294 \ud398\uc774\uc9c0\uc5d0 \uc811\uadfc\ud558\ub824\uba74 \uc21c\ucc28\uc801\uc73c\ub85c \ucc98\uc74c\ubd80\ud130 \ud574\ub2f9 \ud398\uc774\uc9c0\ub97c \ucc3e\uc544\uac00\ub294 trick\uc744 \uc0ac\uc6a9\ud574\uc57c \ud558\ub294\ub370, \uc774 \ucf54\ub4dc\ub85c \uc21c\ucc28\uc801 \uc811\uadfc\uc744 \ud558\uba74 \uc2dc\uac04 \ubcf5\uc7a1\ub3c4\uac00 O(N^2)\uac00 \ub418\uc5b4 \ud30c\uc77c\uc758 \ud06c\uae30\uac00 \uc870\uae08\ub9cc \ucee4\ub3c4 \uc131\ub2a5\uc774 \ub9e4\uc6b0 \ub5a8\uc5b4\uc9c4\ub2e4. <\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"eclipse\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># PDFminer random access trick.\nfor pageNumber, page in enumerate(PDFPage.get_pages(fileobject)):\n  # \uc694\uccad\ub41c \ud398\uc774\uc9c0\ub97c \ubc1c\uacac\ud558\uba74 \ud14d\uc2a4\ud2b8 \ucd94\ucd9c\n  if pageNumber is reqPage: \n    interpreter.process_page(page)\n    text = retstr.getvalue()<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Tika<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\ub9ce\uc740 \uacf3\uc5d0\uc11c \uc4f0\uc774\ub294 \uaf64\ub098 \uc720\uba85\ud55c \ud504\ub85c\uc81d\ud2b8\uc778\ub370 Python module\ub85c\ub3c4 proting \ub418\uc5b4 \uc788\ub2e4(<a href=\"https:\/\/github.com\/chrismattmann\/tika-python\">tika-python<\/a>). \ud55c\uae00 \ucd94\ucd9c\uc5d0\ub294 \ubb38\uc81c\uac00 \uc5c6\uace0, \uc774 \ubaa8\ub4c8 \uc790\uccb4\uc5d0\uc11c\ub294 \ud398\uc774\uc9c0 \ub2e8\uc704\uc758 \ud14d\uc2a4\ud2b8 \ucd94\ucd9c\uc744 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc73c\ub098, \uadf8\ub300\uc2e0 PDF\ub97c XML\ub85c \ucd94\ucd9c\ud55c \ub2e4\uc74c\uc5d0 BeautifulSoupe\ub85c <strong>&lt;div page=&#8221;&#8221;&gt;<\/strong> \ud0dc\uadf8\ub97c \ucc3e\uc544 \ud398\uc774\uc9c0 \ub2e8\uc704\ub85c \uc811\uadfc\ud558\ub294 \uc2e0\ubc15\ud55c \ud2b8\ub9ad\uc774 \uc788\ub2e4(<a href=\"https:\/\/stackoverflow.com\/questions\/53093531\/python-apache-tika-single-page-parser\">StackOverflow<\/a>). \ub098\ub294 BeautifulSoup\uc758 paser\ub85c lxml\uc744 \uc0ac\uc6a9\ud588\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\uc8fc\uc758.<\/strong> \uba85\uc2dc\uc801\uc73c\ub85c \ud45c\uc2dc \ub418\uc9c0\ub294 \uc54a\uc9c0\ub9cc JRE(Java Runtime Environment)\uc5d0 \uc758\uc874\ud558\ubbc0\ub85c \ub3d9\uc791\uc2dc \uc624\ub958\uac00 \ubc1c\uc0dd\ud558\uba74 JRE\uac00 \uc81c\ub300\ub85c \uc124\uce58 \ub418\uc5b4 \uc788\uace0 \uc811\uadfc \uac00\ub2a5\ud55c\uc9c0 \ud655\uc778\ud574 \ubcfc \uac83. Ubuntu 18.04 default-jre package (OpenJDK 11)\ub85c \ub3d9\uc791 \ud655\uc778.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ java --version\nopenjdk 11.0.6 2020-01-14\nOpenJDK Runtime Environment (build 11.0.6+10-post-Ubuntu-1ubuntu118.04.1)\nOpenJDK 64-Bit Server VM (build 11.0.6+10-post-Ubuntu-1ubuntu118.04.1, mixed mode, sharing)<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\uacb0\ub860<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">PDF \ubb38\uc11c \uc790\uccb4\uc5d0 \ub300\ud55c \ud569\uce58\uae30\/\ub098\ub204\uae30\/\uc815\ubcf4 \uac00\uc838\uc624\uae30 \ub4f1\uc740 PyPDF2\uac00 \ubb34\ucc99 \ud3b8\ud558\ub2e4. \ud55c\uae00 \ud14d\uc2a4\ud2b8 \ucd94\ucd9c\uc744 \uc704\ud574\uc11c\ub294 Tika, \ud398\uc774\uc9c0 \ub2e8\uc704 \uc811\uadfc\uc774 \ud544\uc694\ud558\ub2e4\uba74 Tika + BS\ub97c \uace0\ub824\ud574 \ubcfc \ub9cc\ud558\ub2e4. PDFMiner\ub294 \ubb50\ub784\uae4c.. \ucacc \ubcc4\ub85c..<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc774 \ub0b4\uc6a9\uc740 2020\ub144 3\uc6d4\uc5d0 \uc791\uc131\ub41c \uac83\uc73c\ub85c \ucc38\uc870\ud558\ub294 \uc2dc\uc810\uc5d0 \ub530\ub77c \ubcc0\uacbd\ub41c \uc0ac\ud56d\ub4e4\uc774 \uc788\uc744 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. PyPDF2 PyPDF2\ub294 PDF file\uc758 metadata \uc815\ubcf4\ub97c \uac00\uc838\uc624\uac70\ub098 \ud398\uc774\uc9c0 \ub2e8\uc704\ub85c \ub098\ub204\uac70\ub098 \ud569\uce58\ub294 \ub4f1\uc758 \uc5ec\ub7ec\uac00\uc9c0 \ud3b8\ub9ac\ud55c \uae30\ub2a5\ub4e4\uc744 \uc81c\uacf5\ud55c\ub2e4. \ud558\uc9c0\ub9cc \ud55c\uae00\uc744 \uc81c\ub300\ub85c \ucd94\ucd9c\ud558\uc9c0 \ubabb\ud558\ub294 \ubb38\uc81c\uac00 \uc788\uc5b4\uc11c(\ud55c\uae00 \ubfd0 \uc544\ub2c8\ub77c CJK \ubaa8\ub450 \ub77c\uace0 \ud568) \ubaa9\uc801\uc5d0\ub294 \uc801\ud569\ud558\uc9c0 \uc54a\uc558\ub2e4. PDFMiner \ud55c\uae00 \ucc98\ub9ac\ub294 \ubb38\uc81c \uc5c6\ub2e4. \uadf8\ub7f0\ub370 \ud398\uc774\uc9c0 \ub2e8\uc704\ub85c \ub098\ub204\uc5b4\uc11c [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[5],"tags":[225,105,227,226],"class_list":["post-2484","post","type-post","status-publish","format-standard","hentry","category-programming","tag-pdf","tag-python","tag-tika","tag-226"],"jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":4082,"url":"https:\/\/litcoder.com\/?p=4082","url_meta":{"origin":2484,"position":0},"title":"macOS \uc124\uce58 \ud6c4 \uac1c\ubc1c\ud658\uacbd\uc744 \uc704\ud55c \uc124\uc815","author":"litcoder","date":"2026\ub144 2\uc6d4 11\uc77c","format":false,"excerpt":"1. Xcode \uc640 Xcode Command Line Tools \uc124\uce58 Xcode Command Line Tools\uc5d0\ub294 \ucef4\ud30c\uc77c\ub7ec\ub4f1\uc758 \ub3c4\uad6c\uac00 \ub4e4\uc5b4 \uc788\uc5b4\uc11c \ub2e4\ub978 \uc124\uc815\ub4e4\uacfc \uad00\uacc4\uac00 \uc788\uc5b4 \uac00\uc7a5 \uba3c\uc800 \uc124\uce58 \ud574\uc900\ub2e4. Xcode\ub294 App Store\uc5d0\uc11c \uc124\uce58\ud558\uba74 \ub418\uace0, Xcode Command Line Tools\ub294 \uc544\ub798\uc758 \uba85\ub839\uc5b4\ub97c \ud130\ubbf8\ub110\uc5d0\uc11c \uc2e4\ud589\ud55c\ub2e4. xcode-select --install 2. \ud328\ud0a4\uc9c0 \uad00\ub9ac\uc790 \uc124\uce58 \uac1c\ubc1c\ub4f1\uc5d0 \ud544\uc694\ud55c \uc5ec\ub7ec\uac00\uc9c0 \ub3c4\uad6c\ub4e4\uc744 \uc124\uce58\ud558\ub824\uba74 Macports \ud639\uc740\u2026","rel":"","context":"&quot;Gadgets&quot;\uc5d0\uc11c","block_context":{"text":"Gadgets","link":"https:\/\/litcoder.com\/?cat=3"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/02\/mac_capslock_switch.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/02\/mac_capslock_switch.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/02\/mac_capslock_switch.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/02\/mac_capslock_switch.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/02\/mac_capslock_switch.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/02\/mac_capslock_switch.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":4558,"url":"https:\/\/litcoder.com\/?p=4558","url_meta":{"origin":2484,"position":1},"title":"Redis Stream\uc744 \uc774\uc6a9\ud55c task queue \uad6c\uc131","author":"litcoder","date":"2026\ub144 7\uc6d4 15\uc77c","format":false,"excerpt":"Redis stream\uc740 \ub370\uc774\ud130\uac00 \uacc4\uc18d \ucd94\uac00\ub418\ub294 logging\uac19\uc740 \uc0ac\uc6a9 \ucf00\uc774\uc2a4\ub97c \uc5fc\ub450\ud574 \ub450\uace0 \ub3c4\uc785\uc5c8\ub2e4\uace0 \ud55c\ub2e4. \ud558\uc9c0\ub9cc stream \ub0b4\uc5d0 \uc313\uc5ec \uc788\ub294 \uc544\uc774\ud15c \ub4e4 \uc911 ACK\ub97c \ubc1b\uc9c0 \ubabb\ud55c \uc544\uc774\ud15c\ub4e4\uc744 PEL(Pending Entries List)\ub85c \uad00\ub9ac \ud560 \uc218 \uc788\ub2e4 \ubcf4\ub2c8 \ucc98\ub9ac \ub0b4\uc5ed\uc744 \ud30c\uc545\ud558\uac70\ub098 \uc911\ubcf5\ub41c \ucc98\ub9ac\ub97c \ub9c9\ub294\ub370\uc5d0\ub3c4 \uc720\uc6a9\ud558\uac8c \uc0ac\uc6a9\ub420 \uc218 \uc788\ub2e4. Redis\ub294 \ub2e4\uc591\ud55c \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4 API\ub97c \uc9c0\uc6d0\ud558\uc9c0\ub9cc \uc774 \ud3ec\uc2a4\ud305\uc5d0\uc11c\ub294\u2026","rel":"","context":"&quot;Programming&quot;\uc5d0\uc11c","block_context":{"text":"Programming","link":"https:\/\/litcoder.com\/?cat=5"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/06\/redis_task_queue_act.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/06\/redis_task_queue_act.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/06\/redis_task_queue_act.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/06\/redis_task_queue_act.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":3456,"url":"https:\/\/litcoder.com\/?p=3456","url_meta":{"origin":2484,"position":2},"title":"Union\uc744 \uc774\uc6a9\ud55c byte \ub2e8\uc704 \uc811\uadfc","author":"litcoder","date":"2024\ub144 10\uc6d4 8\uc77c","format":false,"excerpt":"Big-endian\uc73c\ub85c \uc8fc\uc5b4\uc9c4 byte\ub4e4\uc744 little-endian\uc73c\ub85c \ubcc0\ud658\ud574\uc57c \ud558\ub294 \ubb38\uc81c\uac00 \uc0dd\uacbc\ub2e4. Byte\ub4e4\uc758 order\ub97c \uac70\uafb8\ub85c \ub9cc\ub4dc\ub294 \uac83\uc740 \uc5b4\ub835\uc9c0 \uc54a\uc9c0\ub9cc \uadf8\ub7ec\uae30 \uc704\ud574\uc11c\ub294 byte pointer\uac00 \uac00\ub9ac\ud0a4\ub294 element\ub4e4\uc744 1 byte \ub2e8\uc704\ub85c \uc811\uadfc\ud574\uc57c \ud55c\ub2e4. 1 byte\uc529 \ub4a4\uc9d1\uc740 \ub2e4\uc74c\uc5d0\ub294 \ubcc0\ud658\ub41c array\ub97c \uc6d0\ud558\ub294 \ud06c\uae30\uc758 \ud0c0\uc785\uc73c\ub85c \uc77d\ub3c4\ub85d type casting\uc744 \ud574\uc8fc\uc5b4\uc57c \ud55c\ub2e4. Union\uc744 \uc774\uc6a9\ud558\uba74 \ucf54\ub4dc\ub97c \ubabb\uc0dd\uae30\uac8c \ub9cc\ub4dc\ub294 pointer \uc9c1\uc811 \uc5f0\uc0b0\uc774\ub098 type casting\uc744\u2026","rel":"","context":"&quot;Programming&quot;\uc5d0\uc11c","block_context":{"text":"Programming","link":"https:\/\/litcoder.com\/?cat=5"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4182,"url":"https:\/\/litcoder.com\/?p=4182","url_meta":{"origin":2484,"position":3},"title":"Udemy\uac00 \ub0b4 Apple Pay \uacb0\uc81c\ub97c \uba39\uc5c8\ub2e4","author":"litcoder","date":"2026\ub144 3\uc6d4 11\uc77c","format":false,"excerpt":"Udemy\uc5d0\uc11c in-app purchase\ub85c \uac15\uc758\ub97c \uad6c\ub9e4\ud588\ub294\ub370 \uc544\ubb34\ub9ac \uc0c8\ub85c\uace0\uce68\uc744 \ud574\ub3c4 Udemy\uc5d0 \ub728\uc9c8 \uc54a\ub294\ub2e4. Alex\uc640 \ub300\ud654 Udemy\uc758 \uace0\uac1d\uc9c0\uc6d0 \ubd80\uc11c\uc5d0 \uc9c1\uc811 \uc5f0\ub77d\ud558\ub294 \ubc29\ubc95\uc740 \ucc3e\uc9c0 \ubabb\ud588\uace0, Help center\uc5d0\uc11c \"Contact us\" \ubc84\ud2bc\uc744 \ub20c\ub7ec\uc11c AI \uc0c1\ub2f4\uc0ac\uc778 Alex\uc5d0\uac8c \uc0c1\ud669\uc744 \uc124\uba85\ud558\uace0, support ticket\uc744 \ub9cc\ub4e4\uc5b4 \ub2ec\ub77c\uace0 \ud558\uba74 \uba87\uac00\uc9c0 \uc9c8\ubb38 \ud6c4\uc5d0 \uba54\uc77c\uc774 \ub0a0\uc544\uc628\ub2e4. \uc774 \uacfc\uc815\uc5d0\uc11c \uad6c\ub9e4\ud55c \ub0b4\uc5ed\uc5d0 \ub300\ud55c \uc0ac\uc9c4\uc744 \ucca8\ubd80\ud574 \ub2ec\ub77c\uace0\u2026","rel":"","context":"&quot;\uc7a1\uae30&quot;\uc5d0\uc11c","block_context":{"text":"\uc7a1\uae30","link":"https:\/\/litcoder.com\/?cat=8"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/02\/udemy_receipt.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/02\/udemy_receipt.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/02\/udemy_receipt.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/02\/udemy_receipt.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/02\/udemy_receipt.png?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":444,"url":"https:\/\/litcoder.com\/?p=444","url_meta":{"origin":2484,"position":4},"title":"[\ucc45] Binary Hacks","author":"litcoder","date":"2012\ub144 12\uc6d4 31\uc77c","format":false,"excerpt":"\uc11c\uc810\uc5d0\uc11c \ubc31\uc218\uc9d3 \ud558\ub2e4\uac00 \ub09a\uc544\uc628 \ucc45\uc778\ub370 \uba70\uce60 \uc77d\uc5b4\ubcf4\ub2c8 \uc880 \uc5b4\ub835\uc9c0\ub9cc \uc88b\uc740 \ub0b4\uc6a9\uc774 \ub9ce\uc544\uc694. \uc624\ub77c\uc77c\ub9ac \ucc45\uc740 \ubcf4\ud1b5 \ud55c\ube5b \ubbf8\ub514\uc5b4\uc5d0\uc11c \ubc88\uc5ed \ud558\ub358\ub370 \uc774 \ucc45\uc758 \ucd9c\ud310\uc0ac \uc774\ub984\uc740 \uc880 \uc0dd\uc18c \ud569\ub2c8\ub2e4.'Hack'\uc5d0\uc11c \uc5f0\uc0c1\ub418\ub294 \uc5b4\ub450\uc6b4 \uc774\ubbf8\uc9c0\uc5d0\ub2e4 'cracking'\uc744 \uc5f0\uc0c1 \uc2dc\ud0a4\ub294 \uc6b0\ud568\ub9c8 \uadf8\ub9bc\uc5d0 '\ud574\ucee4\uac00 \uc804\uc218 \ud558\ub294'\uc774\ub77c\ub294 \ubd80\uc81c \ub355\uc778\uc9c0 \uc774 \ucc45\uc740 \ubcf4\uc548 section\uc5d0 \uc9c4\uc5f4\ub418\uc5b4 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. (\uc77c\ubcf8\uc5b4 \ud310\uc740 \ubc14\ub451\ud310 \uadf8\ub9bc\uc774 \uc788\ub354\uad70\uc694)\ud558\uc9c0\ub9cc\u2026","rel":"","context":"&quot;\uc7a1\uae30&quot;\uc5d0\uc11c","block_context":{"text":"\uc7a1\uae30","link":"https:\/\/litcoder.com\/?cat=8"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2012\/12\/9788990758743_binary_hacks-e1609318261787.gif?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":2115,"url":"https:\/\/litcoder.com\/?p=2115","url_meta":{"origin":2484,"position":5},"title":"[Tip] Mac version docker\uc5d0\uc11c \ub744\uc6b4 (\uc6f9) \uc11c\ubc84\uc5d0 \uc811\uc18d\ud558\uae30","author":"litcoder","date":"2019\ub144 9\uc6d4 13\uc77c","format":false,"excerpt":"Mac version Docker\uc5d0 \ub744\uc6cc\ub454 web server\uc5d0 host\uc5d0\uc11c \uc811\uc18d\ud558\ub824\uba74 \uc5b4\ub5bb\uac8c \ud574\uc57c \ud560\uae4c? \uc2e4\ud589\ud560 \ub54c '--network=host'\ub97c \uc8fc\uba74 \ub41c\ub2e4\ub294 \uc598\uae30\uac00 \uc788\uc5b4\uc11c \ud574\ubd24\ub294\ub370, Mac\uc5d0\uc11c\ub294 \ud1b5\ud558\uc9c0 \uc54a\uc558\ub2e4 \uc774\uac74 linux\uc6a9\uc774\ub77c\uace0... Networking features in Docker Desktop for Mac\uc5d0 \ub530\ub77c \uc2e4\ud589\ud560 \ub54c port\ub97c \ub9e4\ud551\ud558\ub294 \uac83\uc73c\ub85c \uc774 \ubb38\uc81c\ub97c \ud574\uacb0\ud560 \uc218 \uc788\ub2e4. Docker\uc758 9090 port\uc5d0 Mac\uc758 9090 port\ub85c \uc811\uadfc\ud558\ub824\uba74 \ub2e4\uc74c\uacfc\u2026","rel":"","context":"&quot;Linux&quot;\uc5d0\uc11c","block_context":{"text":"Linux","link":"https:\/\/litcoder.com\/?cat=4"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2019\/09\/SC_docker_webserver.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2019\/09\/SC_docker_webserver.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2019\/09\/SC_docker_webserver.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]}],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/2484","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2484"}],"version-history":[{"count":20,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/2484\/revisions"}],"predecessor-version":[{"id":2709,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/2484\/revisions\/2709"}],"wp:attachment":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2484"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2484"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2484"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}