<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>https://devcafe.co.kr/w/index.php?action=history&amp;feed=atom&amp;title=DB_%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81_%ED%88%B4_%EA%B0%9C%EB%B0%9C</id>
	<title>DB 모니터링 툴 개발 - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="https://devcafe.co.kr/w/index.php?action=history&amp;feed=atom&amp;title=DB_%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81_%ED%88%B4_%EA%B0%9C%EB%B0%9C"/>
	<link rel="alternate" type="text/html" href="https://devcafe.co.kr/w/index.php?title=DB_%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81_%ED%88%B4_%EA%B0%9C%EB%B0%9C&amp;action=history"/>
	<updated>2026-05-19T12:23:19Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://devcafe.co.kr/w/index.php?title=DB_%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81_%ED%88%B4_%EA%B0%9C%EB%B0%9C&amp;diff=1813&amp;oldid=prev</id>
		<title>Devcafe: /* [DB 모니터링 툴 개발(WEB) ] */</title>
		<link rel="alternate" type="text/html" href="https://devcafe.co.kr/w/index.php?title=DB_%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81_%ED%88%B4_%EA%B0%9C%EB%B0%9C&amp;diff=1813&amp;oldid=prev"/>
		<updated>2025-06-22T16:36:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;[DB 모니터링 툴 개발(WEB) ]&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2025년 6월 23일 (월) 01:36 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l168&quot;&gt;168번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;168번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 결과는 `output/tables.html`에 생성되며, 브라우저에서 열면 DataTables로 출력됩니다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 결과는 `output/tables.html`에 생성되며, 브라우저에서 열면 DataTables로 출력됩니다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 관련글 ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 관련글 ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== [DB 모니터링 툴 개발(WEB) ] ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[&lt;/ins&gt;[DB 모니터링 툴 개발(WEB) &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/ins&gt;] ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[분류:모니터링]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[분류:모니터링]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Devcafe</name></author>
	</entry>
	<entry>
		<id>https://devcafe.co.kr/w/index.php?title=DB_%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81_%ED%88%B4_%EA%B0%9C%EB%B0%9C&amp;diff=1812&amp;oldid=prev</id>
		<title>2025년 6월 22일 (일) 16:36에 Devcafe님의 편집</title>
		<link rel="alternate" type="text/html" href="https://devcafe.co.kr/w/index.php?title=DB_%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81_%ED%88%B4_%EA%B0%9C%EB%B0%9C&amp;diff=1812&amp;oldid=prev"/>
		<updated>2025-06-22T16:36:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2025년 6월 23일 (월) 01:36 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l167&quot;&gt;167번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;167번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 결과는 `output/tables.html`에 생성되며, 브라우저에서 열면 DataTables로 출력됩니다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 결과는 `output/tables.html`에 생성되며, 브라우저에서 열면 DataTables로 출력됩니다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=== 관련글 ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==== [DB 모니터링 툴 개발(WEB) ] ====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[분류:모니터링]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[분류:모니터링]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Devcafe</name></author>
	</entry>
	<entry>
		<id>https://devcafe.co.kr/w/index.php?title=DB_%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81_%ED%88%B4_%EA%B0%9C%EB%B0%9C&amp;diff=1811&amp;oldid=prev</id>
		<title>Devcafe: /* 프로그램 파일 구성 */</title>
		<link rel="alternate" type="text/html" href="https://devcafe.co.kr/w/index.php?title=DB_%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81_%ED%88%B4_%EA%B0%9C%EB%B0%9C&amp;diff=1811&amp;oldid=prev"/>
		<updated>2025-06-22T16:34:43Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;프로그램 파일 구성&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2025년 6월 23일 (월) 01:34 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l22&quot;&gt;22번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;22번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;└── output/&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;└── output/&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     └── tables.html&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     └── tables.html&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;bash&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;source&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 설정 파일 예시 ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 설정 파일 예시 ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Devcafe</name></author>
	</entry>
	<entry>
		<id>https://devcafe.co.kr/w/index.php?title=DB_%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81_%ED%88%B4_%EA%B0%9C%EB%B0%9C&amp;diff=1810&amp;oldid=prev</id>
		<title>Devcafe: /* Oracle Database 모니터링 Python 프로그램 */</title>
		<link rel="alternate" type="text/html" href="https://devcafe.co.kr/w/index.php?title=DB_%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81_%ED%88%B4_%EA%B0%9C%EB%B0%9C&amp;diff=1810&amp;oldid=prev"/>
		<updated>2025-06-22T16:34:21Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Oracle Database 모니터링 Python 프로그램&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2025년 6월 23일 (월) 01:34 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot;&gt;4번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;4번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|내용=프로그램 요구사항  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|내용=프로그램 요구사항  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;1. **언어**: Python&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:&lt;/ins&gt;1. **언어**: Python&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2. **DB 구성**: SID가 각각 `a`, `b`, `c`, `d`, `e`&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:&lt;/ins&gt;2. **DB 구성**: SID가 각각 `a`, `b`, `c`, `d`, `e`&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;3. **DB 접속 정보**: `.json` 파일에서 읽기&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:&lt;/ins&gt;3. **DB 접속 정보**: `.json` 파일에서 읽기&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;4. **모니터링 대상**: `.ini` 파일에 명시된 DB만 동작  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:&lt;/ins&gt;4. **모니터링 대상**: `.ini` 파일에 명시된 DB만 동작  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;5. **출력**: 각 DB의 테이블 정보를 jQuery DataTables로 출력 (HTML 생성)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:&lt;/ins&gt;5. **출력**: 각 DB의 테이블 정보를 jQuery DataTables로 출력 (HTML 생성)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Devcafe</name></author>
	</entry>
	<entry>
		<id>https://devcafe.co.kr/w/index.php?title=DB_%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81_%ED%88%B4_%EA%B0%9C%EB%B0%9C&amp;diff=1809&amp;oldid=prev</id>
		<title>Devcafe: 새 문서: == Oracle Database 모니터링 Python 프로그램 ==  {{요점 |내용=프로그램 요구사항   1. **언어**: Python 2. **DB 구성**: SID가 각각 `a`, `b`, `c`, `d`, `e` 3. **DB 접속 정보**: `.json` 파일에서 읽기 4. **모니터링 대상**: `.ini` 파일에 명시된 DB만 동작  5. **출력**: 각 DB의 테이블 정보를 jQuery DataTables로 출력 (HTML 생성) }}  === 프로그램 파일 구성 === &lt;source lang=bash&gt; monitoring_project/ ├── config/...</title>
		<link rel="alternate" type="text/html" href="https://devcafe.co.kr/w/index.php?title=DB_%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81_%ED%88%B4_%EA%B0%9C%EB%B0%9C&amp;diff=1809&amp;oldid=prev"/>
		<updated>2025-06-22T16:33:56Z</updated>

		<summary type="html">&lt;p&gt;새 문서: == Oracle Database 모니터링 Python 프로그램 ==  {{요점 |내용=프로그램 요구사항   1. **언어**: Python 2. **DB 구성**: SID가 각각 `a`, `b`, `c`, `d`, `e` 3. **DB 접속 정보**: `.json` 파일에서 읽기 4. **모니터링 대상**: `.ini` 파일에 명시된 DB만 동작  5. **출력**: 각 DB의 테이블 정보를 jQuery DataTables로 출력 (HTML 생성) }}  === 프로그램 파일 구성 === &amp;lt;source lang=bash&amp;gt; monitoring_project/ ├── config/...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Oracle Database 모니터링 Python 프로그램 ==&lt;br /&gt;
&lt;br /&gt;
{{요점&lt;br /&gt;
|내용=프로그램 요구사항 &lt;br /&gt;
&lt;br /&gt;
1. **언어**: Python&lt;br /&gt;
2. **DB 구성**: SID가 각각 `a`, `b`, `c`, `d`, `e`&lt;br /&gt;
3. **DB 접속 정보**: `.json` 파일에서 읽기&lt;br /&gt;
4. **모니터링 대상**: `.ini` 파일에 명시된 DB만 동작 &lt;br /&gt;
5. **출력**: 각 DB의 테이블 정보를 jQuery DataTables로 출력 (HTML 생성)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== 프로그램 파일 구성 ===&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
monitoring_project/&lt;br /&gt;
├── config/&lt;br /&gt;
│   ├── db_info.json&lt;br /&gt;
│   └── target_db.ini&lt;br /&gt;
├── main.py&lt;br /&gt;
├── templates/&lt;br /&gt;
│   └── result.html&lt;br /&gt;
└── output/&lt;br /&gt;
    └── tables.html&lt;br /&gt;
&amp;lt;/bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 설정 파일 예시 ===&lt;br /&gt;
* DB접속 정보 : config/db_info.json&lt;br /&gt;
&amp;lt;source lang=js&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;a&amp;quot;: {&amp;quot;user&amp;quot;: &amp;quot;scott&amp;quot;, &amp;quot;password&amp;quot;: &amp;quot;tiger&amp;quot;, &amp;quot;host&amp;quot;: &amp;quot;localhost&amp;quot;, &amp;quot;port&amp;quot;: &amp;quot;1521&amp;quot;, &amp;quot;sid&amp;quot;: &amp;quot;a&amp;quot;},&lt;br /&gt;
  &amp;quot;b&amp;quot;: {&amp;quot;user&amp;quot;: &amp;quot;scott&amp;quot;, &amp;quot;password&amp;quot;: &amp;quot;tiger&amp;quot;, &amp;quot;host&amp;quot;: &amp;quot;localhost&amp;quot;, &amp;quot;port&amp;quot;: &amp;quot;1521&amp;quot;, &amp;quot;sid&amp;quot;: &amp;quot;b&amp;quot;},&lt;br /&gt;
  &amp;quot;c&amp;quot;: {&amp;quot;user&amp;quot;: &amp;quot;scott&amp;quot;, &amp;quot;password&amp;quot;: &amp;quot;tiger&amp;quot;, &amp;quot;host&amp;quot;: &amp;quot;localhost&amp;quot;, &amp;quot;port&amp;quot;: &amp;quot;1521&amp;quot;, &amp;quot;sid&amp;quot;: &amp;quot;c&amp;quot;},&lt;br /&gt;
  &amp;quot;d&amp;quot;: {&amp;quot;user&amp;quot;: &amp;quot;scott&amp;quot;, &amp;quot;password&amp;quot;: &amp;quot;tiger&amp;quot;, &amp;quot;host&amp;quot;: &amp;quot;localhost&amp;quot;, &amp;quot;port&amp;quot;: &amp;quot;1521&amp;quot;, &amp;quot;sid&amp;quot;: &amp;quot;d&amp;quot;},&lt;br /&gt;
  &amp;quot;e&amp;quot;: {&amp;quot;user&amp;quot;: &amp;quot;scott&amp;quot;, &amp;quot;password&amp;quot;: &amp;quot;tiger&amp;quot;, &amp;quot;host&amp;quot;: &amp;quot;localhost&amp;quot;, &amp;quot;port&amp;quot;: &amp;quot;1521&amp;quot;, &amp;quot;sid&amp;quot;: &amp;quot;e&amp;quot;}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 작업 수행 DB 대상 : config/target_db.ini`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=js&amp;gt;&lt;br /&gt;
[MONITOR]&lt;br /&gt;
targets = a,b,c&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python 메인 로직 (`main.py`) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
import json&lt;br /&gt;
import cx_Oracle&lt;br /&gt;
import configparser&lt;br /&gt;
from jinja2 import Template&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
def load_db_info(json_path):&lt;br /&gt;
    with open(json_path, &amp;#039;r&amp;#039;) as f:&lt;br /&gt;
        return json.load(f)&lt;br /&gt;
&lt;br /&gt;
def load_target_sids(ini_path):&lt;br /&gt;
    config = configparser.ConfigParser()&lt;br /&gt;
    config.read(ini_path)&lt;br /&gt;
    targets = config.get(&amp;quot;MONITOR&amp;quot;, &amp;quot;targets&amp;quot;)&lt;br /&gt;
    return [sid.strip() for sid in targets.split(&amp;quot;,&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
def get_table_info(conn):&lt;br /&gt;
    cursor = conn.cursor()&lt;br /&gt;
    cursor.execute(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        SELECT owner, table_name, tablespace_name, status&lt;br /&gt;
        FROM all_tables&lt;br /&gt;
        WHERE ROWNUM &amp;lt;= 100&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
    columns = [desc[0] for desc in cursor.description]&lt;br /&gt;
    rows = cursor.fetchall()&lt;br /&gt;
    return columns, rows&lt;br /&gt;
&lt;br /&gt;
def connect_to_db(info):&lt;br /&gt;
    dsn = cx_Oracle.makedsn(info[&amp;quot;host&amp;quot;], info[&amp;quot;port&amp;quot;], sid=info[&amp;quot;sid&amp;quot;])&lt;br /&gt;
    conn = cx_Oracle.connect(info[&amp;quot;user&amp;quot;], info[&amp;quot;password&amp;quot;], dsn)&lt;br /&gt;
    return conn&lt;br /&gt;
&lt;br /&gt;
def generate_html(results, output_path):&lt;br /&gt;
    with open(&amp;#039;templates/result.html&amp;#039;, &amp;#039;r&amp;#039;, encoding=&amp;#039;utf-8&amp;#039;) as f:&lt;br /&gt;
        template = Template(f.read())&lt;br /&gt;
    html_content = template.render(db_results=results)&lt;br /&gt;
    with open(output_path, &amp;#039;w&amp;#039;, encoding=&amp;#039;utf-8&amp;#039;) as f:&lt;br /&gt;
        f.write(html_content)&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    db_info = load_db_info(&amp;quot;config/db_info.json&amp;quot;)&lt;br /&gt;
    target_sids = load_target_sids(&amp;quot;config/target_db.ini&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    all_results = {}&lt;br /&gt;
&lt;br /&gt;
    for sid in target_sids:&lt;br /&gt;
        try:&lt;br /&gt;
            info = db_info[sid]&lt;br /&gt;
            conn = connect_to_db(info)&lt;br /&gt;
            columns, rows = get_table_info(conn)&lt;br /&gt;
            all_results[sid] = {&amp;quot;columns&amp;quot;: columns, &amp;quot;rows&amp;quot;: rows}&lt;br /&gt;
            conn.close()&lt;br /&gt;
        except Exception as e:&lt;br /&gt;
            print(f&amp;quot;{sid} 연결 실패: {e}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    generate_html(all_results, &amp;quot;output/tables.html&amp;quot;)&lt;br /&gt;
    print(&amp;quot;모니터링 결과가 output/tables.html에 생성되었습니다.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HTML 템플릿 (`templates/result.html`) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;ko&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;UTF-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Oracle DB 모니터링 결과&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;https://cdn.datatables.net/1.13.4/css/jquery.dataTables.css&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;https://code.jquery.com/jquery-3.7.1.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;https://cdn.datatables.net/1.13.4/js/jquery.dataTables.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    {% for sid, result in db_results.items() %}&lt;br /&gt;
    &amp;lt;h2&amp;gt;DB: {{ sid }}&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;table id=&amp;quot;table_{{ sid }}&amp;quot; class=&amp;quot;display&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;thead&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
                {% for col in result.columns %}&lt;br /&gt;
                &amp;lt;th&amp;gt;{{ col }}&amp;lt;/th&amp;gt;&lt;br /&gt;
                {% endfor %}&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;/thead&amp;gt;&lt;br /&gt;
        &amp;lt;tbody&amp;gt;&lt;br /&gt;
            {% for row in result.rows %}&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
                {% for val in row %}&lt;br /&gt;
                &amp;lt;td&amp;gt;{{ val }}&amp;lt;/td&amp;gt;&lt;br /&gt;
                {% endfor %}&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            {% endfor %}&lt;br /&gt;
        &amp;lt;/tbody&amp;gt;&lt;br /&gt;
    &amp;lt;/table&amp;gt;&lt;br /&gt;
    &amp;lt;hr&amp;gt;&lt;br /&gt;
    &amp;lt;script&amp;gt;&lt;br /&gt;
        $(document).ready(function() {&lt;br /&gt;
            $(&amp;#039;#table_{{ sid }}&amp;#039;).DataTable();&lt;br /&gt;
        });&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
    {% endfor %}&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 참조사항 ===&lt;br /&gt;
==== 의존 패키지 설치 ====&lt;br /&gt;
* cx_Oracle 설치 &lt;br /&gt;
* jinja2 설치 &lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
pip install cx_Oracle jinja2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 실행 방법 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
python main.py&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 결과는 `output/tables.html`에 생성되며, 브라우저에서 열면 DataTables로 출력됩니다.&lt;br /&gt;
&lt;br /&gt;
[[분류:모니터링]]&lt;/div&gt;</summary>
		<author><name>Devcafe</name></author>
	</entry>
</feed>