{"id":110,"date":"2010-04-17T22:54:59","date_gmt":"2010-04-18T07:54:59","guid":{"rendered":"\/blog\/?p=110"},"modified":"2023-09-21T09:41:15","modified_gmt":"2023-09-21T00:41:15","slug":"%ed%98%84%ec%9e%ac-%ed%94%84%eb%a1%9c%ec%84%b8%ec%84%9c%ec%9d%98-%ec%83%81%ec%9c%84-%ed%94%84%eb%a1%9c%ec%84%b8%ec%84%9c-%ec%95%8c%ec%95%84%eb%82%b4%eb%8a%94-%eb%a1%9c%ec%a7%81","status":"publish","type":"post","link":"https:\/\/hasu0707.duckdns.org\/blog\/?p=110","title":{"rendered":"\ud604\uc7ac \ud504\ub85c\uc138\uc11c\uc758 \uc0c1\uc704 \ud504\ub85c\uc138\uc11c \uc54c\uc544\ub0b4\ub294 \ub85c\uc9c1"},"content":{"rendered":"\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\"><SPAN style=\"FONT-FAMILY: 954102_10; FONT-SIZE: 10pt\">\ud604\uc7ac \ud504\ub85c\uc138\uc11c\uc758 \uc0c1\uc704 \ud504\ub85c\uc138\uc11c \uc54c\uc544\ub0b4\ub294 \ub85c\uc9c1...<\/SPAN><\/SPAN><\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\"><\/SPAN>&nbsp;<\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\"><SPAN style=\"FONT-FAMILY: 954102_10; FONT-SIZE: 10pt\">PROCESSENTRY32\ub97c \uc774\uc6a9\ud558\uc5ec \ud504\ub85c\uc138\uc11c\uc758 \uc0c1\uc704 \ud504\ub85c\uc138\uc11c\uc758 \uc815\ubcf4\ub97c \uc54c\uc544\ub0b8\ud6c4 \ub2e4\uc2dc\ud55c\ubc88 <\/SPAN><\/SPAN><\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\"><SPAN style=\"FONT-FAMILY: 954102_10; FONT-SIZE: 10pt\">\ub85c\uc9c1\uc744 \uac70\uccd0 \ud504\ub85c\uc138\uc11c\uc758 \uc774\ub984\uc744 \uc54c\uc544\ub0b4\ub294 \ub85c\uc9c1\uc774\ub2e4.<\/SPAN><\/SPAN><\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\"><\/SPAN>&nbsp;<\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\"><SPAN style=\"FONT-FAMILY: 954102_10; FONT-SIZE: 10pt\">\uc5c5\ubb34 \uc911 \ud604\uc7ac \uae30\ub3d9\ub418\ub294 Application\uc758 \ubd80\ubaa8 Process\uac00 \ubb34\uc5c7\uc778\uc9c0 \uc870\uc0ac\ud558\uc5ec \ucc98\ub9ac\ud560 \ub0b4\uc6a9\uc774 \uc788\uc5b4 \uc870\uc0ac\ud55c \ub0b4\uc6a9\uc744 \ud1a0\ub300\ub85c<\/SPAN><\/SPAN><\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\"><SPAN style=\"FONT-FAMILY: 954102_10; FONT-SIZE: 10pt\">\ud68c\uc0ac\uc5c5\ubb34\uc5d0 \ub9de\uac8c \uc790\uccb4 \uc218\uc815\ud55c \ub0b4\uc6a9\uc784...<\/SPAN><\/SPAN><\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\"><\/SPAN>&nbsp;<\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\"><\/SPAN>&nbsp;<\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">\/\/ \uc0c1\uc704 \ud504\ub85c\uc138\uc11c\uc758 PID\ub97c \uc54c\uc544\ub0b4\ub294 \ud568\uc218<\/SPAN><\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">BOOL GetParentProcessId(PROCESSENTRY32* pe32)<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">{<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">#ifdef SCMS_DEBUG_WEBDAV<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;LogOut(\"scmsds02 GetParentProcessId Start\\n\");<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">#endif<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;HANDLE hProcessSnap = NULL;<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;\/\/PROCESSENTRY32 pe32 = {0};<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;DWORD pid = GetCurrentProcessId();<\/SPAN><\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;if(hProcessSnap == INVALID_HANDLE_VALUE)<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;{<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">#ifdef SCMS_DEBUG_WEBDAV<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; LogOut(\"scmsds02 GetParentProcessId CreateToolhelp32Snapshot INVALID_HANDLE_VALUE\\n\");<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">#endif<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; return FALSE;<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;}<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">#ifdef SCMS_DEBUG_WEBDAV<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; LogOut(\"scmsds02 GetParentProcessId GetCurrentProcess [%d]\\n\", pid);<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">#endif<\/SPAN><\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;\/\/pe32.dwSize = sizeof(PROCESSENTRY32);<\/SPAN><\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;if (Process32First(hProcessSnap, pe32))<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;{<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; DWORD Code = 0;<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; do<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; {<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">#ifdef SCMS_DEBUG_WEBDAV<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; &nbsp;LogOut(\"scmsds02 GetParentProcessId GetParentProcessId [%d] name[%s]\\n\", pe32-&gt;th32ProcessID, pe32-&gt;szExeFile);<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">#endif<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; &nbsp;if(pe32-&gt;th32ProcessID != pid)<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; &nbsp;{<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; &nbsp; continue;<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; &nbsp;}<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; &nbsp;CloseHandle(hProcessSnap);<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; <\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; &nbsp;return TRUE;<\/SPAN><\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; }while(Process32Next(hProcessSnap, pe32));<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;}<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;CloseHandle(hProcessSnap);<\/SPAN><\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;return FALSE;<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">}<\/SPAN><\/P>\n<P>&nbsp;<\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">\/\/ \uc0c1\uc704 \ud504\ub85c\uc138\uc11c\uc758 \uc774\ub984\uc744 \uc870\uc0ac\ud558\ub294 \ud568\uc218<\/SPAN><\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">BOOL GetParentProcessName(DWORD hPid, LPTSTR lpszProcessName)<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">{<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">#ifdef SCMS_DEBUG_WEBDAV<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;LogOut(\"scmsds02 GetParentProcessName Start\\n\");<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">#endif<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;HANDLE hProcessSnap = NULL;<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;PROCESSENTRY32 pe32 = {0};<\/SPAN><\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;if(hProcessSnap == INVALID_HANDLE_VALUE)<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;{<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">#ifdef SCMS_DEBUG_WEBDAV<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; LogOut(\"scmsds02 GetParentProcessName CreateToolhelp32Snapshot INVALID_HANDLE_VALUE\\n\");<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">#endif<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; return FALSE;<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;}<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">#ifdef SCMS_DEBUG_WEBDAV<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; LogOut(\"scmsds02 GetParentProcessName GetCurrentProcess [%d]\\n\", hPid);<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">#endif<\/SPAN><\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;pe32.dwSize = sizeof(PROCESSENTRY32);<\/SPAN><\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;if (Process32First(hProcessSnap, &amp;pe32))<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;{<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; DWORD Code = 0;<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; do<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; {<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">#ifdef SCMS_DEBUG_WEBDAV<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; &nbsp;LogOut(\"scmsds02 GetParentProcessName GetParentProcessId [%d] name[%s]\\n\", pe32.th32ProcessID, pe32.szExeFile);<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">#endif<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; &nbsp;if(pe32.th32ProcessID != hPid)<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; &nbsp;{<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; &nbsp; continue;<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; &nbsp;}<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; &nbsp;strcpy(lpszProcessName, pe32.szExeFile);<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; &nbsp;CloseHandle(hProcessSnap);<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; <\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; &nbsp;return TRUE;<\/SPAN><\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; }while(Process32Next(hProcessSnap, &amp;pe32));<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;}<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;CloseHandle(hProcessSnap);<\/SPAN><\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;return FALSE;<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp;<\/SPAN><br \/><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">}<\/SPAN><\/P>\n<P>&nbsp;<\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; &nbsp;\/\/<br \/>&nbsp; &nbsp;\/\/ \ubcf8 \ub85c\uc9c1\uc744 \ud1b5\ud558\uc5ec \uc0c1\uc704 \ubd80\ubaa8 \ud504\ub85c\uc138\uc11c\uc758 PID\uc640 Name\ub97c \uad6c\ud560\uc218 \uc788\ub2e4.<br \/>&nbsp; &nbsp;\/\/<br \/>&nbsp; &nbsp;PROCESSENTRY32 pe32 = {0};<br \/>&nbsp; &nbsp;pe32.dwSize = sizeof(PROCESSENTRY32);<br \/>&nbsp; &nbsp;BOOL bRet = GetParentProcessId(&amp;pe32);<\/SPAN><\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">#ifdef SCMS_DEBUG_WEBDAV<br \/>&nbsp; &nbsp;LogOut(\"GetParentProcessHandle[%d] \\n\", pe32.th32ParentProcessID);<br \/>#endif<br \/>&nbsp; &nbsp;TCHAR szParentName[MAX_PATH] = {0};<br \/>&nbsp; &nbsp;bRet = GetParentProcessName(pe32.th32ParentProcessID, szParentName);<br \/>#ifdef SCMS_DEBUG_WEBDAV<br \/>&nbsp; &nbsp;LogOut(\"GetParentProcessHandle[%d] name[%s]\\n\", pe32.th32ParentProcessID, szParentName);<br \/>#endif<br \/>\/*<br \/>&nbsp; &nbsp;char szParentModule[MAX_PATH]={0};<\/SPAN><\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">&nbsp; &nbsp;GetModuleFileName(hParentProcess, szParentModule, sizeof(szParentModule));<\/SPAN><\/P>\n<P><SPAN style=\"FONT-FAMILY: \uad74\ub9bc\uccb4\">#ifdef SCMS_DEBUG_WEBDAV<br \/>&nbsp; &nbsp;LogOut(\"Start GetParentProcessHandle[%x] name[%s]\\n\", hParentProcess, szParentModule);<br \/>#endif<br \/>*\/<br \/>&nbsp; &nbsp;\/\/<br \/>&nbsp; &nbsp;\/\/<br \/>&nbsp; &nbsp;\/\/<br \/><\/SPAN><\/P>\n","protected":false},"excerpt":{"rendered":"<p>\ud604\uc7ac \ud504\ub85c\uc138\uc11c\uc758 \uc0c1\uc704 \ud504\ub85c\uc138\uc11c \uc54c\uc544\ub0b4\ub294 \ub85c\uc9c1&#8230; &nbsp; PROCESSENTRY32\ub97c \uc774\uc6a9\ud558\uc5ec \ud504\ub85c\uc138\uc11c\uc758 \uc0c1\uc704 \ud504\ub85c\uc138\uc11c\uc758 \uc815\ubcf4\ub97c \uc54c\uc544\ub0b8\ud6c4 \ub2e4\uc2dc\ud55c\ubc88 \ub85c\uc9c1\uc744 \uac70\uccd0 \ud504\ub85c\uc138\uc11c\uc758 \uc774\ub984\uc744 \uc54c\uc544\ub0b4\ub294 \ub85c\uc9c1\uc774\ub2e4. &nbsp; \uc5c5\ubb34 \uc911 \ud604\uc7ac \uae30\ub3d9\ub418\ub294 Application\uc758 \ubd80\ubaa8 Process\uac00 \ubb34\uc5c7\uc778\uc9c0 \uc870\uc0ac\ud558\uc5ec \ucc98\ub9ac\ud560 \ub0b4\uc6a9\uc774 \uc788\uc5b4 \uc870\uc0ac\ud55c \ub0b4\uc6a9\uc744 \ud1a0\ub300\ub85c \ud68c\uc0ac\uc5c5\ubb34\uc5d0 \ub9de\uac8c \uc790\uccb4 \uc218\uc815\ud55c \ub0b4\uc6a9\uc784&#8230; &nbsp; &nbsp; \/\/ \uc0c1\uc704 \ud504\ub85c\uc138\uc11c\uc758 PID\ub97c \uc54c\uc544\ub0b4\ub294 \ud568\uc218 BOOL GetParentProcessId(PROCESSENTRY32* pe32){#ifdef SCMS_DEBUG_WEBDAV&nbsp;LogOut(&#8220;scmsds02 GetParentProcessId [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[18],"tags":[],"class_list":["post-110","post","type-post","status-publish","format-standard","hentry","category-development_language"],"_links":{"self":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/110","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=110"}],"version-history":[{"count":0,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/110\/revisions"}],"wp:attachment":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=110"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=110"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}