π±[PHOBUM] νμλ‘: μ΄λ―Έμ§ μ λ‘λ λ° μμ κΈ°λ₯ κ°μ
π± [PHOBUM] μ΄λ―Έμ§ μ λ‘λ λ° μμ κΈ°λ₯ κ°μ
μ΅κ·Ό PHOBUM νλ‘μ νΈμμλ μ΄λ―Έμ§ μ
λ‘λ λ° μμ κΈ°λ₯ μ λ°μ λν 리ν©ν λ§ μμ
μ μ§ννμ΅λλ€.
μ΄κΈ° ꡬ쑰μμλ image-upload ν΄λ λ΄λΆμ λͺ¨λ λ‘μ§μ΄ λͺ°λ € μμ΄ μ μ§λ³΄μμ μ΄λ €μμ΄ μμκ³ , μ¬μ©μ κ²½νλ λΆμ‘±ν μ μ΄ μμμ΅λλ€.
μ΄λ² κ°μ μμ μμλ μ»΄ν¬λνΈ κ΅¬μ‘° λΆλ¦¬, μν κ΄λ¦¬ μ΅μ ν, λ λλ§ μ±λ₯ ν₯μ, κ·Έλ¦¬κ³ μ¦κ°μ μΈ μ¬μ©μ νΌλλ°± μ 곡μ μ€μ¬μΌλ‘ κ°μ νμ΅λλ€.
β μ»΄ν¬λνΈ κ΅¬μ‘° κ°μ
πΉ CardDetail μ»΄ν¬λνΈ
- μ΄λ―Έμ§ μμ ν μ¦μ UIμ λ°μλλλ‘ μ²λ¦¬
useMemo,useCallbackμ μ κ·Ή νμ©νμ¬ μ°μ° μ΅μ ν- μν λ‘μ§ λ¨μν λ° μ½λ κ°λ μ± ν₯μ
πΉ CardModify μ»΄ν¬λνΈ
- νμΌ μ ν μ¦μ 미리보기 μ 곡
- μ μ₯ μμλ λ°±μλμ λΉλκΈ° μμ² β λ°μ ν μν μ λ°μ΄νΈ
- λΆνμν μν μ€λ³΅ μ κ±° λ° μ»΄ν©νΈν νλ¦ κ΅¬μ±
πΉ Album μ»΄ν¬λνΈ
Intersection Observerνμ© β 보μ΄λ μ΄λ―Έμ§ μμ£Ό ν리λ‘λ©- μ΄λ―Έμ§ λͺ©λ‘ μνλ₯Ό λΆλ¦¬νμ¬ λΆνμν μ 체 λ λλ§ λ°©μ§
π κΈ°μ μ κ°μ μ¬ν
π μν κ΄λ¦¬ μ΅μ ν
useCallback,useMemoλ‘ λ¦¬λ λλ§ μ΅μν- μν μ λ°μ΄νΈλ λΆλΆμ μΌλ‘ μ²λ¦¬νμ¬ μ±λ₯ μ΅μ ν
π μ΄λ―Έμ§ μ²λ¦¬ λ°©μ λ¨μν
const handleModifySave = async (updatedImage: ImageUpdateRequest) => {
const response = await imagesApi.update(currentImage.id, updatedImage);
const newImage = {
...currentImage,
...response.data
};
setCurrentImage(newImage);
onEdit?.(newImage);
};
- API μλ΅ κΈ°λ°μΌλ‘ μν κ°±μ β μ¦μ λ°μ
- μμ μ»΄ν¬λνΈμλ μ½λ°±μΌλ‘ μ λ°μ΄νΈ μ λ¬
π λ λλ§ λ° λ©λͺ¨λ¦¬ μ΅μ ν
- μ΄λ―Έμ§ ν리λ‘λ© λμ
cleanupν¨μ μΆκ°λ‘ λΆνμν 리μ€λ μ κ±°- μ€λ³΅ API νΈμΆ λ°©μ§ λ° λ λλ§ ν¨μ¨ κ°μ (μ½ 20~30% μ±λ₯ ν₯μ 체κ°)
π― μ¬μ©μ κ²½ν κ°μ
μ¦κ°μ μΈ UI λ°μ
- μμ μ¦μ μ΄λ―Έμ§ κ°±μ β μ€μκ° νΌλλ°±
- λ‘λ© μ€μλ μ€νΌλ λλ μ§ν νμ
- μ€λ₯ μ λͺ νν μλ¬ λ©μμ§ μ 곡
μ΄λ―Έμ§ μ λ‘λ UX ν₯μ
- μ ν μ¦μ λ―Έλ¦¬λ³΄κΈ°λ‘ μ΄λ―Έμ§ νμΈ κ°λ₯
- μ λ‘λ μ€ μκ°μ μν νμ
- μμ /μ μ₯/μ·¨μ λ²νΌ λͺ νν λΆλ¦¬ν΄ μμ νΌλ λ°©μ§
π ν₯ν κ°μ μμ μ¬ν
| κ°μ νλͺ© | μΈλΆ λ΄μ© |
|---|---|
| μ΄λ―Έμ§ μ΅μ ν | WebP μλ λ³ν, μ λ‘λ μ μμΆ |
| μΊμ± μ λ΅ | ν΄λΌμ΄μΈνΈΒ·μλ² μμͺ½μμ μ μ© |
| μ±λ₯ λͺ¨λν°λ§ | Sentry, React Profiler, Lighthouse λ± μ°λ |
| λ λλ§ λΆμ | λ©λͺ¨λ¦¬/μκ°/λ€νΈμν¬ μμ² κ°μ λͺ©ν |
π§Ύ κ²°λ‘ λ° μ 리
μ΄λ² μ΄λ―Έμ§ κΈ°λ₯ 리ν©ν λ§μ ν΅ν΄ λ€μκ³Ό κ°μ ν¨κ³Όλ₯Ό μ»μμ΅λλ€:
- π‘ μ»΄ν¬λνΈ κ΅¬μ‘° κ°μ β μ μ§λ³΄μμ± ν₯μ
- π λ λλ§/API νΈμΆ μ±λ₯ ν₯μ
- π μ¬μ©μ κ²½ν μ λ°μ μ§μ ν₯μ
π λ€μ λ¨κ³
- κΈ°λ₯λ³ ν μ€νΈ μ½λ μΆκ°
- κ°μ λ λ‘μ§ κΈ°λ°μΌλ‘ κΈ°μ λ¬Έμν
- λͺ¨λν°λ§ νκ²½ κ΅¬μΆ λ° μ§μμ μΈ μ±λ₯ νΈλνΉ
μ΄μ λ λ¨μν βμλνλ κΈ°λ₯βμ λμ΄μ, μ±λ₯κ³Ό κ²½ν λͺ¨λλ₯Ό λ§μ‘±μν€λ κ΅¬μ‘°λ‘ λμ½νμ΅λλ€. PHOBUMμ μ΄λ―Έμ§ μ²λ¦¬ κΈ°λ₯μ μμΌλ‘λ κ³μ λ°μ ν μμ μ λλ€. πͺ
λκΈλ¨κΈ°κΈ°