Skip to content

πŸ“… μ œμ£ΌλŒ€ν•™κ΅ κ°•μ˜ μ‹œκ°„ν‘œλ₯Ό μ™ΈλΆ€ μΊ˜λ¦°λ”μ—μ„œ ꡬ독 κ°€λŠ₯ν•œ ical μ„œλ²„λ‘œ μ œκ³΅ν•˜λŠ” μ›Œν¬ν”Œλ‘œμš°μž…λ‹ˆλ‹€.

License

Notifications You must be signed in to change notification settings

mu-hun/jejunu-icalendar-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

24 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“… μ œμ£ΌλŒ€ν•™κ΅ κ°•μ˜ μ‹œκ°„ν‘œ 데이터λ₯Ό 맀일 κ°±μ‹ ν•˜μ—¬ 기기의 κΈ°λ³Έ μΊ˜λ¦°λ” ν΄λΌμ΄μ–ΈνŠΈ(Google, Apple Calendar λ“±)μ—μ„œ ꡬ독할 수 μžˆλŠ” icalendar μ„œλ²„λ₯Ό κ΅¬μΆ•ν•˜λŠ” μ›Ή μ˜€ν† λ©”μ΄μ…˜ ν”„λ‘œμ νŠΈμž…λ‹ˆλ‹€.

컨버터 λͺ…μ„Έ 컀버리지 AWS S3 μ—…λ‘œλ“œ μƒνƒœ
Test Β· Workflow runs cron Β· Workflow runs

μž‘μ—… 동기

μ§€λ‚œ ν•™κΈ°(2024λ…„ 1ν•™κΈ°), κ°•μ˜ μΌμ •μ˜ μž¦μ€ 변동(곡휴일 λŒ€μ²΄ μˆ˜μ—…, κ΅μˆ˜λ‹˜μ˜ 개인 μ‚¬μ •μœΌλ‘œ μΈν•œ νœ΄κ°• λ“±)을 μ œμ£ΌλŒ€ν•™κ΅ 포털 μ›Ή μ„œλΉ„μŠ€λ₯Ό 톡해 ν™•μΈν•˜λŠ” κ³Όμ •μ—μ„œ μ•„λž˜μ™€ 같은 λΆˆνŽΈμ„ 반볡적으둜 κ²ͺμ—ˆμŠ΅λ‹ˆλ‹€:

  1. 포털 μ„œλΉ„μŠ€μ˜ λ‘œλ”© κ²½ν—˜κ³Ό 응닡성이 μƒλ‹Ήνžˆ λΆ€μ‘±ν•©λ‹ˆλ‹€.

    • μ›Ή μ„œλΉ„μŠ€ 둜그인 지연: 둜그인 κ³Όμ •μ—μ„œ ν•„μˆ˜κ°€ μ•„λ‹Œ 뢀가적인 λ‚΄λΆ€ 둜직으둜 인해 μ•½ 3μ΄ˆκ°€λŸ‰ λΆˆν•„μš”ν•œ 지연이 λ°œμƒν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 이에 μž„μ‹œ ν•΄κ²°μ±…μœΌλ‘œ SSO μš”μ²­λ§Œ λ°”λ‘œ μˆ˜ν–‰ν•˜λŠ” μœ μ €μŠ€ν¬λ¦½νŠΈλ₯Ό 직접 μž‘μ„±ν•΄μ„œ 개인적으둜 μ΄μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.
      • ν›„μˆ ν•  μ• ν”Œ λΉ„κ³΅κ°œ 릴레이 ν™œμ„±ν™”μ™€ λ¬΄κ΄€ν•œ 기술적 λ¬Έμ œμž…λ‹ˆλ‹€.
    • λΆˆμ•ˆμ •ν•œ μ•± μ„œλΉ„μŠ€: μ•± μ‹€ν–‰ ν›„ μž μ‹œ λ‹€λ₯Έ μž‘μ—…μ„ ν•˜κ±°λ‚˜ λͺ‡ λΆ„ 후에 λ‹€μ‹œ μ•±μœΌλ‘œ λ³΅κ·€ν•˜λ©΄ 흰 ν™”λ©΄λ§Œ ν‘œμ‹œλ©λ‹ˆλ‹€. 이 경우 앱을 κ°•μ œ μ’…λ£Œν•˜κ³  μž¬μ‹€ν–‰ν•΄μ•Ό μ‚¬μš©μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€. μž¬ν˜„ μ˜μƒ 첨뢀
  2. iOS ν™˜κ²½μ˜ μ œμ•½: iOSμ—μ„œ λΉ„κ³΅κ°œ 릴레이λ₯Ό ν™œμ„±ν™”ν•  경우, 포털 μ›Ή 및 μ•± μ„œλΉ„μŠ€μ˜ μš”μ²­ 지연이 μ‚¬μš©μ΄ λΆˆκ°€λŠ₯ν•  μ •λ„λ‘œ κΈΈμ–΄μ Έ λ°μŠ€ν¬νƒ‘ ν™˜κ²½μ„ 주둜 μ΄μš©ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€.

  3. iOS Safari ν˜Έν™˜μ„± 문제: iPhoneμ—μ„œ 포털 둜그인 νŽ˜μ΄μ§€ λ‘œλ“œκ°€ λ˜μ§€ μ•ŠλŠ” λ¬Έμ œκ°€ 자주 λ°œμƒν•΄, iOS용 Firefox와 같은 μ„œλ“œνŒŒν‹° λΈŒλΌμš°μ €λ₯Ό λŒ€μ‹  μ‚¬μš©ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€.

    λ„€νŠΈμ›Œν¬ μ„œλ²„μ— μ—°κ²°ν•  수 μ—†κΈ° λ•Œλ¬Έμ— Safariκ°€ ν•΄λ‹Ή νŽ˜μ΄μ§€λ₯Ό μ—΄ 수 μ—†μŠ΅λ‹ˆλ‹€.

