메뉴 여닫기
개인 메뉴 토글
로그인하지 않음
만약 지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

Json 파일에 기록된 sql을 html에 출력: 두 판 사이의 차이

데브카페
새 문서: == sql이 저장된 json 파일을 html에 보여주기 == === 프로그램 구조 === <source lang=bash> sql_viewer/ ├── index.html └── sqls.json </source> === sqls.json === <source lang=html> { "queries": [ { "id": 1, "description": "사용자 리스트 가져오기", "sql": "SELECT * FROM users;" }, { "id": 2, "description": "주문 내역 조회", "sql": "SELECT *...
 
편집 요약 없음
 
85번째 줄: 85번째 줄:
http://localhost:8000/index.html
http://localhost:8000/index.html
</source>
</source>
[[category:json 로컬 파일 읽기]]

2025년 5월 20일 (화) 07:00 기준 최신판

sql이 저장된 json 파일을 html에 보여주기

프로그램 구조

sql_viewer/
├── index.html
└── sqls.json

sqls.json

{
    "queries": [
        {
            "id": 1,
            "description": "사용자 리스트 가져오기",
            "sql": "SELECT * FROM users;"
        },
        {
            "id": 2,
            "description": "주문 내역 조회",
            "sql": "SELECT * FROM orders WHERE order_date >= SYSDATE - 30;"
        }
    ]
}

index.html

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>SQL 문장 보기</title>
    <style>
        body { font-family: Arial, sans-serif; margin: 40px; }
        .sql-box { border: 1px solid #ccc; padding: 10px; margin-bottom: 20px; }
        .description { font-weight: bold; margin-bottom: 5px; }
        pre { background-color: #f4f4f4; padding: 10px; }
    </style>
</head>
<body>
    <h1>SQL 문장 리스트</h1>
    <div id="sql-container">로딩 중...</div>

    <script>
        fetch('sqls.json')
            .then(response => response.json())
            .then(data => {
                const container = document.getElementById('sql-container');
                container.innerHTML = '';

                data.queries.forEach(query => {
                    const box = document.createElement('div');
                    box.className = 'sql-box';

                    const desc = document.createElement('div');
                    desc.className = 'description';
                    desc.textContent = query.description;

                    const pre = document.createElement('pre');
                    pre.textContent = query.sql;

                    box.appendChild(desc);
                    box.appendChild(pre);
                    container.appendChild(box);
                });
            })
            .catch(error => {
                document.getElementById('sql-container').textContent = 'SQL 로딩 실패: ' + error;
            });
    </script>
</body>
</html>

실행 방법

브라우저 보안 정책 때문에 file:// 경로로는 fetch()가 JSON을 읽지 못할 수 있음.

1) 간단한 웹 서버 실행 (Python 사용)

  1. 현재 디렉토리에서 웹 서버 실행
python -m http.server 8000
http://localhost:8000/index.html

Comments