Skip to content

About

๐Ÿš— ์ž๋™์ฐจ ํฌ๊ธฐ ๋น„๊ต โ€” ์ฐจ๋ฅผ ์ƒ์ž๋กœ ๋ฐ”๊ฟ”์„œ ๊ณต๊ฐ„(์ถ•๊ฑฐร—์ „ํญร—์ „๊ณ )๊ณผ ์™ธํ˜•(์ „์žฅร—์ „ํญร—์ „๊ณ )์„ mยณ๋กœ ์žฐ๋‹ค

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

ย 

History

41 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Car Box Size

์ฐจ๋ฅผ ์ƒ์ž๋กœ ๋ฐ”๊ฟ”์„œ ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.

  • ์ฝ”์–ด = ์ถ•๊ฑฐ ร— ์ „ํญ ร— ์ „๊ณ  (mยณ) โ€” ์•ž๋’ค ๋ฒ”ํผ๋ฅผ ๋บ€ ๋ฐ”ํ€ด ์‚ฌ์ด ๋ถ€ํ”ผ
  • ์™ธํ˜• = ์ „์žฅ ร— ์ „ํญ ร— ์ „๊ณ  (mยณ) โ€” ์ฃผ์ฐจ์žฅ์—์„œ ์ฐจ์ง€ํ•˜๋Š” ๋ถ€ํ”ผ

์นด๋“œ๋งˆ๋‹ค ์‹ค์ œ ์น˜์ˆ˜ ๋น„์œจ๋กœ ๋งŒ๋“  3D ์ƒ์ž๋ฅผ ์ฐจ ์‚ฌ์ง„ ์œ„์— ๊ฒน์ณ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๊ธฐ์ค€์ž๋กœ ์„ฑ์ธ์‚ฌ๋žŒ(500ร—500ร—1700)๊ณผ ์ฃผ์ฐจ์žฅ(5000ร—2500ร—300)์ด ๋ชฉ๋ก์— ํ•จ๊ป˜ ๋“ค์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™”๋ฉด

ํƒญ ํ•˜๋Š” ์ผ
์ „์ฒด๋ณด๊ธฐ 100์ข…์„ ํŒ๋งคยท์ฝ”์–ดยท์™ธํ˜•ยท์ถ•๊ฑฐยท์ „์žฅยท์ „๊ณ ยท์ „ํญ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ. ๊ฐ™์€ ๋ฒ„ํŠผ์„ ๋‹ค์‹œ ๋ˆ„๋ฅด๋ฉด ์˜ค๋ฆ„/๋‚ด๋ฆผ ์ „ํ™˜. ์ด๋ฆ„ยท๋ธŒ๋žœ๋“œยท์ดˆ์„ฑ(ใ……ใ…Œใ…… โ†’ ์…€ํ† ์Šค)์œผ๋กœ ๊ฒ€์ƒ‰
์ƒ์‹ ์ฝ”์–ดยท์ถ•๊ฑฐยท๊ธฐ๊ณ„์‹ ์ฃผ์ฐจยท์ฃผ์ฐจ๊ตฌํš ๊ทœ๊ฒฉ ๋“ฑ ์ž์ฃผ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฒƒ๋“ค. ๊ทœ๊ฒฉ ํ‘œ๋Š” parking.ts ์ƒ์ˆ˜๋ฅผ ๊ทธ๋Œ€๋กœ ์ฝ์–ด ๊ทธ๋ฆฌ๋ฏ€๋กœ ๊ธฐ์ค€์ด ๋ฐ”๋€Œ๋ฉด ๋ฌธ์„œ๋„ ๋”ฐ๋ผ๊ฐ‘๋‹ˆ๋‹ค
๋น„๊ตํ•˜๊ธฐ ๋‘ ๋Œ€๋ฅผ ๊ณจ๋ผ 6๊ฐœ ํ•ญ๋ชฉ์˜ ์ฐจ์ด๋ฅผ ๋ฌธ์žฅ์œผ๋กœ. ์„ ํƒ์ฐฝ์€ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•˜๊ณ , ์•„๋ฌด๊ฒƒ๋„ ์ž…๋ ฅ ์•ˆ ํ•˜๋ฉด ๊ทธ ๋‹ฌ ๋งŽ์ด ํŒ”๋ฆฐ ์ˆœ์œผ๋กœ ๋ณด์—ฌ์ค€๋‹ค. ๋žœ๋ค ๋ฒ„ํŠผ์œผ๋กœ ์•„๋ฌด ๋‘ ๋Œ€. ์•„๋ž˜์— ์ž์ฃผ ๋น„๊ตํ•˜๋Š” ์กฐํ•ฉ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด๋ณด๊ธฐ์—์„œ ์นด๋“œ๋ฅผ ๋ˆ„๋ฅด๋ฉด ๊ทธ ์ฐจ๋ฅผ ์™ผ์ชฝ์— ๋„ฃ์€ ์ฑ„๋กœ ๋น„๊ตํ•˜๊ธฐ๊ฐ€ ์—ด๋ฆฝ๋‹ˆ๋‹ค. ์ƒ๋Œ€๋Š” ๋žœ๋ค์œผ๋กœ ์ฑ„์›Œ์ง€๊ณ , ์นด๋“œ ์ œ๋ชฉ(๋‹ค๋‚˜์™€ ๋งํฌ)๋งŒ ์˜ˆ์™ธ๋กœ ์›๋ž˜ ๋งํฌ๋Œ€๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ

