/school-kr

🍚🍴 μ „κ΅­ ꡐ윑청 급식, 학사일정 νŒŒμ‹± 라이브러리

Primary LanguageJavaScriptMIT LicenseMIT

school-kr

μ „κ΅­ 초, λ“±, 고등학ꡐ 및 λ³‘μ„€μœ μΉ˜μ› 급식, 학사일정 νŒŒμ‹± 라이브러리

npm version downloads license circleci

λ³Έ λΌμ΄λΈŒλŸ¬λ¦¬λŠ” Node.js ν™˜κ²½μ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” Promise 기반의 급식 API + 학사일정 API 톡합 라이브러리 μž…λ‹ˆλ‹€.

μ „κ΅­ ꡐ윑청 학생 μ„œλΉ„μŠ€ νŽ˜μ΄μ§€(stu.xxx.go.kr)λ₯Ό νŒŒμ‹±ν•˜μ—¬ 이번 달 학사일정과 급식 정보λ₯Ό JSON λ°μ΄ν„°λ‘œ μ œκ³΅ν•©λ‹ˆλ‹€.

3.0.0 버전뢀터 νŒŒμ‹± 방식이 μ•„λ‹Œ API ν˜ΈμΆœμ„ 톡해 데이터λ₯Ό μˆ˜μ§‘ν•˜μ—¬ μ œκ³΅ν•©λ‹ˆλ‹€.

μ„€μΉ˜ν•˜κΈ°

NPM μ €μž₯μ†Œλ₯Ό 톡해 λ‹€μš΄λ‘œλ“œ 받을 수 있으며 별닀λ₯Έ μž‘μ—… 없이 λ°”λ‘œ μ‚¬μš© κ°€λŠ₯ν•©λ‹ˆλ‹€.

npm i school-kr

ν…ŒμŠ€νŠΈ

μ•„λž˜ λͺ…λ Ήμ–΄λ₯Ό μž…λ ₯ν•˜μ—¬ 미리 μž‘μ„±λœ 예제 μ½”λ“œλ₯Ό μ‹€ν–‰ν•΄λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.
sample/sample.js μ½”λ“œκ°€ μ‹€ν–‰λ˜λ©°, ν•™κ΅λŠ” κ΄‘λͺ…κ²½μ˜νšŒκ³„κ³ λ“±ν•™κ΅ κΈ°μ€€μœΌλ‘œ μ‹€ν–‰λ©λ‹ˆλ‹€.

npm test

v2 버전과 v3 λ²„μ „μ˜ μ„±λŠ₯ 비ꡐ


v3λŠ” v2 λŒ€λΉ„ μ•½ 25%의 μ„±λŠ₯이 ν–₯상됨 (λ„€νŠΈμ›Œν¬ μƒνƒœμ— 따라 일뢀 변동될 수 있음)

ν…ŒμŠ€νŠΈ μ½”λ“œλŠ” test/test_v2.js, test/test_v3.js μ°Έκ³ 

개발 λ¬Έμ„œ

School

λͺ¨λ“ˆμ„ 뢈러였면 School 클래슀의 μΈμŠ€ν„΄μŠ€λ₯Ό 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.

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<Array<any>>, μ°Έκ³ 

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

const school = new School()
school.init(type, region, schoolCode)

μ˜ˆμ œλŠ” μΈμŠ€ν„΄μŠ€ μ΄ˆκΈ°ν™” μ°Έμ‘°


(Method) School.getMeal

이번 달 λ˜λŠ” μ§€μ •ν•œ 년도/μ›”μ˜ 급식 데이터λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€
년도 λ˜λŠ” 월을 μ§€μ •ν•˜μ§€ μ•Šμ„ 경우 ν˜„μž¬ μ‹œμ μ˜ λ‚ μ§œ κΈ°μ€€μ˜ 데이터λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

Parameter Type Required
year any X
month number X

Return type: Promise<any>, μ°Έκ³ 

school.getMeal(year, month)

μ˜ˆμ œλŠ” 급식 및 학사일정 쑰회 μ°Έμ‘°


(Method) School.getCalendar

