2021. 8. 21. 08:00γFront-End μμ μ€/κΈ°ν μ°Έκ³ μλ£
μλ νμΈμ? μ£Όλνλ μ λλ€.
λ³Έ λ΄μ©μ μ£Όλνλμ΄ Web κ°λ° νλ‘μ νΈλ₯Ό νλ©΄μ λμ νλ κΈ°μ λ€μ λν λ΄μ©μ μ 리νλ κ³³ μ λλ€!
μ΄ κΈμ ν¨κ» νλ‘μ νΈ νλ Front End κΏλ무 Crewκ° μμ±ν κ²μ΄μμ.
μ£Όλνλμ Back End κ°λ°μ 맑μμλ΅λλ€!
λ‘κ·ΈμΈν νμλ§ μ§μ κ°λ₯ν νμ΄μ§, κ΄λ¦¬μλ§ μ§μ κ°λ₯ν νμ΄μ§ λ±μ ꡬλ³ν΄μΌ ν©λλ€.
μ ν¬ μ°λλ μ νμ λ±κΈμ μλμ κ°μ΅λλ€.
- GUEST → λΉνμ
- BLACK → λΈλ νμ
- USER → μΌλ° νμ
- ADMIN → κ΄λ¦¬μ
μμ λ±κΈμ νμ λ±κΈμ κΆνμ ν¬ν¨νκ³ μμ΅λλ€.
Reactμμ νΉμ μ»΄ν¬λνΈμ μ κ·ΌνκΈ° μ μΈμ¦μ 체ν¬ν΄μ μΈμ¦μ ν΅κ³Όνμ§ μμΌλ©΄ μμ λ λλ₯Ό μνκ² νκΈ° μν΄ HOCλ₯Ό ν΅ν΄ νΉμ μ»΄ν¬λνΈλ₯Ό κ°μΌ ν HOCμ λ¨κ³μμ λ°±λ¨μΌλ‘ axiosμ λ λ €μ ν΄λΉ μ μ κ° λ‘κ·ΈμΈλ μνμΈμ§, μ μ λ±κΈμ 무μμΈμ§ 체ν¬νκ³ νΉμ μ»΄ν¬λνΈλ‘ μ μνκ² λ§λ€κ±°λ κ°μ λ‘ λ€λ₯Έ κ³³μ 리λ€μ΄λ νΈ ν΄μ£Όμμ΅λλ€.
κ΅μ°¨ μ»΄ν¬λνΈ(HOC)λ?
- HOC(Higher-Order-Component)
- μ»΄ν¬λνΈλ₯Ό μΈμλ‘ λ°μ μλ‘μ΄ μ»΄ν¬λνΈλ₯Ό λ°ννλ ν¨μ
HOCμ μ¬μ©ν μ΄μ ?
μ»΄ν¬λνΈ λ΄μμ κΆν 체ν¬λ λ‘κ·ΈμΈ μνλ₯Ό 체ν¬νκΈ° 보λ€λ μΈμ¦ λ‘μ§μ HOCλ‘ λΆλ¦¬νλ©΄ μ»΄ν¬λνΈ μ¬μ¬μ©μ±λ λμΌ μ μκ³ , μ»΄ν¬λνΈμμ μν λΆλ¦¬λ μ½κ² ν μ μμ΅λλ€.
μλ λ°©μ
λΌμ°ν°μμ ν΄λΉ μ»΄ν¬λνΈμ μ μν μ μλ νμμ λ±κΈμ 맀κ°λ³μλ‘ μ€μ ν©λλ€.
μ»΄ν¬λνΈμ μ κ·Όν λ hoc -> auth λ‘μ§μ ν΅ν΄ 'api/auth' get λ©μλλ₯Ό νΈμΆνμ¬ μ€μ ν 맀κ°λ³μμ ν΄λΉ μ»΄ν¬λνΈμ μ κ·Όνλ νμμ νΌλ―Έμ μ λΉκ΅νμ¬ μ‘°κ±΄μ λΆν©νμ§ μλ€λ©΄ νΌλ―Έμ λλμ΄λ₯Ό μ§νν©λλ€.
μμ(App)
<Route path="/login" component={Auth(LogIn, 'GUEST')} />
// λ‘κ·ΈμΈ νμ΄μ§λ λΉνμμΈ GUESTλ§ μ κ·Ό κ°λ₯
<Route path="/mybookrecord" component={Auth(MyBookRecord, 'USER')} />
// λ
μκΈ°λ‘ νμ΄μ§λ λ‘κ·ΈμΈν μ¬μ©μ λͺ¨λ μ κ·Ό κ°λ₯
<Route path="/event/write" component={Auth(EventWrite,'ADMIN')} />
// μ΄λ²€νΈ μμ± νμ΄μ§λ κ΄λ¦¬μμΈ ADIMλ§ μ κ·Ό κ°λ₯
μ£Όλνλμ κΈμ΄ λ§μμ λμ ¨λμ? ꡬλ κ³Ό 곡κ°! κ·Έλ¦¬κ³ , λκΈμ μ£Όλνλμκ² λ§μ νμ΄ λ©λλ€.
'Front-End μμ μ€ > κΈ°ν μ°Έκ³ μλ£' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[FrontEnd] html Tag μ 리 (0) | 2022.03.14 |
---|---|
[CSS] background, background-size (0) | 2022.03.14 |
[CSS] Color μμ± (0) | 2022.03.13 |
[CSS] CSS μ 리 (0) | 2022.03.13 |
[λμ κΈ°μ !] CORS(κ΅μ°¨ μΆμ² μμ 곡μ ) μ€μ (0) | 2021.08.22 |