inspeep

์›น์‚ฌ์ดํŠธ ๋กœ๋”ฉ ์†๋„ ์ตœ์ ํ™”: ํŒŒ์ด์ฌ(FastAPI) ์ด๋ฏธ์ง€ WebP ์ž๋™ ๋ณ€ํ™˜ ๋ฐ CDN ์ ์šฉ๊ธฐ

์กฐํšŒ ์ˆ˜ 16
์ถ”์ฒœ ์ˆ˜ 0
๋Œ“๊ธ€ 0

์›น ์„œ๋น„์Šค๋ฅผ ์ฒ˜์Œ ๋Ÿฐ์นญํ•˜๊ณ  ๋‚˜๋ฉด, ํ…์ŠคํŠธ๋งŒ ๋ฉ๊ทธ๋Ÿฌ๋‹ˆ ์žˆ๋Š” ํ™”๋ฉด์ด ๋ฐ‹๋ฐ‹ํ•ด ๋ณด์—ฌ ๊ณ ํ™”์งˆ ์ด๋ฏธ์ง€๋‚˜ ๋ฐฐ๋„ˆ๋“ค์„ ์ž”๋œฉ ์ถ”๊ฐ€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ € ์—ญ์‹œ ์œ ์ €๋“ค์˜ ๋ˆˆ์„ ์ฆ๊ฒ๊ฒŒ ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ๊ฒŒ์‹œํŒ๋งˆ๋‹ค ํผ์ง€๋ง‰ํ•œ ๊ณ ํ™”์งˆ JPG, PNG ์ด๋ฏธ์ง€๋“ค์„ ํŒํŒ ๋„ฃ์—ˆ์ฃ . ๋‚ด PC์˜ ๋น ๋ฅธ ์™€์ดํŒŒ์ด ํ™˜๊ฒฝ์—์„œ๋Š” ์ด๋ฏธ์ง€๊ฐ€ ์ˆœ์‹๊ฐ„์— ๋œจ๋‹ˆ๊นŒ "์˜ค, ํ™”๋ฉด์ด ์•„์ฃผ ํ™”์‚ฌํ•˜๊ณ  ์˜ˆ์œ๋ฐ?"๋ผ๋ฉฐ ํ˜ผ์ž ์žํ™”์ž์ฐฌ์— ๋น ์กŒ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋ฉฐ์น  ๋’ค, ์ง€์ธ์˜ ์Šค๋งˆํŠธํฐ์œผ๋กœ ์ œ ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•ด ๋ณด๊ณ ๋Š” ๊ฒฝ์•…์„ ๊ธˆ์น˜ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์ง€ํ•˜์ฒ  ์ถœํ‡ด๊ทผ ์‹œ๊ฐ„๋Œ€์˜ ๋ถˆ์•ˆ์ •ํ•œ ๋ชจ๋ฐ”์ผ ๋ฐ์ดํ„ฐ ํ™˜๊ฒฝ์—์„œ๋Š” ํ™”๋ฉด์ด ํ—ˆ์˜‡๊ฒŒ ๋ฉˆ์ถฐ ์žˆ๋‹ค๊ฐ€, ์ด๋ฏธ์ง€๊ฐ€ ์œ„์—์„œ๋ถ€ํ„ฐ ์•„๋ž˜๋กœ ๋š... ๋š... ๋Š๊ธฐ๋ฉฐ ๊ทธ๋ ค์ง€๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ตฌ๊ธ€์˜ ํŽ˜์ด์ง€์Šคํ”ผ๋“œ ์ธ์‚ฌ์ดํŠธ(PageSpeed Insights)์— ์ œ ์‚ฌ์ดํŠธ ์ฃผ์†Œ๋ฅผ ๋„ฃ์–ด๋ณด๋‹ˆ ์ ์ˆ˜๋Š” ์ฒ˜์ฐธํ•œ ๋นจ๊ฐ„์ƒ‰(30์ ๋Œ€)์ด์—ˆ๊ณ , "์ฐจ์„ธ๋Œ€ ํ˜•์‹์„ ์‚ฌ์šฉํ•ด ์ด๋ฏธ์ง€๋ฅผ ์ œ๊ณตํ•˜์„ธ์š”"๋ผ๋Š” ์„ฌ๋œฉํ•œ ๊ฒฝ๊ณ  ๋ฌธ๊ตฌ๊ฐ€ ๋–  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ๊ธ€ SEO์—์„œ '๋А๋ฆฐ ๋กœ๋”ฉ ์†๋„'๋Š” ์น˜๋ช…์ ์ธ ๊ฐ์  ์š”์ธ์ž…๋‹ˆ๋‹ค. ์œ ์ €๋“ค์€ 3์ดˆ ์ด์ƒ ํ™”๋ฉด์ด ๋œจ์ง€ ์•Š์œผ๋ฉด ์ž๋น„ ์—†์ด '๋’ค๋กœ ๊ฐ€๊ธฐ'๋ฅผ ๋ˆŒ๋Ÿฌ๋ฒ„๋ฆฌ๋‹ˆ๊นŒ์š”.