npm install
npm run dev      # http://localhost:5173
npm run build

๋ฐ์ดํ„ฐ ๊ฐฑ์‹  โ€” ์†์œผ๋กœ ์˜ฎ๊ธฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค

๊ฐ’์˜ ์ถœ์ฒ˜๋Š” ์ „๋ถ€ ๋‹ค๋‚˜์™€์ด๊ณ , ๊ฐฑ์‹  ๊ฒฝ๋กœ๋Š” ์Šคํฌ๋ฆฝํŠธ ํ•˜๋‚˜๋ฟ์ž…๋‹ˆ๋‹ค. ํ™”๋ฉด์— ๋ณด์ด๋Š” ์ˆซ์ž๋ฅผ ์ง์ ‘ ํƒ€์ดํ•‘ํ•˜๋Š” ์ˆœ๊ฐ„ ๋‹ค์Œ ๋‹ฌ์— ๋ฐ˜๋“œ์‹œ ํ‹€์–ด์ง‘๋‹ˆ๋‹ค.

npm run sync:sales     # ํŒ๋งค๋Ÿ‰ ์ตœ๊ทผ 6๊ฐœ์›” ์žฌ์ˆ˜์ง‘ -> src/data/sales.ts
npm run sync:sales -- --months=12
npm run verify:cars    # cars.ts ์น˜์ˆ˜๋ฅผ ๋‹ค๋‚˜์™€ ์ œ์›๊ณผ ์ „์ˆ˜ ๋Œ€์กฐ (์ฐจ์ด ์žˆ์œผ๋ฉด exit 1)
npm run sync:weights   # ๊ณต์ฐจ์ค‘๋Ÿ‰ ์žฌ์ˆ˜์ง‘ -> cars.ts (๊ธฐ๊ณ„์‹ ์ฃผ์ฐจ ํŒ์ •์šฉ)
npm run sync:segments  # ์„ธ๊ทธ๋จผํŠธ ์žฌ์ˆ˜์ง‘ -> cars.ts (๋น„๊ต ์กฐํ•ฉ ์„ ์ •์šฉ)
npm run check:claim    # m1k.app ๋“ฑ๋กยท๊ท€์† ์ƒํƒœ๊ฐ€ config์™€ ๋งž๋Š”์ง€ (์–ด๊ธ‹๋‚˜๋ฉด exit 1)
  • src/data/sales.ts๋Š” ์ƒ์„ฑ๋ฌผ์ž…๋‹ˆ๋‹ค. ์†์œผ๋กœ ๊ณ ์น˜์ง€ ๋งˆ์„ธ์š”.
  • verify:cars๋Š” ๊ฐ’์„ ๊ณ ์น˜์ง€ ์•Š๊ณ  ์ฐจ์ด๋งŒ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋‚˜์™€์™€ ๋‹ค๋ฅธ ๊ฒŒ ๋Š˜ ํ‹€๋ฆฐ ๊ฑด ์•„๋‹ˆ๋ผ์„œ(์•„๋ž˜ "์ œ์› ๊ธฐ์ค€") ํŒ๋‹จ์€ ์‚ฌ๋žŒ์ด ํ•˜๊ณ , ํ™•์ •ํ•œ ์˜ˆ์™ธ๋Š” ์Šคํฌ๋ฆฝํŠธ์˜ ACCEPTED์— ์ด์œ ์™€ ํ•จ๊ป˜ ์ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์•ผ ๋‹ค์Œ ์‚ฌ๋žŒ์ด ๊ฐ™์€ ์กฐ์‚ฌ๋ฅผ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ƒ‰ยทslug ๊ฐ™์€ ์‚ฌ์ดํŠธ ์„ค์ •์€ src/config.ts ํ•œ ๊ณณ์— ์žˆ์Šต๋‹ˆ๋‹ค.

SEO

SPA๋ผ ์ดˆ๊ธฐ HTML์˜ <body>๊ฐ€ ๋น„์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํฌ๋กค๋Ÿฌ๊ฐ€ JS๋ฅผ ์‹คํ–‰ํ•ด์ฃผ๊ธธ ๊ธฐ๋Œ€ํ•˜๋Š” ๋Œ€์‹ , scripts/build-seo.mjs๊ฐ€ ๋นŒ๋“œ ๋’ค์— ๋‚ด์šฉ์„ ์‹ฌ์Šต๋‹ˆ๋‹ค(npm run build์— ํฌํ•จ).

  • #root ์•ˆ์— h1ยท์ œ์›ํ‘œ 100ํ–‰ยท์ƒ์‹ Q&A๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค. React๊ฐ€ createRoot๋กœ ๋งˆ์šดํŠธํ•˜๋ฉฐ ํ†ต์งธ๋กœ ๊ฐˆ์•„์น˜์šฐ๋ฏ€๋กœ ํ™”๋ฉด์—๋Š” ํ•œ ํ”„๋ ˆ์ž„๋„ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ™”๋ฉด์— ์—†๋Š” ๊ฑธ ์‹ฌ๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ํ™”๋ฉด์— ์žˆ๋Š” ๊ฑธ ๋ฏธ๋ฆฌ ์ ์–ด๋‘๋Š” ๊ฒƒ์ด๋ผ ํด๋กœํ‚น์ด ์•„๋‹™๋‹ˆ๋‹ค.
  • canonical, FAQPage ๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ๋ฅผ ํ•จ๊ป˜ ๋„ฃ์Šต๋‹ˆ๋‹ค.
  • robots.txtยทsitemap.xml์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒŒ ์—†์œผ๋ฉด vercel.json์˜ SPA rewrite๊ฐ€ ๊ฐ€๋กœ์ฑ„์„œ robots.txt ์š”์ฒญ์— HTML์„ ๋Œ๋ ค์ค๋‹ˆ๋‹ค(์‹ค์ œ๋กœ ๊ทธ๋žฌ์Šต๋‹ˆ๋‹ค).

๋‚ด์šฉ์€ ์ „๋ถ€ cars.ts์—์„œ ์ƒ์„ฑํ•˜๋ฏ€๋กœ ์ฐจ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์ž๋™์œผ๋กœ ๋”ฐ๋ผ๊ฐ‘๋‹ˆ๋‹ค.

OG ์ด๋ฏธ์ง€ 121์žฅ ยท ๋ชฉ๋ก ์ธ๋„ค์ผ 120์žฅ