이와 같은 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ κ°•μ˜ μ‹œκ°„ν‘œ 데이터λ₯Ό 맀일 κ°±μ‹ ν•˜μ—¬ icalendar ν‘œμ€€ ν˜•μ‹μ˜ .ics 파일둜 λ³€ν™˜ν•˜μ—¬, 이λ₯Ό μ™ΈλΆ€ μΊ˜λ¦°λ” ν΄λΌμ΄μ–ΈνŠΈ(Google Calendar, Apple Calendar λ“±)μ—μ„œ ꡬ독할 수 μžˆλ„λ‘ μ§€μ›ν•˜λŠ” HTTP GET μ„œλ²„ νŒŒμ΄ν”„λΌμΈμ„ κ΅¬μΆ•ν–ˆμŠ΅λ‹ˆλ‹€.

showcases

이전보닀 μ‹œκ°„ν‘œ 변동 사항을 κΈ°κΈ°μ—μ„œ λ°”λ‘œ ν™•μΈν•˜λŠ” νŽΈλ¦¬ν•œ κ²½ν—˜μ„ λˆ„λ¦¬κ³  μžˆλŠ” μ€‘μž…λ‹ˆλ‹€.

ν…ŒμŠ€νŠΈ 주도 κ΅¬ν˜„

νœ΄κ°•, 보강, μ—°κ°• λ“± λ‹€μ–‘ν•œ 경우λ₯Ό ν¬ν•¨ν•œ μ œμ£ΌλŒ€ν•™κ΅ ν¬ν„Έμ˜ κ°•μ˜ μ‹œκ°„ν‘œ 데이터 μŠ€ν‚€λ§ˆλ₯Ό λΆ„λ₯˜ν•˜κ³ , 이λ₯Ό μž‘μ—… κ³Όμ •μ—μ„œ 보닀 μ‰½κ²Œ 식별할 수 μžˆλ„λ‘ μž¬κ΅¬μ„±ν•œ κ°•μ˜ ν˜•μ‹μ„ μ€€λΉ„ν–ˆμŠ΅λ‹ˆλ‹€. 각 κ²½μš°μ— μ ν•©ν•œ μž…λ ₯ 데이터λ₯Ό μ€€λΉ„ν•˜κ³ , ν•΄λ‹Ή λ°μ΄ν„°μ˜ κΈ°λŒ€ 좜λ ₯도 ν•¨κ»˜ μ •μ˜ν•˜μ—¬ ν…ŒμŠ€νŠΈμ— ν™œμš©ν–ˆμŠ΅λ‹ˆλ‹€.