์˜ค๋Š˜์€ ์ด ๋ฌด๊ฑฐ์šด ์ด๋ฏธ์ง€๋“ค์„ ํŒŒ์ด์ฌ(FastAPI) ๋ฐฑ์—”๋“œ์—์„œ ๊นƒํ„ธ์ฒ˜๋Ÿผ ๊ฐ€๋ณ๊ฒŒ ์••์ถ•ํ•˜๊ณ , Supabase Storage๋ฅผ ํ†ตํ•ด ์ด์•Œ์ฒ˜๋Ÿผ ๋น ๋ฅด๊ฒŒ ์˜์•„์ฃผ์–ด ๋กœ๋”ฉ ์†๋„๋ฅผ ๊ทน์ ์œผ๋กœ ๋Œ์–ด์˜ฌ๋ฆฐ ์ €๋งŒ์˜ ์ตœ์ ํ™” ๊ฒฝํ—˜์„ ๊ณต์œ ํ•ด ๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค.



1. ์ฒซ ๋ฒˆ์งธ ์‹œ๋„: ํŒŒ์ด์ฌ(Python) Pillow๋กœ ์ด๋ฏธ์ง€ WebP ์ž๋™ ๋ณ€ํ™˜ํ•˜๊ธฐ


๊ฐ€์žฅ ๋จผ์ € ํ•ด์•ผ ํ•  ์ผ์€ ์šฉ๋Ÿ‰์ด ๋ฌด์‹ํ•˜๊ฒŒ ํฐ ์›๋ณธ JPG, PNG ํŒŒ์ผ๋“ค์˜ ๋ฉ์น˜๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ๊ธ€์ด ๊ถŒ์žฅํ•˜๋Š” '์ฐจ์„ธ๋Œ€ ์ด๋ฏธ์ง€ ํ˜•์‹'์ธ WebP๋Š” ๊ธฐ์กด JPG ๋Œ€๋น„ ํ™”์งˆ ์†์‹ค์€ ๊ฑฐ์˜ ๋ˆˆ์— ๋„์ง€ ์•Š์œผ๋ฉด์„œ ์šฉ๋Ÿ‰์€ ๋ฌด๋ ค 50%~80%๊นŒ์ง€ ํš๊ธฐ์ ์œผ๋กœ ์ค„์—ฌ์ฃผ๋Š” ๋งˆ๋ฒ•์˜ ํฌ๋งท์ž…๋‹ˆ๋‹ค.