scripts/lib/og.mjs๊ฐ€ SVG๋ฅผ ์ง์ ‘ ์“ฐ๊ณ  resvg๋กœ PNG๋ฅผ ๊ตฝ์Šต๋‹ˆ๋‹ค. ์กฐํ•ฉ๋งˆ๋‹ค ๊ทธ ๋‘ ๋Œ€๊ฐ€ ๊ทธ๋ ค์ง„ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค์–ด์„œ, ๊ณต์œ ๋  ๋•Œ ์–ด๋–ค ๋น„๊ต์ธ์ง€ ๋ฐ”๋กœ ๋ณด์ด๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

  • ํ•œ ์žฅ์˜ ๋น„๊ต ์Šคํ…Œ์ด์ง€์— ๋‘ ์ฐจ๋ฅผ ํฌ๊ฒŒ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค โ€” ๊ณต์œ  ์•ฑ์—์„œ 500px ์•ˆํŒŽ์œผ๋กœ ์ถ•์†Œ๋ผ๋„ ์ฐจ๋Ÿ‰๊ณผ 3D ์ƒ์ž๊ฐ€ ๋จผ์ € ๋ณด์ด๊ฒŒ ํ•˜๊ณ , ์ฐจ ์ด๋ฆ„ยท์ฐจ์ด ์ˆ˜์น˜ยท์„ค๋ช…์€ ์„œ๋กœ ๊ฒน์น˜์ง€ ์•Š๋Š” ์•ˆ์ „์˜์—ญ์— ๋‘ก๋‹ˆ๋‹ค.
  • 3D ์ƒ์ž๋Š” ์•ฑ๊ณผ ๊ฐ™์€ ๊ฐ๋„์ž…๋‹ˆ๋‹ค. ์ฒ˜์Œ์—” satori๋ฅผ ์ผ๋Š”๋ฐ CSS transform์„ ๊ทธ๋ฆฌ์ง€ ์•Š์•„ ์ƒ์ž๊ฐ€ ๋‚ฉ์ž‘ํ•œ ์‚ฌ๊ฐํ˜•์ด ๋์Šต๋‹ˆ๋‹ค. scripts/lib/box3d.mjs๊ฐ€ ํšŒ์ „(rotateX 8ยฐ, rotateY 128ยฐ)์„ ์ง์ ‘ ๊ณ„์‚ฐํ•ด ์œก๋ฉด์ฒด ์—ฌ์„ฏ ๋ฉด์„ polygon์œผ๋กœ ๋ƒ…๋‹ˆ๋‹ค โ€” ์•ฑ๊ณผ ๊ฐ™์€ ๊ฐ๋„๋ผ ๊ฐ™์€ ๊ทธ๋ฆผ์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.
  • ์ฐจ ์‚ฌ์ง„์„ ๊น”๊ณ  ๊ทธ ์œ„์— ์ƒ์ž๋ฅผ ๊ฒน์นฉ๋‹ˆ๋‹ค. ์‚ฌ์ง„์ด ์—†์œผ๋ฉด ์ƒ์ž๋งŒ ๋‚จ์Šต๋‹ˆ๋‹ค.
  • ๋‘ ์ฐจ๋ฅผ ๊ฐ™์€ ์ž๋กœ ๋‚˜๋ž€ํžˆ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ์ฒ˜์Œ์—” ๊ฒน์ณ ๊ทธ๋ ธ๋Š”๋ฐ, ์ „์žฅ ์ฐจ์ด๊ฐ€ 15mm์ฏค์ธ ์กฐํ•ฉ(์˜๋ Œํ† ยท์‹ผํƒ€ํŽ˜)์€ ํ•œ ๋Œ€๋กœ ๋ณด์˜€์Šต๋‹ˆ๋‹ค.
  • ํ•œ๊ธ€ ํฐํŠธ๊ฐ€ ํ•„์š”ํ•ด scripts/fonts/์— Pretendard๋ฅผ ๋‘ก๋‹ˆ๋‹ค(3MB).
  • ๊ฐ™์€ ๊ทธ๋ฆผ์„ ๋น„๊ต ํ™”๋ฉด์˜ ์กฐํ•ฉ ๋ชฉ๋ก ์ธ๋„ค์ผ๋กœ๋„ ์”๋‹ˆ๋‹ค. ๋ชฉ๋ก์—์„œ ๋ณธ ๊ทธ๋ฆผ์ด ๊ณต์œ  ์นด๋“œ์— ๊ทธ๋Œ€๋กœ ๋œจ๋ฉด "์•„๊นŒ ๊ทธ๊ฑฐ"๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค. ๋‹ค๋งŒ OG ์›๋ณธ์€ ํ•œ ์žฅ 145KB๋ผ ๋ชฉ๋ก์— 16์žฅ ๊น”๋ฉด 2MB๊ฐ€ ๋„˜์–ด์„œ, scripts/gen-thumbs.mjs๊ฐ€ ์ ˆ๋ฐ˜ ํฌ๊ธฐ(600px, 63KB)๋กœ ๋”ฐ๋กœ ๊ตฝ์Šต๋‹ˆ๋‹ค.
  • ์ธ๋„ค์ผ์€ public/og์— ๋‘ก๋‹ˆ๋‹ค โ€” vite dev ์„œ๋ฒ„๋„ public์„ ์„œ๋น™ํ•ด์„œ ๊ฐœ๋ฐœ ์ค‘์—๋„ ๋ณด์ž…๋‹ˆ๋‹ค. ์ƒ์„ฑ๋ฌผ์ด๋ผ .gitignore์— ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ํŽ˜์ด์ง€๊ฐ€ og:urlยท์ด๋ฏธ์ง€ MIMEยทํฌ๊ธฐยท๋Œ€์ฒดํ…์ŠคํŠธ์™€ X ๋Œ€์ฒดํ…์ŠคํŠธ๋ฅผ ๋ƒ…๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€ sitemap์—๋„ ํŽ˜์ด์ง€๋ณ„ ๋Œ€ํ‘œ ์ด๋ฏธ์ง€๋ฅผ ๋„ฃ๊ณ , npm run verify:seo๊ฐ€ HTML๊ณผ ์ด๋ฏธ์ง€ 121์žฅ์„ ์ „์ˆ˜ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋น„๊ต ํŽ˜์ด์ง€ 120๊ฐœ