이번 달 λ˜λŠ” μ§€μ •ν•œ 년도/μ›”μ˜ 학사일정 데이터λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€
년도 λ˜λŠ” 월을 μ§€μ •ν•˜μ§€ μ•Šμ„ 경우 ν˜„μž¬ μ‹œμ μ˜ λ‚ μ§œ κΈ°μ€€μ˜ 데이터λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

Parameter Type Required
year any X
month number X

Return type: Promise<any>, μ°Έκ³ 

school.getCalendar(year, month)

μ˜ˆμ œλŠ” 급식 및 학사일정 쑰회 μ°Έμ‘°


μ‚¬μš© 방법

School μΈμŠ€ν„΄μŠ€ 생성

school-kr λͺ¨λ“ˆμ„ 뢈러온 ν›„ μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
생성 ν›„ λ°˜λ“œμ‹œ init()λ₯Ό ν˜ΈμΆœν•˜μ—¬ 데이터λ₯Ό μ‘°νšŒν•  ν•™κ΅λ‘œ μ΄ˆκΈ°ν™”ν•©λ‹ˆλ‹€.

  • init() 호좜 없이 데이터λ₯Ό 뢈러올 경우 Errorκ°€ Throw λ©λ‹ˆλ‹€.
const School = require('school-kr')
const school = new School()

/* 
* @param type: 학ꡐ μœ ν˜•(초, 쀑, κ³ , λ³‘μ„€μœ μΉ˜μ›) 
* @param region: ꡐ윑청 κ΄€ν•  지역
* @param schoolCode: 학ꡐ 고유 μ½”λ“œ
*/
school.init(/* Type */, /* Region */, /* SchoolCode */)

학ꡐ μ’…λ₯˜

학ꡐ μ’…λ₯˜λŠ” School.Type μ—μ„œ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.

const School = require('school-kr')

/* 4 */
console.log(School.Type.HIGH)
μœ ν˜• Key Value
λ³‘μ„€μœ μΉ˜μ› KINDERGARTEN 1
μ΄ˆλ“±ν•™κ΅ ELEMENTARY 2
쀑학ꡐ MIDDLE 3
고등학ꡐ HIGH 4

ꡐ윑청 κ΄€ν•  지역

지역은 μƒμ„±ν•œ School.Region μ—μ„œ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.

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()λ₯Ό 톡해 학ꡐ μ½”λ“œλ₯Ό 검색할 수 μžˆμŠ΅λ‹ˆλ‹€.
μžμ„Έν•œ μ‚¬μš©λ²•μ€ 학ꡐ 검색 μ°Έμ‘°

μ‚¬μš© μ˜ˆμ‹œ

β€» μ•„λž˜ μ˜ˆμ œλŠ” κ²½κΈ°λ„μ˜ κ΄‘λͺ…κ²½μ˜νšŒκ³„κ³ λ“±ν•™κ΅λ₯Ό κΈ°μ€€μœΌλ‘œ μ§„ν–‰λ©λ‹ˆλ‹€.

학ꡐ 검색

const School = require('school-kr') 
const school = new School()

school.search(School.Region.GYEONGGI, 'κ΄‘λͺ…κ²½μ˜νšŒκ³„κ³ ')

μΈμŠ€ν„΄μŠ€ μ΄ˆκΈ°ν™”

const School = require('school-kr') 
const school = new School()

school.init(School.Type.HIGH, School.Region.GYEONGGI, 'J100000488')

급식 및 학사일정 쑰회

