π μ μ£Όλνκ΅ κ°μ μκ°ν λ°μ΄ν°λ₯Ό λ§€μΌ κ°±μ νμ¬ κΈ°κΈ°μ κΈ°λ³Έ μΊλ¦°λ ν΄λΌμ΄μΈνΈ(Google, Apple Calendar λ±)μμ ꡬλ ν μ μλ icalendar μλ²λ₯Ό ꡬμΆνλ μΉ μ€ν λ©μ΄μ νλ‘μ νΈμ λλ€.
컨λ²ν° λͺ μΈ μ»€λ²λ¦¬μ§ | AWS S3 μ λ‘λ μν |
---|---|
μ§λ νκΈ°(2024λ 1νκΈ°), κ°μ μΌμ μ μ¦μ λ³λ(곡ν΄μΌ λ체 μμ , κ΅μλμ κ°μΈ μ¬μ μΌλ‘ μΈν ν΄κ° λ±)μ μ μ£Όλνκ΅ ν¬νΈ μΉ μλΉμ€λ₯Ό ν΅ν΄ νμΈνλ κ³Όμ μμ μλμ κ°μ λΆνΈμ λ°λ³΅μ μΌλ‘ κ²ͺμμ΅λλ€:
-
ν¬νΈ μλΉμ€μ λ‘λ© κ²½νκ³Ό μλ΅μ±μ΄ μλΉν λΆμ‘±ν©λλ€.
- μΉ μλΉμ€ λ‘κ·ΈμΈ μ§μ°: λ‘κ·ΈμΈ κ³Όμ μμ νμκ° μλ λΆκ°μ μΈ λ΄λΆ λ‘μ§μΌλ‘ μΈν΄ μ½ 3μ΄κ°λ λΆνμν μ§μ°μ΄ λ°μνκ³ μμ΅λλ€. μ΄μ μμ ν΄κ²°μ±
μΌλ‘ SSO μμ²λ§ λ°λ‘ μννλ μ μ μ€ν¬λ¦½νΈλ₯Ό μ§μ μμ±ν΄μ κ°μΈμ μΌλ‘ μ΄μ©νκ³ μμ΅λλ€.
- νμ ν μ ν λΉκ³΅κ° 릴λ μ΄ νμ±νμ 무κ΄ν κΈ°μ μ λ¬Έμ μ λλ€.
- λΆμμ ν μ± μλΉμ€: μ± μ€ν ν μ μ λ€λ₯Έ μμ μ νκ±°λ λͺ λΆ νμ λ€μ μ±μΌλ‘ 볡κ·νλ©΄ ν° νλ©΄λ§ νμλ©λλ€. μ΄ κ²½μ° μ±μ κ°μ μ’ λ£νκ³ μ¬μ€νν΄μΌ μ¬μ©μ΄ κ°λ₯ν©λλ€. μ¬ν μμ 첨λΆ
- μΉ μλΉμ€ λ‘κ·ΈμΈ μ§μ°: λ‘κ·ΈμΈ κ³Όμ μμ νμκ° μλ λΆκ°μ μΈ λ΄λΆ λ‘μ§μΌλ‘ μΈν΄ μ½ 3μ΄κ°λ λΆνμν μ§μ°μ΄ λ°μνκ³ μμ΅λλ€. μ΄μ μμ ν΄κ²°μ±
μΌλ‘ SSO μμ²λ§ λ°λ‘ μννλ μ μ μ€ν¬λ¦½νΈλ₯Ό μ§μ μμ±ν΄μ κ°μΈμ μΌλ‘ μ΄μ©νκ³ μμ΅λλ€.
-
iOS νκ²½μ μ μ½: iOSμμ λΉκ³΅κ° 릴λ μ΄λ₯Ό νμ±νν κ²½μ°, ν¬νΈ μΉ λ° μ± μλΉμ€μ μμ² μ§μ°μ΄ μ¬μ©μ΄ λΆκ°λ₯ν μ λλ‘ κΈΈμ΄μ Έ λ°μ€ν¬ν νκ²½μ μ£Όλ‘ μ΄μ©ν΄μΌ νμ΅λλ€.
-
iOS Safari νΈνμ± λ¬Έμ : iPhoneμμ ν¬νΈ λ‘κ·ΈμΈ νμ΄μ§ λ‘λκ° λμ§ μλ λ¬Έμ κ° μμ£Ό λ°μν΄, iOSμ© Firefoxμ κ°μ μλνν° λΈλΌμ°μ λ₯Ό λμ μ¬μ©ν΄μΌ νμ΅λλ€.
μ΄μ κ°μ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ κ°μ μκ°ν λ°μ΄ν°λ₯Ό λ§€μΌ κ°±μ νμ¬ icalendar νμ€ νμμ .ics
νμΌλ‘ λ³ννμ¬, μ΄λ₯Ό μΈλΆ μΊλ¦°λ ν΄λΌμ΄μΈνΈ(Google Calendar, Apple Calendar λ±)μμ ꡬλ
ν μ μλλ‘ μ§μνλ HTTP GET μλ² νμ΄νλΌμΈμ ꡬμΆνμ΅λλ€.
μ΄μ λ³΄λ€ μκ°ν λ³λ μ¬νμ κΈ°κΈ°μμ λ°λ‘ νμΈνλ νΈλ¦¬ν κ²½νμ λλ¦¬κ³ μλ μ€μ λλ€.
ν΄κ°, 보κ°, μ°κ° λ± λ€μν κ²½μ°λ₯Ό ν¬ν¨ν μ μ£Όλνκ΅ ν¬νΈμ κ°μ μκ°ν λ°μ΄ν° μ€ν€λ§λ₯Ό λΆλ₯νκ³ , μ΄λ₯Ό μμ κ³Όμ μμ λ³΄λ€ μ½κ² μλ³ν μ μλλ‘ μ¬κ΅¬μ±ν κ°μ νμμ μ€λΉνμ΅λλ€. κ° κ²½μ°μ μ ν©ν μ λ ₯ λ°μ΄ν°λ₯Ό μ€λΉνκ³ , ν΄λΉ λ°μ΄ν°μ κΈ°λ μΆλ ₯λ ν¨κ» μ μνμ¬ ν μ€νΈμ νμ©νμ΅λλ€.
μ¬κ΅¬μ±ν κ°μ νμμ κΈ°λ°μΌλ‘ λ¨μ ν μ€νΈλ₯Ό μ°μ μμ±ν ν, icalendar νμμΌλ‘ λ³ννλ μ νΈλ¦¬ν°λ₯Ό ꡬννμμΌλ©° ν΅ν© ν μ€νΈλ₯Ό ν΅ν΄ λ³ν κ³Όμ μ μ νμ±μ κ²μ¦νμ΅λλ€.
- λ¨μ ν
μ€νΈ μΌμ΄μ€ μ€λΉ μμ
- κ°μ μκ°νμ λ€μν μν©(ν΄κ°, λ³΄κ° λ±)μ λ°μν λ¨μ ν μ€νΈ μΌμ΄μ€ μΈνΈμ μμ±νμ΅λλ€.
- λ¨μ ν
μ€νΈ λͺ
μΈ μμ±
- μ€λΉν ν
μ€νΈ μΌμ΄μ€ μ
λ ₯μ κΈ°λ°μΌλ‘ ν
μ€νΈ λͺ
μΈλ₯Ό μμ±νκ³ , μ νΈλ¦¬ν° ꡬνμ
src/iCalConverter.ts
μμ μ§ννμ΅λλ€.- #L3-L21: ν¬νΈ κ°μ μκ°ν λ°μ΄ν°μμ μΌλ° κ°μ, ν΄κ°, 보κ°, μ°κ°μ ꡬλΆνλ μ νΈλ¦¬ν°
- #L40-L59: ν¬νΈ κ°μ μκ°ν λ°μ΄ν°λ₯Ό μ¬κ΅¬μ±ν κ°μ νμμΌλ‘ λ³ννλ μ νΈλ¦¬ν°
- #L61-L82: μ°κ° μκ°νλ₯Ό νλλ‘ λ³ν©νλ μ νΈλ¦¬ν°
- #L84-L95: μ¬κ΅¬μ±ν λ°μ΄ν°λ₯Ό icalendar μ΄λ²€νΈ νμμΌλ‘ λ³ννλ μ νΈλ¦¬ν°
- μ€λΉν ν
μ€νΈ μΌμ΄μ€ μ
λ ₯μ κΈ°λ°μΌλ‘ ν
μ€νΈ λͺ
μΈλ₯Ό μμ±νκ³ , μ νΈλ¦¬ν° ꡬνμ
- ν΅ν© ν
μ€νΈ μ μ© λ€ν λ°μ΄ν° λ° κΈ°λ μΆλ ₯ νμΌ μ€λΉ
- κ°μ μκ°ν μν λ€ν λ°μ΄ν°μ κΈ°λ μΆλ ₯
.ics
νμΌμ μ€λΉνκ³ , ν΅ν© ν μ€νΈλ₯Ό ν΅ν΄ μ 체 λ³ν κ³Όμ μ κ²μ¦νμ΅λλ€.
- κ°μ μκ°ν μν λ€ν λ°μ΄ν°μ κΈ°λ μΆλ ₯
- GET https://portal.jejunu.ac.kr/api/patis/timeTable.jsp
- query params: -
sttLsnYmd
,endLsnYmd
κ° ννλYYYYMMDD
μ) https://portal.jejunu.ac.kr/api/patis/timeTable.jsp?sttLsnYmd=20240902&endLsnYmd=20241221
μ HTTP GET μμ² μ μ μ£Όλνκ΅ ν¬νΈ λ‘κ·ΈμΈμ κ±°μ³μΌ ν©λλ€.
κ°μ μκ°ν μν λ€ν λ°μ΄ν°λ₯Ό μ°Έκ³ λ°λλλ€.