/compare/์˜๋ Œํ† -vs-์‹ผํƒ€ํŽ˜ ๊ฐ™์€ ์ฃผ์†Œ๋ฅผ ์กฐํ•ฉ๋งˆ๋‹ค ๋งŒ๋“ญ๋‹ˆ๋‹ค. "์˜๋ Œํ†  ์‹ผํƒ€ํŽ˜ ํฌ๊ธฐ"์ฒ˜๋Ÿผ ์กฐํ•ฉ์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๋Š” ์‚ฌ๋žŒ์„ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ ํŽ˜์ด์ง€๋Š” ๊ณ ์œ ํ•œ titleยทdescriptionยทcanonical๊ณผ ๋‘ ์ฐจ์˜ ์ œ์›ํ‘œ๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค.

์กฐํ•ฉ์€ scripts/gen-pairs.mjs๊ฐ€ ๊ณจ๋ผ src/data/pairs.ts๋กœ ๋ƒ…๋‹ˆ๋‹ค(build ์ฒซ ๋‹จ๊ณ„). ํ™”๋ฉด์˜ "์ž์ฃผ ๋น„๊ตํ•˜๋Š” ์กฐํ•ฉ"๊ณผ ๋น„๊ต ํŽ˜์ด์ง€๊ฐ€ ์ด ๋ชฉ๋ก์„ ํ•จ๊ป˜ ๋ด…๋‹ˆ๋‹ค โ€” ๋‘ ๊ณณ์—์„œ ๋”ฐ๋กœ ๊ณ ๋ฅด๋ฉด ํ™”๋ฉด์—” ์žˆ๋Š”๋ฐ ์ƒ‰์ธ์—” ์—†๋Š” ์กฐํ•ฉ์ด ์ƒ๊น๋‹ˆ๋‹ค.

์•„๋ฌด ์กฐํ•ฉ์ด๋‚˜ ๋งŒ๋“ค๋ฉด ์ƒ‰์ธ๋งŒ ๋‚ญ๋น„ํ•˜๋ฏ€๋กœ ์„ธ ์กฐ๊ฑด์œผ๋กœ ๊ฑฐ๋ฆ…๋‹ˆ๋‹ค.

  • ๊ฐ™์€ ์„ธ๊ทธ๋จผํŠธ โ€” ๋ถ€ํ”ผ๋งŒ ๋ณด๋ฉด "๊ทธ๋žœ์ € vs ์…€ํ† ์Šค"๊ฐ€ ๋‚˜์˜ค๋Š”๋ฐ ์•„๋ฌด๋„ ๊ทธ๋ ‡๊ฒŒ ๊ณ ๋ฏผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
  • ์ฝ”์–ด ์ฐจ์ด 15% ์ด๋‚ด โ€” ์ฒด๊ธ‰์ด ๋‹ค๋ฅด๋ฉด ๋น„๊ต๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค
  • ๋‘˜ ๋‹ค ํŒ”๋ฆฌ๋Š” ์ฐจ โ€” ํŒ๋งค ํ•˜์œ„ ์กฐํ•ฉ์€ ๊ฒ€์ƒ‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

434์Œ ์ค‘ ํŒ๋งค๋Ÿ‰ ์ƒ์œ„ 120์Œ์„ ์”๋‹ˆ๋‹ค. ์„ธ๊ทธ๋จผํŠธ๋Š” npm run sync:segments๋กœ ๋‹ค๋‚˜์™€์—์„œ ๋ฐ›์Šต๋‹ˆ๋‹ค.

์•ฑ์—์„œ ๋‘ ์ฐจ๋ฅผ ๊ณ ๋ฅด๋ฉด ์ฃผ์†Œ๋„ ๊ทธ ์กฐํ•ฉ์œผ๋กœ ๋ฐ”๋€๋‹ˆ๋‹ค(history.replaceState). ๊ณต์œ ํ•˜๊ฑฐ๋‚˜ ๋ถ๋งˆํฌํ•˜๋ฉด ๊ทธ๋Œ€๋กœ ์ƒ‰์ธ ๋Œ€์ƒ์ด ๋ฉ๋‹ˆ๋‹ค.

์Šคํƒ

Vite ยท React 19 ยท TypeScript ยท Tailwind 4 ยท @m1kapp/kit

์ฐจ๋Ÿ‰ ์ด๋ฏธ์ง€๋Š” ๋‹ค๋‚˜์™€(autoimg.danawa.com)์˜ ๋ชจ๋ธ ์ด๋ฏธ์ง€๋ฅผ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

src/data/cars.ts์˜ CARS ๋ฐฐ์—ด์— ํ•œ ์ค„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋์ž…๋‹ˆ๋‹ค.

