CodeSquad Day 75 : Team Project 2 - Day 5
CodeSquadπΉDay 75
1. λ°μΌλ¦¬ μ€ν¬λΌ (10:00~10:30AM)
μ€λμ λ΄κ° νμλ‘ λ΄λΉμμ¬μ λ Έμ μ μ€λμ μ€ν¬λΌμ κΈ°λ‘νλ€. κ·Έλ°λ° νλκ° μ€ν¬λΌμ΄ λλ λκΉμ§ μ€μ§ μμλ€! μκ³ λ³΄λ λ¦μ μ΄μλ€. νλ μμ΄ μ€, λκΈ°μ μ μ΄μ μ§ννλ€. 컨λμ μ κ°λ¨ν 곡μ ν ν, μ€λμ ν μΌκ³Ό 2μ λ°λΆν° 3μκΉμ§ μ 체 곡μ μκ°μ μ΄λ€ μμΌλ‘ 곡μ ν μ§λ₯Ό μ ν΄λ³΄μλ€. μ°λ¦¬ νμ΄ μ΄λ€ μμΌλ‘ νμ μ μ§ννλμ§μ νλ‘ νΈ, λ°±μλ κ°κ°μ μ§ν μν©μ κ°κ²°νκ² κ³΅μ νκΈ°λ‘ νλ€.
2. Team Project (10:30~12:30, 1:30~2:30PM)
μ€λ μ€μ κ³Ό μ€ν μκ°μ μ΄μ©ν΄μ μλμ κ°μ μΌλ€μ μ§ννλ€. μ€λμ PR λ§κ°μκ°λ 2μκΉμ§λ‘ λ§€μ° μλΉκ²¨μ‘κ³ λ°νλ μ€λΉν΄μΌ νκΈ°μ μ μ¬μκ°μ μ’ μ΄μ©ν΄μ μ§ννλ€. μ€κ°μ λ무 νΌκ³€ν΄μ 10λΆ λμ μͺ½μ μ μκ³ λ€μ μμνλ€.
1. PR νΌλλ°±μ λ°μνμ¬ μ»€λ°ν¨
2. λ°λ³΅λλ λ°μ΄ν° jsμ λ°°μ΄λ‘ λ³κ²½ν΄μ map νμ©νκΈ°
3. PR 보λ΄κ³ μ§λ¬Έ μ 리νκΈ°
4. νΌμ΄ μΈμ μμ λ°νν λ ν€μλ μ 리νκΈ°
3. μ 체 곡μ μκ° (2:30~3:00PM)
μμ λ©€λ²λ‘ μ 체 곡μ μκ°μ 30λΆ μ λλ‘ μ§§κ² κ°μ‘λ€. λ°±μλ 8λͺ , νλ‘ νΈμλ 8λͺ μΌλ‘ νμ μ΄ 4νμ΄μλ€. κ° μ‘°λ§λ€ μ§ν μν©, ν νλ‘μ νΈ μ§ν λ°©μμ 곡μ νκ³ , κ΅¬κΈ μνΈμ κ° μ‘°λ§λ€ νΌλλ°±μ λ¨κ²Όλ€.
λλ 2μ‘°μ 3μ‘°μ λ Έμ νμ©μ΄ μΈμκΉμλ€. μ°λ¦¬ μ‘°λ λ΄κ° λ§λ λ Έμ μ μ¬μ©νκ³ μκΈ΄ νμ§λ§ 3μ‘°μ²λΌ 곡μ μλ£κ°μ κ²λ νλ‘ κΉλνκ² μ 리νλ μμΌλ‘ νμ§λ μκ³ μμλλ° μ λ§ μ νμ©νκ³ μλ€λ μκ°μ΄ λ€μλ€.
κ·Έλμ μ°λ¦¬ ν λ Έμ λ μ’ κΉλν μ λ¦¬κ° νμν κ² κ°μμ μμ ν λ² λ΄ μ£Όμλ€!
μ’λ μ 리λ₯Ό μ νλ€λ©΄ μμΌλ‘μ ννμμ λ§μΉ ν νλ¦Ώμ²λΌ νμ©ν μ μμ§ μμκΉ μΆλ€.
4. ν μ£Όκ° νκ³ (3:00~3:30PM)
3μλΆν° 3μ 30λΆκΉμ§λ κ²λνμ΄μ λͺ¨μ¬μ ν μ£Όλ₯Ό λλμ보λ νκ³ λ₯Ό μ§νν΄ λ³΄μλ€. μ ν μ , μμ¬μ΄ μ , νμ μΉμ°¬νκΈ° μ λλ‘ μ£Όμ λ₯Ό μ ν΄μ λ§ν΄λ³΄μλ€.
λ΄κ° μ μ νκ³ λ λ€μκ³Ό κ°λ€. μ λ€λ³΄λ κ½€λ ν λ§μ΄ λ§μμ Έμ κΈΈκ² μ κ² λμλ€.
μ΄λ² μ£Ό μΌμ£ΌμΌ μ€ 3μΌ(ν, μ, λͺ©)μ νλμ λ§λμ λΆμ
μ΄ μλ νμ΄ νλ‘κ·Έλλ°μΌλ‘ μ§νμ νμ΅λλ€.
μ€νλΌμΈμ μμν¨, μ¦κ°μ μΈ μν΅μ΄ λ§€μ° μ’μκ³ ν¨κ» μ§ννλ©΄μ μμνκ² μ¬λ―Έμλ μνΌμλλ μμ΄μ μ΄λ² νλ‘μ νΈλ νΉλ³ν κΈ°μ΅μΌλ‘ λ¨μ κ² κ°μ΅λλ€.
λ§λμ μ§μ νμ΄νλ‘κ·Έλλ°μΌλ‘ νμλ μ μμ νμΎν λ°μλ€μ¬ μ€ νλ μ λ§ κ°μ¬ν΄μ!
λ°±μλ λΆλ€μ΄ μ΄μ μ μΌλ‘ μ°Έμ¬ν΄μ£Όμκ³ νλ‘ νΈμλλ₯Ό μ΅λν λ°°λ €ν΄μ APIλ₯Ό ꡬμ±νλ €κ³ νμ κ² λκ»΄μ Έμ κ°μ¬νμ΅λλ€.
μ΄μ μ μ΄λ©΄μλ κ²Έμνμ μ€, μ€κ³Ό μ¬λ―Έμκ² νμ
νμλ©° μννκ² μν΅μ μ ν΄μ£Όμλ λκΈ° λλΆμ μΌμ£ΌμΌμ΄ μ¦κ±°μ μ΅λλ€.
μνλ μ μ ν νλ‘μ νΈ μμ μ μ 미리 λ
Έμ
ν
νλ¦Ώμ μ€λΉν΄μ ν νλ‘μ νΈκ° μννκ² μ§νλλ κ²μ κΈ°μ¬νλ€λ κ²μ
λλ€.
νμλΆλ€μ΄ μ λ°μλ€μ¬μ£Όμ λλΆλ μκ³ , λ§€μΌ νμλ‘κ³Ό νκ³ λ₯Ό μμ±νλ©΄μ κ·Έλ μ 무μμ νλμ§ λͺ
ννκ² λ³΄μ¬μ μ’μμ΅λλ€.
κΈ°λ‘μ μ€μμ±μ λ€μν λ² λμΌλ‘ νμΈν μ μμμ΅λλ€.
κ°μΈμ μΌλ‘λ λΈλ‘κ·Έμ μ€λ μμ
ν μΌλ€μ μμΈνκ² κΈ°λ‘νλ €κ³ λ
Έλ ₯νμ΅λλ€.
μμ¬μ΄ μ μ μκ° νμ©μ μ’ λ μ ν΄μ νλ‘μ νΈμ μλ μκ°μ λλ¦¬κ³ μΆμλλ° κ·Έλ¬μ§ λͺ»νλ€λ μ μ
λλ€.
νμμ λ€λ₯Έ νκ²½μμ μ μν΄ κ°λ©΄μ μλ‘μ΄ κ²μ νμ΅κΉμ§ νλ €κ³ νλ μκ°λ³΄λ€ μ½μ§ μμμ΅λλ€.
λ€μ μ£Όμλ νμ΅κ³Ό νλ‘μ νΈμ ν¬μνλ μκ°μ λ§μ΄ λλ¦¬κ³ μΆμ΅λλ€. Reactλ₯Ό μ’ λ μ¬λ μκ² κ³΅λΆνκ³ κΈ°λ₯ꡬνμ μ ν΄λ΄κ³ μΆμ΅λλ€.
μ§κΈλ³΄λ€ μ’ λ μ΄μ¬ν ν΄μ νλ‘μ νΈλ₯Ό μ λ§λ¬΄λ¦¬ν μ μλλ‘ ν΄μΌκ² μ΅λλ€!
νλκ° νκ³ λ₯Ό λ¨κ²Όλλ° μ§μμ΄μΈ λ³ΈμΈμ λ΄κ° λμ§μ΄ λλ€κ³ ννν΄μ μκ²Όλ€ γ γ μ§μμ΄μμλ μ€νλΌμΈμμ λ§λμ νλ‘μ νΈλ₯Ό νμλ λμ μ μμ λ°μλ€μ¬μ€ νλμκ² μ λ§ λ¬΄ν κ°μ¬!λ₯Ό μ¬λ¦°λ€.
5. νΌμ΄μΈμ (4:00~5:30PM)
2μ 30λΆμ μ§ννλ μ 체 곡μ μκ°μ νμμ νλ‘ νΈμλ 8λͺ λ§ λͺ¨μ¬μ νΌμ΄μΈμ μ μ§ννλ€. 1μκ° λ°μ΄λΌλ μκ°μ΄ λΆλ°°λμ΄μ λ°λ μλ 곡μ μ μ§μμλ΅μ΄ κ°λ₯νλ€. λ€λ₯Έ μ‘°λ μ΄λ€ μμΌλ‘ μ§νλκ³ μλμ§, κ·Έλ¦¬κ³ νμμ κΆκΈνλ κ²λ€μ νΈνκ² μ§λ¬Έν μ μμ΄μ μ’μλ€.
λμ νλλ 1μ‘°μ΄κΈ° λλ¬Έμ κ°μ₯ λ¨Όμ λ°νλ₯Ό μμνλ€. μ‘°λ³λ‘ μ½ 20λΆμ μκ°μ μ¬μ©ν μ μμκ³ κ·Έλμ μ°λ¦¬λ 1λΆλ νλκ°, 2λΆλ λ΄κ° 맑μμ λ°νλ₯Ό μ€λΉνμλ€. νλλ λ°±μλμμ νμ μ΄ μ΄λ»κ² μ§νλκ³ μλμ§, κ·Έλ¦¬κ³ νλ‘μ νΈμ μ§ν λ°©ν₯μ΄ μ΄λ€μ§λ₯Ό μμΈνκ² λ°ννλ€.
λλ νλμ μ΄μ΄ μ½λλ₯Ό 곡μ νλ©΄μ νλ‘μ νΈμ μΈλΆ μν©μ λ°ννλ€. Styled Componentsλ₯Ό νμ©νμκ³ GlobalStyle, ThemeProviderλ₯Ό νμ©ν κ², svg, useEffectμ fetch μ¬μ©, λ°μ΄ν°λ₯Ό js νμΌμ λ°λ‘ λ§λ€μ΄μ mapμ λλ € μ»΄ν¬λνΈλ₯Ό λμ μΌλ‘ μμ±ν κ² λ± μ§κΈκΉμ§ ν κ²λ€μ μΈλΆ μ¬νμ λ°ννλ€.
λ리μκ²μ νΌλλ°±μ λ°μλλ° useEffectλ₯Ό μ’ λ μκ³ μ¨μΌκ² λ€λ μκ°μ΄ λ€μλ€.
6. ν¬λ‘±μ νΌλλ°± (5:30~7:00PM)
λ³Έλ 1μκ° μ λλ‘ λΆλ°°λμ΄ μμλ νΌλλ°± μκ°μ ν¬λ‘±μ νλΆν νΌλλ°± λμ κΈΈμ΄μ§κ² λμλ€. μ§μμλ΅κ³Ό λ€λ₯Έ μ‘° μ½λ리뷰 λͺ¨λ μμΌλ‘ νλ‘μ νΈλ₯Ό ν λ λ§€μ° λμμ΄ λλ μκ°μ΄μλ€.
(1) μ§μμλ΅
μ΄λ°μλ κ΅¬κΈ μνΈμ μμ μ΄ λλ μ λ€μ΄λ κΆκΈν μ λ€μ μ΅λͺ μΌλ‘ μμ λ‘κ² μ μΌλ©° ν¬λ‘±μ΄ κ·Έμ λν λ΅μ νλ λ°©μμΌλ‘ μ§νλμλ€.
# κ°λ° νλ κ΄λ ¨ μ‘°μΈ
- μκ°μ νλ©΄μ κ°λ°ν΄μΌ νλ€. νΉν μ΄λ€ μκ°κ³Ό λ Έλ ₯μ νλμ§κ° μ€μνλ€. μ΄λ€ λ¬Έμ λ₯Ό μν΄ κΉμ΄μκ² νκ³ λλ κ²μ΄ μ€μνλ€. μ΄λ€ λ²κ·Έλ₯Ό λ§λ¬μ λ λ¨νΈμ μΌλ‘ μκ°νλ κ²μ΄ μλ κ·Όλ³Έμ μΌλ‘ ν΄κ²°μ± μ μ°Ύλ κ²μ΄ μ€μνλ€. μκ°μ λ§μ΄ νκ³ μ§μ§νκ² λ¬Έμ λ₯Ό λν κ²
- μ§κΈ νλ‘μ νΈμ λΉμ₯μ 결과보λ€λ κ³Όμ μ΄ μ€μνλ€λ κ²μ κΈ°μ΅νμ. λ¬Έμ λ₯Ό λνλ νλμ ν΄κ²° κ³Όμ μ΄ λ μ€μνλ€.
# React κ΄λ ¨ μ‘°μΈ
- 곡μλ¬Έμκ° κ΅μ₯ν 체κ³μ μΌλ‘ μ λμ΄ μλ€. μ΄κ²μ κΌΌκΌΌνκ² λ³΄λ©΄μ νμ΅ν΄ λ³Ό κ².
- λ°λλΌ μλ°μ€ν¬λ¦½νΈμ Reactμ λ λλ§ μ°¨μ΄ κ°μ κ²λ€μ κ²½νν΄λ³΄λ©΄μ κΈλ‘ λ¨κ²¨ λ΄λΌ. κ²½νμμ λμ¬ μ μλ κΈμ΄ μ’λ€.
(2) μ½λ리뷰
νλ°μλ μ½λλ₯Ό μ§μ 보면μ νΌλλ°±μ νλ€. 첫 λ²μ§Έλ μλμ λμ μ‘°, λ λ²μ§Έλ λ² λμ ν¬ν€ μ‘°μλ€.
# μλ & λμ μ‘°
- μ»΄ν¬λνΈ map λλ €μ μμ° μ key κ°μ κ³ μ ν κ²μΌλ‘ μ€ κ² - λ°±μλμμ λ°μμ μ°κΈ°
- νμΌ νμ₯μ js, jsxλ‘λ μ»΄ν¬λνΈμΈμ§ μλμ§λ₯Ό ꡬλΆνλ€.
- μ»΄ν¬λνΈλ₯Ό λ무 ν¬μ§ μκ² λ§λ€μ
- Styled Components λ΄λΆμμ sass λ¬Έλ²μ νμ©ν μ μλ€.
- μλ¬ νΈλ€λ§ - console.errorλ κ°λ°μλ₯Ό μν λ°©λ²μ΄λ€.
# λ² λ & ν¬ν€ μ‘°
- WSμ WASμ μ°¨μ΄ μ€λͺ
- awaitλ₯Ό μ¬λ¬ λ² κ³μ μ°κ² λλ©΄ λΈλ‘νΉμ΄ μκΈ°κ² λλ―λ‘ λ³λ ¬ μμ²μ΄ λλ κ²μΌλ‘ λ°κΏ κ²
- μ»΄ν¬λνΈ μ΄λ¦ μ§μ λ κ·Έλ₯ Modal.jsx μ΄λ° μμΌλ‘ μ§κ² λλ©΄ μ’ μΆμμ μ΄κ³ μ¬μ¬μ©μ΄ κ°λ₯ν κ²μ²λΌ 보μΈλ€. κ·Έλμ νΉμ λͺ¨λ¬μ΄λΌλ©΄ κ·Έλ₯ DetailViewModal.jsx μ΄λ° μμΌλ‘ ꡬ체μ μΈ μ΄λ¦μ λΆμ¬μ μ§λ κ²μ΄ λ«λ€.
- setterλ₯Ό μΈ νμκ° μλ€λ©΄ κ΅³μ΄ useStateλ₯Ό μΈ νμκ° μλ€.