μž¬κ΅¬μ„±ν•œ κ°•μ˜ ν˜•μ‹μ„ 기반으둜 λ‹¨μœ„ ν…ŒμŠ€νŠΈλ₯Ό μš°μ„  μž‘μ„±ν•œ ν›„, icalendar ν˜•μ‹μœΌλ‘œ λ³€ν™˜ν•˜λŠ” μœ ν‹Έλ¦¬ν‹°λ₯Ό κ΅¬ν˜„ν•˜μ˜€μœΌλ©° 톡합 ν…ŒμŠ€νŠΈλ₯Ό 톡해 λ³€ν™˜ κ³Όμ •μ˜ 정확성을 κ²€μ¦ν–ˆμŠ΅λ‹ˆλ‹€.

  1. λ‹¨μœ„ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ μ€€λΉ„ μž‘μ—…
  2. λ‹¨μœ„ ν…ŒμŠ€νŠΈ λͺ…μ„Έ μž‘μ„±
    • μ€€λΉ„ν•œ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ μž…λ ₯을 기반으둜 ν…ŒμŠ€νŠΈ λͺ…μ„Έλ₯Ό μž‘μ„±ν•˜κ³ , μœ ν‹Έλ¦¬ν‹° κ΅¬ν˜„μ€ src/iCalConverter.tsμ—μ„œ μ§„ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.
      • #L3-L21: 포털 κ°•μ˜ μ‹œκ°„ν‘œ λ°μ΄ν„°μ—μ„œ 일반 κ°•μ˜, νœ΄κ°•, 보강, 연강을 κ΅¬λΆ„ν•˜λŠ” μœ ν‹Έλ¦¬ν‹°
      • #L40-L59: 포털 κ°•μ˜ μ‹œκ°„ν‘œ 데이터λ₯Ό μž¬κ΅¬μ„±ν•œ κ°•μ˜ ν˜•μ‹μœΌλ‘œ λ³€ν™˜ν•˜λŠ” μœ ν‹Έλ¦¬ν‹°
      • #L61-L82: μ—°κ°• μ‹œκ°„ν‘œλ₯Ό ν•˜λ‚˜λ‘œ λ³‘ν•©ν•˜λŠ” μœ ν‹Έλ¦¬ν‹°
      • #L84-L95: μž¬κ΅¬μ„±ν•œ 데이터λ₯Ό icalendar 이벀트 ν˜•μ‹μœΌλ‘œ λ³€ν™˜ν•˜λŠ” μœ ν‹Έλ¦¬ν‹°
  3. 톡합 ν…ŒμŠ€νŠΈ μ „μš© 덀프 데이터 및 κΈ°λŒ€ 좜λ ₯ 파일 μ€€λΉ„

관리 μ‹œ μ°Έκ³  사항

μ œμ£ΌλŒ€ν•™κ΅ ν¬ν„Έμ—μ„œ μ‹œκ°„ν‘œ 데이터 λ°›κΈ°

예) https://portal.jejunu.ac.kr/api/patis/timeTable.jsp?sttLsnYmd=20240902&endLsnYmd=20241221

μœ„ HTTP GET μš”μ²­ μ „ μ œμ£ΌλŒ€ν•™κ΅ 포털 λ‘œκ·ΈμΈμ„ 거쳐야 ν•©λ‹ˆλ‹€.

응닡 μ˜ˆμ‹œ

κ°•μ˜ μ‹œκ°„ν‘œ μƒ˜ν”Œ 덀프 데이터λ₯Ό μ°Έκ³  λ°”λžλ‹ˆλ‹€.

About

πŸ“… μ œμ£ΌλŒ€ν•™κ΅ κ°•μ˜ μ‹œκ°„ν‘œλ₯Ό μ™ΈλΆ€ μΊ˜λ¦°λ”μ—μ„œ ꡬ독 κ°€λŠ₯ν•œ ical μ„œλ²„λ‘œ μ œκ³΅ν•˜λŠ” μ›Œν¬ν”Œλ‘œμš°μž…λ‹ˆλ‹€.

Topics

Resources

License

Stars

Watchers

Forks