{ name: "๋ชจ๋ธ๋ช… (2025)", xSize: 4710, ySize: 1825, zSize: 1420, xInSize: 2720, brand: "ํ˜„๋Œ€", no: 4455 },

no๋Š” ๋‹ค๋‚˜์™€ ๋ชจ๋ธ ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. https://autoimg.danawa.com/photo/{no}/model_360.png ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ , ํŒ๋งค๋Ÿ‰๋„ ์ด ๋ฒˆํ˜ธ๋กœ ๋ถ™์Šต๋‹ˆ๋‹ค.

ํŒ๋งค๋Ÿ‰

src/data/sales.ts๋Š” ๋‹ค๋‚˜์™€ ์ž๋™์ฐจ ํŒ๋งค์‹ค์ (๋ชจ๋ธ๋ณ„)์—์„œ ๊ฐ€์ ธ์˜จ ๊ตญ๋‚ด ์‹ ์ฐจ ๋“ฑ๋ก ๋Œ€์ˆ˜์ž…๋‹ˆ๋‹ค. ์ตœ๊ทผ 6๊ฐœ์›”์น˜๊ฐ€ ์›”๋ณ„๋กœ ๋“ค์–ด ์žˆ๊ณ , ํ‚ค๊ฐ€ Car.no(๋‹ค๋‚˜์™€ ๋ชจ๋ธ ๋ฒˆํ˜ธ)๋ผ์„œ ์ด๋ฆ„ ๋งค์นญ ์—†์ด ์ •ํ™•ํžˆ ๋ถ™์Šต๋‹ˆ๋‹ค.

  • ํ™”๋ฉด ์–ด๋””์„œ๋‚˜ ๊ธฐ์ค€์›”์„ ๋ฐ”๊ฟ” ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆœ์œ„ ์นฉยท์ •๋ ฌยท๋Œ€์ˆ˜๊ฐ€ ๊ทธ ๋‹ฌ ๊ธฐ์ค€์œผ๋กœ ๋‹ค์‹œ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.
  • ๋‹ค๋‚˜์™€๋Š” ์ˆ˜์ž…์ฐจ๋ฅผ ๋ธŒ๋žœ๋“œ๋งˆ๋‹ค ๋‹ค๋ฅธ ์‹œ์ ์— ์ง‘๊ณ„ํ•ด์„œ, ๊ฐ€์žฅ ์ตœ๊ทผ ๋‹ฌ์€ ์ˆ˜์ž…์ฐจ๊ฐ€ ๋œ ์ฐน๋‹ˆ๋‹ค. ๊ทธ ๋‹ฌ์€ ํ™”๋ฉด์— "์ˆ˜์ž…์ฐจ๋Š” ์•„์ง ์ง‘๊ณ„ ์ค‘"์ด๋ผ๊ณ  ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค(importedPending).
  • ํ‘œ์— ์—†๋Š” ์ฐจ(๋‹จ์ข…ยท๋ฏธ์ถœ์‹œยท์ดˆ์†Œ๋Ÿ‰)๋Š” ํŒ๋งค๋Ÿ‰์„ ๋น„์›Œ ๋‘ก๋‹ˆ๋‹ค. 0์œผ๋กœ ์ฑ„์šฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ˆœ์œ„ ์นฉ

์นด๋“œ ์™ผ์ชฝ ์œ„ ์นฉ์€ src/data/rank.ts์—์„œ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์ค€์ž(์„ฑ์ธ์‚ฌ๋žŒยท์ฃผ์ฐจ์žฅ)๋Š” ์ˆœ์œ„์—์„œ ๋บ๋‹ˆ๋‹ค.

  • ๊ธฐ๊ณ„์‹ ๋ถˆ๊ฐ€ / ๊ธฐ๊ณ„์‹ ๋Œ€ํ˜•๋งŒ โ€” ๋งจ ์•ž์— ์˜ต๋‹ˆ๋‹ค. ํŒ๋งค ์ˆœ์œ„๋Š” ์•Œ๋ฉด ์ข‹์€ ์ •๋ณด์ง€๋งŒ, ์ฐจ๋ฅผ ์‚ฌ๊ณ  ๋‚˜์„œ "์šฐ๋ฆฌ ๊ฑด๋ฌผ์— ๋ชป ๋„ฃ๋Š”๋‹ค"๋ฅผ ์•„๋Š” ๊ฑด ๋˜๋Œ๋ฆด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค
  • ํŒ๋งค N์œ„ ๋‹ค์Œ, ์ฝ”์–ด ์ƒ์œ„/ํ•˜์œ„ 10% โ€” ์—†์œผ๋ฉด ์™ธํ˜• ๊ธฐ์ค€์œผ๋กœ ๋Œ€์‹  ๋ถ™์Šต๋‹ˆ๋‹ค

