# 우리학교 알리미 (schoolinfo-mcp) **내 아이 학교, 검색하지 말고 물어보세요.** [![version](https://img.shields.io/badge/version-0.3.0-blue.svg)](./CHANGELOG.md) [![license](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE) [![node](https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg)](https://nodejs.org) [![web](https://img.shields.io/badge/웹앱-school.gomdori.app-black.svg)](https://school.gomdori.app) > *학교알리미는 정보가 다 있는데, 막상 찾으려면 어디 있는지 모릅니다.* > *특히 **수행평가 계획**은 hwp 첨부파일 속에 숨어 있어 학부모가 열어보기도 어렵습니다.* 전국 모든 **초·중·고**의 공시정보는 [학교알리미](https://www.schoolinfo.go.kr)에 공개돼 있습니다. 이 도구는 학교알리미 **OpenAPI**(정형 데이터 35종), [**kordoc**](https://github.com/chrisryugj/kordoc)(hwp→마크다운), 그리고 [**NEIS 개방포털**](https://open.neis.go.kr)(급식·학사일정·시간표)을 묶어서, 사이트를 헤매지 않고 **학교명만으로** **여러 학교를 한 표로 비교**하고, hwp 첨부에 묻힌 **수행평가 계획**을 표로 풀어 봅니다. 학생수·동아리·방과후 같은 공시와 **급식(알레르기 회피 필터)·학사일정·시험 D-day·이번주 브리핑까지** 한 번에 받게 해줍니다. 세 가지 방법으로 쓸 수 있습니다 — 가장 쉬운 순서대로: | 방법 | 누구에게 | 준비물 | |------|---------|--------| | 🌐 **웹앱** | 모든 학부모 (비개발자) | **없음.** 링크만 클릭 | | 🤖 **AI에게 질문** (원격 MCP) | Claude/Cursor 쓰는 분 | **없음.** URL 한 줄 | | ⌨️ **CLI / 자동알림 / 로컬 MCP** | 개발자·파워유저 | 인증키 | > *최근 정비: 학교 비교·수행평가 중심으로 화면을 재배치하고 평가계획 교과 아코디언·응답 캐시·모바일 표시를 다듬었습니다(2026-06, [CHANGELOG](./CHANGELOG.md) 0.3.0). 이후 웹앱을 **Vercel `school.gomdori.app`으로 이전**하고, 2026 행정구역 개편(전남광주통합특별시·인천 신설구·화성 분구)과 평가계획 학기·학년·과목 지정, 교육과정 편제(2-가) 조회를 추가했습니다(2026-07, 커밋 로그 참조).* --- ## 🌐 가장 쉬운 방법 — 웹앱 (설치·인증키 없음) 브라우저만 있으면 됩니다. 아래 주소로 접속하세요: ### 👉 https://school.gomdori.app 맨 위 탭으로 **세 가지 모드**를 오갑니다 — 📋 **수행평가·내신**(첫 화면) · 📊 **학교 비교**(학교를 먼저 안 찾아도 지역+학교급만으로 비교표) · 🎓 **대학 진학**(전국 49개 대학 전공별 권장 이수과목, 내 선택과목을 골라두면 ✓로 대조). 수행평가·내신 모드는 이렇게 씁니다: 1. **학교 이름만 입력** (예: "자양중") → `학교 찾기` *(지역을 몰라도 됩니다. 전국에서 바로 찾아줘요. 시도/시군구로 좁혀 찾고 싶으면 `지역으로 검색` 탭.)* 2. 학교 카드에서 버튼 클릭: - 📋 **수행평가 계획** — 학교가 올린 hwp/pdf를 자동으로 표로 변환 - **학년·과목 버튼**으로 우리 애 학년, 보고 싶은 과목만 콕 집어 봅니다. *(전과목·전학년을 한꺼번에 띄우지 않아 **휴대폰에서도 안 끊기고** 빠릅니다.)* - 원본 파일(hwp/pdf)도 **그대로 다운로드** - 📅 **이번주** — 이번주 급식·학사일정·다가오는 **시험/방학 D-day**를 한 화면에 - 🍚 **급식** — 날짜별 식단에 **알레르기 회피 필터**(우유·땅콩 등 입력 → 위험 메뉴 ⚠️ 표시) + 칼로리 - 📊 **핵심 공시** — 급식 통계·학생수·동아리·방과후·상담을 한 번에 3. 한 번 본 학교는 **최근 본 학교**에 저장 — 다음엔 한 번 탭으로 바로. > 인증키 발급도, 회원가입도 필요 없습니다. **링크만 알면 누구나** 바로 쓸 수 있어요. > **모바일 최적화**(화면 안 잘리고, 단어 단위 줄바꿈, 큰 글씨 위계의 에디토리얼 디자인) — 카톡으로 링크 공유하면 다른 학부모도 그대로 사용. --- ## 🤖 AI에게 물어보기 (Claude Desktop / Cursor) 설치하면 **자연어로 그냥 물어볼 수 있습니다.** "검색"이 아니라 "대화"입니다. ### 방법 A — 원격 MCP (설치·빌드·인증키 전부 불필요, 추천) 공식 원격 MCP는 통합 호스트 `mcp.gomdori.app`(fly 머신 1대에 MCP 5종 동거)의 **`/school`** 경로입니다. 연결만 하면 되고, 인증키는 **서버에 있으니** 각자 발급할 필요가 없어요. **Claude Code** — 한 줄이면 끝: ```bash claude mcp add --transport http schoolinfo https://mcp.gomdori.app/school ``` 프로젝트 `.mcp.json`에 직접 적어도 됩니다: ```json { "mcpServers": { "schoolinfo": { "type": "http", "url": "https://mcp.gomdori.app/school" } } } ``` **Claude.ai 웹** — 설정 → 커넥터 → 커스텀 커넥터 추가 → URL에 `https://mcp.gomdori.app/school` 입력. **그 밖의 클라이언트(Claude Desktop·Cursor 등)** — 원격 MCP를 직접 지원하지 않는 클라이언트는 stdio 브리지를 거칩니다: ```json { "mcpServers": { "schoolinfo": { "command": "npx", "args": ["mcp-remote", "https://mcp.gomdori.app/school"] } } } ``` > 인증키는 서버에 있으니 각자 발급할 필요가 없습니다. (Streamable HTTP, stateless — 세션 관리 없음) ### 방법 B — 로컬 설치 (직접 구동, 인증키 필요) 본인 키로 로컬에서 돌리고 싶다면 (clone → build 후): ```json { "mcpServers": { "schoolinfo": { "command": "node", "args": ["C:/github_project/schoolinfo-mcp/dist/mcp.js"], "env": { "SCHOOLINFO_API_KEY": "발급받은_인증키" } } } } ``` > 인증키는 무료·즉시 발급입니다 → [발급 방법](#인증키-발급-cli--mcp-직접-구동-시) > macOS는 `args` 경로만 바꾸면 됩니다. Claude/Cursor를 재시작하면 도구가 활성화됩니다. > (로컬 구동에는 받은 hwp 파일을 직접 변환하는 `parse_evaluation_file`도 포함됩니다. 원격 MCP에는 보안상 제외.) ### 💬 학부모를 위한 실전 예시 프롬프트 설치 후, Claude에게 **이렇게 그대로 말해보세요.** (복사해서 붙여넣어도 됩니다) **🍱 급식·기본 정보** > "서울 강남구 개포중학교 급식 어떻게 운영돼? 직영이야 위탁이야?" > "개포중학교 한 반에 몇 명이야? 학년별 학생수도 알려줘." > "우리 동네 노원구 중학교 중에 개교한 지 오래된 곳 찾아줘." **📋 수행평가 (이 도구의 핵심)** — *학년·과목을 콕 집어 물어보세요* > "자양중학교 2학년 수행평가 계획 보여줘. 과목별로 뭘 언제 평가하는지 표로." > "우리 애 자양중 1학년인데, 과학이랑 수학 수행평가만 자세히 알려줘." > "개포중학교 올해 수행평가 계획 보여줘. 과목별 반영비율이랑 시기 정리해줘." > "개포중 1학년 국어·영어·수학 수행평가만 표로 만들어줘. 언제 뭘 평가하는지." > "우리 애가 중2인데, 이번 학기 수행평가 일정 빠른 것부터 순서대로 알려줘. 준비물·과제 있으면 같이." > "자양중 3학년 영어 수행평가 항목이랑 배점, 정기시험 비율까지 정리해줘." > "이 학교 수행평가 100%인 과목이랑 지필고사 비중 높은 과목을 구분해줘." **🎭 학교 생활·활동** > "개포중학교 동아리 어떤 게 있어? 방과후 프로그램도 같이 알려줘." > "이 학교 상담은 어떻게 운영돼? 학교폭력 예방교육은 얼마나 해?" **⚖️ 비교·판단 (전학·진학 고민)** > "강남구 대청중학교랑 개포중학교 급식이랑 학급당 인원 비교해줘." > "분당 지역 중학교 몇 곳 학생수랑 동아리 비교해서 표로 보여줘." **📂 받은 파일 정리** > "학교에서 받은 이 평가계획 hwp 파일에서 우리 애 학년 수행평가만 정리해줘" > (파일 경로를 함께 알려주면 됨 — `C:\Downloads\2026_평가계획.hwp`) > Claude가 알아서 학교를 찾고, hwp를 내려받아 변환하고, 표로 정리해줍니다. > 학교코드·연도·파일 위치 같은 건 **하나도 몰라도 됩니다.** ### 제공 도구 (로컬 15종 · 원격 14종) | 도구 | 하는 일 | |------|---------| | `find_school` | **학교명만으로 전국 검색** (지역 몰라도 됨) | | `search_school` | 시도·시군구·학교급·이름으로 학교 찾기 | | `list_disclosure_types` | 조회 가능한 공시항목 35종 목록 | | `get_disclosure` | 특정 공시 1건 (급식/학생수/동아리 등) | | `get_parent_digest` | 학부모 핵심 공시를 한 번에 | | `get_school_schedule` | **학사일정 조회** (시험·방학·체험학습 + 다가오는 **시험/방학 D-day**, NEIS — `NEIS_API_KEY` 필요) | | `get_school_meal` | **급식 식단 + 알레르기 회피 필터** (날짜별 요리·알레르기 18종·칼로리·영양, NEIS) | | `get_school_week` | **이번주 브리핑** (급식·학사일정·D-day; 학년·반 주면 오늘 시간표까지, NEIS) | | `get_exam_calendar` | **지역 시험 캘린더** — 여러 학교 중간·기말고사 일정을 한 타임라인으로 (학원·학부모, NEIS) | | `get_school_report` | **학교 비교 리포트** — 같은 시군구 학교들을 학급당 인원·급식 운영방식/1식 식품비·교원 기간제 비율·동아리 수·1인당 장서로 한 표에 (전학·입학) | | `get_evaluation_plan` | **수행평가 계획 자동 조회** (hwp 다운로드 → 파싱 → 표 추출) | | `get_curriculum_plan` | **교육과정 편제 조회** — 「학교교육과정 편성·운영 및 평가에 관한 사항」(2-가) 첨부를 내려받아 교과(군)별 이수단위/시간 배당표 추출 | | `get_admission_subjects` | **전공 연계 권장 이수과목** — 대학 모집단위(학과)별로 고교에서 이수하면 좋은 선택과목 (`src/admission.json`) | | `get_subject_achievement` | **교과별 학업성취 사항** 확인 링크 안내 (과목별 평균·성취도 A~E — 캡차 보호로 자동조회 불가, 중·고) | | `parse_evaluation_file` | 직접 받은 평가계획 파일(hwp/pdf/docx) 변환 — **로컬 구동 전용**(서버 파일시스템을 읽어 원격 MCP에는 미등록) | --- ## 🎯 핵심 기능: 수행평가 계획 자동화 "교과별(학년별) 교수·학습 및 평가 운영 계획"은 학부모가 가장 궁금해하지만 가장 찾기 어렵습니다. 이 항목은 학교알리미 OpenAPI에 **없고 hwp 첨부파일로만** 공시되기 때문입니다. 이 도구는 학교별 공시정보 웹의 내부 요청을 그대로 재현해서, **브라우저 없이 순수 HTTP로** 평가계획 hwp/hwpx/pdf를 자동으로 내려받고, kordoc으로 파싱해 수행평가 표를 뽑아줍니다. ``` 학교명 입력 │ ▼ OpenAPI로 학교식별코드 조회 ──▶ 평가계획 첨부파일 목록 (POST) │ │ │ ▼ └────────────────────▶ hwp/hwpx/pdf 자동 다운로드 │ ▼ kordoc 파싱 → 수행평가 섹션 추출 → 표 ``` 실제 추출 예 (개포중학교): | 과목 | 영역 | 유형 | 반영비율 | |------|------|------|---------| | 국어 | 말하기·듣기/매체 활동 | 정기시험(중간·기말) 선택형 | 30% | | … | … | … | … | **학교마다 평가계획을 올리는 방식이 다른데, 알아서 맞춰 보여줍니다:** - **한 파일에 전학년·전과목**을 담은 학교(통합형) → 웹앱이 **학년·과목 버튼**을 만들어, 고른 학년/과목만 표로 그립니다. 문서가 수백 KB로 커도 **고른 부분만 그려서 휴대폰에서 안 끊깁니다.** - **학년별·과목별로 파일이 나뉜** 학교 → **파일 목록**에서 골라 보거나 전체를 한꺼번에 볼 수 있습니다. - AI(MCP)·CLI에서는 `subject="국어"`(특정 과목)·`all=true`(전체)로 골라 받습니다. --- ## ⌨️ CLI 사용 개발자·파워유저용. 터미널에서 바로, 스케줄러로 자동 알림까지. ### 설치 ```bash git clone https://github.com/chrisryugj/schoolinfo-mcp cd schoolinfo-mcp npm install npm run build ``` ### 인증키 발급 (CLI / MCP 직접 구동 시) 1. https://www.schoolinfo.go.kr/ng/go/pnnggo_a01_m0.do 접속 2. 네이버/카카오 로그인 후 OpenAPI 인증키 신청 (**무료·즉시 발급**) 3. 환경변수로 설정: ```bash # .env.local 파일 또는 환경변수 SCHOOLINFO_API_KEY=발급받은_인증키 NEIS_API_KEY=발급받은_NEIS_인증키 # 학사일정 기능용(선택) — https://open.neis.go.kr 무료 발급 ``` > `NEIS_API_KEY`는 급식·학사일정·이번주 브리핑(`get_school_meal`·`get_school_schedule`·`get_school_week`)에 쓰입니다. 없어도 나머지 공시 기능은 정상 동작합니다. ### 명령어 (실제 동작 예시) 아래는 실제로 실행한 출력입니다. #### 학교 검색 ```bash $ schoolinfo search 서울 강남구 중학교 개포 ``` ```markdown ## 개포중학교 (중학교) | 항목 | 내용 | |------|------| | 설립 | 공립 | | 교육청 | 서울특별시교육청 | | 주소 | 서울특별시 강남구 선릉로 9 | | 전화 | 02-2138-1631 | | 홈페이지 | https://gaepo.sen.ms.kr | | 학교코드 | S010000699 | ``` #### 급식 ```bash $ schoolinfo get 서울 강남구 중학교 개포중학교 급식 ``` ```markdown ### 급식 실시 현황 | 항목 | 값 | |------|------| | 급식학생수 | 1090 | | 운영방식 - 급식종류 | 직영 | | 급식담당인력(명) - 영양(교)사 | 1 | | 급식담당인력(명) - 조리사 | 1 | | 급식담당인력(명) - 조리원 | 9 | | 급식비율 | 100 | ``` #### 학년별·학급별 학생수 ```bash $ schoolinfo get 서울 강남구 중학교 개포중학교 학년별 ``` ```markdown ### 학년별·학급별 학생수 | 항목 | 값 | |------|------| | 1학년 학생수 | 300 | | 2학년 학생수 | 374 | | 3학년 학생수 | 410 | | 총계 학생수 | 1090 | | 총계 학급당 학생수 | 29.5 | ``` #### 수행평가 계획 자동 조회 ```bash $ schoolinfo eval 서울 강남구 중학교 개포중학교 ``` ```markdown ## 📄 2026학년도 개포중 학교교육과정 편성 운영 및 교수학습 평가 계획.hwpx (hwpx) ### 🎯 수행평가 관련 (3개) | 과목 | 1학기 | 2학기 | 반영비율(%) | 만점 | |------|-------|-------|------------|------| | 국어 | 말하기·듣기 매체 활동 / 정기시험 중간·기말(선택형) | … | 30 | 100 | | … | … | … | … | … | ``` 과목별로 나뉜 학교는 목록을 먼저 보여줍니다: ```bash $ schoolinfo eval 서울 강남구 고등학교 ○○고등학교 📋 ○○고등학교 평가계획 파일 12개 (과목별): - 2026_국어과_평가계획.pdf (320KB) - 2026_수학과_평가계획.pdf (280KB) ... 전체를 보려면 명령 끝에 'all'을 붙이세요. 예: eval 서울 강남구 고등학교 ○○고등학교 all ``` #### 그 외 명령 ```bash schoolinfo digest 서울 강남구 중학교 개포중학교 # 핵심 공시 모아보기 schoolinfo report 서울 강남구 중학교 # 학교 비교 리포트 (학급당·급식·교원기간제·동아리) schoolinfo report 서울 강남구 중학교 개포중 대청중 # 특정 학교들만 비교 schoolinfo achievement 서울 강남구 중학교 개포중학교 # 교과별 학업성취(과목별 평균·성취도) 확인 링크 (캡차 보호, 중·고) schoolinfo exams 서울 강남구 중학교 # 지역 시험 캘린더 (인근 학교 전체, NEIS) schoolinfo exams 서울 강남구 중학교 개포중 대청중 # 특정 학교들 시험만 schoolinfo schedule 서울 강남구 중학교 개포중학교 # 학사일정 (시험·방학 등, NEIS_API_KEY 필요) schoolinfo meal 서울 강남구 중학교 개포중학교 우유 땅콩 # 오늘 급식 (뒤에 회피 알레르기 나열, NEIS) schoolinfo week 서울 강남구 중학교 개포중학교 2 3 # 이번주 브리핑 (급식·일정·D-day, 학년·반 주면 시간표, NEIS) schoolinfo parse "C:\Downloads\2026_평가계획.hwp" # 받은 hwp → 마크다운 + 수행평가 추출 schoolinfo check 서울 강남구 중학교 개포중학교 # 변경 감지 + 알림 (스케줄러용) ``` --- ## 🔔 자동 알림 (공시가 바뀌면 팝업) 비개발자도 OS 스케줄러로 주기 실행하면 됩니다. 공시가 바뀔 때만 알림이 뜹니다. **Windows 작업 스케줄러** — 매일 오전 8시 변경 확인: ```powershell schtasks /create /tn "학교알리미체크" /sc daily /st 08:00 ^ /tr "node C:\github_project\schoolinfo-mcp\dist\cli.js check 서울 강남구 중학교 개포중학교" ``` **macOS/Linux cron** — 매주 월요일 8시: ```cron 0 8 * * 1 SCHOOLINFO_API_KEY=... node /path/dist/cli.js check 서울 강남구 중학교 개포중학교 ``` --- ## 🚀 직접 배포하기 (선택) 공식 웹앱은 **[school.gomdori.app](https://school.gomdori.app)** — Vercel에 배포돼 있습니다. 레포에 `vercel.json`이 포함돼 본인 Vercel 계정에도 띄울 수 있습니다: ```bash vercel link # 프로젝트 연결 echo "발급키" | vercel env add SCHOOLINFO_API_KEY production echo "NEIS키" | vercel env add NEIS_API_KEY production # 학사일정용(선택) vercel build --prod && vercel deploy --prebuilt --prod # 로컬 빌드 후 업로드 ``` > 이 패키지는 npm 라이브러리(`main`)를 겸하므로, Vercel이 라이브러리 진입점을 서버 함수로 오인하지 않도록 `vercel.json`에서 `framework: null` + `api/index.ts` 단일 함수로 고정하고, `vercel build → deploy --prebuilt`로 로컬 빌드 산출물을 업로드합니다. hwp/hwpx/pdf 파싱은 순수 JS(Chromium 불필요)라 서버리스 함수로 충분합니다. fly.io 등 일반 Node 호스트에는 `node dist/server.js`로도 그대로 띄울 수 있습니다(같은 `handleRequest` 공용). > 공식 원격 MCP(`mcp.gomdori.app/school`)는 이 레포가 아니라 **통합 호스트 `gomdori-mcp`**(fly 머신 1대에 MCP 5종 동거, 비공개 레포)가 서빙합니다 — GitHub main을 커밋 SHA로 고정해 빌드하므로, 반영하려면 통합 호스트의 핀을 갱신하고 배포해야 합니다. --- ## 🧩 무엇을 조회할 수 있나 (공시 35종) | 분류 | 항목 | |------|------| | 👪 학생 | 학년별·학급별 학생수, 성별 학생수, 전·출입/학업중단, 입학생 | | 🍱 급식·건강 | 급식 실시 현황, 급식비 집행, 보건관리, 환경위생, 체력 증진 | | 🎭 활동 | 동아리, 방과후학교, 자유학기제, 교육운영 특색사업, 상담 | | 👩‍🏫 교원 | 직위별·표시과목별·자격종별 교원, 직원 현황 | | 🏫 시설·안전 | 교사/용지/지원시설 현황, 시설 개방, 장애인 편의시설, 안전교육, 시설안전 점검 | | 💰 회계 | 예·결산서, 교비회계, 학교발전기금, 장학금, 교복 단가 | | 🛡️ 안전 | 학교폭력 예방교육 실적, 수업일수·시수 | | 📋 **첨부 전용** | **교과별 교수·학습 및 평가 운영 계획 (수행평가) — hwp 자동 추출** | --- ## 🏗️ 아키텍처 ``` 학교알리미 OpenAPI ─┐ (35종 정형 JSON) ├─→ SchoolInfoClient ─→ MCP 도구 / CLI / 웹앱 │ 평가계획·편제 첨부 ─┤─→ kordoc(parse) ─→ 수행평가 표 / 교과 편제표 추출 │ NEIS 개방포털 ──────┘─→ 학사일정·급식·시간표 ``` | 모듈 | 역할 | |------|------| | `src/client.ts` | OpenAPI 클라이언트(지역 학교검색+공시) + **학교명 전국검색**(`searchSchoolsByName`) | | `src/codes.ts` | 시도/시군구/학교급/공시항목 코드 매핑 + 약칭 정규화 | | `src/evaluation.ts` | **평가계획 hwp 자동 다운로드** + kordoc 파싱·수행평가 추출 (교육과정 편제 2-가 포함) | | `src/neis.ts` | **NEIS 학사일정·급식·시간표** 조회 (학교코드 해석·동명이교 구분·월별 포맷) | | `src/admission.ts` | **대학 전공별 권장 이수과목** 매칭 (`admission.json`·`admission.joint.json`, 2015↔2022 개정 과목 별칭·본교/분교 분리) | | `src/achievement.ts` | 교과별 학업성취 사항 공시 화면 딥링크 안내 (캡차 보호로 자동조회 불가) | | `src/lib/` | 공통 인프라 — `fetch-with-retry`(재시도·타임아웃·키마스킹), `cache`(LRU+TTL) | | `src/regions.json` | 시도·시군구 행정코드 (2026 개편 반영 — 전남광주통합특별시·인천 신설구·화성 분구, 과도기 구·신 명칭 병행) | | `src/labels.json` | 35종 공시항목 컬럼ID→한글 라벨 | | `src/mcpServer.ts` | MCP 도구 정의 (stdio·원격 HTTP 공용 `buildMcpServer`) | | `src/mcp.ts` | MCP 서버 stdio 런처 | | `src/cli.ts` | CLI + 변경감지 알림 | | `src/server.ts` + `src/web.ts` | 웹앱 HTTP 서버 + 단일 페이지 UI + **원격 MCP `/mcp`** — `handleRequest`가 Vercel(`api/index.ts`)·fly(`node dist/server.js`) 공용 | --- ## 🔒 보안 - 인증키는 코드/저장소가 아니라 **환경변수·Vercel env·fly secret**으로만 주입 - 외부(공공API·공문서) 데이터를 DOM에 넣을 때 **XSS 이스케이프 + DOMPurify + CSP** 3중 방어 - 파일 다운로드 50MB / 파싱 200MB 상한, 외부 요청 타임아웃, 경로 순회 차단 - 원본 다운로드는 파일명 정제 + `Content-Disposition` RFC5987 인코딩(헤더 인젝션 차단) - 웹앱·원격 MCP IP rate limit (일반 분당 60회 / 평가계획 다운로드·파싱은 분당 10회 + 전역 동시성 4), 에러 메시지에 내부 정보 비노출 - 원격 MCP는 **stateless**(세션 미보관) + 서버 로컬파일 접근 도구(`parse_evaluation_file`) 비노출 --- ## 📜 라이선스 코드는 MIT([LICENSE](./LICENSE)). **데이터에는 MIT가 적용되지 않습니다.** | 데이터 | 출처 | 조건 | |--------|------|------| | 학교 공시정보 (정형 35종) | [학교알리미](https://www.schoolinfo.go.kr) OpenAPI | 공공누리 제1유형(출처표시) | | 학사일정 | NEIS 교육정보 개방포털 | 각 포털 이용약관 | | 전공 연계 권장과목 (`src/admission.json`) | 「2028학년도 권역별 대학별 권장과목(반영과목)」(한국대학교육협의회) 외 — 파일 내 `sources` 참조 | 아래 참고 | | hwp 변환 엔진 | [kordoc](https://github.com/chrisryugj/kordoc) | MIT | `src/admission.json` 은 대학별 권장과목 안내 자료의 기재 내용을 원문에 가깝게 옮긴 것입니다. 이 저장소의 MIT 라이선스는 해당 데이터에 적용되지 않으며, 권리는 원 발간 기관에 있습니다. 재사용하려면 원 자료의 이용 조건을 직접 확인하세요. 입시 판단에는 반드시 각 대학의 최신 공식 발표를 확인해야 합니다. 전체 고지는 [NOTICE](./NOTICE)를 참조하세요. --- 이 도구는 개인이 만든 비공식 프로젝트이며, 학교알리미·NEIS·한국대학교육협의회 등 어떤 기관과도 제휴·후원 관계가 없습니다. 서비스명 「우리 학교 알리미」는 공적 서비스 「학교알리미」와 무관합니다.