μ‚¬μš© μ˜ˆμ‹œ

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 학ꡐ μ†Œμž¬μ§€
// κ²½κΈ°, μ†Œν•˜ ν‚€μ›Œλ“œ 검색 κ²°κ³Ό
[
  {
    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 였늘 급식 급식이 μ—†λŠ” 경우 κΈ°λ³Έ 급식 κ°’
{
  '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 였늘 급식 일정이 μ—†λŠ” 경우 κΈ°λ³Έ 일정 κ°’
{
  '1': '', // 이번 달 1일의 일정
  '2': '', // 일정이 없을 경우 option.default κ°’ ν˜Ήμ€ 빈 λ¬Έμžμ—΄
  '3': '',
  '4': 'κ°œκ΅κΈ°λ…μΌ', // 4일 일정
  '5': '',
  '6': '',
  '7': 'λŒ€μ²΄κ³΅νœ΄μΌ',
  ...
  'year': 2018,
  'month': 5 // 이번 달
  'day': 4,  // 였늘 λ‚ μ§œ 
  'today': 'κ°œκ΅κΈ°λ…μΌ' // 였늘의 일정
}

문제 μ‹ κ³ 

v3 미만의 버전을 μ‚¬μš©ν•˜μ‹œλŠ” 경우 ꡐ윑청 ν™ˆνŽ˜μ΄μ§€μ˜ 리뉴얼 λ“±μ˜ 문제둜 νŒŒμ‹±μ΄ λΆˆκ°€λŠ₯ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. v3 이상 μ‚¬μš©μ„ ꢌμž₯ν•˜λ©°, λ¬Έμ œκ°€ λ°œμƒν•  경우 이슈λ₯Ό λ‚¨κ²¨μ£Όμ‹œλ©΄ μ΅œλŒ€ν•œ λΉ λ₯΄κ²Œ μˆ˜μ •ν•˜μ—¬ λ°˜μ˜ν•˜λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

변경사항

  • 3.1.1
    • Issue #19 μ„œλ‘œ λ‹€λ₯Έ μ§€μ—­μ˜ 학ꡐ 데이터λ₯Ό 뢈러올 경우 λ°œμƒν•˜λ˜ 문제 μˆ˜μ • (검색, 급식, 곡지 λͺ¨λ‘ 해당함)
    • 개발 μ˜μ‘΄μ„± λͺ¨λ“ˆ μ—…λ°μ΄νŠΈ
  • 3.1.0
    • Issue #9 μ„Έμ…˜ κ΄€λ ¨ 둜직 κ°œμ„  (확인 ν•„μš”)
    • Issue #16 νƒ€μž…μŠ€ν¬λ¦½νŠΈ 지원(d.ts μΆ”κ°€) - Thanks to cjaewon
    • ESLint ꡬ성 μΆ”κ°€ 및 μ½”λ“œ μŠ€νƒ€μΌ μˆ˜μ •
  • 3.0.3
    • Issue #15 λͺ¨λ“ˆμ„ 뢈러올 수 μ—†λ˜ 문제 μˆ˜μ •
  • 3.0.2
    • Issue #11, Issue #14 1λ…„ 이전 데이터가 νŒŒμ‹±λ˜λ˜ 문제 μˆ˜μ •
  • 3.0.1
    • Issue #10 ꡐ윑청 지역별 μ„Έμ…˜ μœ μ§€ν•˜λ„λ‘ μˆ˜μ •
  • 3.0.0
    • node-school-kr -> school-kr둜 λͺ¨λ“ˆλͺ… λ³€κ²½
    • HTTP μš”μ²­ μ½”λ“œλ₯Ό 기쑴의 requestμ—μ„œ λͺ¨λ‘ axios둜 λ³€κ²½
    • νŽ˜μ΄μ§€ HTML νŒŒμ‹± λ°©μ‹μ—μ„œ API 데이터 μš”μ²­ λ°©μ‹μœΌλ‘œ 변경함에 따라 데이터 μˆ˜μ§‘ μ„±λŠ₯ κ°œμ„  - μ•½ 25%
    • Issue #2 학ꡐ 정보(μ½”λ“œ) 쑰회λ₯Ό μœ„ν•œ search λ©”μ†Œλ“œ μΆ”κ°€ - μ°Έκ³ 
    • Issue #6 1~2μ›” 데이터λ₯Ό μ‘°νšŒν•  경우 잘λͺ»λœ 데이터가 λ‚˜μ˜€λ˜ 문제 μˆ˜μ • - μ°Έκ³ 
    • 3.0.0 λΆ€ν„° μ‚¬μš©ν•˜μ§€ μ•ŠμŒ (Deprecated)
      • School.reset
      • School.getTargetURL
    • 3.0.0에 λ§žλ„λ‘ λ¬Έμ„œ μˆ˜μ •, Issue #7 λ§ˆν¬λ‹€μš΄ ν˜•μ‹ μˆ˜μ •
  • 2.2.2
    • Issue #5 λŒ€μ „ ꡐ윑청 URL 문제 μˆ˜μ •
  • 2.2.1
    • Issue #4 학사일정 κΈ°λ³Έκ°’ 였λ₯˜ μˆ˜μ •
  • 2.2.0
    • Issue #3 κΈ°λ³Έκ°’ μ˜΅μ…˜ μΆ”κ°€
    • getMeal, getCalendar μ˜΅μ…˜ ν˜ΈμΆœλ°©μ‹ μΆ”κ°€
  • 2.1.2
    • Issue #1 경뢁 ꡐ윑청 μ ‘μ†λ¬Έμ œ μˆ˜μ •
    • 의쑴 라이브러리의 λ³΄μ•ˆ μ·¨μ•½μ„± μ—…λ°μ΄νŠΈ
  • 2.1.1
    • 의쑴 라이브러리의 λ³΄μ•ˆ μ·¨μ•½μ„± μ—…λ°μ΄νŠΈ
  • 2.1.0
    • 급식 / 학사일정 데이터λ₯Ό 뢈러올 λ•Œ 년도와 월을 지정할 수 μžˆλ„λ‘ κΈ°λŠ₯ μΆ”κ°€
    • 급식 / 학사일정 데이터에 년도 μΆ”κ°€
    • README에 개발 λ¬Έμ„œ μΆ”κ°€ μž‘μ„±
  • 2.0.1
    • 의쑴 라이브러리의 λ³΄μ•ˆ μ·¨μ•½μ„± μ—…λ°μ΄νŠΈ
  • 2.0.0
    • β€» κΈ°μ‘΄ 버전과 ν˜Έν™˜λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. (μ•„λž˜ 변경사항을 확인 ν•΄μ£Όμ„Έμš”)
    • Type, Region ν”„λ‘œνΌν‹° 값을 Symbol 기반으둜 κ΅¬ν˜„
    • μ—λŸ¬ λ°œμƒ 상황 μΆ”κ°€ 및 κΈ°μ‘΄ μ—λŸ¬ λ©”μ‹œμ§€ μˆ˜μ •
    • getNotice λ©”μ†Œλ“œλͺ… λ³€κ²½ -> getCalendar
    • getTargetURL λ©”μ†Œλ“œ μΆ”κ°€ (νŒŒμ‹±ν•  νƒ€κ²Ÿ URL을 λ°˜ν™˜ν•©λ‹ˆλ‹€, μ°Έκ³ )
    • 예제 및 README λ‚΄μš© μˆ˜μ •μ‚¬ν•­μ— 맞게 μ—…λ°μ΄νŠΈ / λ‚΄μš© μΆ”κ°€
    • μ½”λ“œ 주석 μ—…λ°μ΄νŠΈ
  • 1.0.1
    • NPM μ €μž₯μ†Œμ™€ 이름 λ™μΌν•˜κ²Œ Git μ €μž₯μ†Œ 이름 λ³€κ²½ (이미 μ‚¬μš©μ€‘μΈ 이름)
      • node-school -> node-school-kr
    • README λ¬Έμ„œ λ‚΄μš© μˆ˜μ •
    • μ—λŸ¬ λ©”μ‹œμ§€ ꡬ뢄 문자 μΆ”κ°€ (급식 νŒŒμ‹± μ—λŸ¬μΈμ§€ 학사일정 νŒŒμ‹± μ—λŸ¬μΈμ§€ ꡬ뢄)
  • 1.0.0 - 첫 번째 릴리즈!

λΌμ΄μ„ΌμŠ€

MIT

정보

λ³Έ ν”„λ‘œμ νŠΈλŠ” School APIλ₯Ό μ°Έκ³ ν•˜μ—¬ Node.js ν™˜κ²½μ—μ„œ μ‚¬μš©ν•  수 μžˆλ„λ‘ μƒˆλ‘œ ν¬νŒ…ν•œ ν”„λ‘œμ νŠΈμž…λ‹ˆλ‹€.
3.0.0 버전뢀터 μ™„μ „νžˆ μƒˆλ‘­κ²Œ κ°œλ°œλ˜μ–΄ μ„±λŠ₯ 및 μ•ˆμ •μ„±μ΄ 크게 κ°œμ„ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.