๊ฐ€์šด๋ฐ 80%์—๋Š” ์ผ๋ถ€๋Ÿฌ ์•„๋ฌด๊ฒƒ๋„ ์•ˆ ๋ถ™์ž…๋‹ˆ๋‹ค. ์ „๋ถ€์— ์นฉ์ด ๋ถ™์œผ๋ฉด ์นฉ์ด ์˜๋ฏธ๋ฅผ ์žƒ์Šต๋‹ˆ๋‹ค.

๊ธฐ๊ณ„์‹ ์ฃผ์ฐจ ํŒ์ •

์ฃผ์ฐจ์žฅ๋ฒ• ์‹œํ–‰๊ทœ์น™ ์ œ16์กฐ์˜2 ๊ธฐ์ค€์œผ๋กœ ์นด๋“œ์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

๊ทœ๊ฒฉ ๊ธธ์ด ๋„ˆ๋น„ ๋†’์ด ๋ฌด๊ฒŒ
์ค‘ํ˜• 5.2m 2.0m 1.85m 2,350kg
๋Œ€ํ˜• 5.75m 2.15m 1.85m 2,650kg
  • ์ค‘ํ˜•์— ๋“ค์–ด๊ฐ€๋ฉด ์•„๋ฌด ํ‘œ์‹œ๋„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์ด ํ†ต๊ณผํ•˜๋Š”๋ฐ ๋‹ค ๋ถ™์ด๋ฉด ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  • ๊ฑธ๋ฆฌ๋ฉด ์นด๋“œ ์นฉ์œผ๋กœ ์•Œ๋ฆฌ๊ณ , ์นฉ์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ฆฌ๋ฉด ๊ฑธ๋ฆฐ ํ•ญ๋ชฉ์ด ๋ณด์ž…๋‹ˆ๋‹ค.
  • ๋ฌด๊ฒŒ๋Š” npm run sync:weights๋กœ ๋‹ค๋‚˜์™€์—์„œ ๋ฐ›์Šต๋‹ˆ๋‹ค. ํŠธ๋ฆผ๋งˆ๋‹ค ๊ฐˆ๋ฆฌ๋Š”๋ฐ ๊ฐ€์žฅ ๋ฌด๊ฑฐ์šด ํŠธ๋ฆผ์„ ์”๋‹ˆ๋‹ค โ€” ๋ชป ๋“ค์–ด๊ฐ€๋ฉด ๊ทธ๋งŒ์ธ ํŒ์ •์ด๋ผ ์œ ๋ฆฌํ•œ ์ชฝ์œผ๋กœ ๋ฐ˜์˜ฌ๋ฆผํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
  • ๊ณต์ฐจ์ค‘๋Ÿ‰์„ ๋ชจ๋ฅด๋Š” ์ฐจ๋Š” ๋ฌด๊ฒŒ ํŒ์ •์„ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. ๋ชจ๋ฅธ๋‹ค๋Š” ์ด์œ ๋กœ "๋ชป ๋“ค์–ด๊ฐ„๋‹ค"๊ณ  ํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

์น˜์ˆ˜๋งŒ ๋ณด๋ฉด 13๋Œ€๊ฐ€ ๊ฑธ๋ฆฌ๋Š”๋ฐ, ๋ฌด๊ฒŒ๊นŒ์ง€ ๋„ฃ์œผ๋ฉด 22๋Œ€๊ฐ€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ๋ฐฐํ„ฐ๋ฆฌ๋ฅผ ์–น์€ ์ „๊ธฐ์ฐจ๊ฐ€ ์น˜์ˆ˜๋Š” ๋ฉ€์ฉกํ•œ๋ฐ ๋ฌด๊ฒŒ์—์„œ ๋ง‰ํžˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค(์•„์ด์˜ค๋‹‰9 2,675kg, ์นด์ด์—”EV 2,525kg).

