<?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%28WEB%29</id>
	<title>DB 모니터링 툴 개발(WEB) - 편집 역사</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%28WEB%29"/>
	<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(WEB)&amp;action=history"/>
	<updated>2026-05-17T11:11:58Z</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(WEB)&amp;diff=1815&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(WEB)&amp;diff=1815&amp;oldid=prev"/>
		<updated>2025-06-22T16:44:54Z</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:44 판&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-l182&quot;&gt;182번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;182번째 줄:&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;** DataTables와 jQuery 라이브러리는 `/static/` 디렉터리에 직접 다운로드하여 사용 가능&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;** DataTables와 jQuery 라이브러리는 `/static/` 디렉터리에 직접 다운로드하여 사용 가능&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;** `index.html`의 CDN 주소를 static 경로로 변경하면 됩니다&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;** `index.html`의 CDN 주소를 static 경로로 변경하면 됩니다&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;&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;&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;=== 관련글 ===&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 모니터링 툴 개발]] ====&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;&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;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;[[분류:python]]&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;[[분류:python]]&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(WEB)&amp;diff=1814&amp;oldid=prev</id>
		<title>Devcafe: 새 문서: == DB 모니터링 툴 개발 (WEB) == * Flask 웹서버를 이용해 Oracle DB 모니터링 결과를 실시간으로 jQuery DataTables에 표시하는 웹 애플리케이션 개발   {{요점 |내용=프로그램 요구사항  * `.json`: DB 접속 정보 * `.ini`: 모니터링 대상 SID 목록 * Flask 서버에서 Oracle 접속 후 테이블 정보 조회 * jQuery DataTables를 이용해 웹에서 시각화 * 웹브라우저로 `/` 접속 시 결과 확인 }}    === 프로그...</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(WEB)&amp;diff=1814&amp;oldid=prev"/>
		<updated>2025-06-22T16:44:13Z</updated>

		<summary type="html">&lt;p&gt;새 문서: == DB 모니터링 툴 개발 (WEB) == * Flask 웹서버를 이용해 Oracle DB 모니터링 결과를 실시간으로 jQuery DataTables에 표시하는 웹 애플리케이션 개발   {{요점 |내용=프로그램 요구사항  * `.json`: DB 접속 정보 * `.ini`: 모니터링 대상 SID 목록 * Flask 서버에서 Oracle 접속 후 테이블 정보 조회 * jQuery DataTables를 이용해 웹에서 시각화 * 웹브라우저로 `/` 접속 시 결과 확인 }}    === 프로그...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== DB 모니터링 툴 개발 (WEB) ==&lt;br /&gt;
* Flask 웹서버를 이용해 Oracle DB 모니터링 결과를 실시간으로 jQuery DataTables에 표시하는 웹 애플리케이션 개발 &lt;br /&gt;
&lt;br /&gt;
{{요점&lt;br /&gt;
|내용=프로그램 요구사항 &lt;br /&gt;
* `.json`: DB 접속 정보&lt;br /&gt;
* `.ini`: 모니터링 대상 SID 목록&lt;br /&gt;
* Flask 서버에서 Oracle 접속 후 테이블 정보 조회&lt;br /&gt;
* jQuery DataTables를 이용해 웹에서 시각화&lt;br /&gt;
* 웹브라우저로 `/` 접속 시 결과 확인&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 프로그램 파일 구성 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
monitoring_flask/&lt;br /&gt;
├── app.py&lt;br /&gt;
├── config/&lt;br /&gt;
│   ├── db_info.json&lt;br /&gt;
│   └── target_db.ini&lt;br /&gt;
├── templates/&lt;br /&gt;
│   └── index.html&lt;br /&gt;
└── static/&lt;br /&gt;
    └── datatables/&lt;br /&gt;
        └── (CDN 대체용, 오프라인용 구성 시 사용)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== 설정 파일 예시 ===&lt;br /&gt;
* DB접속 정보 :  `config/db_info.json`&lt;br /&gt;
&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;
---&lt;br /&gt;
&lt;br /&gt;
=== Flask 메인 로직 (`app.py`) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
from flask import Flask, render_template&lt;br /&gt;
import cx_Oracle&lt;br /&gt;
import json&lt;br /&gt;
import configparser&lt;br /&gt;
&lt;br /&gt;
app = Flask(__name__)&lt;br /&gt;
&lt;br /&gt;
def load_db_info():&lt;br /&gt;
    with open(&amp;quot;config/db_info.json&amp;quot;, &amp;quot;r&amp;quot;) as f:&lt;br /&gt;
        return json.load(f)&lt;br /&gt;
&lt;br /&gt;
def load_target_sids():&lt;br /&gt;
    config = configparser.ConfigParser()&lt;br /&gt;
    config.read(&amp;quot;config/target_db.ini&amp;quot;)&lt;br /&gt;
    return [sid.strip() for sid in config.get(&amp;quot;MONITOR&amp;quot;, &amp;quot;targets&amp;quot;).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(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;
    return cx_Oracle.connect(info[&amp;quot;user&amp;quot;], info[&amp;quot;password&amp;quot;], dsn)&lt;br /&gt;
&lt;br /&gt;
@app.route(&amp;quot;/&amp;quot;)&lt;br /&gt;
def index():&lt;br /&gt;
    db_info = load_db_info()&lt;br /&gt;
    target_sids = load_target_sids()&lt;br /&gt;
    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(info)&lt;br /&gt;
            columns, rows = get_table_info(conn)&lt;br /&gt;
            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;
            results[sid] = {&amp;quot;columns&amp;quot;: [&amp;quot;ERROR&amp;quot;], &amp;quot;rows&amp;quot;: [[str(e)]]}&lt;br /&gt;
&lt;br /&gt;
    return render_template(&amp;quot;index.html&amp;quot;, db_results=results)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    app.run(debug=True)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== HTML 템플릿 (`templates/index.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 모니터링&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot;&lt;br /&gt;
          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;
    &amp;lt;h1&amp;gt;Oracle DB 모니터링&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    {% for sid, result in db_results.items() %}&lt;br /&gt;
        &amp;lt;h2&amp;gt;DB SID: {{ 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 item in row %}&lt;br /&gt;
                            &amp;lt;td&amp;gt;{{ item }}&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;
=== 참조사항 ===&lt;br /&gt;
==== 의존 패키지 설치 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
pip install flask cx_Oracle&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Oracle Instant Client 가 설치되어 있어야 cx\_Oracle 사용 가능합니다.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== 실행 방법 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
python app.py&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 웹 브라우저에서 [http://localhost:5000](http://localhost:5000) 접속&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 오프라인 환경에서 실행방법 &lt;br /&gt;
** DataTables와 jQuery 라이브러리는 `/static/` 디렉터리에 직접 다운로드하여 사용 가능&lt;br /&gt;
** `index.html`의 CDN 주소를 static 경로로 변경하면 됩니다&lt;br /&gt;
&lt;br /&gt;
[[분류:python]]&lt;br /&gt;
[[분류:모니터링]]&lt;/div&gt;</summary>
		<author><name>Devcafe</name></author>
	</entry>
</feed>