์œ ์ €๊ฐ€ ์‚ฌ์ดํŠธ์— ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•  ๋•Œ, ๋ฌด๊ฑฐ์šด ์›๋ณธ์„ ๊ทธ๋Œ€๋กœ ์ €์žฅ์†Œ์— ๋„ฃ๋Š” ๋ฉ์ฒญํ•œ ์ง“์„ ๋ง‰์•„์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ €๋Š” FastAPI ์„œ๋ฒ„์˜ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ API ์ค‘๊ฐ„์— ํŒŒ์ด์ฌ์˜ ๋Œ€ํ‘œ์ ์ธ ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ Pillow๋ฅผ ํˆฌ์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ๋Š” ์ƒ๊ฐ๋ณด๋‹ค ๊ฐ„๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. ์œ ์ €๊ฐ€ ์ด๋ฏธ์ง€๋ฅผ ์˜ฌ๋ฆฌ๋ฉด, ๋ฐฑ์—”๋“œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํŒŒ์ผ์„ ๊ฐ€๋กœ์ฑ„์–ด ๊ฐ€๋กœ ํ•ด์ƒ๋„๋ฅผ ๋ชจ๋ฐ”์ผ ํ™”๋ฉด์— ์ถฉ๋ถ„ํ•œ 1200px ์ •๋„๋กœ ์ค„์ด๊ณ (Resize), ํฌ๋งท์„ ๊ฐ•์ œ๋กœ .webp๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ํ’ˆ์งˆ(Quality)์„ 80 ์ˆ˜์ค€์œผ๋กœ ์••์ถ•ํ•ด ๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค.

from PIL import Image
import io

# FastAPI๋กœ ๋“ค์–ด์˜จ ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ WebP๋กœ ์••์ถ•ํ•˜๋Š” ํ•ต์‹ฌ ๋กœ์ง
async def optimize_image(file_bytes):
    image = Image.open(io.BytesIO(file_bytes)).convert("RGB")
    
    # ์‚ฌ์ด์ฆˆ ์กฐ์ • (์ตœ๋Œ€ ๋„ˆ๋น„ 1200px ๊ธฐ์ค€ ๋น„์œจ ์ถ•์†Œ)
    image.thumbnail((1200, 1200))
    
    output = io.BytesIO()
    # ๋Œ€๋ง์˜ WebP ๋ณ€ํ™˜ ๋ฐ ์••์ถ•!
    image.save(output, format="WEBP", quality=80)
    return output.getvalue()

์ด ์งง์€ ์ฝ”๋“œ ๋ช‡ ์ค„์ด ๊ฐ€์ ธ์˜จ ๊ฒฐ๊ณผ๋Š” ์—„์ฒญ๋‚ฌ์Šต๋‹ˆ๋‹ค. ์žฅ๋‹น 5MB๊ฐ€ ๋„˜์–ด๊ฐ€๋˜ ์ดˆ๊ณ ํ™”์งˆ ์‚ฌ์ง„๋“ค์ด ํ™”์งˆ ์ €ํ•˜ ์—†์ด ๋‹จ 150KB ์ˆ˜์ค€์œผ๋กœ ์ชผ๊ทธ๋ผ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๋‹ค์ด์–ดํŠธ์— ์™„๋ฒฝํ•˜๊ฒŒ ์„ฑ๊ณตํ•œ ๊ฒƒ์ด์ฃ .





2. ๋‘ ๋ฒˆ์งธ ์‹œ๋„: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋Œ€์‹  ์ „์šฉ ์Šคํ† ๋ฆฌ์ง€(Supabase Storage)์™€ CDN์˜ ํž˜ ๋นŒ๋ฆฌ๊ธฐ