์ œ์› ๊ธฐ์ค€

  • ์น˜์ˆ˜๋Š” ๋‹ค๋‚˜์™€ ์ž๋™์ฐจ ์ œ์› ํƒญ ๊ฐ’์„ ๊ธฐ๋ณธ์œผ๋กœ ํ•˜๊ณ , ์–ด๊ธ‹๋‚˜๋Š” ๊ฑด ์ œ์กฐ์‚ฌ ๊ณต์‹ ์ œ์›์œผ๋กœ ํ™•์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ „ํญ์€ ์‚ฌ์ด๋“œ๋ฏธ๋Ÿฌ๋ฅผ ๋บ€ ๊ฐ’์ž…๋‹ˆ๋‹ค. ๋ฏธ๋Ÿฌ ํฌํ•จ/์ ‘ํž˜ ๊ฐ’์ด ์„ž์ด๋ฉด ์ฐจ๋ผ๋ฆฌ ๋น„๊ต๊ฐ€ ๊นจ์ง€๋ฏ€๋กœ, ์ถœ์ฒ˜๊ฐ€ ๋ฏธ๋Ÿฌ ํฌํ•จ๊ฐ’๋งŒ ์ฃผ๋Š” ๊ฒฝ์šฐ(์‚ฌ์ด๋ฒ„ํŠธ๋Ÿญ 2201ยท2413, ํด์Šคํƒ€4 2068ยท2139) ๋ฏธ๋Ÿฌ ์ œ์™ธ๊ฐ’์„ ์”๋‹ˆ๋‹ค.
  • ํŠธ๋ฆผ์— ๋”ฐ๋ผ ๊ฐ’์ด ๊ฐˆ๋ฆฌ๋ฉด(ํœ  ํฌ๊ธฐ ๋“ฑ) ๋Œ€ํ‘œ ํŠธ๋ฆผ ํ•˜๋‚˜๋กœ ํ†ต์ผํ•ฉ๋‹ˆ๋‹ค.

์ฝ”์–ด๋Š” ์‹ค๋‚ด ์šฉ์ ์ด ์•„๋‹™๋‹ˆ๋‹ค

๋ฏธ๊ตญ EPA ์‹ค๋‚ด์šฉ์ ์ด ๊ณต๊ฐœ๋œ 24๋Œ€์™€ ๋Œ€์กฐํ•ด๋ดค์Šต๋‹ˆ๋‹ค.

  • ์ฝ”์–ด์˜ **์•ฝ 42%**๊ฐ€ ์‹ค์ œ ์Šน๊ฐ+ํ™”๋ฌผ ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค(ํ‘œ์ค€ํŽธ์ฐจ 3.9%p).
  • ์ˆœ์œ„๋Š” ๊ฐ™์€ ์ฐจ๊ธ‰ ์•ˆ์—์„œ๋งŒ ์–ผ์ถ” ๋งž์Šต๋‹ˆ๋‹ค. ์„ธ๋‹จ๋ผ๋ฆฌ๋Š” ์Šคํ”ผ์–ด๋งŒ +0.93๊นŒ์ง€ ๋‚˜์˜ค์ง€๋งŒ ํฌ๋กœ์Šค์˜ค๋ฒ„๋ผ๋ฆฌ๋Š” โˆ’0.10์œผ๋กœ ๋ฌด๋„ˆ์ง‘๋‹ˆ๋‹ค.
  • ์‹ค์ œ ์‹ค๋‚ด ๋ถ€ํ”ผ์™€ ๊ฐ€์žฅ ์ƒ๊ด€์ด ๋†’์€ ์น˜์ˆ˜๋Š” ์ „๊ณ (+0.84)์ด๊ณ  ์ถ•๊ฑฐ๋Š” +0.12๋กœ ๊ฑฐ์˜ ๋ฌด๊ด€ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”์–ด๋Š” "์ฐจ๊ฐ€ ์ฐจ์ง€ํ•˜๋Š” ์ƒ์ž"์ด์ง€ "ํƒ€๋Š” ๊ณต๊ฐ„"์ด ์•„๋‹™๋‹ˆ๋‹ค.

"์ถ•๊ฑฐ ร— ํญ"์œผ๋กœ ์ฐจ ํฌ๊ธฐ๋ฅผ ์žฌ๋Š” ๋ฐฉ์‹ ์ž์ฒด๋Š” ๋ฏธ๊ตญ ์—ฐ๋น„ ๊ทœ์ œ๊ฐ€ ์“ฐ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค (49 CFR 523.2, footprint = ์ถ•๊ฑฐ ร— ์œค๊ฑฐ).

About

๐Ÿš— ์ž๋™์ฐจ ํฌ๊ธฐ ๋น„๊ต โ€” ์ฐจ๋ฅผ ์ƒ์ž๋กœ ๋ฐ”๊ฟ”์„œ ๊ณต๊ฐ„(์ถ•๊ฑฐร—์ „ํญร—์ „๊ณ )๊ณผ ์™ธํ˜•(์ „์žฅร—์ „ํญร—์ „๊ณ )์„ mยณ๋กœ ์žฐ๋‹ค

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages