• 급식

    2025-05-14 급식 정보





    오늘의 급식

    🍱 오늘의 급식

    5월 14일 수요일

    짜장밥 (1.5.6.10.13.16)
    달걀실파국 (1)
    두부조림 (5)
    배추겉절이
    시저샐러드 (1.2.5.6.12.13)
    수제돈까스 (1.2.5.6.10.12.13.18)
    하이요구르트 (2)
    공통양념 (5.6.13)


  • 급식

    2025-05-13 급식 정보





    오늘의 급식

    🍱 오늘의 급식

    5월 13일 화요일

    친환경흑미잡곡밥
    설렁탕(소면) (5.6.13.16)
    네모참치장조림 (1.5.6.16.18)
    부추양파무침
    오리주물럭 (9)
    깍두기 (9)
    바나나
    공통양념 (5.6.13)


  • 급식

    2025-05-12 급식 정보





    오늘의 급식

    🍱 오늘의 급식

    5월 12일 월요일

    친환경현미잡곡밥
    쫀득이만두국 (1.5.6.10.15.16.18)
    사태폭립소스조림 (6.10.12.13)
    오이파프리카무침
    삼치데리야끼구이 (5.6.13)
    배추김치 (9)
    파인애플
    공통양념 (5.6.13)


  • 단축 주소

    word.py

    import requests
    from bs4 import BeautifulSoup
    
    # ✅ 워드프레스 게시물 주소
    url = "https://qer.kr/?p=1031"
    res = requests.get(url)
    soup = BeautifulSoup(res.text, "html.parser")
    
    # ✅ 게시물 제목 추출
    title_tag = soup.select_one("h1.entry-title, h1.post-title")
    page_title = title_tag.get_text(strip=True) if title_tag else "용산초 바로가기 & 메모"
    
    # ✅ 본문 추출
    post_div = soup.select_one("div.post-content, div.entry-content")
    lines = []
    
    if post_div:
        for br in post_div.find_all("br"):
            br.replace_with("\n")
        raw_text = post_div.get_text()
        split_lines = raw_text.split("\n")
        for line in split_lines:
            line = line.strip()
            if line:
                lines.append(line)
    
    # ✅ 항목 분리 및 순서 저장
    items = []
    for line in lines:
        if line.startswith("@링크:") and "|" in line:
            content = line.split("@링크:", 1)[1]
            title, link = [x.strip() for x in content.split("|", 1)]
            items.append(("link", title, link))
        elif line.startswith("@메모:") and "|" in line:
            content = line.split("@메모:", 1)[1]
            title, note = [x.strip() for x in content.split("|", 1)]
            items.append(("memo", title, note))
        elif line.strip() == "@급식":
            items.append(("lunch",))
    
    # ✅ HTML 생성
    html = f"""<!DOCTYPE html>
    <html lang="ko">
    <head>
      <meta charset="UTF-8">
      <title>{page_title}</title>
      <style>
        body {{
          font-family: 'Noto Sans KR', sans-serif;
          margin: 0;
          padding: 0;
          background-color: #f8f8f8;
          color: #333;
        }}
        .container {{
          max-width: 480px;
          margin: 0 auto;
          padding: 20px;
        }}
        h1 {{
          font-size: 22px;
          text-align: center;
          margin-bottom: 30px;
          color: #333;
        }}
        .item {{
          margin-bottom: 14px;
        }}
        .link-button {{
          display: block;
          padding: 14px;
          text-align: center;
          background-color: #222;
          color: #fff;
          text-decoration: none;
          border-radius: 8px;
          font-size: 16px;
          transition: background-color 0.2s;
        }}
        .link-button:hover {{
          background-color: #444;
        }}
        .memo-box {{
          background: #fff;
          border-left: 4px solid #007acc;
          padding: 12px 16px;
          border-radius: 6px;
          box-shadow: 0 1px 4px rgba(0,0,0,0.05);
          font-size: 14px;
          line-height: 1.5;
          word-break: keep-all;
          white-space: normal;
        }}
        .memo-title {{
          font-weight: bold;
          margin-bottom: 4px;
        }}
        iframe {{
          width: 100%;
          height: 250px;
          border: none;
          border-radius: 8px;
          box-shadow: 0 1px 4px rgba(0,0,0,0.1);
        }}
      </style>
    </head>
    <body>
      <div class="container">
        <h1>📌 {page_title}</h1>
    """
    
    for item in items:
        if item[0] == "link":
            _, title, link = item
            html += f'<div class="item"><a class="link-button" href="{link}" target="_blank">{title}</a></div>\n'
        elif item[0] == "memo":
            _, title, note = item
            html += f'<div class="item"><div class="memo-box"><div class="memo-title">{title}</div>{note}</div></div>\n'
        elif item[0] == "lunch":
            html += '<div class="item"><iframe src="https://qer.kr/lunch.html"></iframe></div>\n'
    
    html += """
      </div>
    </body>
    </html>
    """
    
    # ✅ 저장 경로
    with open("/var/www/html/yong/index.html", "w", encoding="utf-8") as f:
        f.write(html)
    
    print("✅ index.html 생성 완료 → /var/www/html/yong/index.html")
    

    @급식 으로 급식 추가

    크론탭

    35 8 * * 1-5 /usr/bin/python3 /var/www/html/yong/word.py

    추가

  • 개발

    우분투 자동 실행

    /etc/systemd/system/update.service

    [Unit]
    Description=Flask Update Server for Yong
    After=network.target
    
    [Service]
    User=ubuntu
    WorkingDirectory=/var/www/html
    ExecStart=/usr/bin/python3 /var/www/html/yong/update.py
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
    
    더 보기: 우분투 자동 실행

    ✅ 2. 서비스 등록 및 자동 실행 설정

    bash복사편집sudo systemctl daemon-reexec
    sudo systemctl daemon-reload
    sudo systemctl enable update.service
    sudo systemctl start update.service
    

    ✅ 3. 상태 확인

    bash복사편집sudo systemctl status update.service
  • 관리

    용산초

    @급식

    @링크: 할일목록 | https://qer.kr/check

    @링크: 독서감상문 | https://b.tkbell.co.kr/tkboard/woi/0001257554/Pca5B1Ogzc.do?pageSeq=1818029

    @링크: 게임코딩 검사도구(비번1890) | https://data4u.gabia.io/wordpress/25-%ea%b2%8c%ec%9e%84-%ec%bd%94%eb%94%a9-%ea%b2%80%ec%82%ac%eb%8f%84%ea%b5%ac/

    @링크: 띵커벨 | https://b.tkbell.co.kr/tkboard/woi/1257554/Pca5B1Ogzc.do?pageSeq=1764824

    @링크: 마크 다운 | https://downloads.minecrafteduservices.com/retailbuilds/Msi/x86/MinecraftEducation_x86_1.21.1000.0.exe

    @메모: 마인크래프트 | a106@hicomputing.org mc12345!2 // a107@hicomputing.org mc12345!2 // a108@hicomputing.org mc12345!2 // a109@hicomputing.org mc12345!2 // a110@hicomputing.org mc12345!2 // a111@hicomputing.org mc12345!2 // a112@hicomputing.org mc12345!2 // a113@hicomputing.org mc12345!2 // a114@hicomputing.org mc12345!2 // a115@hicomputing.org mc12345!2 // a116@hicomputing.org mc12345!2 // a117@hicomputing.org mc12345!2 //

    @링크: 기초학력 진단시스템 | https://basic.jbedu.kr/

    @메모: 기초학력 아이디 | 335325040101 // 335325040102 // 335325040103 // 335325040104 // 335325040105 // 335325040106 // 335325040107 // 335325040108 // 335325040109 // 335325040110 // 335325040111 // 22is19e000!!

    @링크: AIDT | https://www.aidtbook.kr/

    @메모: AIDT 디지털원패스 | 이름 아이디 // 비번 김지은 kjh1130 // 22is19e001!! 손지호 jiho8514 // !62342649A@ 윤재하 yoonjaeha // 22is19e003!! 이서진 smile777 // 22is19e004!! 이수빈 subin486 // 22is19e005!! 이정아 jaa3518 //22is19e006!! 이찬회 lch1109 // 22is19e007!! 조범준 cbj0913 // 22is19e008!! 한나연 nayeoncap1 // 22is19e009!! 홍제희 jehui15 // 22is19e010!! 황인성 IN0307 // 22is19e011!!

    @링크: 캔바 | https://www.canva.com/

    @링크: 투닝 | https://tooning.io/

    @메모: 투닝(환경)폴더 | 162503@2259637

    @메모: 투닝(표어)폴더 | 162503@2186949

    @링크: 웨일스페이스 | https://whalespace.io/

    @메모: 웨일스페이스 | 22is19e001@n.jbedu.kr 22is19e001!! 22is19e002@n.jbedu.kr 22is19e002!! 22is19e003@n.jbedu.kr 22is19e003!! 22is19e004@n.jbedu.kr 22is19e004!! 22is19e005@n.jbedu.kr 22is19e005!! 22is19e006@n.jbedu.kr 22is19e006!! 22is19e007@n.jbedu.kr 22is19e007!! 22is19e008@n.jbedu.kr 22is19e008!! 22is19e009@n.jbedu.kr 22is19e009!! 22is19e010@n.jbedu.kr 22is19e010!! 22is19e011@n.jbedu.kr 22is19e011!!

    @링크: AI러닝 평가 | https://ai.classting.com/home

    @링크: 웍스 메세지 | https://talk.worksmobile.com/

    @링크: 클래스팅AI | https://newclass.classting.com/classrooms/2uCBPXiUqQPivcDNeAJvjte0wFV/

    @링크: 틴커캐드 | https://www.tinkercad.com/joinclass/F5X4PDYJX

  • 급식

    2025-05-09 급식 정보





    오늘의 급식

    🍱 오늘의 급식

    5월 9일 금요일

    친환경기장잡곡밥
    바지락순두부국 (1.5.18)
    찜닭 (5.6.13.15.18)
    오징어애호박전 (1.5.6.17)
    배추김치 (9)
    과일푸딩 (2)
    보코치니샐러드 (1.2.5.6.12)
    공통양념 (5.6.13)