์ด๋ฏธ์ง€ ์šฉ๋Ÿ‰์„ ์ค„์˜€๋‹ค๊ณ  ์ตœ์ ํ™”๊ฐ€ ๋๋‚œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๊ฐ€๋ฒผ์›Œ์ง„ WebP ์ด๋ฏธ์ง€๋ฅผ ์œ ์ €์˜ ํ™”๋ฉด๊นŒ์ง€ '์–ผ๋งˆ๋‚˜ ๋นจ๋ฆฌ' ๋ฐฐ๋‹ฌํ•ด ์ฃผ๋А๋ƒ๊ฐ€ ๊ด€๊ฑด์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ดˆ๋ณด ์‹œ์ ˆ์—” ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(DB)์— Base64 ํ…์ŠคํŠธ ํ˜•ํƒœ๋กœ ์šฐ๊ฒจ๋„ฃ๊ฑฐ๋‚˜, ์„œ๋ฒ„ ๋ณธ์ฒด ํด๋”์— ๋œ๋  ์ €์žฅํ•˜๊ธฐ๋„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ด๋ฏธ์ง€๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ๋งˆ๋‹ค DB์™€ ์„œ๋ฒ„ CPU๊ฐ€ ๋™๋™๋Œ€๋ฉฐ ์ผํ•ด์•ผ ํ•ด์„œ ์ „์ฒด ์‚ฌ์ดํŠธ๊ฐ€ ๋ฉˆ์นซ๊ฑฐ๋ฆฌ๋Š” ๋ณ‘๋ชฉ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ €๋Š” ์ •์  ํŒŒ์ผ ์ฒ˜๋ฆฌ์— ํŠนํ™”๋œ Supabase Storage๋กœ ๋ชจ๋“  ์ด๋ฏธ์ง€๋ฅผ ์ด์‚ฌ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. Supabase Storage๋Š” AWS S3์™€ ๋น„์Šทํ•˜๊ฒŒ ์ด๋ฏธ์ง€๋‚˜ ์˜์ƒ ํŒŒ์ผ๋งŒ ์ „๋ฌธ์ ์œผ๋กœ ๋ณด๊ด€ํ•ด ์ฃผ๋Š” ๊ฑฐ๋Œ€ํ•œ ์ฐฝ๊ณ ์ž…๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ(FastAPI)๋Š” ์••์ถ•์ด ๋๋‚œ WebP ์ด๋ฏธ์ง€๋ฅผ ๊ณง๋ฐ”๋กœ Supabase Storage๋กœ ๋˜์ ธ๋ฒ„๋ฆฌ๊ณ , DB์—๋Š” ์ด๋ฏธ์ง€๊ฐ€ ์ €์žฅ๋œ 'URL ์ฃผ์†Œ'๋งŒ ๋‹ฌ๋ž‘ ํ•œ ์ค„ ๊ธฐ๋กํ•˜๋„๋ก ๊ตฌ์กฐ๋ฅผ ์‹น ๋œฏ์–ด๊ณ ์ณค์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ๋”ํ•ด, Supabase์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” CDN(์ฝ˜ํ…์ธ  ์ „์†ก ๋„คํŠธ์›Œํฌ) ๊ธฐ๋Šฅ์ด ๋‚ ๊ฐœ๋ฅผ ๋‹ฌ์•„์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•œ๊ตญ์— ์žˆ๋Š” ์œ ์ €๊ฐ€ ์ œ ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜๋ฉด ์„œ์šธ์— ์žˆ๋Š” ์บ์‹œ ์„œ๋ฒ„์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์ด์ฃผ๊ณ , ๋ฏธ๊ตญ์— ์žˆ๋Š” ์œ ์ €๊ฐ€ ์ ‘์†ํ•˜๋ฉด ๋ฏธ๊ตญ ์บ์‹œ ์„œ๋ฒ„์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์ด์ฃผ๋Š” ์‹์ž…๋‹ˆ๋‹ค. ๋ฉ”์ธ ์„œ๋ฒ„๋Š” ์ด๋ฏธ์ง€ ์ „์†ก์ด๋ผ๋Š” ์ค‘๋…ธ๋™์—์„œ ์™„๋ฒฝํ•˜๊ฒŒ ํ•ด๋ฐฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.






3. ๊ฒฐ๊ณผ: ๋กœ๋”ฉ ์‹œ๊ฐ„ 3์ดˆ โžก๏ธ 0.5์ดˆ, ์ฝ”์–ด ์›น ๋ฐ”์ดํƒˆ(LCP) ์ง€ํ‘œ ๋‹ฌ์„ฑ


์ด ๋‘ ๊ฐ€์ง€ ์ž‘์—…์„ ๋งˆ์นœ ๋’ค, ๋‹ค์‹œ ์ง€์ธ์˜ ์Šค๋งˆํŠธํฐ์„ ๋นŒ๋ ค ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ํ™”๋ฉด์„ ์Šคํฌ๋กคํ•  ๋•Œ๋งˆ๋‹ค ์ˆ˜์‹ญ ์žฅ์˜ ์ด๋ฏธ์ง€๋“ค์ด ์ง€์—ฐ์‹œ๊ฐ„ 0.1์ดˆ๋„ ์—†์ด ํ™”๋ฉด์— 'ํƒํƒํƒ' ๋ฐ•ํžˆ๋“ฏ ์ฆ‰๊ฐ์ ์œผ๋กœ ๋กœ๋”ฉ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ฒด๊ฐ ์†๋„๊ฐ€ ๋ฌธ์ž ๊ทธ๋Œ€๋กœ '๋น›'์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ๋ฟŒ๋“ฏํ–ˆ๋˜ ์ˆœ๊ฐ„์€ ๋ฉฐ์น  ๋’ค ๊ตฌ๊ธ€ ์„œ์น˜ ์ฝ˜์†”(Search Console)์— ๋“ค์–ด๊ฐ”์„ ๋•Œ์ž…๋‹ˆ๋‹ค. ๊ฒฝ๊ณ ๋“ฑ์ด ๋ฒˆ์ฉ์ด๋˜ '์ฝ”์–ด ์›น ๋ฐ”์ดํƒˆ(Core Web Vitals)' ๋ฉ”๋‰ด์˜ LCP(์ตœ๋Œ€ ์ฝ˜ํ…์ธ  ๋ Œ๋”๋ง ์‹œ๊ฐ„) ์ง€ํ‘œ๊ฐ€ '๊ฐœ์„  ํ•„์š”'์—์„œ ์˜๋กฑํ•œ ์ดˆ๋ก์ƒ‰ '์ข‹์Œ' ์ƒํƒœ๋กœ ๋ฐ”๋€Œ์–ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ๊ธ€์—๊ฒŒ "๋‚ด ์‚ฌ์ดํŠธ ์—„์ฒญ ๋น ๋ฅด๊ณ  ์พŒ์ ํ•˜๋‹ˆ๊นŒ ๊ฒ€์ƒ‰ ์ˆœ์œ„ ํŒํŒ ์˜ฌ๋ ค์ค˜!"๋ผ๊ณ  ๋–ณ๋–ณํ•˜๊ฒŒ ์–ดํ•„ํ•  ์ˆ˜ ์žˆ๋Š” ์™„๋ฒฝํ•œ ์ŠคํŽ™์„ ๊ฐ–์ถ˜ ์…ˆ์ž…๋‹ˆ๋‹ค.




๋งบ์œผ๋ฉฐ: SEO์˜ ์ˆจ์€ ๊ถŒ๋ ฅ์ž, '์†๋„'๋ฅผ ์žก์•„๋ผ


๊ตฌ๊ธ€ ์• ๋“œ์„ผ์Šค ์Šน์ธ์ด๋‚˜ ๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™”(SEO)๋ฅผ ์ด์•ผ๊ธฐํ•  ๋•Œ, ๋ณดํ†ต ๊ธ€์ž ์ˆ˜๋‚˜ ํ‚ค์›Œ๋“œ ๋ฐฐ์น˜ ๊ฐ™์€ 'ํ…์ŠคํŠธ'์—๋งŒ ์ง‘์ค‘ํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์•„๋ฌด๋ฆฌ ์ข‹์€ ๊ธ€์„ ์จ๋‘์–ด๋„, ์œ ์ €๊ฐ€ ๊ทธ ๊ธ€์„ ๋ณด๊ธฐ ์œ„ํ•ด ํ™”๋ฉด์ด ๋œฐ ๋•Œ๊นŒ์ง€ 3์ดˆ ์ด์ƒ์„ ๊ธฐ๋‹ค๋ ค์•ผ ํ•œ๋‹ค๋ฉด ๊ทธ ์‚ฌ์ดํŠธ๋Š” ๊ตฌ๊ธ€์—๊ฒŒ ๋ฒ„๋ฆผ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ์ˆ ์ ์ธ ์ตœ์ ํ™”๋ฅผ ํ†ตํ•ด ์‚ฌ์ดํŠธ์˜ ๊ธฐ์ดˆ ์ฒด๋ ฅ์„ ํŠผํŠผํ•˜๊ฒŒ ๋‹ค์ ธ๋‘๋Š” ๊ฒƒ์ด ์ง„์งœ ์žฅ๊ธฐ์ ์ธ SEO์˜ ์Šน๋ถ€์ฒ˜๋ผ๋Š” ๊ฒƒ์„ ์ด๋ฒˆ ๊ธฐํšŒ์— ๊นŠ์ด ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค.

์„œ๋ฒ„ ๋น„์šฉ์„ ํ•œ ํ‘ผ์ด๋ผ๋„ ์•„๋ผ๊ณ  ์‚ฌ์ดํŠธ ์„ฑ๋Šฅ์„ ๊ทนํ•œ์œผ๋กœ ๋Œ์–ด์˜ฌ๋ ค์•ผ ํ•˜๋Š” 1์ธ ๊ฐœ๋ฐœ์ž๋ถ„๋“ค! ์ง€๊ธˆ ๋‹น์žฅ ๋‚ด ์‚ฌ์ดํŠธ์— ์˜ฌ๋ผ๊ฐ€๋Š” ์ด๋ฏธ์ง€๋“ค์ด JPG์ธ์ง€, WebP์ธ์ง€ ๊ผญ ํ™•์ธํ•ด ๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ ์ฝ”๋“œ ๋‹จ 10์ค„๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด ์—ฌ๋Ÿฌ๋ถ„์˜ ๋ฌด๊ฑฐ์› ๋˜ ์‚ฌ์ดํŠธ๋„ ๊นƒํ„ธ์ฒ˜๋Ÿผ ๋‚ ์•„์˜ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ’ฌ ๋Œ“๊ธ€ 0๊ฐœ

IT ๊ฒŒ์‹œํŒ

๊ณต์ง€
Notice
๊ณต์ง€ inspeep ์ปค๋ฎค๋‹ˆํ‹ฐ ์ด์šฉ ๋ฐ ๊ฒŒ์‹œ๋ฌผ ๊ด€๋ฆฌ ๊ทœ์ • ์•ˆ๋‚ด
๐Ÿ‘ค ๊ด€๋ฆฌ์ž ๐Ÿ“… 2026.04.15 ๐Ÿ‘€ ์กฐํšŒ 57 ๐Ÿ‘ ์ถ”์ฒœ 0
BEST
์ธ๋„ค์ผ
BEST 2. ์ฝ”๋”ฉ ๋ฌธ์™ธํ•œ์˜ ์›Œ๋“œํ”„๋ ˆ์Šค ์ •๋ณต๊ธฐ: VS Code์™€ FTP์˜ ์Šต๊ฒฉ
๐Ÿ‘ค ๊ด€๋ฆฌ์ž ๐Ÿ“… 2026.03.05 ๐Ÿ‘€ ์กฐํšŒ 135 ๐Ÿ‘ ์ถ”์ฒœ 0
๊ฐœ๋ฐœ
์ธ๋„ค์ผ
๋ฏธ์Šคํ„ฐ๋ฆฌํ•œ (์›€์งค ๋‹ค์ˆ˜) 1๋‹ฌ๊ฐ„์˜ ๊ฐœ๋ฐœ ์ผ์ง€
๐Ÿ‘ค Cyan ๐Ÿ“… 2026.06.27 ๐Ÿ‘€ ์กฐํšŒ 17 ๐Ÿ‘ ์ถ”์ฒœ 0
๊ฐœ๋ฐœ
์ธ๋„ค์ผ
์‚ฌ์ด๋‹ค ๊ฐ™์€ ๋ž˜ํ† ํ”ผ์•„ ๊ฐœ๋ฐœ์ผ์ง€ #38 - ๊ด€๊ด‘ ์‹œ์Šคํ…œ
๐Ÿ‘ค ๋””๋ก ๐Ÿ“… 2026.06.27 ๐Ÿ‘€ ์กฐํšŒ 20 ๐Ÿ‘ ์ถ”์ฒœ 0
๊ฐœ๋ฐœ
์ธ๋„ค์ผ
์ž์œ 
No Image
FastAPI์™€ Redis๋ฅผ ํ™œ์šฉํ•œ 1์ธ ๊ฐœ๋ฐœ์ž์˜ ๋ฐฑ์—”๋“œ ์ตœ์ ํ™” ์—ฌ์ •
๐Ÿ‘ค ์ธ์Šคํ”ผ ๐Ÿ“… 2026.06.17 ๐Ÿ‘€ ์กฐํšŒ 12 ๐Ÿ‘ ์ถ”์ฒœ 0
๊ฐœ๋ฐœ
์ธ๋„ค์ผ
๊ทน๊ฐ•์˜ ์‹ฑ๊ธ€๋ฒ™๊ธ€ ๊ตญ๋‚ด ๊ฒŒ์ž„๊ฐœ๋ฐœ์ž์˜ ๋ฏธ๋ž˜ ์˜ˆ์–ธ๊ธ€
๐Ÿ‘ค ์•ผ๋ฆฌํƒ€ ๐Ÿ“… 2026.06.15 ๐Ÿ‘€ ์กฐํšŒ 10 ๐Ÿ‘ ์ถ”์ฒœ 0
๋‰ด์Šค
์ธ๋„ค์ผ
์œ ๋ถ€๋‚จ ์ปดํ“จํ„ฐ ๋งŒ๋“ค๊ธฐ (์Šค์••)
๐Ÿ‘ค ๋ฆฌํ† ํƒ€ ๐Ÿ“… 2026.06.13 ๐Ÿ‘€ ์กฐํšŒ 13 ๐Ÿ‘ ์ถ”์ฒœ 0
๋‰ด์Šค
์ธ๋„ค์ผ
ํŒ์ฝ˜๊ฐ ์ปดํ“จํ„ฐ ์ผ€์ด์Šค ๋ชจ๋”ฉ ๋Œ€ํšŒ ์ถœํ’ˆ์ž‘
๐Ÿ‘ค Cyan ๐Ÿ“… 2026.06.10 ๐Ÿ‘€ ์กฐํšŒ 11 ๐Ÿ‘ ์ถ”์ฒœ 0
์ผ๋ฐ˜
์ธ๋„ค์ผ
์šด ์ข‹๊ฒŒ๋„ ์ƒ์ƒ์ดˆ์›” ์• ํ”Œ WWDC26 ์š”์•ฝ (1)~(4) - Platform Improvments
๐Ÿ‘ค Cyan ๐Ÿ“… 2026.06.09 ๐Ÿ‘€ ์กฐํšŒ 20 ๐Ÿ‘ ์ถ”์ฒœ 0
๊ฐœ๋ฐœ
์ธ๋„ค์ผ
๊ฐœ๋ฐœ
์ธ๋„ค์ผ
๋ˆˆ๋ถ€์‹  ๋ž˜ํ† ์นผ๋ฆฝ์Šค ๊ฐœ๋ฐœ์ผ์ง€ #9 - PlayX4 ์ „์‹œํ›„๊ธฐ
๐Ÿ‘ค ์•ผ๋ฆฌํƒ€ ๐Ÿ“… 2026.06.05 ๐Ÿ‘€ ์กฐํšŒ 11 ๐Ÿ‘ ์ถ”์ฒœ 0
๊ฐœ๋ฐœ
์ธ๋„ค์ผ
๊ณ ๊ตฌ๋งˆ ๋จน์€ ๋””์ง€ํƒญ ์–ธ์˜คํ”„ ๊ทธ ๊ฐœ๋ฐœ ๋น„ํ™” *์Šค์••์ฃผ์˜
๐Ÿ‘ค ๋ฆฌํ† ํƒ€ ๐Ÿ“… 2026.05.31 ๐Ÿ‘€ ์กฐํšŒ 8 ๐Ÿ‘ ์ถ”์ฒœ 0
๊ฐœ๋ฐœ
์ธ๋„ค์ผ
๋‡Œ๋นผ๊ณ  ์—ญ๋Œ€๊ธ‰ 5์›” ๊ฐœ๋ฐœ ์ผ์ง€ ๋ฐ ํ–ฅํ›„ ์ฝ˜ํ…์ธ  ์†Œ๊ฐœ
๐Ÿ‘ค ํ“จ๋ฉ”์ด์ฃ ์ด ๐Ÿ“… 2026.05.30 ๐Ÿ‘€ ์กฐํšŒ 13 ๐Ÿ‘ ์ถ”์ฒœ 0
« ์ฒ˜์Œ ‹ ์ด์ „ 1 2 3 4 5 6 7 ๋‹ค์Œ › ๋ »
โœ๏ธ ๊ธ€์“ฐ๊ธฐ