{"id":718,"date":"2013-09-16T10:43:14","date_gmt":"2013-09-16T01:43:14","guid":{"rendered":"http:\/\/43.203.250.216\/?p=718"},"modified":"2025-10-17T23:41:50","modified_gmt":"2025-10-17T14:41:50","slug":"plantuml-war-file-%ec%84%a4%ec%b9%98","status":"publish","type":"post","link":"https:\/\/litcoder.com\/?p=718","title":{"rendered":"PlantUML war file \uc124\uce58"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\uadf8\ub3d9\uc548 UML\uc744 \uadf8\ub824\uc57c\ud560 \ud544\uc694\uac00 \uc788\uc744\ub54c <a href=\"http:\/\/staruml.sourceforge.net\/\">StarUML<\/a>\uc744 \uc368\uc654\ub294\ub370, Windows\ub9cc \uc9c0\uc6d0\ud558\ub294 software\ub77c\ub294 \ud55c\uacc4\ub3c4 \uc788\uace0 \ud574\uc11c \uc5bc\ub9c8 \uc804 \ubd80\ud130\ub294 \uc6b0\uc5f0\ud788 \uc54c\uac8c\ub41c <a href=\"http:\/\/plantuml.sourceforge.net\/\">PlantUML<\/a>\uc744 \uc0ac\uc6a9\ud558\uace0 \uc788\ub2e4. \uc774 software\ub294 \ub9c8\uce58 LaTex \ucc98\ub7fc text\ub85c UML\uc744 \uadf8\ub9ac\uae30 \uc704\ud55c description\uc744 \uc791\uc131\ud558\uba74 \uc774\ub97c \uae30\ubc18\ud574\uc11c UML\uc744 \uadf8\ub824\uc900\ub2e4. \ubb38\ubc95\ub3c4 \uadf8\ub2e4\uc9c0 \uc5b4\ub835\uc9c0 \uc54a\uace0 \uc9c1\uad00\uc801\uc774\uc5b4\uc11c \uc0ac\uc6a9\ud558\uae30\ub3c4 \uc26c\uc6b4 \ud3b8\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc791\uc131\ud55c text\ub97c UML\ub85c \uadf8\ub9ac\uae30 \uc704\ud55c client program\ub4e4\uc740 \uc5ec\ub7ec\uac00\uc9c0 \ud615\ud0dc\uac00 \uc9c0\uc6d0\ub418\ub294\ub370 \ubcf4\ub2e4 \uc790\uc138\ud55c \ubaa9\ub85d\uc740&nbsp;<a href=\"http:\/\/plantuml.sourceforge.net\/running.html\">\uc5ec\uae30<\/a>\uc5d0\uc11c &nbsp;\ud655\uc778\ud560 \uc218 \uc788\ub2e4. \ub0b4\uac00 \uadf8\ub3d9\uc548 \uc0ac\uc6a9\ud558\ub358 \uac83\uc740 Chrome extension\uc774\uc5c8\ub294\ub370 class diagram\ub4e4\uc774 \uc870\uae08\uc529 \ubcf5\uc7a1\ud574 \uc9c0\uba74\uc11c &nbsp;\uc5ec\ub7ec\uac1c\uc758 file\ub85c \ucabc\uac24 \ud544\uc694\uac00 \uc788\uac8c \ub418\ub2c8 &#8216;<em>!include<\/em>&#8216; directive\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\ub294 \ubb38\uc81c\uac00 \uc788\uc5c8\ub2e4. \uc544\ub9c8\ub3c4 Chrome\uc774 \ubcf4\uc548 \ubb38\uc81c\ub85c extension\uc758 local file \uac04\uc811 access\ud558\ub294 \uac83\uc744 \ub9c9\uc740\uac8c \uc544\ub2d0\uae4c \uc2f6\ub2e4.&nbsp;\uadf8\ub798\uc11c servlet\uc73c\ub85c \uc124\uce58\ud558\ub294 \ubc29\ubc95\uc744 \uc0ac\uc6a9\ud558\uae30\ub85c \ud588\ub2e4. \uc774\uc804\uc5d0 Opengrok\uc744 \uc124\uce58\ud55c \uc801\uc774 \uc788\uc73c\ub2c8 \uc124\uce58 \ud658\uacbd\uc740 ubuntu 12.04\uc640 tomcat\uc774 \uc774\ubbf8 \uc124\uce58\ub41c \uc0c1\ud0dc \uc774\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ud544\uc694\ud55c package\ub4e4\uc758 \uc124\uce58<br><span style=\"line-height: 1.714285714; font-size: 1rem;\">: PlantUML servlet\uc744 \ub3cc\ub9ac\ub824\uba74 graphviz package\uac00 \ud544\uc694\ud55c\ub370 \uc774\uac83\uc774 \uc124\uce58\ub418\uc5b4 \uc788\uc9c0 \uc54a\uc73c\uba74 \ub2e4\uc74c\uacfc \uac19\uc740 \uc624\ub958\uac00 \ubc1c\uc0dd\ud55c\ub2e4. \uadf8\ub9ac\uace0 war file\uc744 \uc27d\uac8c deploy\ud558\uae30 \uc704\ud574 tomcat-admin package\ub97c \uc124\uce58\ud588\ub2e4.<br><figure><a style=\"font-size: 1rem; line-height: 1.714285714;\" href=\"http:\/\/litcoder.com\/wp-content\/uploads\/2013\/08\/SC_plantuml_dot_file_not_exists_err.png\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"208\" class=\"size-medium wp-image-724 aligncenter\" src=\"http:\/\/litcoder.com\/wp-content\/uploads\/2013\/08\/SC_plantuml_dot_file_not_exists_err-300x208.png\" alt=\"SC_plantuml_dot_file_not_exists_err\" srcset=\"https:\/\/litcoder.com\/wp-content\/uploads\/2013\/08\/SC_plantuml_dot_file_not_exists_err-300x208.png 300w, https:\/\/litcoder.com\/wp-content\/uploads\/2013\/08\/SC_plantuml_dot_file_not_exists_err.png 318w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/figure><\/span><\/li>\n<\/ul>\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=\"\">sudo apt-get install tomcat6-admin graphviz<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PlantUML war file\uc744 download \ubc1b\uae30<br>:\u00a0<a href=\"https:\/\/github.com\/plantuml\/plantuml-server\/releases\" target=\"_blank\" rel=\"noreferrer noopener\">PlantUML server release page<\/a>\uc5d0\uc11c war file\uc744 download \ubc1b\ub294\ub2e4.<\/li>\n\n\n\n<li>Tomcat admin \uc124\uc815<br>: Tomcat admin\uc73c\ub85c \uc811\uc18d\ud558\ub824\uba74 amdin \uacc4\uc815\uc774 \ud544\uc694\ud558\ub2c8 \ub9cc\uc57d \uacc4\uc815\uc774 \uc5c6\ub2e4\uba74 tomcat-users.xml file\uc744 \ud3b8\uc9d1\ud574\uc11c \uacc4\uc815\uc744 \ucd94\uac00\ud574 \uc900\ub2e4. \uc774 \ud30c\uc77c\uc5d0\ub294 \ube44\ubc00\ubc88\ud638\ub97c \ud3c9\ubb38\uc73c\ub85c \ud568\uaed8 \uae30\ub85d\ud574\uc57c \ud558\uae30\ub294 \ud558\uc9c0\ub9cc, root\uc640 tomcat\uc678\uc5d0\ub294 read permission\uc774 \uc5c6\uc73c\ubbc0\ub85c \ub2e4\ub978 \uacc4\uc815\uc5d0 \uc758\ud574 \uc774 \ud30c\uc77c\uc774 \uc77d\ud788\uc9c0\ub294 \uc54a\ub294\ub2e4. \uacc4\uc815\uc744 \ucd94\uac00\ud574\uc900 \uc774\ud6c4\uc5d0\ub294 tomcat server\ub97c \uc7ac\uc2e4\ud589\ud55c\ub2e4.<br><br>sudo vi \/var\/lib\/tomcat6\/conf\/tomcat-users.xml<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"xml\" data-enlighter-theme=\"eclipse\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"> &lt;!--\n NOTE: By default, no user is included in the \"manager-gui\" role required\n to operate the \"\/manager\/html\" web application. If you wish to use this a pp,\n you must define such a user - the username and password are arbitrary.\n -->\n &lt;!--\n NOTE: The sample user and role entries below are wrapped in a comment\n and thus are ignored when reading this file. Do not forget to remove\n &lt;!.. ..> that surrounds them.\n -->\n &lt;role rolename=\"admin\"\/>\n &lt;user username=\"admin\" password=\"ADMIN_PASSWORD\" roles=\"admin,manager,manager-gui\"\/>\n &lt;\/tomcat-users><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tomcat admin page\ub85c \ubd80\ud130 deploy: \ubaa8\ub4e0 \uc900\ube44\uac00 \ub418\uc5c8\uc73c\ub2c8 tomcat admin page (http:\/\/SERVER:8080\/manager\/html)\u00a0\uc5d0\uc11c war file\uc744 \uc120\ud0dd\ud558\uace0 deploy\ud55c\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"528\" height=\"114\" src=\"https:\/\/litcoder.com\/wp-content\/uploads\/2013\/08\/SC_tomcat_admin_deploy_war.png\" alt=\"\" class=\"wp-image-726\" srcset=\"https:\/\/litcoder.com\/wp-content\/uploads\/2013\/08\/SC_tomcat_admin_deploy_war.png 528w, https:\/\/litcoder.com\/wp-content\/uploads\/2013\/08\/SC_tomcat_admin_deploy_war-300x65.png 300w\" sizes=\"auto, (max-width: 528px) 100vw, 528px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Service page \uc811\uc18d<br>: Web browser\uc5d0\uc11c service page (http:\/\/SERVER:8080\/plantuml)\ub85c \uc811\uc18d\ud55c\ub2e4.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"742\" height=\"758\" src=\"https:\/\/litcoder.com\/wp-content\/uploads\/2013\/08\/SC_plantuml_server_page.png\" alt=\"\" class=\"wp-image-725\" srcset=\"https:\/\/litcoder.com\/wp-content\/uploads\/2013\/08\/SC_plantuml_server_page.png 742w, https:\/\/litcoder.com\/wp-content\/uploads\/2013\/08\/SC_plantuml_server_page-294x300.png 294w\" sizes=\"auto, (max-width: 742px) 100vw, 742px\" \/><\/figure>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>\uadf8\ub3d9\uc548 UML\uc744 \uadf8\ub824\uc57c\ud560 \ud544\uc694\uac00 \uc788\uc744\ub54c StarUML\uc744 \uc368\uc654\ub294\ub370, Windows\ub9cc \uc9c0\uc6d0\ud558\ub294 software\ub77c\ub294 \ud55c\uacc4\ub3c4 \uc788\uace0 \ud574\uc11c \uc5bc\ub9c8 \uc804 \ubd80\ud130\ub294 \uc6b0\uc5f0\ud788 \uc54c\uac8c\ub41c PlantUML\uc744 \uc0ac\uc6a9\ud558\uace0 \uc788\ub2e4. \uc774 software\ub294 \ub9c8\uce58 LaTex \ucc98\ub7fc text\ub85c UML\uc744 \uadf8\ub9ac\uae30 \uc704\ud55c description\uc744 \uc791\uc131\ud558\uba74 \uc774\ub97c \uae30\ubc18\ud574\uc11c UML\uc744 \uadf8\ub824\uc900\ub2e4. \ubb38\ubc95\ub3c4 \uadf8\ub2e4\uc9c0 \uc5b4\ub835\uc9c0 \uc54a\uace0 \uc9c1\uad00\uc801\uc774\uc5b4\uc11c \uc0ac\uc6a9\ud558\uae30\ub3c4 \uc26c\uc6b4 \ud3b8\uc774\ub2e4. \uc791\uc131\ud55c text\ub97c UML\ub85c \uadf8\ub9ac\uae30 \uc704\ud55c client program\ub4e4\uc740 \uc5ec\ub7ec\uac00\uc9c0 \ud615\ud0dc\uac00 \uc9c0\uc6d0\ub418\ub294\ub370 \ubcf4\ub2e4 [&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":[4,6],"tags":[72,99,127,149],"class_list":["post-718","post","type-post","status-publish","format-standard","hentry","category-linux","category-tools","tag-linux","tag-platuml","tag-tomcat","tag-war"],"jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":3753,"url":"https:\/\/litcoder.com\/?p=3753","url_meta":{"origin":718,"position":0},"title":"Mac OS X\uc5d0 PlantUML \ud658\uacbd\uc124\uc815","author":"litcoder","date":"2025\ub144 10\uc6d4 27\uc77c","format":false,"excerpt":"\uc608\uc804\uc5d0 \ud3ec\uc2a4\ud305 \ud588\ub358 \ub0b4\uc6a9 \ucc98\ub7fc PlantUML\uc740 on-premise \uc11c\ubc84\uc5d0\uc11c\ub3c4 \uc0ac\uc6a9\uc774 \uac00\ub2a5\ud558\uc9c0\ub9cc, Visual Studio Code\uc5d0\uc11c \uc81c\uacf5\ub418\ub294 PlantUML extension\uc744 \uc0ac\uc6a9\ud558\uba74 Tomcat\uac19\uc740 JSP\uc11c\ubc84\ub97c \ubcc4\ub3c4\ub85c \uc124\uce58\ud560 \ud544\uc694\uac00 \uc5c6\uc5b4\uc11c IDE\ub97c \ubc97\uc5b4\ub098\uc9c0 \uc54a\uace0\ub3c4 \uac1c\ubc1c\uc744 \uc9c4\ud589 \ud558\uba74\uc11c \uad00\ub828\ub0b4\uc6a9\uc744 \uc2a4\ucf00\uce58\ud558\uae30\uc5d0 \ubb34\ucc99 \ud3b8\ud558\ub2e4. Linux\uc5d0\uc11c\ub3c4 \ub9c8\ucc2c\uac00\uc9c0 \uc774\uc9c0\ub9cc Max OS X\uc5d0\uc11c Visual Studio Code PlantUML extension\uc744 \uc0ac\uc6a9\ud558\ub824\uba74 Java\uc640 Graphviz\uac00 \uc124\uce58\ub418\uc5b4 \uc788\uc5b4\uc57c \ud55c\ub2e4.\u2026","rel":"","context":"&quot;Tools &amp; Tips&quot;\uc5d0\uc11c","block_context":{"text":"Tools &amp; Tips","link":"https:\/\/litcoder.com\/?cat=6"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.litcoder.com\/wp-content\/uploads\/2025\/10\/plantuml_test.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":563,"url":"https:\/\/litcoder.com\/?p=563","url_meta":{"origin":718,"position":1},"title":"OpenGrok \uc124\uce58","author":"litcoder","date":"2013\ub144 3\uc6d4 9\uc77c","format":false,"excerpt":"OpenGrok\uc744 \uc124\uce58\ud558\ub294 \uac00\uc7a5 \uac04\ub2e8\ud55c \ubc29\ubc95\uc740 tomcat5~6 \uc0ac\uc774\uc758 \ubc84\uc804\uc744 \uc0ac\uc6a9\ud558\uace0, \uc124\uce58\ud558\ub294 \uc704\uce58\ub97c \/var\/opengrok \uc73c\ub85c \uc815\ud558\ub294 \uac83\uc774\ub2e4. \uc774\ub807\uac8c \ud558\uba74 \ubcc4\ub3c4\uc758 \uc218\uc815\uc5c6\uc774 \uac70\uc758 \uadf8\ub300\ub85c OpenGrok\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4. (OpenGrok \uc124\uce58 \ube68\ub9ac \ud558\uae30 \ucc38\uc870) \uc774 posting\uc5d0\uc11c\ub294 Source\ub97c <YOUR_SOURCE_REPOSITORY_TOP> \uacbd\ub85c \uc544\ub798\uc5d0 \uac01 project\ubcc4\ub85c \ub530\ub85c \ubcf4\uad00\ud558\uace0, <YOUR_HOME_DIRECTORY>\/opengrok \uacbd\ub85c \uc544\ub798\uc5d0 OpenGrok\uacfc \uad00\ub828\ub41c file\ub4e4\uc744 \ubcf4\uad00\ud558\ub294 \uc0c1\ud669\uc744 \uac00\uc815\ud558\uace0 \uc124\uba85\ud55c\ub2e4.\u2026","rel":"","context":"&quot;Linux&quot;\uc5d0\uc11c","block_context":{"text":"Linux","link":"https:\/\/litcoder.com\/?cat=4"},"img":{"alt_text":"OpenGrok ScreenShot","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2013\/03\/Screenshot-from-2013-03-09-232044_opengrok-300x241.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":621,"url":"https:\/\/litcoder.com\/?p=621","url_meta":{"origin":718,"position":2},"title":"OpenGrok \uc124\uce58 \ube68\ub9ac \ud558\uae30","author":"litcoder","date":"2013\ub144 3\uc6d4 13\uc77c","format":false,"excerpt":"\uc9c0\ub09c\ubc88 OpenGrok \uc124\uce58 \uad00\ub828 \ud3ec\uc2a4\ud305 \uc774\ud6c4 OpenGrok\uc744 \uc124\uce58\ud560 \uae30\ud68c\uac00 \uba87 \ubc88 \ub354 \uc788\uc5c8\ub294\ub370, Source \uacbd\ub85c\ub97c \uc81c\uc678\ud55c \ub098\uba38\uc9c0 \uc124\uc815\ub4e4\uc744 \uae30\ubcf8\uac12\uc73c\ub85c \uc0ac\uc6a9\ud558\ub2c8 \ud6e8\uc52c \uc124\uce58 \ud558\uae30\uac00 \uac04\ud3b8\ud588\ub2e4. \uc5ec\uae30\uc5d0\ub294 source\ub97c \uc81c\uc678\ud55c \ub098\uba38\uc9c0 \uc124\uc815\uc744 \uae30\ubcf8\uc73c\ub85c \uc0ac\uc6a9\ud574\uc11c \uc57d\uac04\uc758 \uc218\uc815\uc73c\ub85c \uc124\uce58 \ud558\ub294 \ubc29\ubc95\uc744 \uc124\uba85\ud55c\ub2e4. 2017\ub144 12\uc6d4 13\uc77c : Ubuntu16.04 LTS\ub97c \uae30\uc900\uc73c\ub85c \uc218\uc815\ud568. \uc124\uce58\ud658\uacbd Ubuntu 16.04 LTS \ud544\uc694\ud55c\u2026","rel":"","context":"&quot;Linux&quot;\uc5d0\uc11c","block_context":{"text":"Linux","link":"https:\/\/litcoder.com\/?cat=4"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2549,"url":"https:\/\/litcoder.com\/?p=2549","url_meta":{"origin":718,"position":3},"title":"OpenGrok \ucd5c\uc2e0\ubc84\uc804 \uc124\uce58\ud558\uae30","author":"litcoder","date":"2020\ub144 8\uc6d4 5\uc77c","format":false,"excerpt":"\ud55c \ub54c \uac11\uc790\uae30 \ubc30\ud3ec\ud558\ub358 \uc11c\ubc84\uac00 \uc5c6\uc5b4\uc838\uc11c \ud639\uc2dc\ub098 \ud558\ub294 \uac71\uc815\uc5d0 \ubc30\ud3ec\ud30c\uc77c\uc744 \ub2e4\uc6b4\ub85c\ub4dc \ubc1b\uc544 \ub450\uae30\uae4c\uc9c0 \ud588\ub358 OpenGrok project\uac00 \ub2e4\ud589\ud788 Oracle\uc758 GitHub \ub0b4\uc5d0 \uc790\ub9ac\ub97c \uc7a1\uace0 \uc798 \uafb8\uc900\ud788 \uc5c5\ub370\uc774\ud2b8 \ub418\uace0 \uc788\ub2e4.\uc608\uc804\uc5d0 \uc791\uc131\ud588\ub358 OpenGrok \uc124\uce58\ub97c \uc704\ud55c \uae00\ub4e4\uc740 \ub108\ubb34 \uc624\ub798\ub418\uc5b4\uc11c \uc798 \ub9de\uc9c0 \uc54a\ub294 \uac83\ub3c4 \uc788\uace0 \ud574\uc11c \ucd5c\uadfc \ubc84\uc804\uacfc \ud658\uacbd\uc744 \uae30\uc900\uc73c\ub85c \ub2e4\uc2dc \uc124\uce58 \uacfc\uc815\uc744 \uc815\ub9ac\ud588\ub2e4. \uc774 \ud3ec\uc2a4\ud305\uc740\u2026","rel":"","context":"&quot;Tools &amp; Tips&quot;\uc5d0\uc11c","block_context":{"text":"Tools &amp; Tips","link":"https:\/\/litcoder.com\/?cat=6"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2020\/08\/img_0003-1.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2020\/08\/img_0003-1.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2020\/08\/img_0003-1.jpg?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":2484,"url":"https:\/\/litcoder.com\/?p=2484","url_meta":{"origin":718,"position":4},"title":"\ud55c\uae00 \ud14d\uc2a4\ud2b8 \ucd94\ucd9c\uc744 \uc704\ud55c Python PDF module","author":"litcoder","date":"2020\ub144 3\uc6d4 6\uc77c","format":false,"excerpt":"\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\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":3723,"url":"https:\/\/litcoder.com\/?p=3723","url_meta":{"origin":718,"position":5},"title":"Orange3 Text Add-On \ucd94\uac00\ud560 \ub54c \ube4c\ub4dc\uc624\ub958","author":"litcoder","date":"2025\ub144 10\uc6d4 10\uc77c","format":false,"excerpt":"Orange3\uc5d0 Text Add-on\uc744 \ucd94\uac00\ud558\ub294 \ub3c4\uc911 SciPy\ub97c \ube4c\ub4dc\ud558\ub824 \uc2dc\ub3c4\ud558\ub294\ub370 \uc624\ub958\uac00 \ubc1c\uc0dd\ud55c\ub2e4. Fortran\uc744 \ube44\ub86f\ud55c \uc758\uc874\uc131\uc774 \ub9cc\uc871\ub418\uc9c0 \uc54a\uc544\uc11c \ubc1c\uc0dd\ud558\ub294 \ubb38\uc81c\uc778\ub370 \uc5ec\ub7ec\uac74\uc758 \ube4c\ub4dc \uc624\ub958\ub97c \ud53c\ud558\ub824\uba74 SciPy\uc758 Building from Source\ub97c \ucc38\uace0\ud574\uc11c \ud544\uc694\ud55c \ud328\ud0a4\uc9c0\ub97c \ubbf8\ub9ac \uc124\uce58\ud574 \uc904 \uc218 \uc788\ub2e4. ArchLinux\uc758 \uacbd\uc6b0 \ud544\uc694\ud55c \ud328\ud0a4\uc9c0\ub294 \ub2e4\uc74c\uacfc \uac19\ub2e4. sudo pacman -S gcc-fortran openblas pkgconf base-devel python-setuptools \uadf8\ub9ac\uace0 \ub098\uc11c \ud544\uc694\ud55c\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\/2025\/10\/image.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/718","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=718"}],"version-history":[{"count":19,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/718\/revisions"}],"predecessor-version":[{"id":3744,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/718\/revisions\/3744"}],"wp:attachment":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=718"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=718"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=718"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}