https://github.com/leegeunhyeok/school-kr
ππ΄ μ κ΅ κ΅μ‘μ² κΈμ, νμ¬μΌμ νμ± λΌμ΄λΈλ¬λ¦¬
https://github.com/leegeunhyeok/school-kr
javascript node-module nodejs school school-kr
Last synced: 21 days ago
JSON representation
ππ΄ μ κ΅ κ΅μ‘μ² κΈμ, νμ¬μΌμ νμ± λΌμ΄λΈλ¬λ¦¬
- Host: GitHub
- URL: https://github.com/leegeunhyeok/school-kr
- Owner: leegeunhyeok
- License: mit
- Created: 2018-04-22T07:58:40.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2023-01-07T04:29:49.000Z (over 2 years ago)
- Last Synced: 2025-03-25T19:40:44.524Z (about 1 month ago)
- Topics: javascript, node-module, nodejs, school, school-kr
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/school-kr
- Size: 1.55 MB
- Stars: 46
- Watchers: 4
- Forks: 10
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# school-kr
> μ κ΅ μ΄, λ±, κ³ λ±νκ΅ λ° λ³μ€μ μΉμ κΈμ, νμ¬μΌμ νμ± λΌμ΄λΈλ¬λ¦¬
[](https://www.npmjs.com/package/school-kr)
[](https://www.npmjs.com/package/school-kr)
[](https://www.npmjs.com/package/school-kr)
[](https://circleci.com/gh/leegeunhyeok/school-kr)λ³Έ λΌμ΄λΈλ¬λ¦¬λ `Node.js` νκ²½μμ μ¬μ©ν μ μλ Promise κΈ°λ°μ `κΈμ API` + `νμ¬μΌμ API` ν΅ν© λΌμ΄λΈλ¬λ¦¬ μ λλ€.
μ κ΅ κ΅μ‘μ² νμ μλΉμ€ νμ΄μ§(stu.xxx.go.kr)λ₯Ό νμ±νμ¬ μ΄λ² λ¬ **νμ¬μΌμ **κ³Ό **κΈμ μ 보**λ₯Ό JSON λ°μ΄ν°λ‘ μ 곡ν©λλ€.
`3.0.0` λ²μ λΆν° νμ± λ°©μμ΄ μλ API νΈμΆμ ν΅ν΄ λ°μ΄ν°λ₯Ό μμ§νμ¬ μ 곡ν©λλ€.
- `μκ°ν μ 보`λ νμνμ κ°μ? κ·Έλ λ€λ©΄ [comcigan-parser](https://github.com/leegeunhyeok/comcigan-parser) λΌμ΄λΈλ¬λ¦¬λ ν¨κ» νμΈν΄λ³΄μΈμ!
## μ€μΉνκΈ°
[NPM](https://www.npmjs.com/package/school-kr) μ μ₯μλ₯Ό ν΅ν΄ λ€μ΄λ‘λ λ°μ μ μμΌλ©° λ³λ€λ₯Έ μμ μμ΄ λ°λ‘ μ¬μ© κ°λ₯ν©λλ€.
```bash
npm i school-kr
```## ν μ€νΈ
μλ λͺ λ Ήμ΄λ₯Ό μ λ ₯νμ¬ λ―Έλ¦¬ μμ±λ μμ μ½λλ₯Ό μ€νν΄λ³Ό μ μμ΅λλ€.
`sample/sample.js` μ½λκ° μ€νλλ©°, νκ΅λ `κ΄λͺ κ²½μνκ³κ³ λ±νκ΅` κΈ°μ€μΌλ‘ μ€νλ©λλ€.```bash
npm test
````v2` λ²μ κ³Ό `v3` λ²μ μ μ±λ₯ λΉκ΅
---
> v3λ v2 λλΉ μ½ 25%μ μ±λ₯μ΄ ν₯μλ¨ (λ€νΈμν¬ μνμ λ°λΌ μΌλΆ λ³λλ μ μμ)
ν μ€νΈ μ½λλ `test/test_v2.js`, `test/test_v3.js` μ°Έκ³
## κ°λ° λ¬Έμ
### School
λͺ¨λμ λΆλ¬μ€λ©΄ School ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μμ±ν μ μμ΅λλ€.
```javascript
const School = require('school-kr');
new School();
```---
### School.Type
[νκ΅ μ’ λ₯](#νκ΅-μ’ λ₯) μ°Έμ‘°
---
### School.Region
[κ΅μ‘μ² κ΄ν μ§μ](#κ΅μ‘μ²-κ΄ν -μ§μ) μ°Έμ‘°
---
### (Method) School.search
μ§μ ν μ§μμ νκ΅λ₯Ό κ²μνμ¬ μ 보λ₯Ό λ°νν©λλ€.
| Parameter | Type | Required |
| :-------- | :----: | :------: |
| region | Symbol | O |
| name | string | O |Return type: `Promise>`, [μ°Έκ³ ](#κ²μ-λ°μ΄ν°-νμ)
```javascript
const school = new School();
school.search(region, name);
```μμ λ [νκ΅ κ²μ](#νκ΅-κ²μ) μ°Έμ‘°
---
### (Method) School.init
μΈμ€ν΄μ€ μ 보λ₯Ό μ§μ ν νκ΅λ‘ μ΄κΈ°ν ν©λλ€.
| Parameter | Type | Required |
| :--------- | :----: | :------: |
| type | Symbol | O |
| region | Symbol | O |
| schoolCode | string | O |Return type: `void`
```javascript
const school = new School();
school.init(type, region, schoolCode);
```μμ λ [μΈμ€ν΄μ€ μ΄κΈ°ν](#μΈμ€ν΄μ€-μ΄κΈ°ν) μ°Έμ‘°
---
### (Method) School.getMeal
μ΄λ² λ¬ λλ μ§μ ν λ λ/μμ κΈμ λ°μ΄ν°λ₯Ό λ°νν©λλ€
λ λ λλ μμ μ§μ νμ§ μμ κ²½μ° **νμ¬ μμ μ λ μ§** κΈ°μ€μ λ°μ΄ν°λ₯Ό λ°νν©λλ€.| Parameter | Type | Required |
| :-------- | :----: | :------: |
| year | any | X |
| month | number | X |Return type: `Promise`, [μ°Έκ³ ](#κΈμ-λ°μ΄ν°-νμ)
```javascript
school.getMeal(year, month);
```μμ λ [κΈμ λ° νμ¬μΌμ μ‘°ν](#κΈμ-λ°-νμ¬μΌμ -μ‘°ν) μ°Έμ‘°
---
### (Method) School.getCalendar
μ΄λ² λ¬ λλ μ§μ ν λ λ/μμ νμ¬μΌμ λ°μ΄ν°λ₯Ό λ°νν©λλ€
λ λ λλ μμ μ§μ νμ§ μμ κ²½μ° **νμ¬ μμ μ λ μ§** κΈ°μ€μ λ°μ΄ν°λ₯Ό λ°νν©λλ€.| Parameter | Type | Required |
| :-------- | :----: | :------: |
| year | any | X |
| month | number | X |Return type: `Promise`, [μ°Έκ³ ](#νμ¬μΌμ -λ°μ΄ν°-νμ)
```javascript
school.getCalendar(year, month);
```μμ λ [κΈμ λ° νμ¬μΌμ μ‘°ν](#κΈμ-λ°-νμ¬μΌμ -μ‘°ν) μ°Έμ‘°
---
## μ¬μ© λ°©λ²
### School μΈμ€ν΄μ€ μμ±
`school-kr` λͺ¨λμ λΆλ¬μ¨ ν μΈμ€ν΄μ€λ₯Ό μμ±ν©λλ€.
μμ± ν λ°λμ `init()`λ₯Ό νΈμΆνμ¬ λ°μ΄ν°λ₯Ό μ‘°νν νκ΅λ‘ μ΄κΈ°νν©λλ€.- init() νΈμΆ μμ΄ λ°μ΄ν°λ₯Ό λΆλ¬μ¬ κ²½μ° Errorκ° Throw λ©λλ€.
```javascript
const School = require('school-kr')
const school = new School()/*
* @param type: νκ΅ μ ν(μ΄, μ€, κ³ , λ³μ€μ μΉμ)
* @param region: κ΅μ‘μ² κ΄ν μ§μ
* @param schoolCode: νκ΅ κ³ μ μ½λ
*/
school.init(/* Type */, /* Region */, /* SchoolCode */)
```#### νκ΅ μ’ λ₯
νκ΅ μ’ λ₯λ `School.Type` μμ μ νν μ μμ΅λλ€.
```javascript
const School = require('school-kr');/* 4 */
console.log(School.Type.HIGH);
```| μ ν | Key | Value |
| :--------: | :------------- | :---: |
| λ³μ€μ μΉμ | `KINDERGARTEN` | 1 |
| μ΄λ±νκ΅ | `ELEMENTARY` | 2 |
| μ€νκ΅ | `MIDDLE` | 3 |
| κ³ λ±νκ΅ | `HIGH` | 4 |#### κ΅μ‘μ² κ΄ν μ§μ
μ§μμ μμ±ν `School.Region` μμ μ νν μ μμ΅λλ€.
```javascript
const School = require('school-kr');/* stu.sen.go.kr */
console.log(School.Region.SEOUL);
```| μ§μ | Key | Value |
| :--: | :---------- | :------------ |
| μμΈ | `SEOUL` | stu.sen.go.kr |
| μΈμ² | `INCHEON` | stu.ice.go.kr |
| λΆμ° | `BUSAN` | stu.pen.go.kr |
| κ΄μ£Ό | `GWANGJU` | stu.gen.go.kr |
| λμ | `DAEJEON` | stu.dge.go.kr |
| λꡬ | `DEAGU` | stu.dge.go.kr |
| μΈμ’ | `SEJONG` | stu.sje.go.kr |
| μΈμ° | `ULSAN` | stu.use.go.kr |
| κ²½κΈ° | `GYEONGGI` | stu.goe.go.kr |
| κ°μ | `KANGWON` | stu.kwe.go.kr |
| μΆ©λΆ | `CHUNGBUK` | stu.cbe.go.kr |
| μΆ©λ¨ | `CHUNGNAM` | stu.cne.go.kr |
| κ²½λΆ | `GYEONGBUK` | stu.gbe.go.kr |
| κ²½λ¨ | `GYEONGNAM` | stu.gne.go.kr |
| μ λΆ | `JEONBUK` | stu.jbe.go.kr |
| μ λ¨ | `JEONNAM` | stu.jne.go.kr |
| μ μ£Ό | `JEJU` | stu.jje.go.kr |## νκ΅ μ½λ
`School.search()`λ₯Ό ν΅ν΄ νκ΅ μ½λλ₯Ό κ²μν μ μμ΅λλ€.
μμΈν μ¬μ©λ²μ [νκ΅ κ²μ](#νκ΅-κ²μ) μ°Έμ‘°## μ¬μ© μμ
β» μλ μμ λ κ²½κΈ°λμ `κ΄λͺ κ²½μνκ³κ³ λ±νκ΅`λ₯Ό κΈ°μ€μΌλ‘ μ§νλ©λλ€.
### νκ΅ κ²μ
```javascript
const School = require('school-kr');
const school = new School();school.search(School.Region.GYEONGGI, 'κ΄λͺ κ²½μνκ³κ³ ');
```### μΈμ€ν΄μ€ μ΄κΈ°ν
```javascript
const School = require('school-kr');
const school = new School();school.init(School.Type.HIGH, School.Region.GYEONGGI, 'J100000488');
```### κΈμ λ° νμ¬μΌμ μ‘°ν
#### μ¬μ© μμ
```javascript
const School = require('school-kr');
const school = new School();const example = async function () {
// νκ΅ κ²μ λ° μ²« λ²μ§Έ κ²°κ³Όμ νκ΅ μ½λλ‘ μ΄κΈ°ν
const result = await school.search(School.Region.GYEONGGI, 'κ΄λͺ κ²½μνκ³κ³ ');
school.init(School.Type.HIGH, School.Region.GYEONGGI, result[0].schoolCode);const meal = await school.getMeal();
const calendar = await school.getCalendar();// μ€λ λ μ§
console.log(`${meal.month}μ ${meal.day}μΌ`);// μ€λ κΈμ μ 보
console.log(meal.today);// μ΄λ² λ¬ κΈμ μ 보
console.log(meal);// μ΄λ² λ¬ νμ¬μΌμ
console.log(calendar);// λ λμ λ¬μ μ§μ νμ¬ ν΄λΉ λ μ§μ λ°μ΄ν°λ₯Ό μ‘°νν μ μμ΅λλ€.
const mealCustom = await school.getMeal(2018, 9);
const calendarCustom = await school.getCalendar(2017, 4);console.log(mealCustom);
console.log(calendarCustom);// λ λκ° λμ μ΅μ κ°μ²΄λ₯Ό μ λ¬νμ¬ λ°μ΄ν° μμ§ κ°λ₯
// year: λ λ (κΈ°λ³Έκ°: νμ¬ μμ μ λ λ)
// month: λ¬ (κΈ°λ³Έκ°: νμ¬ μμ μ λ¬)
// default: κΈμμ΄ μλ κ²½μ° κΈ°λ³Έκ° (κΈ°λ³Έκ°: '')
const optionMeal = await school.getMeal({
year: 2018,
month: 9,
default: 'κΈμμ΄ μμ΅λλ€',
});// λ λκ° λμ μ΅μ κ°μ²΄λ₯Ό μ λ¬νμ¬ λ°μ΄ν° μμ§ κ°λ₯
// year: λ λ (κΈ°λ³Έκ°: νμ¬ μμ μ λ λ)
// month: λ¬ (κΈ°λ³Έκ°: νμ¬ μμ μ λ¬)
// default: κΈμμ΄ μλ κ²½μ° κΈ°λ³Έκ° (κΈ°λ³Έκ°: '')
// separator: ν루μ 2κ° μ΄μμ μΌμ μ΄ μλ κ²½μ°μ ꡬλΆλ¬Έμ (κΈ°λ³Έκ°: ,)
// μ: 겨μΈλ°©ν,ν μν΄μ μΌ
const optionCalendar = await school.getCalendar({
default: 'μΌμ μλ λ ',
separator: '\n',
});console.log(optionMeal);
console.log(optionCalendar);
};example();
```### κ²μ λ°μ΄ν° νμ
`search` λ°ν λ°μ΄ν° νμμ μλμ κ°μ΅λλ€.
| Key | Value | λΉκ³ |
| :--------- | :---------: | :-------- |
| name | νκ΅λͺ | |
| schoolCode | νκ΅ μ½λ | NEIS μ½λ |
| address | νκ΅ μμ¬μ§ | |```javascript
// κ²½κΈ°, μν ν€μλ κ²μ κ²°κ³Ό
[
{
name: 'μνμ΄λ±νκ΅λ³μ€μ μΉμ',
schoolCode: 'J100005055',
address: 'κ²½κΈ°λ κ΄λͺ μ μν1λ',
},
{
name: 'μνμ΄λ±νκ΅',
schoolCode: 'J100001213',
address: 'κ²½κΈ°λ κ΄λͺ μ μνλ',
},
{ name: 'μνμ€νκ΅', schoolCode: 'J100001194', address: 'κ²½κΈ°λ κ΄λͺ μ μνλ' },
{
name: 'μνκ³ λ±νκ΅',
schoolCode: 'J100000632',
address: 'κ²½κΈ°λ κ΄λͺ μ μν1λ',
},
];
```### κΈμ λ°μ΄ν° νμ
`getMeal` λ°ν λ°μ΄ν° νμμ μλμ κ°μ΅λλ€.
| Key | Value | λΉκ³ |
| :----- | :--------------: | :------------------------------------------------ |
| 1 ~ 31 | ν΄λΉ λ μ§μ κΈμ | κΈμμ΄ μλ κ²½μ° option.default κ° νΉμ λΉ λ¬Έμμ΄ |
| year | μ‘°ν λ λ | |
| month | μ‘°ν λ¬ | |
| day | μ€λ λ μ§ | μ¬μ©μ μ§μ λ λ/μμ΄ μ΄λ² λ¬μ΄ μλ κ²½μ° 0 |
| today | μ€λ κΈμ | κΈμμ΄ μλ κ²½μ° κΈ°λ³Έ κΈμ κ° |```javascript
{
'1': '[μ€μ]\nλ°μνλ―Έλ°₯\nλ―Έμκ΅5.6.9....', // μ΄λ²λ¬ 1μΌ λ©λ΄
'2': '[μ€μ]\nμΌκ°μ΄λμ₯무침5.6.\nμΉΌμμ°Ήμ....', // μ΄λ²λ¬ 2μΌ λ©λ΄
'3': '[μ€μ]\nν¬μλ°νμ€ν(μ£Όμ)1.2.5.6.9.13.15.\n....', // μ΄λ²λ¬ 3μΌ λ©λ΄
'4': '', // κΈμμ΄ μμ κ²½μ° option.default κ° νΉμ λΉ λ¬Έμμ΄
'5': '',
...
'year': 2018, // μ΄λ² λ λ
'month': 5, // μ΄λ² λ¬
'day': 3, // μ€λ λ μ§
'today': '[μ€μ]\nν¬μλ°νμ€ν(μ£Όμ)1.2.5.6.9.13.15.\n....' // μ€λ λ©λ΄
}
```### νμ¬μΌμ λ°μ΄ν° νμ
`getCalendar` λ°ν λ°μ΄ν° νμμ μλμ κ°μ΅λλ€.
| Key | Value | λΉκ³ |
| :----- | :--------------: | :------------------------------------------------ |
| 1 ~ 31 | ν΄λΉ λ μ§μ μΌμ | μΌμ μ΄ μλ κ²½μ° option.default κ° νΉμ λΉ λ¬Έμμ΄ |
| year | μ‘°ν λ λ | |
| month | μ‘°ν λ¬ | |
| day | μ€λ λ μ§ | μ¬μ©μ μ§μ λ λ/μμ΄ μ΄λ² λ¬μ΄ μλ κ²½μ° 0 |
| today | μ€λ κΈμ | μΌμ μ΄ μλ κ²½μ° κΈ°λ³Έ μΌμ κ° |```javascript
{
'1': '', // μ΄λ² λ¬ 1μΌμ μΌμ
'2': '', // μΌμ μ΄ μμ κ²½μ° option.default κ° νΉμ λΉ λ¬Έμμ΄
'3': '',
'4': 'κ°κ΅κΈ°λ μΌ', // 4μΌ μΌμ
'5': '',
'6': '',
'7': 'λ체곡ν΄μΌ',
...
'year': 2018,
'month': 5 // μ΄λ² λ¬
'day': 4, // μ€λ λ μ§
'today': 'κ°κ΅κΈ°λ μΌ' // μ€λμ μΌμ
}
```## λ¬Έμ μ κ³
v3 λ―Έλ§μ λ²μ μ μ¬μ©νμλ κ²½μ° κ΅μ‘μ² ννμ΄μ§μ 리λ΄μΌ λ±μ λ¬Έμ λ‘ νμ±μ΄ λΆκ°λ₯ ν μ μμ΅λλ€. v3 μ΄μ μ¬μ©μ κΆμ₯νλ©°, λ¬Έμ κ° λ°μν κ²½μ° [μ΄μ](https://github.com/leegeunhyeok/school-kr/issues)λ₯Ό λ¨κ²¨μ£Όμλ©΄ μ΅λν λΉ λ₯΄κ² μμ νμ¬ λ°μνλλ‘ νκ² μ΅λλ€.
## λ³κ²½μ¬ν
- `3.1.2`
- [Issue #26](https://github.com/leegeunhyeok/school-kr/issues/25) 3μ μ΄μ μ νμ¬μΌμ μ μ λλ‘ λΆλ¬μ€μ§ λͺ»νλ λ¬Έμ μμ - Thanks to [cjaewon](https://github.com/cjaewon)
- `3.1.1`
- [Issue #19](https://github.com/leegeunhyeok/school-kr/issues/19) μλ‘ λ€λ₯Έ μ§μμ νκ΅ λ°μ΄ν°λ₯Ό λΆλ¬μ¬ κ²½μ° λ°μνλ λ¬Έμ μμ (κ²μ, κΈμ, κ³΅μ§ λͺ¨λ ν΄λΉν¨)
- κ°λ° μμ‘΄μ± λͺ¨λ μ λ°μ΄νΈ
- `3.1.0`
- [Issue #9](https://github.com/leegeunhyeok/school-kr/issues/9) μΈμ κ΄λ ¨ λ‘μ§ κ°μ (νμΈ νμ)
- [Issue #16](https://github.com/leegeunhyeok/school-kr/issues/16) νμ μ€ν¬λ¦½νΈ μ§μ(d.ts μΆκ°) - Thanks to [cjaewon](https://github.com/cjaewon)
- ESLint κ΅¬μ± μΆκ° λ° μ½λ μ€νμΌ μμ
- `3.0.3`
- [Issue #15](https://github.com/leegeunhyeok/school-kr/issues/15) λͺ¨λμ λΆλ¬μ¬ μ μλ λ¬Έμ μμ
- `3.0.2`
- [Issue #11](https://github.com/leegeunhyeok/school-kr/issues/11), [Issue #14](https://github.com/leegeunhyeok/school-kr/issues/14) 1λ μ΄μ λ°μ΄ν°κ° νμ±λλ λ¬Έμ μμ
- `3.0.1`
- [Issue #10](https://github.com/leegeunhyeok/school-kr/issues/10) κ΅μ‘μ² μ§μλ³ μΈμ μ μ§νλλ‘ μμ
- `3.0.0`
- node-school-kr -> school-krλ‘ λͺ¨λλͺ λ³κ²½
- HTTP μμ² μ½λλ₯Ό κΈ°μ‘΄μ requestμμ λͺ¨λ axiosλ‘ λ³κ²½
- νμ΄μ§ HTML νμ± λ°©μμμ API λ°μ΄ν° μμ² λ°©μμΌλ‘ λ³κ²½ν¨μ λ°λΌ λ°μ΄ν° μμ§ μ±λ₯ κ°μ - `μ½ 25%`
- [Issue #2](https://github.com/leegeunhyeok/school-kr/issues/2) νκ΅ μ 보(μ½λ) μ‘°νλ₯Ό μν search λ©μλ μΆκ° - [μ°Έκ³ ](#method-schoolsearch)
- [Issue #6](https://github.com/leegeunhyeok/school-kr/issues/6) 1~2μ λ°μ΄ν°λ₯Ό μ‘°νν κ²½μ° μλͺ»λ λ°μ΄ν°κ° λμ€λ λ¬Έμ μμ - [μ°Έκ³ ](https://github.com/leegeunhyeok/school-kr/issues/6#issuecomment-575427817)
- 3.0.0 λΆν° μ¬μ©νμ§ μμ (Deprecated)
- `School.reset`
- `School.getTargetURL`
- 3.0.0μ λ§λλ‘ λ¬Έμ μμ , [Issue #7](https://github.com/leegeunhyeok/school-kr/issues/5) λ§ν¬λ€μ΄ νμ μμ
- `2.2.2`
- [Issue #5](https://github.com/leegeunhyeok/school-kr/issues/5) λμ κ΅μ‘μ² URL λ¬Έμ μμ
- `2.2.1`
- [Issue #4](https://github.com/leegeunhyeok/school-kr/issues/4) νμ¬μΌμ κΈ°λ³Έκ° μ€λ₯ μμ
- `2.2.0`
- [Issue #3](https://github.com/leegeunhyeok/school-kr/issues/3) κΈ°λ³Έκ° μ΅μ μΆκ°
- `getMeal`, `getCalendar` μ΅μ νΈμΆλ°©μ μΆκ°
- `2.1.2`
- [Issue #1](https://github.com/leegeunhyeok/school-kr/issues/1) κ²½λΆ κ΅μ‘μ² μ μλ¬Έμ μμ
- μμ‘΄ λΌμ΄λΈλ¬λ¦¬μ 보μ μ·¨μ½μ± μ λ°μ΄νΈ
- `2.1.1`
- μμ‘΄ λΌμ΄λΈλ¬λ¦¬μ 보μ μ·¨μ½μ± μ λ°μ΄νΈ
- `2.1.0`
- κΈμ / νμ¬μΌμ λ°μ΄ν°λ₯Ό λΆλ¬μ¬ λ λ λμ μμ μ§μ ν μ μλλ‘ κΈ°λ₯ μΆκ°
- κΈμ / νμ¬μΌμ λ°μ΄ν°μ λ λ μΆκ°
- READMEμ κ°λ° λ¬Έμ μΆκ° μμ±
- `2.0.1`
- μμ‘΄ λΌμ΄λΈλ¬λ¦¬μ 보μ μ·¨μ½μ± μ λ°μ΄νΈ
- `2.0.0`
- β» κΈ°μ‘΄ λ²μ κ³Ό `νΈνλμ§ μμ΅λλ€.` (μλ λ³κ²½μ¬νμ νμΈ ν΄μ£ΌμΈμ)
- Type, Region νλ‘νΌν° κ°μ Symbol κΈ°λ°μΌλ‘ ꡬν
- Type, Region μ κ·Ό λ°©μμ΄ μ‘°κΈ λ³κ²½ λ¨, [μ°Έκ³ 1](#νκ΅-μ’ λ₯), [μ°Έκ³ 2](#κ΅μ‘μ²-κ΄ν -μ§μ)
- μλ¬ λ°μ μν© μΆκ° λ° κΈ°μ‘΄ μλ¬ λ©μμ§ μμ
- getNotice λ©μλλͺ λ³κ²½ -> `getCalendar`
- getTargetURL λ©μλ μΆκ° (νμ±ν νκ² URLμ λ°νν©λλ€, [μ°Έκ³ ](#νκ²-URL-μ‘°ν))
- μμ λ° README λ΄μ© μμ μ¬νμ λ§κ² μ λ°μ΄νΈ / λ΄μ© μΆκ°
- μ½λ μ£Όμ μ λ°μ΄νΈ
- `1.0.1`
- NPM μ μ₯μμ μ΄λ¦ λμΌνκ² Git μ μ₯μ μ΄λ¦ λ³κ²½ (μ΄λ―Έ μ¬μ©μ€μΈ μ΄λ¦)
- node-school -> node-school-kr
- README λ¬Έμ λ΄μ© μμ
- μλ¬ λ©μμ§ κ΅¬λΆ λ¬Έμ μΆκ° (κΈμ νμ± μλ¬μΈμ§ νμ¬μΌμ νμ± μλ¬μΈμ§ ꡬλΆ)
- `1.0.0` - 첫 λ²μ§Έ 릴리μ¦!## λΌμ΄μΌμ€
[MIT](https://github.com/leegeunhyeok/school-kr/blob/master/LICENSE)
## μ 보
λ³Έ νλ‘μ νΈλ [School API](https://github.com/agemor/school-api)λ₯Ό μ°Έκ³ νμ¬ Node.js νκ²½μμ μ¬μ©ν μ μλλ‘ μλ‘ ν¬ν ν νλ‘μ νΈμ λλ€.
`3.0.0` λ²μ λΆν° μμ ν μλ‘κ² κ°λ°λμ΄ μ±λ₯ λ° μμ μ±μ΄ ν¬κ² κ°μ λμμ΅λλ€.