π μ κΈμκ°
μ΄μμ§ λ° μΌμ μκ°
μ΄μμ§μ μ κΈμ λν μκ°κ³Ό κ΅μ‘ λ°©ν₯μ λν΄ μ€λͺ νμλ€.
SWμμ§λμ΄λ‘ μ±μ₯ν μ μλ κΈ°λ°λ€μ§κΈ°κ° SWμ¬κ΄νκ΅ μ κΈμ λ°©ν₯μ΄μλ€.
μ₯λ³κ·μμ₯λμ λ§μμ λ€μΌλ©° λ€μνλ² λ§μμ λ€μ‘κ² λμλ€.
βΆοΈ νλ‘μ νΈ κ°μ
νλ‘μ νΈ λͺ©ν : μ νμν λ λ°°μ΄ κΈ°μ λ€μ ν λλ‘ λ―Έλ νλ‘μ νΈ μμ±νκΈ°
νλ‘μ νΈ μΌμ : 11μ1μΌ 17:00 ~ 11μ 4μΌ 12:00
νλ‘μ νΈ μ£Όμ : μμ μ£Όμ
μμ΄λμ΄λ₯Ό μ°Έκ³ ν μ¬μ΄νΈ (https://spartacodingclub.kr/community/exhibition)
νμ 쑰건
π΄π½ββοΈ νλ‘μ νΈ μ§ν
μ£Όμ μ μ
λ§μ§ μ§λλ μ£Όμ μ 보 곡μ λ± λ€μν μκ²¬μ΄ λμλ€.
κ·Έ μ€μμ μ κΈ 3κΈ°μλ€μκ² κ°μ₯ μ μ©ν κ²μ νμ μ리미λΌλ μκ²¬μ΄ λμ νμμλ¦¬λ―Έλ‘ μ νμλ€.
λ¬Έμ§ μΊ νΌμ€ νμ λ©λ΄μ λ©λ΄ 리뷰 곡μ νλ 'νμ μ리미' νλ‘μ νΈλ‘ μ νμλ€.
μμ΄μ΄ νλ μ μμ± λ° νΌλλ°±
νλ‘μ νΈμ κ³¨κ²©μΈ 'μμ΄μ΄ νλ μ'μ μμ±νκ³ νΌλλ°±μ λ°μλ€.
μμ΄μ΄ νλ μ
νλ‘μ νΈ κ³¨κ²©κ³Ό μΈλΆ κΈ°λ₯λ€μ μ μ΄λ³΄μλ€.
νΌλλ°±
μ²μ νμλ€κ³Ό μ΄μΌκΈ° ν λλ κΈμΌ μμ¬ ν λ¨κΈ΄ λ¦¬λ·°λ§ λ³Ό μ μκ² νλ €κ³ νμλ€.
νμ§λ§, κΈμΌ λ©λ΄μ λμΌν λ©λ΄λ₯Ό μμ¬ ν λ¨κΈ΄ λκΈλ€λ μ‘°ννλκ² μ’κ² λ€λ νΌλλ°±μ λ°μ λͺ¨λ¬ μ°½μ κΈ°λ₯μ μμ νκΈ°λ‘ νμλ€.
νμ 쑰건 λ΄μ©νμ΅
JWT λ°©μμ μ΄μ©ν λ‘κ·ΈμΈ κΈ°λ₯ ꡬν
JWTλ Jason Web Tokenμ μ€μλ§λ‘ ν ν°μ κΈ°λ°μΌλ‘ν μΈμ¦ λ°©μμ΄λ€.
κΈ°μ‘΄ μΈμ λ°©μκ³Ό λ€λ₯΄κ² μ¬μ©μμ μνλ₯Ό ν ν°μ μ μ₯νμ¬ API ꡬν μ ν ν° μ 보λ₯Ό μλ²μ μ λ¬νλ€.
μλ²μμ ν ν°μ μ ν¨μ±μ κ²μ¦ν ν μ ν¨ μ APIλ₯Ό ꡬννλ€.
λ§μ½ ν ν°μ΄ λ§λ£λκ±°λ μ ν¨νμ§ μμ κ²½μ° λ‘κ·ΈμΈ νμ΄μ§λ‘ λκΈ΄λ€.
ν ν°μ λ³΄ν΅ μΏ ν€μ μ μ₯νλ©° CSURF λΌμ΄λΈλ¬λ¦¬λ₯Ό μ΄μ©ν΄ CSRF 곡격μ λλΉνλ€.
μ λ΄μ© λ° μ΄λ―Έμ§λ μλ λΈλ‘κ·Έλ₯Ό κΈ°λ°μΌλ‘ μμ±νμμ΅λλ€.
CSR(Client Side Rendering)κ³Ό SSR(Server Side Rendering)μ μ°¨μ΄μ
μ λ΄μ©μ μλ λ λΈλ‘κ·Έλ₯Ό κΈ°λ°μΌλ‘ μμ±νμμ΅λλ€.
κΈ°λ₯ ꡬν
νμκ°μ λ° λ‘κ·ΈμΈ
νμκ°μ
νμκ°μ μ κ°μ μ 보μ λΉλ° λ²νΈλ₯Ό μλ²μ μ λ¬νμ¬ DBμ μ μ₯νλ€.
μ΄λ λΉλ°λ²νΈλ 보μμ λ¬Έμ λ‘ hashlib λ°©μμΌλ‘ μνΈν νμ¬ μ μ₯νλ€.
λ‘κ·ΈμΈ
λ‘κ·ΈμΈ μ html inputκ°μ μλ²μ μ λ¬νλ€.
μ λ¬ λ°μ inputκ°μ DBμμ κ²μνμ¬ κ²°κ³Όκ°μ΄ μμΌλ©΄ ν ν°μ λ΄λ €μ£Όκ³ μμΌλ©΄ λ‘κ·ΈμΈ νμ΄μ§λ‘ 리λ‘λ νλ€.
μνΈνλ₯Ό μν΄ hashlib ν¨μλ₯Ό μ΄μ©νλ©° jwt μΈμ¦λ°©μμ μν΄ pyjwt ν¨μλ₯Ό μ¬μ©νμλ€.(jwt ν¨μλ₯Ό μ¬μ©νλ©΄ μλ¬κ° λ°μνμλ€.)
κΈμΌ μλ¨ λ¦¬μ€νΈ μΉ μ€ν¬λν
μλ²μμ κΈμΌ λ μ§λ₯Ό λ°μ μλ λΉ¨κ° λΆλΆμ μ½μ νμ¬ κΈμΌ μλ¨νμ΄μ§λ₯Ό μ‘°ν νμλ€.(νμ΄μ¬ datetime ν¨μ νμ©)
https://www.kaist.ac.kr/kr/html/campus/053001.html?dvs_cd=icc&stt_dt=2021-11-12
μλ¨μ urlμ #tab_item_1 > table > tbody > tr > td:nth-child(1)μ textλ₯Ό μ€ν¬λ© νμ¬ μλ²μμ split ν 리μ€νΈλ‘ μ μ₯νμλ€.(νμ΄μ¬μ BeautifulSoup4 ν¨μλ₯Ό μ΄μ©)

DBμμ κΈμΌ μλ¨κ³Ό λμΌν λ©λ΄λ₯Ό μ°Ύμμ ν΄λΌμ΄μΈνΈμκ² μμ±νλ 리뷰μ λ³μ μ νκ· μ μ λ¬νμλ€. μ΄λ μλ²μ¬μ΄λ λ λλ§μ μ΄μ©νμλ€.
νμμ νμ΄μ¬ μ΄μ€ for λ¬Έμ μ¬μ©νμΌλ©° λ©λ΄ 3κ°μ΄μ κ°μμ§ countνμλ€.
리뷰 μμ± λ° DBμμ data λ°ν
βΉοΈΒ νλ‘μ νΈ μλ£ λ° λλμ