Skip to content

πŸ› [24.10.15] 이미지 λ‘œλ“œ μ‹€νŒ¨μ‹œ λ°œμƒν•œ 문제 ν•΄κ²° #40Β #41

@wynter24

Description

@wynter24

문제 상황

  1. 이미지 λ‘œλ“œ μ‹€νŒ¨ μ‹œ λ¬΄ν•œ μš”μ²­ 문제 λ°œμƒ
  2. λ°°κ²½ μ΄λ―Έμ§€μ˜ λ‘œλ“œ μ‹€νŒ¨ μ‹œ μ—λŸ¬ λ©”μ‹œμ§€ 및 μŠ€νƒ€μΌ μ²˜λ¦¬κ°€ μ •μƒμ μœΌλ‘œ 이루어지지 μ•ŠλŠ” 문제

μž¬ν˜„ κ°€λŠ₯ μ—¬λΆ€

  • 예
  • μ•„λ‹ˆμ˜€

μ½”λ“œ

1. μ—λŸ¬ μƒνƒœλ₯Ό κ΄€λ¦¬ν•˜μ—¬ λ¬΄ν•œ λ‘œλ”© λ°©μ§€

  • μ—λŸ¬ μƒνƒœ μ—…λ°μ΄νŠΈ (setHasImgError)
    • 이미지 λ‘œλ“œμ— μ‹€νŒ¨ν•  경우, img.onerror ν•Έλ“€λŸ¬κ°€ μ‹€ν–‰λ˜μ–΄ setHasImgError(true)둜 이미지 μ—λŸ¬ μƒνƒœλ₯Ό true둜 λ³€κ²½ν•©λ‹ˆλ‹€.
    • 이 μ—λŸ¬ μƒνƒœκ°€ true둜 μ„€μ •λ˜λ©΄, 이후 λ‹€μ‹œ 이미지 λ‘œλ“œλ₯Ό μ‹œλ„ν•˜μ§€ μ•Šλ„λ‘ μ½”λ“œ 흐름을 μ œμ–΄ν•©λ‹ˆλ‹€.
  • μƒνƒœμ— λ”°λ₯Έ λ‘œλ“œ 둜직 차단
    • 이미지가 λ‘œλ“œλ  λ•Œλ§ˆλ‹€ hasImgError μƒνƒœλ₯Ό ν™•μΈν•˜μ—¬, μ—λŸ¬ μƒνƒœμΈ 경우 이미지 λ‘œλ“œμ™€ κ΄€λ ¨λœ μž‘μ—…μ„ μ€‘λ‹¨ν•©λ‹ˆλ‹€.
    • 즉, 이미 μ—λŸ¬κ°€ λ°œμƒν•œ μ΄λ―Έμ§€λŠ” 더 이상 λ‘œλ“œλ˜μ§€ μ•Šκ³ , onError ν•Έλ“€λŸ¬μ—μ„œ λ¬΄ν•œ μš”μ²­μ΄ λ°œμƒν•˜λŠ” 것을 λ§‰μŠ΅λ‹ˆλ‹€.
  • λŒ€μ²΄ 이미지 μ„€μ •
    μœ νš¨ν•œ URL인지 ν™•μΈν•œ ν›„, 비정상적인 URL이 듀어왔을 경우, 투λͺ…ν•œ 빈 그림을 λŒ€μ²΄ μ΄λ―Έμ§€λ‘œ μ‚¬μš©ν•©λ‹ˆλ‹€.
image

2. λ°°κ²½ 이미지

  • 이미지 λ‘œλ“œλ₯Ό λΉ„λ™κΈ°μ μœΌλ‘œ 처리
    이미지 μƒμ„±μžλ₯Ό μ‚¬μš©, λΉ„λ™κΈ°μ μœΌλ‘œ λ‘œλ“œν•˜μ—¬ 성곡 μ—¬λΆ€λ₯Ό ν™•μΈν•˜κ³ , λ‘œλ“œ μ‹€νŒ¨ μ‹œ μ—λŸ¬ μƒνƒœλ₯Ό μ—…λ°μ΄νŠΈν•©λ‹ˆλ‹€.
  • μŠ€νƒ€μΌ 쑰건 μ„€μ •
    이미지 μ—λŸ¬κ°€ λ°œμƒν•˜μ§€ μ•Šκ³  μ˜¬λ°”λ₯Έ ν˜•μ‹μ˜ μ£Όμ†Œ(http:// λ˜λŠ” https://둜 μ‹œμž‘)일 λ•Œ(쑰건), λ³€κ²½λœ μŠ€νƒ€μΌμ΄ μ μš©λ˜λ„λ‘ ν•©λ‹ˆλ‹€.
image

기타

λŒ€μ²΄ 이미지 / 이미지 속성 / Image의 onError 속성
Image μƒμ„±μž - MDN
[νŠΈλŸ¬λΈ”μŠˆνŒ…] λ¬΄ν•œ λ‘œλ”© / [νŠΈλŸ¬λΈ”μŠˆνŒ…] λ°°κ²½ 이미지

Metadata

Metadata

Assignees

Labels

βœ… Done[μž‘μ—… 상황] μž‘μ—…μ΄ μ™„λ£Œλœ 이슈 λ˜λŠ” λ¨Έμ§€λœ PR✨ Feature[μž‘μ—… μœ ν˜•] μƒˆλ‘œμš΄ κΈ°λŠ₯ κ°œλ°œμ„ μœ„ν•œ μ΄μŠˆλ‚˜ PRπŸ› Bug[μž‘μ—… μœ ν˜•] 버그λ₯Ό μˆ˜μ •ν•˜κΈ° μœ„ν•œ μ΄μŠˆλ‚˜ PR

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions